Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / CodeGen / X86 / vector-interleaved-store-i32-stride-8.ll
blob265f6daeb2003829b972943b8284a35976088e83
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_i32_stride8_vf2(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %in.vecptr4, ptr %in.vecptr5, ptr %in.vecptr6, ptr %in.vecptr7, ptr %out.vec) nounwind {
19 ; SSE-LABEL: store_i32_stride8_vf2:
20 ; SSE:       # %bb.0:
21 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
22 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %r10
23 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %r11
24 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = mem[0],zero
25 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = mem[0],zero
26 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
27 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = mem[0],zero
28 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = mem[0],zero
29 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
30 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = mem[0],zero
31 ; SSE-NEXT:    movsd {{.*#+}} xmm3 = mem[0],zero
32 ; SSE-NEXT:    unpcklps {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]
33 ; SSE-NEXT:    movsd {{.*#+}} xmm3 = mem[0],zero
34 ; SSE-NEXT:    movsd {{.*#+}} xmm4 = mem[0],zero
35 ; SSE-NEXT:    unpcklps {{.*#+}} xmm3 = xmm3[0],xmm4[0],xmm3[1],xmm4[1]
36 ; SSE-NEXT:    movaps %xmm0, %xmm4
37 ; SSE-NEXT:    movlhps {{.*#+}} xmm4 = xmm4[0],xmm1[0]
38 ; SSE-NEXT:    movaps %xmm2, %xmm5
39 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm3[0]
40 ; SSE-NEXT:    movhlps {{.*#+}} xmm1 = xmm0[1],xmm1[1]
41 ; SSE-NEXT:    movhlps {{.*#+}} xmm3 = xmm2[1],xmm3[1]
42 ; SSE-NEXT:    movaps %xmm3, 48(%rax)
43 ; SSE-NEXT:    movaps %xmm1, 32(%rax)
44 ; SSE-NEXT:    movaps %xmm5, 16(%rax)
45 ; SSE-NEXT:    movaps %xmm4, (%rax)
46 ; SSE-NEXT:    retq
48 ; AVX-LABEL: store_i32_stride8_vf2:
49 ; AVX:       # %bb.0:
50 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax
51 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %r10
52 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %r11
53 ; AVX-NEXT:    vmovsd {{.*#+}} xmm0 = mem[0],zero
54 ; AVX-NEXT:    vmovsd {{.*#+}} xmm1 = mem[0],zero
55 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm0 = xmm1[0],xmm0[0]
56 ; AVX-NEXT:    vmovsd {{.*#+}} xmm1 = mem[0],zero
57 ; AVX-NEXT:    vmovsd {{.*#+}} xmm2 = mem[0],zero
58 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm2[0],xmm1[0]
59 ; AVX-NEXT:    vmovsd {{.*#+}} xmm2 = mem[0],zero
60 ; AVX-NEXT:    vmovsd {{.*#+}} xmm3 = mem[0],zero
61 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm3[0],xmm2[0]
62 ; AVX-NEXT:    vmovsd {{.*#+}} xmm3 = mem[0],zero
63 ; AVX-NEXT:    vmovsd {{.*#+}} xmm4 = mem[0],zero
64 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm3 = xmm4[0],xmm3[0]
65 ; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm1, %ymm1
66 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
67 ; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm0[0,2],ymm1[0,2],ymm0[4,6],ymm1[4,6]
68 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[1,3],ymm1[1,3],ymm0[5,7],ymm1[5,7]
69 ; AVX-NEXT:    vmovaps %ymm0, 32(%rax)
70 ; AVX-NEXT:    vmovaps %ymm2, (%rax)
71 ; AVX-NEXT:    vzeroupper
72 ; AVX-NEXT:    retq
74 ; AVX2-LABEL: store_i32_stride8_vf2:
75 ; AVX2:       # %bb.0:
76 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rax
77 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %r10
78 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %r11
79 ; AVX2-NEXT:    vmovsd {{.*#+}} xmm0 = mem[0],zero
80 ; AVX2-NEXT:    vmovsd {{.*#+}} xmm1 = mem[0],zero
81 ; AVX2-NEXT:    vmovlhps {{.*#+}} xmm0 = xmm1[0],xmm0[0]
82 ; AVX2-NEXT:    vmovsd {{.*#+}} xmm1 = mem[0],zero
83 ; AVX2-NEXT:    vmovsd {{.*#+}} xmm2 = mem[0],zero
84 ; AVX2-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm2[0],xmm1[0]
85 ; AVX2-NEXT:    vmovsd {{.*#+}} xmm2 = mem[0],zero
86 ; AVX2-NEXT:    vmovsd {{.*#+}} xmm3 = mem[0],zero
87 ; AVX2-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm3[0],xmm2[0]
88 ; AVX2-NEXT:    vmovsd {{.*#+}} xmm3 = mem[0],zero
89 ; AVX2-NEXT:    vmovsd {{.*#+}} xmm4 = mem[0],zero
90 ; AVX2-NEXT:    vmovlhps {{.*#+}} xmm3 = xmm4[0],xmm3[0]
91 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm0
92 ; AVX2-NEXT:    vinsertf128 $1, %xmm3, %ymm2, %ymm1
93 ; AVX2-NEXT:    vshufps {{.*#+}} ymm2 = ymm0[0,2],ymm1[0,2],ymm0[4,6],ymm1[4,6]
94 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,2,1,3]
95 ; AVX2-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[1,3],ymm1[1,3],ymm0[5,7],ymm1[5,7]
96 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,1,3]
97 ; AVX2-NEXT:    vmovaps %ymm0, 32(%rax)
98 ; AVX2-NEXT:    vmovaps %ymm2, (%rax)
99 ; AVX2-NEXT:    vzeroupper
100 ; AVX2-NEXT:    retq
102 ; AVX2-FP-LABEL: store_i32_stride8_vf2:
103 ; AVX2-FP:       # %bb.0:
104 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
105 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
106 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %r11
107 ; AVX2-FP-NEXT:    vmovsd {{.*#+}} xmm0 = mem[0],zero
108 ; AVX2-FP-NEXT:    vmovsd {{.*#+}} xmm1 = mem[0],zero
109 ; AVX2-FP-NEXT:    vmovlhps {{.*#+}} xmm0 = xmm1[0],xmm0[0]
110 ; AVX2-FP-NEXT:    vmovsd {{.*#+}} xmm1 = mem[0],zero
111 ; AVX2-FP-NEXT:    vmovsd {{.*#+}} xmm2 = mem[0],zero
112 ; AVX2-FP-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm2[0],xmm1[0]
113 ; AVX2-FP-NEXT:    vmovsd {{.*#+}} xmm2 = mem[0],zero
114 ; AVX2-FP-NEXT:    vmovsd {{.*#+}} xmm3 = mem[0],zero
115 ; AVX2-FP-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm3[0],xmm2[0]
116 ; AVX2-FP-NEXT:    vmovsd {{.*#+}} xmm3 = mem[0],zero
117 ; AVX2-FP-NEXT:    vmovsd {{.*#+}} xmm4 = mem[0],zero
118 ; AVX2-FP-NEXT:    vmovlhps {{.*#+}} xmm3 = xmm4[0],xmm3[0]
119 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm0
120 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm3, %ymm2, %ymm1
121 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm2 = ymm0[0,2],ymm1[0,2],ymm0[4,6],ymm1[4,6]
122 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,2,1,3]
123 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[1,3],ymm1[1,3],ymm0[5,7],ymm1[5,7]
124 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,1,3]
125 ; AVX2-FP-NEXT:    vmovaps %ymm0, 32(%rax)
126 ; AVX2-FP-NEXT:    vmovaps %ymm2, (%rax)
127 ; AVX2-FP-NEXT:    vzeroupper
128 ; AVX2-FP-NEXT:    retq
130 ; AVX2-FCP-LABEL: store_i32_stride8_vf2:
131 ; AVX2-FCP:       # %bb.0:
132 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
133 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
134 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11
135 ; AVX2-FCP-NEXT:    vmovsd {{.*#+}} xmm0 = mem[0],zero
136 ; AVX2-FCP-NEXT:    vmovsd {{.*#+}} xmm1 = mem[0],zero
137 ; AVX2-FCP-NEXT:    vmovlhps {{.*#+}} xmm0 = xmm1[0],xmm0[0]
138 ; AVX2-FCP-NEXT:    vmovsd {{.*#+}} xmm1 = mem[0],zero
139 ; AVX2-FCP-NEXT:    vmovsd {{.*#+}} xmm2 = mem[0],zero
140 ; AVX2-FCP-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm2[0],xmm1[0]
141 ; AVX2-FCP-NEXT:    vmovsd {{.*#+}} xmm2 = mem[0],zero
142 ; AVX2-FCP-NEXT:    vmovsd {{.*#+}} xmm3 = mem[0],zero
143 ; AVX2-FCP-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm3[0],xmm2[0]
144 ; AVX2-FCP-NEXT:    vmovsd {{.*#+}} xmm3 = mem[0],zero
145 ; AVX2-FCP-NEXT:    vmovsd {{.*#+}} xmm4 = mem[0],zero
146 ; AVX2-FCP-NEXT:    vmovlhps {{.*#+}} xmm3 = xmm4[0],xmm3[0]
147 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm0
148 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm3, %ymm2, %ymm1
149 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm2 = ymm0[0,2],ymm1[0,2],ymm0[4,6],ymm1[4,6]
150 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,2,1,3]
151 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[1,3],ymm1[1,3],ymm0[5,7],ymm1[5,7]
152 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,1,3]
153 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 32(%rax)
154 ; AVX2-FCP-NEXT:    vmovaps %ymm2, (%rax)
155 ; AVX2-FCP-NEXT:    vzeroupper
156 ; AVX2-FCP-NEXT:    retq
158 ; AVX512-LABEL: store_i32_stride8_vf2:
159 ; AVX512:       # %bb.0:
160 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax
161 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %r10
162 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %r11
163 ; AVX512-NEXT:    vmovq {{.*#+}} xmm0 = mem[0],zero
164 ; AVX512-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero
165 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm1[0],xmm0[0]
166 ; AVX512-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero
167 ; AVX512-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero
168 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} xmm1 = xmm2[0],xmm1[0]
169 ; AVX512-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero
170 ; AVX512-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero
171 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm3[0],xmm2[0]
172 ; AVX512-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero
173 ; AVX512-NEXT:    vmovq {{.*#+}} xmm4 = mem[0],zero
174 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm4[0],xmm3[0]
175 ; AVX512-NEXT:    vinserti128 $1, %xmm3, %ymm2, %ymm2
176 ; AVX512-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm0
177 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,2,4,6,16,18,20,22,1,3,5,7,17,19,21,23]
178 ; AVX512-NEXT:    vpermi2d %zmm2, %zmm0, %zmm1
179 ; AVX512-NEXT:    vmovdqa64 %zmm1, (%rax)
180 ; AVX512-NEXT:    vzeroupper
181 ; AVX512-NEXT:    retq
183 ; AVX512-FCP-LABEL: store_i32_stride8_vf2:
184 ; AVX512-FCP:       # %bb.0:
185 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
186 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
187 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11
188 ; AVX512-FCP-NEXT:    vmovq {{.*#+}} xmm0 = mem[0],zero
189 ; AVX512-FCP-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero
190 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm1[0],xmm0[0]
191 ; AVX512-FCP-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero
192 ; AVX512-FCP-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero
193 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm1 = xmm2[0],xmm1[0]
194 ; AVX512-FCP-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero
195 ; AVX512-FCP-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero
196 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm3[0],xmm2[0]
197 ; AVX512-FCP-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero
198 ; AVX512-FCP-NEXT:    vmovq {{.*#+}} xmm4 = mem[0],zero
199 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm4[0],xmm3[0]
200 ; AVX512-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm2, %ymm2
201 ; AVX512-FCP-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm0
202 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,2,4,6,16,18,20,22,1,3,5,7,17,19,21,23]
203 ; AVX512-FCP-NEXT:    vpermi2d %zmm2, %zmm0, %zmm1
204 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, (%rax)
205 ; AVX512-FCP-NEXT:    vzeroupper
206 ; AVX512-FCP-NEXT:    retq
208 ; AVX512DQ-LABEL: store_i32_stride8_vf2:
209 ; AVX512DQ:       # %bb.0:
210 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %rax
211 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %r10
212 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %r11
213 ; AVX512DQ-NEXT:    vmovq {{.*#+}} xmm0 = mem[0],zero
214 ; AVX512DQ-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero
215 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm1[0],xmm0[0]
216 ; AVX512DQ-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero
217 ; AVX512DQ-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero
218 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} xmm1 = xmm2[0],xmm1[0]
219 ; AVX512DQ-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero
220 ; AVX512DQ-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero
221 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm3[0],xmm2[0]
222 ; AVX512DQ-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero
223 ; AVX512DQ-NEXT:    vmovq {{.*#+}} xmm4 = mem[0],zero
224 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm4[0],xmm3[0]
225 ; AVX512DQ-NEXT:    vinserti128 $1, %xmm3, %ymm2, %ymm2
226 ; AVX512DQ-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm0
227 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,2,4,6,16,18,20,22,1,3,5,7,17,19,21,23]
228 ; AVX512DQ-NEXT:    vpermi2d %zmm2, %zmm0, %zmm1
229 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, (%rax)
230 ; AVX512DQ-NEXT:    vzeroupper
231 ; AVX512DQ-NEXT:    retq
233 ; AVX512DQ-FCP-LABEL: store_i32_stride8_vf2:
234 ; AVX512DQ-FCP:       # %bb.0:
235 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
236 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
237 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11
238 ; AVX512DQ-FCP-NEXT:    vmovq {{.*#+}} xmm0 = mem[0],zero
239 ; AVX512DQ-FCP-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero
240 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm1[0],xmm0[0]
241 ; AVX512DQ-FCP-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero
242 ; AVX512DQ-FCP-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero
243 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm1 = xmm2[0],xmm1[0]
244 ; AVX512DQ-FCP-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero
245 ; AVX512DQ-FCP-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero
246 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm3[0],xmm2[0]
247 ; AVX512DQ-FCP-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero
248 ; AVX512DQ-FCP-NEXT:    vmovq {{.*#+}} xmm4 = mem[0],zero
249 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm4[0],xmm3[0]
250 ; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm2, %ymm2
251 ; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm0
252 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,2,4,6,16,18,20,22,1,3,5,7,17,19,21,23]
253 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm2, %zmm0, %zmm1
254 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, (%rax)
255 ; AVX512DQ-FCP-NEXT:    vzeroupper
256 ; AVX512DQ-FCP-NEXT:    retq
258 ; AVX512BW-LABEL: store_i32_stride8_vf2:
259 ; AVX512BW:       # %bb.0:
260 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
261 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %r10
262 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %r11
263 ; AVX512BW-NEXT:    vmovq {{.*#+}} xmm0 = mem[0],zero
264 ; AVX512BW-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero
265 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm1[0],xmm0[0]
266 ; AVX512BW-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero
267 ; AVX512BW-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero
268 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} xmm1 = xmm2[0],xmm1[0]
269 ; AVX512BW-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero
270 ; AVX512BW-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero
271 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm3[0],xmm2[0]
272 ; AVX512BW-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero
273 ; AVX512BW-NEXT:    vmovq {{.*#+}} xmm4 = mem[0],zero
274 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm4[0],xmm3[0]
275 ; AVX512BW-NEXT:    vinserti128 $1, %xmm3, %ymm2, %ymm2
276 ; AVX512BW-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm0
277 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,2,4,6,16,18,20,22,1,3,5,7,17,19,21,23]
278 ; AVX512BW-NEXT:    vpermi2d %zmm2, %zmm0, %zmm1
279 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, (%rax)
280 ; AVX512BW-NEXT:    vzeroupper
281 ; AVX512BW-NEXT:    retq
283 ; AVX512BW-FCP-LABEL: store_i32_stride8_vf2:
284 ; AVX512BW-FCP:       # %bb.0:
285 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
286 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
287 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11
288 ; AVX512BW-FCP-NEXT:    vmovq {{.*#+}} xmm0 = mem[0],zero
289 ; AVX512BW-FCP-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero
290 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm1[0],xmm0[0]
291 ; AVX512BW-FCP-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero
292 ; AVX512BW-FCP-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero
293 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm1 = xmm2[0],xmm1[0]
294 ; AVX512BW-FCP-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero
295 ; AVX512BW-FCP-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero
296 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm3[0],xmm2[0]
297 ; AVX512BW-FCP-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero
298 ; AVX512BW-FCP-NEXT:    vmovq {{.*#+}} xmm4 = mem[0],zero
299 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm4[0],xmm3[0]
300 ; AVX512BW-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm2, %ymm2
301 ; AVX512BW-FCP-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm0
302 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,2,4,6,16,18,20,22,1,3,5,7,17,19,21,23]
303 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm2, %zmm0, %zmm1
304 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, (%rax)
305 ; AVX512BW-FCP-NEXT:    vzeroupper
306 ; AVX512BW-FCP-NEXT:    retq
308 ; AVX512DQ-BW-LABEL: store_i32_stride8_vf2:
309 ; AVX512DQ-BW:       # %bb.0:
310 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
311 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %r10
312 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %r11
313 ; AVX512DQ-BW-NEXT:    vmovq {{.*#+}} xmm0 = mem[0],zero
314 ; AVX512DQ-BW-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero
315 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm1[0],xmm0[0]
316 ; AVX512DQ-BW-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero
317 ; AVX512DQ-BW-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero
318 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} xmm1 = xmm2[0],xmm1[0]
319 ; AVX512DQ-BW-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero
320 ; AVX512DQ-BW-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero
321 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm3[0],xmm2[0]
322 ; AVX512DQ-BW-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero
323 ; AVX512DQ-BW-NEXT:    vmovq {{.*#+}} xmm4 = mem[0],zero
324 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm4[0],xmm3[0]
325 ; AVX512DQ-BW-NEXT:    vinserti128 $1, %xmm3, %ymm2, %ymm2
326 ; AVX512DQ-BW-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm0
327 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,2,4,6,16,18,20,22,1,3,5,7,17,19,21,23]
328 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm2, %zmm0, %zmm1
329 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, (%rax)
330 ; AVX512DQ-BW-NEXT:    vzeroupper
331 ; AVX512DQ-BW-NEXT:    retq
333 ; AVX512DQ-BW-FCP-LABEL: store_i32_stride8_vf2:
334 ; AVX512DQ-BW-FCP:       # %bb.0:
335 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
336 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
337 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11
338 ; AVX512DQ-BW-FCP-NEXT:    vmovq {{.*#+}} xmm0 = mem[0],zero
339 ; AVX512DQ-BW-FCP-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero
340 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm1[0],xmm0[0]
341 ; AVX512DQ-BW-FCP-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero
342 ; AVX512DQ-BW-FCP-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero
343 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm1 = xmm2[0],xmm1[0]
344 ; AVX512DQ-BW-FCP-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero
345 ; AVX512DQ-BW-FCP-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero
346 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm3[0],xmm2[0]
347 ; AVX512DQ-BW-FCP-NEXT:    vmovq {{.*#+}} xmm3 = mem[0],zero
348 ; AVX512DQ-BW-FCP-NEXT:    vmovq {{.*#+}} xmm4 = mem[0],zero
349 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm4[0],xmm3[0]
350 ; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm2, %ymm2
351 ; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm0
352 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,2,4,6,16,18,20,22,1,3,5,7,17,19,21,23]
353 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm2, %zmm0, %zmm1
354 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, (%rax)
355 ; AVX512DQ-BW-FCP-NEXT:    vzeroupper
356 ; AVX512DQ-BW-FCP-NEXT:    retq
357   %in.vec0 = load <2 x i32>, ptr %in.vecptr0, align 64
358   %in.vec1 = load <2 x i32>, ptr %in.vecptr1, align 64
359   %in.vec2 = load <2 x i32>, ptr %in.vecptr2, align 64
360   %in.vec3 = load <2 x i32>, ptr %in.vecptr3, align 64
361   %in.vec4 = load <2 x i32>, ptr %in.vecptr4, align 64
362   %in.vec5 = load <2 x i32>, ptr %in.vecptr5, align 64
363   %in.vec6 = load <2 x i32>, ptr %in.vecptr6, align 64
364   %in.vec7 = load <2 x i32>, ptr %in.vecptr7, align 64
365   %1 = shufflevector <2 x i32> %in.vec0, <2 x i32> %in.vec1, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
366   %2 = shufflevector <2 x i32> %in.vec2, <2 x i32> %in.vec3, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
367   %3 = shufflevector <2 x i32> %in.vec4, <2 x i32> %in.vec5, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
368   %4 = shufflevector <2 x i32> %in.vec6, <2 x i32> %in.vec7, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
369   %5 = shufflevector <4 x i32> %1, <4 x i32> %2, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
370   %6 = shufflevector <4 x i32> %3, <4 x i32> %4, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
371   %7 = shufflevector <8 x i32> %5, <8 x i32> %6, <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>
372   %interleaved.vec = shufflevector <16 x i32> %7, <16 x i32> poison, <16 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14, i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13, i32 15>
373   store <16 x i32> %interleaved.vec, ptr %out.vec, align 64
374   ret void
377 define void @store_i32_stride8_vf4(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %in.vecptr4, ptr %in.vecptr5, ptr %in.vecptr6, ptr %in.vecptr7, ptr %out.vec) nounwind {
378 ; SSE-LABEL: store_i32_stride8_vf4:
379 ; SSE:       # %bb.0:
380 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
381 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %r10
382 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %r11
383 ; SSE-NEXT:    movaps (%rdi), %xmm0
384 ; SSE-NEXT:    movaps (%rsi), %xmm5
385 ; SSE-NEXT:    movaps (%rdx), %xmm1
386 ; SSE-NEXT:    movaps (%rcx), %xmm6
387 ; SSE-NEXT:    movaps (%r8), %xmm2
388 ; SSE-NEXT:    movaps (%r9), %xmm7
389 ; SSE-NEXT:    movaps (%r11), %xmm8
390 ; SSE-NEXT:    movaps (%r10), %xmm9
391 ; SSE-NEXT:    movaps %xmm1, %xmm10
392 ; SSE-NEXT:    unpcklps {{.*#+}} xmm10 = xmm10[0],xmm6[0],xmm10[1],xmm6[1]
393 ; SSE-NEXT:    movaps %xmm0, %xmm4
394 ; SSE-NEXT:    unpcklps {{.*#+}} xmm4 = xmm4[0],xmm5[0],xmm4[1],xmm5[1]
395 ; SSE-NEXT:    movaps %xmm4, %xmm3
396 ; SSE-NEXT:    movlhps {{.*#+}} xmm3 = xmm3[0],xmm10[0]
397 ; SSE-NEXT:    movaps %xmm8, %xmm11
398 ; SSE-NEXT:    unpcklps {{.*#+}} xmm11 = xmm11[0],xmm9[0],xmm11[1],xmm9[1]
399 ; SSE-NEXT:    movaps %xmm2, %xmm12
400 ; SSE-NEXT:    unpcklps {{.*#+}} xmm12 = xmm12[0],xmm7[0],xmm12[1],xmm7[1]
401 ; SSE-NEXT:    movaps %xmm12, %xmm13
402 ; SSE-NEXT:    movlhps {{.*#+}} xmm13 = xmm13[0],xmm11[0]
403 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm12 = xmm12[1],xmm11[1]
404 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm10[1]
405 ; SSE-NEXT:    unpckhps {{.*#+}} xmm1 = xmm1[2],xmm6[2],xmm1[3],xmm6[3]
406 ; SSE-NEXT:    unpckhps {{.*#+}} xmm0 = xmm0[2],xmm5[2],xmm0[3],xmm5[3]
407 ; SSE-NEXT:    movaps %xmm0, %xmm5
408 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm1[0]
409 ; SSE-NEXT:    unpckhps {{.*#+}} xmm8 = xmm8[2],xmm9[2],xmm8[3],xmm9[3]
410 ; SSE-NEXT:    unpckhps {{.*#+}} xmm2 = xmm2[2],xmm7[2],xmm2[3],xmm7[3]
411 ; SSE-NEXT:    movaps %xmm2, %xmm6
412 ; SSE-NEXT:    movlhps {{.*#+}} xmm6 = xmm6[0],xmm8[0]
413 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm8[1]
414 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]
415 ; SSE-NEXT:    movaps %xmm0, 96(%rax)
416 ; SSE-NEXT:    movaps %xmm2, 112(%rax)
417 ; SSE-NEXT:    movaps %xmm6, 80(%rax)
418 ; SSE-NEXT:    movaps %xmm5, 64(%rax)
419 ; SSE-NEXT:    movaps %xmm4, 32(%rax)
420 ; SSE-NEXT:    movaps %xmm12, 48(%rax)
421 ; SSE-NEXT:    movaps %xmm13, 16(%rax)
422 ; SSE-NEXT:    movaps %xmm3, (%rax)
423 ; SSE-NEXT:    retq
425 ; AVX-LABEL: store_i32_stride8_vf4:
426 ; AVX:       # %bb.0:
427 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax
428 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %r10
429 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %r11
430 ; AVX-NEXT:    vmovaps (%rdi), %xmm0
431 ; AVX-NEXT:    vmovaps (%rsi), %xmm1
432 ; AVX-NEXT:    vmovaps (%rdx), %xmm2
433 ; AVX-NEXT:    vmovaps (%rcx), %xmm3
434 ; AVX-NEXT:    vmovaps (%r8), %xmm4
435 ; AVX-NEXT:    vmovaps (%r9), %xmm5
436 ; AVX-NEXT:    vmovaps (%r11), %xmm6
437 ; AVX-NEXT:    vmovaps (%r10), %xmm7
438 ; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm4, %ymm8
439 ; AVX-NEXT:    vinsertf128 $1, %xmm7, %ymm6, %ymm9
440 ; AVX-NEXT:    vinsertf128 $1, %xmm6, %ymm7, %ymm6
441 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm7 = ymm9[0],ymm6[0],ymm9[2],ymm6[2]
442 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm5, %ymm4
443 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm5 = ymm4[0],ymm8[0],ymm4[1],ymm8[1],ymm4[4],ymm8[4],ymm4[5],ymm8[5]
444 ; AVX-NEXT:    vshufps {{.*#+}} ymm5 = ymm5[0,1],ymm7[2,0],ymm5[4,5],ymm7[6,4]
445 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm7 = xmm3[0],xmm2[0]
446 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm10 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
447 ; AVX-NEXT:    vshufps {{.*#+}} xmm7 = xmm10[0,1],xmm7[2,0]
448 ; AVX-NEXT:    vblendps {{.*#+}} ymm5 = ymm7[0,1,2,3],ymm5[4,5,6,7]
449 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm7 = ymm6[0],ymm9[0],ymm6[1],ymm9[1],ymm6[4],ymm9[4],ymm6[5],ymm9[5]
450 ; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm8[1,0],ymm4[1,0],ymm8[5,4],ymm4[5,4]
451 ; AVX-NEXT:    vshufps {{.*#+}} ymm7 = ymm10[2,0],ymm7[2,3],ymm10[6,4],ymm7[6,7]
452 ; AVX-NEXT:    vinsertps {{.*#+}} xmm10 = xmm0[1],xmm1[1],zero,zero
453 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm11 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]
454 ; AVX-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0,1],xmm11[2,3]
455 ; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3],ymm7[4,5,6,7]
456 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm10 = ymm9[1],ymm6[1],ymm9[3],ymm6[3]
457 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm11 = ymm4[2],ymm8[2],ymm4[3],ymm8[3],ymm4[6],ymm8[6],ymm4[7],ymm8[7]
458 ; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm11[0,1],ymm10[2,0],ymm11[4,5],ymm10[6,4]
459 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm11 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]
460 ; AVX-NEXT:    vinsertps {{.*#+}} xmm12 = zero,zero,xmm2[2],xmm3[2]
461 ; AVX-NEXT:    vblendps {{.*#+}} xmm11 = xmm11[0,1],xmm12[2,3]
462 ; AVX-NEXT:    vblendps {{.*#+}} ymm10 = ymm11[0,1,2,3],ymm10[4,5,6,7]
463 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm6 = ymm6[2],ymm9[2],ymm6[3],ymm9[3],ymm6[6],ymm9[6],ymm6[7],ymm9[7]
464 ; AVX-NEXT:    vshufps {{.*#+}} ymm4 = ymm8[3,0],ymm4[3,0],ymm8[7,4],ymm4[7,4]
465 ; AVX-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[2,0],ymm6[2,3],ymm4[6,4],ymm6[6,7]
466 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm2[2],xmm3[2],xmm2[3],xmm3[3]
467 ; AVX-NEXT:    vshufps {{.*#+}} xmm0 = xmm1[3,0],xmm0[3,0]
468 ; AVX-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[2,0],xmm2[2,3]
469 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm4[4,5,6,7]
470 ; AVX-NEXT:    vmovaps %ymm0, 96(%rax)
471 ; AVX-NEXT:    vmovaps %ymm10, 64(%rax)
472 ; AVX-NEXT:    vmovaps %ymm7, 32(%rax)
473 ; AVX-NEXT:    vmovaps %ymm5, (%rax)
474 ; AVX-NEXT:    vzeroupper
475 ; AVX-NEXT:    retq
477 ; AVX2-LABEL: store_i32_stride8_vf4:
478 ; AVX2:       # %bb.0:
479 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rax
480 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %r10
481 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %r11
482 ; AVX2-NEXT:    vmovaps (%rdi), %xmm3
483 ; AVX2-NEXT:    vmovaps (%rsi), %xmm4
484 ; AVX2-NEXT:    vmovaps (%rdx), %xmm0
485 ; AVX2-NEXT:    vmovaps (%rcx), %xmm1
486 ; AVX2-NEXT:    vmovaps (%r8), %xmm5
487 ; AVX2-NEXT:    vmovaps (%r11), %xmm6
488 ; AVX2-NEXT:    vinsertf128 $1, %xmm4, %ymm3, %ymm2
489 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm7
490 ; AVX2-NEXT:    vinsertf128 $1, (%r9), %ymm5, %ymm5
491 ; AVX2-NEXT:    vinsertf128 $1, (%r10), %ymm6, %ymm8
492 ; AVX2-NEXT:    vbroadcastsd {{.*#+}} ymm6 = [0,4,0,4,0,4,0,4]
493 ; AVX2-NEXT:    vpermps %ymm8, %ymm6, %ymm9
494 ; AVX2-NEXT:    vpermps %ymm5, %ymm6, %ymm10
495 ; AVX2-NEXT:    vblendps {{.*#+}} ymm9 = ymm10[0,1,2,3,4,5],ymm9[6,7]
496 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm10 = xmm3[0],xmm4[0],xmm3[1],xmm4[1]
497 ; AVX2-NEXT:    vpermps %ymm7, %ymm6, %ymm6
498 ; AVX2-NEXT:    vblendps {{.*#+}} xmm6 = xmm10[0,1],xmm6[2,3]
499 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm9[4,5,6,7]
500 ; AVX2-NEXT:    vbroadcastsd {{.*#+}} ymm9 = [1,5,1,5,1,5,1,5]
501 ; AVX2-NEXT:    vpermps %ymm8, %ymm9, %ymm10
502 ; AVX2-NEXT:    vpermps %ymm5, %ymm9, %ymm11
503 ; AVX2-NEXT:    vblendps {{.*#+}} ymm10 = ymm11[0,1,2,3,4,5],ymm10[6,7]
504 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm11 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
505 ; AVX2-NEXT:    vpermps %ymm2, %ymm9, %ymm9
506 ; AVX2-NEXT:    vblendps {{.*#+}} xmm9 = xmm9[0,1],xmm11[2,3]
507 ; AVX2-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3],ymm10[4,5,6,7]
508 ; AVX2-NEXT:    vbroadcastsd {{.*#+}} ymm10 = [2,6,2,6,2,6,2,6]
509 ; AVX2-NEXT:    vpermps %ymm8, %ymm10, %ymm11
510 ; AVX2-NEXT:    vpermps %ymm5, %ymm10, %ymm12
511 ; AVX2-NEXT:    vblendps {{.*#+}} ymm11 = ymm12[0,1,2,3,4,5],ymm11[6,7]
512 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm3 = xmm3[2],xmm4[2],xmm3[3],xmm4[3]
513 ; AVX2-NEXT:    vpermps %ymm7, %ymm10, %ymm4
514 ; AVX2-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm4[2,3]
515 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm11[4,5,6,7]
516 ; AVX2-NEXT:    vbroadcastsd {{.*#+}} ymm4 = [3,7,3,7,3,7,3,7]
517 ; AVX2-NEXT:    vpermps %ymm8, %ymm4, %ymm7
518 ; AVX2-NEXT:    vpermps %ymm5, %ymm4, %ymm5
519 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],ymm7[6,7]
520 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]
521 ; AVX2-NEXT:    vpermps %ymm2, %ymm4, %ymm1
522 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
523 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm5[4,5,6,7]
524 ; AVX2-NEXT:    vmovaps %ymm0, 96(%rax)
525 ; AVX2-NEXT:    vmovaps %ymm3, 64(%rax)
526 ; AVX2-NEXT:    vmovaps %ymm9, 32(%rax)
527 ; AVX2-NEXT:    vmovaps %ymm6, (%rax)
528 ; AVX2-NEXT:    vzeroupper
529 ; AVX2-NEXT:    retq
531 ; AVX2-FP-LABEL: store_i32_stride8_vf4:
532 ; AVX2-FP:       # %bb.0:
533 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
534 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
535 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %r11
536 ; AVX2-FP-NEXT:    vmovaps (%rdi), %xmm3
537 ; AVX2-FP-NEXT:    vmovaps (%rsi), %xmm4
538 ; AVX2-FP-NEXT:    vmovaps (%rdx), %xmm0
539 ; AVX2-FP-NEXT:    vmovaps (%rcx), %xmm1
540 ; AVX2-FP-NEXT:    vmovaps (%r8), %xmm5
541 ; AVX2-FP-NEXT:    vmovaps (%r11), %xmm6
542 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm4, %ymm3, %ymm2
543 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm7
544 ; AVX2-FP-NEXT:    vinsertf128 $1, (%r9), %ymm5, %ymm5
545 ; AVX2-FP-NEXT:    vinsertf128 $1, (%r10), %ymm6, %ymm8
546 ; AVX2-FP-NEXT:    vbroadcastsd {{.*#+}} ymm6 = [0,4,0,4,0,4,0,4]
547 ; AVX2-FP-NEXT:    vpermps %ymm8, %ymm6, %ymm9
548 ; AVX2-FP-NEXT:    vpermps %ymm5, %ymm6, %ymm10
549 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm9 = ymm10[0,1,2,3,4,5],ymm9[6,7]
550 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm10 = xmm3[0],xmm4[0],xmm3[1],xmm4[1]
551 ; AVX2-FP-NEXT:    vpermps %ymm7, %ymm6, %ymm6
552 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm6 = xmm10[0,1],xmm6[2,3]
553 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm9[4,5,6,7]
554 ; AVX2-FP-NEXT:    vbroadcastsd {{.*#+}} ymm9 = [1,5,1,5,1,5,1,5]
555 ; AVX2-FP-NEXT:    vpermps %ymm8, %ymm9, %ymm10
556 ; AVX2-FP-NEXT:    vpermps %ymm5, %ymm9, %ymm11
557 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm10 = ymm11[0,1,2,3,4,5],ymm10[6,7]
558 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm11 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
559 ; AVX2-FP-NEXT:    vpermps %ymm2, %ymm9, %ymm9
560 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm9 = xmm9[0,1],xmm11[2,3]
561 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3],ymm10[4,5,6,7]
562 ; AVX2-FP-NEXT:    vbroadcastsd {{.*#+}} ymm10 = [2,6,2,6,2,6,2,6]
563 ; AVX2-FP-NEXT:    vpermps %ymm8, %ymm10, %ymm11
564 ; AVX2-FP-NEXT:    vpermps %ymm5, %ymm10, %ymm12
565 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm11 = ymm12[0,1,2,3,4,5],ymm11[6,7]
566 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm3 = xmm3[2],xmm4[2],xmm3[3],xmm4[3]
567 ; AVX2-FP-NEXT:    vpermps %ymm7, %ymm10, %ymm4
568 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm4[2,3]
569 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm11[4,5,6,7]
570 ; AVX2-FP-NEXT:    vbroadcastsd {{.*#+}} ymm4 = [3,7,3,7,3,7,3,7]
571 ; AVX2-FP-NEXT:    vpermps %ymm8, %ymm4, %ymm7
572 ; AVX2-FP-NEXT:    vpermps %ymm5, %ymm4, %ymm5
573 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],ymm7[6,7]
574 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]
575 ; AVX2-FP-NEXT:    vpermps %ymm2, %ymm4, %ymm1
576 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
577 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm5[4,5,6,7]
578 ; AVX2-FP-NEXT:    vmovaps %ymm0, 96(%rax)
579 ; AVX2-FP-NEXT:    vmovaps %ymm3, 64(%rax)
580 ; AVX2-FP-NEXT:    vmovaps %ymm9, 32(%rax)
581 ; AVX2-FP-NEXT:    vmovaps %ymm6, (%rax)
582 ; AVX2-FP-NEXT:    vzeroupper
583 ; AVX2-FP-NEXT:    retq
585 ; AVX2-FCP-LABEL: store_i32_stride8_vf4:
586 ; AVX2-FCP:       # %bb.0:
587 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
588 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
589 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11
590 ; AVX2-FCP-NEXT:    vmovaps (%rdi), %xmm3
591 ; AVX2-FCP-NEXT:    vmovaps (%rsi), %xmm4
592 ; AVX2-FCP-NEXT:    vmovaps (%rdx), %xmm0
593 ; AVX2-FCP-NEXT:    vmovaps (%rcx), %xmm1
594 ; AVX2-FCP-NEXT:    vmovaps (%r8), %xmm5
595 ; AVX2-FCP-NEXT:    vmovaps (%r11), %xmm6
596 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm4, %ymm3, %ymm2
597 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm7
598 ; AVX2-FCP-NEXT:    vinsertf128 $1, (%r9), %ymm5, %ymm5
599 ; AVX2-FCP-NEXT:    vinsertf128 $1, (%r10), %ymm6, %ymm8
600 ; AVX2-FCP-NEXT:    vbroadcastsd {{.*#+}} ymm6 = [0,4,0,4,0,4,0,4]
601 ; AVX2-FCP-NEXT:    vpermps %ymm8, %ymm6, %ymm9
602 ; AVX2-FCP-NEXT:    vpermps %ymm5, %ymm6, %ymm10
603 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm9 = ymm10[0,1,2,3,4,5],ymm9[6,7]
604 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm10 = xmm3[0],xmm4[0],xmm3[1],xmm4[1]
605 ; AVX2-FCP-NEXT:    vpermps %ymm7, %ymm6, %ymm6
606 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm6 = xmm10[0,1],xmm6[2,3]
607 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm9[4,5,6,7]
608 ; AVX2-FCP-NEXT:    vbroadcastsd {{.*#+}} ymm9 = [1,5,1,5,1,5,1,5]
609 ; AVX2-FCP-NEXT:    vpermps %ymm8, %ymm9, %ymm10
610 ; AVX2-FCP-NEXT:    vpermps %ymm5, %ymm9, %ymm11
611 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm10 = ymm11[0,1,2,3,4,5],ymm10[6,7]
612 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm11 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
613 ; AVX2-FCP-NEXT:    vpermps %ymm2, %ymm9, %ymm9
614 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm9 = xmm9[0,1],xmm11[2,3]
615 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3],ymm10[4,5,6,7]
616 ; AVX2-FCP-NEXT:    vbroadcastsd {{.*#+}} ymm10 = [2,6,2,6,2,6,2,6]
617 ; AVX2-FCP-NEXT:    vpermps %ymm8, %ymm10, %ymm11
618 ; AVX2-FCP-NEXT:    vpermps %ymm5, %ymm10, %ymm12
619 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm11 = ymm12[0,1,2,3,4,5],ymm11[6,7]
620 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm3 = xmm3[2],xmm4[2],xmm3[3],xmm4[3]
621 ; AVX2-FCP-NEXT:    vpermps %ymm7, %ymm10, %ymm4
622 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm4[2,3]
623 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm11[4,5,6,7]
624 ; AVX2-FCP-NEXT:    vbroadcastsd {{.*#+}} ymm4 = [3,7,3,7,3,7,3,7]
625 ; AVX2-FCP-NEXT:    vpermps %ymm8, %ymm4, %ymm7
626 ; AVX2-FCP-NEXT:    vpermps %ymm5, %ymm4, %ymm5
627 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],ymm7[6,7]
628 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]
629 ; AVX2-FCP-NEXT:    vpermps %ymm2, %ymm4, %ymm1
630 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
631 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm5[4,5,6,7]
632 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 96(%rax)
633 ; AVX2-FCP-NEXT:    vmovaps %ymm3, 64(%rax)
634 ; AVX2-FCP-NEXT:    vmovaps %ymm9, 32(%rax)
635 ; AVX2-FCP-NEXT:    vmovaps %ymm6, (%rax)
636 ; AVX2-FCP-NEXT:    vzeroupper
637 ; AVX2-FCP-NEXT:    retq
639 ; AVX512-LABEL: store_i32_stride8_vf4:
640 ; AVX512:       # %bb.0:
641 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax
642 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %r10
643 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %r11
644 ; AVX512-NEXT:    vmovdqa (%rdi), %xmm0
645 ; AVX512-NEXT:    vmovdqa (%rdx), %xmm1
646 ; AVX512-NEXT:    vmovdqa (%r8), %xmm2
647 ; AVX512-NEXT:    vmovdqa (%r11), %xmm3
648 ; AVX512-NEXT:    vinserti128 $1, (%rcx), %ymm1, %ymm1
649 ; AVX512-NEXT:    vinserti128 $1, (%rsi), %ymm0, %ymm0
650 ; AVX512-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm0
651 ; AVX512-NEXT:    vinserti128 $1, (%r10), %ymm3, %ymm1
652 ; AVX512-NEXT:    vinserti128 $1, (%r9), %ymm2, %ymm2
653 ; AVX512-NEXT:    vinserti64x4 $1, %ymm1, %zmm2, %zmm1
654 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [0,4,8,12,16,20,24,28,1,5,9,13,17,21,25,29]
655 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2
656 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [2,6,10,14,18,22,26,30,3,7,11,15,19,23,27,31]
657 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm3
658 ; AVX512-NEXT:    vmovdqa64 %zmm3, 64(%rax)
659 ; AVX512-NEXT:    vmovdqa64 %zmm2, (%rax)
660 ; AVX512-NEXT:    vzeroupper
661 ; AVX512-NEXT:    retq
663 ; AVX512-FCP-LABEL: store_i32_stride8_vf4:
664 ; AVX512-FCP:       # %bb.0:
665 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
666 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
667 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11
668 ; AVX512-FCP-NEXT:    vmovdqa (%rdi), %xmm0
669 ; AVX512-FCP-NEXT:    vmovdqa (%rdx), %xmm1
670 ; AVX512-FCP-NEXT:    vmovdqa (%r8), %xmm2
671 ; AVX512-FCP-NEXT:    vmovdqa (%r11), %xmm3
672 ; AVX512-FCP-NEXT:    vinserti128 $1, (%rcx), %ymm1, %ymm1
673 ; AVX512-FCP-NEXT:    vinserti128 $1, (%rsi), %ymm0, %ymm0
674 ; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm0
675 ; AVX512-FCP-NEXT:    vinserti128 $1, (%r10), %ymm3, %ymm1
676 ; AVX512-FCP-NEXT:    vinserti128 $1, (%r9), %ymm2, %ymm2
677 ; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm1, %zmm2, %zmm1
678 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [0,4,8,12,16,20,24,28,1,5,9,13,17,21,25,29]
679 ; AVX512-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2
680 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [2,6,10,14,18,22,26,30,3,7,11,15,19,23,27,31]
681 ; AVX512-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm3
682 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, 64(%rax)
683 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, (%rax)
684 ; AVX512-FCP-NEXT:    vzeroupper
685 ; AVX512-FCP-NEXT:    retq
687 ; AVX512DQ-LABEL: store_i32_stride8_vf4:
688 ; AVX512DQ:       # %bb.0:
689 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %rax
690 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %r10
691 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %r11
692 ; AVX512DQ-NEXT:    vmovdqa (%rdi), %xmm0
693 ; AVX512DQ-NEXT:    vmovdqa (%rdx), %xmm1
694 ; AVX512DQ-NEXT:    vmovdqa (%r8), %xmm2
695 ; AVX512DQ-NEXT:    vmovdqa (%r11), %xmm3
696 ; AVX512DQ-NEXT:    vinserti128 $1, (%rcx), %ymm1, %ymm1
697 ; AVX512DQ-NEXT:    vinserti128 $1, (%rsi), %ymm0, %ymm0
698 ; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm0
699 ; AVX512DQ-NEXT:    vinserti128 $1, (%r10), %ymm3, %ymm1
700 ; AVX512DQ-NEXT:    vinserti128 $1, (%r9), %ymm2, %ymm2
701 ; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm1, %zmm2, %zmm1
702 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [0,4,8,12,16,20,24,28,1,5,9,13,17,21,25,29]
703 ; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2
704 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [2,6,10,14,18,22,26,30,3,7,11,15,19,23,27,31]
705 ; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm0, %zmm3
706 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, 64(%rax)
707 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, (%rax)
708 ; AVX512DQ-NEXT:    vzeroupper
709 ; AVX512DQ-NEXT:    retq
711 ; AVX512DQ-FCP-LABEL: store_i32_stride8_vf4:
712 ; AVX512DQ-FCP:       # %bb.0:
713 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
714 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
715 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11
716 ; AVX512DQ-FCP-NEXT:    vmovdqa (%rdi), %xmm0
717 ; AVX512DQ-FCP-NEXT:    vmovdqa (%rdx), %xmm1
718 ; AVX512DQ-FCP-NEXT:    vmovdqa (%r8), %xmm2
719 ; AVX512DQ-FCP-NEXT:    vmovdqa (%r11), %xmm3
720 ; AVX512DQ-FCP-NEXT:    vinserti128 $1, (%rcx), %ymm1, %ymm1
721 ; AVX512DQ-FCP-NEXT:    vinserti128 $1, (%rsi), %ymm0, %ymm0
722 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm0
723 ; AVX512DQ-FCP-NEXT:    vinserti128 $1, (%r10), %ymm3, %ymm1
724 ; AVX512DQ-FCP-NEXT:    vinserti128 $1, (%r9), %ymm2, %ymm2
725 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm1, %zmm2, %zmm1
726 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [0,4,8,12,16,20,24,28,1,5,9,13,17,21,25,29]
727 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2
728 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [2,6,10,14,18,22,26,30,3,7,11,15,19,23,27,31]
729 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm3
730 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, 64(%rax)
731 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, (%rax)
732 ; AVX512DQ-FCP-NEXT:    vzeroupper
733 ; AVX512DQ-FCP-NEXT:    retq
735 ; AVX512BW-LABEL: store_i32_stride8_vf4:
736 ; AVX512BW:       # %bb.0:
737 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
738 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %r10
739 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %r11
740 ; AVX512BW-NEXT:    vmovdqa (%rdi), %xmm0
741 ; AVX512BW-NEXT:    vmovdqa (%rdx), %xmm1
742 ; AVX512BW-NEXT:    vmovdqa (%r8), %xmm2
743 ; AVX512BW-NEXT:    vmovdqa (%r11), %xmm3
744 ; AVX512BW-NEXT:    vinserti128 $1, (%rcx), %ymm1, %ymm1
745 ; AVX512BW-NEXT:    vinserti128 $1, (%rsi), %ymm0, %ymm0
746 ; AVX512BW-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm0
747 ; AVX512BW-NEXT:    vinserti128 $1, (%r10), %ymm3, %ymm1
748 ; AVX512BW-NEXT:    vinserti128 $1, (%r9), %ymm2, %ymm2
749 ; AVX512BW-NEXT:    vinserti64x4 $1, %ymm1, %zmm2, %zmm1
750 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [0,4,8,12,16,20,24,28,1,5,9,13,17,21,25,29]
751 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2
752 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [2,6,10,14,18,22,26,30,3,7,11,15,19,23,27,31]
753 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm3
754 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, 64(%rax)
755 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, (%rax)
756 ; AVX512BW-NEXT:    vzeroupper
757 ; AVX512BW-NEXT:    retq
759 ; AVX512BW-FCP-LABEL: store_i32_stride8_vf4:
760 ; AVX512BW-FCP:       # %bb.0:
761 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
762 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
763 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11
764 ; AVX512BW-FCP-NEXT:    vmovdqa (%rdi), %xmm0
765 ; AVX512BW-FCP-NEXT:    vmovdqa (%rdx), %xmm1
766 ; AVX512BW-FCP-NEXT:    vmovdqa (%r8), %xmm2
767 ; AVX512BW-FCP-NEXT:    vmovdqa (%r11), %xmm3
768 ; AVX512BW-FCP-NEXT:    vinserti128 $1, (%rcx), %ymm1, %ymm1
769 ; AVX512BW-FCP-NEXT:    vinserti128 $1, (%rsi), %ymm0, %ymm0
770 ; AVX512BW-FCP-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm0
771 ; AVX512BW-FCP-NEXT:    vinserti128 $1, (%r10), %ymm3, %ymm1
772 ; AVX512BW-FCP-NEXT:    vinserti128 $1, (%r9), %ymm2, %ymm2
773 ; AVX512BW-FCP-NEXT:    vinserti64x4 $1, %ymm1, %zmm2, %zmm1
774 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [0,4,8,12,16,20,24,28,1,5,9,13,17,21,25,29]
775 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2
776 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [2,6,10,14,18,22,26,30,3,7,11,15,19,23,27,31]
777 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm3
778 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, 64(%rax)
779 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, (%rax)
780 ; AVX512BW-FCP-NEXT:    vzeroupper
781 ; AVX512BW-FCP-NEXT:    retq
783 ; AVX512DQ-BW-LABEL: store_i32_stride8_vf4:
784 ; AVX512DQ-BW:       # %bb.0:
785 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
786 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %r10
787 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %r11
788 ; AVX512DQ-BW-NEXT:    vmovdqa (%rdi), %xmm0
789 ; AVX512DQ-BW-NEXT:    vmovdqa (%rdx), %xmm1
790 ; AVX512DQ-BW-NEXT:    vmovdqa (%r8), %xmm2
791 ; AVX512DQ-BW-NEXT:    vmovdqa (%r11), %xmm3
792 ; AVX512DQ-BW-NEXT:    vinserti128 $1, (%rcx), %ymm1, %ymm1
793 ; AVX512DQ-BW-NEXT:    vinserti128 $1, (%rsi), %ymm0, %ymm0
794 ; AVX512DQ-BW-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm0
795 ; AVX512DQ-BW-NEXT:    vinserti128 $1, (%r10), %ymm3, %ymm1
796 ; AVX512DQ-BW-NEXT:    vinserti128 $1, (%r9), %ymm2, %ymm2
797 ; AVX512DQ-BW-NEXT:    vinserti64x4 $1, %ymm1, %zmm2, %zmm1
798 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [0,4,8,12,16,20,24,28,1,5,9,13,17,21,25,29]
799 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2
800 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [2,6,10,14,18,22,26,30,3,7,11,15,19,23,27,31]
801 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm3
802 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, 64(%rax)
803 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, (%rax)
804 ; AVX512DQ-BW-NEXT:    vzeroupper
805 ; AVX512DQ-BW-NEXT:    retq
807 ; AVX512DQ-BW-FCP-LABEL: store_i32_stride8_vf4:
808 ; AVX512DQ-BW-FCP:       # %bb.0:
809 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
810 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
811 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11
812 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rdi), %xmm0
813 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rdx), %xmm1
814 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%r8), %xmm2
815 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%r11), %xmm3
816 ; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, (%rcx), %ymm1, %ymm1
817 ; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, (%rsi), %ymm0, %ymm0
818 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm0
819 ; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, (%r10), %ymm3, %ymm1
820 ; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, (%r9), %ymm2, %ymm2
821 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $1, %ymm1, %zmm2, %zmm1
822 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [0,4,8,12,16,20,24,28,1,5,9,13,17,21,25,29]
823 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2
824 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [2,6,10,14,18,22,26,30,3,7,11,15,19,23,27,31]
825 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm3
826 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, 64(%rax)
827 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, (%rax)
828 ; AVX512DQ-BW-FCP-NEXT:    vzeroupper
829 ; AVX512DQ-BW-FCP-NEXT:    retq
830   %in.vec0 = load <4 x i32>, ptr %in.vecptr0, align 64
831   %in.vec1 = load <4 x i32>, ptr %in.vecptr1, align 64
832   %in.vec2 = load <4 x i32>, ptr %in.vecptr2, align 64
833   %in.vec3 = load <4 x i32>, ptr %in.vecptr3, align 64
834   %in.vec4 = load <4 x i32>, ptr %in.vecptr4, align 64
835   %in.vec5 = load <4 x i32>, ptr %in.vecptr5, align 64
836   %in.vec6 = load <4 x i32>, ptr %in.vecptr6, align 64
837   %in.vec7 = load <4 x i32>, ptr %in.vecptr7, align 64
838   %1 = shufflevector <4 x i32> %in.vec0, <4 x i32> %in.vec1, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
839   %2 = shufflevector <4 x i32> %in.vec2, <4 x i32> %in.vec3, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
840   %3 = shufflevector <4 x i32> %in.vec4, <4 x i32> %in.vec5, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
841   %4 = shufflevector <4 x i32> %in.vec6, <4 x i32> %in.vec7, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
842   %5 = shufflevector <8 x i32> %1, <8 x i32> %2, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
843   %6 = shufflevector <8 x i32> %3, <8 x i32> %4, <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>
844   %7 = shufflevector <16 x i32> %5, <16 x i32> %6, <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>
845   %interleaved.vec = shufflevector <32 x i32> %7, <32 x i32> poison, <32 x i32> <i32 0, i32 4, i32 8, i32 12, i32 16, i32 20, i32 24, i32 28, i32 1, i32 5, i32 9, i32 13, i32 17, i32 21, i32 25, i32 29, i32 2, i32 6, i32 10, i32 14, i32 18, i32 22, i32 26, i32 30, i32 3, i32 7, i32 11, i32 15, i32 19, i32 23, i32 27, i32 31>
846   store <32 x i32> %interleaved.vec, ptr %out.vec, align 64
847   ret void
850 define void @store_i32_stride8_vf8(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %in.vecptr4, ptr %in.vecptr5, ptr %in.vecptr6, ptr %in.vecptr7, ptr %out.vec) nounwind {
851 ; SSE-LABEL: store_i32_stride8_vf8:
852 ; SSE:       # %bb.0:
853 ; SSE-NEXT:    subq $72, %rsp
854 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
855 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %r10
856 ; SSE-NEXT:    movaps (%rdi), %xmm8
857 ; SSE-NEXT:    movaps (%rsi), %xmm0
858 ; SSE-NEXT:    movaps (%rdx), %xmm9
859 ; SSE-NEXT:    movaps (%rcx), %xmm3
860 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
861 ; SSE-NEXT:    movaps (%r8), %xmm15
862 ; SSE-NEXT:    movaps 16(%r8), %xmm10
863 ; SSE-NEXT:    movaps (%r9), %xmm1
864 ; SSE-NEXT:    movaps (%r10), %xmm14
865 ; SSE-NEXT:    movaps 16(%r10), %xmm12
866 ; SSE-NEXT:    movaps (%rax), %xmm4
867 ; SSE-NEXT:    movaps 16(%rax), %xmm7
868 ; SSE-NEXT:    movaps %xmm4, %xmm2
869 ; SSE-NEXT:    movaps %xmm4, %xmm11
870 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm14[0]
871 ; SSE-NEXT:    movaps %xmm15, %xmm4
872 ; SSE-NEXT:    unpcklps {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1]
873 ; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
874 ; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[0,1],xmm2[2,0]
875 ; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
876 ; SSE-NEXT:    movaps %xmm3, %xmm2
877 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm9[0]
878 ; SSE-NEXT:    movaps %xmm8, %xmm4
879 ; SSE-NEXT:    unpcklps {{.*#+}} xmm4 = xmm4[0],xmm0[0],xmm4[1],xmm0[1]
880 ; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
881 ; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[0,1],xmm2[2,0]
882 ; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
883 ; SSE-NEXT:    movaps %xmm14, %xmm2
884 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm11[1]
885 ; SSE-NEXT:    movaps %xmm11, %xmm4
886 ; SSE-NEXT:    unpckhps {{.*#+}} xmm15 = xmm15[2],xmm1[2],xmm15[3],xmm1[3]
887 ; SSE-NEXT:    movaps %xmm15, %xmm1
888 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,1],xmm2[0,2]
889 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
890 ; SSE-NEXT:    movaps %xmm9, %xmm1
891 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm3[1]
892 ; SSE-NEXT:    unpckhps {{.*#+}} xmm8 = xmm8[2],xmm0[2],xmm8[3],xmm0[3]
893 ; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
894 ; SSE-NEXT:    movaps %xmm8, %xmm0
895 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[0,1],xmm1[0,2]
896 ; SSE-NEXT:    movaps %xmm0, (%rsp) # 16-byte Spill
897 ; SSE-NEXT:    movaps %xmm7, %xmm0
898 ; SSE-NEXT:    movaps %xmm7, %xmm3
899 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
900 ; SSE-NEXT:    movlhps {{.*#+}} xmm0 = xmm0[0],xmm12[0]
901 ; SSE-NEXT:    movaps 16(%r9), %xmm7
902 ; SSE-NEXT:    movaps %xmm10, %xmm13
903 ; SSE-NEXT:    unpcklps {{.*#+}} xmm13 = xmm13[0],xmm7[0],xmm13[1],xmm7[1]
904 ; SSE-NEXT:    movaps %xmm13, %xmm1
905 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,1],xmm0[2,0]
906 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
907 ; SSE-NEXT:    movaps 16(%rdx), %xmm6
908 ; SSE-NEXT:    movaps 16(%rcx), %xmm8
909 ; SSE-NEXT:    movaps %xmm8, %xmm11
910 ; SSE-NEXT:    movlhps {{.*#+}} xmm11 = xmm11[0],xmm6[0]
911 ; SSE-NEXT:    movaps 16(%rdi), %xmm2
912 ; SSE-NEXT:    movaps 16(%rsi), %xmm1
913 ; SSE-NEXT:    movaps %xmm2, %xmm0
914 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
915 ; SSE-NEXT:    movaps %xmm0, %xmm5
916 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm11[2,0]
917 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
918 ; SSE-NEXT:    unpckhps {{.*#+}} xmm10 = xmm10[2],xmm7[2],xmm10[3],xmm7[3]
919 ; SSE-NEXT:    movaps %xmm12, %xmm7
920 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm7 = xmm7[1],xmm3[1]
921 ; SSE-NEXT:    movaps %xmm10, %xmm3
922 ; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[0,1],xmm7[0,2]
923 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
924 ; SSE-NEXT:    unpckhps {{.*#+}} xmm2 = xmm2[2],xmm1[2],xmm2[3],xmm1[3]
925 ; SSE-NEXT:    movaps %xmm6, %xmm1
926 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm8[1]
927 ; SSE-NEXT:    movaps %xmm2, %xmm7
928 ; SSE-NEXT:    shufps {{.*#+}} xmm7 = xmm7[0,1],xmm1[0,2]
929 ; SSE-NEXT:    movaps %xmm4, %xmm1
930 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[1,1],xmm14[1,1]
931 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
932 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[2,3],xmm1[2,0]
933 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
934 ; SSE-NEXT:    movaps %xmm3, %xmm1
935 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[1,1],xmm9[1,1]
936 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload
937 ; SSE-NEXT:    shufps {{.*#+}} xmm11 = xmm11[2,3],xmm1[2,0]
938 ; SSE-NEXT:    movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
939 ; SSE-NEXT:    shufps {{.*#+}} xmm14 = xmm14[3,3],xmm4[3,3]
940 ; SSE-NEXT:    shufps {{.*#+}} xmm15 = xmm15[2,3],xmm14[0,2]
941 ; SSE-NEXT:    shufps {{.*#+}} xmm9 = xmm9[3,3],xmm3[3,3]
942 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
943 ; SSE-NEXT:    shufps {{.*#+}} xmm14 = xmm14[2,3],xmm9[0,2]
944 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload
945 ; SSE-NEXT:    movaps %xmm9, %xmm1
946 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[1,1],xmm12[1,1]
947 ; SSE-NEXT:    shufps {{.*#+}} xmm13 = xmm13[2,3],xmm1[2,0]
948 ; SSE-NEXT:    movaps %xmm8, %xmm1
949 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[1,1],xmm6[1,1]
950 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[2,3],xmm1[2,0]
951 ; SSE-NEXT:    shufps {{.*#+}} xmm12 = xmm12[3,3],xmm9[3,3]
952 ; SSE-NEXT:    shufps {{.*#+}} xmm10 = xmm10[2,3],xmm12[0,2]
953 ; SSE-NEXT:    shufps {{.*#+}} xmm6 = xmm6[3,3],xmm8[3,3]
954 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[2,3],xmm6[0,2]
955 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
956 ; SSE-NEXT:    movaps %xmm2, 224(%rax)
957 ; SSE-NEXT:    movaps %xmm10, 240(%rax)
958 ; SSE-NEXT:    movaps %xmm0, 160(%rax)
959 ; SSE-NEXT:    movaps %xmm13, 176(%rax)
960 ; SSE-NEXT:    movaps %xmm14, 96(%rax)
961 ; SSE-NEXT:    movaps %xmm15, 112(%rax)
962 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
963 ; SSE-NEXT:    movaps %xmm0, 32(%rax)
964 ; SSE-NEXT:    movaps %xmm5, 48(%rax)
965 ; SSE-NEXT:    movaps %xmm7, 192(%rax)
966 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
967 ; SSE-NEXT:    movaps %xmm0, 208(%rax)
968 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
969 ; SSE-NEXT:    movaps %xmm0, 128(%rax)
970 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
971 ; SSE-NEXT:    movaps %xmm0, 144(%rax)
972 ; SSE-NEXT:    movaps (%rsp), %xmm0 # 16-byte Reload
973 ; SSE-NEXT:    movaps %xmm0, 64(%rax)
974 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
975 ; SSE-NEXT:    movaps %xmm0, 80(%rax)
976 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
977 ; SSE-NEXT:    movaps %xmm0, (%rax)
978 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
979 ; SSE-NEXT:    movaps %xmm0, 16(%rax)
980 ; SSE-NEXT:    addq $72, %rsp
981 ; SSE-NEXT:    retq
983 ; AVX-LABEL: store_i32_stride8_vf8:
984 ; AVX:       # %bb.0:
985 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax
986 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %r10
987 ; AVX-NEXT:    vmovaps (%rdi), %ymm3
988 ; AVX-NEXT:    vmovaps (%rsi), %ymm5
989 ; AVX-NEXT:    vmovaps (%rdx), %ymm4
990 ; AVX-NEXT:    vmovaps (%rcx), %ymm6
991 ; AVX-NEXT:    vmovaps (%r8), %ymm7
992 ; AVX-NEXT:    vmovaps (%r9), %ymm8
993 ; AVX-NEXT:    vmovaps (%r10), %ymm9
994 ; AVX-NEXT:    vmovaps (%rax), %ymm10
995 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm9[0],ymm10[0],ymm9[1],ymm10[1],ymm9[4],ymm10[4],ymm9[5],ymm10[5]
996 ; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm8[1,0],ymm7[1,0],ymm8[5,4],ymm7[5,4]
997 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[2,0],ymm0[2,3],ymm1[6,4],ymm0[6,7]
998 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm4[0],ymm6[0],ymm4[1],ymm6[1],ymm4[4],ymm6[4],ymm4[5],ymm6[5]
999 ; AVX-NEXT:    vextractf128 $1, %ymm1, %xmm1
1000 ; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm5[1,0],ymm3[1,0],ymm5[5,4],ymm3[5,4]
1001 ; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[2,0,2,3,6,4,6,7]
1002 ; AVX-NEXT:    vextractf128 $1, %ymm2, %xmm2
1003 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
1004 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
1005 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1006 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm9[2],ymm10[2],ymm9[3],ymm10[3],ymm9[6],ymm10[6],ymm9[7],ymm10[7]
1007 ; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm8[3,0],ymm7[3,0],ymm8[7,4],ymm7[7,4]
1008 ; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm2[2,0],ymm1[2,3],ymm2[6,4],ymm1[6,7]
1009 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm4[2],ymm6[2],ymm4[3],ymm6[3],ymm4[6],ymm6[6],ymm4[7],ymm6[7]
1010 ; AVX-NEXT:    vextractf128 $1, %ymm2, %xmm2
1011 ; AVX-NEXT:    vshufps {{.*#+}} ymm11 = ymm5[3,0],ymm3[3,0],ymm5[7,4],ymm3[7,4]
1012 ; AVX-NEXT:    vshufps {{.*#+}} ymm11 = ymm11[2,0,2,3,6,4,6,7]
1013 ; AVX-NEXT:    vextractf128 $1, %ymm11, %xmm11
1014 ; AVX-NEXT:    vblendps {{.*#+}} xmm2 = xmm11[0,1],xmm2[2,3]
1015 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm1[4,5,6,7]
1016 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1017 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm10[1],ymm9[1],ymm10[3],ymm9[3]
1018 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm11 = ymm7[2],ymm8[2],ymm7[3],ymm8[3],ymm7[6],ymm8[6],ymm7[7],ymm8[7]
1019 ; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm11[0,1],ymm2[2,0],ymm11[4,5],ymm2[6,4]
1020 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm11 = ymm3[2],ymm5[2],ymm3[3],ymm5[3],ymm3[6],ymm5[6],ymm3[7],ymm5[7]
1021 ; AVX-NEXT:    vextractf128 $1, %ymm11, %xmm11
1022 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm12 = ymm6[1],ymm4[1],ymm6[3],ymm4[3]
1023 ; AVX-NEXT:    vshufps {{.*#+}} ymm12 = ymm12[0,1,2,0,4,5,6,4]
1024 ; AVX-NEXT:    vextractf128 $1, %ymm12, %xmm12
1025 ; AVX-NEXT:    vblendps {{.*#+}} xmm11 = xmm11[0,1],xmm12[2,3]
1026 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm11[0,1,2,3],ymm2[4,5,6,7]
1027 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1028 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm9 = ymm10[0],ymm9[0],ymm10[2],ymm9[2]
1029 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm7 = ymm7[0],ymm8[0],ymm7[1],ymm8[1],ymm7[4],ymm8[4],ymm7[5],ymm8[5]
1030 ; AVX-NEXT:    vshufps {{.*#+}} ymm7 = ymm7[0,1],ymm9[2,0],ymm7[4,5],ymm9[6,4]
1031 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm3 = ymm3[0],ymm5[0],ymm3[1],ymm5[1],ymm3[4],ymm5[4],ymm3[5],ymm5[5]
1032 ; AVX-NEXT:    vextractf128 $1, %ymm3, %xmm3
1033 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm6[0],ymm4[0],ymm6[2],ymm4[2]
1034 ; AVX-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[0,1,2,0,4,5,6,4]
1035 ; AVX-NEXT:    vextractf128 $1, %ymm4, %xmm4
1036 ; AVX-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm4[2,3]
1037 ; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm7[4,5,6,7]
1038 ; AVX-NEXT:    vmovaps (%rcx), %xmm4
1039 ; AVX-NEXT:    vmovaps (%rdx), %xmm5
1040 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm9 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
1041 ; AVX-NEXT:    vmovaps (%rsi), %xmm10
1042 ; AVX-NEXT:    vmovaps (%rdi), %xmm11
1043 ; AVX-NEXT:    vmovaps (%rax), %xmm6
1044 ; AVX-NEXT:    vmovaps (%r10), %xmm7
1045 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm12 = xmm7[0],xmm6[0],xmm7[1],xmm6[1]
1046 ; AVX-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm8
1047 ; AVX-NEXT:    vmovaps (%r9), %xmm13
1048 ; AVX-NEXT:    vmovaps (%r8), %xmm14
1049 ; AVX-NEXT:    vshufps {{.*#+}} xmm15 = xmm14[1,1,1,1]
1050 ; AVX-NEXT:    vblendps {{.*#+}} xmm15 = xmm15[0],xmm13[1],xmm15[2,3]
1051 ; AVX-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm15
1052 ; AVX-NEXT:    vblendps {{.*#+}} ymm8 = ymm15[0,1,2,3,4,5],ymm8[6,7]
1053 ; AVX-NEXT:    vshufps {{.*#+}} xmm15 = xmm11[1,1,1,1]
1054 ; AVX-NEXT:    vblendps {{.*#+}} xmm15 = xmm15[0],xmm10[1],xmm15[2,3]
1055 ; AVX-NEXT:    vblendps {{.*#+}} xmm15 = xmm15[0,1],xmm9[2,3]
1056 ; AVX-NEXT:    vblendps {{.*#+}} ymm8 = ymm15[0,1,2,3],ymm8[4,5,6,7]
1057 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm15 = xmm7[2],xmm6[2],xmm7[3],xmm6[3]
1058 ; AVX-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm15
1059 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm14[2],xmm13[2],xmm14[3],xmm13[3]
1060 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm2[2,3,2,3]
1061 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
1062 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm15[6,7]
1063 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm15 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
1064 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm11[2],xmm10[2],xmm11[3],xmm10[3]
1065 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm15 = xmm0[1],xmm15[1]
1066 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm15[0,1,2,3],ymm1[4,5,6,7]
1067 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm10 = xmm11[0],xmm10[0],xmm11[1],xmm10[1]
1068 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm9 = xmm10[0],xmm9[0]
1069 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm10 = xmm14[0],xmm13[0],xmm14[1],xmm13[1]
1070 ; AVX-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
1071 ; AVX-NEXT:    vshufps {{.*#+}} xmm11 = xmm12[0,1,0,1]
1072 ; AVX-NEXT:    vinsertf128 $1, %xmm11, %ymm0, %ymm11
1073 ; AVX-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1,2,3,4,5],ymm11[6,7]
1074 ; AVX-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3],ymm10[4,5,6,7]
1075 ; AVX-NEXT:    vshufps {{.*#+}} xmm4 = xmm4[2,2,2,2]
1076 ; AVX-NEXT:    vblendps {{.*#+}} xmm4 = xmm5[0,1,2],xmm4[3]
1077 ; AVX-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm4[2,3]
1078 ; AVX-NEXT:    vshufps {{.*#+}} xmm4 = xmm6[2,2,2,2]
1079 ; AVX-NEXT:    vblendps {{.*#+}} xmm4 = xmm7[0,1,2],xmm4[3]
1080 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
1081 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
1082 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm4[6,7]
1083 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
1084 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1085 ; AVX-NEXT:    vmovaps %ymm0, 64(%rax)
1086 ; AVX-NEXT:    vmovaps %ymm9, (%rax)
1087 ; AVX-NEXT:    vmovaps %ymm1, 96(%rax)
1088 ; AVX-NEXT:    vmovaps %ymm8, 32(%rax)
1089 ; AVX-NEXT:    vmovaps %ymm3, 128(%rax)
1090 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1091 ; AVX-NEXT:    vmovaps %ymm0, 192(%rax)
1092 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1093 ; AVX-NEXT:    vmovaps %ymm0, 224(%rax)
1094 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1095 ; AVX-NEXT:    vmovaps %ymm0, 160(%rax)
1096 ; AVX-NEXT:    vzeroupper
1097 ; AVX-NEXT:    retq
1099 ; AVX2-LABEL: store_i32_stride8_vf8:
1100 ; AVX2:       # %bb.0:
1101 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1102 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %r10
1103 ; AVX2-NEXT:    vmovaps (%rdi), %ymm3
1104 ; AVX2-NEXT:    vmovaps (%rsi), %ymm4
1105 ; AVX2-NEXT:    vmovaps (%rdx), %ymm1
1106 ; AVX2-NEXT:    vmovaps (%rcx), %ymm2
1107 ; AVX2-NEXT:    vmovaps (%r8), %ymm5
1108 ; AVX2-NEXT:    vmovaps (%r9), %ymm6
1109 ; AVX2-NEXT:    vmovaps (%r10), %ymm9
1110 ; AVX2-NEXT:    vmovaps (%rax), %ymm10
1111 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm7 = ymm9[0],ymm10[0],ymm9[1],ymm10[1],ymm9[4],ymm10[4],ymm9[5],ymm10[5]
1112 ; AVX2-NEXT:    vbroadcastss 20(%r8), %ymm0
1113 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm6[5],ymm0[6,7]
1114 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm7[6,7]
1115 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm8 = ymm1[0],ymm2[0],ymm1[1],ymm2[1],ymm1[4],ymm2[4],ymm1[5],ymm2[5]
1116 ; AVX2-NEXT:    vextractf128 $1, %ymm8, %xmm11
1117 ; AVX2-NEXT:    vshufps {{.*#+}} ymm12 = ymm3[1,1,1,1,5,5,5,5]
1118 ; AVX2-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0],ymm4[1],ymm12[2,3,4],ymm4[5],ymm12[6,7]
1119 ; AVX2-NEXT:    vextractf128 $1, %ymm12, %xmm12
1120 ; AVX2-NEXT:    vblendps {{.*#+}} xmm11 = xmm12[0,1],xmm11[2,3]
1121 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm11[0,1,2,3],ymm0[4,5,6,7]
1122 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1123 ; AVX2-NEXT:    vbroadcastss 28(%r10), %ymm11
1124 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm10 = ymm11[2],ymm10[2],ymm11[3],ymm10[3],ymm11[6],ymm10[6],ymm11[7],ymm10[7]
1125 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm11 = ymm5[2],ymm6[2],ymm5[3],ymm6[3],ymm5[6],ymm6[6],ymm5[7],ymm6[7]
1126 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm10 = ymm11[1],ymm10[1],ymm11[3],ymm10[3]
1127 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm1[2],ymm2[2],ymm1[3],ymm2[3],ymm1[6],ymm2[6],ymm1[7],ymm2[7]
1128 ; AVX2-NEXT:    vextractf128 $1, %ymm2, %xmm1
1129 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm12 = ymm3[2],ymm4[2],ymm3[3],ymm4[3],ymm3[6],ymm4[6],ymm3[7],ymm4[7]
1130 ; AVX2-NEXT:    vshufps {{.*#+}} ymm13 = ymm12[2,3,2,3,6,7,6,7]
1131 ; AVX2-NEXT:    vextractf128 $1, %ymm13, %xmm13
1132 ; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm13[0,1],xmm1[2,3]
1133 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm10[4,5,6,7]
1134 ; AVX2-NEXT:    vbroadcastss 24(%rax), %ymm10
1135 ; AVX2-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5,6],ymm10[7]
1136 ; AVX2-NEXT:    vblendps {{.*#+}} ymm9 = ymm11[0,1,2,3,4,5],ymm9[6,7]
1137 ; AVX2-NEXT:    vextractf128 $1, %ymm12, %xmm10
1138 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[2,2,2,2]
1139 ; AVX2-NEXT:    vblendps {{.*#+}} xmm2 = xmm10[0,1],xmm2[2,3]
1140 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm9[4,5,6,7]
1141 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm5 = ymm5[0],ymm6[0],ymm5[1],ymm6[1],ymm5[4],ymm6[4],ymm5[5],ymm6[5]
1142 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm5 = ymm5[0],ymm7[0],ymm5[2],ymm7[2]
1143 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm3 = ymm3[0],ymm4[0],ymm3[1],ymm4[1],ymm3[4],ymm4[4],ymm3[5],ymm4[5]
1144 ; AVX2-NEXT:    vextractf128 $1, %ymm3, %xmm3
1145 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm4 = ymm8[2,2,2,2]
1146 ; AVX2-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm4[2,3]
1147 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm5[4,5,6,7]
1148 ; AVX2-NEXT:    vmovaps (%rcx), %xmm4
1149 ; AVX2-NEXT:    vmovaps (%rdx), %xmm5
1150 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm6 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
1151 ; AVX2-NEXT:    vmovaps (%rsi), %xmm9
1152 ; AVX2-NEXT:    vmovaps (%rdi), %xmm10
1153 ; AVX2-NEXT:    vshufps {{.*#+}} xmm7 = xmm10[1,1,1,1]
1154 ; AVX2-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0],xmm9[1],xmm7[2,3]
1155 ; AVX2-NEXT:    vblendps {{.*#+}} xmm8 = xmm7[0,1],xmm6[2,3]
1156 ; AVX2-NEXT:    vmovaps (%rax), %xmm6
1157 ; AVX2-NEXT:    vmovaps (%r10), %xmm7
1158 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm11 = xmm7[0],xmm6[0],xmm7[1],xmm6[1]
1159 ; AVX2-NEXT:    vinsertf128 $1, %xmm11, %ymm0, %ymm11
1160 ; AVX2-NEXT:    vmovaps (%r9), %xmm12
1161 ; AVX2-NEXT:    vmovaps (%r8), %xmm13
1162 ; AVX2-NEXT:    vshufps {{.*#+}} xmm14 = xmm13[1,1,1,1]
1163 ; AVX2-NEXT:    vblendps {{.*#+}} xmm14 = xmm14[0],xmm12[1],xmm14[2,3]
1164 ; AVX2-NEXT:    vinsertf128 $1, %xmm14, %ymm0, %ymm14
1165 ; AVX2-NEXT:    vblendps {{.*#+}} ymm11 = ymm14[0,1,2,3,4,5],ymm11[6,7]
1166 ; AVX2-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm11[4,5,6,7]
1167 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm11 = xmm7[2],xmm6[2],xmm7[3],xmm6[3]
1168 ; AVX2-NEXT:    vinsertf128 $1, %xmm11, %ymm0, %ymm11
1169 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm14 = xmm13[2],xmm12[2],xmm13[3],xmm12[3]
1170 ; AVX2-NEXT:    vshufps {{.*#+}} xmm15 = xmm14[2,3,2,3]
1171 ; AVX2-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm15
1172 ; AVX2-NEXT:    vblendps {{.*#+}} ymm11 = ymm15[0,1,2,3,4,5],ymm11[6,7]
1173 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm15 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
1174 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm10[2],xmm9[2],xmm10[3],xmm9[3]
1175 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm15 = xmm0[1],xmm15[1]
1176 ; AVX2-NEXT:    vblendps {{.*#+}} ymm11 = ymm15[0,1,2,3],ymm11[4,5,6,7]
1177 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm9 = xmm10[0],xmm9[0],xmm10[1],xmm9[1]
1178 ; AVX2-NEXT:    vbroadcastss %xmm4, %xmm10
1179 ; AVX2-NEXT:    vbroadcastss %xmm5, %xmm15
1180 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm10 = xmm15[0],xmm10[0],xmm15[1],xmm10[1]
1181 ; AVX2-NEXT:    vblendps {{.*#+}} xmm9 = xmm9[0,1],xmm10[2,3]
1182 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm10 = xmm13[0],xmm12[0],xmm13[1],xmm12[1]
1183 ; AVX2-NEXT:    vbroadcastss %xmm6, %xmm12
1184 ; AVX2-NEXT:    vbroadcastss %xmm7, %xmm13
1185 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm12 = xmm13[0],xmm12[0],xmm13[1],xmm12[1]
1186 ; AVX2-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
1187 ; AVX2-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm12
1188 ; AVX2-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1,2,3,4,5],ymm12[6,7]
1189 ; AVX2-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3],ymm10[4,5,6,7]
1190 ; AVX2-NEXT:    vshufps {{.*#+}} xmm4 = xmm4[2,2,2,2]
1191 ; AVX2-NEXT:    vblendps {{.*#+}} xmm4 = xmm5[0,1,2],xmm4[3]
1192 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm4[2,3]
1193 ; AVX2-NEXT:    vshufps {{.*#+}} xmm4 = xmm6[2,2,2,2]
1194 ; AVX2-NEXT:    vblendps {{.*#+}} xmm4 = xmm7[0,1,2],xmm4[3]
1195 ; AVX2-NEXT:    vinsertf128 $1, %xmm14, %ymm0, %ymm5
1196 ; AVX2-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
1197 ; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1,2,3,4,5],ymm4[6,7]
1198 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm4[4,5,6,7]
1199 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1200 ; AVX2-NEXT:    vmovaps %ymm0, 64(%rax)
1201 ; AVX2-NEXT:    vmovaps %ymm9, (%rax)
1202 ; AVX2-NEXT:    vmovaps %ymm11, 96(%rax)
1203 ; AVX2-NEXT:    vmovaps %ymm8, 32(%rax)
1204 ; AVX2-NEXT:    vmovaps %ymm3, 128(%rax)
1205 ; AVX2-NEXT:    vmovaps %ymm2, 192(%rax)
1206 ; AVX2-NEXT:    vmovaps %ymm1, 224(%rax)
1207 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1208 ; AVX2-NEXT:    vmovaps %ymm0, 160(%rax)
1209 ; AVX2-NEXT:    vzeroupper
1210 ; AVX2-NEXT:    retq
1212 ; AVX2-FP-LABEL: store_i32_stride8_vf8:
1213 ; AVX2-FP:       # %bb.0:
1214 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1215 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
1216 ; AVX2-FP-NEXT:    vmovaps (%rdi), %ymm3
1217 ; AVX2-FP-NEXT:    vmovaps (%rsi), %ymm4
1218 ; AVX2-FP-NEXT:    vmovaps (%rdx), %ymm1
1219 ; AVX2-FP-NEXT:    vmovaps (%rcx), %ymm2
1220 ; AVX2-FP-NEXT:    vmovaps (%r8), %ymm5
1221 ; AVX2-FP-NEXT:    vmovaps (%r9), %ymm6
1222 ; AVX2-FP-NEXT:    vmovaps (%r10), %ymm9
1223 ; AVX2-FP-NEXT:    vmovaps (%rax), %ymm10
1224 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm7 = ymm9[0],ymm10[0],ymm9[1],ymm10[1],ymm9[4],ymm10[4],ymm9[5],ymm10[5]
1225 ; AVX2-FP-NEXT:    vbroadcastss 20(%r8), %ymm0
1226 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm6[5],ymm0[6,7]
1227 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm7[6,7]
1228 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm8 = ymm1[0],ymm2[0],ymm1[1],ymm2[1],ymm1[4],ymm2[4],ymm1[5],ymm2[5]
1229 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm8, %xmm11
1230 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm12 = ymm3[1,1,1,1,5,5,5,5]
1231 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0],ymm4[1],ymm12[2,3,4],ymm4[5],ymm12[6,7]
1232 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm12, %xmm12
1233 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm11 = xmm12[0,1],xmm11[2,3]
1234 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm11[0,1,2,3],ymm0[4,5,6,7]
1235 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1236 ; AVX2-FP-NEXT:    vbroadcastss 28(%r10), %ymm11
1237 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm10 = ymm11[2],ymm10[2],ymm11[3],ymm10[3],ymm11[6],ymm10[6],ymm11[7],ymm10[7]
1238 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm11 = ymm5[2],ymm6[2],ymm5[3],ymm6[3],ymm5[6],ymm6[6],ymm5[7],ymm6[7]
1239 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm10 = ymm11[1],ymm10[1],ymm11[3],ymm10[3]
1240 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm1[2],ymm2[2],ymm1[3],ymm2[3],ymm1[6],ymm2[6],ymm1[7],ymm2[7]
1241 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm2, %xmm1
1242 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm12 = ymm3[2],ymm4[2],ymm3[3],ymm4[3],ymm3[6],ymm4[6],ymm3[7],ymm4[7]
1243 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm13 = ymm12[2,3,2,3,6,7,6,7]
1244 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm13, %xmm13
1245 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm13[0,1],xmm1[2,3]
1246 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm10[4,5,6,7]
1247 ; AVX2-FP-NEXT:    vbroadcastss 24(%rax), %ymm10
1248 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5,6],ymm10[7]
1249 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm9 = ymm11[0,1,2,3,4,5],ymm9[6,7]
1250 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm12, %xmm10
1251 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[2,2,2,2]
1252 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm2 = xmm10[0,1],xmm2[2,3]
1253 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm9[4,5,6,7]
1254 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm5 = ymm5[0],ymm6[0],ymm5[1],ymm6[1],ymm5[4],ymm6[4],ymm5[5],ymm6[5]
1255 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm5 = ymm5[0],ymm7[0],ymm5[2],ymm7[2]
1256 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm3 = ymm3[0],ymm4[0],ymm3[1],ymm4[1],ymm3[4],ymm4[4],ymm3[5],ymm4[5]
1257 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm3, %xmm3
1258 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm4 = ymm8[2,2,2,2]
1259 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm4[2,3]
1260 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm5[4,5,6,7]
1261 ; AVX2-FP-NEXT:    vmovaps (%rcx), %xmm4
1262 ; AVX2-FP-NEXT:    vmovaps (%rdx), %xmm5
1263 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm6 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
1264 ; AVX2-FP-NEXT:    vmovaps (%rsi), %xmm9
1265 ; AVX2-FP-NEXT:    vmovaps (%rdi), %xmm10
1266 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm7 = xmm10[1,1,1,1]
1267 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0],xmm9[1],xmm7[2,3]
1268 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm8 = xmm7[0,1],xmm6[2,3]
1269 ; AVX2-FP-NEXT:    vmovaps (%rax), %xmm6
1270 ; AVX2-FP-NEXT:    vmovaps (%r10), %xmm7
1271 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm11 = xmm7[0],xmm6[0],xmm7[1],xmm6[1]
1272 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm11, %ymm0, %ymm11
1273 ; AVX2-FP-NEXT:    vmovaps (%r9), %xmm12
1274 ; AVX2-FP-NEXT:    vmovaps (%r8), %xmm13
1275 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm14 = xmm13[1,1,1,1]
1276 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm14 = xmm14[0],xmm12[1],xmm14[2,3]
1277 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm14, %ymm0, %ymm14
1278 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm11 = ymm14[0,1,2,3,4,5],ymm11[6,7]
1279 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm11[4,5,6,7]
1280 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm11 = xmm7[2],xmm6[2],xmm7[3],xmm6[3]
1281 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm11, %ymm0, %ymm11
1282 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm14 = xmm13[2],xmm12[2],xmm13[3],xmm12[3]
1283 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm15 = xmm14[2,3,2,3]
1284 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm15
1285 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm11 = ymm15[0,1,2,3,4,5],ymm11[6,7]
1286 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm15 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
1287 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm10[2],xmm9[2],xmm10[3],xmm9[3]
1288 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm15 = xmm0[1],xmm15[1]
1289 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm11 = ymm15[0,1,2,3],ymm11[4,5,6,7]
1290 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm9 = xmm10[0],xmm9[0],xmm10[1],xmm9[1]
1291 ; AVX2-FP-NEXT:    vbroadcastss %xmm4, %xmm10
1292 ; AVX2-FP-NEXT:    vbroadcastss %xmm5, %xmm15
1293 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm10 = xmm15[0],xmm10[0],xmm15[1],xmm10[1]
1294 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm9 = xmm9[0,1],xmm10[2,3]
1295 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm10 = xmm13[0],xmm12[0],xmm13[1],xmm12[1]
1296 ; AVX2-FP-NEXT:    vbroadcastss %xmm6, %xmm12
1297 ; AVX2-FP-NEXT:    vbroadcastss %xmm7, %xmm13
1298 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm12 = xmm13[0],xmm12[0],xmm13[1],xmm12[1]
1299 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
1300 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm12
1301 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1,2,3,4,5],ymm12[6,7]
1302 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3],ymm10[4,5,6,7]
1303 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm4 = xmm4[2,2,2,2]
1304 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm4 = xmm5[0,1,2],xmm4[3]
1305 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm4[2,3]
1306 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm4 = xmm6[2,2,2,2]
1307 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm4 = xmm7[0,1,2],xmm4[3]
1308 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm14, %ymm0, %ymm5
1309 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
1310 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1,2,3,4,5],ymm4[6,7]
1311 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm4[4,5,6,7]
1312 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1313 ; AVX2-FP-NEXT:    vmovaps %ymm0, 64(%rax)
1314 ; AVX2-FP-NEXT:    vmovaps %ymm9, (%rax)
1315 ; AVX2-FP-NEXT:    vmovaps %ymm11, 96(%rax)
1316 ; AVX2-FP-NEXT:    vmovaps %ymm8, 32(%rax)
1317 ; AVX2-FP-NEXT:    vmovaps %ymm3, 128(%rax)
1318 ; AVX2-FP-NEXT:    vmovaps %ymm2, 192(%rax)
1319 ; AVX2-FP-NEXT:    vmovaps %ymm1, 224(%rax)
1320 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1321 ; AVX2-FP-NEXT:    vmovaps %ymm0, 160(%rax)
1322 ; AVX2-FP-NEXT:    vzeroupper
1323 ; AVX2-FP-NEXT:    retq
1325 ; AVX2-FCP-LABEL: store_i32_stride8_vf8:
1326 ; AVX2-FCP:       # %bb.0:
1327 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1328 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
1329 ; AVX2-FCP-NEXT:    vmovaps (%rdi), %ymm3
1330 ; AVX2-FCP-NEXT:    vmovaps (%rsi), %ymm4
1331 ; AVX2-FCP-NEXT:    vmovaps (%rdx), %ymm1
1332 ; AVX2-FCP-NEXT:    vmovaps (%rcx), %ymm2
1333 ; AVX2-FCP-NEXT:    vmovaps (%r8), %ymm5
1334 ; AVX2-FCP-NEXT:    vmovaps (%r9), %ymm6
1335 ; AVX2-FCP-NEXT:    vmovaps (%r10), %ymm9
1336 ; AVX2-FCP-NEXT:    vmovaps (%rax), %ymm10
1337 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm7 = ymm9[0],ymm10[0],ymm9[1],ymm10[1],ymm9[4],ymm10[4],ymm9[5],ymm10[5]
1338 ; AVX2-FCP-NEXT:    vbroadcastss 20(%r8), %ymm0
1339 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm6[5],ymm0[6,7]
1340 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm7[6,7]
1341 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm8 = ymm1[0],ymm2[0],ymm1[1],ymm2[1],ymm1[4],ymm2[4],ymm1[5],ymm2[5]
1342 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm8, %xmm11
1343 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm12 = ymm3[1,1,1,1,5,5,5,5]
1344 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0],ymm4[1],ymm12[2,3,4],ymm4[5],ymm12[6,7]
1345 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm12, %xmm12
1346 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm11 = xmm12[0,1],xmm11[2,3]
1347 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm11[0,1,2,3],ymm0[4,5,6,7]
1348 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1349 ; AVX2-FCP-NEXT:    vbroadcastss 28(%r10), %ymm11
1350 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm10 = ymm11[2],ymm10[2],ymm11[3],ymm10[3],ymm11[6],ymm10[6],ymm11[7],ymm10[7]
1351 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm11 = ymm5[2],ymm6[2],ymm5[3],ymm6[3],ymm5[6],ymm6[6],ymm5[7],ymm6[7]
1352 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm10 = ymm11[1],ymm10[1],ymm11[3],ymm10[3]
1353 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm1[2],ymm2[2],ymm1[3],ymm2[3],ymm1[6],ymm2[6],ymm1[7],ymm2[7]
1354 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm2, %xmm1
1355 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm12 = ymm3[2],ymm4[2],ymm3[3],ymm4[3],ymm3[6],ymm4[6],ymm3[7],ymm4[7]
1356 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm13 = ymm12[2,3,2,3,6,7,6,7]
1357 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm13, %xmm13
1358 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm13[0,1],xmm1[2,3]
1359 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm10[4,5,6,7]
1360 ; AVX2-FCP-NEXT:    vbroadcastss 24(%rax), %ymm10
1361 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5,6],ymm10[7]
1362 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm9 = ymm11[0,1,2,3,4,5],ymm9[6,7]
1363 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm12, %xmm10
1364 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[2,2,2,2]
1365 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm2 = xmm10[0,1],xmm2[2,3]
1366 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm9[4,5,6,7]
1367 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm5 = ymm5[0],ymm6[0],ymm5[1],ymm6[1],ymm5[4],ymm6[4],ymm5[5],ymm6[5]
1368 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm5 = ymm5[0],ymm7[0],ymm5[2],ymm7[2]
1369 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm3 = ymm3[0],ymm4[0],ymm3[1],ymm4[1],ymm3[4],ymm4[4],ymm3[5],ymm4[5]
1370 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm3, %xmm3
1371 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm4 = ymm8[2,2,2,2]
1372 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm4[2,3]
1373 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm5[4,5,6,7]
1374 ; AVX2-FCP-NEXT:    vmovaps (%rcx), %xmm4
1375 ; AVX2-FCP-NEXT:    vmovaps (%rdx), %xmm5
1376 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm6 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
1377 ; AVX2-FCP-NEXT:    vmovaps (%rsi), %xmm9
1378 ; AVX2-FCP-NEXT:    vmovaps (%rdi), %xmm10
1379 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm7 = xmm10[1,1,1,1]
1380 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0],xmm9[1],xmm7[2,3]
1381 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm8 = xmm7[0,1],xmm6[2,3]
1382 ; AVX2-FCP-NEXT:    vmovaps (%rax), %xmm6
1383 ; AVX2-FCP-NEXT:    vmovaps (%r10), %xmm7
1384 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm11 = xmm7[0],xmm6[0],xmm7[1],xmm6[1]
1385 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm11, %ymm0, %ymm11
1386 ; AVX2-FCP-NEXT:    vmovaps (%r9), %xmm12
1387 ; AVX2-FCP-NEXT:    vmovaps (%r8), %xmm13
1388 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm14 = xmm13[1,1,1,1]
1389 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm14 = xmm14[0],xmm12[1],xmm14[2,3]
1390 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm14, %ymm0, %ymm14
1391 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm11 = ymm14[0,1,2,3,4,5],ymm11[6,7]
1392 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm11[4,5,6,7]
1393 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm11 = xmm7[2],xmm6[2],xmm7[3],xmm6[3]
1394 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm11, %ymm0, %ymm11
1395 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm14 = xmm13[2],xmm12[2],xmm13[3],xmm12[3]
1396 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm15 = xmm14[2,3,2,3]
1397 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm15
1398 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm11 = ymm15[0,1,2,3,4,5],ymm11[6,7]
1399 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm15 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
1400 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm10[2],xmm9[2],xmm10[3],xmm9[3]
1401 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm15 = xmm0[1],xmm15[1]
1402 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm11 = ymm15[0,1,2,3],ymm11[4,5,6,7]
1403 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm9 = xmm10[0],xmm9[0],xmm10[1],xmm9[1]
1404 ; AVX2-FCP-NEXT:    vbroadcastss %xmm4, %xmm10
1405 ; AVX2-FCP-NEXT:    vbroadcastss %xmm5, %xmm15
1406 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm10 = xmm15[0],xmm10[0],xmm15[1],xmm10[1]
1407 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm9 = xmm9[0,1],xmm10[2,3]
1408 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm10 = xmm13[0],xmm12[0],xmm13[1],xmm12[1]
1409 ; AVX2-FCP-NEXT:    vbroadcastss %xmm6, %xmm12
1410 ; AVX2-FCP-NEXT:    vbroadcastss %xmm7, %xmm13
1411 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm12 = xmm13[0],xmm12[0],xmm13[1],xmm12[1]
1412 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
1413 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm12
1414 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1,2,3,4,5],ymm12[6,7]
1415 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3],ymm10[4,5,6,7]
1416 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm4 = xmm4[2,2,2,2]
1417 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm4 = xmm5[0,1,2],xmm4[3]
1418 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm4[2,3]
1419 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm4 = xmm6[2,2,2,2]
1420 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm4 = xmm7[0,1,2],xmm4[3]
1421 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm14, %ymm0, %ymm5
1422 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
1423 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1,2,3,4,5],ymm4[6,7]
1424 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm4[4,5,6,7]
1425 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1426 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 64(%rax)
1427 ; AVX2-FCP-NEXT:    vmovaps %ymm9, (%rax)
1428 ; AVX2-FCP-NEXT:    vmovaps %ymm11, 96(%rax)
1429 ; AVX2-FCP-NEXT:    vmovaps %ymm8, 32(%rax)
1430 ; AVX2-FCP-NEXT:    vmovaps %ymm3, 128(%rax)
1431 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 192(%rax)
1432 ; AVX2-FCP-NEXT:    vmovaps %ymm1, 224(%rax)
1433 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1434 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 160(%rax)
1435 ; AVX2-FCP-NEXT:    vzeroupper
1436 ; AVX2-FCP-NEXT:    retq
1438 ; AVX512-LABEL: store_i32_stride8_vf8:
1439 ; AVX512:       # %bb.0:
1440 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1441 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %r10
1442 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %r11
1443 ; AVX512-NEXT:    vmovdqa (%rdi), %ymm0
1444 ; AVX512-NEXT:    vmovdqa (%rdx), %ymm1
1445 ; AVX512-NEXT:    vmovdqa (%r8), %ymm2
1446 ; AVX512-NEXT:    vmovdqa (%r11), %ymm3
1447 ; AVX512-NEXT:    vinserti64x4 $1, (%rsi), %zmm0, %zmm0
1448 ; AVX512-NEXT:    vinserti64x4 $1, (%rcx), %zmm1, %zmm1
1449 ; AVX512-NEXT:    vinserti64x4 $1, (%r9), %zmm2, %zmm2
1450 ; AVX512-NEXT:    vinserti64x4 $1, (%r10), %zmm3, %zmm3
1451 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,0,0,0,0,8,16,24,0,0,0,0,1,9,17,25]
1452 ; AVX512-NEXT:    vpermi2d %zmm3, %zmm2, %zmm4
1453 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,8,16,24,0,0,0,0,1,9,17,25,0,0,0,0]
1454 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm5
1455 ; AVX512-NEXT:    movb $-52, %cl
1456 ; AVX512-NEXT:    kmovw %ecx, %k1
1457 ; AVX512-NEXT:    vmovdqa64 %zmm4, %zmm5 {%k1}
1458 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,0,0,0,2,10,18,26,0,0,0,0,3,11,19,27]
1459 ; AVX512-NEXT:    vpermi2d %zmm3, %zmm2, %zmm4
1460 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [2,10,18,26,0,0,0,0,3,11,19,27,0,0,0,0]
1461 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm6
1462 ; AVX512-NEXT:    vmovdqa64 %zmm4, %zmm6 {%k1}
1463 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,0,0,0,4,12,20,28,0,0,0,0,5,13,21,29]
1464 ; AVX512-NEXT:    vpermi2d %zmm3, %zmm2, %zmm4
1465 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [4,12,20,28,0,0,0,0,5,13,21,29,0,0,0,0]
1466 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm7
1467 ; AVX512-NEXT:    vmovdqa64 %zmm4, %zmm7 {%k1}
1468 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,0,0,0,6,14,22,30,0,0,0,0,7,15,23,31]
1469 ; AVX512-NEXT:    vpermi2d %zmm3, %zmm2, %zmm4
1470 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [6,14,22,30,0,0,0,0,7,15,23,31,0,0,0,0]
1471 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2
1472 ; AVX512-NEXT:    vmovdqa64 %zmm4, %zmm2 {%k1}
1473 ; AVX512-NEXT:    vmovdqa64 %zmm2, 192(%rax)
1474 ; AVX512-NEXT:    vmovdqa64 %zmm7, 128(%rax)
1475 ; AVX512-NEXT:    vmovdqa64 %zmm6, 64(%rax)
1476 ; AVX512-NEXT:    vmovdqa64 %zmm5, (%rax)
1477 ; AVX512-NEXT:    vzeroupper
1478 ; AVX512-NEXT:    retq
1480 ; AVX512-FCP-LABEL: store_i32_stride8_vf8:
1481 ; AVX512-FCP:       # %bb.0:
1482 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1483 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
1484 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11
1485 ; AVX512-FCP-NEXT:    vmovdqa (%rdi), %ymm0
1486 ; AVX512-FCP-NEXT:    vmovdqa (%rdx), %ymm1
1487 ; AVX512-FCP-NEXT:    vmovdqa (%r8), %ymm2
1488 ; AVX512-FCP-NEXT:    vmovdqa (%r11), %ymm3
1489 ; AVX512-FCP-NEXT:    vinserti64x4 $1, (%rsi), %zmm0, %zmm0
1490 ; AVX512-FCP-NEXT:    vinserti64x4 $1, (%rcx), %zmm1, %zmm1
1491 ; AVX512-FCP-NEXT:    vinserti64x4 $1, (%r9), %zmm2, %zmm2
1492 ; AVX512-FCP-NEXT:    vinserti64x4 $1, (%r10), %zmm3, %zmm3
1493 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,0,0,0,0,8,16,24,0,0,0,0,1,9,17,25]
1494 ; AVX512-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm4
1495 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,8,16,24,0,0,0,0,1,9,17,25,0,0,0,0]
1496 ; AVX512-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm5
1497 ; AVX512-FCP-NEXT:    movb $-52, %cl
1498 ; AVX512-FCP-NEXT:    kmovw %ecx, %k1
1499 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, %zmm5 {%k1}
1500 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,0,0,0,2,10,18,26,0,0,0,0,3,11,19,27]
1501 ; AVX512-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm4
1502 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [2,10,18,26,0,0,0,0,3,11,19,27,0,0,0,0]
1503 ; AVX512-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm6
1504 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, %zmm6 {%k1}
1505 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,0,0,0,4,12,20,28,0,0,0,0,5,13,21,29]
1506 ; AVX512-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm4
1507 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [4,12,20,28,0,0,0,0,5,13,21,29,0,0,0,0]
1508 ; AVX512-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm7
1509 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, %zmm7 {%k1}
1510 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,0,0,0,6,14,22,30,0,0,0,0,7,15,23,31]
1511 ; AVX512-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm4
1512 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [6,14,22,30,0,0,0,0,7,15,23,31,0,0,0,0]
1513 ; AVX512-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2
1514 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, %zmm2 {%k1}
1515 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, 192(%rax)
1516 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, 128(%rax)
1517 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, 64(%rax)
1518 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, (%rax)
1519 ; AVX512-FCP-NEXT:    vzeroupper
1520 ; AVX512-FCP-NEXT:    retq
1522 ; AVX512DQ-LABEL: store_i32_stride8_vf8:
1523 ; AVX512DQ:       # %bb.0:
1524 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1525 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %r10
1526 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %r11
1527 ; AVX512DQ-NEXT:    vmovdqa (%rdi), %ymm0
1528 ; AVX512DQ-NEXT:    vmovdqa (%rdx), %ymm1
1529 ; AVX512DQ-NEXT:    vmovdqa (%r8), %ymm2
1530 ; AVX512DQ-NEXT:    vmovdqa (%r11), %ymm3
1531 ; AVX512DQ-NEXT:    vinserti64x4 $1, (%rsi), %zmm0, %zmm0
1532 ; AVX512DQ-NEXT:    vinserti64x4 $1, (%rcx), %zmm1, %zmm1
1533 ; AVX512DQ-NEXT:    vinserti64x4 $1, (%r9), %zmm2, %zmm2
1534 ; AVX512DQ-NEXT:    vinserti64x4 $1, (%r10), %zmm3, %zmm3
1535 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,0,0,0,0,8,16,24,0,0,0,0,1,9,17,25]
1536 ; AVX512DQ-NEXT:    vpermi2d %zmm3, %zmm2, %zmm4
1537 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,8,16,24,0,0,0,0,1,9,17,25,0,0,0,0]
1538 ; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm0, %zmm5
1539 ; AVX512DQ-NEXT:    movb $-52, %cl
1540 ; AVX512DQ-NEXT:    kmovw %ecx, %k1
1541 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm5 {%k1}
1542 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,0,0,0,2,10,18,26,0,0,0,0,3,11,19,27]
1543 ; AVX512DQ-NEXT:    vpermi2d %zmm3, %zmm2, %zmm4
1544 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [2,10,18,26,0,0,0,0,3,11,19,27,0,0,0,0]
1545 ; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm0, %zmm6
1546 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm6 {%k1}
1547 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,0,0,0,4,12,20,28,0,0,0,0,5,13,21,29]
1548 ; AVX512DQ-NEXT:    vpermi2d %zmm3, %zmm2, %zmm4
1549 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [4,12,20,28,0,0,0,0,5,13,21,29,0,0,0,0]
1550 ; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm0, %zmm7
1551 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm7 {%k1}
1552 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,0,0,0,6,14,22,30,0,0,0,0,7,15,23,31]
1553 ; AVX512DQ-NEXT:    vpermi2d %zmm3, %zmm2, %zmm4
1554 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [6,14,22,30,0,0,0,0,7,15,23,31,0,0,0,0]
1555 ; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2
1556 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm2 {%k1}
1557 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, 192(%rax)
1558 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, 128(%rax)
1559 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, 64(%rax)
1560 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, (%rax)
1561 ; AVX512DQ-NEXT:    vzeroupper
1562 ; AVX512DQ-NEXT:    retq
1564 ; AVX512DQ-FCP-LABEL: store_i32_stride8_vf8:
1565 ; AVX512DQ-FCP:       # %bb.0:
1566 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1567 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
1568 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11
1569 ; AVX512DQ-FCP-NEXT:    vmovdqa (%rdi), %ymm0
1570 ; AVX512DQ-FCP-NEXT:    vmovdqa (%rdx), %ymm1
1571 ; AVX512DQ-FCP-NEXT:    vmovdqa (%r8), %ymm2
1572 ; AVX512DQ-FCP-NEXT:    vmovdqa (%r11), %ymm3
1573 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, (%rsi), %zmm0, %zmm0
1574 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, (%rcx), %zmm1, %zmm1
1575 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, (%r9), %zmm2, %zmm2
1576 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, (%r10), %zmm3, %zmm3
1577 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,0,0,0,0,8,16,24,0,0,0,0,1,9,17,25]
1578 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm4
1579 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,8,16,24,0,0,0,0,1,9,17,25,0,0,0,0]
1580 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm5
1581 ; AVX512DQ-FCP-NEXT:    movb $-52, %cl
1582 ; AVX512DQ-FCP-NEXT:    kmovw %ecx, %k1
1583 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, %zmm5 {%k1}
1584 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,0,0,0,2,10,18,26,0,0,0,0,3,11,19,27]
1585 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm4
1586 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [2,10,18,26,0,0,0,0,3,11,19,27,0,0,0,0]
1587 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm6
1588 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, %zmm6 {%k1}
1589 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,0,0,0,4,12,20,28,0,0,0,0,5,13,21,29]
1590 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm4
1591 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [4,12,20,28,0,0,0,0,5,13,21,29,0,0,0,0]
1592 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm7
1593 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, %zmm7 {%k1}
1594 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,0,0,0,6,14,22,30,0,0,0,0,7,15,23,31]
1595 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm4
1596 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [6,14,22,30,0,0,0,0,7,15,23,31,0,0,0,0]
1597 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2
1598 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, %zmm2 {%k1}
1599 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, 192(%rax)
1600 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, 128(%rax)
1601 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, 64(%rax)
1602 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, (%rax)
1603 ; AVX512DQ-FCP-NEXT:    vzeroupper
1604 ; AVX512DQ-FCP-NEXT:    retq
1606 ; AVX512BW-LABEL: store_i32_stride8_vf8:
1607 ; AVX512BW:       # %bb.0:
1608 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1609 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %r10
1610 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %r11
1611 ; AVX512BW-NEXT:    vmovdqa (%rdi), %ymm0
1612 ; AVX512BW-NEXT:    vmovdqa (%rdx), %ymm1
1613 ; AVX512BW-NEXT:    vmovdqa (%r8), %ymm2
1614 ; AVX512BW-NEXT:    vmovdqa (%r11), %ymm3
1615 ; AVX512BW-NEXT:    vinserti64x4 $1, (%rsi), %zmm0, %zmm0
1616 ; AVX512BW-NEXT:    vinserti64x4 $1, (%rcx), %zmm1, %zmm1
1617 ; AVX512BW-NEXT:    vinserti64x4 $1, (%r9), %zmm2, %zmm2
1618 ; AVX512BW-NEXT:    vinserti64x4 $1, (%r10), %zmm3, %zmm3
1619 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,0,0,0,0,8,16,24,0,0,0,0,1,9,17,25]
1620 ; AVX512BW-NEXT:    vpermi2d %zmm3, %zmm2, %zmm4
1621 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,8,16,24,0,0,0,0,1,9,17,25,0,0,0,0]
1622 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm5
1623 ; AVX512BW-NEXT:    movb $-52, %cl
1624 ; AVX512BW-NEXT:    kmovd %ecx, %k1
1625 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm5 {%k1}
1626 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,0,0,0,2,10,18,26,0,0,0,0,3,11,19,27]
1627 ; AVX512BW-NEXT:    vpermi2d %zmm3, %zmm2, %zmm4
1628 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [2,10,18,26,0,0,0,0,3,11,19,27,0,0,0,0]
1629 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm6
1630 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm6 {%k1}
1631 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,0,0,0,4,12,20,28,0,0,0,0,5,13,21,29]
1632 ; AVX512BW-NEXT:    vpermi2d %zmm3, %zmm2, %zmm4
1633 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [4,12,20,28,0,0,0,0,5,13,21,29,0,0,0,0]
1634 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm7
1635 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm7 {%k1}
1636 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,0,0,0,6,14,22,30,0,0,0,0,7,15,23,31]
1637 ; AVX512BW-NEXT:    vpermi2d %zmm3, %zmm2, %zmm4
1638 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [6,14,22,30,0,0,0,0,7,15,23,31,0,0,0,0]
1639 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2
1640 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm2 {%k1}
1641 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, 192(%rax)
1642 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, 128(%rax)
1643 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, 64(%rax)
1644 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, (%rax)
1645 ; AVX512BW-NEXT:    vzeroupper
1646 ; AVX512BW-NEXT:    retq
1648 ; AVX512BW-FCP-LABEL: store_i32_stride8_vf8:
1649 ; AVX512BW-FCP:       # %bb.0:
1650 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1651 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
1652 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11
1653 ; AVX512BW-FCP-NEXT:    vmovdqa (%rdi), %ymm0
1654 ; AVX512BW-FCP-NEXT:    vmovdqa (%rdx), %ymm1
1655 ; AVX512BW-FCP-NEXT:    vmovdqa (%r8), %ymm2
1656 ; AVX512BW-FCP-NEXT:    vmovdqa (%r11), %ymm3
1657 ; AVX512BW-FCP-NEXT:    vinserti64x4 $1, (%rsi), %zmm0, %zmm0
1658 ; AVX512BW-FCP-NEXT:    vinserti64x4 $1, (%rcx), %zmm1, %zmm1
1659 ; AVX512BW-FCP-NEXT:    vinserti64x4 $1, (%r9), %zmm2, %zmm2
1660 ; AVX512BW-FCP-NEXT:    vinserti64x4 $1, (%r10), %zmm3, %zmm3
1661 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,0,0,0,0,8,16,24,0,0,0,0,1,9,17,25]
1662 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm4
1663 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,8,16,24,0,0,0,0,1,9,17,25,0,0,0,0]
1664 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm5
1665 ; AVX512BW-FCP-NEXT:    movb $-52, %cl
1666 ; AVX512BW-FCP-NEXT:    kmovd %ecx, %k1
1667 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm5 {%k1}
1668 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,0,0,0,2,10,18,26,0,0,0,0,3,11,19,27]
1669 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm4
1670 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [2,10,18,26,0,0,0,0,3,11,19,27,0,0,0,0]
1671 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm6
1672 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm6 {%k1}
1673 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,0,0,0,4,12,20,28,0,0,0,0,5,13,21,29]
1674 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm4
1675 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [4,12,20,28,0,0,0,0,5,13,21,29,0,0,0,0]
1676 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm7
1677 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm7 {%k1}
1678 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,0,0,0,6,14,22,30,0,0,0,0,7,15,23,31]
1679 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm4
1680 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [6,14,22,30,0,0,0,0,7,15,23,31,0,0,0,0]
1681 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2
1682 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm2 {%k1}
1683 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, 192(%rax)
1684 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, 128(%rax)
1685 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, 64(%rax)
1686 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, (%rax)
1687 ; AVX512BW-FCP-NEXT:    vzeroupper
1688 ; AVX512BW-FCP-NEXT:    retq
1690 ; AVX512DQ-BW-LABEL: store_i32_stride8_vf8:
1691 ; AVX512DQ-BW:       # %bb.0:
1692 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1693 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %r10
1694 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %r11
1695 ; AVX512DQ-BW-NEXT:    vmovdqa (%rdi), %ymm0
1696 ; AVX512DQ-BW-NEXT:    vmovdqa (%rdx), %ymm1
1697 ; AVX512DQ-BW-NEXT:    vmovdqa (%r8), %ymm2
1698 ; AVX512DQ-BW-NEXT:    vmovdqa (%r11), %ymm3
1699 ; AVX512DQ-BW-NEXT:    vinserti64x4 $1, (%rsi), %zmm0, %zmm0
1700 ; AVX512DQ-BW-NEXT:    vinserti64x4 $1, (%rcx), %zmm1, %zmm1
1701 ; AVX512DQ-BW-NEXT:    vinserti64x4 $1, (%r9), %zmm2, %zmm2
1702 ; AVX512DQ-BW-NEXT:    vinserti64x4 $1, (%r10), %zmm3, %zmm3
1703 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,0,0,0,0,8,16,24,0,0,0,0,1,9,17,25]
1704 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm3, %zmm2, %zmm4
1705 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,8,16,24,0,0,0,0,1,9,17,25,0,0,0,0]
1706 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm5
1707 ; AVX512DQ-BW-NEXT:    movb $-52, %cl
1708 ; AVX512DQ-BW-NEXT:    kmovd %ecx, %k1
1709 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm5 {%k1}
1710 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,0,0,0,2,10,18,26,0,0,0,0,3,11,19,27]
1711 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm3, %zmm2, %zmm4
1712 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [2,10,18,26,0,0,0,0,3,11,19,27,0,0,0,0]
1713 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm6
1714 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm6 {%k1}
1715 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,0,0,0,4,12,20,28,0,0,0,0,5,13,21,29]
1716 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm3, %zmm2, %zmm4
1717 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [4,12,20,28,0,0,0,0,5,13,21,29,0,0,0,0]
1718 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm7
1719 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm7 {%k1}
1720 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,0,0,0,6,14,22,30,0,0,0,0,7,15,23,31]
1721 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm3, %zmm2, %zmm4
1722 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [6,14,22,30,0,0,0,0,7,15,23,31,0,0,0,0]
1723 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2
1724 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm2 {%k1}
1725 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, 192(%rax)
1726 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, 128(%rax)
1727 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, 64(%rax)
1728 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, (%rax)
1729 ; AVX512DQ-BW-NEXT:    vzeroupper
1730 ; AVX512DQ-BW-NEXT:    retq
1732 ; AVX512DQ-BW-FCP-LABEL: store_i32_stride8_vf8:
1733 ; AVX512DQ-BW-FCP:       # %bb.0:
1734 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1735 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
1736 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11
1737 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rdi), %ymm0
1738 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rdx), %ymm1
1739 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%r8), %ymm2
1740 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%r11), %ymm3
1741 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $1, (%rsi), %zmm0, %zmm0
1742 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $1, (%rcx), %zmm1, %zmm1
1743 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $1, (%r9), %zmm2, %zmm2
1744 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $1, (%r10), %zmm3, %zmm3
1745 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,0,0,0,0,8,16,24,0,0,0,0,1,9,17,25]
1746 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm4
1747 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,8,16,24,0,0,0,0,1,9,17,25,0,0,0,0]
1748 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm5
1749 ; AVX512DQ-BW-FCP-NEXT:    movb $-52, %cl
1750 ; AVX512DQ-BW-FCP-NEXT:    kmovd %ecx, %k1
1751 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm5 {%k1}
1752 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,0,0,0,2,10,18,26,0,0,0,0,3,11,19,27]
1753 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm4
1754 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [2,10,18,26,0,0,0,0,3,11,19,27,0,0,0,0]
1755 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm6
1756 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm6 {%k1}
1757 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,0,0,0,4,12,20,28,0,0,0,0,5,13,21,29]
1758 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm4
1759 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [4,12,20,28,0,0,0,0,5,13,21,29,0,0,0,0]
1760 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm7
1761 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm7 {%k1}
1762 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,0,0,0,6,14,22,30,0,0,0,0,7,15,23,31]
1763 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm4
1764 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [6,14,22,30,0,0,0,0,7,15,23,31,0,0,0,0]
1765 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2
1766 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm2 {%k1}
1767 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, 192(%rax)
1768 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, 128(%rax)
1769 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, 64(%rax)
1770 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, (%rax)
1771 ; AVX512DQ-BW-FCP-NEXT:    vzeroupper
1772 ; AVX512DQ-BW-FCP-NEXT:    retq
1773   %in.vec0 = load <8 x i32>, ptr %in.vecptr0, align 64
1774   %in.vec1 = load <8 x i32>, ptr %in.vecptr1, align 64
1775   %in.vec2 = load <8 x i32>, ptr %in.vecptr2, align 64
1776   %in.vec3 = load <8 x i32>, ptr %in.vecptr3, align 64
1777   %in.vec4 = load <8 x i32>, ptr %in.vecptr4, align 64
1778   %in.vec5 = load <8 x i32>, ptr %in.vecptr5, align 64
1779   %in.vec6 = load <8 x i32>, ptr %in.vecptr6, align 64
1780   %in.vec7 = load <8 x i32>, ptr %in.vecptr7, align 64
1781   %1 = shufflevector <8 x i32> %in.vec0, <8 x i32> %in.vec1, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
1782   %2 = shufflevector <8 x i32> %in.vec2, <8 x i32> %in.vec3, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
1783   %3 = shufflevector <8 x i32> %in.vec4, <8 x i32> %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>
1784   %4 = shufflevector <8 x i32> %in.vec6, <8 x i32> %in.vec7, <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>
1785   %5 = shufflevector <16 x i32> %1, <16 x i32> %2, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31>
1786   %6 = shufflevector <16 x i32> %3, <16 x i32> %4, <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>
1787   %7 = shufflevector <32 x i32> %5, <32 x i32> %6, <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>
1788   %interleaved.vec = shufflevector <64 x i32> %7, <64 x i32> poison, <64 x i32> <i32 0, i32 8, i32 16, i32 24, i32 32, i32 40, i32 48, i32 56, i32 1, i32 9, i32 17, i32 25, i32 33, i32 41, i32 49, i32 57, i32 2, i32 10, i32 18, i32 26, i32 34, i32 42, i32 50, i32 58, i32 3, i32 11, i32 19, i32 27, i32 35, i32 43, i32 51, i32 59, i32 4, i32 12, i32 20, i32 28, i32 36, i32 44, i32 52, i32 60, i32 5, i32 13, i32 21, i32 29, i32 37, i32 45, i32 53, i32 61, i32 6, i32 14, i32 22, i32 30, i32 38, i32 46, i32 54, i32 62, i32 7, i32 15, i32 23, i32 31, i32 39, i32 47, i32 55, i32 63>
1789   store <64 x i32> %interleaved.vec, ptr %out.vec, align 64
1790   ret void
1793 define void @store_i32_stride8_vf16(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %in.vecptr4, ptr %in.vecptr5, ptr %in.vecptr6, ptr %in.vecptr7, ptr %out.vec) nounwind {
1794 ; SSE-LABEL: store_i32_stride8_vf16:
1795 ; SSE:       # %bb.0:
1796 ; SSE-NEXT:    subq $216, %rsp
1797 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1798 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %r10
1799 ; SSE-NEXT:    movaps (%rdi), %xmm9
1800 ; SSE-NEXT:    movaps 16(%rdi), %xmm10
1801 ; SSE-NEXT:    movaps (%rsi), %xmm4
1802 ; SSE-NEXT:    movaps 16(%rsi), %xmm1
1803 ; SSE-NEXT:    movaps (%rdx), %xmm2
1804 ; SSE-NEXT:    movaps 16(%rdx), %xmm0
1805 ; SSE-NEXT:    movaps (%rcx), %xmm3
1806 ; SSE-NEXT:    movaps (%r8), %xmm11
1807 ; SSE-NEXT:    movaps (%r9), %xmm7
1808 ; SSE-NEXT:    movaps (%r10), %xmm5
1809 ; SSE-NEXT:    movaps (%rax), %xmm6
1810 ; SSE-NEXT:    movaps %xmm3, %xmm8
1811 ; SSE-NEXT:    movlhps {{.*#+}} xmm8 = xmm8[0],xmm2[0]
1812 ; SSE-NEXT:    movaps %xmm9, %xmm13
1813 ; SSE-NEXT:    unpcklps {{.*#+}} xmm13 = xmm13[0],xmm4[0],xmm13[1],xmm4[1]
1814 ; SSE-NEXT:    movaps %xmm13, %xmm12
1815 ; SSE-NEXT:    shufps {{.*#+}} xmm12 = xmm12[0,1],xmm8[2,0]
1816 ; SSE-NEXT:    movaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1817 ; SSE-NEXT:    movaps %xmm6, %xmm8
1818 ; SSE-NEXT:    movlhps {{.*#+}} xmm8 = xmm8[0],xmm5[0]
1819 ; SSE-NEXT:    movaps %xmm11, %xmm14
1820 ; SSE-NEXT:    unpcklps {{.*#+}} xmm14 = xmm14[0],xmm7[0],xmm14[1],xmm7[1]
1821 ; SSE-NEXT:    movaps %xmm14, %xmm12
1822 ; SSE-NEXT:    shufps {{.*#+}} xmm12 = xmm12[0,1],xmm8[2,0]
1823 ; SSE-NEXT:    movaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1824 ; SSE-NEXT:    movaps %xmm3, %xmm8
1825 ; SSE-NEXT:    shufps {{.*#+}} xmm8 = xmm8[1,1],xmm2[1,1]
1826 ; SSE-NEXT:    shufps {{.*#+}} xmm13 = xmm13[2,3],xmm8[2,0]
1827 ; SSE-NEXT:    movaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1828 ; SSE-NEXT:    movaps %xmm6, %xmm8
1829 ; SSE-NEXT:    shufps {{.*#+}} xmm8 = xmm8[1,1],xmm5[1,1]
1830 ; SSE-NEXT:    shufps {{.*#+}} xmm14 = xmm14[2,3],xmm8[2,0]
1831 ; SSE-NEXT:    movaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1832 ; SSE-NEXT:    movaps %xmm2, %xmm8
1833 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm3[1]
1834 ; SSE-NEXT:    unpckhps {{.*#+}} xmm9 = xmm9[2],xmm4[2],xmm9[3],xmm4[3]
1835 ; SSE-NEXT:    movaps %xmm9, %xmm4
1836 ; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[0,1],xmm8[0,2]
1837 ; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1838 ; SSE-NEXT:    movaps %xmm5, %xmm4
1839 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm6[1]
1840 ; SSE-NEXT:    unpckhps {{.*#+}} xmm11 = xmm11[2],xmm7[2],xmm11[3],xmm7[3]
1841 ; SSE-NEXT:    movaps %xmm11, %xmm7
1842 ; SSE-NEXT:    shufps {{.*#+}} xmm7 = xmm7[0,1],xmm4[0,2]
1843 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1844 ; SSE-NEXT:    movaps 16(%rcx), %xmm4
1845 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[3,3],xmm3[3,3]
1846 ; SSE-NEXT:    movaps 16(%r10), %xmm3
1847 ; SSE-NEXT:    shufps {{.*#+}} xmm9 = xmm9[2,3],xmm2[0,2]
1848 ; SSE-NEXT:    movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1849 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[3,3],xmm6[3,3]
1850 ; SSE-NEXT:    shufps {{.*#+}} xmm11 = xmm11[2,3],xmm5[0,2]
1851 ; SSE-NEXT:    movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1852 ; SSE-NEXT:    movaps %xmm4, %xmm2
1853 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
1854 ; SSE-NEXT:    movaps %xmm10, %xmm6
1855 ; SSE-NEXT:    unpcklps {{.*#+}} xmm6 = xmm6[0],xmm1[0],xmm6[1],xmm1[1]
1856 ; SSE-NEXT:    movaps %xmm6, %xmm5
1857 ; SSE-NEXT:    movaps %xmm6, %xmm7
1858 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm2[2,0]
1859 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1860 ; SSE-NEXT:    movaps 16(%rax), %xmm2
1861 ; SSE-NEXT:    movaps %xmm2, %xmm5
1862 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm3[0]
1863 ; SSE-NEXT:    movaps 16(%r8), %xmm11
1864 ; SSE-NEXT:    movaps 16(%r9), %xmm6
1865 ; SSE-NEXT:    movaps %xmm11, %xmm9
1866 ; SSE-NEXT:    unpcklps {{.*#+}} xmm9 = xmm9[0],xmm6[0],xmm9[1],xmm6[1]
1867 ; SSE-NEXT:    movaps %xmm9, %xmm8
1868 ; SSE-NEXT:    shufps {{.*#+}} xmm8 = xmm8[0,1],xmm5[2,0]
1869 ; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1870 ; SSE-NEXT:    movaps %xmm4, %xmm5
1871 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1],xmm0[1,1]
1872 ; SSE-NEXT:    shufps {{.*#+}} xmm7 = xmm7[2,3],xmm5[2,0]
1873 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1874 ; SSE-NEXT:    movaps %xmm2, %xmm5
1875 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1],xmm3[1,1]
1876 ; SSE-NEXT:    shufps {{.*#+}} xmm9 = xmm9[2,3],xmm5[2,0]
1877 ; SSE-NEXT:    movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1878 ; SSE-NEXT:    unpckhps {{.*#+}} xmm10 = xmm10[2],xmm1[2],xmm10[3],xmm1[3]
1879 ; SSE-NEXT:    movaps %xmm0, %xmm1
1880 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm4[1]
1881 ; SSE-NEXT:    movaps %xmm10, %xmm5
1882 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm1[0,2]
1883 ; SSE-NEXT:    movaps %xmm5, (%rsp) # 16-byte Spill
1884 ; SSE-NEXT:    unpckhps {{.*#+}} xmm11 = xmm11[2],xmm6[2],xmm11[3],xmm6[3]
1885 ; SSE-NEXT:    movaps %xmm3, %xmm1
1886 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
1887 ; SSE-NEXT:    movaps %xmm11, %xmm5
1888 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm1[0,2]
1889 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1890 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm4[3,3]
1891 ; SSE-NEXT:    shufps {{.*#+}} xmm10 = xmm10[2,3],xmm0[0,2]
1892 ; SSE-NEXT:    movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1893 ; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[3,3],xmm2[3,3]
1894 ; SSE-NEXT:    shufps {{.*#+}} xmm11 = xmm11[2,3],xmm3[0,2]
1895 ; SSE-NEXT:    movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1896 ; SSE-NEXT:    movaps 32(%rdx), %xmm3
1897 ; SSE-NEXT:    movaps 32(%rcx), %xmm0
1898 ; SSE-NEXT:    movaps %xmm0, %xmm1
1899 ; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm3[0]
1900 ; SSE-NEXT:    movaps 32(%rdi), %xmm14
1901 ; SSE-NEXT:    movaps 32(%rsi), %xmm4
1902 ; SSE-NEXT:    movaps %xmm14, %xmm5
1903 ; SSE-NEXT:    unpcklps {{.*#+}} xmm5 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
1904 ; SSE-NEXT:    movaps %xmm5, %xmm2
1905 ; SSE-NEXT:    movaps %xmm5, %xmm7
1906 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[0,1],xmm1[2,0]
1907 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1908 ; SSE-NEXT:    movaps 32(%r10), %xmm1
1909 ; SSE-NEXT:    movaps 32(%rax), %xmm2
1910 ; SSE-NEXT:    movaps %xmm2, %xmm5
1911 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm1[0]
1912 ; SSE-NEXT:    movaps 32(%r8), %xmm11
1913 ; SSE-NEXT:    movaps 32(%r9), %xmm6
1914 ; SSE-NEXT:    movaps %xmm11, %xmm13
1915 ; SSE-NEXT:    unpcklps {{.*#+}} xmm13 = xmm13[0],xmm6[0],xmm13[1],xmm6[1]
1916 ; SSE-NEXT:    movaps %xmm13, %xmm8
1917 ; SSE-NEXT:    shufps {{.*#+}} xmm8 = xmm8[0,1],xmm5[2,0]
1918 ; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1919 ; SSE-NEXT:    movaps %xmm0, %xmm5
1920 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1],xmm3[1,1]
1921 ; SSE-NEXT:    shufps {{.*#+}} xmm7 = xmm7[2,3],xmm5[2,0]
1922 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1923 ; SSE-NEXT:    movaps %xmm2, %xmm5
1924 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1],xmm1[1,1]
1925 ; SSE-NEXT:    shufps {{.*#+}} xmm13 = xmm13[2,3],xmm5[2,0]
1926 ; SSE-NEXT:    unpckhps {{.*#+}} xmm14 = xmm14[2],xmm4[2],xmm14[3],xmm4[3]
1927 ; SSE-NEXT:    movaps %xmm3, %xmm4
1928 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm0[1]
1929 ; SSE-NEXT:    movaps %xmm14, %xmm5
1930 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm4[0,2]
1931 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1932 ; SSE-NEXT:    unpckhps {{.*#+}} xmm11 = xmm11[2],xmm6[2],xmm11[3],xmm6[3]
1933 ; SSE-NEXT:    movaps %xmm1, %xmm4
1934 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm2[1]
1935 ; SSE-NEXT:    movaps %xmm11, %xmm5
1936 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm4[0,2]
1937 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1938 ; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[3,3],xmm0[3,3]
1939 ; SSE-NEXT:    shufps {{.*#+}} xmm14 = xmm14[2,3],xmm3[0,2]
1940 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[3,3],xmm2[3,3]
1941 ; SSE-NEXT:    shufps {{.*#+}} xmm11 = xmm11[2,3],xmm1[0,2]
1942 ; SSE-NEXT:    movaps 48(%rdx), %xmm1
1943 ; SSE-NEXT:    movaps 48(%rcx), %xmm8
1944 ; SSE-NEXT:    movaps %xmm8, %xmm0
1945 ; SSE-NEXT:    movlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]
1946 ; SSE-NEXT:    movaps 48(%rdi), %xmm3
1947 ; SSE-NEXT:    movaps 48(%rsi), %xmm12
1948 ; SSE-NEXT:    movaps %xmm3, %xmm4
1949 ; SSE-NEXT:    unpcklps {{.*#+}} xmm4 = xmm4[0],xmm12[0],xmm4[1],xmm12[1]
1950 ; SSE-NEXT:    movaps %xmm4, %xmm15
1951 ; SSE-NEXT:    shufps {{.*#+}} xmm15 = xmm15[0,1],xmm0[2,0]
1952 ; SSE-NEXT:    movaps 48(%r10), %xmm0
1953 ; SSE-NEXT:    movaps 48(%rax), %xmm7
1954 ; SSE-NEXT:    movaps %xmm7, %xmm2
1955 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
1956 ; SSE-NEXT:    movaps 48(%r8), %xmm5
1957 ; SSE-NEXT:    movaps 48(%r9), %xmm9
1958 ; SSE-NEXT:    movaps %xmm5, %xmm6
1959 ; SSE-NEXT:    unpcklps {{.*#+}} xmm6 = xmm6[0],xmm9[0],xmm6[1],xmm9[1]
1960 ; SSE-NEXT:    movaps %xmm6, %xmm10
1961 ; SSE-NEXT:    shufps {{.*#+}} xmm10 = xmm10[0,1],xmm2[2,0]
1962 ; SSE-NEXT:    movaps %xmm8, %xmm2
1963 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[1,1],xmm1[1,1]
1964 ; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[2,3],xmm2[2,0]
1965 ; SSE-NEXT:    movaps %xmm7, %xmm2
1966 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[1,1],xmm0[1,1]
1967 ; SSE-NEXT:    shufps {{.*#+}} xmm6 = xmm6[2,3],xmm2[2,0]
1968 ; SSE-NEXT:    unpckhps {{.*#+}} xmm3 = xmm3[2],xmm12[2],xmm3[3],xmm12[3]
1969 ; SSE-NEXT:    movaps %xmm1, %xmm2
1970 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm8[1]
1971 ; SSE-NEXT:    movaps %xmm3, %xmm12
1972 ; SSE-NEXT:    shufps {{.*#+}} xmm12 = xmm12[0,1],xmm2[0,2]
1973 ; SSE-NEXT:    unpckhps {{.*#+}} xmm5 = xmm5[2],xmm9[2],xmm5[3],xmm9[3]
1974 ; SSE-NEXT:    movaps %xmm0, %xmm2
1975 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm7[1]
1976 ; SSE-NEXT:    movaps %xmm5, %xmm9
1977 ; SSE-NEXT:    shufps {{.*#+}} xmm9 = xmm9[0,1],xmm2[0,2]
1978 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[3,3],xmm8[3,3]
1979 ; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[2,3],xmm1[0,2]
1980 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm7[3,3]
1981 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[2,3],xmm0[0,2]
1982 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1983 ; SSE-NEXT:    movaps %xmm5, 496(%rax)
1984 ; SSE-NEXT:    movaps %xmm3, 480(%rax)
1985 ; SSE-NEXT:    movaps %xmm9, 464(%rax)
1986 ; SSE-NEXT:    movaps %xmm12, 448(%rax)
1987 ; SSE-NEXT:    movaps %xmm6, 432(%rax)
1988 ; SSE-NEXT:    movaps %xmm4, 416(%rax)
1989 ; SSE-NEXT:    movaps %xmm10, 400(%rax)
1990 ; SSE-NEXT:    movaps %xmm15, 384(%rax)
1991 ; SSE-NEXT:    movaps %xmm11, 368(%rax)
1992 ; SSE-NEXT:    movaps %xmm14, 352(%rax)
1993 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1994 ; SSE-NEXT:    movaps %xmm0, 336(%rax)
1995 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1996 ; SSE-NEXT:    movaps %xmm0, 320(%rax)
1997 ; SSE-NEXT:    movaps %xmm13, 304(%rax)
1998 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1999 ; SSE-NEXT:    movaps %xmm0, 288(%rax)
2000 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2001 ; SSE-NEXT:    movaps %xmm0, 272(%rax)
2002 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2003 ; SSE-NEXT:    movaps %xmm0, 256(%rax)
2004 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2005 ; SSE-NEXT:    movaps %xmm0, 240(%rax)
2006 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2007 ; SSE-NEXT:    movaps %xmm0, 224(%rax)
2008 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2009 ; SSE-NEXT:    movaps %xmm0, 208(%rax)
2010 ; SSE-NEXT:    movaps (%rsp), %xmm0 # 16-byte Reload
2011 ; SSE-NEXT:    movaps %xmm0, 192(%rax)
2012 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2013 ; SSE-NEXT:    movaps %xmm0, 176(%rax)
2014 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2015 ; SSE-NEXT:    movaps %xmm0, 160(%rax)
2016 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2017 ; SSE-NEXT:    movaps %xmm0, 144(%rax)
2018 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2019 ; SSE-NEXT:    movaps %xmm0, 128(%rax)
2020 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2021 ; SSE-NEXT:    movaps %xmm0, 112(%rax)
2022 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2023 ; SSE-NEXT:    movaps %xmm0, 96(%rax)
2024 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2025 ; SSE-NEXT:    movaps %xmm0, 80(%rax)
2026 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2027 ; SSE-NEXT:    movaps %xmm0, 64(%rax)
2028 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2029 ; SSE-NEXT:    movaps %xmm0, 48(%rax)
2030 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2031 ; SSE-NEXT:    movaps %xmm0, 32(%rax)
2032 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2033 ; SSE-NEXT:    movaps %xmm0, 16(%rax)
2034 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2035 ; SSE-NEXT:    movaps %xmm0, (%rax)
2036 ; SSE-NEXT:    addq $216, %rsp
2037 ; SSE-NEXT:    retq
2039 ; AVX-LABEL: store_i32_stride8_vf16:
2040 ; AVX:       # %bb.0:
2041 ; AVX-NEXT:    subq $264, %rsp # imm = 0x108
2042 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax
2043 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %r10
2044 ; AVX-NEXT:    vmovaps (%rdi), %ymm7
2045 ; AVX-NEXT:    vmovaps 32(%rdi), %ymm0
2046 ; AVX-NEXT:    vmovaps (%rsi), %ymm8
2047 ; AVX-NEXT:    vmovaps 32(%rsi), %ymm1
2048 ; AVX-NEXT:    vmovaps (%rdx), %ymm9
2049 ; AVX-NEXT:    vmovaps 32(%rdx), %ymm3
2050 ; AVX-NEXT:    vmovaps 32(%rcx), %ymm4
2051 ; AVX-NEXT:    vmovaps 32(%r8), %ymm5
2052 ; AVX-NEXT:    vmovaps 32(%r9), %ymm6
2053 ; AVX-NEXT:    vmovaps 32(%r10), %ymm11
2054 ; AVX-NEXT:    vmovaps 32(%rax), %ymm12
2055 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm12[1],ymm11[1],ymm12[3],ymm11[3]
2056 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm10 = ymm5[2],ymm6[2],ymm5[3],ymm6[3],ymm5[6],ymm6[6],ymm5[7],ymm6[7]
2057 ; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm10[0,1],ymm2[2,0],ymm10[4,5],ymm2[6,4]
2058 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm10 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
2059 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
2060 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm13 = ymm4[1],ymm3[1],ymm4[3],ymm3[3]
2061 ; AVX-NEXT:    vshufps {{.*#+}} ymm13 = ymm13[0,1,2,0,4,5,6,4]
2062 ; AVX-NEXT:    vextractf128 $1, %ymm13, %xmm13
2063 ; AVX-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0,1],xmm13[2,3]
2064 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm10[0,1,2,3],ymm2[4,5,6,7]
2065 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2066 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm11[2],ymm12[2],ymm11[3],ymm12[3],ymm11[6],ymm12[6],ymm11[7],ymm12[7]
2067 ; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm6[3,0],ymm5[3,0],ymm6[7,4],ymm5[7,4]
2068 ; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm10[2,0],ymm2[2,3],ymm10[6,4],ymm2[6,7]
2069 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm10 = ymm3[2],ymm4[2],ymm3[3],ymm4[3],ymm3[6],ymm4[6],ymm3[7],ymm4[7]
2070 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
2071 ; AVX-NEXT:    vshufps {{.*#+}} ymm13 = ymm1[3,0],ymm0[3,0],ymm1[7,4],ymm0[7,4]
2072 ; AVX-NEXT:    vshufps {{.*#+}} ymm13 = ymm13[2,0,2,3,6,4,6,7]
2073 ; AVX-NEXT:    vextractf128 $1, %ymm13, %xmm13
2074 ; AVX-NEXT:    vblendps {{.*#+}} xmm10 = xmm13[0,1],xmm10[2,3]
2075 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm10[0,1,2,3],ymm2[4,5,6,7]
2076 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2077 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm12[0],ymm11[0],ymm12[2],ymm11[2]
2078 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm10 = ymm5[0],ymm6[0],ymm5[1],ymm6[1],ymm5[4],ymm6[4],ymm5[5],ymm6[5]
2079 ; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm10[0,1],ymm2[2,0],ymm10[4,5],ymm2[6,4]
2080 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm2 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]
2081 ; AVX-NEXT:    vextractf128 $1, %ymm2, %xmm2
2082 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm13 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
2083 ; AVX-NEXT:    vshufps {{.*#+}} ymm13 = ymm13[0,1,2,0,4,5,6,4]
2084 ; AVX-NEXT:    vextractf128 $1, %ymm13, %xmm13
2085 ; AVX-NEXT:    vblendps {{.*#+}} xmm13 = xmm2[0,1],xmm13[2,3]
2086 ; AVX-NEXT:    vmovaps (%rcx), %ymm2
2087 ; AVX-NEXT:    vblendps {{.*#+}} ymm10 = ymm13[0,1,2,3],ymm10[4,5,6,7]
2088 ; AVX-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2089 ; AVX-NEXT:    vmovaps (%r8), %ymm10
2090 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm13 = ymm11[0],ymm12[0],ymm11[1],ymm12[1],ymm11[4],ymm12[4],ymm11[5],ymm12[5]
2091 ; AVX-NEXT:    vmovaps (%r9), %ymm11
2092 ; AVX-NEXT:    vshufps {{.*#+}} ymm5 = ymm6[1,0],ymm5[1,0],ymm6[5,4],ymm5[5,4]
2093 ; AVX-NEXT:    vmovaps (%r10), %ymm12
2094 ; AVX-NEXT:    vshufps {{.*#+}} ymm6 = ymm5[2,0],ymm13[2,3],ymm5[6,4],ymm13[6,7]
2095 ; AVX-NEXT:    vmovaps (%rax), %ymm5
2096 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm3 = ymm3[0],ymm4[0],ymm3[1],ymm4[1],ymm3[4],ymm4[4],ymm3[5],ymm4[5]
2097 ; AVX-NEXT:    vextractf128 $1, %ymm3, %xmm3
2098 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[1,0],ymm0[1,0],ymm1[5,4],ymm0[5,4]
2099 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,0,2,3,6,4,6,7]
2100 ; AVX-NEXT:    vextractf128 $1, %ymm0, %xmm0
2101 ; AVX-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm3[2,3]
2102 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm6[4,5,6,7]
2103 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2104 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm5[1],ymm12[1],ymm5[3],ymm12[3]
2105 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm10[2],ymm11[2],ymm10[3],ymm11[3],ymm10[6],ymm11[6],ymm10[7],ymm11[7]
2106 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]
2107 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm7[2],ymm8[2],ymm7[3],ymm8[3],ymm7[6],ymm8[6],ymm7[7],ymm8[7]
2108 ; AVX-NEXT:    vextractf128 $1, %ymm1, %xmm1
2109 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm3 = ymm2[1],ymm9[1],ymm2[3],ymm9[3]
2110 ; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[0,1,2,0,4,5,6,4]
2111 ; AVX-NEXT:    vextractf128 $1, %ymm3, %xmm3
2112 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm3[2,3]
2113 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
2114 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2115 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm0 = ymm12[2],ymm5[2],ymm12[3],ymm5[3],ymm12[6],ymm5[6],ymm12[7],ymm5[7]
2116 ; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm11[3,0],ymm10[3,0],ymm11[7,4],ymm10[7,4]
2117 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[2,0],ymm0[2,3],ymm1[6,4],ymm0[6,7]
2118 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm9[2],ymm2[2],ymm9[3],ymm2[3],ymm9[6],ymm2[6],ymm9[7],ymm2[7]
2119 ; AVX-NEXT:    vextractf128 $1, %ymm1, %xmm1
2120 ; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm8[3,0],ymm7[3,0],ymm8[7,4],ymm7[7,4]
2121 ; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[2,0,2,3,6,4,6,7]
2122 ; AVX-NEXT:    vextractf128 $1, %ymm3, %xmm3
2123 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm3[0,1],xmm1[2,3]
2124 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
2125 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2126 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm5[0],ymm12[0],ymm5[2],ymm12[2]
2127 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm10[0],ymm11[0],ymm10[1],ymm11[1],ymm10[4],ymm11[4],ymm10[5],ymm11[5]
2128 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]
2129 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm7[0],ymm8[0],ymm7[1],ymm8[1],ymm7[4],ymm8[4],ymm7[5],ymm8[5]
2130 ; AVX-NEXT:    vextractf128 $1, %ymm1, %xmm1
2131 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm2[0],ymm9[0],ymm2[2],ymm9[2]
2132 ; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[0,1,2,0,4,5,6,4]
2133 ; AVX-NEXT:    vextractf128 $1, %ymm3, %xmm3
2134 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm3[2,3]
2135 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
2136 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2137 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm12[0],ymm5[0],ymm12[1],ymm5[1],ymm12[4],ymm5[4],ymm12[5],ymm5[5]
2138 ; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm11[1,0],ymm10[1,0],ymm11[5,4],ymm10[5,4]
2139 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[2,0],ymm0[2,3],ymm1[6,4],ymm0[6,7]
2140 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm9[0],ymm2[0],ymm9[1],ymm2[1],ymm9[4],ymm2[4],ymm9[5],ymm2[5]
2141 ; AVX-NEXT:    vextractf128 $1, %ymm1, %xmm1
2142 ; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm8[1,0],ymm7[1,0],ymm8[5,4],ymm7[5,4]
2143 ; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[2,0,2,3,6,4,6,7]
2144 ; AVX-NEXT:    vextractf128 $1, %ymm2, %xmm2
2145 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
2146 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
2147 ; AVX-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
2148 ; AVX-NEXT:    vmovaps (%rsi), %xmm4
2149 ; AVX-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2150 ; AVX-NEXT:    vmovaps (%rax), %xmm1
2151 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2152 ; AVX-NEXT:    vmovaps (%r10), %xmm0
2153 ; AVX-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2154 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
2155 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm1
2156 ; AVX-NEXT:    vmovaps (%r9), %xmm15
2157 ; AVX-NEXT:    vmovaps (%r8), %xmm13
2158 ; AVX-NEXT:    vshufps {{.*#+}} xmm2 = xmm13[1,1,1,1]
2159 ; AVX-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0],xmm15[1],xmm2[2,3]
2160 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
2161 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
2162 ; AVX-NEXT:    vmovaps (%rdi), %xmm11
2163 ; AVX-NEXT:    vshufps {{.*#+}} xmm2 = xmm11[1,1,1,1]
2164 ; AVX-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0],xmm4[1],xmm2[2,3]
2165 ; AVX-NEXT:    vmovaps (%rcx), %xmm3
2166 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2167 ; AVX-NEXT:    vmovaps (%rdx), %xmm14
2168 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm14[0],xmm3[0],xmm14[1],xmm3[1]
2169 ; AVX-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm3[2,3]
2170 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
2171 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2172 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm11[0],xmm4[0],xmm11[1],xmm4[1]
2173 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm3[0]
2174 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm13[0],xmm15[0],xmm13[1],xmm15[1]
2175 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
2176 ; AVX-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[0,1,0,1]
2177 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
2178 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3,4,5],ymm0[6,7]
2179 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
2180 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2181 ; AVX-NEXT:    vmovaps 32(%rax), %xmm9
2182 ; AVX-NEXT:    vmovaps 32(%r10), %xmm7
2183 ; AVX-NEXT:    vshufps {{.*#+}} xmm0 = xmm9[2,2,2,2]
2184 ; AVX-NEXT:    vblendps {{.*#+}} xmm0 = xmm7[0,1,2],xmm0[3]
2185 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm6
2186 ; AVX-NEXT:    vmovaps 32(%r9), %xmm8
2187 ; AVX-NEXT:    vmovaps 32(%r8), %xmm5
2188 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm5[2],xmm8[2],xmm5[3],xmm8[3]
2189 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm10
2190 ; AVX-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1,2,3,4,5],ymm6[6,7]
2191 ; AVX-NEXT:    vmovaps 32(%rcx), %xmm6
2192 ; AVX-NEXT:    vmovaps 32(%rdx), %xmm1
2193 ; AVX-NEXT:    vshufps {{.*#+}} xmm12 = xmm6[2,2,2,2]
2194 ; AVX-NEXT:    vblendps {{.*#+}} xmm12 = xmm1[0,1,2],xmm12[3]
2195 ; AVX-NEXT:    vmovaps 32(%rsi), %xmm3
2196 ; AVX-NEXT:    vmovaps 32(%rdi), %xmm2
2197 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm2[2],xmm3[2],xmm2[3],xmm3[3]
2198 ; AVX-NEXT:    vblendps {{.*#+}} xmm12 = xmm0[0,1],xmm12[2,3]
2199 ; AVX-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3],ymm10[4,5,6,7]
2200 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm10 = xmm1[2],xmm6[2],xmm1[3],xmm6[3]
2201 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm10[1]
2202 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm10 = xmm7[2],xmm9[2],xmm7[3],xmm9[3]
2203 ; AVX-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
2204 ; AVX-NEXT:    vshufps {{.*#+}} xmm4 = xmm4[2,3,2,3]
2205 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
2206 ; AVX-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],ymm10[6,7]
2207 ; AVX-NEXT:    vblendps {{.*#+}} ymm10 = ymm0[0,1,2,3],ymm4[4,5,6,7]
2208 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm6[0],xmm1[1],xmm6[1]
2209 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm4 = xmm7[0],xmm9[0],xmm7[1],xmm9[1]
2210 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm5[0],xmm8[0],xmm5[1],xmm8[1]
2211 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
2212 ; AVX-NEXT:    vshufps {{.*#+}} xmm6 = xmm4[0,1,0,1]
2213 ; AVX-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
2214 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm6[6,7]
2215 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm6 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]
2216 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm6 = xmm6[0],xmm1[0]
2217 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm6[0,1,2,3],ymm0[4,5,6,7]
2218 ; AVX-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[1,1,1,1]
2219 ; AVX-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0],xmm3[1],xmm2[2,3]
2220 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
2221 ; AVX-NEXT:    vshufps {{.*#+}} xmm2 = xmm5[1,1,1,1]
2222 ; AVX-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0],xmm8[1],xmm2[2,3]
2223 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm3
2224 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
2225 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm3[6,7]
2226 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]
2227 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11, %xmm2 # 16-byte Folded Reload
2228 ; AVX-NEXT:    # xmm2 = xmm11[2],mem[2],xmm11[3],mem[3]
2229 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm3 = xmm13[2],xmm15[2],xmm13[3],xmm15[3]
2230 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
2231 ; AVX-NEXT:    vshufps {{.*#+}} xmm4 = xmm7[2,2,2,2]
2232 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
2233 ; AVX-NEXT:    vblendps {{.*#+}} xmm4 = xmm6[0,1,2],xmm4[3]
2234 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
2235 ; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm5
2236 ; AVX-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1,2,3,4,5],ymm4[6,7]
2237 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
2238 ; AVX-NEXT:    vshufps {{.*#+}} xmm5 = xmm8[2,2,2,2]
2239 ; AVX-NEXT:    vblendps {{.*#+}} xmm5 = xmm14[0,1,2],xmm5[3]
2240 ; AVX-NEXT:    vblendps {{.*#+}} xmm5 = xmm2[0,1],xmm5[2,3]
2241 ; AVX-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1,2,3],ymm4[4,5,6,7]
2242 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm14[2],xmm8[2],xmm14[3],xmm8[3]
2243 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm2 = xmm2[1],xmm5[1]
2244 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm6[2],xmm7[2],xmm6[3],xmm7[3]
2245 ; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
2246 ; AVX-NEXT:    vshufps {{.*#+}} xmm3 = xmm3[2,3,2,3]
2247 ; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
2248 ; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm5[6,7]
2249 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
2250 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax
2251 ; AVX-NEXT:    vmovaps %ymm2, 96(%rax)
2252 ; AVX-NEXT:    vmovaps %ymm4, 64(%rax)
2253 ; AVX-NEXT:    vmovaps %ymm1, 288(%rax)
2254 ; AVX-NEXT:    vmovaps %ymm0, 256(%rax)
2255 ; AVX-NEXT:    vmovaps %ymm10, 352(%rax)
2256 ; AVX-NEXT:    vmovaps %ymm12, 320(%rax)
2257 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2258 ; AVX-NEXT:    vmovaps %ymm0, (%rax)
2259 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2260 ; AVX-NEXT:    vmovaps %ymm0, 32(%rax)
2261 ; AVX-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
2262 ; AVX-NEXT:    vmovaps %ymm0, 160(%rax)
2263 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2264 ; AVX-NEXT:    vmovaps %ymm0, 128(%rax)
2265 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2266 ; AVX-NEXT:    vmovaps %ymm0, 224(%rax)
2267 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2268 ; AVX-NEXT:    vmovaps %ymm0, 192(%rax)
2269 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2270 ; AVX-NEXT:    vmovaps %ymm0, 416(%rax)
2271 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2272 ; AVX-NEXT:    vmovaps %ymm0, 384(%rax)
2273 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2274 ; AVX-NEXT:    vmovaps %ymm0, 480(%rax)
2275 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2276 ; AVX-NEXT:    vmovaps %ymm0, 448(%rax)
2277 ; AVX-NEXT:    addq $264, %rsp # imm = 0x108
2278 ; AVX-NEXT:    vzeroupper
2279 ; AVX-NEXT:    retq
2281 ; AVX2-LABEL: store_i32_stride8_vf16:
2282 ; AVX2:       # %bb.0:
2283 ; AVX2-NEXT:    subq $328, %rsp # imm = 0x148
2284 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rax
2285 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %r10
2286 ; AVX2-NEXT:    vmovaps (%rdi), %ymm7
2287 ; AVX2-NEXT:    vmovaps 32(%rdi), %ymm3
2288 ; AVX2-NEXT:    vmovaps (%rsi), %ymm8
2289 ; AVX2-NEXT:    vmovaps 32(%rsi), %ymm4
2290 ; AVX2-NEXT:    vmovaps (%rdx), %ymm0
2291 ; AVX2-NEXT:    vmovaps 32(%rdx), %ymm10
2292 ; AVX2-NEXT:    vmovaps 32(%rcx), %ymm11
2293 ; AVX2-NEXT:    vmovaps 32(%r8), %ymm9
2294 ; AVX2-NEXT:    vmovaps 32(%r9), %ymm6
2295 ; AVX2-NEXT:    vmovaps 32(%r10), %ymm12
2296 ; AVX2-NEXT:    vmovaps 32(%rax), %ymm13
2297 ; AVX2-NEXT:    vbroadcastss 56(%rax), %ymm1
2298 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm12[0,1,2,3,4,5,6],ymm1[7]
2299 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm3[2],ymm4[2],ymm3[3],ymm4[3],ymm3[6],ymm4[6],ymm3[7],ymm4[7]
2300 ; AVX2-NEXT:    vextractf128 $1, %ymm2, %xmm5
2301 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm14 = ymm10[2],ymm11[2],ymm10[3],ymm11[3],ymm10[6],ymm11[6],ymm10[7],ymm11[7]
2302 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm15 = ymm14[2,2,2,2]
2303 ; AVX2-NEXT:    vblendps {{.*#+}} xmm5 = xmm5[0,1],xmm15[2,3]
2304 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm15 = ymm9[2],ymm6[2],ymm9[3],ymm6[3],ymm9[6],ymm6[6],ymm9[7],ymm6[7]
2305 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm15[0,1,2,3,4,5],ymm1[6,7]
2306 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm5[0,1,2,3],ymm1[4,5,6,7]
2307 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2308 ; AVX2-NEXT:    vbroadcastss 60(%r10), %ymm1
2309 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm1[2],ymm13[2],ymm1[3],ymm13[3],ymm1[6],ymm13[6],ymm1[7],ymm13[7]
2310 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm15 = ymm15[1],ymm1[1],ymm15[3],ymm1[3]
2311 ; AVX2-NEXT:    vmovaps (%rcx), %ymm1
2312 ; AVX2-NEXT:    vextractf128 $1, %ymm14, %xmm5
2313 ; AVX2-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[2,3,2,3,6,7,6,7]
2314 ; AVX2-NEXT:    vextractf128 $1, %ymm2, %xmm2
2315 ; AVX2-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm5[2,3]
2316 ; AVX2-NEXT:    vmovaps (%r8), %ymm5
2317 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm15[4,5,6,7]
2318 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2319 ; AVX2-NEXT:    vmovaps (%r9), %ymm2
2320 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm12 = ymm12[0],ymm13[0],ymm12[1],ymm13[1],ymm12[4],ymm13[4],ymm12[5],ymm13[5]
2321 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm13 = ymm3[0],ymm4[0],ymm3[1],ymm4[1],ymm3[4],ymm4[4],ymm3[5],ymm4[5]
2322 ; AVX2-NEXT:    vextractf128 $1, %ymm13, %xmm13
2323 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm11 = ymm10[0],ymm11[0],ymm10[1],ymm11[1],ymm10[4],ymm11[4],ymm10[5],ymm11[5]
2324 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm10 = ymm11[2,2,2,2]
2325 ; AVX2-NEXT:    vblendps {{.*#+}} xmm13 = xmm13[0,1],xmm10[2,3]
2326 ; AVX2-NEXT:    vmovaps (%r10), %ymm10
2327 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm9 = ymm9[0],ymm6[0],ymm9[1],ymm6[1],ymm9[4],ymm6[4],ymm9[5],ymm6[5]
2328 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm9 = ymm9[0],ymm12[0],ymm9[2],ymm12[2]
2329 ; AVX2-NEXT:    vblendps {{.*#+}} ymm9 = ymm13[0,1,2,3],ymm9[4,5,6,7]
2330 ; AVX2-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2331 ; AVX2-NEXT:    vbroadcastss 52(%r8), %ymm9
2332 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm9[0,1,2,3,4],ymm6[5],ymm9[6,7]
2333 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5],ymm12[6,7]
2334 ; AVX2-NEXT:    vextractf128 $1, %ymm11, %xmm9
2335 ; AVX2-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[1,1,1,1,5,5,5,5]
2336 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0],ymm4[1],ymm3[2,3,4],ymm4[5],ymm3[6,7]
2337 ; AVX2-NEXT:    vextractf128 $1, %ymm3, %xmm3
2338 ; AVX2-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm9[2,3]
2339 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm6[4,5,6,7]
2340 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2341 ; AVX2-NEXT:    vbroadcastss 24(%rax), %ymm3
2342 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm10[0,1,2,3,4,5,6],ymm3[7]
2343 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm4 = ymm7[2],ymm8[2],ymm7[3],ymm8[3],ymm7[6],ymm8[6],ymm7[7],ymm8[7]
2344 ; AVX2-NEXT:    vextractf128 $1, %ymm4, %xmm6
2345 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm9 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
2346 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm11 = ymm9[2,2,2,2]
2347 ; AVX2-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0,1],xmm11[2,3]
2348 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm11 = ymm5[2],ymm2[2],ymm5[3],ymm2[3],ymm5[6],ymm2[6],ymm5[7],ymm2[7]
2349 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm11[0,1,2,3,4,5],ymm3[6,7]
2350 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm6[0,1,2,3],ymm3[4,5,6,7]
2351 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2352 ; AVX2-NEXT:    vmovaps (%rax), %ymm3
2353 ; AVX2-NEXT:    vbroadcastss 28(%r10), %ymm6
2354 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm6 = ymm6[2],ymm3[2],ymm6[3],ymm3[3],ymm6[6],ymm3[6],ymm6[7],ymm3[7]
2355 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm6 = ymm11[1],ymm6[1],ymm11[3],ymm6[3]
2356 ; AVX2-NEXT:    vextractf128 $1, %ymm9, %xmm9
2357 ; AVX2-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[2,3,2,3,6,7,6,7]
2358 ; AVX2-NEXT:    vextractf128 $1, %ymm4, %xmm4
2359 ; AVX2-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],xmm9[2,3]
2360 ; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm6[4,5,6,7]
2361 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2362 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm3 = ymm10[0],ymm3[0],ymm10[1],ymm3[1],ymm10[4],ymm3[4],ymm10[5],ymm3[5]
2363 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm4 = ymm5[0],ymm2[0],ymm5[1],ymm2[1],ymm5[4],ymm2[4],ymm5[5],ymm2[5]
2364 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
2365 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm5 = ymm7[0],ymm8[0],ymm7[1],ymm8[1],ymm7[4],ymm8[4],ymm7[5],ymm8[5]
2366 ; AVX2-NEXT:    vextractf128 $1, %ymm5, %xmm5
2367 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]
2368 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm0[2,2,2,2]
2369 ; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm5[0,1],xmm1[2,3]
2370 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
2371 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2372 ; AVX2-NEXT:    vbroadcastss 20(%r8), %ymm1
2373 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5],ymm1[6,7]
2374 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
2375 ; AVX2-NEXT:    vextractf128 $1, %ymm0, %xmm0
2376 ; AVX2-NEXT:    vshufps {{.*#+}} ymm2 = ymm7[1,1,1,1,5,5,5,5]
2377 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0],ymm8[1],ymm2[2,3,4],ymm8[5],ymm2[6,7]
2378 ; AVX2-NEXT:    vextractf128 $1, %ymm2, %xmm2
2379 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm2[0,1],xmm0[2,3]
2380 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2381 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2382 ; AVX2-NEXT:    vmovaps (%rcx), %xmm1
2383 ; AVX2-NEXT:    vmovaps (%rdx), %xmm14
2384 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm14[0],xmm1[0],xmm14[1],xmm1[1]
2385 ; AVX2-NEXT:    vmovaps %xmm1, %xmm3
2386 ; AVX2-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2387 ; AVX2-NEXT:    vmovaps (%rsi), %xmm2
2388 ; AVX2-NEXT:    vmovaps (%rdi), %xmm4
2389 ; AVX2-NEXT:    vshufps {{.*#+}} xmm1 = xmm4[1,1,1,1]
2390 ; AVX2-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2391 ; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0],xmm2[1],xmm1[2,3]
2392 ; AVX2-NEXT:    vmovaps %xmm2, %xmm5
2393 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2394 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
2395 ; AVX2-NEXT:    vmovaps (%rax), %xmm11
2396 ; AVX2-NEXT:    vmovaps (%r10), %xmm12
2397 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm12[0],xmm11[0],xmm12[1],xmm11[1]
2398 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
2399 ; AVX2-NEXT:    vmovaps (%r9), %xmm6
2400 ; AVX2-NEXT:    vmovaps (%r8), %xmm13
2401 ; AVX2-NEXT:    vshufps {{.*#+}} xmm2 = xmm13[1,1,1,1]
2402 ; AVX2-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0],xmm6[1],xmm2[2,3]
2403 ; AVX2-NEXT:    vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2404 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
2405 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
2406 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2407 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2408 ; AVX2-NEXT:    vbroadcastss %xmm3, %xmm0
2409 ; AVX2-NEXT:    vbroadcastss %xmm14, %xmm1
2410 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
2411 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm4[0],xmm5[0],xmm4[1],xmm5[1]
2412 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
2413 ; AVX2-NEXT:    vbroadcastss %xmm11, %xmm1
2414 ; AVX2-NEXT:    vbroadcastss %xmm12, %xmm2
2415 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
2416 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm13[0],xmm6[0],xmm13[1],xmm6[1]
2417 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
2418 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
2419 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
2420 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2421 ; AVX2-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
2422 ; AVX2-NEXT:    vmovaps 32(%rax), %xmm7
2423 ; AVX2-NEXT:    vmovaps 32(%r10), %xmm6
2424 ; AVX2-NEXT:    vshufps {{.*#+}} xmm0 = xmm7[2,2,2,2]
2425 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm6[0,1,2],xmm0[3]
2426 ; AVX2-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
2427 ; AVX2-NEXT:    vmovaps 32(%r9), %xmm10
2428 ; AVX2-NEXT:    vmovaps 32(%r8), %xmm9
2429 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm15 = xmm9[2],xmm10[2],xmm9[3],xmm10[3]
2430 ; AVX2-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm1
2431 ; AVX2-NEXT:    vblendps {{.*#+}} ymm8 = ymm1[0,1,2,3,4,5],ymm0[6,7]
2432 ; AVX2-NEXT:    vmovaps 32(%rcx), %xmm3
2433 ; AVX2-NEXT:    vmovaps 32(%rdx), %xmm1
2434 ; AVX2-NEXT:    vshufps {{.*#+}} xmm2 = xmm3[2,2,2,2]
2435 ; AVX2-NEXT:    vblendps {{.*#+}} xmm5 = xmm1[0,1,2],xmm2[3]
2436 ; AVX2-NEXT:    vmovaps 32(%rsi), %xmm4
2437 ; AVX2-NEXT:    vmovaps 32(%rdi), %xmm2
2438 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm2[2],xmm4[2],xmm2[3],xmm4[3]
2439 ; AVX2-NEXT:    vblendps {{.*#+}} xmm5 = xmm0[0,1],xmm5[2,3]
2440 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm8[4,5,6,7]
2441 ; AVX2-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2442 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm1[2],xmm3[2],xmm1[3],xmm3[3]
2443 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm5[1]
2444 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm6[2],xmm7[2],xmm6[3],xmm7[3]
2445 ; AVX2-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
2446 ; AVX2-NEXT:    vshufps {{.*#+}} xmm8 = xmm15[2,3,2,3]
2447 ; AVX2-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm8
2448 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm8[0,1,2,3,4,5],ymm5[6,7]
2449 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm5[4,5,6,7]
2450 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2451 ; AVX2-NEXT:    vbroadcastss %xmm3, %xmm0
2452 ; AVX2-NEXT:    vbroadcastss %xmm1, %xmm5
2453 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm5[0],xmm0[0],xmm5[1],xmm0[1]
2454 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm2[0],xmm4[0],xmm2[1],xmm4[1]
2455 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm5[0,1],xmm0[2,3]
2456 ; AVX2-NEXT:    vbroadcastss %xmm7, %xmm5
2457 ; AVX2-NEXT:    vbroadcastss %xmm6, %xmm8
2458 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm8[0],xmm5[0],xmm8[1],xmm5[1]
2459 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm8 = xmm9[0],xmm10[0],xmm9[1],xmm10[1]
2460 ; AVX2-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm8
2461 ; AVX2-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
2462 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm8[0,1,2,3,4,5],ymm5[6,7]
2463 ; AVX2-NEXT:    vblendps {{.*#+}} ymm15 = ymm0[0,1,2,3],ymm5[4,5,6,7]
2464 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
2465 ; AVX2-NEXT:    vshufps {{.*#+}} xmm1 = xmm2[1,1,1,1]
2466 ; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0],xmm4[1],xmm1[2,3]
2467 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
2468 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm6[0],xmm7[0],xmm6[1],xmm7[1]
2469 ; AVX2-NEXT:    vshufps {{.*#+}} xmm2 = xmm9[1,1,1,1]
2470 ; AVX2-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0],xmm10[1],xmm2[2,3]
2471 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
2472 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
2473 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
2474 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2475 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2476 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
2477 ; AVX2-NEXT:    # xmm1 = xmm1[2],mem[2],xmm1[3],mem[3]
2478 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13, %xmm2 # 16-byte Folded Reload
2479 ; AVX2-NEXT:    # xmm2 = xmm13[2],mem[2],xmm13[3],mem[3]
2480 ; AVX2-NEXT:    vshufps {{.*#+}} xmm3 = xmm11[2,2,2,2]
2481 ; AVX2-NEXT:    vblendps {{.*#+}} xmm3 = xmm12[0,1,2],xmm3[3]
2482 ; AVX2-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
2483 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm4
2484 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3,4,5],ymm3[6,7]
2485 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
2486 ; AVX2-NEXT:    vshufps {{.*#+}} xmm4 = xmm5[2,2,2,2]
2487 ; AVX2-NEXT:    vblendps {{.*#+}} xmm4 = xmm14[0,1,2],xmm4[3]
2488 ; AVX2-NEXT:    vblendps {{.*#+}} xmm4 = xmm1[0,1],xmm4[2,3]
2489 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
2490 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm14[2],xmm5[2],xmm14[3],xmm5[3]
2491 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm4[1]
2492 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm12[2],xmm11[2],xmm12[3],xmm11[3]
2493 ; AVX2-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
2494 ; AVX2-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[2,3,2,3]
2495 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
2496 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm4[6,7]
2497 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]
2498 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rax
2499 ; AVX2-NEXT:    vmovaps %ymm1, 96(%rax)
2500 ; AVX2-NEXT:    vmovaps %ymm3, 64(%rax)
2501 ; AVX2-NEXT:    vmovaps %ymm0, 288(%rax)
2502 ; AVX2-NEXT:    vmovaps %ymm15, 256(%rax)
2503 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2504 ; AVX2-NEXT:    vmovaps %ymm0, 352(%rax)
2505 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2506 ; AVX2-NEXT:    vmovaps %ymm0, 320(%rax)
2507 ; AVX2-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
2508 ; AVX2-NEXT:    vmovaps %ymm0, (%rax)
2509 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2510 ; AVX2-NEXT:    vmovaps %ymm0, 32(%rax)
2511 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2512 ; AVX2-NEXT:    vmovaps %ymm0, 160(%rax)
2513 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2514 ; AVX2-NEXT:    vmovaps %ymm0, 128(%rax)
2515 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2516 ; AVX2-NEXT:    vmovaps %ymm0, 224(%rax)
2517 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2518 ; AVX2-NEXT:    vmovaps %ymm0, 192(%rax)
2519 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2520 ; AVX2-NEXT:    vmovaps %ymm0, 416(%rax)
2521 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2522 ; AVX2-NEXT:    vmovaps %ymm0, 384(%rax)
2523 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2524 ; AVX2-NEXT:    vmovaps %ymm0, 480(%rax)
2525 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2526 ; AVX2-NEXT:    vmovaps %ymm0, 448(%rax)
2527 ; AVX2-NEXT:    addq $328, %rsp # imm = 0x148
2528 ; AVX2-NEXT:    vzeroupper
2529 ; AVX2-NEXT:    retq
2531 ; AVX2-FP-LABEL: store_i32_stride8_vf16:
2532 ; AVX2-FP:       # %bb.0:
2533 ; AVX2-FP-NEXT:    subq $328, %rsp # imm = 0x148
2534 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
2535 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
2536 ; AVX2-FP-NEXT:    vmovaps (%rdi), %ymm7
2537 ; AVX2-FP-NEXT:    vmovaps 32(%rdi), %ymm3
2538 ; AVX2-FP-NEXT:    vmovaps (%rsi), %ymm8
2539 ; AVX2-FP-NEXT:    vmovaps 32(%rsi), %ymm4
2540 ; AVX2-FP-NEXT:    vmovaps (%rdx), %ymm0
2541 ; AVX2-FP-NEXT:    vmovaps 32(%rdx), %ymm10
2542 ; AVX2-FP-NEXT:    vmovaps 32(%rcx), %ymm11
2543 ; AVX2-FP-NEXT:    vmovaps 32(%r8), %ymm9
2544 ; AVX2-FP-NEXT:    vmovaps 32(%r9), %ymm6
2545 ; AVX2-FP-NEXT:    vmovaps 32(%r10), %ymm12
2546 ; AVX2-FP-NEXT:    vmovaps 32(%rax), %ymm13
2547 ; AVX2-FP-NEXT:    vbroadcastss 56(%rax), %ymm1
2548 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm12[0,1,2,3,4,5,6],ymm1[7]
2549 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm3[2],ymm4[2],ymm3[3],ymm4[3],ymm3[6],ymm4[6],ymm3[7],ymm4[7]
2550 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm2, %xmm5
2551 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm14 = ymm10[2],ymm11[2],ymm10[3],ymm11[3],ymm10[6],ymm11[6],ymm10[7],ymm11[7]
2552 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm15 = ymm14[2,2,2,2]
2553 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm5 = xmm5[0,1],xmm15[2,3]
2554 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm15 = ymm9[2],ymm6[2],ymm9[3],ymm6[3],ymm9[6],ymm6[6],ymm9[7],ymm6[7]
2555 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm15[0,1,2,3,4,5],ymm1[6,7]
2556 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm5[0,1,2,3],ymm1[4,5,6,7]
2557 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2558 ; AVX2-FP-NEXT:    vbroadcastss 60(%r10), %ymm1
2559 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm1[2],ymm13[2],ymm1[3],ymm13[3],ymm1[6],ymm13[6],ymm1[7],ymm13[7]
2560 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm15 = ymm15[1],ymm1[1],ymm15[3],ymm1[3]
2561 ; AVX2-FP-NEXT:    vmovaps (%rcx), %ymm1
2562 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm14, %xmm5
2563 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[2,3,2,3,6,7,6,7]
2564 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm2, %xmm2
2565 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm5[2,3]
2566 ; AVX2-FP-NEXT:    vmovaps (%r8), %ymm5
2567 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm15[4,5,6,7]
2568 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2569 ; AVX2-FP-NEXT:    vmovaps (%r9), %ymm2
2570 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm12 = ymm12[0],ymm13[0],ymm12[1],ymm13[1],ymm12[4],ymm13[4],ymm12[5],ymm13[5]
2571 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm13 = ymm3[0],ymm4[0],ymm3[1],ymm4[1],ymm3[4],ymm4[4],ymm3[5],ymm4[5]
2572 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm13, %xmm13
2573 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm11 = ymm10[0],ymm11[0],ymm10[1],ymm11[1],ymm10[4],ymm11[4],ymm10[5],ymm11[5]
2574 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm10 = ymm11[2,2,2,2]
2575 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm13 = xmm13[0,1],xmm10[2,3]
2576 ; AVX2-FP-NEXT:    vmovaps (%r10), %ymm10
2577 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm9 = ymm9[0],ymm6[0],ymm9[1],ymm6[1],ymm9[4],ymm6[4],ymm9[5],ymm6[5]
2578 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm9 = ymm9[0],ymm12[0],ymm9[2],ymm12[2]
2579 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm9 = ymm13[0,1,2,3],ymm9[4,5,6,7]
2580 ; AVX2-FP-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2581 ; AVX2-FP-NEXT:    vbroadcastss 52(%r8), %ymm9
2582 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm9[0,1,2,3,4],ymm6[5],ymm9[6,7]
2583 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5],ymm12[6,7]
2584 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm11, %xmm9
2585 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[1,1,1,1,5,5,5,5]
2586 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0],ymm4[1],ymm3[2,3,4],ymm4[5],ymm3[6,7]
2587 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm3, %xmm3
2588 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm9[2,3]
2589 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm6[4,5,6,7]
2590 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2591 ; AVX2-FP-NEXT:    vbroadcastss 24(%rax), %ymm3
2592 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm10[0,1,2,3,4,5,6],ymm3[7]
2593 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm4 = ymm7[2],ymm8[2],ymm7[3],ymm8[3],ymm7[6],ymm8[6],ymm7[7],ymm8[7]
2594 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm4, %xmm6
2595 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm9 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
2596 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm11 = ymm9[2,2,2,2]
2597 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0,1],xmm11[2,3]
2598 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm11 = ymm5[2],ymm2[2],ymm5[3],ymm2[3],ymm5[6],ymm2[6],ymm5[7],ymm2[7]
2599 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm11[0,1,2,3,4,5],ymm3[6,7]
2600 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm6[0,1,2,3],ymm3[4,5,6,7]
2601 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2602 ; AVX2-FP-NEXT:    vmovaps (%rax), %ymm3
2603 ; AVX2-FP-NEXT:    vbroadcastss 28(%r10), %ymm6
2604 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm6 = ymm6[2],ymm3[2],ymm6[3],ymm3[3],ymm6[6],ymm3[6],ymm6[7],ymm3[7]
2605 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm6 = ymm11[1],ymm6[1],ymm11[3],ymm6[3]
2606 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm9, %xmm9
2607 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[2,3,2,3,6,7,6,7]
2608 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm4, %xmm4
2609 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],xmm9[2,3]
2610 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm6[4,5,6,7]
2611 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2612 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm3 = ymm10[0],ymm3[0],ymm10[1],ymm3[1],ymm10[4],ymm3[4],ymm10[5],ymm3[5]
2613 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm4 = ymm5[0],ymm2[0],ymm5[1],ymm2[1],ymm5[4],ymm2[4],ymm5[5],ymm2[5]
2614 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
2615 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm5 = ymm7[0],ymm8[0],ymm7[1],ymm8[1],ymm7[4],ymm8[4],ymm7[5],ymm8[5]
2616 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm5, %xmm5
2617 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]
2618 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm0[2,2,2,2]
2619 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm5[0,1],xmm1[2,3]
2620 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
2621 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2622 ; AVX2-FP-NEXT:    vbroadcastss 20(%r8), %ymm1
2623 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5],ymm1[6,7]
2624 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
2625 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm0, %xmm0
2626 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm2 = ymm7[1,1,1,1,5,5,5,5]
2627 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0],ymm8[1],ymm2[2,3,4],ymm8[5],ymm2[6,7]
2628 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm2, %xmm2
2629 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm2[0,1],xmm0[2,3]
2630 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2631 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2632 ; AVX2-FP-NEXT:    vmovaps (%rcx), %xmm1
2633 ; AVX2-FP-NEXT:    vmovaps (%rdx), %xmm14
2634 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm14[0],xmm1[0],xmm14[1],xmm1[1]
2635 ; AVX2-FP-NEXT:    vmovaps %xmm1, %xmm3
2636 ; AVX2-FP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2637 ; AVX2-FP-NEXT:    vmovaps (%rsi), %xmm2
2638 ; AVX2-FP-NEXT:    vmovaps (%rdi), %xmm4
2639 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm1 = xmm4[1,1,1,1]
2640 ; AVX2-FP-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2641 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0],xmm2[1],xmm1[2,3]
2642 ; AVX2-FP-NEXT:    vmovaps %xmm2, %xmm5
2643 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2644 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
2645 ; AVX2-FP-NEXT:    vmovaps (%rax), %xmm11
2646 ; AVX2-FP-NEXT:    vmovaps (%r10), %xmm12
2647 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm12[0],xmm11[0],xmm12[1],xmm11[1]
2648 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
2649 ; AVX2-FP-NEXT:    vmovaps (%r9), %xmm6
2650 ; AVX2-FP-NEXT:    vmovaps (%r8), %xmm13
2651 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm2 = xmm13[1,1,1,1]
2652 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0],xmm6[1],xmm2[2,3]
2653 ; AVX2-FP-NEXT:    vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2654 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
2655 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
2656 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2657 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2658 ; AVX2-FP-NEXT:    vbroadcastss %xmm3, %xmm0
2659 ; AVX2-FP-NEXT:    vbroadcastss %xmm14, %xmm1
2660 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
2661 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm4[0],xmm5[0],xmm4[1],xmm5[1]
2662 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
2663 ; AVX2-FP-NEXT:    vbroadcastss %xmm11, %xmm1
2664 ; AVX2-FP-NEXT:    vbroadcastss %xmm12, %xmm2
2665 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
2666 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm13[0],xmm6[0],xmm13[1],xmm6[1]
2667 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
2668 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
2669 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
2670 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2671 ; AVX2-FP-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
2672 ; AVX2-FP-NEXT:    vmovaps 32(%rax), %xmm7
2673 ; AVX2-FP-NEXT:    vmovaps 32(%r10), %xmm6
2674 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm0 = xmm7[2,2,2,2]
2675 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm6[0,1,2],xmm0[3]
2676 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
2677 ; AVX2-FP-NEXT:    vmovaps 32(%r9), %xmm10
2678 ; AVX2-FP-NEXT:    vmovaps 32(%r8), %xmm9
2679 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm15 = xmm9[2],xmm10[2],xmm9[3],xmm10[3]
2680 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm1
2681 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm8 = ymm1[0,1,2,3,4,5],ymm0[6,7]
2682 ; AVX2-FP-NEXT:    vmovaps 32(%rcx), %xmm3
2683 ; AVX2-FP-NEXT:    vmovaps 32(%rdx), %xmm1
2684 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm2 = xmm3[2,2,2,2]
2685 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm5 = xmm1[0,1,2],xmm2[3]
2686 ; AVX2-FP-NEXT:    vmovaps 32(%rsi), %xmm4
2687 ; AVX2-FP-NEXT:    vmovaps 32(%rdi), %xmm2
2688 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm2[2],xmm4[2],xmm2[3],xmm4[3]
2689 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm5 = xmm0[0,1],xmm5[2,3]
2690 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm8[4,5,6,7]
2691 ; AVX2-FP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2692 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm1[2],xmm3[2],xmm1[3],xmm3[3]
2693 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm5[1]
2694 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm6[2],xmm7[2],xmm6[3],xmm7[3]
2695 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
2696 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm8 = xmm15[2,3,2,3]
2697 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm8
2698 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm8[0,1,2,3,4,5],ymm5[6,7]
2699 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm5[4,5,6,7]
2700 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2701 ; AVX2-FP-NEXT:    vbroadcastss %xmm3, %xmm0
2702 ; AVX2-FP-NEXT:    vbroadcastss %xmm1, %xmm5
2703 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm5[0],xmm0[0],xmm5[1],xmm0[1]
2704 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm2[0],xmm4[0],xmm2[1],xmm4[1]
2705 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm5[0,1],xmm0[2,3]
2706 ; AVX2-FP-NEXT:    vbroadcastss %xmm7, %xmm5
2707 ; AVX2-FP-NEXT:    vbroadcastss %xmm6, %xmm8
2708 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm8[0],xmm5[0],xmm8[1],xmm5[1]
2709 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm8 = xmm9[0],xmm10[0],xmm9[1],xmm10[1]
2710 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm8
2711 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
2712 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm8[0,1,2,3,4,5],ymm5[6,7]
2713 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm15 = ymm0[0,1,2,3],ymm5[4,5,6,7]
2714 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
2715 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm1 = xmm2[1,1,1,1]
2716 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0],xmm4[1],xmm1[2,3]
2717 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
2718 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm6[0],xmm7[0],xmm6[1],xmm7[1]
2719 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm2 = xmm9[1,1,1,1]
2720 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0],xmm10[1],xmm2[2,3]
2721 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
2722 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
2723 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
2724 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2725 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2726 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
2727 ; AVX2-FP-NEXT:    # xmm1 = xmm1[2],mem[2],xmm1[3],mem[3]
2728 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13, %xmm2 # 16-byte Folded Reload
2729 ; AVX2-FP-NEXT:    # xmm2 = xmm13[2],mem[2],xmm13[3],mem[3]
2730 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm3 = xmm11[2,2,2,2]
2731 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm3 = xmm12[0,1,2],xmm3[3]
2732 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
2733 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm4
2734 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3,4,5],ymm3[6,7]
2735 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
2736 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm4 = xmm5[2,2,2,2]
2737 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm4 = xmm14[0,1,2],xmm4[3]
2738 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm4 = xmm1[0,1],xmm4[2,3]
2739 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
2740 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm14[2],xmm5[2],xmm14[3],xmm5[3]
2741 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm4[1]
2742 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm12[2],xmm11[2],xmm12[3],xmm11[3]
2743 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
2744 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[2,3,2,3]
2745 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
2746 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm4[6,7]
2747 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]
2748 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
2749 ; AVX2-FP-NEXT:    vmovaps %ymm1, 96(%rax)
2750 ; AVX2-FP-NEXT:    vmovaps %ymm3, 64(%rax)
2751 ; AVX2-FP-NEXT:    vmovaps %ymm0, 288(%rax)
2752 ; AVX2-FP-NEXT:    vmovaps %ymm15, 256(%rax)
2753 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2754 ; AVX2-FP-NEXT:    vmovaps %ymm0, 352(%rax)
2755 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2756 ; AVX2-FP-NEXT:    vmovaps %ymm0, 320(%rax)
2757 ; AVX2-FP-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
2758 ; AVX2-FP-NEXT:    vmovaps %ymm0, (%rax)
2759 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2760 ; AVX2-FP-NEXT:    vmovaps %ymm0, 32(%rax)
2761 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2762 ; AVX2-FP-NEXT:    vmovaps %ymm0, 160(%rax)
2763 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2764 ; AVX2-FP-NEXT:    vmovaps %ymm0, 128(%rax)
2765 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2766 ; AVX2-FP-NEXT:    vmovaps %ymm0, 224(%rax)
2767 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2768 ; AVX2-FP-NEXT:    vmovaps %ymm0, 192(%rax)
2769 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2770 ; AVX2-FP-NEXT:    vmovaps %ymm0, 416(%rax)
2771 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2772 ; AVX2-FP-NEXT:    vmovaps %ymm0, 384(%rax)
2773 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2774 ; AVX2-FP-NEXT:    vmovaps %ymm0, 480(%rax)
2775 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2776 ; AVX2-FP-NEXT:    vmovaps %ymm0, 448(%rax)
2777 ; AVX2-FP-NEXT:    addq $328, %rsp # imm = 0x148
2778 ; AVX2-FP-NEXT:    vzeroupper
2779 ; AVX2-FP-NEXT:    retq
2781 ; AVX2-FCP-LABEL: store_i32_stride8_vf16:
2782 ; AVX2-FCP:       # %bb.0:
2783 ; AVX2-FCP-NEXT:    subq $328, %rsp # imm = 0x148
2784 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
2785 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
2786 ; AVX2-FCP-NEXT:    vmovaps (%rdi), %ymm7
2787 ; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %ymm3
2788 ; AVX2-FCP-NEXT:    vmovaps (%rsi), %ymm8
2789 ; AVX2-FCP-NEXT:    vmovaps 32(%rsi), %ymm4
2790 ; AVX2-FCP-NEXT:    vmovaps (%rdx), %ymm0
2791 ; AVX2-FCP-NEXT:    vmovaps 32(%rdx), %ymm10
2792 ; AVX2-FCP-NEXT:    vmovaps 32(%rcx), %ymm11
2793 ; AVX2-FCP-NEXT:    vmovaps 32(%r8), %ymm9
2794 ; AVX2-FCP-NEXT:    vmovaps 32(%r9), %ymm6
2795 ; AVX2-FCP-NEXT:    vmovaps 32(%r10), %ymm12
2796 ; AVX2-FCP-NEXT:    vmovaps 32(%rax), %ymm13
2797 ; AVX2-FCP-NEXT:    vbroadcastss 56(%rax), %ymm1
2798 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm12[0,1,2,3,4,5,6],ymm1[7]
2799 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm3[2],ymm4[2],ymm3[3],ymm4[3],ymm3[6],ymm4[6],ymm3[7],ymm4[7]
2800 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm2, %xmm5
2801 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm14 = ymm10[2],ymm11[2],ymm10[3],ymm11[3],ymm10[6],ymm11[6],ymm10[7],ymm11[7]
2802 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm15 = ymm14[2,2,2,2]
2803 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm5 = xmm5[0,1],xmm15[2,3]
2804 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm15 = ymm9[2],ymm6[2],ymm9[3],ymm6[3],ymm9[6],ymm6[6],ymm9[7],ymm6[7]
2805 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm15[0,1,2,3,4,5],ymm1[6,7]
2806 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm5[0,1,2,3],ymm1[4,5,6,7]
2807 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2808 ; AVX2-FCP-NEXT:    vbroadcastss 60(%r10), %ymm1
2809 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm1[2],ymm13[2],ymm1[3],ymm13[3],ymm1[6],ymm13[6],ymm1[7],ymm13[7]
2810 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm15 = ymm15[1],ymm1[1],ymm15[3],ymm1[3]
2811 ; AVX2-FCP-NEXT:    vmovaps (%rcx), %ymm1
2812 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm14, %xmm5
2813 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[2,3,2,3,6,7,6,7]
2814 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm2, %xmm2
2815 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm5[2,3]
2816 ; AVX2-FCP-NEXT:    vmovaps (%r8), %ymm5
2817 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm15[4,5,6,7]
2818 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2819 ; AVX2-FCP-NEXT:    vmovaps (%r9), %ymm2
2820 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm12 = ymm12[0],ymm13[0],ymm12[1],ymm13[1],ymm12[4],ymm13[4],ymm12[5],ymm13[5]
2821 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm13 = ymm3[0],ymm4[0],ymm3[1],ymm4[1],ymm3[4],ymm4[4],ymm3[5],ymm4[5]
2822 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm13, %xmm13
2823 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm11 = ymm10[0],ymm11[0],ymm10[1],ymm11[1],ymm10[4],ymm11[4],ymm10[5],ymm11[5]
2824 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm10 = ymm11[2,2,2,2]
2825 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm13 = xmm13[0,1],xmm10[2,3]
2826 ; AVX2-FCP-NEXT:    vmovaps (%r10), %ymm10
2827 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm9 = ymm9[0],ymm6[0],ymm9[1],ymm6[1],ymm9[4],ymm6[4],ymm9[5],ymm6[5]
2828 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm9 = ymm9[0],ymm12[0],ymm9[2],ymm12[2]
2829 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm9 = ymm13[0,1,2,3],ymm9[4,5,6,7]
2830 ; AVX2-FCP-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2831 ; AVX2-FCP-NEXT:    vbroadcastss 52(%r8), %ymm9
2832 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm9[0,1,2,3,4],ymm6[5],ymm9[6,7]
2833 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5],ymm12[6,7]
2834 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm11, %xmm9
2835 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[1,1,1,1,5,5,5,5]
2836 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0],ymm4[1],ymm3[2,3,4],ymm4[5],ymm3[6,7]
2837 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm3, %xmm3
2838 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm9[2,3]
2839 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm6[4,5,6,7]
2840 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2841 ; AVX2-FCP-NEXT:    vbroadcastss 24(%rax), %ymm3
2842 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm10[0,1,2,3,4,5,6],ymm3[7]
2843 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm4 = ymm7[2],ymm8[2],ymm7[3],ymm8[3],ymm7[6],ymm8[6],ymm7[7],ymm8[7]
2844 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm4, %xmm6
2845 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm9 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
2846 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm11 = ymm9[2,2,2,2]
2847 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0,1],xmm11[2,3]
2848 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm11 = ymm5[2],ymm2[2],ymm5[3],ymm2[3],ymm5[6],ymm2[6],ymm5[7],ymm2[7]
2849 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm11[0,1,2,3,4,5],ymm3[6,7]
2850 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm6[0,1,2,3],ymm3[4,5,6,7]
2851 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2852 ; AVX2-FCP-NEXT:    vmovaps (%rax), %ymm3
2853 ; AVX2-FCP-NEXT:    vbroadcastss 28(%r10), %ymm6
2854 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm6 = ymm6[2],ymm3[2],ymm6[3],ymm3[3],ymm6[6],ymm3[6],ymm6[7],ymm3[7]
2855 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm6 = ymm11[1],ymm6[1],ymm11[3],ymm6[3]
2856 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm9, %xmm9
2857 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[2,3,2,3,6,7,6,7]
2858 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm4, %xmm4
2859 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],xmm9[2,3]
2860 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm6[4,5,6,7]
2861 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2862 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm3 = ymm10[0],ymm3[0],ymm10[1],ymm3[1],ymm10[4],ymm3[4],ymm10[5],ymm3[5]
2863 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm4 = ymm5[0],ymm2[0],ymm5[1],ymm2[1],ymm5[4],ymm2[4],ymm5[5],ymm2[5]
2864 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
2865 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm5 = ymm7[0],ymm8[0],ymm7[1],ymm8[1],ymm7[4],ymm8[4],ymm7[5],ymm8[5]
2866 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm5, %xmm5
2867 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]
2868 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm0[2,2,2,2]
2869 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm5[0,1],xmm1[2,3]
2870 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
2871 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2872 ; AVX2-FCP-NEXT:    vbroadcastss 20(%r8), %ymm1
2873 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5],ymm1[6,7]
2874 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
2875 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm0, %xmm0
2876 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm2 = ymm7[1,1,1,1,5,5,5,5]
2877 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0],ymm8[1],ymm2[2,3,4],ymm8[5],ymm2[6,7]
2878 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm2, %xmm2
2879 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm2[0,1],xmm0[2,3]
2880 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2881 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2882 ; AVX2-FCP-NEXT:    vmovaps (%rcx), %xmm1
2883 ; AVX2-FCP-NEXT:    vmovaps (%rdx), %xmm14
2884 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm14[0],xmm1[0],xmm14[1],xmm1[1]
2885 ; AVX2-FCP-NEXT:    vmovaps %xmm1, %xmm3
2886 ; AVX2-FCP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2887 ; AVX2-FCP-NEXT:    vmovaps (%rsi), %xmm2
2888 ; AVX2-FCP-NEXT:    vmovaps (%rdi), %xmm4
2889 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm1 = xmm4[1,1,1,1]
2890 ; AVX2-FCP-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2891 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0],xmm2[1],xmm1[2,3]
2892 ; AVX2-FCP-NEXT:    vmovaps %xmm2, %xmm5
2893 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2894 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
2895 ; AVX2-FCP-NEXT:    vmovaps (%rax), %xmm11
2896 ; AVX2-FCP-NEXT:    vmovaps (%r10), %xmm12
2897 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm12[0],xmm11[0],xmm12[1],xmm11[1]
2898 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
2899 ; AVX2-FCP-NEXT:    vmovaps (%r9), %xmm6
2900 ; AVX2-FCP-NEXT:    vmovaps (%r8), %xmm13
2901 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm2 = xmm13[1,1,1,1]
2902 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0],xmm6[1],xmm2[2,3]
2903 ; AVX2-FCP-NEXT:    vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2904 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
2905 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
2906 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2907 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2908 ; AVX2-FCP-NEXT:    vbroadcastss %xmm3, %xmm0
2909 ; AVX2-FCP-NEXT:    vbroadcastss %xmm14, %xmm1
2910 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
2911 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm4[0],xmm5[0],xmm4[1],xmm5[1]
2912 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
2913 ; AVX2-FCP-NEXT:    vbroadcastss %xmm11, %xmm1
2914 ; AVX2-FCP-NEXT:    vbroadcastss %xmm12, %xmm2
2915 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
2916 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm13[0],xmm6[0],xmm13[1],xmm6[1]
2917 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
2918 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
2919 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
2920 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2921 ; AVX2-FCP-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
2922 ; AVX2-FCP-NEXT:    vmovaps 32(%rax), %xmm7
2923 ; AVX2-FCP-NEXT:    vmovaps 32(%r10), %xmm6
2924 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm0 = xmm7[2,2,2,2]
2925 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm6[0,1,2],xmm0[3]
2926 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
2927 ; AVX2-FCP-NEXT:    vmovaps 32(%r9), %xmm10
2928 ; AVX2-FCP-NEXT:    vmovaps 32(%r8), %xmm9
2929 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm15 = xmm9[2],xmm10[2],xmm9[3],xmm10[3]
2930 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm1
2931 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm8 = ymm1[0,1,2,3,4,5],ymm0[6,7]
2932 ; AVX2-FCP-NEXT:    vmovaps 32(%rcx), %xmm3
2933 ; AVX2-FCP-NEXT:    vmovaps 32(%rdx), %xmm1
2934 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm2 = xmm3[2,2,2,2]
2935 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm5 = xmm1[0,1,2],xmm2[3]
2936 ; AVX2-FCP-NEXT:    vmovaps 32(%rsi), %xmm4
2937 ; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %xmm2
2938 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm2[2],xmm4[2],xmm2[3],xmm4[3]
2939 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm5 = xmm0[0,1],xmm5[2,3]
2940 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm8[4,5,6,7]
2941 ; AVX2-FCP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2942 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm1[2],xmm3[2],xmm1[3],xmm3[3]
2943 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm5[1]
2944 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm6[2],xmm7[2],xmm6[3],xmm7[3]
2945 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
2946 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm8 = xmm15[2,3,2,3]
2947 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm8
2948 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm8[0,1,2,3,4,5],ymm5[6,7]
2949 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm5[4,5,6,7]
2950 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2951 ; AVX2-FCP-NEXT:    vbroadcastss %xmm3, %xmm0
2952 ; AVX2-FCP-NEXT:    vbroadcastss %xmm1, %xmm5
2953 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm5[0],xmm0[0],xmm5[1],xmm0[1]
2954 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm2[0],xmm4[0],xmm2[1],xmm4[1]
2955 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm5[0,1],xmm0[2,3]
2956 ; AVX2-FCP-NEXT:    vbroadcastss %xmm7, %xmm5
2957 ; AVX2-FCP-NEXT:    vbroadcastss %xmm6, %xmm8
2958 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm8[0],xmm5[0],xmm8[1],xmm5[1]
2959 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm8 = xmm9[0],xmm10[0],xmm9[1],xmm10[1]
2960 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm8
2961 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
2962 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm8[0,1,2,3,4,5],ymm5[6,7]
2963 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm15 = ymm0[0,1,2,3],ymm5[4,5,6,7]
2964 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
2965 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm1 = xmm2[1,1,1,1]
2966 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0],xmm4[1],xmm1[2,3]
2967 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
2968 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm6[0],xmm7[0],xmm6[1],xmm7[1]
2969 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm2 = xmm9[1,1,1,1]
2970 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0],xmm10[1],xmm2[2,3]
2971 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
2972 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
2973 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
2974 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2975 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2976 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
2977 ; AVX2-FCP-NEXT:    # xmm1 = xmm1[2],mem[2],xmm1[3],mem[3]
2978 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13, %xmm2 # 16-byte Folded Reload
2979 ; AVX2-FCP-NEXT:    # xmm2 = xmm13[2],mem[2],xmm13[3],mem[3]
2980 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm3 = xmm11[2,2,2,2]
2981 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm3 = xmm12[0,1,2],xmm3[3]
2982 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
2983 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm4
2984 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3,4,5],ymm3[6,7]
2985 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
2986 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm4 = xmm5[2,2,2,2]
2987 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm4 = xmm14[0,1,2],xmm4[3]
2988 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm4 = xmm1[0,1],xmm4[2,3]
2989 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
2990 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm14[2],xmm5[2],xmm14[3],xmm5[3]
2991 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm4[1]
2992 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm12[2],xmm11[2],xmm12[3],xmm11[3]
2993 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
2994 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[2,3,2,3]
2995 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
2996 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm4[6,7]
2997 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]
2998 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
2999 ; AVX2-FCP-NEXT:    vmovaps %ymm1, 96(%rax)
3000 ; AVX2-FCP-NEXT:    vmovaps %ymm3, 64(%rax)
3001 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 288(%rax)
3002 ; AVX2-FCP-NEXT:    vmovaps %ymm15, 256(%rax)
3003 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3004 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 352(%rax)
3005 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3006 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 320(%rax)
3007 ; AVX2-FCP-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
3008 ; AVX2-FCP-NEXT:    vmovaps %ymm0, (%rax)
3009 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3010 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 32(%rax)
3011 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3012 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 160(%rax)
3013 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3014 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 128(%rax)
3015 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3016 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 224(%rax)
3017 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3018 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 192(%rax)
3019 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3020 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 416(%rax)
3021 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3022 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 384(%rax)
3023 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3024 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 480(%rax)
3025 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3026 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 448(%rax)
3027 ; AVX2-FCP-NEXT:    addq $328, %rsp # imm = 0x148
3028 ; AVX2-FCP-NEXT:    vzeroupper
3029 ; AVX2-FCP-NEXT:    retq
3031 ; AVX512-LABEL: store_i32_stride8_vf16:
3032 ; AVX512:       # %bb.0:
3033 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3034 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %r10
3035 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %r11
3036 ; AVX512-NEXT:    vmovdqa64 (%rdi), %zmm0
3037 ; AVX512-NEXT:    vmovdqa64 (%rsi), %zmm1
3038 ; AVX512-NEXT:    vmovdqa64 (%rdx), %zmm2
3039 ; AVX512-NEXT:    vmovdqa64 (%rcx), %zmm3
3040 ; AVX512-NEXT:    vmovdqa64 (%r8), %zmm5
3041 ; AVX512-NEXT:    vmovdqa64 (%r9), %zmm6
3042 ; AVX512-NEXT:    vmovdqa64 (%r11), %zmm7
3043 ; AVX512-NEXT:    vmovdqa64 (%r10), %zmm8
3044 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,0,0,0,0,0,0,16,0,0,0,0,0,0,1,17]
3045 ; AVX512-NEXT:    vpermi2d %zmm8, %zmm7, %zmm4
3046 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [0,0,0,0,0,16,0,0,0,0,0,0,1,17,0,0]
3047 ; AVX512-NEXT:    vpermi2d %zmm6, %zmm5, %zmm9
3048 ; AVX512-NEXT:    movb $-120, %cl
3049 ; AVX512-NEXT:    kmovw %ecx, %k1
3050 ; AVX512-NEXT:    vmovdqa64 %zmm4, %zmm9 {%k1}
3051 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [0,0,0,16,0,0,0,0,0,0,1,17,0,0,0,0]
3052 ; AVX512-NEXT:    vpermi2d %zmm3, %zmm2, %zmm10
3053 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,16,0,0,0,0,0,0,1,17,0,0,0,0,0,0]
3054 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm4
3055 ; AVX512-NEXT:    movb $34, %cl
3056 ; AVX512-NEXT:    kmovw %ecx, %k2
3057 ; AVX512-NEXT:    vmovdqa64 %zmm10, %zmm4 {%k2}
3058 ; AVX512-NEXT:    movb $-52, %cl
3059 ; AVX512-NEXT:    kmovw %ecx, %k3
3060 ; AVX512-NEXT:    vmovdqa64 %zmm9, %zmm4 {%k3}
3061 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [0,0,0,0,0,0,2,18,0,0,0,0,0,0,3,19]
3062 ; AVX512-NEXT:    vpermi2d %zmm8, %zmm7, %zmm9
3063 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [0,0,0,0,2,18,0,0,0,0,0,0,3,19,0,0]
3064 ; AVX512-NEXT:    vpermi2d %zmm6, %zmm5, %zmm10
3065 ; AVX512-NEXT:    vmovdqa64 %zmm9, %zmm10 {%k1}
3066 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [0,0,2,18,0,0,0,0,0,0,3,19,0,0,0,0]
3067 ; AVX512-NEXT:    vpermi2d %zmm3, %zmm2, %zmm11
3068 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [2,18,0,0,0,0,0,0,3,19,0,0,0,0,0,0]
3069 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm9
3070 ; AVX512-NEXT:    vmovdqa64 %zmm11, %zmm9 {%k2}
3071 ; AVX512-NEXT:    vmovdqa64 %zmm10, %zmm9 {%k3}
3072 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [0,0,0,0,0,0,4,20,0,0,0,0,0,0,5,21]
3073 ; AVX512-NEXT:    vpermi2d %zmm8, %zmm7, %zmm10
3074 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [0,0,0,0,4,20,0,0,0,0,0,0,5,21,0,0]
3075 ; AVX512-NEXT:    vpermi2d %zmm6, %zmm5, %zmm11
3076 ; AVX512-NEXT:    vmovdqa64 %zmm10, %zmm11 {%k1}
3077 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,4,20,0,0,0,0,0,0,5,21,0,0,0,0]
3078 ; AVX512-NEXT:    vpermi2d %zmm3, %zmm2, %zmm12
3079 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [4,20,0,0,0,0,0,0,5,21,0,0,0,0,0,0]
3080 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm10
3081 ; AVX512-NEXT:    vmovdqa64 %zmm12, %zmm10 {%k2}
3082 ; AVX512-NEXT:    vmovdqa64 %zmm11, %zmm10 {%k3}
3083 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [0,0,0,0,0,0,6,22,0,0,0,0,0,0,7,23]
3084 ; AVX512-NEXT:    vpermi2d %zmm8, %zmm7, %zmm11
3085 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,0,0,6,22,0,0,0,0,0,0,7,23,0,0]
3086 ; AVX512-NEXT:    vpermi2d %zmm6, %zmm5, %zmm12
3087 ; AVX512-NEXT:    vmovdqa64 %zmm11, %zmm12 {%k1}
3088 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm13 = [0,0,6,22,0,0,0,0,0,0,7,23,0,0,0,0]
3089 ; AVX512-NEXT:    vpermi2d %zmm3, %zmm2, %zmm13
3090 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [6,22,0,0,0,0,0,0,7,23,0,0,0,0,0,0]
3091 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm11
3092 ; AVX512-NEXT:    vmovdqa64 %zmm13, %zmm11 {%k2}
3093 ; AVX512-NEXT:    vmovdqa64 %zmm12, %zmm11 {%k3}
3094 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,0,0,0,0,8,24,0,0,0,0,0,0,9,25]
3095 ; AVX512-NEXT:    vpermi2d %zmm8, %zmm7, %zmm12
3096 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm13 = [0,0,0,0,8,24,0,0,0,0,0,0,9,25,0,0]
3097 ; AVX512-NEXT:    vpermi2d %zmm6, %zmm5, %zmm13
3098 ; AVX512-NEXT:    vmovdqa64 %zmm12, %zmm13 {%k1}
3099 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,8,24,0,0,0,0,0,0,9,25,0,0,0,0]
3100 ; AVX512-NEXT:    vpermi2d %zmm3, %zmm2, %zmm12
3101 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [8,24,0,0,0,0,0,0,9,25,0,0,0,0,0,0]
3102 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm14
3103 ; AVX512-NEXT:    vmovdqa64 %zmm12, %zmm14 {%k2}
3104 ; AVX512-NEXT:    vmovdqa64 %zmm13, %zmm14 {%k3}
3105 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,0,0,0,0,10,26,0,0,0,0,0,0,11,27]
3106 ; AVX512-NEXT:    vpermi2d %zmm8, %zmm7, %zmm12
3107 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm13 = [0,0,0,0,10,26,0,0,0,0,0,0,11,27,0,0]
3108 ; AVX512-NEXT:    vpermi2d %zmm6, %zmm5, %zmm13
3109 ; AVX512-NEXT:    vmovdqa64 %zmm12, %zmm13 {%k1}
3110 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,10,26,0,0,0,0,0,0,11,27,0,0,0,0]
3111 ; AVX512-NEXT:    vpermi2d %zmm3, %zmm2, %zmm12
3112 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm15 = [10,26,0,0,0,0,0,0,11,27,0,0,0,0,0,0]
3113 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm15
3114 ; AVX512-NEXT:    vmovdqa64 %zmm12, %zmm15 {%k2}
3115 ; AVX512-NEXT:    vmovdqa64 %zmm13, %zmm15 {%k3}
3116 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,0,0,0,0,12,28,0,0,0,0,0,0,13,29]
3117 ; AVX512-NEXT:    vpermi2d %zmm8, %zmm7, %zmm12
3118 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm13 = [0,0,0,0,12,28,0,0,0,0,0,0,13,29,0,0]
3119 ; AVX512-NEXT:    vpermi2d %zmm6, %zmm5, %zmm13
3120 ; AVX512-NEXT:    vmovdqa64 %zmm12, %zmm13 {%k1}
3121 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,12,28,0,0,0,0,0,0,13,29,0,0,0,0]
3122 ; AVX512-NEXT:    vpermi2d %zmm3, %zmm2, %zmm12
3123 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm16 = [12,28,0,0,0,0,0,0,13,29,0,0,0,0,0,0]
3124 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm16
3125 ; AVX512-NEXT:    vmovdqa64 %zmm12, %zmm16 {%k2}
3126 ; AVX512-NEXT:    vmovdqa64 %zmm13, %zmm16 {%k3}
3127 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,0,0,0,0,14,30,0,0,0,0,0,0,15,31]
3128 ; AVX512-NEXT:    vpermi2d %zmm8, %zmm7, %zmm12
3129 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [0,0,0,0,14,30,0,0,0,0,0,0,15,31,0,0]
3130 ; AVX512-NEXT:    vpermi2d %zmm6, %zmm5, %zmm7
3131 ; AVX512-NEXT:    vmovdqa64 %zmm12, %zmm7 {%k1}
3132 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,0,14,30,0,0,0,0,0,0,15,31,0,0,0,0]
3133 ; AVX512-NEXT:    vpermi2d %zmm3, %zmm2, %zmm5
3134 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [14,30,0,0,0,0,0,0,15,31,0,0,0,0,0,0]
3135 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2
3136 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm2 {%k2}
3137 ; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm2 {%k3}
3138 ; AVX512-NEXT:    vmovdqa64 %zmm2, 448(%rax)
3139 ; AVX512-NEXT:    vmovdqa64 %zmm16, 384(%rax)
3140 ; AVX512-NEXT:    vmovdqa64 %zmm15, 320(%rax)
3141 ; AVX512-NEXT:    vmovdqa64 %zmm14, 256(%rax)
3142 ; AVX512-NEXT:    vmovdqa64 %zmm11, 192(%rax)
3143 ; AVX512-NEXT:    vmovdqa64 %zmm10, 128(%rax)
3144 ; AVX512-NEXT:    vmovdqa64 %zmm9, 64(%rax)
3145 ; AVX512-NEXT:    vmovdqa64 %zmm4, (%rax)
3146 ; AVX512-NEXT:    vzeroupper
3147 ; AVX512-NEXT:    retq
3149 ; AVX512-FCP-LABEL: store_i32_stride8_vf16:
3150 ; AVX512-FCP:       # %bb.0:
3151 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3152 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
3153 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11
3154 ; AVX512-FCP-NEXT:    vmovdqa64 (%rdi), %zmm0
3155 ; AVX512-FCP-NEXT:    vmovdqa64 (%rsi), %zmm1
3156 ; AVX512-FCP-NEXT:    vmovdqa64 (%rdx), %zmm2
3157 ; AVX512-FCP-NEXT:    vmovdqa64 (%rcx), %zmm3
3158 ; AVX512-FCP-NEXT:    vmovdqa64 (%r8), %zmm5
3159 ; AVX512-FCP-NEXT:    vmovdqa64 (%r9), %zmm6
3160 ; AVX512-FCP-NEXT:    vmovdqa64 (%r11), %zmm7
3161 ; AVX512-FCP-NEXT:    vmovdqa64 (%r10), %zmm8
3162 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,0,0,0,0,0,0,16,0,0,0,0,0,0,1,17]
3163 ; AVX512-FCP-NEXT:    vpermi2d %zmm8, %zmm7, %zmm4
3164 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [0,0,0,0,0,16,0,0,0,0,0,0,1,17,0,0]
3165 ; AVX512-FCP-NEXT:    vpermi2d %zmm6, %zmm5, %zmm9
3166 ; AVX512-FCP-NEXT:    movb $-120, %cl
3167 ; AVX512-FCP-NEXT:    kmovw %ecx, %k1
3168 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, %zmm9 {%k1}
3169 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [0,0,0,16,0,0,0,0,0,0,1,17,0,0,0,0]
3170 ; AVX512-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm10
3171 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,16,0,0,0,0,0,0,1,17,0,0,0,0,0,0]
3172 ; AVX512-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm4
3173 ; AVX512-FCP-NEXT:    movb $34, %cl
3174 ; AVX512-FCP-NEXT:    kmovw %ecx, %k2
3175 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm10, %zmm4 {%k2}
3176 ; AVX512-FCP-NEXT:    movb $-52, %cl
3177 ; AVX512-FCP-NEXT:    kmovw %ecx, %k3
3178 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm9, %zmm4 {%k3}
3179 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [0,0,0,0,0,0,2,18,0,0,0,0,0,0,3,19]
3180 ; AVX512-FCP-NEXT:    vpermi2d %zmm8, %zmm7, %zmm9
3181 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [0,0,0,0,2,18,0,0,0,0,0,0,3,19,0,0]
3182 ; AVX512-FCP-NEXT:    vpermi2d %zmm6, %zmm5, %zmm10
3183 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm9, %zmm10 {%k1}
3184 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [0,0,2,18,0,0,0,0,0,0,3,19,0,0,0,0]
3185 ; AVX512-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm11
3186 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [2,18,0,0,0,0,0,0,3,19,0,0,0,0,0,0]
3187 ; AVX512-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm9
3188 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm11, %zmm9 {%k2}
3189 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm10, %zmm9 {%k3}
3190 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [0,0,0,0,0,0,4,20,0,0,0,0,0,0,5,21]
3191 ; AVX512-FCP-NEXT:    vpermi2d %zmm8, %zmm7, %zmm10
3192 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [0,0,0,0,4,20,0,0,0,0,0,0,5,21,0,0]
3193 ; AVX512-FCP-NEXT:    vpermi2d %zmm6, %zmm5, %zmm11
3194 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm10, %zmm11 {%k1}
3195 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,4,20,0,0,0,0,0,0,5,21,0,0,0,0]
3196 ; AVX512-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm12
3197 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [4,20,0,0,0,0,0,0,5,21,0,0,0,0,0,0]
3198 ; AVX512-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm10
3199 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, %zmm10 {%k2}
3200 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm11, %zmm10 {%k3}
3201 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [0,0,0,0,0,0,6,22,0,0,0,0,0,0,7,23]
3202 ; AVX512-FCP-NEXT:    vpermi2d %zmm8, %zmm7, %zmm11
3203 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,0,0,6,22,0,0,0,0,0,0,7,23,0,0]
3204 ; AVX512-FCP-NEXT:    vpermi2d %zmm6, %zmm5, %zmm12
3205 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm11, %zmm12 {%k1}
3206 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm13 = [0,0,6,22,0,0,0,0,0,0,7,23,0,0,0,0]
3207 ; AVX512-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm13
3208 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [6,22,0,0,0,0,0,0,7,23,0,0,0,0,0,0]
3209 ; AVX512-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm11
3210 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, %zmm11 {%k2}
3211 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, %zmm11 {%k3}
3212 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,0,0,0,0,8,24,0,0,0,0,0,0,9,25]
3213 ; AVX512-FCP-NEXT:    vpermi2d %zmm8, %zmm7, %zmm12
3214 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm13 = [0,0,0,0,8,24,0,0,0,0,0,0,9,25,0,0]
3215 ; AVX512-FCP-NEXT:    vpermi2d %zmm6, %zmm5, %zmm13
3216 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, %zmm13 {%k1}
3217 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,8,24,0,0,0,0,0,0,9,25,0,0,0,0]
3218 ; AVX512-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm12
3219 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [8,24,0,0,0,0,0,0,9,25,0,0,0,0,0,0]
3220 ; AVX512-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm14
3221 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, %zmm14 {%k2}
3222 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, %zmm14 {%k3}
3223 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,0,0,0,0,10,26,0,0,0,0,0,0,11,27]
3224 ; AVX512-FCP-NEXT:    vpermi2d %zmm8, %zmm7, %zmm12
3225 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm13 = [0,0,0,0,10,26,0,0,0,0,0,0,11,27,0,0]
3226 ; AVX512-FCP-NEXT:    vpermi2d %zmm6, %zmm5, %zmm13
3227 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, %zmm13 {%k1}
3228 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,10,26,0,0,0,0,0,0,11,27,0,0,0,0]
3229 ; AVX512-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm12
3230 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm15 = [10,26,0,0,0,0,0,0,11,27,0,0,0,0,0,0]
3231 ; AVX512-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm15
3232 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, %zmm15 {%k2}
3233 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, %zmm15 {%k3}
3234 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,0,0,0,0,12,28,0,0,0,0,0,0,13,29]
3235 ; AVX512-FCP-NEXT:    vpermi2d %zmm8, %zmm7, %zmm12
3236 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm13 = [0,0,0,0,12,28,0,0,0,0,0,0,13,29,0,0]
3237 ; AVX512-FCP-NEXT:    vpermi2d %zmm6, %zmm5, %zmm13
3238 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, %zmm13 {%k1}
3239 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,12,28,0,0,0,0,0,0,13,29,0,0,0,0]
3240 ; AVX512-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm12
3241 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm16 = [12,28,0,0,0,0,0,0,13,29,0,0,0,0,0,0]
3242 ; AVX512-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm16
3243 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, %zmm16 {%k2}
3244 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, %zmm16 {%k3}
3245 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,0,0,0,0,14,30,0,0,0,0,0,0,15,31]
3246 ; AVX512-FCP-NEXT:    vpermi2d %zmm8, %zmm7, %zmm12
3247 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [0,0,0,0,14,30,0,0,0,0,0,0,15,31,0,0]
3248 ; AVX512-FCP-NEXT:    vpermi2d %zmm6, %zmm5, %zmm7
3249 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, %zmm7 {%k1}
3250 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,0,14,30,0,0,0,0,0,0,15,31,0,0,0,0]
3251 ; AVX512-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm5
3252 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [14,30,0,0,0,0,0,0,15,31,0,0,0,0,0,0]
3253 ; AVX512-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2
3254 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm2 {%k2}
3255 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, %zmm2 {%k3}
3256 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, 448(%rax)
3257 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, 384(%rax)
3258 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm15, 320(%rax)
3259 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm14, 256(%rax)
3260 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm11, 192(%rax)
3261 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm10, 128(%rax)
3262 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm9, 64(%rax)
3263 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, (%rax)
3264 ; AVX512-FCP-NEXT:    vzeroupper
3265 ; AVX512-FCP-NEXT:    retq
3267 ; AVX512DQ-LABEL: store_i32_stride8_vf16:
3268 ; AVX512DQ:       # %bb.0:
3269 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3270 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %r10
3271 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %r11
3272 ; AVX512DQ-NEXT:    vmovdqa64 (%rdi), %zmm0
3273 ; AVX512DQ-NEXT:    vmovdqa64 (%rsi), %zmm1
3274 ; AVX512DQ-NEXT:    vmovdqa64 (%rdx), %zmm2
3275 ; AVX512DQ-NEXT:    vmovdqa64 (%rcx), %zmm3
3276 ; AVX512DQ-NEXT:    vmovdqa64 (%r8), %zmm5
3277 ; AVX512DQ-NEXT:    vmovdqa64 (%r9), %zmm6
3278 ; AVX512DQ-NEXT:    vmovdqa64 (%r11), %zmm7
3279 ; AVX512DQ-NEXT:    vmovdqa64 (%r10), %zmm8
3280 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,0,0,0,0,0,0,16,0,0,0,0,0,0,1,17]
3281 ; AVX512DQ-NEXT:    vpermi2d %zmm8, %zmm7, %zmm4
3282 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [0,0,0,0,0,16,0,0,0,0,0,0,1,17,0,0]
3283 ; AVX512DQ-NEXT:    vpermi2d %zmm6, %zmm5, %zmm9
3284 ; AVX512DQ-NEXT:    movb $-120, %cl
3285 ; AVX512DQ-NEXT:    kmovw %ecx, %k1
3286 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm9 {%k1}
3287 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [0,0,0,16,0,0,0,0,0,0,1,17,0,0,0,0]
3288 ; AVX512DQ-NEXT:    vpermi2d %zmm3, %zmm2, %zmm10
3289 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,16,0,0,0,0,0,0,1,17,0,0,0,0,0,0]
3290 ; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm0, %zmm4
3291 ; AVX512DQ-NEXT:    movb $34, %cl
3292 ; AVX512DQ-NEXT:    kmovw %ecx, %k2
3293 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, %zmm4 {%k2}
3294 ; AVX512DQ-NEXT:    movb $-52, %cl
3295 ; AVX512DQ-NEXT:    kmovw %ecx, %k3
3296 ; AVX512DQ-NEXT:    vmovdqa64 %zmm9, %zmm4 {%k3}
3297 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [0,0,0,0,0,0,2,18,0,0,0,0,0,0,3,19]
3298 ; AVX512DQ-NEXT:    vpermi2d %zmm8, %zmm7, %zmm9
3299 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [0,0,0,0,2,18,0,0,0,0,0,0,3,19,0,0]
3300 ; AVX512DQ-NEXT:    vpermi2d %zmm6, %zmm5, %zmm10
3301 ; AVX512DQ-NEXT:    vmovdqa64 %zmm9, %zmm10 {%k1}
3302 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [0,0,2,18,0,0,0,0,0,0,3,19,0,0,0,0]
3303 ; AVX512DQ-NEXT:    vpermi2d %zmm3, %zmm2, %zmm11
3304 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [2,18,0,0,0,0,0,0,3,19,0,0,0,0,0,0]
3305 ; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm0, %zmm9
3306 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, %zmm9 {%k2}
3307 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, %zmm9 {%k3}
3308 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [0,0,0,0,0,0,4,20,0,0,0,0,0,0,5,21]
3309 ; AVX512DQ-NEXT:    vpermi2d %zmm8, %zmm7, %zmm10
3310 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [0,0,0,0,4,20,0,0,0,0,0,0,5,21,0,0]
3311 ; AVX512DQ-NEXT:    vpermi2d %zmm6, %zmm5, %zmm11
3312 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, %zmm11 {%k1}
3313 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,4,20,0,0,0,0,0,0,5,21,0,0,0,0]
3314 ; AVX512DQ-NEXT:    vpermi2d %zmm3, %zmm2, %zmm12
3315 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [4,20,0,0,0,0,0,0,5,21,0,0,0,0,0,0]
3316 ; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm0, %zmm10
3317 ; AVX512DQ-NEXT:    vmovdqa64 %zmm12, %zmm10 {%k2}
3318 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, %zmm10 {%k3}
3319 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [0,0,0,0,0,0,6,22,0,0,0,0,0,0,7,23]
3320 ; AVX512DQ-NEXT:    vpermi2d %zmm8, %zmm7, %zmm11
3321 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,0,0,6,22,0,0,0,0,0,0,7,23,0,0]
3322 ; AVX512DQ-NEXT:    vpermi2d %zmm6, %zmm5, %zmm12
3323 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, %zmm12 {%k1}
3324 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm13 = [0,0,6,22,0,0,0,0,0,0,7,23,0,0,0,0]
3325 ; AVX512DQ-NEXT:    vpermi2d %zmm3, %zmm2, %zmm13
3326 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [6,22,0,0,0,0,0,0,7,23,0,0,0,0,0,0]
3327 ; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm0, %zmm11
3328 ; AVX512DQ-NEXT:    vmovdqa64 %zmm13, %zmm11 {%k2}
3329 ; AVX512DQ-NEXT:    vmovdqa64 %zmm12, %zmm11 {%k3}
3330 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,0,0,0,0,8,24,0,0,0,0,0,0,9,25]
3331 ; AVX512DQ-NEXT:    vpermi2d %zmm8, %zmm7, %zmm12
3332 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm13 = [0,0,0,0,8,24,0,0,0,0,0,0,9,25,0,0]
3333 ; AVX512DQ-NEXT:    vpermi2d %zmm6, %zmm5, %zmm13
3334 ; AVX512DQ-NEXT:    vmovdqa64 %zmm12, %zmm13 {%k1}
3335 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,8,24,0,0,0,0,0,0,9,25,0,0,0,0]
3336 ; AVX512DQ-NEXT:    vpermi2d %zmm3, %zmm2, %zmm12
3337 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [8,24,0,0,0,0,0,0,9,25,0,0,0,0,0,0]
3338 ; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm0, %zmm14
3339 ; AVX512DQ-NEXT:    vmovdqa64 %zmm12, %zmm14 {%k2}
3340 ; AVX512DQ-NEXT:    vmovdqa64 %zmm13, %zmm14 {%k3}
3341 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,0,0,0,0,10,26,0,0,0,0,0,0,11,27]
3342 ; AVX512DQ-NEXT:    vpermi2d %zmm8, %zmm7, %zmm12
3343 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm13 = [0,0,0,0,10,26,0,0,0,0,0,0,11,27,0,0]
3344 ; AVX512DQ-NEXT:    vpermi2d %zmm6, %zmm5, %zmm13
3345 ; AVX512DQ-NEXT:    vmovdqa64 %zmm12, %zmm13 {%k1}
3346 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,10,26,0,0,0,0,0,0,11,27,0,0,0,0]
3347 ; AVX512DQ-NEXT:    vpermi2d %zmm3, %zmm2, %zmm12
3348 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm15 = [10,26,0,0,0,0,0,0,11,27,0,0,0,0,0,0]
3349 ; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm0, %zmm15
3350 ; AVX512DQ-NEXT:    vmovdqa64 %zmm12, %zmm15 {%k2}
3351 ; AVX512DQ-NEXT:    vmovdqa64 %zmm13, %zmm15 {%k3}
3352 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,0,0,0,0,12,28,0,0,0,0,0,0,13,29]
3353 ; AVX512DQ-NEXT:    vpermi2d %zmm8, %zmm7, %zmm12
3354 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm13 = [0,0,0,0,12,28,0,0,0,0,0,0,13,29,0,0]
3355 ; AVX512DQ-NEXT:    vpermi2d %zmm6, %zmm5, %zmm13
3356 ; AVX512DQ-NEXT:    vmovdqa64 %zmm12, %zmm13 {%k1}
3357 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,12,28,0,0,0,0,0,0,13,29,0,0,0,0]
3358 ; AVX512DQ-NEXT:    vpermi2d %zmm3, %zmm2, %zmm12
3359 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm16 = [12,28,0,0,0,0,0,0,13,29,0,0,0,0,0,0]
3360 ; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm0, %zmm16
3361 ; AVX512DQ-NEXT:    vmovdqa64 %zmm12, %zmm16 {%k2}
3362 ; AVX512DQ-NEXT:    vmovdqa64 %zmm13, %zmm16 {%k3}
3363 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,0,0,0,0,14,30,0,0,0,0,0,0,15,31]
3364 ; AVX512DQ-NEXT:    vpermi2d %zmm8, %zmm7, %zmm12
3365 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [0,0,0,0,14,30,0,0,0,0,0,0,15,31,0,0]
3366 ; AVX512DQ-NEXT:    vpermi2d %zmm6, %zmm5, %zmm7
3367 ; AVX512DQ-NEXT:    vmovdqa64 %zmm12, %zmm7 {%k1}
3368 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,0,14,30,0,0,0,0,0,0,15,31,0,0,0,0]
3369 ; AVX512DQ-NEXT:    vpermi2d %zmm3, %zmm2, %zmm5
3370 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [14,30,0,0,0,0,0,0,15,31,0,0,0,0,0,0]
3371 ; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2
3372 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm2 {%k2}
3373 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, %zmm2 {%k3}
3374 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, 448(%rax)
3375 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, 384(%rax)
3376 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, 320(%rax)
3377 ; AVX512DQ-NEXT:    vmovdqa64 %zmm14, 256(%rax)
3378 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, 192(%rax)
3379 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, 128(%rax)
3380 ; AVX512DQ-NEXT:    vmovdqa64 %zmm9, 64(%rax)
3381 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, (%rax)
3382 ; AVX512DQ-NEXT:    vzeroupper
3383 ; AVX512DQ-NEXT:    retq
3385 ; AVX512DQ-FCP-LABEL: store_i32_stride8_vf16:
3386 ; AVX512DQ-FCP:       # %bb.0:
3387 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3388 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
3389 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11
3390 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rdi), %zmm0
3391 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rsi), %zmm1
3392 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rdx), %zmm2
3393 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rcx), %zmm3
3394 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%r8), %zmm5
3395 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%r9), %zmm6
3396 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%r11), %zmm7
3397 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%r10), %zmm8
3398 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,0,0,0,0,0,0,16,0,0,0,0,0,0,1,17]
3399 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm8, %zmm7, %zmm4
3400 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [0,0,0,0,0,16,0,0,0,0,0,0,1,17,0,0]
3401 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm6, %zmm5, %zmm9
3402 ; AVX512DQ-FCP-NEXT:    movb $-120, %cl
3403 ; AVX512DQ-FCP-NEXT:    kmovw %ecx, %k1
3404 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, %zmm9 {%k1}
3405 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [0,0,0,16,0,0,0,0,0,0,1,17,0,0,0,0]
3406 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm10
3407 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,16,0,0,0,0,0,0,1,17,0,0,0,0,0,0]
3408 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm4
3409 ; AVX512DQ-FCP-NEXT:    movb $34, %cl
3410 ; AVX512DQ-FCP-NEXT:    kmovw %ecx, %k2
3411 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, %zmm4 {%k2}
3412 ; AVX512DQ-FCP-NEXT:    movb $-52, %cl
3413 ; AVX512DQ-FCP-NEXT:    kmovw %ecx, %k3
3414 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, %zmm4 {%k3}
3415 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [0,0,0,0,0,0,2,18,0,0,0,0,0,0,3,19]
3416 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm8, %zmm7, %zmm9
3417 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [0,0,0,0,2,18,0,0,0,0,0,0,3,19,0,0]
3418 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm6, %zmm5, %zmm10
3419 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, %zmm10 {%k1}
3420 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [0,0,2,18,0,0,0,0,0,0,3,19,0,0,0,0]
3421 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm11
3422 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [2,18,0,0,0,0,0,0,3,19,0,0,0,0,0,0]
3423 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm9
3424 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm9 {%k2}
3425 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, %zmm9 {%k3}
3426 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [0,0,0,0,0,0,4,20,0,0,0,0,0,0,5,21]
3427 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm8, %zmm7, %zmm10
3428 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [0,0,0,0,4,20,0,0,0,0,0,0,5,21,0,0]
3429 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm6, %zmm5, %zmm11
3430 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, %zmm11 {%k1}
3431 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,4,20,0,0,0,0,0,0,5,21,0,0,0,0]
3432 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm12
3433 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [4,20,0,0,0,0,0,0,5,21,0,0,0,0,0,0]
3434 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm10
3435 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm10 {%k2}
3436 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm10 {%k3}
3437 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [0,0,0,0,0,0,6,22,0,0,0,0,0,0,7,23]
3438 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm8, %zmm7, %zmm11
3439 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,0,0,6,22,0,0,0,0,0,0,7,23,0,0]
3440 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm6, %zmm5, %zmm12
3441 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm12 {%k1}
3442 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm13 = [0,0,6,22,0,0,0,0,0,0,7,23,0,0,0,0]
3443 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm13
3444 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [6,22,0,0,0,0,0,0,7,23,0,0,0,0,0,0]
3445 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm11
3446 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm13, %zmm11 {%k2}
3447 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm11 {%k3}
3448 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,0,0,0,0,8,24,0,0,0,0,0,0,9,25]
3449 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm8, %zmm7, %zmm12
3450 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm13 = [0,0,0,0,8,24,0,0,0,0,0,0,9,25,0,0]
3451 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm6, %zmm5, %zmm13
3452 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm13 {%k1}
3453 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,8,24,0,0,0,0,0,0,9,25,0,0,0,0]
3454 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm12
3455 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [8,24,0,0,0,0,0,0,9,25,0,0,0,0,0,0]
3456 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm14
3457 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm14 {%k2}
3458 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm13, %zmm14 {%k3}
3459 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,0,0,0,0,10,26,0,0,0,0,0,0,11,27]
3460 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm8, %zmm7, %zmm12
3461 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm13 = [0,0,0,0,10,26,0,0,0,0,0,0,11,27,0,0]
3462 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm6, %zmm5, %zmm13
3463 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm13 {%k1}
3464 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,10,26,0,0,0,0,0,0,11,27,0,0,0,0]
3465 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm12
3466 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm15 = [10,26,0,0,0,0,0,0,11,27,0,0,0,0,0,0]
3467 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm15
3468 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm15 {%k2}
3469 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm13, %zmm15 {%k3}
3470 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,0,0,0,0,12,28,0,0,0,0,0,0,13,29]
3471 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm8, %zmm7, %zmm12
3472 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm13 = [0,0,0,0,12,28,0,0,0,0,0,0,13,29,0,0]
3473 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm6, %zmm5, %zmm13
3474 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm13 {%k1}
3475 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,12,28,0,0,0,0,0,0,13,29,0,0,0,0]
3476 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm12
3477 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm16 = [12,28,0,0,0,0,0,0,13,29,0,0,0,0,0,0]
3478 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm16
3479 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm16 {%k2}
3480 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm13, %zmm16 {%k3}
3481 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,0,0,0,0,14,30,0,0,0,0,0,0,15,31]
3482 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm8, %zmm7, %zmm12
3483 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [0,0,0,0,14,30,0,0,0,0,0,0,15,31,0,0]
3484 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm6, %zmm5, %zmm7
3485 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm7 {%k1}
3486 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,0,14,30,0,0,0,0,0,0,15,31,0,0,0,0]
3487 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm5
3488 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [14,30,0,0,0,0,0,0,15,31,0,0,0,0,0,0]
3489 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2
3490 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm2 {%k2}
3491 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm2 {%k3}
3492 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, 448(%rax)
3493 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm16, 384(%rax)
3494 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm15, 320(%rax)
3495 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm14, 256(%rax)
3496 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, 192(%rax)
3497 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, 128(%rax)
3498 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, 64(%rax)
3499 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, (%rax)
3500 ; AVX512DQ-FCP-NEXT:    vzeroupper
3501 ; AVX512DQ-FCP-NEXT:    retq
3503 ; AVX512BW-LABEL: store_i32_stride8_vf16:
3504 ; AVX512BW:       # %bb.0:
3505 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3506 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %r10
3507 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %r11
3508 ; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm0
3509 ; AVX512BW-NEXT:    vmovdqa64 (%rsi), %zmm1
3510 ; AVX512BW-NEXT:    vmovdqa64 (%rdx), %zmm2
3511 ; AVX512BW-NEXT:    vmovdqa64 (%rcx), %zmm3
3512 ; AVX512BW-NEXT:    vmovdqa64 (%r8), %zmm5
3513 ; AVX512BW-NEXT:    vmovdqa64 (%r9), %zmm6
3514 ; AVX512BW-NEXT:    vmovdqa64 (%r11), %zmm7
3515 ; AVX512BW-NEXT:    vmovdqa64 (%r10), %zmm8
3516 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,0,0,0,0,0,0,16,0,0,0,0,0,0,1,17]
3517 ; AVX512BW-NEXT:    vpermi2d %zmm8, %zmm7, %zmm4
3518 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [0,0,0,0,0,16,0,0,0,0,0,0,1,17,0,0]
3519 ; AVX512BW-NEXT:    vpermi2d %zmm6, %zmm5, %zmm9
3520 ; AVX512BW-NEXT:    movb $-120, %cl
3521 ; AVX512BW-NEXT:    kmovd %ecx, %k1
3522 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm9 {%k1}
3523 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [0,0,0,16,0,0,0,0,0,0,1,17,0,0,0,0]
3524 ; AVX512BW-NEXT:    vpermi2d %zmm3, %zmm2, %zmm10
3525 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,16,0,0,0,0,0,0,1,17,0,0,0,0,0,0]
3526 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm4
3527 ; AVX512BW-NEXT:    movb $34, %cl
3528 ; AVX512BW-NEXT:    kmovd %ecx, %k2
3529 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm4 {%k2}
3530 ; AVX512BW-NEXT:    movb $-52, %cl
3531 ; AVX512BW-NEXT:    kmovd %ecx, %k3
3532 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm4 {%k3}
3533 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [0,0,0,0,0,0,2,18,0,0,0,0,0,0,3,19]
3534 ; AVX512BW-NEXT:    vpermi2d %zmm8, %zmm7, %zmm9
3535 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [0,0,0,0,2,18,0,0,0,0,0,0,3,19,0,0]
3536 ; AVX512BW-NEXT:    vpermi2d %zmm6, %zmm5, %zmm10
3537 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm10 {%k1}
3538 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [0,0,2,18,0,0,0,0,0,0,3,19,0,0,0,0]
3539 ; AVX512BW-NEXT:    vpermi2d %zmm3, %zmm2, %zmm11
3540 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [2,18,0,0,0,0,0,0,3,19,0,0,0,0,0,0]
3541 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm9
3542 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm9 {%k2}
3543 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm9 {%k3}
3544 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [0,0,0,0,0,0,4,20,0,0,0,0,0,0,5,21]
3545 ; AVX512BW-NEXT:    vpermi2d %zmm8, %zmm7, %zmm10
3546 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [0,0,0,0,4,20,0,0,0,0,0,0,5,21,0,0]
3547 ; AVX512BW-NEXT:    vpermi2d %zmm6, %zmm5, %zmm11
3548 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm11 {%k1}
3549 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,4,20,0,0,0,0,0,0,5,21,0,0,0,0]
3550 ; AVX512BW-NEXT:    vpermi2d %zmm3, %zmm2, %zmm12
3551 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [4,20,0,0,0,0,0,0,5,21,0,0,0,0,0,0]
3552 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm10
3553 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm10 {%k2}
3554 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm10 {%k3}
3555 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [0,0,0,0,0,0,6,22,0,0,0,0,0,0,7,23]
3556 ; AVX512BW-NEXT:    vpermi2d %zmm8, %zmm7, %zmm11
3557 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,0,0,6,22,0,0,0,0,0,0,7,23,0,0]
3558 ; AVX512BW-NEXT:    vpermi2d %zmm6, %zmm5, %zmm12
3559 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm12 {%k1}
3560 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm13 = [0,0,6,22,0,0,0,0,0,0,7,23,0,0,0,0]
3561 ; AVX512BW-NEXT:    vpermi2d %zmm3, %zmm2, %zmm13
3562 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [6,22,0,0,0,0,0,0,7,23,0,0,0,0,0,0]
3563 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm11
3564 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm11 {%k2}
3565 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm11 {%k3}
3566 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,0,0,0,0,8,24,0,0,0,0,0,0,9,25]
3567 ; AVX512BW-NEXT:    vpermi2d %zmm8, %zmm7, %zmm12
3568 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm13 = [0,0,0,0,8,24,0,0,0,0,0,0,9,25,0,0]
3569 ; AVX512BW-NEXT:    vpermi2d %zmm6, %zmm5, %zmm13
3570 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm13 {%k1}
3571 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,8,24,0,0,0,0,0,0,9,25,0,0,0,0]
3572 ; AVX512BW-NEXT:    vpermi2d %zmm3, %zmm2, %zmm12
3573 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [8,24,0,0,0,0,0,0,9,25,0,0,0,0,0,0]
3574 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm14
3575 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm14 {%k2}
3576 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm14 {%k3}
3577 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,0,0,0,0,10,26,0,0,0,0,0,0,11,27]
3578 ; AVX512BW-NEXT:    vpermi2d %zmm8, %zmm7, %zmm12
3579 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm13 = [0,0,0,0,10,26,0,0,0,0,0,0,11,27,0,0]
3580 ; AVX512BW-NEXT:    vpermi2d %zmm6, %zmm5, %zmm13
3581 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm13 {%k1}
3582 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,10,26,0,0,0,0,0,0,11,27,0,0,0,0]
3583 ; AVX512BW-NEXT:    vpermi2d %zmm3, %zmm2, %zmm12
3584 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm15 = [10,26,0,0,0,0,0,0,11,27,0,0,0,0,0,0]
3585 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm15
3586 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm15 {%k2}
3587 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm15 {%k3}
3588 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,0,0,0,0,12,28,0,0,0,0,0,0,13,29]
3589 ; AVX512BW-NEXT:    vpermi2d %zmm8, %zmm7, %zmm12
3590 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm13 = [0,0,0,0,12,28,0,0,0,0,0,0,13,29,0,0]
3591 ; AVX512BW-NEXT:    vpermi2d %zmm6, %zmm5, %zmm13
3592 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm13 {%k1}
3593 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,12,28,0,0,0,0,0,0,13,29,0,0,0,0]
3594 ; AVX512BW-NEXT:    vpermi2d %zmm3, %zmm2, %zmm12
3595 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm16 = [12,28,0,0,0,0,0,0,13,29,0,0,0,0,0,0]
3596 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm16
3597 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm16 {%k2}
3598 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm16 {%k3}
3599 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,0,0,0,0,14,30,0,0,0,0,0,0,15,31]
3600 ; AVX512BW-NEXT:    vpermi2d %zmm8, %zmm7, %zmm12
3601 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [0,0,0,0,14,30,0,0,0,0,0,0,15,31,0,0]
3602 ; AVX512BW-NEXT:    vpermi2d %zmm6, %zmm5, %zmm7
3603 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm7 {%k1}
3604 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,0,14,30,0,0,0,0,0,0,15,31,0,0,0,0]
3605 ; AVX512BW-NEXT:    vpermi2d %zmm3, %zmm2, %zmm5
3606 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [14,30,0,0,0,0,0,0,15,31,0,0,0,0,0,0]
3607 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2
3608 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm2 {%k2}
3609 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm2 {%k3}
3610 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, 448(%rax)
3611 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, 384(%rax)
3612 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, 320(%rax)
3613 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, 256(%rax)
3614 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, 192(%rax)
3615 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, 128(%rax)
3616 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, 64(%rax)
3617 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, (%rax)
3618 ; AVX512BW-NEXT:    vzeroupper
3619 ; AVX512BW-NEXT:    retq
3621 ; AVX512BW-FCP-LABEL: store_i32_stride8_vf16:
3622 ; AVX512BW-FCP:       # %bb.0:
3623 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3624 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
3625 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11
3626 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm0
3627 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rsi), %zmm1
3628 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdx), %zmm2
3629 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rcx), %zmm3
3630 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%r8), %zmm5
3631 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%r9), %zmm6
3632 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%r11), %zmm7
3633 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%r10), %zmm8
3634 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,0,0,0,0,0,0,16,0,0,0,0,0,0,1,17]
3635 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm8, %zmm7, %zmm4
3636 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [0,0,0,0,0,16,0,0,0,0,0,0,1,17,0,0]
3637 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm6, %zmm5, %zmm9
3638 ; AVX512BW-FCP-NEXT:    movb $-120, %cl
3639 ; AVX512BW-FCP-NEXT:    kmovd %ecx, %k1
3640 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm9 {%k1}
3641 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [0,0,0,16,0,0,0,0,0,0,1,17,0,0,0,0]
3642 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm10
3643 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,16,0,0,0,0,0,0,1,17,0,0,0,0,0,0]
3644 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm4
3645 ; AVX512BW-FCP-NEXT:    movb $34, %cl
3646 ; AVX512BW-FCP-NEXT:    kmovd %ecx, %k2
3647 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm4 {%k2}
3648 ; AVX512BW-FCP-NEXT:    movb $-52, %cl
3649 ; AVX512BW-FCP-NEXT:    kmovd %ecx, %k3
3650 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm4 {%k3}
3651 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [0,0,0,0,0,0,2,18,0,0,0,0,0,0,3,19]
3652 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm8, %zmm7, %zmm9
3653 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [0,0,0,0,2,18,0,0,0,0,0,0,3,19,0,0]
3654 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm6, %zmm5, %zmm10
3655 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm10 {%k1}
3656 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [0,0,2,18,0,0,0,0,0,0,3,19,0,0,0,0]
3657 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm11
3658 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [2,18,0,0,0,0,0,0,3,19,0,0,0,0,0,0]
3659 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm9
3660 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm9 {%k2}
3661 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm9 {%k3}
3662 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [0,0,0,0,0,0,4,20,0,0,0,0,0,0,5,21]
3663 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm8, %zmm7, %zmm10
3664 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [0,0,0,0,4,20,0,0,0,0,0,0,5,21,0,0]
3665 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm6, %zmm5, %zmm11
3666 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm11 {%k1}
3667 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,4,20,0,0,0,0,0,0,5,21,0,0,0,0]
3668 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm12
3669 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [4,20,0,0,0,0,0,0,5,21,0,0,0,0,0,0]
3670 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm10
3671 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm10 {%k2}
3672 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm10 {%k3}
3673 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [0,0,0,0,0,0,6,22,0,0,0,0,0,0,7,23]
3674 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm8, %zmm7, %zmm11
3675 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,0,0,6,22,0,0,0,0,0,0,7,23,0,0]
3676 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm6, %zmm5, %zmm12
3677 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm12 {%k1}
3678 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm13 = [0,0,6,22,0,0,0,0,0,0,7,23,0,0,0,0]
3679 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm13
3680 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [6,22,0,0,0,0,0,0,7,23,0,0,0,0,0,0]
3681 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm11
3682 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm11 {%k2}
3683 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm11 {%k3}
3684 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,0,0,0,0,8,24,0,0,0,0,0,0,9,25]
3685 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm8, %zmm7, %zmm12
3686 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm13 = [0,0,0,0,8,24,0,0,0,0,0,0,9,25,0,0]
3687 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm6, %zmm5, %zmm13
3688 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm13 {%k1}
3689 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,8,24,0,0,0,0,0,0,9,25,0,0,0,0]
3690 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm12
3691 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [8,24,0,0,0,0,0,0,9,25,0,0,0,0,0,0]
3692 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm14
3693 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm14 {%k2}
3694 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm14 {%k3}
3695 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,0,0,0,0,10,26,0,0,0,0,0,0,11,27]
3696 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm8, %zmm7, %zmm12
3697 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm13 = [0,0,0,0,10,26,0,0,0,0,0,0,11,27,0,0]
3698 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm6, %zmm5, %zmm13
3699 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm13 {%k1}
3700 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,10,26,0,0,0,0,0,0,11,27,0,0,0,0]
3701 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm12
3702 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm15 = [10,26,0,0,0,0,0,0,11,27,0,0,0,0,0,0]
3703 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm15
3704 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm15 {%k2}
3705 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm15 {%k3}
3706 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,0,0,0,0,12,28,0,0,0,0,0,0,13,29]
3707 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm8, %zmm7, %zmm12
3708 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm13 = [0,0,0,0,12,28,0,0,0,0,0,0,13,29,0,0]
3709 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm6, %zmm5, %zmm13
3710 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm13 {%k1}
3711 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,12,28,0,0,0,0,0,0,13,29,0,0,0,0]
3712 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm12
3713 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm16 = [12,28,0,0,0,0,0,0,13,29,0,0,0,0,0,0]
3714 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm16
3715 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm16 {%k2}
3716 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm16 {%k3}
3717 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,0,0,0,0,14,30,0,0,0,0,0,0,15,31]
3718 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm8, %zmm7, %zmm12
3719 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [0,0,0,0,14,30,0,0,0,0,0,0,15,31,0,0]
3720 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm6, %zmm5, %zmm7
3721 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm7 {%k1}
3722 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,0,14,30,0,0,0,0,0,0,15,31,0,0,0,0]
3723 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm5
3724 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [14,30,0,0,0,0,0,0,15,31,0,0,0,0,0,0]
3725 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2
3726 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm2 {%k2}
3727 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm2 {%k3}
3728 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, 448(%rax)
3729 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, 384(%rax)
3730 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm15, 320(%rax)
3731 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm14, 256(%rax)
3732 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm11, 192(%rax)
3733 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm10, 128(%rax)
3734 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm9, 64(%rax)
3735 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, (%rax)
3736 ; AVX512BW-FCP-NEXT:    vzeroupper
3737 ; AVX512BW-FCP-NEXT:    retq
3739 ; AVX512DQ-BW-LABEL: store_i32_stride8_vf16:
3740 ; AVX512DQ-BW:       # %bb.0:
3741 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3742 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %r10
3743 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %r11
3744 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rdi), %zmm0
3745 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rsi), %zmm1
3746 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rdx), %zmm2
3747 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rcx), %zmm3
3748 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%r8), %zmm5
3749 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%r9), %zmm6
3750 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%r11), %zmm7
3751 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%r10), %zmm8
3752 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,0,0,0,0,0,0,16,0,0,0,0,0,0,1,17]
3753 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm8, %zmm7, %zmm4
3754 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [0,0,0,0,0,16,0,0,0,0,0,0,1,17,0,0]
3755 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm6, %zmm5, %zmm9
3756 ; AVX512DQ-BW-NEXT:    movb $-120, %cl
3757 ; AVX512DQ-BW-NEXT:    kmovd %ecx, %k1
3758 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm9 {%k1}
3759 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [0,0,0,16,0,0,0,0,0,0,1,17,0,0,0,0]
3760 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm3, %zmm2, %zmm10
3761 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,16,0,0,0,0,0,0,1,17,0,0,0,0,0,0]
3762 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm4
3763 ; AVX512DQ-BW-NEXT:    movb $34, %cl
3764 ; AVX512DQ-BW-NEXT:    kmovd %ecx, %k2
3765 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, %zmm4 {%k2}
3766 ; AVX512DQ-BW-NEXT:    movb $-52, %cl
3767 ; AVX512DQ-BW-NEXT:    kmovd %ecx, %k3
3768 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, %zmm4 {%k3}
3769 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [0,0,0,0,0,0,2,18,0,0,0,0,0,0,3,19]
3770 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm8, %zmm7, %zmm9
3771 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [0,0,0,0,2,18,0,0,0,0,0,0,3,19,0,0]
3772 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm6, %zmm5, %zmm10
3773 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, %zmm10 {%k1}
3774 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [0,0,2,18,0,0,0,0,0,0,3,19,0,0,0,0]
3775 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm3, %zmm2, %zmm11
3776 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [2,18,0,0,0,0,0,0,3,19,0,0,0,0,0,0]
3777 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm9
3778 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, %zmm9 {%k2}
3779 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, %zmm9 {%k3}
3780 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [0,0,0,0,0,0,4,20,0,0,0,0,0,0,5,21]
3781 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm8, %zmm7, %zmm10
3782 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [0,0,0,0,4,20,0,0,0,0,0,0,5,21,0,0]
3783 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm6, %zmm5, %zmm11
3784 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, %zmm11 {%k1}
3785 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,4,20,0,0,0,0,0,0,5,21,0,0,0,0]
3786 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm3, %zmm2, %zmm12
3787 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [4,20,0,0,0,0,0,0,5,21,0,0,0,0,0,0]
3788 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm10
3789 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm12, %zmm10 {%k2}
3790 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, %zmm10 {%k3}
3791 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [0,0,0,0,0,0,6,22,0,0,0,0,0,0,7,23]
3792 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm8, %zmm7, %zmm11
3793 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,0,0,6,22,0,0,0,0,0,0,7,23,0,0]
3794 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm6, %zmm5, %zmm12
3795 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, %zmm12 {%k1}
3796 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm13 = [0,0,6,22,0,0,0,0,0,0,7,23,0,0,0,0]
3797 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm3, %zmm2, %zmm13
3798 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [6,22,0,0,0,0,0,0,7,23,0,0,0,0,0,0]
3799 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm11
3800 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm13, %zmm11 {%k2}
3801 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm12, %zmm11 {%k3}
3802 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,0,0,0,0,8,24,0,0,0,0,0,0,9,25]
3803 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm8, %zmm7, %zmm12
3804 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm13 = [0,0,0,0,8,24,0,0,0,0,0,0,9,25,0,0]
3805 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm6, %zmm5, %zmm13
3806 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm12, %zmm13 {%k1}
3807 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,8,24,0,0,0,0,0,0,9,25,0,0,0,0]
3808 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm3, %zmm2, %zmm12
3809 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [8,24,0,0,0,0,0,0,9,25,0,0,0,0,0,0]
3810 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm14
3811 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm12, %zmm14 {%k2}
3812 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm13, %zmm14 {%k3}
3813 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,0,0,0,0,10,26,0,0,0,0,0,0,11,27]
3814 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm8, %zmm7, %zmm12
3815 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm13 = [0,0,0,0,10,26,0,0,0,0,0,0,11,27,0,0]
3816 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm6, %zmm5, %zmm13
3817 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm12, %zmm13 {%k1}
3818 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,10,26,0,0,0,0,0,0,11,27,0,0,0,0]
3819 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm3, %zmm2, %zmm12
3820 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm15 = [10,26,0,0,0,0,0,0,11,27,0,0,0,0,0,0]
3821 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm15
3822 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm12, %zmm15 {%k2}
3823 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm13, %zmm15 {%k3}
3824 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,0,0,0,0,12,28,0,0,0,0,0,0,13,29]
3825 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm8, %zmm7, %zmm12
3826 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm13 = [0,0,0,0,12,28,0,0,0,0,0,0,13,29,0,0]
3827 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm6, %zmm5, %zmm13
3828 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm12, %zmm13 {%k1}
3829 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,12,28,0,0,0,0,0,0,13,29,0,0,0,0]
3830 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm3, %zmm2, %zmm12
3831 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm16 = [12,28,0,0,0,0,0,0,13,29,0,0,0,0,0,0]
3832 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm16
3833 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm12, %zmm16 {%k2}
3834 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm13, %zmm16 {%k3}
3835 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,0,0,0,0,14,30,0,0,0,0,0,0,15,31]
3836 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm8, %zmm7, %zmm12
3837 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [0,0,0,0,14,30,0,0,0,0,0,0,15,31,0,0]
3838 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm6, %zmm5, %zmm7
3839 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm12, %zmm7 {%k1}
3840 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,0,14,30,0,0,0,0,0,0,15,31,0,0,0,0]
3841 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm3, %zmm2, %zmm5
3842 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [14,30,0,0,0,0,0,0,15,31,0,0,0,0,0,0]
3843 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2
3844 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm2 {%k2}
3845 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, %zmm2 {%k3}
3846 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, 448(%rax)
3847 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, 384(%rax)
3848 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, 320(%rax)
3849 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm14, 256(%rax)
3850 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, 192(%rax)
3851 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, 128(%rax)
3852 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, 64(%rax)
3853 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, (%rax)
3854 ; AVX512DQ-BW-NEXT:    vzeroupper
3855 ; AVX512DQ-BW-NEXT:    retq
3857 ; AVX512DQ-BW-FCP-LABEL: store_i32_stride8_vf16:
3858 ; AVX512DQ-BW-FCP:       # %bb.0:
3859 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3860 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
3861 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11
3862 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm0
3863 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rsi), %zmm1
3864 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdx), %zmm2
3865 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rcx), %zmm3
3866 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%r8), %zmm5
3867 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%r9), %zmm6
3868 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%r11), %zmm7
3869 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%r10), %zmm8
3870 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,0,0,0,0,0,0,16,0,0,0,0,0,0,1,17]
3871 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm8, %zmm7, %zmm4
3872 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [0,0,0,0,0,16,0,0,0,0,0,0,1,17,0,0]
3873 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm6, %zmm5, %zmm9
3874 ; AVX512DQ-BW-FCP-NEXT:    movb $-120, %cl
3875 ; AVX512DQ-BW-FCP-NEXT:    kmovd %ecx, %k1
3876 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm9 {%k1}
3877 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [0,0,0,16,0,0,0,0,0,0,1,17,0,0,0,0]
3878 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm10
3879 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,16,0,0,0,0,0,0,1,17,0,0,0,0,0,0]
3880 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm4
3881 ; AVX512DQ-BW-FCP-NEXT:    movb $34, %cl
3882 ; AVX512DQ-BW-FCP-NEXT:    kmovd %ecx, %k2
3883 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm4 {%k2}
3884 ; AVX512DQ-BW-FCP-NEXT:    movb $-52, %cl
3885 ; AVX512DQ-BW-FCP-NEXT:    kmovd %ecx, %k3
3886 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm4 {%k3}
3887 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [0,0,0,0,0,0,2,18,0,0,0,0,0,0,3,19]
3888 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm8, %zmm7, %zmm9
3889 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [0,0,0,0,2,18,0,0,0,0,0,0,3,19,0,0]
3890 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm6, %zmm5, %zmm10
3891 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm10 {%k1}
3892 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [0,0,2,18,0,0,0,0,0,0,3,19,0,0,0,0]
3893 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm11
3894 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [2,18,0,0,0,0,0,0,3,19,0,0,0,0,0,0]
3895 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm9
3896 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm9 {%k2}
3897 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm9 {%k3}
3898 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [0,0,0,0,0,0,4,20,0,0,0,0,0,0,5,21]
3899 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm8, %zmm7, %zmm10
3900 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [0,0,0,0,4,20,0,0,0,0,0,0,5,21,0,0]
3901 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm6, %zmm5, %zmm11
3902 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm11 {%k1}
3903 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,4,20,0,0,0,0,0,0,5,21,0,0,0,0]
3904 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm12
3905 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [4,20,0,0,0,0,0,0,5,21,0,0,0,0,0,0]
3906 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm10
3907 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm10 {%k2}
3908 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm10 {%k3}
3909 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [0,0,0,0,0,0,6,22,0,0,0,0,0,0,7,23]
3910 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm8, %zmm7, %zmm11
3911 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,0,0,6,22,0,0,0,0,0,0,7,23,0,0]
3912 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm6, %zmm5, %zmm12
3913 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm12 {%k1}
3914 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm13 = [0,0,6,22,0,0,0,0,0,0,7,23,0,0,0,0]
3915 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm13
3916 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [6,22,0,0,0,0,0,0,7,23,0,0,0,0,0,0]
3917 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm11
3918 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm11 {%k2}
3919 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm11 {%k3}
3920 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,0,0,0,0,8,24,0,0,0,0,0,0,9,25]
3921 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm8, %zmm7, %zmm12
3922 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm13 = [0,0,0,0,8,24,0,0,0,0,0,0,9,25,0,0]
3923 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm6, %zmm5, %zmm13
3924 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm13 {%k1}
3925 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,8,24,0,0,0,0,0,0,9,25,0,0,0,0]
3926 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm12
3927 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [8,24,0,0,0,0,0,0,9,25,0,0,0,0,0,0]
3928 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm14
3929 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm14 {%k2}
3930 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm14 {%k3}
3931 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,0,0,0,0,10,26,0,0,0,0,0,0,11,27]
3932 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm8, %zmm7, %zmm12
3933 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm13 = [0,0,0,0,10,26,0,0,0,0,0,0,11,27,0,0]
3934 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm6, %zmm5, %zmm13
3935 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm13 {%k1}
3936 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,10,26,0,0,0,0,0,0,11,27,0,0,0,0]
3937 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm12
3938 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm15 = [10,26,0,0,0,0,0,0,11,27,0,0,0,0,0,0]
3939 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm15
3940 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm15 {%k2}
3941 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm15 {%k3}
3942 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,0,0,0,0,12,28,0,0,0,0,0,0,13,29]
3943 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm8, %zmm7, %zmm12
3944 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm13 = [0,0,0,0,12,28,0,0,0,0,0,0,13,29,0,0]
3945 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm6, %zmm5, %zmm13
3946 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm13 {%k1}
3947 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,12,28,0,0,0,0,0,0,13,29,0,0,0,0]
3948 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm12
3949 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm16 = [12,28,0,0,0,0,0,0,13,29,0,0,0,0,0,0]
3950 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm16
3951 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm16 {%k2}
3952 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm16 {%k3}
3953 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,0,0,0,0,14,30,0,0,0,0,0,0,15,31]
3954 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm8, %zmm7, %zmm12
3955 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [0,0,0,0,14,30,0,0,0,0,0,0,15,31,0,0]
3956 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm6, %zmm5, %zmm7
3957 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm7 {%k1}
3958 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,0,14,30,0,0,0,0,0,0,15,31,0,0,0,0]
3959 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm5
3960 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [14,30,0,0,0,0,0,0,15,31,0,0,0,0,0,0]
3961 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2
3962 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm2 {%k2}
3963 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm2 {%k3}
3964 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, 448(%rax)
3965 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm16, 384(%rax)
3966 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm15, 320(%rax)
3967 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm14, 256(%rax)
3968 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, 192(%rax)
3969 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, 128(%rax)
3970 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, 64(%rax)
3971 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, (%rax)
3972 ; AVX512DQ-BW-FCP-NEXT:    vzeroupper
3973 ; AVX512DQ-BW-FCP-NEXT:    retq
3974   %in.vec0 = load <16 x i32>, ptr %in.vecptr0, align 64
3975   %in.vec1 = load <16 x i32>, ptr %in.vecptr1, align 64
3976   %in.vec2 = load <16 x i32>, ptr %in.vecptr2, align 64
3977   %in.vec3 = load <16 x i32>, ptr %in.vecptr3, align 64
3978   %in.vec4 = load <16 x i32>, ptr %in.vecptr4, align 64
3979   %in.vec5 = load <16 x i32>, ptr %in.vecptr5, align 64
3980   %in.vec6 = load <16 x i32>, ptr %in.vecptr6, align 64
3981   %in.vec7 = load <16 x i32>, ptr %in.vecptr7, align 64
3982   %1 = shufflevector <16 x i32> %in.vec0, <16 x i32> %in.vec1, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31>
3983   %2 = shufflevector <16 x i32> %in.vec2, <16 x i32> %in.vec3, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31>
3984   %3 = shufflevector <16 x i32> %in.vec4, <16 x i32> %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>
3985   %4 = shufflevector <16 x i32> %in.vec6, <16 x i32> %in.vec7, <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>
3986   %5 = shufflevector <32 x i32> %1, <32 x i32> %2, <64 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63>
3987   %6 = shufflevector <32 x i32> %3, <32 x i32> %4, <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>
3988   %7 = shufflevector <64 x i32> %5, <64 x i32> %6, <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>
3989   %interleaved.vec = shufflevector <128 x i32> %7, <128 x i32> poison, <128 x i32> <i32 0, i32 16, i32 32, i32 48, i32 64, i32 80, i32 96, i32 112, i32 1, i32 17, i32 33, i32 49, i32 65, i32 81, i32 97, i32 113, i32 2, i32 18, i32 34, i32 50, i32 66, i32 82, i32 98, i32 114, i32 3, i32 19, i32 35, i32 51, i32 67, i32 83, i32 99, i32 115, i32 4, i32 20, i32 36, i32 52, i32 68, i32 84, i32 100, i32 116, i32 5, i32 21, i32 37, i32 53, i32 69, i32 85, i32 101, i32 117, i32 6, i32 22, i32 38, i32 54, i32 70, i32 86, i32 102, i32 118, i32 7, i32 23, i32 39, i32 55, i32 71, i32 87, i32 103, i32 119, i32 8, i32 24, i32 40, i32 56, i32 72, i32 88, i32 104, i32 120, i32 9, i32 25, i32 41, i32 57, i32 73, i32 89, i32 105, i32 121, i32 10, i32 26, i32 42, i32 58, i32 74, i32 90, i32 106, i32 122, i32 11, i32 27, i32 43, i32 59, i32 75, i32 91, i32 107, i32 123, i32 12, i32 28, i32 44, i32 60, i32 76, i32 92, i32 108, i32 124, i32 13, i32 29, i32 45, i32 61, i32 77, i32 93, i32 109, i32 125, i32 14, i32 30, i32 46, i32 62, i32 78, i32 94, i32 110, i32 126, i32 15, i32 31, i32 47, i32 63, i32 79, i32 95, i32 111, i32 127>
3990   store <128 x i32> %interleaved.vec, ptr %out.vec, align 64
3991   ret void
3994 define void @store_i32_stride8_vf32(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %in.vecptr4, ptr %in.vecptr5, ptr %in.vecptr6, ptr %in.vecptr7, ptr %out.vec) nounwind {
3995 ; SSE-LABEL: store_i32_stride8_vf32:
3996 ; SSE:       # %bb.0:
3997 ; SSE-NEXT:    subq $728, %rsp # imm = 0x2D8
3998 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3999 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %r10
4000 ; SSE-NEXT:    movaps (%rdi), %xmm9
4001 ; SSE-NEXT:    movaps 16(%rdi), %xmm10
4002 ; SSE-NEXT:    movaps (%rsi), %xmm3
4003 ; SSE-NEXT:    movaps 16(%rsi), %xmm1
4004 ; SSE-NEXT:    movaps (%rdx), %xmm2
4005 ; SSE-NEXT:    movaps 16(%rdx), %xmm0
4006 ; SSE-NEXT:    movaps (%rcx), %xmm4
4007 ; SSE-NEXT:    movaps (%r8), %xmm11
4008 ; SSE-NEXT:    movaps (%r9), %xmm6
4009 ; SSE-NEXT:    movaps (%r10), %xmm5
4010 ; SSE-NEXT:    movaps (%rax), %xmm7
4011 ; SSE-NEXT:    movaps %xmm4, %xmm8
4012 ; SSE-NEXT:    movlhps {{.*#+}} xmm8 = xmm8[0],xmm2[0]
4013 ; SSE-NEXT:    movaps %xmm9, %xmm13
4014 ; SSE-NEXT:    unpcklps {{.*#+}} xmm13 = xmm13[0],xmm3[0],xmm13[1],xmm3[1]
4015 ; SSE-NEXT:    movaps %xmm13, %xmm12
4016 ; SSE-NEXT:    shufps {{.*#+}} xmm12 = xmm12[0,1],xmm8[2,0]
4017 ; SSE-NEXT:    movaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4018 ; SSE-NEXT:    movaps %xmm7, %xmm8
4019 ; SSE-NEXT:    movlhps {{.*#+}} xmm8 = xmm8[0],xmm5[0]
4020 ; SSE-NEXT:    movaps %xmm11, %xmm14
4021 ; SSE-NEXT:    unpcklps {{.*#+}} xmm14 = xmm14[0],xmm6[0],xmm14[1],xmm6[1]
4022 ; SSE-NEXT:    movaps %xmm14, %xmm12
4023 ; SSE-NEXT:    shufps {{.*#+}} xmm12 = xmm12[0,1],xmm8[2,0]
4024 ; SSE-NEXT:    movaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4025 ; SSE-NEXT:    movaps %xmm4, %xmm8
4026 ; SSE-NEXT:    shufps {{.*#+}} xmm8 = xmm8[1,1],xmm2[1,1]
4027 ; SSE-NEXT:    shufps {{.*#+}} xmm13 = xmm13[2,3],xmm8[2,0]
4028 ; SSE-NEXT:    movaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4029 ; SSE-NEXT:    movaps %xmm7, %xmm8
4030 ; SSE-NEXT:    shufps {{.*#+}} xmm8 = xmm8[1,1],xmm5[1,1]
4031 ; SSE-NEXT:    shufps {{.*#+}} xmm14 = xmm14[2,3],xmm8[2,0]
4032 ; SSE-NEXT:    movaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4033 ; SSE-NEXT:    movaps %xmm2, %xmm8
4034 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm4[1]
4035 ; SSE-NEXT:    unpckhps {{.*#+}} xmm9 = xmm9[2],xmm3[2],xmm9[3],xmm3[3]
4036 ; SSE-NEXT:    movaps %xmm9, %xmm3
4037 ; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[0,1],xmm8[0,2]
4038 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4039 ; SSE-NEXT:    movaps %xmm5, %xmm3
4040 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm3 = xmm3[1],xmm7[1]
4041 ; SSE-NEXT:    unpckhps {{.*#+}} xmm11 = xmm11[2],xmm6[2],xmm11[3],xmm6[3]
4042 ; SSE-NEXT:    movaps %xmm11, %xmm6
4043 ; SSE-NEXT:    shufps {{.*#+}} xmm6 = xmm6[0,1],xmm3[0,2]
4044 ; SSE-NEXT:    movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4045 ; SSE-NEXT:    movaps 16(%rcx), %xmm6
4046 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[3,3],xmm4[3,3]
4047 ; SSE-NEXT:    movaps 16(%r10), %xmm3
4048 ; SSE-NEXT:    shufps {{.*#+}} xmm9 = xmm9[2,3],xmm2[0,2]
4049 ; SSE-NEXT:    movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4050 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[3,3],xmm7[3,3]
4051 ; SSE-NEXT:    shufps {{.*#+}} xmm11 = xmm11[2,3],xmm5[0,2]
4052 ; SSE-NEXT:    movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4053 ; SSE-NEXT:    movaps %xmm6, %xmm2
4054 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
4055 ; SSE-NEXT:    movaps %xmm10, %xmm5
4056 ; SSE-NEXT:    unpcklps {{.*#+}} xmm5 = xmm5[0],xmm1[0],xmm5[1],xmm1[1]
4057 ; SSE-NEXT:    movaps %xmm5, %xmm4
4058 ; SSE-NEXT:    movaps %xmm5, %xmm7
4059 ; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[0,1],xmm2[2,0]
4060 ; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4061 ; SSE-NEXT:    movaps 16(%rax), %xmm2
4062 ; SSE-NEXT:    movaps %xmm2, %xmm4
4063 ; SSE-NEXT:    movlhps {{.*#+}} xmm4 = xmm4[0],xmm3[0]
4064 ; SSE-NEXT:    movaps 16(%r8), %xmm11
4065 ; SSE-NEXT:    movaps 16(%r9), %xmm5
4066 ; SSE-NEXT:    movaps %xmm11, %xmm9
4067 ; SSE-NEXT:    unpcklps {{.*#+}} xmm9 = xmm9[0],xmm5[0],xmm9[1],xmm5[1]
4068 ; SSE-NEXT:    movaps %xmm9, %xmm8
4069 ; SSE-NEXT:    shufps {{.*#+}} xmm8 = xmm8[0,1],xmm4[2,0]
4070 ; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4071 ; SSE-NEXT:    movaps %xmm6, %xmm4
4072 ; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[1,1],xmm0[1,1]
4073 ; SSE-NEXT:    shufps {{.*#+}} xmm7 = xmm7[2,3],xmm4[2,0]
4074 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4075 ; SSE-NEXT:    movaps %xmm2, %xmm4
4076 ; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[1,1],xmm3[1,1]
4077 ; SSE-NEXT:    shufps {{.*#+}} xmm9 = xmm9[2,3],xmm4[2,0]
4078 ; SSE-NEXT:    movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4079 ; SSE-NEXT:    unpckhps {{.*#+}} xmm10 = xmm10[2],xmm1[2],xmm10[3],xmm1[3]
4080 ; SSE-NEXT:    movaps %xmm0, %xmm1
4081 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm6[1]
4082 ; SSE-NEXT:    movaps %xmm10, %xmm4
4083 ; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[0,1],xmm1[0,2]
4084 ; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4085 ; SSE-NEXT:    unpckhps {{.*#+}} xmm11 = xmm11[2],xmm5[2],xmm11[3],xmm5[3]
4086 ; SSE-NEXT:    movaps %xmm3, %xmm1
4087 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
4088 ; SSE-NEXT:    movaps %xmm11, %xmm4
4089 ; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[0,1],xmm1[0,2]
4090 ; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4091 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm6[3,3]
4092 ; SSE-NEXT:    shufps {{.*#+}} xmm10 = xmm10[2,3],xmm0[0,2]
4093 ; SSE-NEXT:    movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4094 ; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[3,3],xmm2[3,3]
4095 ; SSE-NEXT:    shufps {{.*#+}} xmm11 = xmm11[2,3],xmm3[0,2]
4096 ; SSE-NEXT:    movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4097 ; SSE-NEXT:    movaps 32(%rdx), %xmm0
4098 ; SSE-NEXT:    movaps 32(%rcx), %xmm1
4099 ; SSE-NEXT:    movaps %xmm1, %xmm2
4100 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
4101 ; SSE-NEXT:    movaps 32(%rdi), %xmm7
4102 ; SSE-NEXT:    movaps 32(%rsi), %xmm4
4103 ; SSE-NEXT:    movaps %xmm7, %xmm5
4104 ; SSE-NEXT:    unpcklps {{.*#+}} xmm5 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
4105 ; SSE-NEXT:    movaps %xmm5, %xmm3
4106 ; SSE-NEXT:    movaps %xmm5, %xmm8
4107 ; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[0,1],xmm2[2,0]
4108 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4109 ; SSE-NEXT:    movaps 32(%r10), %xmm2
4110 ; SSE-NEXT:    movaps 32(%rax), %xmm3
4111 ; SSE-NEXT:    movaps %xmm3, %xmm5
4112 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm2[0]
4113 ; SSE-NEXT:    movaps 32(%r8), %xmm11
4114 ; SSE-NEXT:    movaps 32(%r9), %xmm6
4115 ; SSE-NEXT:    movaps %xmm11, %xmm10
4116 ; SSE-NEXT:    unpcklps {{.*#+}} xmm10 = xmm10[0],xmm6[0],xmm10[1],xmm6[1]
4117 ; SSE-NEXT:    movaps %xmm10, %xmm9
4118 ; SSE-NEXT:    shufps {{.*#+}} xmm9 = xmm9[0,1],xmm5[2,0]
4119 ; SSE-NEXT:    movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4120 ; SSE-NEXT:    movaps %xmm1, %xmm5
4121 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1],xmm0[1,1]
4122 ; SSE-NEXT:    shufps {{.*#+}} xmm8 = xmm8[2,3],xmm5[2,0]
4123 ; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4124 ; SSE-NEXT:    movaps %xmm3, %xmm5
4125 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1],xmm2[1,1]
4126 ; SSE-NEXT:    shufps {{.*#+}} xmm10 = xmm10[2,3],xmm5[2,0]
4127 ; SSE-NEXT:    movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4128 ; SSE-NEXT:    unpckhps {{.*#+}} xmm7 = xmm7[2],xmm4[2],xmm7[3],xmm4[3]
4129 ; SSE-NEXT:    movaps %xmm0, %xmm4
4130 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm1[1]
4131 ; SSE-NEXT:    movaps %xmm7, %xmm5
4132 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm4[0,2]
4133 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4134 ; SSE-NEXT:    unpckhps {{.*#+}} xmm11 = xmm11[2],xmm6[2],xmm11[3],xmm6[3]
4135 ; SSE-NEXT:    movaps %xmm2, %xmm4
4136 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm3[1]
4137 ; SSE-NEXT:    movaps %xmm11, %xmm5
4138 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm4[0,2]
4139 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4140 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm1[3,3]
4141 ; SSE-NEXT:    shufps {{.*#+}} xmm7 = xmm7[2,3],xmm0[0,2]
4142 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4143 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[3,3],xmm3[3,3]
4144 ; SSE-NEXT:    shufps {{.*#+}} xmm11 = xmm11[2,3],xmm2[0,2]
4145 ; SSE-NEXT:    movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4146 ; SSE-NEXT:    movaps 48(%rdx), %xmm0
4147 ; SSE-NEXT:    movaps 48(%rcx), %xmm1
4148 ; SSE-NEXT:    movaps %xmm1, %xmm2
4149 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
4150 ; SSE-NEXT:    movaps 48(%rdi), %xmm7
4151 ; SSE-NEXT:    movaps 48(%rsi), %xmm4
4152 ; SSE-NEXT:    movaps %xmm7, %xmm5
4153 ; SSE-NEXT:    unpcklps {{.*#+}} xmm5 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
4154 ; SSE-NEXT:    movaps %xmm5, %xmm3
4155 ; SSE-NEXT:    movaps %xmm5, %xmm8
4156 ; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[0,1],xmm2[2,0]
4157 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4158 ; SSE-NEXT:    movaps 48(%r10), %xmm2
4159 ; SSE-NEXT:    movaps 48(%rax), %xmm3
4160 ; SSE-NEXT:    movaps %xmm3, %xmm5
4161 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm2[0]
4162 ; SSE-NEXT:    movaps 48(%r8), %xmm11
4163 ; SSE-NEXT:    movaps 48(%r9), %xmm6
4164 ; SSE-NEXT:    movaps %xmm11, %xmm10
4165 ; SSE-NEXT:    unpcklps {{.*#+}} xmm10 = xmm10[0],xmm6[0],xmm10[1],xmm6[1]
4166 ; SSE-NEXT:    movaps %xmm10, %xmm9
4167 ; SSE-NEXT:    shufps {{.*#+}} xmm9 = xmm9[0,1],xmm5[2,0]
4168 ; SSE-NEXT:    movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4169 ; SSE-NEXT:    movaps %xmm1, %xmm5
4170 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1],xmm0[1,1]
4171 ; SSE-NEXT:    shufps {{.*#+}} xmm8 = xmm8[2,3],xmm5[2,0]
4172 ; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4173 ; SSE-NEXT:    movaps %xmm3, %xmm5
4174 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1],xmm2[1,1]
4175 ; SSE-NEXT:    shufps {{.*#+}} xmm10 = xmm10[2,3],xmm5[2,0]
4176 ; SSE-NEXT:    movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4177 ; SSE-NEXT:    unpckhps {{.*#+}} xmm7 = xmm7[2],xmm4[2],xmm7[3],xmm4[3]
4178 ; SSE-NEXT:    movaps %xmm0, %xmm4
4179 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm1[1]
4180 ; SSE-NEXT:    movaps %xmm7, %xmm5
4181 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm4[0,2]
4182 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4183 ; SSE-NEXT:    unpckhps {{.*#+}} xmm11 = xmm11[2],xmm6[2],xmm11[3],xmm6[3]
4184 ; SSE-NEXT:    movaps %xmm2, %xmm4
4185 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm3[1]
4186 ; SSE-NEXT:    movaps %xmm11, %xmm5
4187 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm4[0,2]
4188 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4189 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm1[3,3]
4190 ; SSE-NEXT:    shufps {{.*#+}} xmm7 = xmm7[2,3],xmm0[0,2]
4191 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4192 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[3,3],xmm3[3,3]
4193 ; SSE-NEXT:    shufps {{.*#+}} xmm11 = xmm11[2,3],xmm2[0,2]
4194 ; SSE-NEXT:    movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4195 ; SSE-NEXT:    movaps 64(%rdx), %xmm0
4196 ; SSE-NEXT:    movaps 64(%rcx), %xmm1
4197 ; SSE-NEXT:    movaps %xmm1, %xmm2
4198 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
4199 ; SSE-NEXT:    movaps 64(%rdi), %xmm7
4200 ; SSE-NEXT:    movaps 64(%rsi), %xmm4
4201 ; SSE-NEXT:    movaps %xmm7, %xmm5
4202 ; SSE-NEXT:    unpcklps {{.*#+}} xmm5 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
4203 ; SSE-NEXT:    movaps %xmm5, %xmm3
4204 ; SSE-NEXT:    movaps %xmm5, %xmm8
4205 ; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[0,1],xmm2[2,0]
4206 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4207 ; SSE-NEXT:    movaps 64(%r10), %xmm2
4208 ; SSE-NEXT:    movaps 64(%rax), %xmm3
4209 ; SSE-NEXT:    movaps %xmm3, %xmm5
4210 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm2[0]
4211 ; SSE-NEXT:    movaps 64(%r8), %xmm11
4212 ; SSE-NEXT:    movaps 64(%r9), %xmm6
4213 ; SSE-NEXT:    movaps %xmm11, %xmm10
4214 ; SSE-NEXT:    unpcklps {{.*#+}} xmm10 = xmm10[0],xmm6[0],xmm10[1],xmm6[1]
4215 ; SSE-NEXT:    movaps %xmm10, %xmm9
4216 ; SSE-NEXT:    shufps {{.*#+}} xmm9 = xmm9[0,1],xmm5[2,0]
4217 ; SSE-NEXT:    movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4218 ; SSE-NEXT:    movaps %xmm1, %xmm5
4219 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1],xmm0[1,1]
4220 ; SSE-NEXT:    shufps {{.*#+}} xmm8 = xmm8[2,3],xmm5[2,0]
4221 ; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4222 ; SSE-NEXT:    movaps %xmm3, %xmm5
4223 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1],xmm2[1,1]
4224 ; SSE-NEXT:    shufps {{.*#+}} xmm10 = xmm10[2,3],xmm5[2,0]
4225 ; SSE-NEXT:    movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4226 ; SSE-NEXT:    unpckhps {{.*#+}} xmm7 = xmm7[2],xmm4[2],xmm7[3],xmm4[3]
4227 ; SSE-NEXT:    movaps %xmm0, %xmm4
4228 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm1[1]
4229 ; SSE-NEXT:    movaps %xmm7, %xmm5
4230 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm4[0,2]
4231 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4232 ; SSE-NEXT:    unpckhps {{.*#+}} xmm11 = xmm11[2],xmm6[2],xmm11[3],xmm6[3]
4233 ; SSE-NEXT:    movaps %xmm2, %xmm4
4234 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm3[1]
4235 ; SSE-NEXT:    movaps %xmm11, %xmm5
4236 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm4[0,2]
4237 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4238 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm1[3,3]
4239 ; SSE-NEXT:    shufps {{.*#+}} xmm7 = xmm7[2,3],xmm0[0,2]
4240 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4241 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[3,3],xmm3[3,3]
4242 ; SSE-NEXT:    shufps {{.*#+}} xmm11 = xmm11[2,3],xmm2[0,2]
4243 ; SSE-NEXT:    movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4244 ; SSE-NEXT:    movaps 80(%rdx), %xmm0
4245 ; SSE-NEXT:    movaps 80(%rcx), %xmm1
4246 ; SSE-NEXT:    movaps %xmm1, %xmm2
4247 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
4248 ; SSE-NEXT:    movaps 80(%rdi), %xmm7
4249 ; SSE-NEXT:    movaps 80(%rsi), %xmm4
4250 ; SSE-NEXT:    movaps %xmm7, %xmm5
4251 ; SSE-NEXT:    unpcklps {{.*#+}} xmm5 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
4252 ; SSE-NEXT:    movaps %xmm5, %xmm3
4253 ; SSE-NEXT:    movaps %xmm5, %xmm8
4254 ; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[0,1],xmm2[2,0]
4255 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4256 ; SSE-NEXT:    movaps 80(%r10), %xmm2
4257 ; SSE-NEXT:    movaps 80(%rax), %xmm3
4258 ; SSE-NEXT:    movaps %xmm3, %xmm5
4259 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm2[0]
4260 ; SSE-NEXT:    movaps 80(%r8), %xmm11
4261 ; SSE-NEXT:    movaps 80(%r9), %xmm6
4262 ; SSE-NEXT:    movaps %xmm11, %xmm10
4263 ; SSE-NEXT:    unpcklps {{.*#+}} xmm10 = xmm10[0],xmm6[0],xmm10[1],xmm6[1]
4264 ; SSE-NEXT:    movaps %xmm10, %xmm9
4265 ; SSE-NEXT:    shufps {{.*#+}} xmm9 = xmm9[0,1],xmm5[2,0]
4266 ; SSE-NEXT:    movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4267 ; SSE-NEXT:    movaps %xmm1, %xmm5
4268 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1],xmm0[1,1]
4269 ; SSE-NEXT:    shufps {{.*#+}} xmm8 = xmm8[2,3],xmm5[2,0]
4270 ; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4271 ; SSE-NEXT:    movaps %xmm3, %xmm5
4272 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1],xmm2[1,1]
4273 ; SSE-NEXT:    shufps {{.*#+}} xmm10 = xmm10[2,3],xmm5[2,0]
4274 ; SSE-NEXT:    movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4275 ; SSE-NEXT:    unpckhps {{.*#+}} xmm7 = xmm7[2],xmm4[2],xmm7[3],xmm4[3]
4276 ; SSE-NEXT:    movaps %xmm0, %xmm4
4277 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm1[1]
4278 ; SSE-NEXT:    movaps %xmm7, %xmm5
4279 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm4[0,2]
4280 ; SSE-NEXT:    movaps %xmm5, (%rsp) # 16-byte Spill
4281 ; SSE-NEXT:    unpckhps {{.*#+}} xmm11 = xmm11[2],xmm6[2],xmm11[3],xmm6[3]
4282 ; SSE-NEXT:    movaps %xmm2, %xmm4
4283 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm3[1]
4284 ; SSE-NEXT:    movaps %xmm11, %xmm5
4285 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm4[0,2]
4286 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4287 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm1[3,3]
4288 ; SSE-NEXT:    shufps {{.*#+}} xmm7 = xmm7[2,3],xmm0[0,2]
4289 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4290 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[3,3],xmm3[3,3]
4291 ; SSE-NEXT:    shufps {{.*#+}} xmm11 = xmm11[2,3],xmm2[0,2]
4292 ; SSE-NEXT:    movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4293 ; SSE-NEXT:    movaps 96(%rdx), %xmm2
4294 ; SSE-NEXT:    movaps 96(%rcx), %xmm0
4295 ; SSE-NEXT:    movaps %xmm0, %xmm1
4296 ; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]
4297 ; SSE-NEXT:    movaps 96(%rdi), %xmm15
4298 ; SSE-NEXT:    movaps 96(%rsi), %xmm4
4299 ; SSE-NEXT:    movaps %xmm15, %xmm5
4300 ; SSE-NEXT:    unpcklps {{.*#+}} xmm5 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
4301 ; SSE-NEXT:    movaps %xmm5, %xmm3
4302 ; SSE-NEXT:    movaps %xmm5, %xmm7
4303 ; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[0,1],xmm1[2,0]
4304 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4305 ; SSE-NEXT:    movaps 96(%r10), %xmm1
4306 ; SSE-NEXT:    movaps 96(%rax), %xmm3
4307 ; SSE-NEXT:    movaps %xmm3, %xmm5
4308 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm1[0]
4309 ; SSE-NEXT:    movaps 96(%r8), %xmm13
4310 ; SSE-NEXT:    movaps 96(%r9), %xmm6
4311 ; SSE-NEXT:    movaps %xmm13, %xmm12
4312 ; SSE-NEXT:    unpcklps {{.*#+}} xmm12 = xmm12[0],xmm6[0],xmm12[1],xmm6[1]
4313 ; SSE-NEXT:    movaps %xmm12, %xmm8
4314 ; SSE-NEXT:    shufps {{.*#+}} xmm8 = xmm8[0,1],xmm5[2,0]
4315 ; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4316 ; SSE-NEXT:    movaps %xmm0, %xmm5
4317 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1],xmm2[1,1]
4318 ; SSE-NEXT:    shufps {{.*#+}} xmm7 = xmm7[2,3],xmm5[2,0]
4319 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4320 ; SSE-NEXT:    movaps %xmm3, %xmm5
4321 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1],xmm1[1,1]
4322 ; SSE-NEXT:    shufps {{.*#+}} xmm12 = xmm12[2,3],xmm5[2,0]
4323 ; SSE-NEXT:    unpckhps {{.*#+}} xmm15 = xmm15[2],xmm4[2],xmm15[3],xmm4[3]
4324 ; SSE-NEXT:    movaps %xmm2, %xmm4
4325 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm0[1]
4326 ; SSE-NEXT:    movaps %xmm15, %xmm5
4327 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm4[0,2]
4328 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4329 ; SSE-NEXT:    unpckhps {{.*#+}} xmm13 = xmm13[2],xmm6[2],xmm13[3],xmm6[3]
4330 ; SSE-NEXT:    movaps %xmm1, %xmm4
4331 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm3[1]
4332 ; SSE-NEXT:    movaps %xmm13, %xmm5
4333 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm4[0,2]
4334 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4335 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[3,3],xmm0[3,3]
4336 ; SSE-NEXT:    shufps {{.*#+}} xmm15 = xmm15[2,3],xmm2[0,2]
4337 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[3,3],xmm3[3,3]
4338 ; SSE-NEXT:    shufps {{.*#+}} xmm13 = xmm13[2,3],xmm1[0,2]
4339 ; SSE-NEXT:    movaps 112(%rdx), %xmm1
4340 ; SSE-NEXT:    movaps 112(%rcx), %xmm8
4341 ; SSE-NEXT:    movaps %xmm8, %xmm0
4342 ; SSE-NEXT:    movlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]
4343 ; SSE-NEXT:    movaps 112(%rdi), %xmm2
4344 ; SSE-NEXT:    movaps 112(%rsi), %xmm11
4345 ; SSE-NEXT:    movaps %xmm2, %xmm3
4346 ; SSE-NEXT:    unpcklps {{.*#+}} xmm3 = xmm3[0],xmm11[0],xmm3[1],xmm11[1]
4347 ; SSE-NEXT:    movaps %xmm3, %xmm14
4348 ; SSE-NEXT:    shufps {{.*#+}} xmm14 = xmm14[0,1],xmm0[2,0]
4349 ; SSE-NEXT:    movaps 112(%r10), %xmm0
4350 ; SSE-NEXT:    movaps 112(%rax), %xmm7
4351 ; SSE-NEXT:    movaps %xmm7, %xmm5
4352 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm0[0]
4353 ; SSE-NEXT:    movaps 112(%r8), %xmm4
4354 ; SSE-NEXT:    movaps 112(%r9), %xmm9
4355 ; SSE-NEXT:    movaps %xmm4, %xmm6
4356 ; SSE-NEXT:    unpcklps {{.*#+}} xmm6 = xmm6[0],xmm9[0],xmm6[1],xmm9[1]
4357 ; SSE-NEXT:    movaps %xmm6, %xmm10
4358 ; SSE-NEXT:    shufps {{.*#+}} xmm10 = xmm10[0,1],xmm5[2,0]
4359 ; SSE-NEXT:    movaps %xmm8, %xmm5
4360 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1],xmm1[1,1]
4361 ; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[2,3],xmm5[2,0]
4362 ; SSE-NEXT:    movaps %xmm7, %xmm5
4363 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1],xmm0[1,1]
4364 ; SSE-NEXT:    shufps {{.*#+}} xmm6 = xmm6[2,3],xmm5[2,0]
4365 ; SSE-NEXT:    unpckhps {{.*#+}} xmm2 = xmm2[2],xmm11[2],xmm2[3],xmm11[3]
4366 ; SSE-NEXT:    movaps %xmm1, %xmm5
4367 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm8[1]
4368 ; SSE-NEXT:    movaps %xmm2, %xmm11
4369 ; SSE-NEXT:    shufps {{.*#+}} xmm11 = xmm11[0,1],xmm5[0,2]
4370 ; SSE-NEXT:    unpckhps {{.*#+}} xmm4 = xmm4[2],xmm9[2],xmm4[3],xmm9[3]
4371 ; SSE-NEXT:    movaps %xmm0, %xmm5
4372 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm7[1]
4373 ; SSE-NEXT:    movaps %xmm4, %xmm9
4374 ; SSE-NEXT:    shufps {{.*#+}} xmm9 = xmm9[0,1],xmm5[0,2]
4375 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[3,3],xmm8[3,3]
4376 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[2,3],xmm1[0,2]
4377 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm7[3,3]
4378 ; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[2,3],xmm0[0,2]
4379 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
4380 ; SSE-NEXT:    movaps %xmm4, 1008(%rax)
4381 ; SSE-NEXT:    movaps %xmm2, 992(%rax)
4382 ; SSE-NEXT:    movaps %xmm9, 976(%rax)
4383 ; SSE-NEXT:    movaps %xmm11, 960(%rax)
4384 ; SSE-NEXT:    movaps %xmm6, 944(%rax)
4385 ; SSE-NEXT:    movaps %xmm3, 928(%rax)
4386 ; SSE-NEXT:    movaps %xmm10, 912(%rax)
4387 ; SSE-NEXT:    movaps %xmm14, 896(%rax)
4388 ; SSE-NEXT:    movaps %xmm13, 880(%rax)
4389 ; SSE-NEXT:    movaps %xmm15, 864(%rax)
4390 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4391 ; SSE-NEXT:    movaps %xmm0, 848(%rax)
4392 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4393 ; SSE-NEXT:    movaps %xmm0, 832(%rax)
4394 ; SSE-NEXT:    movaps %xmm12, 816(%rax)
4395 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4396 ; SSE-NEXT:    movaps %xmm0, 800(%rax)
4397 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4398 ; SSE-NEXT:    movaps %xmm0, 784(%rax)
4399 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4400 ; SSE-NEXT:    movaps %xmm0, 768(%rax)
4401 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4402 ; SSE-NEXT:    movaps %xmm0, 752(%rax)
4403 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4404 ; SSE-NEXT:    movaps %xmm0, 736(%rax)
4405 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4406 ; SSE-NEXT:    movaps %xmm0, 720(%rax)
4407 ; SSE-NEXT:    movaps (%rsp), %xmm0 # 16-byte Reload
4408 ; SSE-NEXT:    movaps %xmm0, 704(%rax)
4409 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4410 ; SSE-NEXT:    movaps %xmm0, 688(%rax)
4411 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4412 ; SSE-NEXT:    movaps %xmm0, 672(%rax)
4413 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4414 ; SSE-NEXT:    movaps %xmm0, 656(%rax)
4415 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4416 ; SSE-NEXT:    movaps %xmm0, 640(%rax)
4417 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4418 ; SSE-NEXT:    movaps %xmm0, 624(%rax)
4419 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4420 ; SSE-NEXT:    movaps %xmm0, 608(%rax)
4421 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4422 ; SSE-NEXT:    movaps %xmm0, 592(%rax)
4423 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4424 ; SSE-NEXT:    movaps %xmm0, 576(%rax)
4425 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4426 ; SSE-NEXT:    movaps %xmm0, 560(%rax)
4427 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4428 ; SSE-NEXT:    movaps %xmm0, 544(%rax)
4429 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4430 ; SSE-NEXT:    movaps %xmm0, 528(%rax)
4431 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4432 ; SSE-NEXT:    movaps %xmm0, 512(%rax)
4433 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4434 ; SSE-NEXT:    movaps %xmm0, 496(%rax)
4435 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4436 ; SSE-NEXT:    movaps %xmm0, 480(%rax)
4437 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4438 ; SSE-NEXT:    movaps %xmm0, 464(%rax)
4439 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4440 ; SSE-NEXT:    movaps %xmm0, 448(%rax)
4441 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4442 ; SSE-NEXT:    movaps %xmm0, 432(%rax)
4443 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4444 ; SSE-NEXT:    movaps %xmm0, 416(%rax)
4445 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4446 ; SSE-NEXT:    movaps %xmm0, 400(%rax)
4447 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4448 ; SSE-NEXT:    movaps %xmm0, 384(%rax)
4449 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4450 ; SSE-NEXT:    movaps %xmm0, 368(%rax)
4451 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4452 ; SSE-NEXT:    movaps %xmm0, 352(%rax)
4453 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4454 ; SSE-NEXT:    movaps %xmm0, 336(%rax)
4455 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4456 ; SSE-NEXT:    movaps %xmm0, 320(%rax)
4457 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4458 ; SSE-NEXT:    movaps %xmm0, 304(%rax)
4459 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4460 ; SSE-NEXT:    movaps %xmm0, 288(%rax)
4461 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4462 ; SSE-NEXT:    movaps %xmm0, 272(%rax)
4463 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4464 ; SSE-NEXT:    movaps %xmm0, 256(%rax)
4465 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4466 ; SSE-NEXT:    movaps %xmm0, 240(%rax)
4467 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4468 ; SSE-NEXT:    movaps %xmm0, 224(%rax)
4469 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4470 ; SSE-NEXT:    movaps %xmm0, 208(%rax)
4471 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4472 ; SSE-NEXT:    movaps %xmm0, 192(%rax)
4473 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4474 ; SSE-NEXT:    movaps %xmm0, 176(%rax)
4475 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4476 ; SSE-NEXT:    movaps %xmm0, 160(%rax)
4477 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4478 ; SSE-NEXT:    movaps %xmm0, 144(%rax)
4479 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4480 ; SSE-NEXT:    movaps %xmm0, 128(%rax)
4481 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4482 ; SSE-NEXT:    movaps %xmm0, 112(%rax)
4483 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4484 ; SSE-NEXT:    movaps %xmm0, 96(%rax)
4485 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4486 ; SSE-NEXT:    movaps %xmm0, 80(%rax)
4487 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4488 ; SSE-NEXT:    movaps %xmm0, 64(%rax)
4489 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4490 ; SSE-NEXT:    movaps %xmm0, 48(%rax)
4491 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4492 ; SSE-NEXT:    movaps %xmm0, 32(%rax)
4493 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4494 ; SSE-NEXT:    movaps %xmm0, 16(%rax)
4495 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4496 ; SSE-NEXT:    movaps %xmm0, (%rax)
4497 ; SSE-NEXT:    addq $728, %rsp # imm = 0x2D8
4498 ; SSE-NEXT:    retq
4500 ; AVX-LABEL: store_i32_stride8_vf32:
4501 ; AVX:       # %bb.0:
4502 ; AVX-NEXT:    subq $648, %rsp # imm = 0x288
4503 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax
4504 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %r10
4505 ; AVX-NEXT:    vmovaps (%rdi), %ymm3
4506 ; AVX-NEXT:    vmovaps 32(%rdi), %ymm0
4507 ; AVX-NEXT:    vmovaps (%rsi), %ymm4
4508 ; AVX-NEXT:    vmovaps 32(%rsi), %ymm1
4509 ; AVX-NEXT:    vmovaps 32(%rdx), %ymm2
4510 ; AVX-NEXT:    vmovaps (%rdx), %ymm5
4511 ; AVX-NEXT:    vmovaps (%rcx), %ymm7
4512 ; AVX-NEXT:    vmovaps (%r8), %ymm8
4513 ; AVX-NEXT:    vmovaps (%r9), %ymm11
4514 ; AVX-NEXT:    vmovaps (%r10), %ymm10
4515 ; AVX-NEXT:    vmovaps (%rax), %ymm12
4516 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm6 = ymm12[0],ymm10[0],ymm12[2],ymm10[2]
4517 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm9 = ymm8[0],ymm11[0],ymm8[1],ymm11[1],ymm8[4],ymm11[4],ymm8[5],ymm11[5]
4518 ; AVX-NEXT:    vshufps {{.*#+}} ymm6 = ymm9[0,1],ymm6[2,0],ymm9[4,5],ymm6[6,4]
4519 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm9 = ymm3[0],ymm4[0],ymm3[1],ymm4[1],ymm3[4],ymm4[4],ymm3[5],ymm4[5]
4520 ; AVX-NEXT:    vextractf128 $1, %ymm9, %xmm9
4521 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm13 = ymm7[0],ymm5[0],ymm7[2],ymm5[2]
4522 ; AVX-NEXT:    vshufps {{.*#+}} ymm13 = ymm13[0,1,2,0,4,5,6,4]
4523 ; AVX-NEXT:    vextractf128 $1, %ymm13, %xmm13
4524 ; AVX-NEXT:    vblendps {{.*#+}} xmm9 = xmm9[0,1],xmm13[2,3]
4525 ; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm9[0,1,2,3],ymm6[4,5,6,7]
4526 ; AVX-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4527 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm6 = ymm10[0],ymm12[0],ymm10[1],ymm12[1],ymm10[4],ymm12[4],ymm10[5],ymm12[5]
4528 ; AVX-NEXT:    vshufps {{.*#+}} ymm9 = ymm11[1,0],ymm8[1,0],ymm11[5,4],ymm8[5,4]
4529 ; AVX-NEXT:    vshufps {{.*#+}} ymm6 = ymm9[2,0],ymm6[2,3],ymm9[6,4],ymm6[6,7]
4530 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm9 = ymm5[0],ymm7[0],ymm5[1],ymm7[1],ymm5[4],ymm7[4],ymm5[5],ymm7[5]
4531 ; AVX-NEXT:    vextractf128 $1, %ymm9, %xmm9
4532 ; AVX-NEXT:    vshufps {{.*#+}} ymm13 = ymm4[1,0],ymm3[1,0],ymm4[5,4],ymm3[5,4]
4533 ; AVX-NEXT:    vshufps {{.*#+}} ymm13 = ymm13[2,0,2,3,6,4,6,7]
4534 ; AVX-NEXT:    vextractf128 $1, %ymm13, %xmm13
4535 ; AVX-NEXT:    vblendps {{.*#+}} xmm9 = xmm13[0,1],xmm9[2,3]
4536 ; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm9[0,1,2,3],ymm6[4,5,6,7]
4537 ; AVX-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4538 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm6 = ymm12[1],ymm10[1],ymm12[3],ymm10[3]
4539 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm9 = ymm8[2],ymm11[2],ymm8[3],ymm11[3],ymm8[6],ymm11[6],ymm8[7],ymm11[7]
4540 ; AVX-NEXT:    vshufps {{.*#+}} ymm9 = ymm9[0,1],ymm6[2,0],ymm9[4,5],ymm6[6,4]
4541 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm6 = ymm3[2],ymm4[2],ymm3[3],ymm4[3],ymm3[6],ymm4[6],ymm3[7],ymm4[7]
4542 ; AVX-NEXT:    vextractf128 $1, %ymm6, %xmm6
4543 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm13 = ymm7[1],ymm5[1],ymm7[3],ymm5[3]
4544 ; AVX-NEXT:    vshufps {{.*#+}} ymm13 = ymm13[0,1,2,0,4,5,6,4]
4545 ; AVX-NEXT:    vextractf128 $1, %ymm13, %xmm13
4546 ; AVX-NEXT:    vblendps {{.*#+}} xmm13 = xmm6[0,1],xmm13[2,3]
4547 ; AVX-NEXT:    vmovaps 32(%rcx), %ymm6
4548 ; AVX-NEXT:    vblendps {{.*#+}} ymm9 = ymm13[0,1,2,3],ymm9[4,5,6,7]
4549 ; AVX-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4550 ; AVX-NEXT:    vmovaps 32(%r8), %ymm9
4551 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm12 = ymm10[2],ymm12[2],ymm10[3],ymm12[3],ymm10[6],ymm12[6],ymm10[7],ymm12[7]
4552 ; AVX-NEXT:    vmovaps 32(%r9), %ymm10
4553 ; AVX-NEXT:    vshufps {{.*#+}} ymm11 = ymm11[3,0],ymm8[3,0],ymm11[7,4],ymm8[7,4]
4554 ; AVX-NEXT:    vmovaps 32(%r10), %ymm8
4555 ; AVX-NEXT:    vshufps {{.*#+}} ymm12 = ymm11[2,0],ymm12[2,3],ymm11[6,4],ymm12[6,7]
4556 ; AVX-NEXT:    vmovaps 32(%rax), %ymm11
4557 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm5 = ymm5[2],ymm7[2],ymm5[3],ymm7[3],ymm5[6],ymm7[6],ymm5[7],ymm7[7]
4558 ; AVX-NEXT:    vextractf128 $1, %ymm5, %xmm5
4559 ; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm4[3,0],ymm3[3,0],ymm4[7,4],ymm3[7,4]
4560 ; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[2,0,2,3,6,4,6,7]
4561 ; AVX-NEXT:    vextractf128 $1, %ymm3, %xmm3
4562 ; AVX-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm5[2,3]
4563 ; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm12[4,5,6,7]
4564 ; AVX-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4565 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm11[0],ymm8[0],ymm11[2],ymm8[2]
4566 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm4 = ymm9[0],ymm10[0],ymm9[1],ymm10[1],ymm9[4],ymm10[4],ymm9[5],ymm10[5]
4567 ; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm4[0,1],ymm3[2,0],ymm4[4,5],ymm3[6,4]
4568 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm4 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]
4569 ; AVX-NEXT:    vextractf128 $1, %ymm4, %xmm4
4570 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm5 = ymm6[0],ymm2[0],ymm6[2],ymm2[2]
4571 ; AVX-NEXT:    vshufps {{.*#+}} ymm5 = ymm5[0,1,2,0,4,5,6,4]
4572 ; AVX-NEXT:    vextractf128 $1, %ymm5, %xmm5
4573 ; AVX-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],xmm5[2,3]
4574 ; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
4575 ; AVX-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4576 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm3 = ymm8[0],ymm11[0],ymm8[1],ymm11[1],ymm8[4],ymm11[4],ymm8[5],ymm11[5]
4577 ; AVX-NEXT:    vshufps {{.*#+}} ymm4 = ymm10[1,0],ymm9[1,0],ymm10[5,4],ymm9[5,4]
4578 ; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm4[2,0],ymm3[2,3],ymm4[6,4],ymm3[6,7]
4579 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm4 = ymm2[0],ymm6[0],ymm2[1],ymm6[1],ymm2[4],ymm6[4],ymm2[5],ymm6[5]
4580 ; AVX-NEXT:    vextractf128 $1, %ymm4, %xmm4
4581 ; AVX-NEXT:    vshufps {{.*#+}} ymm5 = ymm1[1,0],ymm0[1,0],ymm1[5,4],ymm0[5,4]
4582 ; AVX-NEXT:    vshufps {{.*#+}} ymm5 = ymm5[2,0,2,3,6,4,6,7]
4583 ; AVX-NEXT:    vextractf128 $1, %ymm5, %xmm5
4584 ; AVX-NEXT:    vblendps {{.*#+}} xmm4 = xmm5[0,1],xmm4[2,3]
4585 ; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
4586 ; AVX-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4587 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm3 = ymm11[1],ymm8[1],ymm11[3],ymm8[3]
4588 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm4 = ymm9[2],ymm10[2],ymm9[3],ymm10[3],ymm9[6],ymm10[6],ymm9[7],ymm10[7]
4589 ; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm4[0,1],ymm3[2,0],ymm4[4,5],ymm3[6,4]
4590 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm4 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
4591 ; AVX-NEXT:    vextractf128 $1, %ymm4, %xmm4
4592 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm5 = ymm6[1],ymm2[1],ymm6[3],ymm2[3]
4593 ; AVX-NEXT:    vshufps {{.*#+}} ymm5 = ymm5[0,1,2,0,4,5,6,4]
4594 ; AVX-NEXT:    vextractf128 $1, %ymm5, %xmm5
4595 ; AVX-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],xmm5[2,3]
4596 ; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
4597 ; AVX-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4598 ; AVX-NEXT:    vmovaps 64(%rdi), %ymm3
4599 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm7 = ymm8[2],ymm11[2],ymm8[3],ymm11[3],ymm8[6],ymm11[6],ymm8[7],ymm11[7]
4600 ; AVX-NEXT:    vmovaps 64(%rsi), %ymm4
4601 ; AVX-NEXT:    vshufps {{.*#+}} ymm8 = ymm10[3,0],ymm9[3,0],ymm10[7,4],ymm9[7,4]
4602 ; AVX-NEXT:    vmovaps 64(%r8), %ymm5
4603 ; AVX-NEXT:    vshufps {{.*#+}} ymm8 = ymm8[2,0],ymm7[2,3],ymm8[6,4],ymm7[6,7]
4604 ; AVX-NEXT:    vmovaps 64(%r9), %ymm7
4605 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm6 = ymm2[2],ymm6[2],ymm2[3],ymm6[3],ymm2[6],ymm6[6],ymm2[7],ymm6[7]
4606 ; AVX-NEXT:    vmovaps 64(%r10), %ymm2
4607 ; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[3,0],ymm0[3,0],ymm1[7,4],ymm0[7,4]
4608 ; AVX-NEXT:    vmovaps 64(%rax), %ymm0
4609 ; AVX-NEXT:    vextractf128 $1, %ymm6, %xmm6
4610 ; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[2,0,2,3,6,4,6,7]
4611 ; AVX-NEXT:    vextractf128 $1, %ymm1, %xmm1
4612 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm6[2,3]
4613 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm8[4,5,6,7]
4614 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4615 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm0[0],ymm2[0],ymm0[2],ymm2[2]
4616 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm6 = ymm5[0],ymm7[0],ymm5[1],ymm7[1],ymm5[4],ymm7[4],ymm5[5],ymm7[5]
4617 ; AVX-NEXT:    vshufps {{.*#+}} ymm6 = ymm6[0,1],ymm1[2,0],ymm6[4,5],ymm1[6,4]
4618 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm3[0],ymm4[0],ymm3[1],ymm4[1],ymm3[4],ymm4[4],ymm3[5],ymm4[5]
4619 ; AVX-NEXT:    vextractf128 $1, %ymm1, %xmm8
4620 ; AVX-NEXT:    vmovaps 64(%rdx), %ymm1
4621 ; AVX-NEXT:    vmovaps 64(%rcx), %ymm9
4622 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm10 = ymm9[0],ymm1[0],ymm9[2],ymm1[2]
4623 ; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm10[0,1,2,0,4,5,6,4]
4624 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
4625 ; AVX-NEXT:    vblendps {{.*#+}} xmm8 = xmm8[0,1],xmm10[2,3]
4626 ; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm8[0,1,2,3],ymm6[4,5,6,7]
4627 ; AVX-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4628 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm6 = ymm2[0],ymm0[0],ymm2[1],ymm0[1],ymm2[4],ymm0[4],ymm2[5],ymm0[5]
4629 ; AVX-NEXT:    vshufps {{.*#+}} ymm8 = ymm7[1,0],ymm5[1,0],ymm7[5,4],ymm5[5,4]
4630 ; AVX-NEXT:    vshufps {{.*#+}} ymm6 = ymm8[2,0],ymm6[2,3],ymm8[6,4],ymm6[6,7]
4631 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm8 = ymm1[0],ymm9[0],ymm1[1],ymm9[1],ymm1[4],ymm9[4],ymm1[5],ymm9[5]
4632 ; AVX-NEXT:    vextractf128 $1, %ymm8, %xmm8
4633 ; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm4[1,0],ymm3[1,0],ymm4[5,4],ymm3[5,4]
4634 ; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm10[2,0,2,3,6,4,6,7]
4635 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
4636 ; AVX-NEXT:    vblendps {{.*#+}} xmm8 = xmm10[0,1],xmm8[2,3]
4637 ; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm8[0,1,2,3],ymm6[4,5,6,7]
4638 ; AVX-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4639 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm6 = ymm0[1],ymm2[1],ymm0[3],ymm2[3]
4640 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm8 = ymm5[2],ymm7[2],ymm5[3],ymm7[3],ymm5[6],ymm7[6],ymm5[7],ymm7[7]
4641 ; AVX-NEXT:    vshufps {{.*#+}} ymm6 = ymm8[0,1],ymm6[2,0],ymm8[4,5],ymm6[6,4]
4642 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm8 = ymm3[2],ymm4[2],ymm3[3],ymm4[3],ymm3[6],ymm4[6],ymm3[7],ymm4[7]
4643 ; AVX-NEXT:    vextractf128 $1, %ymm8, %xmm8
4644 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm10 = ymm9[1],ymm1[1],ymm9[3],ymm1[3]
4645 ; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm10[0,1,2,0,4,5,6,4]
4646 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
4647 ; AVX-NEXT:    vblendps {{.*#+}} xmm8 = xmm8[0,1],xmm10[2,3]
4648 ; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm8[0,1,2,3],ymm6[4,5,6,7]
4649 ; AVX-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4650 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm0 = ymm2[2],ymm0[2],ymm2[3],ymm0[3],ymm2[6],ymm0[6],ymm2[7],ymm0[7]
4651 ; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm7[3,0],ymm5[3,0],ymm7[7,4],ymm5[7,4]
4652 ; AVX-NEXT:    vshufps {{.*#+}} ymm5 = ymm2[2,0],ymm0[2,3],ymm2[6,4],ymm0[6,7]
4653 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm1[2],ymm9[2],ymm1[3],ymm9[3],ymm1[6],ymm9[6],ymm1[7],ymm9[7]
4654 ; AVX-NEXT:    vmovaps 96(%r8), %ymm0
4655 ; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm4[3,0],ymm3[3,0],ymm4[7,4],ymm3[7,4]
4656 ; AVX-NEXT:    vmovaps 96(%r9), %ymm1
4657 ; AVX-NEXT:    vextractf128 $1, %ymm2, %xmm2
4658 ; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[2,0,2,3,6,4,6,7]
4659 ; AVX-NEXT:    vextractf128 $1, %ymm3, %xmm3
4660 ; AVX-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm2[2,3]
4661 ; AVX-NEXT:    vmovaps 96(%r10), %ymm2
4662 ; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm5[4,5,6,7]
4663 ; AVX-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4664 ; AVX-NEXT:    vmovaps 96(%rax), %ymm5
4665 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm5[0],ymm2[0],ymm5[2],ymm2[2]
4666 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm4 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]
4667 ; AVX-NEXT:    vshufps {{.*#+}} ymm7 = ymm4[0,1],ymm3[2,0],ymm4[4,5],ymm3[6,4]
4668 ; AVX-NEXT:    vmovaps 96(%rdi), %ymm3
4669 ; AVX-NEXT:    vmovaps 96(%rsi), %ymm4
4670 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm6 = ymm3[0],ymm4[0],ymm3[1],ymm4[1],ymm3[4],ymm4[4],ymm3[5],ymm4[5]
4671 ; AVX-NEXT:    vextractf128 $1, %ymm6, %xmm8
4672 ; AVX-NEXT:    vmovaps 96(%rdx), %ymm6
4673 ; AVX-NEXT:    vmovaps 96(%rcx), %ymm9
4674 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm10 = ymm9[0],ymm6[0],ymm9[2],ymm6[2]
4675 ; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm10[0,1,2,0,4,5,6,4]
4676 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
4677 ; AVX-NEXT:    vblendps {{.*#+}} xmm8 = xmm8[0,1],xmm10[2,3]
4678 ; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]
4679 ; AVX-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4680 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm7 = ymm2[0],ymm5[0],ymm2[1],ymm5[1],ymm2[4],ymm5[4],ymm2[5],ymm5[5]
4681 ; AVX-NEXT:    vshufps {{.*#+}} ymm8 = ymm1[1,0],ymm0[1,0],ymm1[5,4],ymm0[5,4]
4682 ; AVX-NEXT:    vshufps {{.*#+}} ymm7 = ymm8[2,0],ymm7[2,3],ymm8[6,4],ymm7[6,7]
4683 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm8 = ymm6[0],ymm9[0],ymm6[1],ymm9[1],ymm6[4],ymm9[4],ymm6[5],ymm9[5]
4684 ; AVX-NEXT:    vextractf128 $1, %ymm8, %xmm8
4685 ; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm4[1,0],ymm3[1,0],ymm4[5,4],ymm3[5,4]
4686 ; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm10[2,0,2,3,6,4,6,7]
4687 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
4688 ; AVX-NEXT:    vblendps {{.*#+}} xmm8 = xmm10[0,1],xmm8[2,3]
4689 ; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]
4690 ; AVX-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4691 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm7 = ymm5[1],ymm2[1],ymm5[3],ymm2[3]
4692 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm8 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
4693 ; AVX-NEXT:    vshufps {{.*#+}} ymm7 = ymm8[0,1],ymm7[2,0],ymm8[4,5],ymm7[6,4]
4694 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm8 = ymm3[2],ymm4[2],ymm3[3],ymm4[3],ymm3[6],ymm4[6],ymm3[7],ymm4[7]
4695 ; AVX-NEXT:    vextractf128 $1, %ymm8, %xmm8
4696 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm10 = ymm9[1],ymm6[1],ymm9[3],ymm6[3]
4697 ; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm10[0,1,2,0,4,5,6,4]
4698 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
4699 ; AVX-NEXT:    vblendps {{.*#+}} xmm8 = xmm8[0,1],xmm10[2,3]
4700 ; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]
4701 ; AVX-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4702 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm2[2],ymm5[2],ymm2[3],ymm5[3],ymm2[6],ymm5[6],ymm2[7],ymm5[7]
4703 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[3,0],ymm0[3,0],ymm1[7,4],ymm0[7,4]
4704 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm2[2,3],ymm0[6,4],ymm2[6,7]
4705 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm6[2],ymm9[2],ymm6[3],ymm9[3],ymm6[6],ymm9[6],ymm6[7],ymm9[7]
4706 ; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm4[3,0],ymm3[3,0],ymm4[7,4],ymm3[7,4]
4707 ; AVX-NEXT:    vextractf128 $1, %ymm1, %xmm1
4708 ; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[2,0,2,3,6,4,6,7]
4709 ; AVX-NEXT:    vextractf128 $1, %ymm2, %xmm2
4710 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
4711 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
4712 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4713 ; AVX-NEXT:    vmovaps (%r9), %xmm2
4714 ; AVX-NEXT:    vmovaps (%r8), %xmm3
4715 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
4716 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm4
4717 ; AVX-NEXT:    vmovaps (%rax), %xmm0
4718 ; AVX-NEXT:    vmovaps (%r10), %xmm1
4719 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm6 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
4720 ; AVX-NEXT:    vshufps {{.*#+}} xmm5 = xmm6[0,1,0,1]
4721 ; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
4722 ; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm4[0,1,2,3,4,5],ymm5[6,7]
4723 ; AVX-NEXT:    vmovaps (%rcx), %xmm4
4724 ; AVX-NEXT:    vmovaps (%rdx), %xmm5
4725 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm8 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
4726 ; AVX-NEXT:    vmovaps (%rsi), %xmm9
4727 ; AVX-NEXT:    vmovaps (%rdi), %xmm10
4728 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm11 = xmm10[0],xmm9[0],xmm10[1],xmm9[1]
4729 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm11 = xmm11[0],xmm8[0]
4730 ; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm11[0,1,2,3],ymm7[4,5,6,7]
4731 ; AVX-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4732 ; AVX-NEXT:    vshufps {{.*#+}} xmm7 = xmm10[1,1,1,1]
4733 ; AVX-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0],xmm9[1],xmm7[2,3]
4734 ; AVX-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0,1],xmm8[2,3]
4735 ; AVX-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
4736 ; AVX-NEXT:    vshufps {{.*#+}} xmm8 = xmm3[1,1,1,1]
4737 ; AVX-NEXT:    vblendps {{.*#+}} xmm8 = xmm8[0],xmm2[1],xmm8[2,3]
4738 ; AVX-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm8
4739 ; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm8[0,1,2,3,4,5],ymm6[6,7]
4740 ; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]
4741 ; AVX-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4742 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm6 = xmm10[2],xmm9[2],xmm10[3],xmm9[3]
4743 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm3[2],xmm2[2],xmm3[3],xmm2[3]
4744 ; AVX-NEXT:    vshufps {{.*#+}} xmm3 = xmm0[2,2,2,2]
4745 ; AVX-NEXT:    vblendps {{.*#+}} xmm3 = xmm1[0,1,2],xmm3[3]
4746 ; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
4747 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm7
4748 ; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm7[0,1,2,3,4,5],ymm3[6,7]
4749 ; AVX-NEXT:    vshufps {{.*#+}} xmm7 = xmm4[2,2,2,2]
4750 ; AVX-NEXT:    vblendps {{.*#+}} xmm7 = xmm5[0,1,2],xmm7[3]
4751 ; AVX-NEXT:    vblendps {{.*#+}} xmm7 = xmm6[0,1],xmm7[2,3]
4752 ; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm7[0,1,2,3],ymm3[4,5,6,7]
4753 ; AVX-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4754 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm3 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
4755 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm3 = xmm6[1],xmm3[1]
4756 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
4757 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
4758 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm2[2,3,2,3]
4759 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
4760 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
4761 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm0[4,5,6,7]
4762 ; AVX-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
4763 ; AVX-NEXT:    vmovaps 32(%r9), %xmm4
4764 ; AVX-NEXT:    vmovaps 32(%r8), %xmm5
4765 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
4766 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm2
4767 ; AVX-NEXT:    vmovaps 32(%rax), %xmm0
4768 ; AVX-NEXT:    vmovaps 32(%r10), %xmm1
4769 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm6 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
4770 ; AVX-NEXT:    vshufps {{.*#+}} xmm3 = xmm6[0,1,0,1]
4771 ; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
4772 ; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm2[0,1,2,3,4,5],ymm3[6,7]
4773 ; AVX-NEXT:    vmovaps 32(%rcx), %xmm2
4774 ; AVX-NEXT:    vmovaps 32(%rdx), %xmm3
4775 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm8 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
4776 ; AVX-NEXT:    vmovaps 32(%rsi), %xmm9
4777 ; AVX-NEXT:    vmovaps 32(%rdi), %xmm10
4778 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm11 = xmm10[0],xmm9[0],xmm10[1],xmm9[1]
4779 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm11 = xmm11[0],xmm8[0]
4780 ; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm11[0,1,2,3],ymm7[4,5,6,7]
4781 ; AVX-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4782 ; AVX-NEXT:    vshufps {{.*#+}} xmm7 = xmm10[1,1,1,1]
4783 ; AVX-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0],xmm9[1],xmm7[2,3]
4784 ; AVX-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0,1],xmm8[2,3]
4785 ; AVX-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
4786 ; AVX-NEXT:    vshufps {{.*#+}} xmm8 = xmm5[1,1,1,1]
4787 ; AVX-NEXT:    vblendps {{.*#+}} xmm8 = xmm8[0],xmm4[1],xmm8[2,3]
4788 ; AVX-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm8
4789 ; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm8[0,1,2,3,4,5],ymm6[6,7]
4790 ; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]
4791 ; AVX-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4792 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm6 = xmm10[2],xmm9[2],xmm10[3],xmm9[3]
4793 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
4794 ; AVX-NEXT:    vshufps {{.*#+}} xmm5 = xmm0[2,2,2,2]
4795 ; AVX-NEXT:    vblendps {{.*#+}} xmm5 = xmm1[0,1,2],xmm5[3]
4796 ; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
4797 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm7
4798 ; AVX-NEXT:    vblendps {{.*#+}} ymm5 = ymm7[0,1,2,3,4,5],ymm5[6,7]
4799 ; AVX-NEXT:    vshufps {{.*#+}} xmm7 = xmm2[2,2,2,2]
4800 ; AVX-NEXT:    vblendps {{.*#+}} xmm7 = xmm3[0,1,2],xmm7[3]
4801 ; AVX-NEXT:    vblendps {{.*#+}} xmm7 = xmm6[0,1],xmm7[2,3]
4802 ; AVX-NEXT:    vblendps {{.*#+}} ymm5 = ymm7[0,1,2,3],ymm5[4,5,6,7]
4803 ; AVX-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4804 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm3[2],xmm2[2],xmm3[3],xmm2[3]
4805 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm2 = xmm6[1],xmm2[1]
4806 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
4807 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
4808 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm4[2,3,2,3]
4809 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
4810 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
4811 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
4812 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4813 ; AVX-NEXT:    vmovaps 64(%r9), %xmm4
4814 ; AVX-NEXT:    vmovaps 64(%r8), %xmm5
4815 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
4816 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm2
4817 ; AVX-NEXT:    vmovaps 64(%rax), %xmm9
4818 ; AVX-NEXT:    vmovaps 64(%r10), %xmm1
4819 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm6 = xmm1[0],xmm9[0],xmm1[1],xmm9[1]
4820 ; AVX-NEXT:    vshufps {{.*#+}} xmm3 = xmm6[0,1,0,1]
4821 ; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
4822 ; AVX-NEXT:    vblendps {{.*#+}} ymm10 = ymm2[0,1,2,3,4,5],ymm3[6,7]
4823 ; AVX-NEXT:    vmovaps 64(%rcx), %xmm2
4824 ; AVX-NEXT:    vmovaps 64(%rdx), %xmm3
4825 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm8 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
4826 ; AVX-NEXT:    vmovaps 64(%rsi), %xmm0
4827 ; AVX-NEXT:    vmovaps 64(%rdi), %xmm7
4828 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm15 = xmm7[0],xmm0[0],xmm7[1],xmm0[1]
4829 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm15 = xmm15[0],xmm8[0]
4830 ; AVX-NEXT:    vblendps {{.*#+}} ymm13 = ymm15[0,1,2,3],ymm10[4,5,6,7]
4831 ; AVX-NEXT:    vshufps {{.*#+}} xmm15 = xmm7[1,1,1,1]
4832 ; AVX-NEXT:    vblendps {{.*#+}} xmm15 = xmm15[0],xmm0[1],xmm15[2,3]
4833 ; AVX-NEXT:    vblendps {{.*#+}} xmm8 = xmm15[0,1],xmm8[2,3]
4834 ; AVX-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
4835 ; AVX-NEXT:    vshufps {{.*#+}} xmm15 = xmm5[1,1,1,1]
4836 ; AVX-NEXT:    vblendps {{.*#+}} xmm15 = xmm15[0],xmm4[1],xmm15[2,3]
4837 ; AVX-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm15
4838 ; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm15[0,1,2,3,4,5],ymm6[6,7]
4839 ; AVX-NEXT:    vblendps {{.*#+}} ymm12 = ymm8[0,1,2,3],ymm6[4,5,6,7]
4840 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm7[2],xmm0[2],xmm7[3],xmm0[3]
4841 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
4842 ; AVX-NEXT:    vshufps {{.*#+}} xmm5 = xmm9[2,2,2,2]
4843 ; AVX-NEXT:    vblendps {{.*#+}} xmm5 = xmm1[0,1,2],xmm5[3]
4844 ; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
4845 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm6
4846 ; AVX-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2,3,4,5],ymm5[6,7]
4847 ; AVX-NEXT:    vshufps {{.*#+}} xmm6 = xmm2[2,2,2,2]
4848 ; AVX-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1,2],xmm6[3]
4849 ; AVX-NEXT:    vblendps {{.*#+}} xmm6 = xmm0[0,1],xmm6[2,3]
4850 ; AVX-NEXT:    vblendps {{.*#+}} ymm11 = ymm6[0,1,2,3],ymm5[4,5,6,7]
4851 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm3[2],xmm2[2],xmm3[3],xmm2[3]
4852 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
4853 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm1[2],xmm9[2],xmm1[3],xmm9[3]
4854 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
4855 ; AVX-NEXT:    vshufps {{.*#+}} xmm2 = xmm4[2,3,2,3]
4856 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
4857 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
4858 ; AVX-NEXT:    vblendps {{.*#+}} ymm10 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4859 ; AVX-NEXT:    vmovaps 96(%r9), %xmm3
4860 ; AVX-NEXT:    vmovaps 96(%r8), %xmm9
4861 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm9[0],xmm3[0],xmm9[1],xmm3[1]
4862 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
4863 ; AVX-NEXT:    vmovaps 96(%rax), %xmm7
4864 ; AVX-NEXT:    vmovaps 96(%r10), %xmm6
4865 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm15 = xmm6[0],xmm7[0],xmm6[1],xmm7[1]
4866 ; AVX-NEXT:    vshufps {{.*#+}} xmm2 = xmm15[0,1,0,1]
4867 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
4868 ; AVX-NEXT:    vblendps {{.*#+}} ymm8 = ymm0[0,1,2,3,4,5],ymm2[6,7]
4869 ; AVX-NEXT:    vmovaps 96(%rcx), %xmm5
4870 ; AVX-NEXT:    vmovaps 96(%rdx), %xmm4
4871 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm4[0],xmm5[0],xmm4[1],xmm5[1]
4872 ; AVX-NEXT:    vmovaps 96(%rsi), %xmm1
4873 ; AVX-NEXT:    vmovaps 96(%rdi), %xmm0
4874 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm14 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
4875 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm14 = xmm14[0],xmm2[0]
4876 ; AVX-NEXT:    vblendps {{.*#+}} ymm8 = ymm14[0,1,2,3],ymm8[4,5,6,7]
4877 ; AVX-NEXT:    vshufps {{.*#+}} xmm14 = xmm0[1,1,1,1]
4878 ; AVX-NEXT:    vblendps {{.*#+}} xmm14 = xmm14[0],xmm1[1],xmm14[2,3]
4879 ; AVX-NEXT:    vblendps {{.*#+}} xmm2 = xmm14[0,1],xmm2[2,3]
4880 ; AVX-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm14
4881 ; AVX-NEXT:    vshufps {{.*#+}} xmm15 = xmm9[1,1,1,1]
4882 ; AVX-NEXT:    vblendps {{.*#+}} xmm15 = xmm15[0],xmm3[1],xmm15[2,3]
4883 ; AVX-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm15
4884 ; AVX-NEXT:    vblendps {{.*#+}} ymm14 = ymm15[0,1,2,3,4,5],ymm14[6,7]
4885 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm14[4,5,6,7]
4886 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]
4887 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm9[2],xmm3[2],xmm9[3],xmm3[3]
4888 ; AVX-NEXT:    vshufps {{.*#+}} xmm3 = xmm7[2,2,2,2]
4889 ; AVX-NEXT:    vblendps {{.*#+}} xmm3 = xmm6[0,1,2],xmm3[3]
4890 ; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
4891 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm9
4892 ; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm9[0,1,2,3,4,5],ymm3[6,7]
4893 ; AVX-NEXT:    vshufps {{.*#+}} xmm9 = xmm5[2,2,2,2]
4894 ; AVX-NEXT:    vblendps {{.*#+}} xmm9 = xmm4[0,1,2],xmm9[3]
4895 ; AVX-NEXT:    vblendps {{.*#+}} xmm9 = xmm0[0,1],xmm9[2,3]
4896 ; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm9[0,1,2,3],ymm3[4,5,6,7]
4897 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm4[2],xmm5[2],xmm4[3],xmm5[3]
4898 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm4[1]
4899 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm6[2],xmm7[2],xmm6[3],xmm7[3]
4900 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
4901 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[2,3,2,3]
4902 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
4903 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm4[6,7]
4904 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4905 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax
4906 ; AVX-NEXT:    vmovaps %ymm0, 864(%rax)
4907 ; AVX-NEXT:    vmovaps %ymm3, 832(%rax)
4908 ; AVX-NEXT:    vmovaps %ymm2, 800(%rax)
4909 ; AVX-NEXT:    vmovaps %ymm8, 768(%rax)
4910 ; AVX-NEXT:    vmovaps %ymm10, 608(%rax)
4911 ; AVX-NEXT:    vmovaps %ymm11, 576(%rax)
4912 ; AVX-NEXT:    vmovaps %ymm12, 544(%rax)
4913 ; AVX-NEXT:    vmovaps %ymm13, 512(%rax)
4914 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4915 ; AVX-NEXT:    vmovaps %ymm0, 352(%rax)
4916 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4917 ; AVX-NEXT:    vmovaps %ymm0, 320(%rax)
4918 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4919 ; AVX-NEXT:    vmovaps %ymm0, 288(%rax)
4920 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4921 ; AVX-NEXT:    vmovaps %ymm0, 256(%rax)
4922 ; AVX-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
4923 ; AVX-NEXT:    vmovaps %ymm0, 96(%rax)
4924 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4925 ; AVX-NEXT:    vmovaps %ymm0, 64(%rax)
4926 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4927 ; AVX-NEXT:    vmovaps %ymm0, 32(%rax)
4928 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4929 ; AVX-NEXT:    vmovaps %ymm0, (%rax)
4930 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4931 ; AVX-NEXT:    vmovaps %ymm0, 992(%rax)
4932 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4933 ; AVX-NEXT:    vmovaps %ymm0, 960(%rax)
4934 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4935 ; AVX-NEXT:    vmovaps %ymm0, 928(%rax)
4936 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4937 ; AVX-NEXT:    vmovaps %ymm0, 896(%rax)
4938 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4939 ; AVX-NEXT:    vmovaps %ymm0, 736(%rax)
4940 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4941 ; AVX-NEXT:    vmovaps %ymm0, 704(%rax)
4942 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4943 ; AVX-NEXT:    vmovaps %ymm0, 672(%rax)
4944 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4945 ; AVX-NEXT:    vmovaps %ymm0, 640(%rax)
4946 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4947 ; AVX-NEXT:    vmovaps %ymm0, 480(%rax)
4948 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4949 ; AVX-NEXT:    vmovaps %ymm0, 448(%rax)
4950 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4951 ; AVX-NEXT:    vmovaps %ymm0, 416(%rax)
4952 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4953 ; AVX-NEXT:    vmovaps %ymm0, 384(%rax)
4954 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4955 ; AVX-NEXT:    vmovaps %ymm0, 224(%rax)
4956 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4957 ; AVX-NEXT:    vmovaps %ymm0, 192(%rax)
4958 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4959 ; AVX-NEXT:    vmovaps %ymm0, 160(%rax)
4960 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4961 ; AVX-NEXT:    vmovaps %ymm0, 128(%rax)
4962 ; AVX-NEXT:    addq $648, %rsp # imm = 0x288
4963 ; AVX-NEXT:    vzeroupper
4964 ; AVX-NEXT:    retq
4966 ; AVX2-LABEL: store_i32_stride8_vf32:
4967 ; AVX2:       # %bb.0:
4968 ; AVX2-NEXT:    subq $648, %rsp # imm = 0x288
4969 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %r10
4970 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rax
4971 ; AVX2-NEXT:    vmovaps 32(%rdi), %ymm0
4972 ; AVX2-NEXT:    vmovaps (%rdi), %ymm4
4973 ; AVX2-NEXT:    vmovaps 32(%rsi), %ymm1
4974 ; AVX2-NEXT:    vmovaps (%rsi), %ymm5
4975 ; AVX2-NEXT:    vmovaps 32(%rdx), %ymm2
4976 ; AVX2-NEXT:    vmovaps (%rdx), %ymm7
4977 ; AVX2-NEXT:    vmovaps 32(%rcx), %ymm3
4978 ; AVX2-NEXT:    vmovaps (%rcx), %ymm9
4979 ; AVX2-NEXT:    vmovaps (%r8), %ymm10
4980 ; AVX2-NEXT:    vmovaps (%r9), %ymm12
4981 ; AVX2-NEXT:    vmovaps (%rax), %ymm8
4982 ; AVX2-NEXT:    vmovaps (%r10), %ymm11
4983 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm6 = ymm8[0],ymm11[0],ymm8[1],ymm11[1],ymm8[4],ymm11[4],ymm8[5],ymm11[5]
4984 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm13 = ymm4[0],ymm5[0],ymm4[1],ymm5[1],ymm4[4],ymm5[4],ymm4[5],ymm5[5]
4985 ; AVX2-NEXT:    vextractf128 $1, %ymm13, %xmm13
4986 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm14 = ymm7[0],ymm9[0],ymm7[1],ymm9[1],ymm7[4],ymm9[4],ymm7[5],ymm9[5]
4987 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm15 = ymm14[2,2,2,2]
4988 ; AVX2-NEXT:    vblendps {{.*#+}} xmm13 = xmm13[0,1],xmm15[2,3]
4989 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm15 = ymm10[0],ymm12[0],ymm10[1],ymm12[1],ymm10[4],ymm12[4],ymm10[5],ymm12[5]
4990 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm15 = ymm15[0],ymm6[0],ymm15[2],ymm6[2]
4991 ; AVX2-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1,2,3],ymm15[4,5,6,7]
4992 ; AVX2-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4993 ; AVX2-NEXT:    vbroadcastss 20(%r8), %ymm13
4994 ; AVX2-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1,2,3,4],ymm12[5],ymm13[6,7]
4995 ; AVX2-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1,2,3,4,5],ymm6[6,7]
4996 ; AVX2-NEXT:    vextractf128 $1, %ymm14, %xmm6
4997 ; AVX2-NEXT:    vshufps {{.*#+}} ymm14 = ymm4[1,1,1,1,5,5,5,5]
4998 ; AVX2-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0],ymm5[1],ymm14[2,3,4],ymm5[5],ymm14[6,7]
4999 ; AVX2-NEXT:    vextractf128 $1, %ymm14, %xmm14
5000 ; AVX2-NEXT:    vblendps {{.*#+}} xmm14 = xmm14[0,1],xmm6[2,3]
5001 ; AVX2-NEXT:    vmovaps 32(%r8), %ymm6
5002 ; AVX2-NEXT:    vblendps {{.*#+}} ymm13 = ymm14[0,1,2,3],ymm13[4,5,6,7]
5003 ; AVX2-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5004 ; AVX2-NEXT:    vbroadcastss 24(%r10), %ymm13
5005 ; AVX2-NEXT:    vblendps {{.*#+}} ymm13 = ymm8[0,1,2,3,4,5,6],ymm13[7]
5006 ; AVX2-NEXT:    vmovaps 32(%r9), %ymm8
5007 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm12 = ymm10[2],ymm12[2],ymm10[3],ymm12[3],ymm10[6],ymm12[6],ymm10[7],ymm12[7]
5008 ; AVX2-NEXT:    vmovaps 32(%rax), %ymm10
5009 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm4 = ymm4[2],ymm5[2],ymm4[3],ymm5[3],ymm4[6],ymm5[6],ymm4[7],ymm5[7]
5010 ; AVX2-NEXT:    vextractf128 $1, %ymm4, %xmm5
5011 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm9 = ymm7[2],ymm9[2],ymm7[3],ymm9[3],ymm7[6],ymm9[6],ymm7[7],ymm9[7]
5012 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm7 = ymm9[2,2,2,2]
5013 ; AVX2-NEXT:    vblendps {{.*#+}} xmm5 = xmm5[0,1],xmm7[2,3]
5014 ; AVX2-NEXT:    vmovaps 32(%r10), %ymm7
5015 ; AVX2-NEXT:    vblendps {{.*#+}} ymm13 = ymm12[0,1,2,3,4,5],ymm13[6,7]
5016 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm13[4,5,6,7]
5017 ; AVX2-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5018 ; AVX2-NEXT:    vbroadcastss 28(%rax), %ymm5
5019 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm5 = ymm5[2],ymm11[2],ymm5[3],ymm11[3],ymm5[6],ymm11[6],ymm5[7],ymm11[7]
5020 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm5 = ymm12[1],ymm5[1],ymm12[3],ymm5[3]
5021 ; AVX2-NEXT:    vextractf128 $1, %ymm9, %xmm9
5022 ; AVX2-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[2,3,2,3,6,7,6,7]
5023 ; AVX2-NEXT:    vextractf128 $1, %ymm4, %xmm4
5024 ; AVX2-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],xmm9[2,3]
5025 ; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm5[4,5,6,7]
5026 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5027 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm4 = ymm10[0],ymm7[0],ymm10[1],ymm7[1],ymm10[4],ymm7[4],ymm10[5],ymm7[5]
5028 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]
5029 ; AVX2-NEXT:    vextractf128 $1, %ymm5, %xmm5
5030 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm9 = ymm2[0],ymm3[0],ymm2[1],ymm3[1],ymm2[4],ymm3[4],ymm2[5],ymm3[5]
5031 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm11 = ymm9[2,2,2,2]
5032 ; AVX2-NEXT:    vblendps {{.*#+}} xmm5 = xmm5[0,1],xmm11[2,3]
5033 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm11 = ymm6[0],ymm8[0],ymm6[1],ymm8[1],ymm6[4],ymm8[4],ymm6[5],ymm8[5]
5034 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm11 = ymm11[0],ymm4[0],ymm11[2],ymm4[2]
5035 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm11[4,5,6,7]
5036 ; AVX2-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5037 ; AVX2-NEXT:    vbroadcastss 52(%r8), %ymm5
5038 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4],ymm8[5],ymm5[6,7]
5039 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],ymm4[6,7]
5040 ; AVX2-NEXT:    vextractf128 $1, %ymm9, %xmm4
5041 ; AVX2-NEXT:    vshufps {{.*#+}} ymm9 = ymm0[1,1,1,1,5,5,5,5]
5042 ; AVX2-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0],ymm1[1],ymm9[2,3,4],ymm1[5],ymm9[6,7]
5043 ; AVX2-NEXT:    vextractf128 $1, %ymm9, %xmm9
5044 ; AVX2-NEXT:    vblendps {{.*#+}} xmm9 = xmm9[0,1],xmm4[2,3]
5045 ; AVX2-NEXT:    vmovaps 64(%rdi), %ymm4
5046 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm9[0,1,2,3],ymm5[4,5,6,7]
5047 ; AVX2-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5048 ; AVX2-NEXT:    vbroadcastss 56(%r10), %ymm5
5049 ; AVX2-NEXT:    vblendps {{.*#+}} ymm9 = ymm10[0,1,2,3,4,5,6],ymm5[7]
5050 ; AVX2-NEXT:    vmovaps 64(%rsi), %ymm5
5051 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm8 = ymm6[2],ymm8[2],ymm6[3],ymm8[3],ymm6[6],ymm8[6],ymm6[7],ymm8[7]
5052 ; AVX2-NEXT:    vmovaps 64(%rdx), %ymm6
5053 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm10 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
5054 ; AVX2-NEXT:    vextractf128 $1, %ymm10, %xmm0
5055 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm2[2],ymm3[2],ymm2[3],ymm3[3],ymm2[6],ymm3[6],ymm2[7],ymm3[7]
5056 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm2[2,2,2,2]
5057 ; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm0[0,1],xmm1[2,3]
5058 ; AVX2-NEXT:    vmovaps 64(%rcx), %ymm0
5059 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm8[0,1,2,3,4,5],ymm9[6,7]
5060 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
5061 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5062 ; AVX2-NEXT:    vbroadcastss 60(%rax), %ymm1
5063 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm3 = ymm1[2],ymm7[2],ymm1[3],ymm7[3],ymm1[6],ymm7[6],ymm1[7],ymm7[7]
5064 ; AVX2-NEXT:    vmovaps 64(%r8), %ymm1
5065 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm3 = ymm8[1],ymm3[1],ymm8[3],ymm3[3]
5066 ; AVX2-NEXT:    vextractf128 $1, %ymm2, %xmm2
5067 ; AVX2-NEXT:    vshufps {{.*#+}} ymm7 = ymm10[2,3,2,3,6,7,6,7]
5068 ; AVX2-NEXT:    vextractf128 $1, %ymm7, %xmm7
5069 ; AVX2-NEXT:    vblendps {{.*#+}} xmm2 = xmm7[0,1],xmm2[2,3]
5070 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
5071 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5072 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm2 = ymm4[0],ymm5[0],ymm4[1],ymm5[1],ymm4[4],ymm5[4],ymm4[5],ymm5[5]
5073 ; AVX2-NEXT:    vextractf128 $1, %ymm2, %xmm2
5074 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm3 = ymm6[0],ymm0[0],ymm6[1],ymm0[1],ymm6[4],ymm0[4],ymm6[5],ymm0[5]
5075 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm7 = ymm3[2,2,2,2]
5076 ; AVX2-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm7[2,3]
5077 ; AVX2-NEXT:    vmovaps 64(%r9), %ymm7
5078 ; AVX2-NEXT:    vmovaps 64(%rax), %ymm8
5079 ; AVX2-NEXT:    vmovaps 64(%r10), %ymm9
5080 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm10 = ymm8[0],ymm9[0],ymm8[1],ymm9[1],ymm8[4],ymm9[4],ymm8[5],ymm9[5]
5081 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm11 = ymm1[0],ymm7[0],ymm1[1],ymm7[1],ymm1[4],ymm7[4],ymm1[5],ymm7[5]
5082 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm11 = ymm11[0],ymm10[0],ymm11[2],ymm10[2]
5083 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm11[4,5,6,7]
5084 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5085 ; AVX2-NEXT:    vbroadcastss 84(%r8), %ymm2
5086 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm7[5],ymm2[6,7]
5087 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm10[6,7]
5088 ; AVX2-NEXT:    vextractf128 $1, %ymm3, %xmm3
5089 ; AVX2-NEXT:    vshufps {{.*#+}} ymm10 = ymm4[1,1,1,1,5,5,5,5]
5090 ; AVX2-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0],ymm5[1],ymm10[2,3,4],ymm5[5],ymm10[6,7]
5091 ; AVX2-NEXT:    vextractf128 $1, %ymm10, %xmm10
5092 ; AVX2-NEXT:    vblendps {{.*#+}} xmm3 = xmm10[0,1],xmm3[2,3]
5093 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
5094 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5095 ; AVX2-NEXT:    vbroadcastss 88(%r10), %ymm2
5096 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm8[0,1,2,3,4,5,6],ymm2[7]
5097 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm1[2],ymm7[2],ymm1[3],ymm7[3],ymm1[6],ymm7[6],ymm1[7],ymm7[7]
5098 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm3 = ymm4[2],ymm5[2],ymm4[3],ymm5[3],ymm4[6],ymm5[6],ymm4[7],ymm5[7]
5099 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm4 = ymm6[2],ymm0[2],ymm6[3],ymm0[3],ymm6[6],ymm0[6],ymm6[7],ymm0[7]
5100 ; AVX2-NEXT:    vextractf128 $1, %ymm3, %xmm0
5101 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm5 = ymm4[2,2,2,2]
5102 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm5[2,3]
5103 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm1[0,1,2,3,4,5],ymm2[6,7]
5104 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
5105 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5106 ; AVX2-NEXT:    vbroadcastss 92(%rax), %ymm0
5107 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm0[2],ymm9[2],ymm0[3],ymm9[3],ymm0[6],ymm9[6],ymm0[7],ymm9[7]
5108 ; AVX2-NEXT:    vmovaps 96(%rdi), %ymm0
5109 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm5 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
5110 ; AVX2-NEXT:    vmovaps 96(%rsi), %ymm1
5111 ; AVX2-NEXT:    vextractf128 $1, %ymm4, %xmm2
5112 ; AVX2-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[2,3,2,3,6,7,6,7]
5113 ; AVX2-NEXT:    vextractf128 $1, %ymm3, %xmm3
5114 ; AVX2-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm2[2,3]
5115 ; AVX2-NEXT:    vmovaps 96(%rdx), %ymm2
5116 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm5[4,5,6,7]
5117 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5118 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm3 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]
5119 ; AVX2-NEXT:    vextractf128 $1, %ymm3, %xmm3
5120 ; AVX2-NEXT:    vmovaps 96(%rcx), %ymm4
5121 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm5 = ymm2[0],ymm4[0],ymm2[1],ymm4[1],ymm2[4],ymm4[4],ymm2[5],ymm4[5]
5122 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm6 = ymm5[2,2,2,2]
5123 ; AVX2-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm6[2,3]
5124 ; AVX2-NEXT:    vmovaps 96(%r8), %ymm6
5125 ; AVX2-NEXT:    vmovaps 96(%r9), %ymm7
5126 ; AVX2-NEXT:    vmovaps 96(%rax), %ymm8
5127 ; AVX2-NEXT:    vmovaps 96(%r10), %ymm9
5128 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm10 = ymm8[0],ymm9[0],ymm8[1],ymm9[1],ymm8[4],ymm9[4],ymm8[5],ymm9[5]
5129 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm11 = ymm6[0],ymm7[0],ymm6[1],ymm7[1],ymm6[4],ymm7[4],ymm6[5],ymm7[5]
5130 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm11 = ymm11[0],ymm10[0],ymm11[2],ymm10[2]
5131 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm11[4,5,6,7]
5132 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5133 ; AVX2-NEXT:    vbroadcastss 116(%r8), %ymm3
5134 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4],ymm7[5],ymm3[6,7]
5135 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm10[6,7]
5136 ; AVX2-NEXT:    vextractf128 $1, %ymm5, %xmm5
5137 ; AVX2-NEXT:    vshufps {{.*#+}} ymm10 = ymm0[1,1,1,1,5,5,5,5]
5138 ; AVX2-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0],ymm1[1],ymm10[2,3,4],ymm1[5],ymm10[6,7]
5139 ; AVX2-NEXT:    vextractf128 $1, %ymm10, %xmm10
5140 ; AVX2-NEXT:    vblendps {{.*#+}} xmm5 = xmm10[0,1],xmm5[2,3]
5141 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm5[0,1,2,3],ymm3[4,5,6,7]
5142 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5143 ; AVX2-NEXT:    vbroadcastss 120(%r10), %ymm3
5144 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm8[0,1,2,3,4,5,6],ymm3[7]
5145 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm5 = ymm6[2],ymm7[2],ymm6[3],ymm7[3],ymm6[6],ymm7[6],ymm6[7],ymm7[7]
5146 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm0 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
5147 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm2[2],ymm4[2],ymm2[3],ymm4[3],ymm2[6],ymm4[6],ymm2[7],ymm4[7]
5148 ; AVX2-NEXT:    vextractf128 $1, %ymm0, %xmm2
5149 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm4 = ymm1[2,2,2,2]
5150 ; AVX2-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm4[2,3]
5151 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm5[0,1,2,3,4,5],ymm3[6,7]
5152 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
5153 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5154 ; AVX2-NEXT:    vbroadcastss 124(%rax), %ymm2
5155 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm2[2],ymm9[2],ymm2[3],ymm9[3],ymm2[6],ymm9[6],ymm2[7],ymm9[7]
5156 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm5[1],ymm2[1],ymm5[3],ymm2[3]
5157 ; AVX2-NEXT:    vextractf128 $1, %ymm1, %xmm1
5158 ; AVX2-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]
5159 ; AVX2-NEXT:    vextractf128 $1, %ymm0, %xmm0
5160 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
5161 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
5162 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5163 ; AVX2-NEXT:    vmovaps (%rcx), %xmm0
5164 ; AVX2-NEXT:    vbroadcastss %xmm0, %xmm2
5165 ; AVX2-NEXT:    vmovaps (%rdx), %xmm1
5166 ; AVX2-NEXT:    vbroadcastss %xmm1, %xmm3
5167 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
5168 ; AVX2-NEXT:    vmovaps (%rsi), %xmm4
5169 ; AVX2-NEXT:    vmovaps (%rdi), %xmm5
5170 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
5171 ; AVX2-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1],xmm2[2,3]
5172 ; AVX2-NEXT:    vmovaps (%r10), %xmm2
5173 ; AVX2-NEXT:    vbroadcastss %xmm2, %xmm7
5174 ; AVX2-NEXT:    vmovaps (%rax), %xmm3
5175 ; AVX2-NEXT:    vbroadcastss %xmm3, %xmm8
5176 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm8[0],xmm7[0],xmm8[1],xmm7[1]
5177 ; AVX2-NEXT:    vmovaps (%r9), %xmm8
5178 ; AVX2-NEXT:    vmovaps (%r8), %xmm9
5179 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm10 = xmm9[0],xmm8[0],xmm9[1],xmm8[1]
5180 ; AVX2-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
5181 ; AVX2-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
5182 ; AVX2-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
5183 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
5184 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5185 ; AVX2-NEXT:    vshufps {{.*#+}} xmm6 = xmm5[1,1,1,1]
5186 ; AVX2-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0],xmm4[1],xmm6[2,3]
5187 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
5188 ; AVX2-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0,1],xmm7[2,3]
5189 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
5190 ; AVX2-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
5191 ; AVX2-NEXT:    vshufps {{.*#+}} xmm10 = xmm9[1,1,1,1]
5192 ; AVX2-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0],xmm8[1],xmm10[2,3]
5193 ; AVX2-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
5194 ; AVX2-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
5195 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
5196 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5197 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
5198 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm9[2],xmm8[2],xmm9[3],xmm8[3]
5199 ; AVX2-NEXT:    vshufps {{.*#+}} xmm6 = xmm2[2,2,2,2]
5200 ; AVX2-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1,2],xmm6[3]
5201 ; AVX2-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
5202 ; AVX2-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm7
5203 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3,4,5],ymm6[6,7]
5204 ; AVX2-NEXT:    vshufps {{.*#+}} xmm7 = xmm0[2,2,2,2]
5205 ; AVX2-NEXT:    vblendps {{.*#+}} xmm7 = xmm1[0,1,2],xmm7[3]
5206 ; AVX2-NEXT:    vblendps {{.*#+}} xmm7 = xmm4[0,1],xmm7[2,3]
5207 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]
5208 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5209 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
5210 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm4[1],xmm0[1]
5211 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm3[2],xmm2[2],xmm3[3],xmm2[3]
5212 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
5213 ; AVX2-NEXT:    vshufps {{.*#+}} xmm2 = xmm5[2,3,2,3]
5214 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
5215 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
5216 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
5217 ; AVX2-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
5218 ; AVX2-NEXT:    vmovaps 32(%rcx), %xmm0
5219 ; AVX2-NEXT:    vmovaps 32(%rdx), %xmm1
5220 ; AVX2-NEXT:    vbroadcastss %xmm0, %xmm2
5221 ; AVX2-NEXT:    vbroadcastss %xmm1, %xmm3
5222 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
5223 ; AVX2-NEXT:    vmovaps 32(%rsi), %xmm4
5224 ; AVX2-NEXT:    vmovaps 32(%rdi), %xmm5
5225 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
5226 ; AVX2-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1],xmm2[2,3]
5227 ; AVX2-NEXT:    vmovaps 32(%r10), %xmm2
5228 ; AVX2-NEXT:    vmovaps 32(%rax), %xmm3
5229 ; AVX2-NEXT:    vbroadcastss %xmm2, %xmm7
5230 ; AVX2-NEXT:    vbroadcastss %xmm3, %xmm8
5231 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm8[0],xmm7[0],xmm8[1],xmm7[1]
5232 ; AVX2-NEXT:    vmovaps 32(%r9), %xmm8
5233 ; AVX2-NEXT:    vmovaps 32(%r8), %xmm9
5234 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm10 = xmm9[0],xmm8[0],xmm9[1],xmm8[1]
5235 ; AVX2-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
5236 ; AVX2-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
5237 ; AVX2-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
5238 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
5239 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5240 ; AVX2-NEXT:    vshufps {{.*#+}} xmm6 = xmm5[1,1,1,1]
5241 ; AVX2-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0],xmm4[1],xmm6[2,3]
5242 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
5243 ; AVX2-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0,1],xmm7[2,3]
5244 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
5245 ; AVX2-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
5246 ; AVX2-NEXT:    vshufps {{.*#+}} xmm10 = xmm9[1,1,1,1]
5247 ; AVX2-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0],xmm8[1],xmm10[2,3]
5248 ; AVX2-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
5249 ; AVX2-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
5250 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
5251 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5252 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
5253 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm9[2],xmm8[2],xmm9[3],xmm8[3]
5254 ; AVX2-NEXT:    vshufps {{.*#+}} xmm6 = xmm2[2,2,2,2]
5255 ; AVX2-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1,2],xmm6[3]
5256 ; AVX2-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
5257 ; AVX2-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm7
5258 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3,4,5],ymm6[6,7]
5259 ; AVX2-NEXT:    vshufps {{.*#+}} xmm7 = xmm0[2,2,2,2]
5260 ; AVX2-NEXT:    vblendps {{.*#+}} xmm7 = xmm1[0,1,2],xmm7[3]
5261 ; AVX2-NEXT:    vblendps {{.*#+}} xmm7 = xmm4[0,1],xmm7[2,3]
5262 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]
5263 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5264 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
5265 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm4[1],xmm0[1]
5266 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm3[2],xmm2[2],xmm3[3],xmm2[3]
5267 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
5268 ; AVX2-NEXT:    vshufps {{.*#+}} xmm2 = xmm5[2,3,2,3]
5269 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
5270 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
5271 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
5272 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5273 ; AVX2-NEXT:    vmovaps 64(%rcx), %xmm3
5274 ; AVX2-NEXT:    vmovaps 64(%rdx), %xmm1
5275 ; AVX2-NEXT:    vbroadcastss %xmm3, %xmm0
5276 ; AVX2-NEXT:    vbroadcastss %xmm1, %xmm2
5277 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]
5278 ; AVX2-NEXT:    vmovaps 64(%rsi), %xmm4
5279 ; AVX2-NEXT:    vmovaps 64(%rdi), %xmm5
5280 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
5281 ; AVX2-NEXT:    vblendps {{.*#+}} xmm9 = xmm2[0,1],xmm0[2,3]
5282 ; AVX2-NEXT:    vmovaps 64(%r10), %xmm2
5283 ; AVX2-NEXT:    vmovaps 64(%rax), %xmm0
5284 ; AVX2-NEXT:    vbroadcastss %xmm2, %xmm7
5285 ; AVX2-NEXT:    vbroadcastss %xmm0, %xmm8
5286 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm8[0],xmm7[0],xmm8[1],xmm7[1]
5287 ; AVX2-NEXT:    vmovaps 64(%r9), %xmm8
5288 ; AVX2-NEXT:    vmovaps 64(%r8), %xmm6
5289 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm10 = xmm6[0],xmm8[0],xmm6[1],xmm8[1]
5290 ; AVX2-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
5291 ; AVX2-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
5292 ; AVX2-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
5293 ; AVX2-NEXT:    vblendps {{.*#+}} ymm11 = ymm9[0,1,2,3],ymm7[4,5,6,7]
5294 ; AVX2-NEXT:    vshufps {{.*#+}} xmm7 = xmm5[1,1,1,1]
5295 ; AVX2-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0],xmm4[1],xmm7[2,3]
5296 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm9 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
5297 ; AVX2-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0,1],xmm9[2,3]
5298 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm9 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
5299 ; AVX2-NEXT:    vinsertf128 $1, %xmm9, %ymm0, %ymm9
5300 ; AVX2-NEXT:    vshufps {{.*#+}} xmm15 = xmm6[1,1,1,1]
5301 ; AVX2-NEXT:    vblendps {{.*#+}} xmm15 = xmm15[0],xmm8[1],xmm15[2,3]
5302 ; AVX2-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm15
5303 ; AVX2-NEXT:    vblendps {{.*#+}} ymm9 = ymm15[0,1,2,3,4,5],ymm9[6,7]
5304 ; AVX2-NEXT:    vblendps {{.*#+}} ymm10 = ymm7[0,1,2,3],ymm9[4,5,6,7]
5305 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
5306 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm6[2],xmm8[2],xmm6[3],xmm8[3]
5307 ; AVX2-NEXT:    vshufps {{.*#+}} xmm6 = xmm2[2,2,2,2]
5308 ; AVX2-NEXT:    vblendps {{.*#+}} xmm6 = xmm0[0,1,2],xmm6[3]
5309 ; AVX2-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
5310 ; AVX2-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm7
5311 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3,4,5],ymm6[6,7]
5312 ; AVX2-NEXT:    vshufps {{.*#+}} xmm7 = xmm3[2,2,2,2]
5313 ; AVX2-NEXT:    vblendps {{.*#+}} xmm7 = xmm1[0,1,2],xmm7[3]
5314 ; AVX2-NEXT:    vblendps {{.*#+}} xmm7 = xmm4[0,1],xmm7[2,3]
5315 ; AVX2-NEXT:    vblendps {{.*#+}} ymm9 = ymm7[0,1,2,3],ymm6[4,5,6,7]
5316 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm1[2],xmm3[2],xmm1[3],xmm3[3]
5317 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm4[1],xmm1[1]
5318 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm0[2],xmm2[2],xmm0[3],xmm2[3]
5319 ; AVX2-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
5320 ; AVX2-NEXT:    vshufps {{.*#+}} xmm2 = xmm5[2,3,2,3]
5321 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
5322 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3,4,5],ymm0[6,7]
5323 ; AVX2-NEXT:    vblendps {{.*#+}} ymm8 = ymm1[0,1,2,3],ymm0[4,5,6,7]
5324 ; AVX2-NEXT:    vmovaps 96(%rcx), %xmm6
5325 ; AVX2-NEXT:    vbroadcastss %xmm6, %xmm0
5326 ; AVX2-NEXT:    vmovaps 96(%rdx), %xmm5
5327 ; AVX2-NEXT:    vbroadcastss %xmm5, %xmm1
5328 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
5329 ; AVX2-NEXT:    vmovaps 96(%rsi), %xmm4
5330 ; AVX2-NEXT:    vmovaps 96(%rdi), %xmm2
5331 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm2[0],xmm4[0],xmm2[1],xmm4[1]
5332 ; AVX2-NEXT:    vblendps {{.*#+}} xmm7 = xmm3[0,1],xmm0[2,3]
5333 ; AVX2-NEXT:    vmovaps 96(%r10), %xmm3
5334 ; AVX2-NEXT:    vbroadcastss %xmm3, %xmm15
5335 ; AVX2-NEXT:    vmovaps 96(%rax), %xmm1
5336 ; AVX2-NEXT:    vbroadcastss %xmm1, %xmm14
5337 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm14 = xmm14[0],xmm15[0],xmm14[1],xmm15[1]
5338 ; AVX2-NEXT:    vmovaps 96(%r9), %xmm15
5339 ; AVX2-NEXT:    vmovaps 96(%r8), %xmm0
5340 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm13 = xmm0[0],xmm15[0],xmm0[1],xmm15[1]
5341 ; AVX2-NEXT:    vinsertf128 $1, %xmm13, %ymm0, %ymm13
5342 ; AVX2-NEXT:    vinsertf128 $1, %xmm14, %ymm0, %ymm14
5343 ; AVX2-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1,2,3,4,5],ymm14[6,7]
5344 ; AVX2-NEXT:    vblendps {{.*#+}} ymm14 = ymm7[0,1,2,3],ymm13[4,5,6,7]
5345 ; AVX2-NEXT:    vshufps {{.*#+}} xmm7 = xmm2[1,1,1,1]
5346 ; AVX2-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0],xmm4[1],xmm7[2,3]
5347 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm13 = xmm5[0],xmm6[0],xmm5[1],xmm6[1]
5348 ; AVX2-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0,1],xmm13[2,3]
5349 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm13 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
5350 ; AVX2-NEXT:    vinsertf128 $1, %xmm13, %ymm0, %ymm13
5351 ; AVX2-NEXT:    vshufps {{.*#+}} xmm12 = xmm0[1,1,1,1]
5352 ; AVX2-NEXT:    vblendps {{.*#+}} xmm12 = xmm12[0],xmm15[1],xmm12[2,3]
5353 ; AVX2-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm12
5354 ; AVX2-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3,4,5],ymm13[6,7]
5355 ; AVX2-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3],ymm12[4,5,6,7]
5356 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm2[2],xmm4[2],xmm2[3],xmm4[3]
5357 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm0[2],xmm15[2],xmm0[3],xmm15[3]
5358 ; AVX2-NEXT:    vshufps {{.*#+}} xmm4 = xmm3[2,2,2,2]
5359 ; AVX2-NEXT:    vblendps {{.*#+}} xmm4 = xmm1[0,1,2],xmm4[3]
5360 ; AVX2-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
5361 ; AVX2-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm12
5362 ; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm12[0,1,2,3,4,5],ymm4[6,7]
5363 ; AVX2-NEXT:    vshufps {{.*#+}} xmm12 = xmm6[2,2,2,2]
5364 ; AVX2-NEXT:    vblendps {{.*#+}} xmm12 = xmm5[0,1,2],xmm12[3]
5365 ; AVX2-NEXT:    vblendps {{.*#+}} xmm12 = xmm2[0,1],xmm12[2,3]
5366 ; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm12[0,1,2,3],ymm4[4,5,6,7]
5367 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm5[2],xmm6[2],xmm5[3],xmm6[3]
5368 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm2 = xmm2[1],xmm5[1]
5369 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm1[2],xmm3[2],xmm1[3],xmm3[3]
5370 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
5371 ; AVX2-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[2,3,2,3]
5372 ; AVX2-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
5373 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
5374 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
5375 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rax
5376 ; AVX2-NEXT:    vmovaps %ymm0, 864(%rax)
5377 ; AVX2-NEXT:    vmovaps %ymm4, 832(%rax)
5378 ; AVX2-NEXT:    vmovaps %ymm7, 800(%rax)
5379 ; AVX2-NEXT:    vmovaps %ymm14, 768(%rax)
5380 ; AVX2-NEXT:    vmovaps %ymm8, 608(%rax)
5381 ; AVX2-NEXT:    vmovaps %ymm9, 576(%rax)
5382 ; AVX2-NEXT:    vmovaps %ymm10, 544(%rax)
5383 ; AVX2-NEXT:    vmovaps %ymm11, 512(%rax)
5384 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5385 ; AVX2-NEXT:    vmovaps %ymm0, 352(%rax)
5386 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5387 ; AVX2-NEXT:    vmovaps %ymm0, 320(%rax)
5388 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5389 ; AVX2-NEXT:    vmovaps %ymm0, 288(%rax)
5390 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5391 ; AVX2-NEXT:    vmovaps %ymm0, 256(%rax)
5392 ; AVX2-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
5393 ; AVX2-NEXT:    vmovaps %ymm0, 96(%rax)
5394 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5395 ; AVX2-NEXT:    vmovaps %ymm0, 64(%rax)
5396 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5397 ; AVX2-NEXT:    vmovaps %ymm0, 32(%rax)
5398 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5399 ; AVX2-NEXT:    vmovaps %ymm0, (%rax)
5400 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5401 ; AVX2-NEXT:    vmovaps %ymm0, 992(%rax)
5402 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5403 ; AVX2-NEXT:    vmovaps %ymm0, 960(%rax)
5404 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5405 ; AVX2-NEXT:    vmovaps %ymm0, 928(%rax)
5406 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5407 ; AVX2-NEXT:    vmovaps %ymm0, 896(%rax)
5408 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5409 ; AVX2-NEXT:    vmovaps %ymm0, 736(%rax)
5410 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5411 ; AVX2-NEXT:    vmovaps %ymm0, 704(%rax)
5412 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5413 ; AVX2-NEXT:    vmovaps %ymm0, 672(%rax)
5414 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5415 ; AVX2-NEXT:    vmovaps %ymm0, 640(%rax)
5416 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5417 ; AVX2-NEXT:    vmovaps %ymm0, 480(%rax)
5418 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5419 ; AVX2-NEXT:    vmovaps %ymm0, 448(%rax)
5420 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5421 ; AVX2-NEXT:    vmovaps %ymm0, 416(%rax)
5422 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5423 ; AVX2-NEXT:    vmovaps %ymm0, 384(%rax)
5424 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5425 ; AVX2-NEXT:    vmovaps %ymm0, 224(%rax)
5426 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5427 ; AVX2-NEXT:    vmovaps %ymm0, 192(%rax)
5428 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5429 ; AVX2-NEXT:    vmovaps %ymm0, 160(%rax)
5430 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5431 ; AVX2-NEXT:    vmovaps %ymm0, 128(%rax)
5432 ; AVX2-NEXT:    addq $648, %rsp # imm = 0x288
5433 ; AVX2-NEXT:    vzeroupper
5434 ; AVX2-NEXT:    retq
5436 ; AVX2-FP-LABEL: store_i32_stride8_vf32:
5437 ; AVX2-FP:       # %bb.0:
5438 ; AVX2-FP-NEXT:    subq $648, %rsp # imm = 0x288
5439 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
5440 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
5441 ; AVX2-FP-NEXT:    vmovaps 32(%rdi), %ymm0
5442 ; AVX2-FP-NEXT:    vmovaps (%rdi), %ymm4
5443 ; AVX2-FP-NEXT:    vmovaps 32(%rsi), %ymm1
5444 ; AVX2-FP-NEXT:    vmovaps (%rsi), %ymm5
5445 ; AVX2-FP-NEXT:    vmovaps 32(%rdx), %ymm2
5446 ; AVX2-FP-NEXT:    vmovaps (%rdx), %ymm7
5447 ; AVX2-FP-NEXT:    vmovaps 32(%rcx), %ymm3
5448 ; AVX2-FP-NEXT:    vmovaps (%rcx), %ymm9
5449 ; AVX2-FP-NEXT:    vmovaps (%r8), %ymm10
5450 ; AVX2-FP-NEXT:    vmovaps (%r9), %ymm12
5451 ; AVX2-FP-NEXT:    vmovaps (%rax), %ymm8
5452 ; AVX2-FP-NEXT:    vmovaps (%r10), %ymm11
5453 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm6 = ymm8[0],ymm11[0],ymm8[1],ymm11[1],ymm8[4],ymm11[4],ymm8[5],ymm11[5]
5454 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm13 = ymm4[0],ymm5[0],ymm4[1],ymm5[1],ymm4[4],ymm5[4],ymm4[5],ymm5[5]
5455 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm13, %xmm13
5456 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm14 = ymm7[0],ymm9[0],ymm7[1],ymm9[1],ymm7[4],ymm9[4],ymm7[5],ymm9[5]
5457 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm15 = ymm14[2,2,2,2]
5458 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm13 = xmm13[0,1],xmm15[2,3]
5459 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm15 = ymm10[0],ymm12[0],ymm10[1],ymm12[1],ymm10[4],ymm12[4],ymm10[5],ymm12[5]
5460 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm15 = ymm15[0],ymm6[0],ymm15[2],ymm6[2]
5461 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1,2,3],ymm15[4,5,6,7]
5462 ; AVX2-FP-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5463 ; AVX2-FP-NEXT:    vbroadcastss 20(%r8), %ymm13
5464 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1,2,3,4],ymm12[5],ymm13[6,7]
5465 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1,2,3,4,5],ymm6[6,7]
5466 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm14, %xmm6
5467 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm14 = ymm4[1,1,1,1,5,5,5,5]
5468 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0],ymm5[1],ymm14[2,3,4],ymm5[5],ymm14[6,7]
5469 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm14, %xmm14
5470 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm14 = xmm14[0,1],xmm6[2,3]
5471 ; AVX2-FP-NEXT:    vmovaps 32(%r8), %ymm6
5472 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm13 = ymm14[0,1,2,3],ymm13[4,5,6,7]
5473 ; AVX2-FP-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5474 ; AVX2-FP-NEXT:    vbroadcastss 24(%r10), %ymm13
5475 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm13 = ymm8[0,1,2,3,4,5,6],ymm13[7]
5476 ; AVX2-FP-NEXT:    vmovaps 32(%r9), %ymm8
5477 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm12 = ymm10[2],ymm12[2],ymm10[3],ymm12[3],ymm10[6],ymm12[6],ymm10[7],ymm12[7]
5478 ; AVX2-FP-NEXT:    vmovaps 32(%rax), %ymm10
5479 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm4 = ymm4[2],ymm5[2],ymm4[3],ymm5[3],ymm4[6],ymm5[6],ymm4[7],ymm5[7]
5480 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm4, %xmm5
5481 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm9 = ymm7[2],ymm9[2],ymm7[3],ymm9[3],ymm7[6],ymm9[6],ymm7[7],ymm9[7]
5482 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm7 = ymm9[2,2,2,2]
5483 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm5 = xmm5[0,1],xmm7[2,3]
5484 ; AVX2-FP-NEXT:    vmovaps 32(%r10), %ymm7
5485 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm13 = ymm12[0,1,2,3,4,5],ymm13[6,7]
5486 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm13[4,5,6,7]
5487 ; AVX2-FP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5488 ; AVX2-FP-NEXT:    vbroadcastss 28(%rax), %ymm5
5489 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm5 = ymm5[2],ymm11[2],ymm5[3],ymm11[3],ymm5[6],ymm11[6],ymm5[7],ymm11[7]
5490 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm5 = ymm12[1],ymm5[1],ymm12[3],ymm5[3]
5491 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm9, %xmm9
5492 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[2,3,2,3,6,7,6,7]
5493 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm4, %xmm4
5494 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],xmm9[2,3]
5495 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm5[4,5,6,7]
5496 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5497 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm4 = ymm10[0],ymm7[0],ymm10[1],ymm7[1],ymm10[4],ymm7[4],ymm10[5],ymm7[5]
5498 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]
5499 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm5, %xmm5
5500 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm9 = ymm2[0],ymm3[0],ymm2[1],ymm3[1],ymm2[4],ymm3[4],ymm2[5],ymm3[5]
5501 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm11 = ymm9[2,2,2,2]
5502 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm5 = xmm5[0,1],xmm11[2,3]
5503 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm11 = ymm6[0],ymm8[0],ymm6[1],ymm8[1],ymm6[4],ymm8[4],ymm6[5],ymm8[5]
5504 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm11 = ymm11[0],ymm4[0],ymm11[2],ymm4[2]
5505 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm11[4,5,6,7]
5506 ; AVX2-FP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5507 ; AVX2-FP-NEXT:    vbroadcastss 52(%r8), %ymm5
5508 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4],ymm8[5],ymm5[6,7]
5509 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],ymm4[6,7]
5510 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm9, %xmm4
5511 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm9 = ymm0[1,1,1,1,5,5,5,5]
5512 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0],ymm1[1],ymm9[2,3,4],ymm1[5],ymm9[6,7]
5513 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm9, %xmm9
5514 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm9 = xmm9[0,1],xmm4[2,3]
5515 ; AVX2-FP-NEXT:    vmovaps 64(%rdi), %ymm4
5516 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm9[0,1,2,3],ymm5[4,5,6,7]
5517 ; AVX2-FP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5518 ; AVX2-FP-NEXT:    vbroadcastss 56(%r10), %ymm5
5519 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm9 = ymm10[0,1,2,3,4,5,6],ymm5[7]
5520 ; AVX2-FP-NEXT:    vmovaps 64(%rsi), %ymm5
5521 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm8 = ymm6[2],ymm8[2],ymm6[3],ymm8[3],ymm6[6],ymm8[6],ymm6[7],ymm8[7]
5522 ; AVX2-FP-NEXT:    vmovaps 64(%rdx), %ymm6
5523 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm10 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
5524 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm10, %xmm0
5525 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm2[2],ymm3[2],ymm2[3],ymm3[3],ymm2[6],ymm3[6],ymm2[7],ymm3[7]
5526 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm2[2,2,2,2]
5527 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm0[0,1],xmm1[2,3]
5528 ; AVX2-FP-NEXT:    vmovaps 64(%rcx), %ymm0
5529 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm8[0,1,2,3,4,5],ymm9[6,7]
5530 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
5531 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5532 ; AVX2-FP-NEXT:    vbroadcastss 60(%rax), %ymm1
5533 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm3 = ymm1[2],ymm7[2],ymm1[3],ymm7[3],ymm1[6],ymm7[6],ymm1[7],ymm7[7]
5534 ; AVX2-FP-NEXT:    vmovaps 64(%r8), %ymm1
5535 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm3 = ymm8[1],ymm3[1],ymm8[3],ymm3[3]
5536 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm2, %xmm2
5537 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm7 = ymm10[2,3,2,3,6,7,6,7]
5538 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm7, %xmm7
5539 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm2 = xmm7[0,1],xmm2[2,3]
5540 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
5541 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5542 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm2 = ymm4[0],ymm5[0],ymm4[1],ymm5[1],ymm4[4],ymm5[4],ymm4[5],ymm5[5]
5543 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm2, %xmm2
5544 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm3 = ymm6[0],ymm0[0],ymm6[1],ymm0[1],ymm6[4],ymm0[4],ymm6[5],ymm0[5]
5545 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm7 = ymm3[2,2,2,2]
5546 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm7[2,3]
5547 ; AVX2-FP-NEXT:    vmovaps 64(%r9), %ymm7
5548 ; AVX2-FP-NEXT:    vmovaps 64(%rax), %ymm8
5549 ; AVX2-FP-NEXT:    vmovaps 64(%r10), %ymm9
5550 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm10 = ymm8[0],ymm9[0],ymm8[1],ymm9[1],ymm8[4],ymm9[4],ymm8[5],ymm9[5]
5551 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm11 = ymm1[0],ymm7[0],ymm1[1],ymm7[1],ymm1[4],ymm7[4],ymm1[5],ymm7[5]
5552 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm11 = ymm11[0],ymm10[0],ymm11[2],ymm10[2]
5553 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm11[4,5,6,7]
5554 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5555 ; AVX2-FP-NEXT:    vbroadcastss 84(%r8), %ymm2
5556 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm7[5],ymm2[6,7]
5557 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm10[6,7]
5558 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm3, %xmm3
5559 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm10 = ymm4[1,1,1,1,5,5,5,5]
5560 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0],ymm5[1],ymm10[2,3,4],ymm5[5],ymm10[6,7]
5561 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm10, %xmm10
5562 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm3 = xmm10[0,1],xmm3[2,3]
5563 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
5564 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5565 ; AVX2-FP-NEXT:    vbroadcastss 88(%r10), %ymm2
5566 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm8[0,1,2,3,4,5,6],ymm2[7]
5567 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm1[2],ymm7[2],ymm1[3],ymm7[3],ymm1[6],ymm7[6],ymm1[7],ymm7[7]
5568 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm3 = ymm4[2],ymm5[2],ymm4[3],ymm5[3],ymm4[6],ymm5[6],ymm4[7],ymm5[7]
5569 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm4 = ymm6[2],ymm0[2],ymm6[3],ymm0[3],ymm6[6],ymm0[6],ymm6[7],ymm0[7]
5570 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm3, %xmm0
5571 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm5 = ymm4[2,2,2,2]
5572 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm5[2,3]
5573 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm1[0,1,2,3,4,5],ymm2[6,7]
5574 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
5575 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5576 ; AVX2-FP-NEXT:    vbroadcastss 92(%rax), %ymm0
5577 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm0[2],ymm9[2],ymm0[3],ymm9[3],ymm0[6],ymm9[6],ymm0[7],ymm9[7]
5578 ; AVX2-FP-NEXT:    vmovaps 96(%rdi), %ymm0
5579 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm5 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
5580 ; AVX2-FP-NEXT:    vmovaps 96(%rsi), %ymm1
5581 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm4, %xmm2
5582 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[2,3,2,3,6,7,6,7]
5583 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm3, %xmm3
5584 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm2[2,3]
5585 ; AVX2-FP-NEXT:    vmovaps 96(%rdx), %ymm2
5586 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm5[4,5,6,7]
5587 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5588 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm3 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]
5589 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm3, %xmm3
5590 ; AVX2-FP-NEXT:    vmovaps 96(%rcx), %ymm4
5591 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm5 = ymm2[0],ymm4[0],ymm2[1],ymm4[1],ymm2[4],ymm4[4],ymm2[5],ymm4[5]
5592 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm6 = ymm5[2,2,2,2]
5593 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm6[2,3]
5594 ; AVX2-FP-NEXT:    vmovaps 96(%r8), %ymm6
5595 ; AVX2-FP-NEXT:    vmovaps 96(%r9), %ymm7
5596 ; AVX2-FP-NEXT:    vmovaps 96(%rax), %ymm8
5597 ; AVX2-FP-NEXT:    vmovaps 96(%r10), %ymm9
5598 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm10 = ymm8[0],ymm9[0],ymm8[1],ymm9[1],ymm8[4],ymm9[4],ymm8[5],ymm9[5]
5599 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm11 = ymm6[0],ymm7[0],ymm6[1],ymm7[1],ymm6[4],ymm7[4],ymm6[5],ymm7[5]
5600 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm11 = ymm11[0],ymm10[0],ymm11[2],ymm10[2]
5601 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm11[4,5,6,7]
5602 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5603 ; AVX2-FP-NEXT:    vbroadcastss 116(%r8), %ymm3
5604 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4],ymm7[5],ymm3[6,7]
5605 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm10[6,7]
5606 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm5, %xmm5
5607 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm10 = ymm0[1,1,1,1,5,5,5,5]
5608 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0],ymm1[1],ymm10[2,3,4],ymm1[5],ymm10[6,7]
5609 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm10, %xmm10
5610 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm5 = xmm10[0,1],xmm5[2,3]
5611 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm5[0,1,2,3],ymm3[4,5,6,7]
5612 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5613 ; AVX2-FP-NEXT:    vbroadcastss 120(%r10), %ymm3
5614 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm8[0,1,2,3,4,5,6],ymm3[7]
5615 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm5 = ymm6[2],ymm7[2],ymm6[3],ymm7[3],ymm6[6],ymm7[6],ymm6[7],ymm7[7]
5616 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm0 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
5617 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm2[2],ymm4[2],ymm2[3],ymm4[3],ymm2[6],ymm4[6],ymm2[7],ymm4[7]
5618 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm0, %xmm2
5619 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm4 = ymm1[2,2,2,2]
5620 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm4[2,3]
5621 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm5[0,1,2,3,4,5],ymm3[6,7]
5622 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
5623 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5624 ; AVX2-FP-NEXT:    vbroadcastss 124(%rax), %ymm2
5625 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm2[2],ymm9[2],ymm2[3],ymm9[3],ymm2[6],ymm9[6],ymm2[7],ymm9[7]
5626 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm5[1],ymm2[1],ymm5[3],ymm2[3]
5627 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm1, %xmm1
5628 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]
5629 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm0, %xmm0
5630 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
5631 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
5632 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5633 ; AVX2-FP-NEXT:    vmovaps (%rcx), %xmm0
5634 ; AVX2-FP-NEXT:    vbroadcastss %xmm0, %xmm2
5635 ; AVX2-FP-NEXT:    vmovaps (%rdx), %xmm1
5636 ; AVX2-FP-NEXT:    vbroadcastss %xmm1, %xmm3
5637 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
5638 ; AVX2-FP-NEXT:    vmovaps (%rsi), %xmm4
5639 ; AVX2-FP-NEXT:    vmovaps (%rdi), %xmm5
5640 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
5641 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1],xmm2[2,3]
5642 ; AVX2-FP-NEXT:    vmovaps (%r10), %xmm2
5643 ; AVX2-FP-NEXT:    vbroadcastss %xmm2, %xmm7
5644 ; AVX2-FP-NEXT:    vmovaps (%rax), %xmm3
5645 ; AVX2-FP-NEXT:    vbroadcastss %xmm3, %xmm8
5646 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm8[0],xmm7[0],xmm8[1],xmm7[1]
5647 ; AVX2-FP-NEXT:    vmovaps (%r9), %xmm8
5648 ; AVX2-FP-NEXT:    vmovaps (%r8), %xmm9
5649 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm10 = xmm9[0],xmm8[0],xmm9[1],xmm8[1]
5650 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
5651 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
5652 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
5653 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
5654 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5655 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm6 = xmm5[1,1,1,1]
5656 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0],xmm4[1],xmm6[2,3]
5657 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
5658 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0,1],xmm7[2,3]
5659 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
5660 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
5661 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm10 = xmm9[1,1,1,1]
5662 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0],xmm8[1],xmm10[2,3]
5663 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
5664 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
5665 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
5666 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5667 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
5668 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm9[2],xmm8[2],xmm9[3],xmm8[3]
5669 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm6 = xmm2[2,2,2,2]
5670 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1,2],xmm6[3]
5671 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
5672 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm7
5673 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3,4,5],ymm6[6,7]
5674 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm7 = xmm0[2,2,2,2]
5675 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm7 = xmm1[0,1,2],xmm7[3]
5676 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm7 = xmm4[0,1],xmm7[2,3]
5677 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]
5678 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5679 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
5680 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm4[1],xmm0[1]
5681 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm3[2],xmm2[2],xmm3[3],xmm2[3]
5682 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
5683 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm2 = xmm5[2,3,2,3]
5684 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
5685 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
5686 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
5687 ; AVX2-FP-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
5688 ; AVX2-FP-NEXT:    vmovaps 32(%rcx), %xmm0
5689 ; AVX2-FP-NEXT:    vmovaps 32(%rdx), %xmm1
5690 ; AVX2-FP-NEXT:    vbroadcastss %xmm0, %xmm2
5691 ; AVX2-FP-NEXT:    vbroadcastss %xmm1, %xmm3
5692 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
5693 ; AVX2-FP-NEXT:    vmovaps 32(%rsi), %xmm4
5694 ; AVX2-FP-NEXT:    vmovaps 32(%rdi), %xmm5
5695 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
5696 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1],xmm2[2,3]
5697 ; AVX2-FP-NEXT:    vmovaps 32(%r10), %xmm2
5698 ; AVX2-FP-NEXT:    vmovaps 32(%rax), %xmm3
5699 ; AVX2-FP-NEXT:    vbroadcastss %xmm2, %xmm7
5700 ; AVX2-FP-NEXT:    vbroadcastss %xmm3, %xmm8
5701 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm8[0],xmm7[0],xmm8[1],xmm7[1]
5702 ; AVX2-FP-NEXT:    vmovaps 32(%r9), %xmm8
5703 ; AVX2-FP-NEXT:    vmovaps 32(%r8), %xmm9
5704 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm10 = xmm9[0],xmm8[0],xmm9[1],xmm8[1]
5705 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
5706 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
5707 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
5708 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
5709 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5710 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm6 = xmm5[1,1,1,1]
5711 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0],xmm4[1],xmm6[2,3]
5712 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
5713 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0,1],xmm7[2,3]
5714 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
5715 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
5716 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm10 = xmm9[1,1,1,1]
5717 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0],xmm8[1],xmm10[2,3]
5718 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
5719 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
5720 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
5721 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5722 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
5723 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm9[2],xmm8[2],xmm9[3],xmm8[3]
5724 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm6 = xmm2[2,2,2,2]
5725 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1,2],xmm6[3]
5726 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
5727 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm7
5728 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3,4,5],ymm6[6,7]
5729 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm7 = xmm0[2,2,2,2]
5730 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm7 = xmm1[0,1,2],xmm7[3]
5731 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm7 = xmm4[0,1],xmm7[2,3]
5732 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]
5733 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5734 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
5735 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm4[1],xmm0[1]
5736 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm3[2],xmm2[2],xmm3[3],xmm2[3]
5737 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
5738 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm2 = xmm5[2,3,2,3]
5739 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
5740 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
5741 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
5742 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5743 ; AVX2-FP-NEXT:    vmovaps 64(%rcx), %xmm3
5744 ; AVX2-FP-NEXT:    vmovaps 64(%rdx), %xmm1
5745 ; AVX2-FP-NEXT:    vbroadcastss %xmm3, %xmm0
5746 ; AVX2-FP-NEXT:    vbroadcastss %xmm1, %xmm2
5747 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]
5748 ; AVX2-FP-NEXT:    vmovaps 64(%rsi), %xmm4
5749 ; AVX2-FP-NEXT:    vmovaps 64(%rdi), %xmm5
5750 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
5751 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm9 = xmm2[0,1],xmm0[2,3]
5752 ; AVX2-FP-NEXT:    vmovaps 64(%r10), %xmm2
5753 ; AVX2-FP-NEXT:    vmovaps 64(%rax), %xmm0
5754 ; AVX2-FP-NEXT:    vbroadcastss %xmm2, %xmm7
5755 ; AVX2-FP-NEXT:    vbroadcastss %xmm0, %xmm8
5756 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm8[0],xmm7[0],xmm8[1],xmm7[1]
5757 ; AVX2-FP-NEXT:    vmovaps 64(%r9), %xmm8
5758 ; AVX2-FP-NEXT:    vmovaps 64(%r8), %xmm6
5759 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm10 = xmm6[0],xmm8[0],xmm6[1],xmm8[1]
5760 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
5761 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
5762 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
5763 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm11 = ymm9[0,1,2,3],ymm7[4,5,6,7]
5764 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm7 = xmm5[1,1,1,1]
5765 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0],xmm4[1],xmm7[2,3]
5766 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm9 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
5767 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0,1],xmm9[2,3]
5768 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm9 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
5769 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm9, %ymm0, %ymm9
5770 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm15 = xmm6[1,1,1,1]
5771 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm15 = xmm15[0],xmm8[1],xmm15[2,3]
5772 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm15
5773 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm9 = ymm15[0,1,2,3,4,5],ymm9[6,7]
5774 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm10 = ymm7[0,1,2,3],ymm9[4,5,6,7]
5775 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
5776 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm6[2],xmm8[2],xmm6[3],xmm8[3]
5777 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm6 = xmm2[2,2,2,2]
5778 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm6 = xmm0[0,1,2],xmm6[3]
5779 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
5780 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm7
5781 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3,4,5],ymm6[6,7]
5782 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm7 = xmm3[2,2,2,2]
5783 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm7 = xmm1[0,1,2],xmm7[3]
5784 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm7 = xmm4[0,1],xmm7[2,3]
5785 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm9 = ymm7[0,1,2,3],ymm6[4,5,6,7]
5786 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm1[2],xmm3[2],xmm1[3],xmm3[3]
5787 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm4[1],xmm1[1]
5788 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm0[2],xmm2[2],xmm0[3],xmm2[3]
5789 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
5790 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm2 = xmm5[2,3,2,3]
5791 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
5792 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3,4,5],ymm0[6,7]
5793 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm8 = ymm1[0,1,2,3],ymm0[4,5,6,7]
5794 ; AVX2-FP-NEXT:    vmovaps 96(%rcx), %xmm6
5795 ; AVX2-FP-NEXT:    vbroadcastss %xmm6, %xmm0
5796 ; AVX2-FP-NEXT:    vmovaps 96(%rdx), %xmm5
5797 ; AVX2-FP-NEXT:    vbroadcastss %xmm5, %xmm1
5798 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
5799 ; AVX2-FP-NEXT:    vmovaps 96(%rsi), %xmm4
5800 ; AVX2-FP-NEXT:    vmovaps 96(%rdi), %xmm2
5801 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm2[0],xmm4[0],xmm2[1],xmm4[1]
5802 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm7 = xmm3[0,1],xmm0[2,3]
5803 ; AVX2-FP-NEXT:    vmovaps 96(%r10), %xmm3
5804 ; AVX2-FP-NEXT:    vbroadcastss %xmm3, %xmm15
5805 ; AVX2-FP-NEXT:    vmovaps 96(%rax), %xmm1
5806 ; AVX2-FP-NEXT:    vbroadcastss %xmm1, %xmm14
5807 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm14 = xmm14[0],xmm15[0],xmm14[1],xmm15[1]
5808 ; AVX2-FP-NEXT:    vmovaps 96(%r9), %xmm15
5809 ; AVX2-FP-NEXT:    vmovaps 96(%r8), %xmm0
5810 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm13 = xmm0[0],xmm15[0],xmm0[1],xmm15[1]
5811 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm13, %ymm0, %ymm13
5812 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm14, %ymm0, %ymm14
5813 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1,2,3,4,5],ymm14[6,7]
5814 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm14 = ymm7[0,1,2,3],ymm13[4,5,6,7]
5815 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm7 = xmm2[1,1,1,1]
5816 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0],xmm4[1],xmm7[2,3]
5817 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm13 = xmm5[0],xmm6[0],xmm5[1],xmm6[1]
5818 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0,1],xmm13[2,3]
5819 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm13 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
5820 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm13, %ymm0, %ymm13
5821 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm12 = xmm0[1,1,1,1]
5822 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm12 = xmm12[0],xmm15[1],xmm12[2,3]
5823 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm12
5824 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3,4,5],ymm13[6,7]
5825 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3],ymm12[4,5,6,7]
5826 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm2[2],xmm4[2],xmm2[3],xmm4[3]
5827 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm0[2],xmm15[2],xmm0[3],xmm15[3]
5828 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm4 = xmm3[2,2,2,2]
5829 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm4 = xmm1[0,1,2],xmm4[3]
5830 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
5831 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm12
5832 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm12[0,1,2,3,4,5],ymm4[6,7]
5833 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm12 = xmm6[2,2,2,2]
5834 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm12 = xmm5[0,1,2],xmm12[3]
5835 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm12 = xmm2[0,1],xmm12[2,3]
5836 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm12[0,1,2,3],ymm4[4,5,6,7]
5837 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm5[2],xmm6[2],xmm5[3],xmm6[3]
5838 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm2 = xmm2[1],xmm5[1]
5839 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm1[2],xmm3[2],xmm1[3],xmm3[3]
5840 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
5841 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[2,3,2,3]
5842 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
5843 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
5844 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
5845 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
5846 ; AVX2-FP-NEXT:    vmovaps %ymm0, 864(%rax)
5847 ; AVX2-FP-NEXT:    vmovaps %ymm4, 832(%rax)
5848 ; AVX2-FP-NEXT:    vmovaps %ymm7, 800(%rax)
5849 ; AVX2-FP-NEXT:    vmovaps %ymm14, 768(%rax)
5850 ; AVX2-FP-NEXT:    vmovaps %ymm8, 608(%rax)
5851 ; AVX2-FP-NEXT:    vmovaps %ymm9, 576(%rax)
5852 ; AVX2-FP-NEXT:    vmovaps %ymm10, 544(%rax)
5853 ; AVX2-FP-NEXT:    vmovaps %ymm11, 512(%rax)
5854 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5855 ; AVX2-FP-NEXT:    vmovaps %ymm0, 352(%rax)
5856 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5857 ; AVX2-FP-NEXT:    vmovaps %ymm0, 320(%rax)
5858 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5859 ; AVX2-FP-NEXT:    vmovaps %ymm0, 288(%rax)
5860 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5861 ; AVX2-FP-NEXT:    vmovaps %ymm0, 256(%rax)
5862 ; AVX2-FP-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
5863 ; AVX2-FP-NEXT:    vmovaps %ymm0, 96(%rax)
5864 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5865 ; AVX2-FP-NEXT:    vmovaps %ymm0, 64(%rax)
5866 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5867 ; AVX2-FP-NEXT:    vmovaps %ymm0, 32(%rax)
5868 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5869 ; AVX2-FP-NEXT:    vmovaps %ymm0, (%rax)
5870 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5871 ; AVX2-FP-NEXT:    vmovaps %ymm0, 992(%rax)
5872 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5873 ; AVX2-FP-NEXT:    vmovaps %ymm0, 960(%rax)
5874 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5875 ; AVX2-FP-NEXT:    vmovaps %ymm0, 928(%rax)
5876 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5877 ; AVX2-FP-NEXT:    vmovaps %ymm0, 896(%rax)
5878 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5879 ; AVX2-FP-NEXT:    vmovaps %ymm0, 736(%rax)
5880 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5881 ; AVX2-FP-NEXT:    vmovaps %ymm0, 704(%rax)
5882 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5883 ; AVX2-FP-NEXT:    vmovaps %ymm0, 672(%rax)
5884 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5885 ; AVX2-FP-NEXT:    vmovaps %ymm0, 640(%rax)
5886 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5887 ; AVX2-FP-NEXT:    vmovaps %ymm0, 480(%rax)
5888 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5889 ; AVX2-FP-NEXT:    vmovaps %ymm0, 448(%rax)
5890 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5891 ; AVX2-FP-NEXT:    vmovaps %ymm0, 416(%rax)
5892 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5893 ; AVX2-FP-NEXT:    vmovaps %ymm0, 384(%rax)
5894 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5895 ; AVX2-FP-NEXT:    vmovaps %ymm0, 224(%rax)
5896 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5897 ; AVX2-FP-NEXT:    vmovaps %ymm0, 192(%rax)
5898 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5899 ; AVX2-FP-NEXT:    vmovaps %ymm0, 160(%rax)
5900 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5901 ; AVX2-FP-NEXT:    vmovaps %ymm0, 128(%rax)
5902 ; AVX2-FP-NEXT:    addq $648, %rsp # imm = 0x288
5903 ; AVX2-FP-NEXT:    vzeroupper
5904 ; AVX2-FP-NEXT:    retq
5906 ; AVX2-FCP-LABEL: store_i32_stride8_vf32:
5907 ; AVX2-FCP:       # %bb.0:
5908 ; AVX2-FCP-NEXT:    subq $648, %rsp # imm = 0x288
5909 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
5910 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
5911 ; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %ymm0
5912 ; AVX2-FCP-NEXT:    vmovaps (%rdi), %ymm4
5913 ; AVX2-FCP-NEXT:    vmovaps 32(%rsi), %ymm1
5914 ; AVX2-FCP-NEXT:    vmovaps (%rsi), %ymm5
5915 ; AVX2-FCP-NEXT:    vmovaps 32(%rdx), %ymm2
5916 ; AVX2-FCP-NEXT:    vmovaps (%rdx), %ymm7
5917 ; AVX2-FCP-NEXT:    vmovaps 32(%rcx), %ymm3
5918 ; AVX2-FCP-NEXT:    vmovaps (%rcx), %ymm9
5919 ; AVX2-FCP-NEXT:    vmovaps (%r8), %ymm10
5920 ; AVX2-FCP-NEXT:    vmovaps (%r9), %ymm12
5921 ; AVX2-FCP-NEXT:    vmovaps (%rax), %ymm8
5922 ; AVX2-FCP-NEXT:    vmovaps (%r10), %ymm11
5923 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm6 = ymm8[0],ymm11[0],ymm8[1],ymm11[1],ymm8[4],ymm11[4],ymm8[5],ymm11[5]
5924 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm13 = ymm4[0],ymm5[0],ymm4[1],ymm5[1],ymm4[4],ymm5[4],ymm4[5],ymm5[5]
5925 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm13, %xmm13
5926 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm14 = ymm7[0],ymm9[0],ymm7[1],ymm9[1],ymm7[4],ymm9[4],ymm7[5],ymm9[5]
5927 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm15 = ymm14[2,2,2,2]
5928 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm13 = xmm13[0,1],xmm15[2,3]
5929 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm15 = ymm10[0],ymm12[0],ymm10[1],ymm12[1],ymm10[4],ymm12[4],ymm10[5],ymm12[5]
5930 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm15 = ymm15[0],ymm6[0],ymm15[2],ymm6[2]
5931 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1,2,3],ymm15[4,5,6,7]
5932 ; AVX2-FCP-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5933 ; AVX2-FCP-NEXT:    vbroadcastss 20(%r8), %ymm13
5934 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1,2,3,4],ymm12[5],ymm13[6,7]
5935 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1,2,3,4,5],ymm6[6,7]
5936 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm14, %xmm6
5937 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm14 = ymm4[1,1,1,1,5,5,5,5]
5938 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0],ymm5[1],ymm14[2,3,4],ymm5[5],ymm14[6,7]
5939 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm14, %xmm14
5940 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm14 = xmm14[0,1],xmm6[2,3]
5941 ; AVX2-FCP-NEXT:    vmovaps 32(%r8), %ymm6
5942 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm13 = ymm14[0,1,2,3],ymm13[4,5,6,7]
5943 ; AVX2-FCP-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5944 ; AVX2-FCP-NEXT:    vbroadcastss 24(%r10), %ymm13
5945 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm13 = ymm8[0,1,2,3,4,5,6],ymm13[7]
5946 ; AVX2-FCP-NEXT:    vmovaps 32(%r9), %ymm8
5947 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm12 = ymm10[2],ymm12[2],ymm10[3],ymm12[3],ymm10[6],ymm12[6],ymm10[7],ymm12[7]
5948 ; AVX2-FCP-NEXT:    vmovaps 32(%rax), %ymm10
5949 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm4 = ymm4[2],ymm5[2],ymm4[3],ymm5[3],ymm4[6],ymm5[6],ymm4[7],ymm5[7]
5950 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm4, %xmm5
5951 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm9 = ymm7[2],ymm9[2],ymm7[3],ymm9[3],ymm7[6],ymm9[6],ymm7[7],ymm9[7]
5952 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm7 = ymm9[2,2,2,2]
5953 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm5 = xmm5[0,1],xmm7[2,3]
5954 ; AVX2-FCP-NEXT:    vmovaps 32(%r10), %ymm7
5955 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm13 = ymm12[0,1,2,3,4,5],ymm13[6,7]
5956 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm13[4,5,6,7]
5957 ; AVX2-FCP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5958 ; AVX2-FCP-NEXT:    vbroadcastss 28(%rax), %ymm5
5959 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm5 = ymm5[2],ymm11[2],ymm5[3],ymm11[3],ymm5[6],ymm11[6],ymm5[7],ymm11[7]
5960 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm5 = ymm12[1],ymm5[1],ymm12[3],ymm5[3]
5961 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm9, %xmm9
5962 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[2,3,2,3,6,7,6,7]
5963 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm4, %xmm4
5964 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],xmm9[2,3]
5965 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm5[4,5,6,7]
5966 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5967 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm4 = ymm10[0],ymm7[0],ymm10[1],ymm7[1],ymm10[4],ymm7[4],ymm10[5],ymm7[5]
5968 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]
5969 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm5, %xmm5
5970 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm9 = ymm2[0],ymm3[0],ymm2[1],ymm3[1],ymm2[4],ymm3[4],ymm2[5],ymm3[5]
5971 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm11 = ymm9[2,2,2,2]
5972 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm5 = xmm5[0,1],xmm11[2,3]
5973 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm11 = ymm6[0],ymm8[0],ymm6[1],ymm8[1],ymm6[4],ymm8[4],ymm6[5],ymm8[5]
5974 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm11 = ymm11[0],ymm4[0],ymm11[2],ymm4[2]
5975 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm11[4,5,6,7]
5976 ; AVX2-FCP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5977 ; AVX2-FCP-NEXT:    vbroadcastss 52(%r8), %ymm5
5978 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4],ymm8[5],ymm5[6,7]
5979 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],ymm4[6,7]
5980 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm9, %xmm4
5981 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm9 = ymm0[1,1,1,1,5,5,5,5]
5982 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0],ymm1[1],ymm9[2,3,4],ymm1[5],ymm9[6,7]
5983 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm9, %xmm9
5984 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm9 = xmm9[0,1],xmm4[2,3]
5985 ; AVX2-FCP-NEXT:    vmovaps 64(%rdi), %ymm4
5986 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm9[0,1,2,3],ymm5[4,5,6,7]
5987 ; AVX2-FCP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5988 ; AVX2-FCP-NEXT:    vbroadcastss 56(%r10), %ymm5
5989 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm9 = ymm10[0,1,2,3,4,5,6],ymm5[7]
5990 ; AVX2-FCP-NEXT:    vmovaps 64(%rsi), %ymm5
5991 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm8 = ymm6[2],ymm8[2],ymm6[3],ymm8[3],ymm6[6],ymm8[6],ymm6[7],ymm8[7]
5992 ; AVX2-FCP-NEXT:    vmovaps 64(%rdx), %ymm6
5993 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm10 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
5994 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm10, %xmm0
5995 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm2[2],ymm3[2],ymm2[3],ymm3[3],ymm2[6],ymm3[6],ymm2[7],ymm3[7]
5996 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm2[2,2,2,2]
5997 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm0[0,1],xmm1[2,3]
5998 ; AVX2-FCP-NEXT:    vmovaps 64(%rcx), %ymm0
5999 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm8[0,1,2,3,4,5],ymm9[6,7]
6000 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
6001 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6002 ; AVX2-FCP-NEXT:    vbroadcastss 60(%rax), %ymm1
6003 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm3 = ymm1[2],ymm7[2],ymm1[3],ymm7[3],ymm1[6],ymm7[6],ymm1[7],ymm7[7]
6004 ; AVX2-FCP-NEXT:    vmovaps 64(%r8), %ymm1
6005 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm3 = ymm8[1],ymm3[1],ymm8[3],ymm3[3]
6006 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm2, %xmm2
6007 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm7 = ymm10[2,3,2,3,6,7,6,7]
6008 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm7, %xmm7
6009 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm2 = xmm7[0,1],xmm2[2,3]
6010 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
6011 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6012 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm2 = ymm4[0],ymm5[0],ymm4[1],ymm5[1],ymm4[4],ymm5[4],ymm4[5],ymm5[5]
6013 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm2, %xmm2
6014 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm3 = ymm6[0],ymm0[0],ymm6[1],ymm0[1],ymm6[4],ymm0[4],ymm6[5],ymm0[5]
6015 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm7 = ymm3[2,2,2,2]
6016 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm7[2,3]
6017 ; AVX2-FCP-NEXT:    vmovaps 64(%r9), %ymm7
6018 ; AVX2-FCP-NEXT:    vmovaps 64(%rax), %ymm8
6019 ; AVX2-FCP-NEXT:    vmovaps 64(%r10), %ymm9
6020 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm10 = ymm8[0],ymm9[0],ymm8[1],ymm9[1],ymm8[4],ymm9[4],ymm8[5],ymm9[5]
6021 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm11 = ymm1[0],ymm7[0],ymm1[1],ymm7[1],ymm1[4],ymm7[4],ymm1[5],ymm7[5]
6022 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm11 = ymm11[0],ymm10[0],ymm11[2],ymm10[2]
6023 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm11[4,5,6,7]
6024 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6025 ; AVX2-FCP-NEXT:    vbroadcastss 84(%r8), %ymm2
6026 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm7[5],ymm2[6,7]
6027 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm10[6,7]
6028 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm3, %xmm3
6029 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm10 = ymm4[1,1,1,1,5,5,5,5]
6030 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0],ymm5[1],ymm10[2,3,4],ymm5[5],ymm10[6,7]
6031 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm10, %xmm10
6032 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm3 = xmm10[0,1],xmm3[2,3]
6033 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
6034 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6035 ; AVX2-FCP-NEXT:    vbroadcastss 88(%r10), %ymm2
6036 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm8[0,1,2,3,4,5,6],ymm2[7]
6037 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm1[2],ymm7[2],ymm1[3],ymm7[3],ymm1[6],ymm7[6],ymm1[7],ymm7[7]
6038 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm3 = ymm4[2],ymm5[2],ymm4[3],ymm5[3],ymm4[6],ymm5[6],ymm4[7],ymm5[7]
6039 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm4 = ymm6[2],ymm0[2],ymm6[3],ymm0[3],ymm6[6],ymm0[6],ymm6[7],ymm0[7]
6040 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm3, %xmm0
6041 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm5 = ymm4[2,2,2,2]
6042 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm5[2,3]
6043 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm1[0,1,2,3,4,5],ymm2[6,7]
6044 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
6045 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6046 ; AVX2-FCP-NEXT:    vbroadcastss 92(%rax), %ymm0
6047 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm0[2],ymm9[2],ymm0[3],ymm9[3],ymm0[6],ymm9[6],ymm0[7],ymm9[7]
6048 ; AVX2-FCP-NEXT:    vmovaps 96(%rdi), %ymm0
6049 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm5 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
6050 ; AVX2-FCP-NEXT:    vmovaps 96(%rsi), %ymm1
6051 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm4, %xmm2
6052 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[2,3,2,3,6,7,6,7]
6053 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm3, %xmm3
6054 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm2[2,3]
6055 ; AVX2-FCP-NEXT:    vmovaps 96(%rdx), %ymm2
6056 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm5[4,5,6,7]
6057 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6058 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm3 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]
6059 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm3, %xmm3
6060 ; AVX2-FCP-NEXT:    vmovaps 96(%rcx), %ymm4
6061 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm5 = ymm2[0],ymm4[0],ymm2[1],ymm4[1],ymm2[4],ymm4[4],ymm2[5],ymm4[5]
6062 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm6 = ymm5[2,2,2,2]
6063 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm6[2,3]
6064 ; AVX2-FCP-NEXT:    vmovaps 96(%r8), %ymm6
6065 ; AVX2-FCP-NEXT:    vmovaps 96(%r9), %ymm7
6066 ; AVX2-FCP-NEXT:    vmovaps 96(%rax), %ymm8
6067 ; AVX2-FCP-NEXT:    vmovaps 96(%r10), %ymm9
6068 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm10 = ymm8[0],ymm9[0],ymm8[1],ymm9[1],ymm8[4],ymm9[4],ymm8[5],ymm9[5]
6069 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm11 = ymm6[0],ymm7[0],ymm6[1],ymm7[1],ymm6[4],ymm7[4],ymm6[5],ymm7[5]
6070 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm11 = ymm11[0],ymm10[0],ymm11[2],ymm10[2]
6071 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm11[4,5,6,7]
6072 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6073 ; AVX2-FCP-NEXT:    vbroadcastss 116(%r8), %ymm3
6074 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4],ymm7[5],ymm3[6,7]
6075 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm10[6,7]
6076 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm5, %xmm5
6077 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm10 = ymm0[1,1,1,1,5,5,5,5]
6078 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0],ymm1[1],ymm10[2,3,4],ymm1[5],ymm10[6,7]
6079 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm10, %xmm10
6080 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm5 = xmm10[0,1],xmm5[2,3]
6081 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm5[0,1,2,3],ymm3[4,5,6,7]
6082 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6083 ; AVX2-FCP-NEXT:    vbroadcastss 120(%r10), %ymm3
6084 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm8[0,1,2,3,4,5,6],ymm3[7]
6085 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm5 = ymm6[2],ymm7[2],ymm6[3],ymm7[3],ymm6[6],ymm7[6],ymm6[7],ymm7[7]
6086 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm0 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
6087 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm2[2],ymm4[2],ymm2[3],ymm4[3],ymm2[6],ymm4[6],ymm2[7],ymm4[7]
6088 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm0, %xmm2
6089 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm4 = ymm1[2,2,2,2]
6090 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm4[2,3]
6091 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm5[0,1,2,3,4,5],ymm3[6,7]
6092 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
6093 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6094 ; AVX2-FCP-NEXT:    vbroadcastss 124(%rax), %ymm2
6095 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm2[2],ymm9[2],ymm2[3],ymm9[3],ymm2[6],ymm9[6],ymm2[7],ymm9[7]
6096 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm5[1],ymm2[1],ymm5[3],ymm2[3]
6097 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm1, %xmm1
6098 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]
6099 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm0, %xmm0
6100 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
6101 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
6102 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6103 ; AVX2-FCP-NEXT:    vmovaps (%rcx), %xmm0
6104 ; AVX2-FCP-NEXT:    vbroadcastss %xmm0, %xmm2
6105 ; AVX2-FCP-NEXT:    vmovaps (%rdx), %xmm1
6106 ; AVX2-FCP-NEXT:    vbroadcastss %xmm1, %xmm3
6107 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
6108 ; AVX2-FCP-NEXT:    vmovaps (%rsi), %xmm4
6109 ; AVX2-FCP-NEXT:    vmovaps (%rdi), %xmm5
6110 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
6111 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1],xmm2[2,3]
6112 ; AVX2-FCP-NEXT:    vmovaps (%r10), %xmm2
6113 ; AVX2-FCP-NEXT:    vbroadcastss %xmm2, %xmm7
6114 ; AVX2-FCP-NEXT:    vmovaps (%rax), %xmm3
6115 ; AVX2-FCP-NEXT:    vbroadcastss %xmm3, %xmm8
6116 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm8[0],xmm7[0],xmm8[1],xmm7[1]
6117 ; AVX2-FCP-NEXT:    vmovaps (%r9), %xmm8
6118 ; AVX2-FCP-NEXT:    vmovaps (%r8), %xmm9
6119 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm10 = xmm9[0],xmm8[0],xmm9[1],xmm8[1]
6120 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
6121 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
6122 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
6123 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
6124 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6125 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm6 = xmm5[1,1,1,1]
6126 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0],xmm4[1],xmm6[2,3]
6127 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
6128 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0,1],xmm7[2,3]
6129 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
6130 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
6131 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm10 = xmm9[1,1,1,1]
6132 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0],xmm8[1],xmm10[2,3]
6133 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
6134 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
6135 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
6136 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6137 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
6138 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm9[2],xmm8[2],xmm9[3],xmm8[3]
6139 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm6 = xmm2[2,2,2,2]
6140 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1,2],xmm6[3]
6141 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
6142 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm7
6143 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3,4,5],ymm6[6,7]
6144 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm7 = xmm0[2,2,2,2]
6145 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm7 = xmm1[0,1,2],xmm7[3]
6146 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm7 = xmm4[0,1],xmm7[2,3]
6147 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]
6148 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6149 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
6150 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm4[1],xmm0[1]
6151 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm3[2],xmm2[2],xmm3[3],xmm2[3]
6152 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
6153 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm2 = xmm5[2,3,2,3]
6154 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
6155 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
6156 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
6157 ; AVX2-FCP-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
6158 ; AVX2-FCP-NEXT:    vmovaps 32(%rcx), %xmm0
6159 ; AVX2-FCP-NEXT:    vmovaps 32(%rdx), %xmm1
6160 ; AVX2-FCP-NEXT:    vbroadcastss %xmm0, %xmm2
6161 ; AVX2-FCP-NEXT:    vbroadcastss %xmm1, %xmm3
6162 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
6163 ; AVX2-FCP-NEXT:    vmovaps 32(%rsi), %xmm4
6164 ; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %xmm5
6165 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
6166 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1],xmm2[2,3]
6167 ; AVX2-FCP-NEXT:    vmovaps 32(%r10), %xmm2
6168 ; AVX2-FCP-NEXT:    vmovaps 32(%rax), %xmm3
6169 ; AVX2-FCP-NEXT:    vbroadcastss %xmm2, %xmm7
6170 ; AVX2-FCP-NEXT:    vbroadcastss %xmm3, %xmm8
6171 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm8[0],xmm7[0],xmm8[1],xmm7[1]
6172 ; AVX2-FCP-NEXT:    vmovaps 32(%r9), %xmm8
6173 ; AVX2-FCP-NEXT:    vmovaps 32(%r8), %xmm9
6174 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm10 = xmm9[0],xmm8[0],xmm9[1],xmm8[1]
6175 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
6176 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
6177 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
6178 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
6179 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6180 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm6 = xmm5[1,1,1,1]
6181 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0],xmm4[1],xmm6[2,3]
6182 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
6183 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0,1],xmm7[2,3]
6184 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
6185 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
6186 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm10 = xmm9[1,1,1,1]
6187 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0],xmm8[1],xmm10[2,3]
6188 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
6189 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
6190 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
6191 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6192 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
6193 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm9[2],xmm8[2],xmm9[3],xmm8[3]
6194 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm6 = xmm2[2,2,2,2]
6195 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1,2],xmm6[3]
6196 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
6197 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm7
6198 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3,4,5],ymm6[6,7]
6199 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm7 = xmm0[2,2,2,2]
6200 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm7 = xmm1[0,1,2],xmm7[3]
6201 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm7 = xmm4[0,1],xmm7[2,3]
6202 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]
6203 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6204 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
6205 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm4[1],xmm0[1]
6206 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm3[2],xmm2[2],xmm3[3],xmm2[3]
6207 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
6208 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm2 = xmm5[2,3,2,3]
6209 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
6210 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
6211 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
6212 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6213 ; AVX2-FCP-NEXT:    vmovaps 64(%rcx), %xmm3
6214 ; AVX2-FCP-NEXT:    vmovaps 64(%rdx), %xmm1
6215 ; AVX2-FCP-NEXT:    vbroadcastss %xmm3, %xmm0
6216 ; AVX2-FCP-NEXT:    vbroadcastss %xmm1, %xmm2
6217 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]
6218 ; AVX2-FCP-NEXT:    vmovaps 64(%rsi), %xmm4
6219 ; AVX2-FCP-NEXT:    vmovaps 64(%rdi), %xmm5
6220 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
6221 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm9 = xmm2[0,1],xmm0[2,3]
6222 ; AVX2-FCP-NEXT:    vmovaps 64(%r10), %xmm2
6223 ; AVX2-FCP-NEXT:    vmovaps 64(%rax), %xmm0
6224 ; AVX2-FCP-NEXT:    vbroadcastss %xmm2, %xmm7
6225 ; AVX2-FCP-NEXT:    vbroadcastss %xmm0, %xmm8
6226 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm8[0],xmm7[0],xmm8[1],xmm7[1]
6227 ; AVX2-FCP-NEXT:    vmovaps 64(%r9), %xmm8
6228 ; AVX2-FCP-NEXT:    vmovaps 64(%r8), %xmm6
6229 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm10 = xmm6[0],xmm8[0],xmm6[1],xmm8[1]
6230 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
6231 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
6232 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
6233 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm11 = ymm9[0,1,2,3],ymm7[4,5,6,7]
6234 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm7 = xmm5[1,1,1,1]
6235 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0],xmm4[1],xmm7[2,3]
6236 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm9 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
6237 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0,1],xmm9[2,3]
6238 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm9 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
6239 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm9, %ymm0, %ymm9
6240 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm15 = xmm6[1,1,1,1]
6241 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm15 = xmm15[0],xmm8[1],xmm15[2,3]
6242 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm15
6243 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm9 = ymm15[0,1,2,3,4,5],ymm9[6,7]
6244 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm10 = ymm7[0,1,2,3],ymm9[4,5,6,7]
6245 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
6246 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm6[2],xmm8[2],xmm6[3],xmm8[3]
6247 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm6 = xmm2[2,2,2,2]
6248 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm6 = xmm0[0,1,2],xmm6[3]
6249 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
6250 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm7
6251 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3,4,5],ymm6[6,7]
6252 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm7 = xmm3[2,2,2,2]
6253 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm7 = xmm1[0,1,2],xmm7[3]
6254 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm7 = xmm4[0,1],xmm7[2,3]
6255 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm9 = ymm7[0,1,2,3],ymm6[4,5,6,7]
6256 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm1[2],xmm3[2],xmm1[3],xmm3[3]
6257 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm4[1],xmm1[1]
6258 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm0[2],xmm2[2],xmm0[3],xmm2[3]
6259 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
6260 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm2 = xmm5[2,3,2,3]
6261 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
6262 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3,4,5],ymm0[6,7]
6263 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm8 = ymm1[0,1,2,3],ymm0[4,5,6,7]
6264 ; AVX2-FCP-NEXT:    vmovaps 96(%rcx), %xmm6
6265 ; AVX2-FCP-NEXT:    vbroadcastss %xmm6, %xmm0
6266 ; AVX2-FCP-NEXT:    vmovaps 96(%rdx), %xmm5
6267 ; AVX2-FCP-NEXT:    vbroadcastss %xmm5, %xmm1
6268 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
6269 ; AVX2-FCP-NEXT:    vmovaps 96(%rsi), %xmm4
6270 ; AVX2-FCP-NEXT:    vmovaps 96(%rdi), %xmm2
6271 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm2[0],xmm4[0],xmm2[1],xmm4[1]
6272 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm7 = xmm3[0,1],xmm0[2,3]
6273 ; AVX2-FCP-NEXT:    vmovaps 96(%r10), %xmm3
6274 ; AVX2-FCP-NEXT:    vbroadcastss %xmm3, %xmm15
6275 ; AVX2-FCP-NEXT:    vmovaps 96(%rax), %xmm1
6276 ; AVX2-FCP-NEXT:    vbroadcastss %xmm1, %xmm14
6277 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm14 = xmm14[0],xmm15[0],xmm14[1],xmm15[1]
6278 ; AVX2-FCP-NEXT:    vmovaps 96(%r9), %xmm15
6279 ; AVX2-FCP-NEXT:    vmovaps 96(%r8), %xmm0
6280 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm13 = xmm0[0],xmm15[0],xmm0[1],xmm15[1]
6281 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm13, %ymm0, %ymm13
6282 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm14, %ymm0, %ymm14
6283 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1,2,3,4,5],ymm14[6,7]
6284 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm14 = ymm7[0,1,2,3],ymm13[4,5,6,7]
6285 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm7 = xmm2[1,1,1,1]
6286 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0],xmm4[1],xmm7[2,3]
6287 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm13 = xmm5[0],xmm6[0],xmm5[1],xmm6[1]
6288 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0,1],xmm13[2,3]
6289 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm13 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
6290 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm13, %ymm0, %ymm13
6291 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm12 = xmm0[1,1,1,1]
6292 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm12 = xmm12[0],xmm15[1],xmm12[2,3]
6293 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm12
6294 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3,4,5],ymm13[6,7]
6295 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3],ymm12[4,5,6,7]
6296 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm2[2],xmm4[2],xmm2[3],xmm4[3]
6297 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm0[2],xmm15[2],xmm0[3],xmm15[3]
6298 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm4 = xmm3[2,2,2,2]
6299 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm4 = xmm1[0,1,2],xmm4[3]
6300 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
6301 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm12
6302 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm12[0,1,2,3,4,5],ymm4[6,7]
6303 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm12 = xmm6[2,2,2,2]
6304 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm12 = xmm5[0,1,2],xmm12[3]
6305 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm12 = xmm2[0,1],xmm12[2,3]
6306 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm12[0,1,2,3],ymm4[4,5,6,7]
6307 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm5[2],xmm6[2],xmm5[3],xmm6[3]
6308 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm2 = xmm2[1],xmm5[1]
6309 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm1[2],xmm3[2],xmm1[3],xmm3[3]
6310 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
6311 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[2,3,2,3]
6312 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
6313 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
6314 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
6315 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
6316 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 864(%rax)
6317 ; AVX2-FCP-NEXT:    vmovaps %ymm4, 832(%rax)
6318 ; AVX2-FCP-NEXT:    vmovaps %ymm7, 800(%rax)
6319 ; AVX2-FCP-NEXT:    vmovaps %ymm14, 768(%rax)
6320 ; AVX2-FCP-NEXT:    vmovaps %ymm8, 608(%rax)
6321 ; AVX2-FCP-NEXT:    vmovaps %ymm9, 576(%rax)
6322 ; AVX2-FCP-NEXT:    vmovaps %ymm10, 544(%rax)
6323 ; AVX2-FCP-NEXT:    vmovaps %ymm11, 512(%rax)
6324 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6325 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 352(%rax)
6326 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6327 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 320(%rax)
6328 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6329 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 288(%rax)
6330 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6331 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 256(%rax)
6332 ; AVX2-FCP-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
6333 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 96(%rax)
6334 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6335 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 64(%rax)
6336 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6337 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 32(%rax)
6338 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6339 ; AVX2-FCP-NEXT:    vmovaps %ymm0, (%rax)
6340 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6341 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 992(%rax)
6342 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6343 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 960(%rax)
6344 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6345 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 928(%rax)
6346 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6347 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 896(%rax)
6348 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6349 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 736(%rax)
6350 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6351 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 704(%rax)
6352 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6353 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 672(%rax)
6354 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6355 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 640(%rax)
6356 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6357 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 480(%rax)
6358 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6359 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 448(%rax)
6360 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6361 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 416(%rax)
6362 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6363 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 384(%rax)
6364 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6365 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 224(%rax)
6366 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6367 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 192(%rax)
6368 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6369 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 160(%rax)
6370 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6371 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 128(%rax)
6372 ; AVX2-FCP-NEXT:    addq $648, %rsp # imm = 0x288
6373 ; AVX2-FCP-NEXT:    vzeroupper
6374 ; AVX2-FCP-NEXT:    retq
6376 ; AVX512-LABEL: store_i32_stride8_vf32:
6377 ; AVX512:       # %bb.0:
6378 ; AVX512-NEXT:    subq $2056, %rsp # imm = 0x808
6379 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax
6380 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %r10
6381 ; AVX512-NEXT:    vmovdqa64 (%r8), %zmm1
6382 ; AVX512-NEXT:    vmovdqa64 (%r9), %zmm27
6383 ; AVX512-NEXT:    vmovdqa64 (%r10), %zmm2
6384 ; AVX512-NEXT:    vmovdqa64 64(%r10), %zmm0
6385 ; AVX512-NEXT:    vmovdqa64 (%rax), %zmm30
6386 ; AVX512-NEXT:    vmovdqa64 64(%rax), %zmm28
6387 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,0,0,0,0,0,2,18,0,0,0,0,0,0,3,19]
6388 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm5
6389 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm4
6390 ; AVX512-NEXT:    vpermt2d %zmm30, %zmm3, %zmm5
6391 ; AVX512-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6392 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [0,0,0,0,2,18,0,0,0,0,0,0,3,19,0,0]
6393 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm5
6394 ; AVX512-NEXT:    vpermt2d %zmm27, %zmm2, %zmm5
6395 ; AVX512-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6396 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,0,0,0,0,0,0,16,0,0,0,0,0,0,1,17]
6397 ; AVX512-NEXT:    vmovdqa64 %zmm4, %zmm6
6398 ; AVX512-NEXT:    vpermt2d %zmm30, %zmm5, %zmm6
6399 ; AVX512-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6400 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [0,0,0,0,0,16,0,0,0,0,0,0,1,17,0,0]
6401 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm7
6402 ; AVX512-NEXT:    vpermt2d %zmm27, %zmm6, %zmm7
6403 ; AVX512-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6404 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [0,0,0,0,0,0,6,22,0,0,0,0,0,0,7,23]
6405 ; AVX512-NEXT:    vmovdqa64 %zmm4, %zmm8
6406 ; AVX512-NEXT:    vpermt2d %zmm30, %zmm7, %zmm8
6407 ; AVX512-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6408 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,0,0,0,6,22,0,0,0,0,0,0,7,23,0,0]
6409 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm9
6410 ; AVX512-NEXT:    vpermt2d %zmm27, %zmm8, %zmm9
6411 ; AVX512-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6412 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [0,0,0,0,0,0,4,20,0,0,0,0,0,0,5,21]
6413 ; AVX512-NEXT:    vmovdqa64 %zmm4, %zmm10
6414 ; AVX512-NEXT:    vpermt2d %zmm30, %zmm9, %zmm10
6415 ; AVX512-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6416 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [0,0,0,0,4,20,0,0,0,0,0,0,5,21,0,0]
6417 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm11
6418 ; AVX512-NEXT:    vpermt2d %zmm27, %zmm10, %zmm11
6419 ; AVX512-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6420 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [0,0,0,0,0,0,10,26,0,0,0,0,0,0,11,27]
6421 ; AVX512-NEXT:    vmovdqa64 %zmm4, %zmm12
6422 ; AVX512-NEXT:    vpermt2d %zmm30, %zmm11, %zmm12
6423 ; AVX512-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6424 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,0,0,10,26,0,0,0,0,0,0,11,27,0,0]
6425 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm13
6426 ; AVX512-NEXT:    vpermt2d %zmm27, %zmm12, %zmm13
6427 ; AVX512-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6428 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm13 = [0,0,0,0,0,0,8,24,0,0,0,0,0,0,9,25]
6429 ; AVX512-NEXT:    vmovdqa64 %zmm4, %zmm14
6430 ; AVX512-NEXT:    vpermt2d %zmm30, %zmm13, %zmm14
6431 ; AVX512-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6432 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [0,0,0,0,8,24,0,0,0,0,0,0,9,25,0,0]
6433 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm15 = [0,0,0,0,0,0,14,30,0,0,0,0,0,0,15,31]
6434 ; AVX512-NEXT:    vmovdqa64 %zmm4, %zmm16
6435 ; AVX512-NEXT:    vpermt2d %zmm30, %zmm15, %zmm16
6436 ; AVX512-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6437 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm31 = [0,0,0,0,0,0,12,28,0,0,0,0,0,0,13,29]
6438 ; AVX512-NEXT:    vpermt2d %zmm30, %zmm31, %zmm4
6439 ; AVX512-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6440 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm4
6441 ; AVX512-NEXT:    vpermt2d %zmm27, %zmm14, %zmm4
6442 ; AVX512-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6443 ; AVX512-NEXT:    vpermi2d %zmm28, %zmm0, %zmm3
6444 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6445 ; AVX512-NEXT:    vpermi2d %zmm28, %zmm0, %zmm5
6446 ; AVX512-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6447 ; AVX512-NEXT:    vpermi2d %zmm28, %zmm0, %zmm7
6448 ; AVX512-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6449 ; AVX512-NEXT:    vpermi2d %zmm28, %zmm0, %zmm9
6450 ; AVX512-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6451 ; AVX512-NEXT:    vpermi2d %zmm28, %zmm0, %zmm11
6452 ; AVX512-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6453 ; AVX512-NEXT:    vpermi2d %zmm28, %zmm0, %zmm13
6454 ; AVX512-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6455 ; AVX512-NEXT:    vpermi2d %zmm28, %zmm0, %zmm15
6456 ; AVX512-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6457 ; AVX512-NEXT:    vpermt2d %zmm28, %zmm31, %zmm0
6458 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6459 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm28 = [0,0,0,0,14,30,0,0,0,0,0,0,15,31,0,0]
6460 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm31
6461 ; AVX512-NEXT:    vpermt2d %zmm27, %zmm28, %zmm31
6462 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm0 = [0,0,0,0,12,28,0,0,0,0,0,0,13,29,0,0]
6463 ; AVX512-NEXT:    vpermt2d %zmm27, %zmm0, %zmm1
6464 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6465 ; AVX512-NEXT:    vmovdqa64 64(%r8), %zmm27
6466 ; AVX512-NEXT:    vmovdqa64 64(%r9), %zmm1
6467 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm27, %zmm2
6468 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6469 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm27, %zmm6
6470 ; AVX512-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6471 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm27, %zmm8
6472 ; AVX512-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6473 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm27, %zmm10
6474 ; AVX512-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6475 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm27, %zmm12
6476 ; AVX512-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6477 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm27, %zmm14
6478 ; AVX512-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6479 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm27, %zmm28
6480 ; AVX512-NEXT:    vpermt2d %zmm1, %zmm0, %zmm27
6481 ; AVX512-NEXT:    vmovdqa64 (%rdx), %zmm16
6482 ; AVX512-NEXT:    vmovdqa64 (%rcx), %zmm0
6483 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,2,18,0,0,0,0,0,0,3,19,0,0,0,0]
6484 ; AVX512-NEXT:    vmovdqa64 %zmm16, %zmm20
6485 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm1, %zmm20
6486 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm2
6487 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,16,0,0,0,0,0,0,1,17,0,0,0,0]
6488 ; AVX512-NEXT:    vmovdqa64 %zmm16, %zmm21
6489 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm1, %zmm21
6490 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm3
6491 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,6,22,0,0,0,0,0,0,7,23,0,0,0,0]
6492 ; AVX512-NEXT:    vmovdqa64 %zmm16, %zmm22
6493 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm1, %zmm22
6494 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm4
6495 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,4,20,0,0,0,0,0,0,5,21,0,0,0,0]
6496 ; AVX512-NEXT:    vmovdqa64 %zmm16, %zmm23
6497 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm1, %zmm23
6498 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm6
6499 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,10,26,0,0,0,0,0,0,11,27,0,0,0,0]
6500 ; AVX512-NEXT:    vmovdqa64 %zmm16, %zmm24
6501 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm1, %zmm24
6502 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm7
6503 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm29 = [0,0,8,24,0,0,0,0,0,0,9,25,0,0,0,0]
6504 ; AVX512-NEXT:    vmovdqa64 %zmm16, %zmm25
6505 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm29, %zmm25
6506 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm30 = [0,0,14,30,0,0,0,0,0,0,15,31,0,0,0,0]
6507 ; AVX512-NEXT:    vmovdqa64 %zmm16, %zmm26
6508 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm30, %zmm26
6509 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,12,28,0,0,0,0,0,0,13,29,0,0,0,0]
6510 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm1, %zmm16
6511 ; AVX512-NEXT:    vmovdqa64 64(%rdx), %zmm5
6512 ; AVX512-NEXT:    vmovdqa64 64(%rcx), %zmm0
6513 ; AVX512-NEXT:    vpermi2d %zmm0, %zmm5, %zmm2
6514 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6515 ; AVX512-NEXT:    vpermi2d %zmm0, %zmm5, %zmm3
6516 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6517 ; AVX512-NEXT:    vpermi2d %zmm0, %zmm5, %zmm4
6518 ; AVX512-NEXT:    vmovdqu64 %zmm4, (%rsp) # 64-byte Spill
6519 ; AVX512-NEXT:    vpermi2d %zmm0, %zmm5, %zmm6
6520 ; AVX512-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6521 ; AVX512-NEXT:    vpermi2d %zmm0, %zmm5, %zmm7
6522 ; AVX512-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6523 ; AVX512-NEXT:    vpermi2d %zmm0, %zmm5, %zmm29
6524 ; AVX512-NEXT:    vpermi2d %zmm0, %zmm5, %zmm30
6525 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm1, %zmm5
6526 ; AVX512-NEXT:    vmovdqa64 (%rdi), %zmm3
6527 ; AVX512-NEXT:    vmovdqa64 (%rsi), %zmm0
6528 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [2,18,0,0,0,0,0,0,3,19,0,0,0,0,0,0]
6529 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm18
6530 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm12, %zmm18
6531 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [0,16,0,0,0,0,0,0,1,17,0,0,0,0,0,0]
6532 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm17
6533 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm10, %zmm17
6534 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [6,22,0,0,0,0,0,0,7,23,0,0,0,0,0,0]
6535 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm15
6536 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm8, %zmm15
6537 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [4,20,0,0,0,0,0,0,5,21,0,0,0,0,0,0]
6538 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm14
6539 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm7, %zmm14
6540 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [10,26,0,0,0,0,0,0,11,27,0,0,0,0,0,0]
6541 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm13
6542 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm6, %zmm13
6543 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [8,24,0,0,0,0,0,0,9,25,0,0,0,0,0,0]
6544 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm11
6545 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm4, %zmm11
6546 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [14,30,0,0,0,0,0,0,15,31,0,0,0,0,0,0]
6547 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm9
6548 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm2, %zmm9
6549 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm19 = [12,28,0,0,0,0,0,0,13,29,0,0,0,0,0,0]
6550 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm19, %zmm3
6551 ; AVX512-NEXT:    vmovdqa64 64(%rdi), %zmm1
6552 ; AVX512-NEXT:    vmovdqa64 64(%rsi), %zmm0
6553 ; AVX512-NEXT:    vpermi2d %zmm0, %zmm1, %zmm12
6554 ; AVX512-NEXT:    vpermi2d %zmm0, %zmm1, %zmm10
6555 ; AVX512-NEXT:    vpermi2d %zmm0, %zmm1, %zmm8
6556 ; AVX512-NEXT:    vpermi2d %zmm0, %zmm1, %zmm7
6557 ; AVX512-NEXT:    vpermi2d %zmm0, %zmm1, %zmm6
6558 ; AVX512-NEXT:    vpermi2d %zmm0, %zmm1, %zmm4
6559 ; AVX512-NEXT:    vpermi2d %zmm0, %zmm1, %zmm2
6560 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm19, %zmm1
6561 ; AVX512-NEXT:    movb $-120, %al
6562 ; AVX512-NEXT:    kmovw %eax, %k1
6563 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6564 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
6565 ; AVX512-NEXT:    vmovdqa64 %zmm19, %zmm0 {%k1}
6566 ; AVX512-NEXT:    movb $34, %al
6567 ; AVX512-NEXT:    kmovw %eax, %k2
6568 ; AVX512-NEXT:    vmovdqa64 %zmm20, %zmm18 {%k2}
6569 ; AVX512-NEXT:    movb $-52, %al
6570 ; AVX512-NEXT:    kmovw %eax, %k3
6571 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm18 {%k3}
6572 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6573 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
6574 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k1}
6575 ; AVX512-NEXT:    vmovdqa64 %zmm21, %zmm17 {%k2}
6576 ; AVX512-NEXT:    vmovdqa64 %zmm19, %zmm17 {%k3}
6577 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6578 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
6579 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k1}
6580 ; AVX512-NEXT:    vmovdqa64 %zmm22, %zmm15 {%k2}
6581 ; AVX512-NEXT:    vmovdqa64 %zmm19, %zmm15 {%k3}
6582 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6583 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
6584 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k1}
6585 ; AVX512-NEXT:    vmovdqa64 %zmm23, %zmm14 {%k2}
6586 ; AVX512-NEXT:    vmovdqa64 %zmm19, %zmm14 {%k3}
6587 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6588 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
6589 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k1}
6590 ; AVX512-NEXT:    vmovdqa64 %zmm24, %zmm13 {%k2}
6591 ; AVX512-NEXT:    vmovdqa64 %zmm19, %zmm13 {%k3}
6592 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6593 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
6594 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k1}
6595 ; AVX512-NEXT:    vmovdqa64 %zmm25, %zmm11 {%k2}
6596 ; AVX512-NEXT:    vmovdqa64 %zmm19, %zmm11 {%k3}
6597 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6598 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k1}
6599 ; AVX512-NEXT:    vmovdqa64 %zmm26, %zmm9 {%k2}
6600 ; AVX512-NEXT:    vmovdqa64 %zmm31, %zmm9 {%k3}
6601 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6602 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
6603 ; AVX512-NEXT:    vmovdqa64 %zmm19, %zmm0 {%k1}
6604 ; AVX512-NEXT:    vmovdqa64 %zmm16, %zmm3 {%k2}
6605 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k3}
6606 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6607 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
6608 ; AVX512-NEXT:    vmovdqa64 %zmm16, %zmm0 {%k1}
6609 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
6610 ; AVX512-NEXT:    vmovdqa64 %zmm16, %zmm12 {%k2}
6611 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm12 {%k3}
6612 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6613 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
6614 ; AVX512-NEXT:    vmovdqa64 %zmm16, %zmm0 {%k1}
6615 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
6616 ; AVX512-NEXT:    vmovdqa64 %zmm16, %zmm10 {%k2}
6617 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm10 {%k3}
6618 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6619 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
6620 ; AVX512-NEXT:    vmovdqa64 %zmm16, %zmm0 {%k1}
6621 ; AVX512-NEXT:    vmovdqu64 (%rsp), %zmm16 # 64-byte Reload
6622 ; AVX512-NEXT:    vmovdqa64 %zmm16, %zmm8 {%k2}
6623 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k3}
6624 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6625 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
6626 ; AVX512-NEXT:    vmovdqa64 %zmm16, %zmm0 {%k1}
6627 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
6628 ; AVX512-NEXT:    vmovdqa64 %zmm16, %zmm7 {%k2}
6629 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k3}
6630 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6631 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
6632 ; AVX512-NEXT:    vmovdqa64 %zmm16, %zmm0 {%k1}
6633 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
6634 ; AVX512-NEXT:    vmovdqa64 %zmm16, %zmm6 {%k2}
6635 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k3}
6636 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6637 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
6638 ; AVX512-NEXT:    vmovdqa64 %zmm16, %zmm0 {%k1}
6639 ; AVX512-NEXT:    vmovdqa64 %zmm29, %zmm4 {%k2}
6640 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k3}
6641 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6642 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm28 {%k1}
6643 ; AVX512-NEXT:    vmovdqa64 %zmm30, %zmm2 {%k2}
6644 ; AVX512-NEXT:    vmovdqa64 %zmm28, %zmm2 {%k3}
6645 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6646 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm27 {%k1}
6647 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm1 {%k2}
6648 ; AVX512-NEXT:    vmovdqa64 %zmm27, %zmm1 {%k3}
6649 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax
6650 ; AVX512-NEXT:    vmovdqa64 %zmm1, 896(%rax)
6651 ; AVX512-NEXT:    vmovdqa64 %zmm2, 960(%rax)
6652 ; AVX512-NEXT:    vmovdqa64 %zmm4, 768(%rax)
6653 ; AVX512-NEXT:    vmovdqa64 %zmm6, 832(%rax)
6654 ; AVX512-NEXT:    vmovdqa64 %zmm7, 640(%rax)
6655 ; AVX512-NEXT:    vmovdqa64 %zmm8, 704(%rax)
6656 ; AVX512-NEXT:    vmovdqa64 %zmm10, 512(%rax)
6657 ; AVX512-NEXT:    vmovdqa64 %zmm12, 576(%rax)
6658 ; AVX512-NEXT:    vmovdqa64 %zmm3, 384(%rax)
6659 ; AVX512-NEXT:    vmovdqa64 %zmm9, 448(%rax)
6660 ; AVX512-NEXT:    vmovdqa64 %zmm11, 256(%rax)
6661 ; AVX512-NEXT:    vmovdqa64 %zmm13, 320(%rax)
6662 ; AVX512-NEXT:    vmovdqa64 %zmm14, 128(%rax)
6663 ; AVX512-NEXT:    vmovdqa64 %zmm15, 192(%rax)
6664 ; AVX512-NEXT:    vmovdqa64 %zmm17, (%rax)
6665 ; AVX512-NEXT:    vmovdqa64 %zmm18, 64(%rax)
6666 ; AVX512-NEXT:    addq $2056, %rsp # imm = 0x808
6667 ; AVX512-NEXT:    vzeroupper
6668 ; AVX512-NEXT:    retq
6670 ; AVX512-FCP-LABEL: store_i32_stride8_vf32:
6671 ; AVX512-FCP:       # %bb.0:
6672 ; AVX512-FCP-NEXT:    subq $2056, %rsp # imm = 0x808
6673 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
6674 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
6675 ; AVX512-FCP-NEXT:    vmovdqa64 (%r8), %zmm1
6676 ; AVX512-FCP-NEXT:    vmovdqa64 (%r9), %zmm27
6677 ; AVX512-FCP-NEXT:    vmovdqa64 (%r10), %zmm2
6678 ; AVX512-FCP-NEXT:    vmovdqa64 64(%r10), %zmm0
6679 ; AVX512-FCP-NEXT:    vmovdqa64 (%rax), %zmm30
6680 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rax), %zmm28
6681 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,0,0,0,0,0,2,18,0,0,0,0,0,0,3,19]
6682 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm5
6683 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm4
6684 ; AVX512-FCP-NEXT:    vpermt2d %zmm30, %zmm3, %zmm5
6685 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6686 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [0,0,0,0,2,18,0,0,0,0,0,0,3,19,0,0]
6687 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm5
6688 ; AVX512-FCP-NEXT:    vpermt2d %zmm27, %zmm2, %zmm5
6689 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6690 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,0,0,0,0,0,0,16,0,0,0,0,0,0,1,17]
6691 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, %zmm6
6692 ; AVX512-FCP-NEXT:    vpermt2d %zmm30, %zmm5, %zmm6
6693 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6694 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [0,0,0,0,0,16,0,0,0,0,0,0,1,17,0,0]
6695 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm7
6696 ; AVX512-FCP-NEXT:    vpermt2d %zmm27, %zmm6, %zmm7
6697 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6698 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [0,0,0,0,0,0,6,22,0,0,0,0,0,0,7,23]
6699 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, %zmm8
6700 ; AVX512-FCP-NEXT:    vpermt2d %zmm30, %zmm7, %zmm8
6701 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6702 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,0,0,0,6,22,0,0,0,0,0,0,7,23,0,0]
6703 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm9
6704 ; AVX512-FCP-NEXT:    vpermt2d %zmm27, %zmm8, %zmm9
6705 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6706 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [0,0,0,0,0,0,4,20,0,0,0,0,0,0,5,21]
6707 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, %zmm10
6708 ; AVX512-FCP-NEXT:    vpermt2d %zmm30, %zmm9, %zmm10
6709 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6710 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [0,0,0,0,4,20,0,0,0,0,0,0,5,21,0,0]
6711 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm11
6712 ; AVX512-FCP-NEXT:    vpermt2d %zmm27, %zmm10, %zmm11
6713 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6714 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [0,0,0,0,0,0,10,26,0,0,0,0,0,0,11,27]
6715 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, %zmm12
6716 ; AVX512-FCP-NEXT:    vpermt2d %zmm30, %zmm11, %zmm12
6717 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6718 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,0,0,10,26,0,0,0,0,0,0,11,27,0,0]
6719 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm13
6720 ; AVX512-FCP-NEXT:    vpermt2d %zmm27, %zmm12, %zmm13
6721 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6722 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm13 = [0,0,0,0,0,0,8,24,0,0,0,0,0,0,9,25]
6723 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, %zmm14
6724 ; AVX512-FCP-NEXT:    vpermt2d %zmm30, %zmm13, %zmm14
6725 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6726 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [0,0,0,0,8,24,0,0,0,0,0,0,9,25,0,0]
6727 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm15 = [0,0,0,0,0,0,14,30,0,0,0,0,0,0,15,31]
6728 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, %zmm16
6729 ; AVX512-FCP-NEXT:    vpermt2d %zmm30, %zmm15, %zmm16
6730 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6731 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm31 = [0,0,0,0,0,0,12,28,0,0,0,0,0,0,13,29]
6732 ; AVX512-FCP-NEXT:    vpermt2d %zmm30, %zmm31, %zmm4
6733 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6734 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4
6735 ; AVX512-FCP-NEXT:    vpermt2d %zmm27, %zmm14, %zmm4
6736 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6737 ; AVX512-FCP-NEXT:    vpermi2d %zmm28, %zmm0, %zmm3
6738 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6739 ; AVX512-FCP-NEXT:    vpermi2d %zmm28, %zmm0, %zmm5
6740 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6741 ; AVX512-FCP-NEXT:    vpermi2d %zmm28, %zmm0, %zmm7
6742 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6743 ; AVX512-FCP-NEXT:    vpermi2d %zmm28, %zmm0, %zmm9
6744 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6745 ; AVX512-FCP-NEXT:    vpermi2d %zmm28, %zmm0, %zmm11
6746 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6747 ; AVX512-FCP-NEXT:    vpermi2d %zmm28, %zmm0, %zmm13
6748 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6749 ; AVX512-FCP-NEXT:    vpermi2d %zmm28, %zmm0, %zmm15
6750 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6751 ; AVX512-FCP-NEXT:    vpermt2d %zmm28, %zmm31, %zmm0
6752 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6753 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm28 = [0,0,0,0,14,30,0,0,0,0,0,0,15,31,0,0]
6754 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm31
6755 ; AVX512-FCP-NEXT:    vpermt2d %zmm27, %zmm28, %zmm31
6756 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm0 = [0,0,0,0,12,28,0,0,0,0,0,0,13,29,0,0]
6757 ; AVX512-FCP-NEXT:    vpermt2d %zmm27, %zmm0, %zmm1
6758 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6759 ; AVX512-FCP-NEXT:    vmovdqa64 64(%r8), %zmm27
6760 ; AVX512-FCP-NEXT:    vmovdqa64 64(%r9), %zmm1
6761 ; AVX512-FCP-NEXT:    vpermi2d %zmm1, %zmm27, %zmm2
6762 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6763 ; AVX512-FCP-NEXT:    vpermi2d %zmm1, %zmm27, %zmm6
6764 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6765 ; AVX512-FCP-NEXT:    vpermi2d %zmm1, %zmm27, %zmm8
6766 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6767 ; AVX512-FCP-NEXT:    vpermi2d %zmm1, %zmm27, %zmm10
6768 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6769 ; AVX512-FCP-NEXT:    vpermi2d %zmm1, %zmm27, %zmm12
6770 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6771 ; AVX512-FCP-NEXT:    vpermi2d %zmm1, %zmm27, %zmm14
6772 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6773 ; AVX512-FCP-NEXT:    vpermi2d %zmm1, %zmm27, %zmm28
6774 ; AVX512-FCP-NEXT:    vpermt2d %zmm1, %zmm0, %zmm27
6775 ; AVX512-FCP-NEXT:    vmovdqa64 (%rdx), %zmm16
6776 ; AVX512-FCP-NEXT:    vmovdqa64 (%rcx), %zmm0
6777 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,2,18,0,0,0,0,0,0,3,19,0,0,0,0]
6778 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, %zmm20
6779 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm20
6780 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2
6781 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,16,0,0,0,0,0,0,1,17,0,0,0,0]
6782 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, %zmm21
6783 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm21
6784 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm3
6785 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,6,22,0,0,0,0,0,0,7,23,0,0,0,0]
6786 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, %zmm22
6787 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm22
6788 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4
6789 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,4,20,0,0,0,0,0,0,5,21,0,0,0,0]
6790 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, %zmm23
6791 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm23
6792 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm6
6793 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,10,26,0,0,0,0,0,0,11,27,0,0,0,0]
6794 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, %zmm24
6795 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm24
6796 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm7
6797 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm29 = [0,0,8,24,0,0,0,0,0,0,9,25,0,0,0,0]
6798 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, %zmm25
6799 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm29, %zmm25
6800 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm30 = [0,0,14,30,0,0,0,0,0,0,15,31,0,0,0,0]
6801 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, %zmm26
6802 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm30, %zmm26
6803 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,12,28,0,0,0,0,0,0,13,29,0,0,0,0]
6804 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm16
6805 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rdx), %zmm5
6806 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rcx), %zmm0
6807 ; AVX512-FCP-NEXT:    vpermi2d %zmm0, %zmm5, %zmm2
6808 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6809 ; AVX512-FCP-NEXT:    vpermi2d %zmm0, %zmm5, %zmm3
6810 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6811 ; AVX512-FCP-NEXT:    vpermi2d %zmm0, %zmm5, %zmm4
6812 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm4, (%rsp) # 64-byte Spill
6813 ; AVX512-FCP-NEXT:    vpermi2d %zmm0, %zmm5, %zmm6
6814 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6815 ; AVX512-FCP-NEXT:    vpermi2d %zmm0, %zmm5, %zmm7
6816 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6817 ; AVX512-FCP-NEXT:    vpermi2d %zmm0, %zmm5, %zmm29
6818 ; AVX512-FCP-NEXT:    vpermi2d %zmm0, %zmm5, %zmm30
6819 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm5
6820 ; AVX512-FCP-NEXT:    vmovdqa64 (%rdi), %zmm3
6821 ; AVX512-FCP-NEXT:    vmovdqa64 (%rsi), %zmm0
6822 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [2,18,0,0,0,0,0,0,3,19,0,0,0,0,0,0]
6823 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm18
6824 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm12, %zmm18
6825 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [0,16,0,0,0,0,0,0,1,17,0,0,0,0,0,0]
6826 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm17
6827 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm10, %zmm17
6828 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [6,22,0,0,0,0,0,0,7,23,0,0,0,0,0,0]
6829 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm15
6830 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm8, %zmm15
6831 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [4,20,0,0,0,0,0,0,5,21,0,0,0,0,0,0]
6832 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm14
6833 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm7, %zmm14
6834 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [10,26,0,0,0,0,0,0,11,27,0,0,0,0,0,0]
6835 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm13
6836 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm6, %zmm13
6837 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [8,24,0,0,0,0,0,0,9,25,0,0,0,0,0,0]
6838 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm11
6839 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm4, %zmm11
6840 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [14,30,0,0,0,0,0,0,15,31,0,0,0,0,0,0]
6841 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm9
6842 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm2, %zmm9
6843 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm19 = [12,28,0,0,0,0,0,0,13,29,0,0,0,0,0,0]
6844 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm19, %zmm3
6845 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm1
6846 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rsi), %zmm0
6847 ; AVX512-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm12
6848 ; AVX512-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm10
6849 ; AVX512-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm8
6850 ; AVX512-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm7
6851 ; AVX512-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm6
6852 ; AVX512-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm4
6853 ; AVX512-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm2
6854 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm19, %zmm1
6855 ; AVX512-FCP-NEXT:    movb $-120, %al
6856 ; AVX512-FCP-NEXT:    kmovw %eax, %k1
6857 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6858 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
6859 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm19, %zmm0 {%k1}
6860 ; AVX512-FCP-NEXT:    movb $34, %al
6861 ; AVX512-FCP-NEXT:    kmovw %eax, %k2
6862 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm20, %zmm18 {%k2}
6863 ; AVX512-FCP-NEXT:    movb $-52, %al
6864 ; AVX512-FCP-NEXT:    kmovw %eax, %k3
6865 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm18 {%k3}
6866 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6867 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
6868 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k1}
6869 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm21, %zmm17 {%k2}
6870 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm19, %zmm17 {%k3}
6871 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6872 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
6873 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k1}
6874 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm22, %zmm15 {%k2}
6875 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm19, %zmm15 {%k3}
6876 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6877 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
6878 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k1}
6879 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm23, %zmm14 {%k2}
6880 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm19, %zmm14 {%k3}
6881 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6882 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
6883 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k1}
6884 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm24, %zmm13 {%k2}
6885 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm19, %zmm13 {%k3}
6886 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6887 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
6888 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k1}
6889 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm25, %zmm11 {%k2}
6890 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm19, %zmm11 {%k3}
6891 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6892 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k1}
6893 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm26, %zmm9 {%k2}
6894 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm31, %zmm9 {%k3}
6895 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6896 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
6897 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm19, %zmm0 {%k1}
6898 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, %zmm3 {%k2}
6899 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k3}
6900 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6901 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
6902 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, %zmm0 {%k1}
6903 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
6904 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, %zmm12 {%k2}
6905 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm12 {%k3}
6906 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6907 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
6908 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, %zmm0 {%k1}
6909 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
6910 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, %zmm10 {%k2}
6911 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm10 {%k3}
6912 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6913 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
6914 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, %zmm0 {%k1}
6915 ; AVX512-FCP-NEXT:    vmovdqu64 (%rsp), %zmm16 # 64-byte Reload
6916 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, %zmm8 {%k2}
6917 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k3}
6918 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6919 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
6920 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, %zmm0 {%k1}
6921 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
6922 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, %zmm7 {%k2}
6923 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k3}
6924 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6925 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
6926 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, %zmm0 {%k1}
6927 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
6928 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, %zmm6 {%k2}
6929 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k3}
6930 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6931 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
6932 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, %zmm0 {%k1}
6933 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm29, %zmm4 {%k2}
6934 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k3}
6935 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6936 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm28 {%k1}
6937 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm30, %zmm2 {%k2}
6938 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm28, %zmm2 {%k3}
6939 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6940 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm27 {%k1}
6941 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm1 {%k2}
6942 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm27, %zmm1 {%k3}
6943 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
6944 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, 896(%rax)
6945 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, 960(%rax)
6946 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, 768(%rax)
6947 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, 832(%rax)
6948 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, 640(%rax)
6949 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, 704(%rax)
6950 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm10, 512(%rax)
6951 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, 576(%rax)
6952 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, 384(%rax)
6953 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm9, 448(%rax)
6954 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm11, 256(%rax)
6955 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, 320(%rax)
6956 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm14, 128(%rax)
6957 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm15, 192(%rax)
6958 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm17, (%rax)
6959 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm18, 64(%rax)
6960 ; AVX512-FCP-NEXT:    addq $2056, %rsp # imm = 0x808
6961 ; AVX512-FCP-NEXT:    vzeroupper
6962 ; AVX512-FCP-NEXT:    retq
6964 ; AVX512DQ-LABEL: store_i32_stride8_vf32:
6965 ; AVX512DQ:       # %bb.0:
6966 ; AVX512DQ-NEXT:    subq $2056, %rsp # imm = 0x808
6967 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %rax
6968 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %r10
6969 ; AVX512DQ-NEXT:    vmovdqa64 (%r8), %zmm1
6970 ; AVX512DQ-NEXT:    vmovdqa64 (%r9), %zmm27
6971 ; AVX512DQ-NEXT:    vmovdqa64 (%r10), %zmm2
6972 ; AVX512DQ-NEXT:    vmovdqa64 64(%r10), %zmm0
6973 ; AVX512DQ-NEXT:    vmovdqa64 (%rax), %zmm30
6974 ; AVX512DQ-NEXT:    vmovdqa64 64(%rax), %zmm28
6975 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,0,0,0,0,0,2,18,0,0,0,0,0,0,3,19]
6976 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm5
6977 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm4
6978 ; AVX512DQ-NEXT:    vpermt2d %zmm30, %zmm3, %zmm5
6979 ; AVX512DQ-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6980 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [0,0,0,0,2,18,0,0,0,0,0,0,3,19,0,0]
6981 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm5
6982 ; AVX512DQ-NEXT:    vpermt2d %zmm27, %zmm2, %zmm5
6983 ; AVX512DQ-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6984 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,0,0,0,0,0,0,16,0,0,0,0,0,0,1,17]
6985 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm6
6986 ; AVX512DQ-NEXT:    vpermt2d %zmm30, %zmm5, %zmm6
6987 ; AVX512DQ-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6988 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [0,0,0,0,0,16,0,0,0,0,0,0,1,17,0,0]
6989 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm7
6990 ; AVX512DQ-NEXT:    vpermt2d %zmm27, %zmm6, %zmm7
6991 ; AVX512DQ-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6992 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [0,0,0,0,0,0,6,22,0,0,0,0,0,0,7,23]
6993 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm8
6994 ; AVX512DQ-NEXT:    vpermt2d %zmm30, %zmm7, %zmm8
6995 ; AVX512DQ-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6996 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,0,0,0,6,22,0,0,0,0,0,0,7,23,0,0]
6997 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm9
6998 ; AVX512DQ-NEXT:    vpermt2d %zmm27, %zmm8, %zmm9
6999 ; AVX512DQ-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7000 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [0,0,0,0,0,0,4,20,0,0,0,0,0,0,5,21]
7001 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm10
7002 ; AVX512DQ-NEXT:    vpermt2d %zmm30, %zmm9, %zmm10
7003 ; AVX512DQ-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7004 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [0,0,0,0,4,20,0,0,0,0,0,0,5,21,0,0]
7005 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm11
7006 ; AVX512DQ-NEXT:    vpermt2d %zmm27, %zmm10, %zmm11
7007 ; AVX512DQ-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7008 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [0,0,0,0,0,0,10,26,0,0,0,0,0,0,11,27]
7009 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm12
7010 ; AVX512DQ-NEXT:    vpermt2d %zmm30, %zmm11, %zmm12
7011 ; AVX512DQ-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7012 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,0,0,10,26,0,0,0,0,0,0,11,27,0,0]
7013 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm13
7014 ; AVX512DQ-NEXT:    vpermt2d %zmm27, %zmm12, %zmm13
7015 ; AVX512DQ-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7016 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm13 = [0,0,0,0,0,0,8,24,0,0,0,0,0,0,9,25]
7017 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm14
7018 ; AVX512DQ-NEXT:    vpermt2d %zmm30, %zmm13, %zmm14
7019 ; AVX512DQ-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7020 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [0,0,0,0,8,24,0,0,0,0,0,0,9,25,0,0]
7021 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm15 = [0,0,0,0,0,0,14,30,0,0,0,0,0,0,15,31]
7022 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm16
7023 ; AVX512DQ-NEXT:    vpermt2d %zmm30, %zmm15, %zmm16
7024 ; AVX512DQ-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7025 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm31 = [0,0,0,0,0,0,12,28,0,0,0,0,0,0,13,29]
7026 ; AVX512DQ-NEXT:    vpermt2d %zmm30, %zmm31, %zmm4
7027 ; AVX512DQ-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7028 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm4
7029 ; AVX512DQ-NEXT:    vpermt2d %zmm27, %zmm14, %zmm4
7030 ; AVX512DQ-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7031 ; AVX512DQ-NEXT:    vpermi2d %zmm28, %zmm0, %zmm3
7032 ; AVX512DQ-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7033 ; AVX512DQ-NEXT:    vpermi2d %zmm28, %zmm0, %zmm5
7034 ; AVX512DQ-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7035 ; AVX512DQ-NEXT:    vpermi2d %zmm28, %zmm0, %zmm7
7036 ; AVX512DQ-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7037 ; AVX512DQ-NEXT:    vpermi2d %zmm28, %zmm0, %zmm9
7038 ; AVX512DQ-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7039 ; AVX512DQ-NEXT:    vpermi2d %zmm28, %zmm0, %zmm11
7040 ; AVX512DQ-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7041 ; AVX512DQ-NEXT:    vpermi2d %zmm28, %zmm0, %zmm13
7042 ; AVX512DQ-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7043 ; AVX512DQ-NEXT:    vpermi2d %zmm28, %zmm0, %zmm15
7044 ; AVX512DQ-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7045 ; AVX512DQ-NEXT:    vpermt2d %zmm28, %zmm31, %zmm0
7046 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7047 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm28 = [0,0,0,0,14,30,0,0,0,0,0,0,15,31,0,0]
7048 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm31
7049 ; AVX512DQ-NEXT:    vpermt2d %zmm27, %zmm28, %zmm31
7050 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm0 = [0,0,0,0,12,28,0,0,0,0,0,0,13,29,0,0]
7051 ; AVX512DQ-NEXT:    vpermt2d %zmm27, %zmm0, %zmm1
7052 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7053 ; AVX512DQ-NEXT:    vmovdqa64 64(%r8), %zmm27
7054 ; AVX512DQ-NEXT:    vmovdqa64 64(%r9), %zmm1
7055 ; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm27, %zmm2
7056 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7057 ; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm27, %zmm6
7058 ; AVX512DQ-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7059 ; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm27, %zmm8
7060 ; AVX512DQ-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7061 ; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm27, %zmm10
7062 ; AVX512DQ-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7063 ; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm27, %zmm12
7064 ; AVX512DQ-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7065 ; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm27, %zmm14
7066 ; AVX512DQ-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7067 ; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm27, %zmm28
7068 ; AVX512DQ-NEXT:    vpermt2d %zmm1, %zmm0, %zmm27
7069 ; AVX512DQ-NEXT:    vmovdqa64 (%rdx), %zmm16
7070 ; AVX512DQ-NEXT:    vmovdqa64 (%rcx), %zmm0
7071 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,2,18,0,0,0,0,0,0,3,19,0,0,0,0]
7072 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm20
7073 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm1, %zmm20
7074 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm2
7075 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,16,0,0,0,0,0,0,1,17,0,0,0,0]
7076 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm21
7077 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm1, %zmm21
7078 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm3
7079 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,6,22,0,0,0,0,0,0,7,23,0,0,0,0]
7080 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm22
7081 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm1, %zmm22
7082 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm4
7083 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,4,20,0,0,0,0,0,0,5,21,0,0,0,0]
7084 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm23
7085 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm1, %zmm23
7086 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm6
7087 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,10,26,0,0,0,0,0,0,11,27,0,0,0,0]
7088 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm24
7089 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm1, %zmm24
7090 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm7
7091 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm29 = [0,0,8,24,0,0,0,0,0,0,9,25,0,0,0,0]
7092 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm25
7093 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm29, %zmm25
7094 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm30 = [0,0,14,30,0,0,0,0,0,0,15,31,0,0,0,0]
7095 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm26
7096 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm30, %zmm26
7097 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,12,28,0,0,0,0,0,0,13,29,0,0,0,0]
7098 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm1, %zmm16
7099 ; AVX512DQ-NEXT:    vmovdqa64 64(%rdx), %zmm5
7100 ; AVX512DQ-NEXT:    vmovdqa64 64(%rcx), %zmm0
7101 ; AVX512DQ-NEXT:    vpermi2d %zmm0, %zmm5, %zmm2
7102 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7103 ; AVX512DQ-NEXT:    vpermi2d %zmm0, %zmm5, %zmm3
7104 ; AVX512DQ-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7105 ; AVX512DQ-NEXT:    vpermi2d %zmm0, %zmm5, %zmm4
7106 ; AVX512DQ-NEXT:    vmovdqu64 %zmm4, (%rsp) # 64-byte Spill
7107 ; AVX512DQ-NEXT:    vpermi2d %zmm0, %zmm5, %zmm6
7108 ; AVX512DQ-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7109 ; AVX512DQ-NEXT:    vpermi2d %zmm0, %zmm5, %zmm7
7110 ; AVX512DQ-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7111 ; AVX512DQ-NEXT:    vpermi2d %zmm0, %zmm5, %zmm29
7112 ; AVX512DQ-NEXT:    vpermi2d %zmm0, %zmm5, %zmm30
7113 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm1, %zmm5
7114 ; AVX512DQ-NEXT:    vmovdqa64 (%rdi), %zmm3
7115 ; AVX512DQ-NEXT:    vmovdqa64 (%rsi), %zmm0
7116 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [2,18,0,0,0,0,0,0,3,19,0,0,0,0,0,0]
7117 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm18
7118 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm12, %zmm18
7119 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [0,16,0,0,0,0,0,0,1,17,0,0,0,0,0,0]
7120 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm17
7121 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm10, %zmm17
7122 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [6,22,0,0,0,0,0,0,7,23,0,0,0,0,0,0]
7123 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm15
7124 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm8, %zmm15
7125 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [4,20,0,0,0,0,0,0,5,21,0,0,0,0,0,0]
7126 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm14
7127 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm7, %zmm14
7128 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [10,26,0,0,0,0,0,0,11,27,0,0,0,0,0,0]
7129 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm13
7130 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm6, %zmm13
7131 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [8,24,0,0,0,0,0,0,9,25,0,0,0,0,0,0]
7132 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm11
7133 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm4, %zmm11
7134 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [14,30,0,0,0,0,0,0,15,31,0,0,0,0,0,0]
7135 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm9
7136 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm2, %zmm9
7137 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm19 = [12,28,0,0,0,0,0,0,13,29,0,0,0,0,0,0]
7138 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm19, %zmm3
7139 ; AVX512DQ-NEXT:    vmovdqa64 64(%rdi), %zmm1
7140 ; AVX512DQ-NEXT:    vmovdqa64 64(%rsi), %zmm0
7141 ; AVX512DQ-NEXT:    vpermi2d %zmm0, %zmm1, %zmm12
7142 ; AVX512DQ-NEXT:    vpermi2d %zmm0, %zmm1, %zmm10
7143 ; AVX512DQ-NEXT:    vpermi2d %zmm0, %zmm1, %zmm8
7144 ; AVX512DQ-NEXT:    vpermi2d %zmm0, %zmm1, %zmm7
7145 ; AVX512DQ-NEXT:    vpermi2d %zmm0, %zmm1, %zmm6
7146 ; AVX512DQ-NEXT:    vpermi2d %zmm0, %zmm1, %zmm4
7147 ; AVX512DQ-NEXT:    vpermi2d %zmm0, %zmm1, %zmm2
7148 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm19, %zmm1
7149 ; AVX512DQ-NEXT:    movb $-120, %al
7150 ; AVX512DQ-NEXT:    kmovw %eax, %k1
7151 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7152 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
7153 ; AVX512DQ-NEXT:    vmovdqa64 %zmm19, %zmm0 {%k1}
7154 ; AVX512DQ-NEXT:    movb $34, %al
7155 ; AVX512DQ-NEXT:    kmovw %eax, %k2
7156 ; AVX512DQ-NEXT:    vmovdqa64 %zmm20, %zmm18 {%k2}
7157 ; AVX512DQ-NEXT:    movb $-52, %al
7158 ; AVX512DQ-NEXT:    kmovw %eax, %k3
7159 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm18 {%k3}
7160 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7161 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
7162 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k1}
7163 ; AVX512DQ-NEXT:    vmovdqa64 %zmm21, %zmm17 {%k2}
7164 ; AVX512DQ-NEXT:    vmovdqa64 %zmm19, %zmm17 {%k3}
7165 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7166 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
7167 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k1}
7168 ; AVX512DQ-NEXT:    vmovdqa64 %zmm22, %zmm15 {%k2}
7169 ; AVX512DQ-NEXT:    vmovdqa64 %zmm19, %zmm15 {%k3}
7170 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7171 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
7172 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k1}
7173 ; AVX512DQ-NEXT:    vmovdqa64 %zmm23, %zmm14 {%k2}
7174 ; AVX512DQ-NEXT:    vmovdqa64 %zmm19, %zmm14 {%k3}
7175 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7176 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
7177 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k1}
7178 ; AVX512DQ-NEXT:    vmovdqa64 %zmm24, %zmm13 {%k2}
7179 ; AVX512DQ-NEXT:    vmovdqa64 %zmm19, %zmm13 {%k3}
7180 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7181 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
7182 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k1}
7183 ; AVX512DQ-NEXT:    vmovdqa64 %zmm25, %zmm11 {%k2}
7184 ; AVX512DQ-NEXT:    vmovdqa64 %zmm19, %zmm11 {%k3}
7185 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7186 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k1}
7187 ; AVX512DQ-NEXT:    vmovdqa64 %zmm26, %zmm9 {%k2}
7188 ; AVX512DQ-NEXT:    vmovdqa64 %zmm31, %zmm9 {%k3}
7189 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7190 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
7191 ; AVX512DQ-NEXT:    vmovdqa64 %zmm19, %zmm0 {%k1}
7192 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm3 {%k2}
7193 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k3}
7194 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7195 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
7196 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm0 {%k1}
7197 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
7198 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm12 {%k2}
7199 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm12 {%k3}
7200 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7201 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
7202 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm0 {%k1}
7203 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
7204 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm10 {%k2}
7205 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm10 {%k3}
7206 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7207 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
7208 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm0 {%k1}
7209 ; AVX512DQ-NEXT:    vmovdqu64 (%rsp), %zmm16 # 64-byte Reload
7210 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm8 {%k2}
7211 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k3}
7212 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7213 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
7214 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm0 {%k1}
7215 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
7216 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm7 {%k2}
7217 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k3}
7218 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7219 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
7220 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm0 {%k1}
7221 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
7222 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm6 {%k2}
7223 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k3}
7224 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7225 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
7226 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm0 {%k1}
7227 ; AVX512DQ-NEXT:    vmovdqa64 %zmm29, %zmm4 {%k2}
7228 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k3}
7229 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7230 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm28 {%k1}
7231 ; AVX512DQ-NEXT:    vmovdqa64 %zmm30, %zmm2 {%k2}
7232 ; AVX512DQ-NEXT:    vmovdqa64 %zmm28, %zmm2 {%k3}
7233 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7234 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm27 {%k1}
7235 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm1 {%k2}
7236 ; AVX512DQ-NEXT:    vmovdqa64 %zmm27, %zmm1 {%k3}
7237 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %rax
7238 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, 896(%rax)
7239 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, 960(%rax)
7240 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, 768(%rax)
7241 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, 832(%rax)
7242 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, 640(%rax)
7243 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, 704(%rax)
7244 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, 512(%rax)
7245 ; AVX512DQ-NEXT:    vmovdqa64 %zmm12, 576(%rax)
7246 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, 384(%rax)
7247 ; AVX512DQ-NEXT:    vmovdqa64 %zmm9, 448(%rax)
7248 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, 256(%rax)
7249 ; AVX512DQ-NEXT:    vmovdqa64 %zmm13, 320(%rax)
7250 ; AVX512DQ-NEXT:    vmovdqa64 %zmm14, 128(%rax)
7251 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, 192(%rax)
7252 ; AVX512DQ-NEXT:    vmovdqa64 %zmm17, (%rax)
7253 ; AVX512DQ-NEXT:    vmovdqa64 %zmm18, 64(%rax)
7254 ; AVX512DQ-NEXT:    addq $2056, %rsp # imm = 0x808
7255 ; AVX512DQ-NEXT:    vzeroupper
7256 ; AVX512DQ-NEXT:    retq
7258 ; AVX512DQ-FCP-LABEL: store_i32_stride8_vf32:
7259 ; AVX512DQ-FCP:       # %bb.0:
7260 ; AVX512DQ-FCP-NEXT:    subq $2056, %rsp # imm = 0x808
7261 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
7262 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
7263 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%r8), %zmm1
7264 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%r9), %zmm27
7265 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%r10), %zmm2
7266 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%r10), %zmm0
7267 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rax), %zmm30
7268 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rax), %zmm28
7269 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,0,0,0,0,0,2,18,0,0,0,0,0,0,3,19]
7270 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm5
7271 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm4
7272 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm30, %zmm3, %zmm5
7273 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7274 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [0,0,0,0,2,18,0,0,0,0,0,0,3,19,0,0]
7275 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm5
7276 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm27, %zmm2, %zmm5
7277 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7278 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,0,0,0,0,0,0,16,0,0,0,0,0,0,1,17]
7279 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, %zmm6
7280 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm30, %zmm5, %zmm6
7281 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7282 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [0,0,0,0,0,16,0,0,0,0,0,0,1,17,0,0]
7283 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm7
7284 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm27, %zmm6, %zmm7
7285 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7286 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [0,0,0,0,0,0,6,22,0,0,0,0,0,0,7,23]
7287 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, %zmm8
7288 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm30, %zmm7, %zmm8
7289 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7290 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,0,0,0,6,22,0,0,0,0,0,0,7,23,0,0]
7291 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm9
7292 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm27, %zmm8, %zmm9
7293 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7294 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [0,0,0,0,0,0,4,20,0,0,0,0,0,0,5,21]
7295 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, %zmm10
7296 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm30, %zmm9, %zmm10
7297 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7298 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [0,0,0,0,4,20,0,0,0,0,0,0,5,21,0,0]
7299 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm11
7300 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm27, %zmm10, %zmm11
7301 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7302 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [0,0,0,0,0,0,10,26,0,0,0,0,0,0,11,27]
7303 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, %zmm12
7304 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm30, %zmm11, %zmm12
7305 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7306 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,0,0,10,26,0,0,0,0,0,0,11,27,0,0]
7307 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm13
7308 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm27, %zmm12, %zmm13
7309 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7310 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm13 = [0,0,0,0,0,0,8,24,0,0,0,0,0,0,9,25]
7311 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, %zmm14
7312 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm30, %zmm13, %zmm14
7313 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7314 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [0,0,0,0,8,24,0,0,0,0,0,0,9,25,0,0]
7315 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm15 = [0,0,0,0,0,0,14,30,0,0,0,0,0,0,15,31]
7316 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, %zmm16
7317 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm30, %zmm15, %zmm16
7318 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7319 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm31 = [0,0,0,0,0,0,12,28,0,0,0,0,0,0,13,29]
7320 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm30, %zmm31, %zmm4
7321 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7322 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4
7323 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm27, %zmm14, %zmm4
7324 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7325 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm28, %zmm0, %zmm3
7326 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7327 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm28, %zmm0, %zmm5
7328 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7329 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm28, %zmm0, %zmm7
7330 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7331 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm28, %zmm0, %zmm9
7332 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7333 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm28, %zmm0, %zmm11
7334 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7335 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm28, %zmm0, %zmm13
7336 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7337 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm28, %zmm0, %zmm15
7338 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7339 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm28, %zmm31, %zmm0
7340 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7341 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm28 = [0,0,0,0,14,30,0,0,0,0,0,0,15,31,0,0]
7342 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm31
7343 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm27, %zmm28, %zmm31
7344 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm0 = [0,0,0,0,12,28,0,0,0,0,0,0,13,29,0,0]
7345 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm27, %zmm0, %zmm1
7346 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7347 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%r8), %zmm27
7348 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%r9), %zmm1
7349 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm1, %zmm27, %zmm2
7350 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7351 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm1, %zmm27, %zmm6
7352 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7353 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm1, %zmm27, %zmm8
7354 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7355 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm1, %zmm27, %zmm10
7356 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7357 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm1, %zmm27, %zmm12
7358 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7359 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm1, %zmm27, %zmm14
7360 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7361 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm1, %zmm27, %zmm28
7362 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm1, %zmm0, %zmm27
7363 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rdx), %zmm16
7364 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rcx), %zmm0
7365 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,2,18,0,0,0,0,0,0,3,19,0,0,0,0]
7366 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm16, %zmm20
7367 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm20
7368 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2
7369 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,16,0,0,0,0,0,0,1,17,0,0,0,0]
7370 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm16, %zmm21
7371 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm21
7372 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm3
7373 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,6,22,0,0,0,0,0,0,7,23,0,0,0,0]
7374 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm16, %zmm22
7375 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm22
7376 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4
7377 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,4,20,0,0,0,0,0,0,5,21,0,0,0,0]
7378 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm16, %zmm23
7379 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm23
7380 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm6
7381 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,10,26,0,0,0,0,0,0,11,27,0,0,0,0]
7382 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm16, %zmm24
7383 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm24
7384 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm7
7385 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm29 = [0,0,8,24,0,0,0,0,0,0,9,25,0,0,0,0]
7386 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm16, %zmm25
7387 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm29, %zmm25
7388 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm30 = [0,0,14,30,0,0,0,0,0,0,15,31,0,0,0,0]
7389 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm16, %zmm26
7390 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm30, %zmm26
7391 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,12,28,0,0,0,0,0,0,13,29,0,0,0,0]
7392 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm16
7393 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rdx), %zmm5
7394 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rcx), %zmm0
7395 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm0, %zmm5, %zmm2
7396 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7397 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm0, %zmm5, %zmm3
7398 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7399 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm0, %zmm5, %zmm4
7400 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm4, (%rsp) # 64-byte Spill
7401 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm0, %zmm5, %zmm6
7402 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7403 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm0, %zmm5, %zmm7
7404 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7405 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm0, %zmm5, %zmm29
7406 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm0, %zmm5, %zmm30
7407 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm5
7408 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rdi), %zmm3
7409 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rsi), %zmm0
7410 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [2,18,0,0,0,0,0,0,3,19,0,0,0,0,0,0]
7411 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm18
7412 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm12, %zmm18
7413 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [0,16,0,0,0,0,0,0,1,17,0,0,0,0,0,0]
7414 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm17
7415 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm10, %zmm17
7416 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [6,22,0,0,0,0,0,0,7,23,0,0,0,0,0,0]
7417 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm15
7418 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm8, %zmm15
7419 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [4,20,0,0,0,0,0,0,5,21,0,0,0,0,0,0]
7420 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm14
7421 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm7, %zmm14
7422 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [10,26,0,0,0,0,0,0,11,27,0,0,0,0,0,0]
7423 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm13
7424 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm6, %zmm13
7425 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [8,24,0,0,0,0,0,0,9,25,0,0,0,0,0,0]
7426 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm11
7427 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm4, %zmm11
7428 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [14,30,0,0,0,0,0,0,15,31,0,0,0,0,0,0]
7429 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm9
7430 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm2, %zmm9
7431 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm19 = [12,28,0,0,0,0,0,0,13,29,0,0,0,0,0,0]
7432 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm19, %zmm3
7433 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm1
7434 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rsi), %zmm0
7435 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm12
7436 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm10
7437 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm8
7438 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm7
7439 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm6
7440 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm4
7441 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm2
7442 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm19, %zmm1
7443 ; AVX512DQ-FCP-NEXT:    movb $-120, %al
7444 ; AVX512DQ-FCP-NEXT:    kmovw %eax, %k1
7445 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7446 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
7447 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm19, %zmm0 {%k1}
7448 ; AVX512DQ-FCP-NEXT:    movb $34, %al
7449 ; AVX512DQ-FCP-NEXT:    kmovw %eax, %k2
7450 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm20, %zmm18 {%k2}
7451 ; AVX512DQ-FCP-NEXT:    movb $-52, %al
7452 ; AVX512DQ-FCP-NEXT:    kmovw %eax, %k3
7453 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm18 {%k3}
7454 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7455 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
7456 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k1}
7457 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm21, %zmm17 {%k2}
7458 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm19, %zmm17 {%k3}
7459 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7460 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
7461 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k1}
7462 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm22, %zmm15 {%k2}
7463 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm19, %zmm15 {%k3}
7464 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7465 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
7466 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k1}
7467 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm23, %zmm14 {%k2}
7468 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm19, %zmm14 {%k3}
7469 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7470 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
7471 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k1}
7472 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm24, %zmm13 {%k2}
7473 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm19, %zmm13 {%k3}
7474 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7475 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
7476 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k1}
7477 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm25, %zmm11 {%k2}
7478 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm19, %zmm11 {%k3}
7479 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7480 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k1}
7481 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm26, %zmm9 {%k2}
7482 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm31, %zmm9 {%k3}
7483 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7484 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
7485 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm19, %zmm0 {%k1}
7486 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm16, %zmm3 {%k2}
7487 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k3}
7488 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7489 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
7490 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm16, %zmm0 {%k1}
7491 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
7492 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm16, %zmm12 {%k2}
7493 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm12 {%k3}
7494 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7495 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
7496 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm16, %zmm0 {%k1}
7497 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
7498 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm16, %zmm10 {%k2}
7499 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm10 {%k3}
7500 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7501 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
7502 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm16, %zmm0 {%k1}
7503 ; AVX512DQ-FCP-NEXT:    vmovdqu64 (%rsp), %zmm16 # 64-byte Reload
7504 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm16, %zmm8 {%k2}
7505 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k3}
7506 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7507 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
7508 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm16, %zmm0 {%k1}
7509 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
7510 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm16, %zmm7 {%k2}
7511 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k3}
7512 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7513 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
7514 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm16, %zmm0 {%k1}
7515 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
7516 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm16, %zmm6 {%k2}
7517 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k3}
7518 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7519 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
7520 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm16, %zmm0 {%k1}
7521 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm29, %zmm4 {%k2}
7522 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k3}
7523 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7524 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm28 {%k1}
7525 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm30, %zmm2 {%k2}
7526 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm28, %zmm2 {%k3}
7527 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7528 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm27 {%k1}
7529 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm1 {%k2}
7530 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm27, %zmm1 {%k3}
7531 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
7532 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, 896(%rax)
7533 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, 960(%rax)
7534 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, 768(%rax)
7535 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, 832(%rax)
7536 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, 640(%rax)
7537 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, 704(%rax)
7538 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, 512(%rax)
7539 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, 576(%rax)
7540 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, 384(%rax)
7541 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, 448(%rax)
7542 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, 256(%rax)
7543 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm13, 320(%rax)
7544 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm14, 128(%rax)
7545 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm15, 192(%rax)
7546 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm17, (%rax)
7547 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm18, 64(%rax)
7548 ; AVX512DQ-FCP-NEXT:    addq $2056, %rsp # imm = 0x808
7549 ; AVX512DQ-FCP-NEXT:    vzeroupper
7550 ; AVX512DQ-FCP-NEXT:    retq
7552 ; AVX512BW-LABEL: store_i32_stride8_vf32:
7553 ; AVX512BW:       # %bb.0:
7554 ; AVX512BW-NEXT:    subq $2056, %rsp # imm = 0x808
7555 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
7556 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %r10
7557 ; AVX512BW-NEXT:    vmovdqa64 (%r8), %zmm1
7558 ; AVX512BW-NEXT:    vmovdqa64 (%r9), %zmm27
7559 ; AVX512BW-NEXT:    vmovdqa64 (%r10), %zmm2
7560 ; AVX512BW-NEXT:    vmovdqa64 64(%r10), %zmm0
7561 ; AVX512BW-NEXT:    vmovdqa64 (%rax), %zmm30
7562 ; AVX512BW-NEXT:    vmovdqa64 64(%rax), %zmm28
7563 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,0,0,0,0,0,2,18,0,0,0,0,0,0,3,19]
7564 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm5
7565 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm4
7566 ; AVX512BW-NEXT:    vpermt2d %zmm30, %zmm3, %zmm5
7567 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7568 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [0,0,0,0,2,18,0,0,0,0,0,0,3,19,0,0]
7569 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm5
7570 ; AVX512BW-NEXT:    vpermt2d %zmm27, %zmm2, %zmm5
7571 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7572 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,0,0,0,0,0,0,16,0,0,0,0,0,0,1,17]
7573 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm6
7574 ; AVX512BW-NEXT:    vpermt2d %zmm30, %zmm5, %zmm6
7575 ; AVX512BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7576 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [0,0,0,0,0,16,0,0,0,0,0,0,1,17,0,0]
7577 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm7
7578 ; AVX512BW-NEXT:    vpermt2d %zmm27, %zmm6, %zmm7
7579 ; AVX512BW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7580 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [0,0,0,0,0,0,6,22,0,0,0,0,0,0,7,23]
7581 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm8
7582 ; AVX512BW-NEXT:    vpermt2d %zmm30, %zmm7, %zmm8
7583 ; AVX512BW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7584 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,0,0,0,6,22,0,0,0,0,0,0,7,23,0,0]
7585 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm9
7586 ; AVX512BW-NEXT:    vpermt2d %zmm27, %zmm8, %zmm9
7587 ; AVX512BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7588 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [0,0,0,0,0,0,4,20,0,0,0,0,0,0,5,21]
7589 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm10
7590 ; AVX512BW-NEXT:    vpermt2d %zmm30, %zmm9, %zmm10
7591 ; AVX512BW-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7592 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [0,0,0,0,4,20,0,0,0,0,0,0,5,21,0,0]
7593 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm11
7594 ; AVX512BW-NEXT:    vpermt2d %zmm27, %zmm10, %zmm11
7595 ; AVX512BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7596 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [0,0,0,0,0,0,10,26,0,0,0,0,0,0,11,27]
7597 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm12
7598 ; AVX512BW-NEXT:    vpermt2d %zmm30, %zmm11, %zmm12
7599 ; AVX512BW-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7600 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,0,0,10,26,0,0,0,0,0,0,11,27,0,0]
7601 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm13
7602 ; AVX512BW-NEXT:    vpermt2d %zmm27, %zmm12, %zmm13
7603 ; AVX512BW-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7604 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm13 = [0,0,0,0,0,0,8,24,0,0,0,0,0,0,9,25]
7605 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm14
7606 ; AVX512BW-NEXT:    vpermt2d %zmm30, %zmm13, %zmm14
7607 ; AVX512BW-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7608 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [0,0,0,0,8,24,0,0,0,0,0,0,9,25,0,0]
7609 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm15 = [0,0,0,0,0,0,14,30,0,0,0,0,0,0,15,31]
7610 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm16
7611 ; AVX512BW-NEXT:    vpermt2d %zmm30, %zmm15, %zmm16
7612 ; AVX512BW-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7613 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm31 = [0,0,0,0,0,0,12,28,0,0,0,0,0,0,13,29]
7614 ; AVX512BW-NEXT:    vpermt2d %zmm30, %zmm31, %zmm4
7615 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7616 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm4
7617 ; AVX512BW-NEXT:    vpermt2d %zmm27, %zmm14, %zmm4
7618 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7619 ; AVX512BW-NEXT:    vpermi2d %zmm28, %zmm0, %zmm3
7620 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7621 ; AVX512BW-NEXT:    vpermi2d %zmm28, %zmm0, %zmm5
7622 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7623 ; AVX512BW-NEXT:    vpermi2d %zmm28, %zmm0, %zmm7
7624 ; AVX512BW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7625 ; AVX512BW-NEXT:    vpermi2d %zmm28, %zmm0, %zmm9
7626 ; AVX512BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7627 ; AVX512BW-NEXT:    vpermi2d %zmm28, %zmm0, %zmm11
7628 ; AVX512BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7629 ; AVX512BW-NEXT:    vpermi2d %zmm28, %zmm0, %zmm13
7630 ; AVX512BW-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7631 ; AVX512BW-NEXT:    vpermi2d %zmm28, %zmm0, %zmm15
7632 ; AVX512BW-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7633 ; AVX512BW-NEXT:    vpermt2d %zmm28, %zmm31, %zmm0
7634 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7635 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm28 = [0,0,0,0,14,30,0,0,0,0,0,0,15,31,0,0]
7636 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm31
7637 ; AVX512BW-NEXT:    vpermt2d %zmm27, %zmm28, %zmm31
7638 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm0 = [0,0,0,0,12,28,0,0,0,0,0,0,13,29,0,0]
7639 ; AVX512BW-NEXT:    vpermt2d %zmm27, %zmm0, %zmm1
7640 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7641 ; AVX512BW-NEXT:    vmovdqa64 64(%r8), %zmm27
7642 ; AVX512BW-NEXT:    vmovdqa64 64(%r9), %zmm1
7643 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm27, %zmm2
7644 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7645 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm27, %zmm6
7646 ; AVX512BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7647 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm27, %zmm8
7648 ; AVX512BW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7649 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm27, %zmm10
7650 ; AVX512BW-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7651 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm27, %zmm12
7652 ; AVX512BW-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7653 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm27, %zmm14
7654 ; AVX512BW-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7655 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm27, %zmm28
7656 ; AVX512BW-NEXT:    vpermt2d %zmm1, %zmm0, %zmm27
7657 ; AVX512BW-NEXT:    vmovdqa64 (%rdx), %zmm16
7658 ; AVX512BW-NEXT:    vmovdqa64 (%rcx), %zmm0
7659 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,2,18,0,0,0,0,0,0,3,19,0,0,0,0]
7660 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, %zmm20
7661 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm20
7662 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm2
7663 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,16,0,0,0,0,0,0,1,17,0,0,0,0]
7664 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, %zmm21
7665 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm21
7666 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm3
7667 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,6,22,0,0,0,0,0,0,7,23,0,0,0,0]
7668 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, %zmm22
7669 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm22
7670 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm4
7671 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,4,20,0,0,0,0,0,0,5,21,0,0,0,0]
7672 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, %zmm23
7673 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm23
7674 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm6
7675 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,10,26,0,0,0,0,0,0,11,27,0,0,0,0]
7676 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, %zmm24
7677 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm24
7678 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm7
7679 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm29 = [0,0,8,24,0,0,0,0,0,0,9,25,0,0,0,0]
7680 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, %zmm25
7681 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm29, %zmm25
7682 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm30 = [0,0,14,30,0,0,0,0,0,0,15,31,0,0,0,0]
7683 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, %zmm26
7684 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm30, %zmm26
7685 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,12,28,0,0,0,0,0,0,13,29,0,0,0,0]
7686 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm16
7687 ; AVX512BW-NEXT:    vmovdqa64 64(%rdx), %zmm5
7688 ; AVX512BW-NEXT:    vmovdqa64 64(%rcx), %zmm0
7689 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm5, %zmm2
7690 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7691 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm5, %zmm3
7692 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7693 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm5, %zmm4
7694 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, (%rsp) # 64-byte Spill
7695 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm5, %zmm6
7696 ; AVX512BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7697 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm5, %zmm7
7698 ; AVX512BW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7699 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm5, %zmm29
7700 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm5, %zmm30
7701 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm5
7702 ; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm3
7703 ; AVX512BW-NEXT:    vmovdqa64 (%rsi), %zmm0
7704 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [2,18,0,0,0,0,0,0,3,19,0,0,0,0,0,0]
7705 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm18
7706 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm12, %zmm18
7707 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [0,16,0,0,0,0,0,0,1,17,0,0,0,0,0,0]
7708 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm17
7709 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm10, %zmm17
7710 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [6,22,0,0,0,0,0,0,7,23,0,0,0,0,0,0]
7711 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm15
7712 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm8, %zmm15
7713 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [4,20,0,0,0,0,0,0,5,21,0,0,0,0,0,0]
7714 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm14
7715 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm7, %zmm14
7716 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [10,26,0,0,0,0,0,0,11,27,0,0,0,0,0,0]
7717 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm13
7718 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm6, %zmm13
7719 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [8,24,0,0,0,0,0,0,9,25,0,0,0,0,0,0]
7720 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm11
7721 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm4, %zmm11
7722 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [14,30,0,0,0,0,0,0,15,31,0,0,0,0,0,0]
7723 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm9
7724 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm2, %zmm9
7725 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm19 = [12,28,0,0,0,0,0,0,13,29,0,0,0,0,0,0]
7726 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm19, %zmm3
7727 ; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %zmm1
7728 ; AVX512BW-NEXT:    vmovdqa64 64(%rsi), %zmm0
7729 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm1, %zmm12
7730 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm1, %zmm10
7731 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm1, %zmm8
7732 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm1, %zmm7
7733 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm1, %zmm6
7734 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm1, %zmm4
7735 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm1, %zmm2
7736 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm19, %zmm1
7737 ; AVX512BW-NEXT:    movb $-120, %al
7738 ; AVX512BW-NEXT:    kmovd %eax, %k1
7739 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7740 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
7741 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm0 {%k1}
7742 ; AVX512BW-NEXT:    movb $34, %al
7743 ; AVX512BW-NEXT:    kmovd %eax, %k2
7744 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, %zmm18 {%k2}
7745 ; AVX512BW-NEXT:    movb $-52, %al
7746 ; AVX512BW-NEXT:    kmovd %eax, %k3
7747 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm18 {%k3}
7748 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7749 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
7750 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k1}
7751 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, %zmm17 {%k2}
7752 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm17 {%k3}
7753 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7754 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
7755 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k1}
7756 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm15 {%k2}
7757 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm15 {%k3}
7758 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7759 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
7760 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k1}
7761 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, %zmm14 {%k2}
7762 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm14 {%k3}
7763 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7764 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
7765 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k1}
7766 ; AVX512BW-NEXT:    vmovdqa64 %zmm24, %zmm13 {%k2}
7767 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm13 {%k3}
7768 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7769 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
7770 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k1}
7771 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, %zmm11 {%k2}
7772 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm11 {%k3}
7773 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7774 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k1}
7775 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, %zmm9 {%k2}
7776 ; AVX512BW-NEXT:    vmovdqa64 %zmm31, %zmm9 {%k3}
7777 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7778 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
7779 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm0 {%k1}
7780 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, %zmm3 {%k2}
7781 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k3}
7782 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7783 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
7784 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, %zmm0 {%k1}
7785 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
7786 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, %zmm12 {%k2}
7787 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm12 {%k3}
7788 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7789 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
7790 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, %zmm0 {%k1}
7791 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
7792 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, %zmm10 {%k2}
7793 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm10 {%k3}
7794 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7795 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
7796 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, %zmm0 {%k1}
7797 ; AVX512BW-NEXT:    vmovdqu64 (%rsp), %zmm16 # 64-byte Reload
7798 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, %zmm8 {%k2}
7799 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k3}
7800 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7801 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
7802 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, %zmm0 {%k1}
7803 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
7804 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, %zmm7 {%k2}
7805 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k3}
7806 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7807 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
7808 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, %zmm0 {%k1}
7809 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
7810 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, %zmm6 {%k2}
7811 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k3}
7812 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7813 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
7814 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, %zmm0 {%k1}
7815 ; AVX512BW-NEXT:    vmovdqa64 %zmm29, %zmm4 {%k2}
7816 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k3}
7817 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7818 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm28 {%k1}
7819 ; AVX512BW-NEXT:    vmovdqa64 %zmm30, %zmm2 {%k2}
7820 ; AVX512BW-NEXT:    vmovdqa64 %zmm28, %zmm2 {%k3}
7821 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7822 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm27 {%k1}
7823 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm1 {%k2}
7824 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, %zmm1 {%k3}
7825 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
7826 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, 896(%rax)
7827 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, 960(%rax)
7828 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, 768(%rax)
7829 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, 832(%rax)
7830 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, 640(%rax)
7831 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, 704(%rax)
7832 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, 512(%rax)
7833 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, 576(%rax)
7834 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, 384(%rax)
7835 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, 448(%rax)
7836 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, 256(%rax)
7837 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, 320(%rax)
7838 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, 128(%rax)
7839 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, 192(%rax)
7840 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, (%rax)
7841 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, 64(%rax)
7842 ; AVX512BW-NEXT:    addq $2056, %rsp # imm = 0x808
7843 ; AVX512BW-NEXT:    vzeroupper
7844 ; AVX512BW-NEXT:    retq
7846 ; AVX512BW-FCP-LABEL: store_i32_stride8_vf32:
7847 ; AVX512BW-FCP:       # %bb.0:
7848 ; AVX512BW-FCP-NEXT:    subq $2056, %rsp # imm = 0x808
7849 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
7850 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
7851 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%r8), %zmm1
7852 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%r9), %zmm27
7853 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%r10), %zmm2
7854 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%r10), %zmm0
7855 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rax), %zmm30
7856 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rax), %zmm28
7857 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,0,0,0,0,0,2,18,0,0,0,0,0,0,3,19]
7858 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm5
7859 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm4
7860 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm30, %zmm3, %zmm5
7861 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7862 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [0,0,0,0,2,18,0,0,0,0,0,0,3,19,0,0]
7863 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm5
7864 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm27, %zmm2, %zmm5
7865 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7866 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,0,0,0,0,0,0,16,0,0,0,0,0,0,1,17]
7867 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm6
7868 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm30, %zmm5, %zmm6
7869 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7870 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [0,0,0,0,0,16,0,0,0,0,0,0,1,17,0,0]
7871 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm7
7872 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm27, %zmm6, %zmm7
7873 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7874 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [0,0,0,0,0,0,6,22,0,0,0,0,0,0,7,23]
7875 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm8
7876 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm30, %zmm7, %zmm8
7877 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7878 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,0,0,0,6,22,0,0,0,0,0,0,7,23,0,0]
7879 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm9
7880 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm27, %zmm8, %zmm9
7881 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7882 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [0,0,0,0,0,0,4,20,0,0,0,0,0,0,5,21]
7883 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm10
7884 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm30, %zmm9, %zmm10
7885 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7886 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [0,0,0,0,4,20,0,0,0,0,0,0,5,21,0,0]
7887 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm11
7888 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm27, %zmm10, %zmm11
7889 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7890 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [0,0,0,0,0,0,10,26,0,0,0,0,0,0,11,27]
7891 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm12
7892 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm30, %zmm11, %zmm12
7893 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7894 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,0,0,10,26,0,0,0,0,0,0,11,27,0,0]
7895 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm13
7896 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm27, %zmm12, %zmm13
7897 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7898 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm13 = [0,0,0,0,0,0,8,24,0,0,0,0,0,0,9,25]
7899 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm14
7900 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm30, %zmm13, %zmm14
7901 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7902 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [0,0,0,0,8,24,0,0,0,0,0,0,9,25,0,0]
7903 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm15 = [0,0,0,0,0,0,14,30,0,0,0,0,0,0,15,31]
7904 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm16
7905 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm30, %zmm15, %zmm16
7906 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7907 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm31 = [0,0,0,0,0,0,12,28,0,0,0,0,0,0,13,29]
7908 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm30, %zmm31, %zmm4
7909 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7910 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4
7911 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm27, %zmm14, %zmm4
7912 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7913 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm28, %zmm0, %zmm3
7914 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7915 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm28, %zmm0, %zmm5
7916 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7917 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm28, %zmm0, %zmm7
7918 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7919 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm28, %zmm0, %zmm9
7920 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7921 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm28, %zmm0, %zmm11
7922 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7923 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm28, %zmm0, %zmm13
7924 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7925 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm28, %zmm0, %zmm15
7926 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7927 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm28, %zmm31, %zmm0
7928 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7929 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm28 = [0,0,0,0,14,30,0,0,0,0,0,0,15,31,0,0]
7930 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm31
7931 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm27, %zmm28, %zmm31
7932 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm0 = [0,0,0,0,12,28,0,0,0,0,0,0,13,29,0,0]
7933 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm27, %zmm0, %zmm1
7934 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7935 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%r8), %zmm27
7936 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%r9), %zmm1
7937 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm1, %zmm27, %zmm2
7938 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7939 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm1, %zmm27, %zmm6
7940 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7941 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm1, %zmm27, %zmm8
7942 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7943 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm1, %zmm27, %zmm10
7944 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7945 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm1, %zmm27, %zmm12
7946 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7947 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm1, %zmm27, %zmm14
7948 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7949 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm1, %zmm27, %zmm28
7950 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm1, %zmm0, %zmm27
7951 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdx), %zmm16
7952 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rcx), %zmm0
7953 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,2,18,0,0,0,0,0,0,3,19,0,0,0,0]
7954 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm20
7955 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm20
7956 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2
7957 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,16,0,0,0,0,0,0,1,17,0,0,0,0]
7958 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm21
7959 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm21
7960 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm3
7961 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,6,22,0,0,0,0,0,0,7,23,0,0,0,0]
7962 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm22
7963 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm22
7964 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4
7965 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,4,20,0,0,0,0,0,0,5,21,0,0,0,0]
7966 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm23
7967 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm23
7968 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm6
7969 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,10,26,0,0,0,0,0,0,11,27,0,0,0,0]
7970 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm24
7971 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm24
7972 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm7
7973 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm29 = [0,0,8,24,0,0,0,0,0,0,9,25,0,0,0,0]
7974 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm25
7975 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm29, %zmm25
7976 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm30 = [0,0,14,30,0,0,0,0,0,0,15,31,0,0,0,0]
7977 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm26
7978 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm30, %zmm26
7979 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,12,28,0,0,0,0,0,0,13,29,0,0,0,0]
7980 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm16
7981 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rdx), %zmm5
7982 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rcx), %zmm0
7983 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm0, %zmm5, %zmm2
7984 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7985 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm0, %zmm5, %zmm3
7986 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7987 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm0, %zmm5, %zmm4
7988 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm4, (%rsp) # 64-byte Spill
7989 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm0, %zmm5, %zmm6
7990 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7991 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm0, %zmm5, %zmm7
7992 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7993 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm0, %zmm5, %zmm29
7994 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm0, %zmm5, %zmm30
7995 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm5
7996 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm3
7997 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rsi), %zmm0
7998 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [2,18,0,0,0,0,0,0,3,19,0,0,0,0,0,0]
7999 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm18
8000 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm12, %zmm18
8001 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [0,16,0,0,0,0,0,0,1,17,0,0,0,0,0,0]
8002 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm17
8003 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm10, %zmm17
8004 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [6,22,0,0,0,0,0,0,7,23,0,0,0,0,0,0]
8005 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm15
8006 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm8, %zmm15
8007 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [4,20,0,0,0,0,0,0,5,21,0,0,0,0,0,0]
8008 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm14
8009 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm7, %zmm14
8010 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [10,26,0,0,0,0,0,0,11,27,0,0,0,0,0,0]
8011 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm13
8012 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm6, %zmm13
8013 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [8,24,0,0,0,0,0,0,9,25,0,0,0,0,0,0]
8014 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm11
8015 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm4, %zmm11
8016 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [14,30,0,0,0,0,0,0,15,31,0,0,0,0,0,0]
8017 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm9
8018 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm2, %zmm9
8019 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm19 = [12,28,0,0,0,0,0,0,13,29,0,0,0,0,0,0]
8020 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm19, %zmm3
8021 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm1
8022 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rsi), %zmm0
8023 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm12
8024 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm10
8025 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm8
8026 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm7
8027 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm6
8028 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm4
8029 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm2
8030 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm19, %zmm1
8031 ; AVX512BW-FCP-NEXT:    movb $-120, %al
8032 ; AVX512BW-FCP-NEXT:    kmovd %eax, %k1
8033 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8034 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
8035 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm19, %zmm0 {%k1}
8036 ; AVX512BW-FCP-NEXT:    movb $34, %al
8037 ; AVX512BW-FCP-NEXT:    kmovd %eax, %k2
8038 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm20, %zmm18 {%k2}
8039 ; AVX512BW-FCP-NEXT:    movb $-52, %al
8040 ; AVX512BW-FCP-NEXT:    kmovd %eax, %k3
8041 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm18 {%k3}
8042 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8043 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
8044 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k1}
8045 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm21, %zmm17 {%k2}
8046 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm19, %zmm17 {%k3}
8047 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8048 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
8049 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k1}
8050 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm15 {%k2}
8051 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm19, %zmm15 {%k3}
8052 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8053 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
8054 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k1}
8055 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm23, %zmm14 {%k2}
8056 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm19, %zmm14 {%k3}
8057 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8058 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
8059 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k1}
8060 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm24, %zmm13 {%k2}
8061 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm19, %zmm13 {%k3}
8062 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8063 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
8064 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k1}
8065 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm25, %zmm11 {%k2}
8066 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm19, %zmm11 {%k3}
8067 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8068 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k1}
8069 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm26, %zmm9 {%k2}
8070 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm31, %zmm9 {%k3}
8071 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8072 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
8073 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm19, %zmm0 {%k1}
8074 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm3 {%k2}
8075 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k3}
8076 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8077 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
8078 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm0 {%k1}
8079 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
8080 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm12 {%k2}
8081 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm12 {%k3}
8082 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8083 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
8084 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm0 {%k1}
8085 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
8086 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm10 {%k2}
8087 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm10 {%k3}
8088 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8089 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
8090 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm0 {%k1}
8091 ; AVX512BW-FCP-NEXT:    vmovdqu64 (%rsp), %zmm16 # 64-byte Reload
8092 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm8 {%k2}
8093 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k3}
8094 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8095 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
8096 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm0 {%k1}
8097 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
8098 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm7 {%k2}
8099 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k3}
8100 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8101 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
8102 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm0 {%k1}
8103 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
8104 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm6 {%k2}
8105 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k3}
8106 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8107 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
8108 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm0 {%k1}
8109 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm29, %zmm4 {%k2}
8110 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k3}
8111 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8112 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm28 {%k1}
8113 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm30, %zmm2 {%k2}
8114 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm28, %zmm2 {%k3}
8115 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8116 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm27 {%k1}
8117 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm1 {%k2}
8118 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm27, %zmm1 {%k3}
8119 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
8120 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, 896(%rax)
8121 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, 960(%rax)
8122 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, 768(%rax)
8123 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, 832(%rax)
8124 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, 640(%rax)
8125 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, 704(%rax)
8126 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm10, 512(%rax)
8127 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, 576(%rax)
8128 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, 384(%rax)
8129 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm9, 448(%rax)
8130 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm11, 256(%rax)
8131 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, 320(%rax)
8132 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm14, 128(%rax)
8133 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm15, 192(%rax)
8134 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm17, (%rax)
8135 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm18, 64(%rax)
8136 ; AVX512BW-FCP-NEXT:    addq $2056, %rsp # imm = 0x808
8137 ; AVX512BW-FCP-NEXT:    vzeroupper
8138 ; AVX512BW-FCP-NEXT:    retq
8140 ; AVX512DQ-BW-LABEL: store_i32_stride8_vf32:
8141 ; AVX512DQ-BW:       # %bb.0:
8142 ; AVX512DQ-BW-NEXT:    subq $2056, %rsp # imm = 0x808
8143 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
8144 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %r10
8145 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%r8), %zmm1
8146 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%r9), %zmm27
8147 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%r10), %zmm2
8148 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%r10), %zmm0
8149 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rax), %zmm30
8150 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rax), %zmm28
8151 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,0,0,0,0,0,2,18,0,0,0,0,0,0,3,19]
8152 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm5
8153 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm4
8154 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm30, %zmm3, %zmm5
8155 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8156 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [0,0,0,0,2,18,0,0,0,0,0,0,3,19,0,0]
8157 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm5
8158 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm27, %zmm2, %zmm5
8159 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8160 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,0,0,0,0,0,0,16,0,0,0,0,0,0,1,17]
8161 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm6
8162 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm30, %zmm5, %zmm6
8163 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8164 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [0,0,0,0,0,16,0,0,0,0,0,0,1,17,0,0]
8165 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm7
8166 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm27, %zmm6, %zmm7
8167 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8168 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [0,0,0,0,0,0,6,22,0,0,0,0,0,0,7,23]
8169 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm8
8170 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm30, %zmm7, %zmm8
8171 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8172 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,0,0,0,6,22,0,0,0,0,0,0,7,23,0,0]
8173 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm9
8174 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm27, %zmm8, %zmm9
8175 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8176 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [0,0,0,0,0,0,4,20,0,0,0,0,0,0,5,21]
8177 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm10
8178 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm30, %zmm9, %zmm10
8179 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8180 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [0,0,0,0,4,20,0,0,0,0,0,0,5,21,0,0]
8181 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm11
8182 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm27, %zmm10, %zmm11
8183 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8184 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [0,0,0,0,0,0,10,26,0,0,0,0,0,0,11,27]
8185 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm12
8186 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm30, %zmm11, %zmm12
8187 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8188 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,0,0,10,26,0,0,0,0,0,0,11,27,0,0]
8189 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm13
8190 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm27, %zmm12, %zmm13
8191 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8192 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm13 = [0,0,0,0,0,0,8,24,0,0,0,0,0,0,9,25]
8193 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm14
8194 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm30, %zmm13, %zmm14
8195 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8196 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [0,0,0,0,8,24,0,0,0,0,0,0,9,25,0,0]
8197 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm15 = [0,0,0,0,0,0,14,30,0,0,0,0,0,0,15,31]
8198 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm16
8199 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm30, %zmm15, %zmm16
8200 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8201 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm31 = [0,0,0,0,0,0,12,28,0,0,0,0,0,0,13,29]
8202 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm30, %zmm31, %zmm4
8203 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8204 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm4
8205 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm27, %zmm14, %zmm4
8206 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8207 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm28, %zmm0, %zmm3
8208 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8209 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm28, %zmm0, %zmm5
8210 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8211 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm28, %zmm0, %zmm7
8212 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8213 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm28, %zmm0, %zmm9
8214 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8215 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm28, %zmm0, %zmm11
8216 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8217 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm28, %zmm0, %zmm13
8218 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8219 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm28, %zmm0, %zmm15
8220 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8221 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm28, %zmm31, %zmm0
8222 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8223 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm28 = [0,0,0,0,14,30,0,0,0,0,0,0,15,31,0,0]
8224 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm31
8225 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm27, %zmm28, %zmm31
8226 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm0 = [0,0,0,0,12,28,0,0,0,0,0,0,13,29,0,0]
8227 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm27, %zmm0, %zmm1
8228 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8229 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%r8), %zmm27
8230 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%r9), %zmm1
8231 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm1, %zmm27, %zmm2
8232 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8233 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm1, %zmm27, %zmm6
8234 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8235 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm1, %zmm27, %zmm8
8236 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8237 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm1, %zmm27, %zmm10
8238 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8239 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm1, %zmm27, %zmm12
8240 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8241 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm1, %zmm27, %zmm14
8242 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8243 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm1, %zmm27, %zmm28
8244 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm1, %zmm0, %zmm27
8245 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rdx), %zmm16
8246 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rcx), %zmm0
8247 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,2,18,0,0,0,0,0,0,3,19,0,0,0,0]
8248 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm20
8249 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm20
8250 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm2
8251 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,16,0,0,0,0,0,0,1,17,0,0,0,0]
8252 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm21
8253 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm21
8254 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm3
8255 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,6,22,0,0,0,0,0,0,7,23,0,0,0,0]
8256 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm22
8257 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm22
8258 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm4
8259 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,4,20,0,0,0,0,0,0,5,21,0,0,0,0]
8260 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm23
8261 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm23
8262 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm6
8263 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,10,26,0,0,0,0,0,0,11,27,0,0,0,0]
8264 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm24
8265 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm24
8266 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm7
8267 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm29 = [0,0,8,24,0,0,0,0,0,0,9,25,0,0,0,0]
8268 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm25
8269 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm29, %zmm25
8270 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm30 = [0,0,14,30,0,0,0,0,0,0,15,31,0,0,0,0]
8271 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm26
8272 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm30, %zmm26
8273 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,12,28,0,0,0,0,0,0,13,29,0,0,0,0]
8274 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm16
8275 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rdx), %zmm5
8276 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rcx), %zmm0
8277 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm0, %zmm5, %zmm2
8278 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8279 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm0, %zmm5, %zmm3
8280 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8281 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm0, %zmm5, %zmm4
8282 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm4, (%rsp) # 64-byte Spill
8283 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm0, %zmm5, %zmm6
8284 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8285 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm0, %zmm5, %zmm7
8286 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8287 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm0, %zmm5, %zmm29
8288 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm0, %zmm5, %zmm30
8289 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm5
8290 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rdi), %zmm3
8291 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rsi), %zmm0
8292 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [2,18,0,0,0,0,0,0,3,19,0,0,0,0,0,0]
8293 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm18
8294 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm12, %zmm18
8295 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [0,16,0,0,0,0,0,0,1,17,0,0,0,0,0,0]
8296 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm17
8297 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm10, %zmm17
8298 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [6,22,0,0,0,0,0,0,7,23,0,0,0,0,0,0]
8299 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm15
8300 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm8, %zmm15
8301 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [4,20,0,0,0,0,0,0,5,21,0,0,0,0,0,0]
8302 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm14
8303 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm7, %zmm14
8304 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [10,26,0,0,0,0,0,0,11,27,0,0,0,0,0,0]
8305 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm13
8306 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm6, %zmm13
8307 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [8,24,0,0,0,0,0,0,9,25,0,0,0,0,0,0]
8308 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm11
8309 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm4, %zmm11
8310 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [14,30,0,0,0,0,0,0,15,31,0,0,0,0,0,0]
8311 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm9
8312 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm2, %zmm9
8313 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm19 = [12,28,0,0,0,0,0,0,13,29,0,0,0,0,0,0]
8314 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm19, %zmm3
8315 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rdi), %zmm1
8316 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rsi), %zmm0
8317 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm0, %zmm1, %zmm12
8318 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm0, %zmm1, %zmm10
8319 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm0, %zmm1, %zmm8
8320 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm0, %zmm1, %zmm7
8321 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm0, %zmm1, %zmm6
8322 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm0, %zmm1, %zmm4
8323 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm0, %zmm1, %zmm2
8324 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm19, %zmm1
8325 ; AVX512DQ-BW-NEXT:    movb $-120, %al
8326 ; AVX512DQ-BW-NEXT:    kmovd %eax, %k1
8327 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8328 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
8329 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm19, %zmm0 {%k1}
8330 ; AVX512DQ-BW-NEXT:    movb $34, %al
8331 ; AVX512DQ-BW-NEXT:    kmovd %eax, %k2
8332 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm20, %zmm18 {%k2}
8333 ; AVX512DQ-BW-NEXT:    movb $-52, %al
8334 ; AVX512DQ-BW-NEXT:    kmovd %eax, %k3
8335 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm18 {%k3}
8336 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8337 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
8338 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k1}
8339 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm21, %zmm17 {%k2}
8340 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm19, %zmm17 {%k3}
8341 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8342 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
8343 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k1}
8344 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm22, %zmm15 {%k2}
8345 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm19, %zmm15 {%k3}
8346 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8347 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
8348 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k1}
8349 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm23, %zmm14 {%k2}
8350 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm19, %zmm14 {%k3}
8351 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8352 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
8353 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k1}
8354 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm24, %zmm13 {%k2}
8355 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm19, %zmm13 {%k3}
8356 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8357 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
8358 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k1}
8359 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm25, %zmm11 {%k2}
8360 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm19, %zmm11 {%k3}
8361 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8362 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k1}
8363 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm26, %zmm9 {%k2}
8364 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm31, %zmm9 {%k3}
8365 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8366 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
8367 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm19, %zmm0 {%k1}
8368 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm3 {%k2}
8369 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k3}
8370 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8371 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
8372 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm0 {%k1}
8373 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
8374 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm12 {%k2}
8375 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm12 {%k3}
8376 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8377 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
8378 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm0 {%k1}
8379 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
8380 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm10 {%k2}
8381 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm10 {%k3}
8382 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8383 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
8384 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm0 {%k1}
8385 ; AVX512DQ-BW-NEXT:    vmovdqu64 (%rsp), %zmm16 # 64-byte Reload
8386 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm8 {%k2}
8387 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k3}
8388 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8389 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
8390 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm0 {%k1}
8391 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
8392 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm7 {%k2}
8393 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k3}
8394 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8395 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
8396 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm0 {%k1}
8397 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
8398 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm6 {%k2}
8399 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k3}
8400 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8401 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
8402 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm0 {%k1}
8403 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm29, %zmm4 {%k2}
8404 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k3}
8405 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8406 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm28 {%k1}
8407 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm30, %zmm2 {%k2}
8408 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm28, %zmm2 {%k3}
8409 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8410 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm27 {%k1}
8411 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm1 {%k2}
8412 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm27, %zmm1 {%k3}
8413 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
8414 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, 896(%rax)
8415 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, 960(%rax)
8416 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, 768(%rax)
8417 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, 832(%rax)
8418 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, 640(%rax)
8419 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, 704(%rax)
8420 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, 512(%rax)
8421 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm12, 576(%rax)
8422 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, 384(%rax)
8423 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, 448(%rax)
8424 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, 256(%rax)
8425 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm13, 320(%rax)
8426 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm14, 128(%rax)
8427 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, 192(%rax)
8428 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm17, (%rax)
8429 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm18, 64(%rax)
8430 ; AVX512DQ-BW-NEXT:    addq $2056, %rsp # imm = 0x808
8431 ; AVX512DQ-BW-NEXT:    vzeroupper
8432 ; AVX512DQ-BW-NEXT:    retq
8434 ; AVX512DQ-BW-FCP-LABEL: store_i32_stride8_vf32:
8435 ; AVX512DQ-BW-FCP:       # %bb.0:
8436 ; AVX512DQ-BW-FCP-NEXT:    subq $2056, %rsp # imm = 0x808
8437 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
8438 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
8439 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%r8), %zmm1
8440 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%r9), %zmm27
8441 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%r10), %zmm2
8442 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%r10), %zmm0
8443 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rax), %zmm30
8444 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rax), %zmm28
8445 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,0,0,0,0,0,2,18,0,0,0,0,0,0,3,19]
8446 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm5
8447 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm4
8448 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm30, %zmm3, %zmm5
8449 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8450 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [0,0,0,0,2,18,0,0,0,0,0,0,3,19,0,0]
8451 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm5
8452 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm27, %zmm2, %zmm5
8453 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8454 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,0,0,0,0,0,0,16,0,0,0,0,0,0,1,17]
8455 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm6
8456 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm30, %zmm5, %zmm6
8457 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8458 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [0,0,0,0,0,16,0,0,0,0,0,0,1,17,0,0]
8459 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm7
8460 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm27, %zmm6, %zmm7
8461 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8462 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [0,0,0,0,0,0,6,22,0,0,0,0,0,0,7,23]
8463 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm8
8464 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm30, %zmm7, %zmm8
8465 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8466 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,0,0,0,6,22,0,0,0,0,0,0,7,23,0,0]
8467 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm9
8468 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm27, %zmm8, %zmm9
8469 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8470 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [0,0,0,0,0,0,4,20,0,0,0,0,0,0,5,21]
8471 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm10
8472 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm30, %zmm9, %zmm10
8473 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8474 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [0,0,0,0,4,20,0,0,0,0,0,0,5,21,0,0]
8475 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm11
8476 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm27, %zmm10, %zmm11
8477 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8478 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [0,0,0,0,0,0,10,26,0,0,0,0,0,0,11,27]
8479 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm12
8480 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm30, %zmm11, %zmm12
8481 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8482 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,0,0,0,10,26,0,0,0,0,0,0,11,27,0,0]
8483 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm13
8484 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm27, %zmm12, %zmm13
8485 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8486 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm13 = [0,0,0,0,0,0,8,24,0,0,0,0,0,0,9,25]
8487 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm14
8488 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm30, %zmm13, %zmm14
8489 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8490 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [0,0,0,0,8,24,0,0,0,0,0,0,9,25,0,0]
8491 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm15 = [0,0,0,0,0,0,14,30,0,0,0,0,0,0,15,31]
8492 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm16
8493 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm30, %zmm15, %zmm16
8494 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8495 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm31 = [0,0,0,0,0,0,12,28,0,0,0,0,0,0,13,29]
8496 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm30, %zmm31, %zmm4
8497 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8498 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4
8499 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm27, %zmm14, %zmm4
8500 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8501 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm28, %zmm0, %zmm3
8502 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8503 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm28, %zmm0, %zmm5
8504 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8505 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm28, %zmm0, %zmm7
8506 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8507 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm28, %zmm0, %zmm9
8508 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8509 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm28, %zmm0, %zmm11
8510 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8511 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm28, %zmm0, %zmm13
8512 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8513 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm28, %zmm0, %zmm15
8514 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8515 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm28, %zmm31, %zmm0
8516 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8517 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm28 = [0,0,0,0,14,30,0,0,0,0,0,0,15,31,0,0]
8518 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm31
8519 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm27, %zmm28, %zmm31
8520 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm0 = [0,0,0,0,12,28,0,0,0,0,0,0,13,29,0,0]
8521 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm27, %zmm0, %zmm1
8522 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8523 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%r8), %zmm27
8524 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%r9), %zmm1
8525 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm1, %zmm27, %zmm2
8526 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8527 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm1, %zmm27, %zmm6
8528 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8529 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm1, %zmm27, %zmm8
8530 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8531 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm1, %zmm27, %zmm10
8532 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8533 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm1, %zmm27, %zmm12
8534 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8535 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm1, %zmm27, %zmm14
8536 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8537 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm1, %zmm27, %zmm28
8538 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm1, %zmm0, %zmm27
8539 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdx), %zmm16
8540 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rcx), %zmm0
8541 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,2,18,0,0,0,0,0,0,3,19,0,0,0,0]
8542 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm20
8543 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm20
8544 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2
8545 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,16,0,0,0,0,0,0,1,17,0,0,0,0]
8546 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm21
8547 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm21
8548 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm3
8549 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,6,22,0,0,0,0,0,0,7,23,0,0,0,0]
8550 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm22
8551 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm22
8552 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4
8553 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,4,20,0,0,0,0,0,0,5,21,0,0,0,0]
8554 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm23
8555 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm23
8556 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm6
8557 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,10,26,0,0,0,0,0,0,11,27,0,0,0,0]
8558 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm24
8559 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm24
8560 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm7
8561 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm29 = [0,0,8,24,0,0,0,0,0,0,9,25,0,0,0,0]
8562 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm25
8563 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm29, %zmm25
8564 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm30 = [0,0,14,30,0,0,0,0,0,0,15,31,0,0,0,0]
8565 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm26
8566 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm30, %zmm26
8567 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,12,28,0,0,0,0,0,0,13,29,0,0,0,0]
8568 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm16
8569 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rdx), %zmm5
8570 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rcx), %zmm0
8571 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm0, %zmm5, %zmm2
8572 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8573 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm0, %zmm5, %zmm3
8574 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8575 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm0, %zmm5, %zmm4
8576 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm4, (%rsp) # 64-byte Spill
8577 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm0, %zmm5, %zmm6
8578 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8579 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm0, %zmm5, %zmm7
8580 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8581 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm0, %zmm5, %zmm29
8582 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm0, %zmm5, %zmm30
8583 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm5
8584 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm3
8585 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rsi), %zmm0
8586 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [2,18,0,0,0,0,0,0,3,19,0,0,0,0,0,0]
8587 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm18
8588 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm12, %zmm18
8589 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [0,16,0,0,0,0,0,0,1,17,0,0,0,0,0,0]
8590 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm17
8591 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm10, %zmm17
8592 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [6,22,0,0,0,0,0,0,7,23,0,0,0,0,0,0]
8593 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm15
8594 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm8, %zmm15
8595 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [4,20,0,0,0,0,0,0,5,21,0,0,0,0,0,0]
8596 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm14
8597 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm7, %zmm14
8598 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [10,26,0,0,0,0,0,0,11,27,0,0,0,0,0,0]
8599 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm13
8600 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm6, %zmm13
8601 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [8,24,0,0,0,0,0,0,9,25,0,0,0,0,0,0]
8602 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm11
8603 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm4, %zmm11
8604 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm2 = [14,30,0,0,0,0,0,0,15,31,0,0,0,0,0,0]
8605 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm9
8606 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm2, %zmm9
8607 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm19 = [12,28,0,0,0,0,0,0,13,29,0,0,0,0,0,0]
8608 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm19, %zmm3
8609 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm1
8610 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rsi), %zmm0
8611 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm12
8612 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm10
8613 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm8
8614 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm7
8615 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm6
8616 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm4
8617 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm2
8618 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm19, %zmm1
8619 ; AVX512DQ-BW-FCP-NEXT:    movb $-120, %al
8620 ; AVX512DQ-BW-FCP-NEXT:    kmovd %eax, %k1
8621 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8622 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
8623 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm19, %zmm0 {%k1}
8624 ; AVX512DQ-BW-FCP-NEXT:    movb $34, %al
8625 ; AVX512DQ-BW-FCP-NEXT:    kmovd %eax, %k2
8626 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm20, %zmm18 {%k2}
8627 ; AVX512DQ-BW-FCP-NEXT:    movb $-52, %al
8628 ; AVX512DQ-BW-FCP-NEXT:    kmovd %eax, %k3
8629 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm18 {%k3}
8630 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8631 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
8632 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k1}
8633 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm21, %zmm17 {%k2}
8634 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm19, %zmm17 {%k3}
8635 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8636 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
8637 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k1}
8638 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm15 {%k2}
8639 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm19, %zmm15 {%k3}
8640 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8641 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
8642 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k1}
8643 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm23, %zmm14 {%k2}
8644 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm19, %zmm14 {%k3}
8645 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8646 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
8647 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k1}
8648 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm24, %zmm13 {%k2}
8649 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm19, %zmm13 {%k3}
8650 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8651 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
8652 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k1}
8653 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm25, %zmm11 {%k2}
8654 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm19, %zmm11 {%k3}
8655 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8656 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k1}
8657 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm26, %zmm9 {%k2}
8658 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm31, %zmm9 {%k3}
8659 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8660 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
8661 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm19, %zmm0 {%k1}
8662 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm3 {%k2}
8663 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k3}
8664 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8665 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
8666 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm0 {%k1}
8667 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
8668 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm12 {%k2}
8669 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm12 {%k3}
8670 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8671 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
8672 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm0 {%k1}
8673 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
8674 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm10 {%k2}
8675 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm10 {%k3}
8676 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8677 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
8678 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm0 {%k1}
8679 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 (%rsp), %zmm16 # 64-byte Reload
8680 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm8 {%k2}
8681 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k3}
8682 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8683 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
8684 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm0 {%k1}
8685 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
8686 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm7 {%k2}
8687 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k3}
8688 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8689 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
8690 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm0 {%k1}
8691 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
8692 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm6 {%k2}
8693 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k3}
8694 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8695 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
8696 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm0 {%k1}
8697 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm29, %zmm4 {%k2}
8698 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k3}
8699 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8700 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm28 {%k1}
8701 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm30, %zmm2 {%k2}
8702 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm28, %zmm2 {%k3}
8703 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8704 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm27 {%k1}
8705 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm1 {%k2}
8706 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm27, %zmm1 {%k3}
8707 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
8708 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, 896(%rax)
8709 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, 960(%rax)
8710 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, 768(%rax)
8711 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, 832(%rax)
8712 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, 640(%rax)
8713 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, 704(%rax)
8714 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, 512(%rax)
8715 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, 576(%rax)
8716 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, 384(%rax)
8717 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, 448(%rax)
8718 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, 256(%rax)
8719 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm13, 320(%rax)
8720 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm14, 128(%rax)
8721 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm15, 192(%rax)
8722 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm17, (%rax)
8723 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm18, 64(%rax)
8724 ; AVX512DQ-BW-FCP-NEXT:    addq $2056, %rsp # imm = 0x808
8725 ; AVX512DQ-BW-FCP-NEXT:    vzeroupper
8726 ; AVX512DQ-BW-FCP-NEXT:    retq
8727   %in.vec0 = load <32 x i32>, ptr %in.vecptr0, align 64
8728   %in.vec1 = load <32 x i32>, ptr %in.vecptr1, align 64
8729   %in.vec2 = load <32 x i32>, ptr %in.vecptr2, align 64
8730   %in.vec3 = load <32 x i32>, ptr %in.vecptr3, align 64
8731   %in.vec4 = load <32 x i32>, ptr %in.vecptr4, align 64
8732   %in.vec5 = load <32 x i32>, ptr %in.vecptr5, align 64
8733   %in.vec6 = load <32 x i32>, ptr %in.vecptr6, align 64
8734   %in.vec7 = load <32 x i32>, ptr %in.vecptr7, align 64
8735   %1 = shufflevector <32 x i32> %in.vec0, <32 x i32> %in.vec1, <64 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63>
8736   %2 = shufflevector <32 x i32> %in.vec2, <32 x i32> %in.vec3, <64 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63>
8737   %3 = shufflevector <32 x i32> %in.vec4, <32 x i32> %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>
8738   %4 = shufflevector <32 x i32> %in.vec6, <32 x i32> %in.vec7, <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>
8739   %5 = shufflevector <64 x i32> %1, <64 x i32> %2, <128 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127>
8740   %6 = shufflevector <64 x i32> %3, <64 x i32> %4, <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>
8741   %7 = shufflevector <128 x i32> %5, <128 x i32> %6, <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>
8742   %interleaved.vec = shufflevector <256 x i32> %7, <256 x i32> poison, <256 x i32> <i32 0, i32 32, i32 64, i32 96, i32 128, i32 160, i32 192, i32 224, i32 1, i32 33, i32 65, i32 97, i32 129, i32 161, i32 193, i32 225, i32 2, i32 34, i32 66, i32 98, i32 130, i32 162, i32 194, i32 226, i32 3, i32 35, i32 67, i32 99, i32 131, i32 163, i32 195, i32 227, i32 4, i32 36, i32 68, i32 100, i32 132, i32 164, i32 196, i32 228, i32 5, i32 37, i32 69, i32 101, i32 133, i32 165, i32 197, i32 229, i32 6, i32 38, i32 70, i32 102, i32 134, i32 166, i32 198, i32 230, i32 7, i32 39, i32 71, i32 103, i32 135, i32 167, i32 199, i32 231, i32 8, i32 40, i32 72, i32 104, i32 136, i32 168, i32 200, i32 232, i32 9, i32 41, i32 73, i32 105, i32 137, i32 169, i32 201, i32 233, i32 10, i32 42, i32 74, i32 106, i32 138, i32 170, i32 202, i32 234, i32 11, i32 43, i32 75, i32 107, i32 139, i32 171, i32 203, i32 235, i32 12, i32 44, i32 76, i32 108, i32 140, i32 172, i32 204, i32 236, i32 13, i32 45, i32 77, i32 109, i32 141, i32 173, i32 205, i32 237, i32 14, i32 46, i32 78, i32 110, i32 142, i32 174, i32 206, i32 238, i32 15, i32 47, i32 79, i32 111, i32 143, i32 175, i32 207, i32 239, i32 16, i32 48, i32 80, i32 112, i32 144, i32 176, i32 208, i32 240, i32 17, i32 49, i32 81, i32 113, i32 145, i32 177, i32 209, i32 241, i32 18, i32 50, i32 82, i32 114, i32 146, i32 178, i32 210, i32 242, i32 19, i32 51, i32 83, i32 115, i32 147, i32 179, i32 211, i32 243, i32 20, i32 52, i32 84, i32 116, i32 148, i32 180, i32 212, i32 244, i32 21, i32 53, i32 85, i32 117, i32 149, i32 181, i32 213, i32 245, i32 22, i32 54, i32 86, i32 118, i32 150, i32 182, i32 214, i32 246, i32 23, i32 55, i32 87, i32 119, i32 151, i32 183, i32 215, i32 247, i32 24, i32 56, i32 88, i32 120, i32 152, i32 184, i32 216, i32 248, i32 25, i32 57, i32 89, i32 121, i32 153, i32 185, i32 217, i32 249, i32 26, i32 58, i32 90, i32 122, i32 154, i32 186, i32 218, i32 250, i32 27, i32 59, i32 91, i32 123, i32 155, i32 187, i32 219, i32 251, i32 28, i32 60, i32 92, i32 124, i32 156, i32 188, i32 220, i32 252, i32 29, i32 61, i32 93, i32 125, i32 157, i32 189, i32 221, i32 253, i32 30, i32 62, i32 94, i32 126, i32 158, i32 190, i32 222, i32 254, i32 31, i32 63, i32 95, i32 127, i32 159, i32 191, i32 223, i32 255>
8743   store <256 x i32> %interleaved.vec, ptr %out.vec, align 64
8744   ret void
8747 define void @store_i32_stride8_vf64(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %in.vecptr4, ptr %in.vecptr5, ptr %in.vecptr6, ptr %in.vecptr7, ptr %out.vec) nounwind {
8748 ; SSE-LABEL: store_i32_stride8_vf64:
8749 ; SSE:       # %bb.0:
8750 ; SSE-NEXT:    subq $1752, %rsp # imm = 0x6D8
8751 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
8752 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %r10
8753 ; SSE-NEXT:    movaps (%rdi), %xmm9
8754 ; SSE-NEXT:    movaps 16(%rdi), %xmm10
8755 ; SSE-NEXT:    movaps (%rsi), %xmm2
8756 ; SSE-NEXT:    movaps 16(%rsi), %xmm0
8757 ; SSE-NEXT:    movaps (%rdx), %xmm3
8758 ; SSE-NEXT:    movaps 16(%rdx), %xmm1
8759 ; SSE-NEXT:    movaps (%rcx), %xmm4
8760 ; SSE-NEXT:    movaps (%r8), %xmm11
8761 ; SSE-NEXT:    movaps (%r9), %xmm5
8762 ; SSE-NEXT:    movaps (%r10), %xmm6
8763 ; SSE-NEXT:    movaps (%rax), %xmm7
8764 ; SSE-NEXT:    movaps %xmm4, %xmm8
8765 ; SSE-NEXT:    movlhps {{.*#+}} xmm8 = xmm8[0],xmm3[0]
8766 ; SSE-NEXT:    movaps %xmm9, %xmm13
8767 ; SSE-NEXT:    unpcklps {{.*#+}} xmm13 = xmm13[0],xmm2[0],xmm13[1],xmm2[1]
8768 ; SSE-NEXT:    movaps %xmm13, %xmm12
8769 ; SSE-NEXT:    shufps {{.*#+}} xmm12 = xmm12[0,1],xmm8[2,0]
8770 ; SSE-NEXT:    movaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8771 ; SSE-NEXT:    movaps %xmm7, %xmm8
8772 ; SSE-NEXT:    movlhps {{.*#+}} xmm8 = xmm8[0],xmm6[0]
8773 ; SSE-NEXT:    movaps %xmm11, %xmm14
8774 ; SSE-NEXT:    unpcklps {{.*#+}} xmm14 = xmm14[0],xmm5[0],xmm14[1],xmm5[1]
8775 ; SSE-NEXT:    movaps %xmm14, %xmm12
8776 ; SSE-NEXT:    shufps {{.*#+}} xmm12 = xmm12[0,1],xmm8[2,0]
8777 ; SSE-NEXT:    movaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8778 ; SSE-NEXT:    movaps %xmm4, %xmm8
8779 ; SSE-NEXT:    shufps {{.*#+}} xmm8 = xmm8[1,1],xmm3[1,1]
8780 ; SSE-NEXT:    shufps {{.*#+}} xmm13 = xmm13[2,3],xmm8[2,0]
8781 ; SSE-NEXT:    movaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8782 ; SSE-NEXT:    movaps %xmm7, %xmm8
8783 ; SSE-NEXT:    shufps {{.*#+}} xmm8 = xmm8[1,1],xmm6[1,1]
8784 ; SSE-NEXT:    shufps {{.*#+}} xmm14 = xmm14[2,3],xmm8[2,0]
8785 ; SSE-NEXT:    movaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8786 ; SSE-NEXT:    movaps %xmm3, %xmm8
8787 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm4[1]
8788 ; SSE-NEXT:    unpckhps {{.*#+}} xmm9 = xmm9[2],xmm2[2],xmm9[3],xmm2[3]
8789 ; SSE-NEXT:    movaps %xmm9, %xmm2
8790 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[0,1],xmm8[0,2]
8791 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8792 ; SSE-NEXT:    movaps %xmm6, %xmm2
8793 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm7[1]
8794 ; SSE-NEXT:    unpckhps {{.*#+}} xmm11 = xmm11[2],xmm5[2],xmm11[3],xmm5[3]
8795 ; SSE-NEXT:    movaps %xmm11, %xmm5
8796 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm2[0,2]
8797 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8798 ; SSE-NEXT:    movaps 16(%rcx), %xmm5
8799 ; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[3,3],xmm4[3,3]
8800 ; SSE-NEXT:    movaps 16(%r10), %xmm2
8801 ; SSE-NEXT:    shufps {{.*#+}} xmm9 = xmm9[2,3],xmm3[0,2]
8802 ; SSE-NEXT:    movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8803 ; SSE-NEXT:    shufps {{.*#+}} xmm6 = xmm6[3,3],xmm7[3,3]
8804 ; SSE-NEXT:    shufps {{.*#+}} xmm11 = xmm11[2,3],xmm6[0,2]
8805 ; SSE-NEXT:    movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8806 ; SSE-NEXT:    movaps %xmm5, %xmm3
8807 ; SSE-NEXT:    movlhps {{.*#+}} xmm3 = xmm3[0],xmm1[0]
8808 ; SSE-NEXT:    movaps %xmm10, %xmm6
8809 ; SSE-NEXT:    unpcklps {{.*#+}} xmm6 = xmm6[0],xmm0[0],xmm6[1],xmm0[1]
8810 ; SSE-NEXT:    movaps %xmm6, %xmm4
8811 ; SSE-NEXT:    movaps %xmm6, %xmm7
8812 ; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[0,1],xmm3[2,0]
8813 ; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8814 ; SSE-NEXT:    movaps 16(%rax), %xmm3
8815 ; SSE-NEXT:    movaps %xmm3, %xmm4
8816 ; SSE-NEXT:    movlhps {{.*#+}} xmm4 = xmm4[0],xmm2[0]
8817 ; SSE-NEXT:    movaps 16(%r8), %xmm11
8818 ; SSE-NEXT:    movaps 16(%r9), %xmm6
8819 ; SSE-NEXT:    movaps %xmm11, %xmm9
8820 ; SSE-NEXT:    unpcklps {{.*#+}} xmm9 = xmm9[0],xmm6[0],xmm9[1],xmm6[1]
8821 ; SSE-NEXT:    movaps %xmm9, %xmm8
8822 ; SSE-NEXT:    shufps {{.*#+}} xmm8 = xmm8[0,1],xmm4[2,0]
8823 ; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8824 ; SSE-NEXT:    movaps %xmm5, %xmm4
8825 ; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[1,1],xmm1[1,1]
8826 ; SSE-NEXT:    shufps {{.*#+}} xmm7 = xmm7[2,3],xmm4[2,0]
8827 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8828 ; SSE-NEXT:    movaps %xmm3, %xmm4
8829 ; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[1,1],xmm2[1,1]
8830 ; SSE-NEXT:    shufps {{.*#+}} xmm9 = xmm9[2,3],xmm4[2,0]
8831 ; SSE-NEXT:    movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8832 ; SSE-NEXT:    unpckhps {{.*#+}} xmm10 = xmm10[2],xmm0[2],xmm10[3],xmm0[3]
8833 ; SSE-NEXT:    movaps %xmm1, %xmm0
8834 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm5[1]
8835 ; SSE-NEXT:    movaps %xmm10, %xmm4
8836 ; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[0,1],xmm0[0,2]
8837 ; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8838 ; SSE-NEXT:    unpckhps {{.*#+}} xmm11 = xmm11[2],xmm6[2],xmm11[3],xmm6[3]
8839 ; SSE-NEXT:    movaps %xmm2, %xmm0
8840 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm3[1]
8841 ; SSE-NEXT:    movaps %xmm11, %xmm4
8842 ; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[0,1],xmm0[0,2]
8843 ; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8844 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[3,3],xmm5[3,3]
8845 ; SSE-NEXT:    shufps {{.*#+}} xmm10 = xmm10[2,3],xmm1[0,2]
8846 ; SSE-NEXT:    movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8847 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[3,3],xmm3[3,3]
8848 ; SSE-NEXT:    shufps {{.*#+}} xmm11 = xmm11[2,3],xmm2[0,2]
8849 ; SSE-NEXT:    movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8850 ; SSE-NEXT:    movaps 32(%rdx), %xmm0
8851 ; SSE-NEXT:    movaps 32(%rcx), %xmm1
8852 ; SSE-NEXT:    movaps %xmm1, %xmm2
8853 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
8854 ; SSE-NEXT:    movaps 32(%rdi), %xmm7
8855 ; SSE-NEXT:    movaps 32(%rsi), %xmm4
8856 ; SSE-NEXT:    movaps %xmm7, %xmm5
8857 ; SSE-NEXT:    unpcklps {{.*#+}} xmm5 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
8858 ; SSE-NEXT:    movaps %xmm5, %xmm3
8859 ; SSE-NEXT:    movaps %xmm5, %xmm8
8860 ; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[0,1],xmm2[2,0]
8861 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8862 ; SSE-NEXT:    movaps 32(%r10), %xmm2
8863 ; SSE-NEXT:    movaps 32(%rax), %xmm3
8864 ; SSE-NEXT:    movaps %xmm3, %xmm5
8865 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm2[0]
8866 ; SSE-NEXT:    movaps 32(%r8), %xmm11
8867 ; SSE-NEXT:    movaps 32(%r9), %xmm6
8868 ; SSE-NEXT:    movaps %xmm11, %xmm10
8869 ; SSE-NEXT:    unpcklps {{.*#+}} xmm10 = xmm10[0],xmm6[0],xmm10[1],xmm6[1]
8870 ; SSE-NEXT:    movaps %xmm10, %xmm9
8871 ; SSE-NEXT:    shufps {{.*#+}} xmm9 = xmm9[0,1],xmm5[2,0]
8872 ; SSE-NEXT:    movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8873 ; SSE-NEXT:    movaps %xmm1, %xmm5
8874 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1],xmm0[1,1]
8875 ; SSE-NEXT:    shufps {{.*#+}} xmm8 = xmm8[2,3],xmm5[2,0]
8876 ; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8877 ; SSE-NEXT:    movaps %xmm3, %xmm5
8878 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1],xmm2[1,1]
8879 ; SSE-NEXT:    shufps {{.*#+}} xmm10 = xmm10[2,3],xmm5[2,0]
8880 ; SSE-NEXT:    movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8881 ; SSE-NEXT:    unpckhps {{.*#+}} xmm7 = xmm7[2],xmm4[2],xmm7[3],xmm4[3]
8882 ; SSE-NEXT:    movaps %xmm0, %xmm4
8883 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm1[1]
8884 ; SSE-NEXT:    movaps %xmm7, %xmm5
8885 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm4[0,2]
8886 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8887 ; SSE-NEXT:    unpckhps {{.*#+}} xmm11 = xmm11[2],xmm6[2],xmm11[3],xmm6[3]
8888 ; SSE-NEXT:    movaps %xmm2, %xmm4
8889 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm3[1]
8890 ; SSE-NEXT:    movaps %xmm11, %xmm5
8891 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm4[0,2]
8892 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8893 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm1[3,3]
8894 ; SSE-NEXT:    shufps {{.*#+}} xmm7 = xmm7[2,3],xmm0[0,2]
8895 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8896 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[3,3],xmm3[3,3]
8897 ; SSE-NEXT:    shufps {{.*#+}} xmm11 = xmm11[2,3],xmm2[0,2]
8898 ; SSE-NEXT:    movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8899 ; SSE-NEXT:    movaps 48(%rdx), %xmm0
8900 ; SSE-NEXT:    movaps 48(%rcx), %xmm1
8901 ; SSE-NEXT:    movaps %xmm1, %xmm2
8902 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
8903 ; SSE-NEXT:    movaps 48(%rdi), %xmm7
8904 ; SSE-NEXT:    movaps 48(%rsi), %xmm4
8905 ; SSE-NEXT:    movaps %xmm7, %xmm5
8906 ; SSE-NEXT:    unpcklps {{.*#+}} xmm5 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
8907 ; SSE-NEXT:    movaps %xmm5, %xmm3
8908 ; SSE-NEXT:    movaps %xmm5, %xmm8
8909 ; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[0,1],xmm2[2,0]
8910 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8911 ; SSE-NEXT:    movaps 48(%r10), %xmm2
8912 ; SSE-NEXT:    movaps 48(%rax), %xmm3
8913 ; SSE-NEXT:    movaps %xmm3, %xmm5
8914 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm2[0]
8915 ; SSE-NEXT:    movaps 48(%r8), %xmm11
8916 ; SSE-NEXT:    movaps 48(%r9), %xmm6
8917 ; SSE-NEXT:    movaps %xmm11, %xmm10
8918 ; SSE-NEXT:    unpcklps {{.*#+}} xmm10 = xmm10[0],xmm6[0],xmm10[1],xmm6[1]
8919 ; SSE-NEXT:    movaps %xmm10, %xmm9
8920 ; SSE-NEXT:    shufps {{.*#+}} xmm9 = xmm9[0,1],xmm5[2,0]
8921 ; SSE-NEXT:    movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8922 ; SSE-NEXT:    movaps %xmm1, %xmm5
8923 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1],xmm0[1,1]
8924 ; SSE-NEXT:    shufps {{.*#+}} xmm8 = xmm8[2,3],xmm5[2,0]
8925 ; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8926 ; SSE-NEXT:    movaps %xmm3, %xmm5
8927 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1],xmm2[1,1]
8928 ; SSE-NEXT:    shufps {{.*#+}} xmm10 = xmm10[2,3],xmm5[2,0]
8929 ; SSE-NEXT:    movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8930 ; SSE-NEXT:    unpckhps {{.*#+}} xmm7 = xmm7[2],xmm4[2],xmm7[3],xmm4[3]
8931 ; SSE-NEXT:    movaps %xmm0, %xmm4
8932 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm1[1]
8933 ; SSE-NEXT:    movaps %xmm7, %xmm5
8934 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm4[0,2]
8935 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8936 ; SSE-NEXT:    unpckhps {{.*#+}} xmm11 = xmm11[2],xmm6[2],xmm11[3],xmm6[3]
8937 ; SSE-NEXT:    movaps %xmm2, %xmm4
8938 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm3[1]
8939 ; SSE-NEXT:    movaps %xmm11, %xmm5
8940 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm4[0,2]
8941 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8942 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm1[3,3]
8943 ; SSE-NEXT:    shufps {{.*#+}} xmm7 = xmm7[2,3],xmm0[0,2]
8944 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8945 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[3,3],xmm3[3,3]
8946 ; SSE-NEXT:    shufps {{.*#+}} xmm11 = xmm11[2,3],xmm2[0,2]
8947 ; SSE-NEXT:    movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8948 ; SSE-NEXT:    movaps 64(%rdx), %xmm0
8949 ; SSE-NEXT:    movaps 64(%rcx), %xmm1
8950 ; SSE-NEXT:    movaps %xmm1, %xmm2
8951 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
8952 ; SSE-NEXT:    movaps 64(%rdi), %xmm7
8953 ; SSE-NEXT:    movaps 64(%rsi), %xmm4
8954 ; SSE-NEXT:    movaps %xmm7, %xmm5
8955 ; SSE-NEXT:    unpcklps {{.*#+}} xmm5 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
8956 ; SSE-NEXT:    movaps %xmm5, %xmm3
8957 ; SSE-NEXT:    movaps %xmm5, %xmm8
8958 ; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[0,1],xmm2[2,0]
8959 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8960 ; SSE-NEXT:    movaps 64(%r10), %xmm2
8961 ; SSE-NEXT:    movaps 64(%rax), %xmm3
8962 ; SSE-NEXT:    movaps %xmm3, %xmm5
8963 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm2[0]
8964 ; SSE-NEXT:    movaps 64(%r8), %xmm11
8965 ; SSE-NEXT:    movaps 64(%r9), %xmm6
8966 ; SSE-NEXT:    movaps %xmm11, %xmm10
8967 ; SSE-NEXT:    unpcklps {{.*#+}} xmm10 = xmm10[0],xmm6[0],xmm10[1],xmm6[1]
8968 ; SSE-NEXT:    movaps %xmm10, %xmm9
8969 ; SSE-NEXT:    shufps {{.*#+}} xmm9 = xmm9[0,1],xmm5[2,0]
8970 ; SSE-NEXT:    movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8971 ; SSE-NEXT:    movaps %xmm1, %xmm5
8972 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1],xmm0[1,1]
8973 ; SSE-NEXT:    shufps {{.*#+}} xmm8 = xmm8[2,3],xmm5[2,0]
8974 ; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8975 ; SSE-NEXT:    movaps %xmm3, %xmm5
8976 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1],xmm2[1,1]
8977 ; SSE-NEXT:    shufps {{.*#+}} xmm10 = xmm10[2,3],xmm5[2,0]
8978 ; SSE-NEXT:    movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8979 ; SSE-NEXT:    unpckhps {{.*#+}} xmm7 = xmm7[2],xmm4[2],xmm7[3],xmm4[3]
8980 ; SSE-NEXT:    movaps %xmm0, %xmm4
8981 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm1[1]
8982 ; SSE-NEXT:    movaps %xmm7, %xmm5
8983 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm4[0,2]
8984 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8985 ; SSE-NEXT:    unpckhps {{.*#+}} xmm11 = xmm11[2],xmm6[2],xmm11[3],xmm6[3]
8986 ; SSE-NEXT:    movaps %xmm2, %xmm4
8987 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm3[1]
8988 ; SSE-NEXT:    movaps %xmm11, %xmm5
8989 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm4[0,2]
8990 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8991 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm1[3,3]
8992 ; SSE-NEXT:    shufps {{.*#+}} xmm7 = xmm7[2,3],xmm0[0,2]
8993 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8994 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[3,3],xmm3[3,3]
8995 ; SSE-NEXT:    shufps {{.*#+}} xmm11 = xmm11[2,3],xmm2[0,2]
8996 ; SSE-NEXT:    movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8997 ; SSE-NEXT:    movaps 80(%rdx), %xmm0
8998 ; SSE-NEXT:    movaps 80(%rcx), %xmm1
8999 ; SSE-NEXT:    movaps %xmm1, %xmm2
9000 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
9001 ; SSE-NEXT:    movaps 80(%rdi), %xmm7
9002 ; SSE-NEXT:    movaps 80(%rsi), %xmm4
9003 ; SSE-NEXT:    movaps %xmm7, %xmm5
9004 ; SSE-NEXT:    unpcklps {{.*#+}} xmm5 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
9005 ; SSE-NEXT:    movaps %xmm5, %xmm3
9006 ; SSE-NEXT:    movaps %xmm5, %xmm8
9007 ; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[0,1],xmm2[2,0]
9008 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9009 ; SSE-NEXT:    movaps 80(%r10), %xmm2
9010 ; SSE-NEXT:    movaps 80(%rax), %xmm3
9011 ; SSE-NEXT:    movaps %xmm3, %xmm5
9012 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm2[0]
9013 ; SSE-NEXT:    movaps 80(%r8), %xmm11
9014 ; SSE-NEXT:    movaps 80(%r9), %xmm6
9015 ; SSE-NEXT:    movaps %xmm11, %xmm10
9016 ; SSE-NEXT:    unpcklps {{.*#+}} xmm10 = xmm10[0],xmm6[0],xmm10[1],xmm6[1]
9017 ; SSE-NEXT:    movaps %xmm10, %xmm9
9018 ; SSE-NEXT:    shufps {{.*#+}} xmm9 = xmm9[0,1],xmm5[2,0]
9019 ; SSE-NEXT:    movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9020 ; SSE-NEXT:    movaps %xmm1, %xmm5
9021 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1],xmm0[1,1]
9022 ; SSE-NEXT:    shufps {{.*#+}} xmm8 = xmm8[2,3],xmm5[2,0]
9023 ; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9024 ; SSE-NEXT:    movaps %xmm3, %xmm5
9025 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1],xmm2[1,1]
9026 ; SSE-NEXT:    shufps {{.*#+}} xmm10 = xmm10[2,3],xmm5[2,0]
9027 ; SSE-NEXT:    movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9028 ; SSE-NEXT:    unpckhps {{.*#+}} xmm7 = xmm7[2],xmm4[2],xmm7[3],xmm4[3]
9029 ; SSE-NEXT:    movaps %xmm0, %xmm4
9030 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm1[1]
9031 ; SSE-NEXT:    movaps %xmm7, %xmm5
9032 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm4[0,2]
9033 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9034 ; SSE-NEXT:    unpckhps {{.*#+}} xmm11 = xmm11[2],xmm6[2],xmm11[3],xmm6[3]
9035 ; SSE-NEXT:    movaps %xmm2, %xmm4
9036 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm3[1]
9037 ; SSE-NEXT:    movaps %xmm11, %xmm5
9038 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm4[0,2]
9039 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9040 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm1[3,3]
9041 ; SSE-NEXT:    shufps {{.*#+}} xmm7 = xmm7[2,3],xmm0[0,2]
9042 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9043 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[3,3],xmm3[3,3]
9044 ; SSE-NEXT:    shufps {{.*#+}} xmm11 = xmm11[2,3],xmm2[0,2]
9045 ; SSE-NEXT:    movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9046 ; SSE-NEXT:    movaps 96(%rdx), %xmm0
9047 ; SSE-NEXT:    movaps 96(%rcx), %xmm1
9048 ; SSE-NEXT:    movaps %xmm1, %xmm2
9049 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
9050 ; SSE-NEXT:    movaps 96(%rdi), %xmm7
9051 ; SSE-NEXT:    movaps 96(%rsi), %xmm4
9052 ; SSE-NEXT:    movaps %xmm7, %xmm5
9053 ; SSE-NEXT:    unpcklps {{.*#+}} xmm5 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
9054 ; SSE-NEXT:    movaps %xmm5, %xmm3
9055 ; SSE-NEXT:    movaps %xmm5, %xmm8
9056 ; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[0,1],xmm2[2,0]
9057 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9058 ; SSE-NEXT:    movaps 96(%r10), %xmm2
9059 ; SSE-NEXT:    movaps 96(%rax), %xmm3
9060 ; SSE-NEXT:    movaps %xmm3, %xmm5
9061 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm2[0]
9062 ; SSE-NEXT:    movaps 96(%r8), %xmm11
9063 ; SSE-NEXT:    movaps 96(%r9), %xmm6
9064 ; SSE-NEXT:    movaps %xmm11, %xmm10
9065 ; SSE-NEXT:    unpcklps {{.*#+}} xmm10 = xmm10[0],xmm6[0],xmm10[1],xmm6[1]
9066 ; SSE-NEXT:    movaps %xmm10, %xmm9
9067 ; SSE-NEXT:    shufps {{.*#+}} xmm9 = xmm9[0,1],xmm5[2,0]
9068 ; SSE-NEXT:    movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9069 ; SSE-NEXT:    movaps %xmm1, %xmm5
9070 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1],xmm0[1,1]
9071 ; SSE-NEXT:    shufps {{.*#+}} xmm8 = xmm8[2,3],xmm5[2,0]
9072 ; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9073 ; SSE-NEXT:    movaps %xmm3, %xmm5
9074 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1],xmm2[1,1]
9075 ; SSE-NEXT:    shufps {{.*#+}} xmm10 = xmm10[2,3],xmm5[2,0]
9076 ; SSE-NEXT:    movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9077 ; SSE-NEXT:    unpckhps {{.*#+}} xmm7 = xmm7[2],xmm4[2],xmm7[3],xmm4[3]
9078 ; SSE-NEXT:    movaps %xmm0, %xmm4
9079 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm1[1]
9080 ; SSE-NEXT:    movaps %xmm7, %xmm5
9081 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm4[0,2]
9082 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9083 ; SSE-NEXT:    unpckhps {{.*#+}} xmm11 = xmm11[2],xmm6[2],xmm11[3],xmm6[3]
9084 ; SSE-NEXT:    movaps %xmm2, %xmm4
9085 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm3[1]
9086 ; SSE-NEXT:    movaps %xmm11, %xmm5
9087 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm4[0,2]
9088 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9089 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm1[3,3]
9090 ; SSE-NEXT:    shufps {{.*#+}} xmm7 = xmm7[2,3],xmm0[0,2]
9091 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9092 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[3,3],xmm3[3,3]
9093 ; SSE-NEXT:    shufps {{.*#+}} xmm11 = xmm11[2,3],xmm2[0,2]
9094 ; SSE-NEXT:    movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9095 ; SSE-NEXT:    movaps 112(%rdx), %xmm0
9096 ; SSE-NEXT:    movaps 112(%rcx), %xmm1
9097 ; SSE-NEXT:    movaps %xmm1, %xmm2
9098 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
9099 ; SSE-NEXT:    movaps 112(%rdi), %xmm7
9100 ; SSE-NEXT:    movaps 112(%rsi), %xmm4
9101 ; SSE-NEXT:    movaps %xmm7, %xmm5
9102 ; SSE-NEXT:    unpcklps {{.*#+}} xmm5 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
9103 ; SSE-NEXT:    movaps %xmm5, %xmm3
9104 ; SSE-NEXT:    movaps %xmm5, %xmm8
9105 ; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[0,1],xmm2[2,0]
9106 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9107 ; SSE-NEXT:    movaps 112(%r10), %xmm2
9108 ; SSE-NEXT:    movaps 112(%rax), %xmm3
9109 ; SSE-NEXT:    movaps %xmm3, %xmm5
9110 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm2[0]
9111 ; SSE-NEXT:    movaps 112(%r8), %xmm11
9112 ; SSE-NEXT:    movaps 112(%r9), %xmm6
9113 ; SSE-NEXT:    movaps %xmm11, %xmm10
9114 ; SSE-NEXT:    unpcklps {{.*#+}} xmm10 = xmm10[0],xmm6[0],xmm10[1],xmm6[1]
9115 ; SSE-NEXT:    movaps %xmm10, %xmm9
9116 ; SSE-NEXT:    shufps {{.*#+}} xmm9 = xmm9[0,1],xmm5[2,0]
9117 ; SSE-NEXT:    movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9118 ; SSE-NEXT:    movaps %xmm1, %xmm5
9119 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1],xmm0[1,1]
9120 ; SSE-NEXT:    shufps {{.*#+}} xmm8 = xmm8[2,3],xmm5[2,0]
9121 ; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9122 ; SSE-NEXT:    movaps %xmm3, %xmm5
9123 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1],xmm2[1,1]
9124 ; SSE-NEXT:    shufps {{.*#+}} xmm10 = xmm10[2,3],xmm5[2,0]
9125 ; SSE-NEXT:    movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9126 ; SSE-NEXT:    unpckhps {{.*#+}} xmm7 = xmm7[2],xmm4[2],xmm7[3],xmm4[3]
9127 ; SSE-NEXT:    movaps %xmm0, %xmm4
9128 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm1[1]
9129 ; SSE-NEXT:    movaps %xmm7, %xmm5
9130 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm4[0,2]
9131 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9132 ; SSE-NEXT:    unpckhps {{.*#+}} xmm11 = xmm11[2],xmm6[2],xmm11[3],xmm6[3]
9133 ; SSE-NEXT:    movaps %xmm2, %xmm4
9134 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm3[1]
9135 ; SSE-NEXT:    movaps %xmm11, %xmm5
9136 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm4[0,2]
9137 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9138 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm1[3,3]
9139 ; SSE-NEXT:    shufps {{.*#+}} xmm7 = xmm7[2,3],xmm0[0,2]
9140 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9141 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[3,3],xmm3[3,3]
9142 ; SSE-NEXT:    shufps {{.*#+}} xmm11 = xmm11[2,3],xmm2[0,2]
9143 ; SSE-NEXT:    movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9144 ; SSE-NEXT:    movaps 128(%rdx), %xmm0
9145 ; SSE-NEXT:    movaps 128(%rcx), %xmm1
9146 ; SSE-NEXT:    movaps %xmm1, %xmm2
9147 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
9148 ; SSE-NEXT:    movaps 128(%rdi), %xmm7
9149 ; SSE-NEXT:    movaps 128(%rsi), %xmm4
9150 ; SSE-NEXT:    movaps %xmm7, %xmm5
9151 ; SSE-NEXT:    unpcklps {{.*#+}} xmm5 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
9152 ; SSE-NEXT:    movaps %xmm5, %xmm3
9153 ; SSE-NEXT:    movaps %xmm5, %xmm8
9154 ; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[0,1],xmm2[2,0]
9155 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9156 ; SSE-NEXT:    movaps 128(%r10), %xmm2
9157 ; SSE-NEXT:    movaps 128(%rax), %xmm3
9158 ; SSE-NEXT:    movaps %xmm3, %xmm5
9159 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm2[0]
9160 ; SSE-NEXT:    movaps 128(%r8), %xmm11
9161 ; SSE-NEXT:    movaps 128(%r9), %xmm6
9162 ; SSE-NEXT:    movaps %xmm11, %xmm10
9163 ; SSE-NEXT:    unpcklps {{.*#+}} xmm10 = xmm10[0],xmm6[0],xmm10[1],xmm6[1]
9164 ; SSE-NEXT:    movaps %xmm10, %xmm9
9165 ; SSE-NEXT:    shufps {{.*#+}} xmm9 = xmm9[0,1],xmm5[2,0]
9166 ; SSE-NEXT:    movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9167 ; SSE-NEXT:    movaps %xmm1, %xmm5
9168 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1],xmm0[1,1]
9169 ; SSE-NEXT:    shufps {{.*#+}} xmm8 = xmm8[2,3],xmm5[2,0]
9170 ; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9171 ; SSE-NEXT:    movaps %xmm3, %xmm5
9172 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1],xmm2[1,1]
9173 ; SSE-NEXT:    shufps {{.*#+}} xmm10 = xmm10[2,3],xmm5[2,0]
9174 ; SSE-NEXT:    movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9175 ; SSE-NEXT:    unpckhps {{.*#+}} xmm7 = xmm7[2],xmm4[2],xmm7[3],xmm4[3]
9176 ; SSE-NEXT:    movaps %xmm0, %xmm4
9177 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm1[1]
9178 ; SSE-NEXT:    movaps %xmm7, %xmm5
9179 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm4[0,2]
9180 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9181 ; SSE-NEXT:    unpckhps {{.*#+}} xmm11 = xmm11[2],xmm6[2],xmm11[3],xmm6[3]
9182 ; SSE-NEXT:    movaps %xmm2, %xmm4
9183 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm3[1]
9184 ; SSE-NEXT:    movaps %xmm11, %xmm5
9185 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm4[0,2]
9186 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9187 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm1[3,3]
9188 ; SSE-NEXT:    shufps {{.*#+}} xmm7 = xmm7[2,3],xmm0[0,2]
9189 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9190 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[3,3],xmm3[3,3]
9191 ; SSE-NEXT:    shufps {{.*#+}} xmm11 = xmm11[2,3],xmm2[0,2]
9192 ; SSE-NEXT:    movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9193 ; SSE-NEXT:    movaps 144(%rdx), %xmm0
9194 ; SSE-NEXT:    movaps 144(%rcx), %xmm1
9195 ; SSE-NEXT:    movaps %xmm1, %xmm2
9196 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
9197 ; SSE-NEXT:    movaps 144(%rdi), %xmm7
9198 ; SSE-NEXT:    movaps 144(%rsi), %xmm4
9199 ; SSE-NEXT:    movaps %xmm7, %xmm5
9200 ; SSE-NEXT:    unpcklps {{.*#+}} xmm5 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
9201 ; SSE-NEXT:    movaps %xmm5, %xmm3
9202 ; SSE-NEXT:    movaps %xmm5, %xmm8
9203 ; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[0,1],xmm2[2,0]
9204 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9205 ; SSE-NEXT:    movaps 144(%r10), %xmm2
9206 ; SSE-NEXT:    movaps 144(%rax), %xmm3
9207 ; SSE-NEXT:    movaps %xmm3, %xmm5
9208 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm2[0]
9209 ; SSE-NEXT:    movaps 144(%r8), %xmm11
9210 ; SSE-NEXT:    movaps 144(%r9), %xmm6
9211 ; SSE-NEXT:    movaps %xmm11, %xmm10
9212 ; SSE-NEXT:    unpcklps {{.*#+}} xmm10 = xmm10[0],xmm6[0],xmm10[1],xmm6[1]
9213 ; SSE-NEXT:    movaps %xmm10, %xmm9
9214 ; SSE-NEXT:    shufps {{.*#+}} xmm9 = xmm9[0,1],xmm5[2,0]
9215 ; SSE-NEXT:    movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9216 ; SSE-NEXT:    movaps %xmm1, %xmm5
9217 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1],xmm0[1,1]
9218 ; SSE-NEXT:    shufps {{.*#+}} xmm8 = xmm8[2,3],xmm5[2,0]
9219 ; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9220 ; SSE-NEXT:    movaps %xmm3, %xmm5
9221 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1],xmm2[1,1]
9222 ; SSE-NEXT:    shufps {{.*#+}} xmm10 = xmm10[2,3],xmm5[2,0]
9223 ; SSE-NEXT:    movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9224 ; SSE-NEXT:    unpckhps {{.*#+}} xmm7 = xmm7[2],xmm4[2],xmm7[3],xmm4[3]
9225 ; SSE-NEXT:    movaps %xmm0, %xmm4
9226 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm1[1]
9227 ; SSE-NEXT:    movaps %xmm7, %xmm5
9228 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm4[0,2]
9229 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9230 ; SSE-NEXT:    unpckhps {{.*#+}} xmm11 = xmm11[2],xmm6[2],xmm11[3],xmm6[3]
9231 ; SSE-NEXT:    movaps %xmm2, %xmm4
9232 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm3[1]
9233 ; SSE-NEXT:    movaps %xmm11, %xmm5
9234 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm4[0,2]
9235 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9236 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm1[3,3]
9237 ; SSE-NEXT:    shufps {{.*#+}} xmm7 = xmm7[2,3],xmm0[0,2]
9238 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9239 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[3,3],xmm3[3,3]
9240 ; SSE-NEXT:    shufps {{.*#+}} xmm11 = xmm11[2,3],xmm2[0,2]
9241 ; SSE-NEXT:    movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9242 ; SSE-NEXT:    movaps 160(%rdx), %xmm0
9243 ; SSE-NEXT:    movaps 160(%rcx), %xmm1
9244 ; SSE-NEXT:    movaps %xmm1, %xmm2
9245 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
9246 ; SSE-NEXT:    movaps 160(%rdi), %xmm7
9247 ; SSE-NEXT:    movaps 160(%rsi), %xmm4
9248 ; SSE-NEXT:    movaps %xmm7, %xmm5
9249 ; SSE-NEXT:    unpcklps {{.*#+}} xmm5 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
9250 ; SSE-NEXT:    movaps %xmm5, %xmm3
9251 ; SSE-NEXT:    movaps %xmm5, %xmm8
9252 ; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[0,1],xmm2[2,0]
9253 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9254 ; SSE-NEXT:    movaps 160(%r10), %xmm2
9255 ; SSE-NEXT:    movaps 160(%rax), %xmm3
9256 ; SSE-NEXT:    movaps %xmm3, %xmm5
9257 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm2[0]
9258 ; SSE-NEXT:    movaps 160(%r8), %xmm11
9259 ; SSE-NEXT:    movaps 160(%r9), %xmm6
9260 ; SSE-NEXT:    movaps %xmm11, %xmm10
9261 ; SSE-NEXT:    unpcklps {{.*#+}} xmm10 = xmm10[0],xmm6[0],xmm10[1],xmm6[1]
9262 ; SSE-NEXT:    movaps %xmm10, %xmm9
9263 ; SSE-NEXT:    shufps {{.*#+}} xmm9 = xmm9[0,1],xmm5[2,0]
9264 ; SSE-NEXT:    movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9265 ; SSE-NEXT:    movaps %xmm1, %xmm5
9266 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1],xmm0[1,1]
9267 ; SSE-NEXT:    shufps {{.*#+}} xmm8 = xmm8[2,3],xmm5[2,0]
9268 ; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9269 ; SSE-NEXT:    movaps %xmm3, %xmm5
9270 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1],xmm2[1,1]
9271 ; SSE-NEXT:    shufps {{.*#+}} xmm10 = xmm10[2,3],xmm5[2,0]
9272 ; SSE-NEXT:    movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9273 ; SSE-NEXT:    unpckhps {{.*#+}} xmm7 = xmm7[2],xmm4[2],xmm7[3],xmm4[3]
9274 ; SSE-NEXT:    movaps %xmm0, %xmm4
9275 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm1[1]
9276 ; SSE-NEXT:    movaps %xmm7, %xmm5
9277 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm4[0,2]
9278 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9279 ; SSE-NEXT:    unpckhps {{.*#+}} xmm11 = xmm11[2],xmm6[2],xmm11[3],xmm6[3]
9280 ; SSE-NEXT:    movaps %xmm2, %xmm4
9281 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm3[1]
9282 ; SSE-NEXT:    movaps %xmm11, %xmm5
9283 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm4[0,2]
9284 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9285 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm1[3,3]
9286 ; SSE-NEXT:    shufps {{.*#+}} xmm7 = xmm7[2,3],xmm0[0,2]
9287 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9288 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[3,3],xmm3[3,3]
9289 ; SSE-NEXT:    shufps {{.*#+}} xmm11 = xmm11[2,3],xmm2[0,2]
9290 ; SSE-NEXT:    movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9291 ; SSE-NEXT:    movaps 176(%rdx), %xmm0
9292 ; SSE-NEXT:    movaps 176(%rcx), %xmm1
9293 ; SSE-NEXT:    movaps %xmm1, %xmm2
9294 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
9295 ; SSE-NEXT:    movaps 176(%rdi), %xmm7
9296 ; SSE-NEXT:    movaps 176(%rsi), %xmm4
9297 ; SSE-NEXT:    movaps %xmm7, %xmm5
9298 ; SSE-NEXT:    unpcklps {{.*#+}} xmm5 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
9299 ; SSE-NEXT:    movaps %xmm5, %xmm3
9300 ; SSE-NEXT:    movaps %xmm5, %xmm8
9301 ; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[0,1],xmm2[2,0]
9302 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9303 ; SSE-NEXT:    movaps 176(%r10), %xmm2
9304 ; SSE-NEXT:    movaps 176(%rax), %xmm3
9305 ; SSE-NEXT:    movaps %xmm3, %xmm5
9306 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm2[0]
9307 ; SSE-NEXT:    movaps 176(%r8), %xmm11
9308 ; SSE-NEXT:    movaps 176(%r9), %xmm6
9309 ; SSE-NEXT:    movaps %xmm11, %xmm10
9310 ; SSE-NEXT:    unpcklps {{.*#+}} xmm10 = xmm10[0],xmm6[0],xmm10[1],xmm6[1]
9311 ; SSE-NEXT:    movaps %xmm10, %xmm9
9312 ; SSE-NEXT:    shufps {{.*#+}} xmm9 = xmm9[0,1],xmm5[2,0]
9313 ; SSE-NEXT:    movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9314 ; SSE-NEXT:    movaps %xmm1, %xmm5
9315 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1],xmm0[1,1]
9316 ; SSE-NEXT:    shufps {{.*#+}} xmm8 = xmm8[2,3],xmm5[2,0]
9317 ; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9318 ; SSE-NEXT:    movaps %xmm3, %xmm5
9319 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1],xmm2[1,1]
9320 ; SSE-NEXT:    shufps {{.*#+}} xmm10 = xmm10[2,3],xmm5[2,0]
9321 ; SSE-NEXT:    movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9322 ; SSE-NEXT:    unpckhps {{.*#+}} xmm7 = xmm7[2],xmm4[2],xmm7[3],xmm4[3]
9323 ; SSE-NEXT:    movaps %xmm0, %xmm4
9324 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm1[1]
9325 ; SSE-NEXT:    movaps %xmm7, %xmm5
9326 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm4[0,2]
9327 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9328 ; SSE-NEXT:    unpckhps {{.*#+}} xmm11 = xmm11[2],xmm6[2],xmm11[3],xmm6[3]
9329 ; SSE-NEXT:    movaps %xmm2, %xmm4
9330 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm3[1]
9331 ; SSE-NEXT:    movaps %xmm11, %xmm5
9332 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm4[0,2]
9333 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9334 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm1[3,3]
9335 ; SSE-NEXT:    shufps {{.*#+}} xmm7 = xmm7[2,3],xmm0[0,2]
9336 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9337 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[3,3],xmm3[3,3]
9338 ; SSE-NEXT:    shufps {{.*#+}} xmm11 = xmm11[2,3],xmm2[0,2]
9339 ; SSE-NEXT:    movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9340 ; SSE-NEXT:    movaps 192(%rdx), %xmm0
9341 ; SSE-NEXT:    movaps 192(%rcx), %xmm1
9342 ; SSE-NEXT:    movaps %xmm1, %xmm2
9343 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
9344 ; SSE-NEXT:    movaps 192(%rdi), %xmm7
9345 ; SSE-NEXT:    movaps 192(%rsi), %xmm4
9346 ; SSE-NEXT:    movaps %xmm7, %xmm5
9347 ; SSE-NEXT:    unpcklps {{.*#+}} xmm5 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
9348 ; SSE-NEXT:    movaps %xmm5, %xmm3
9349 ; SSE-NEXT:    movaps %xmm5, %xmm8
9350 ; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[0,1],xmm2[2,0]
9351 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9352 ; SSE-NEXT:    movaps 192(%r10), %xmm2
9353 ; SSE-NEXT:    movaps 192(%rax), %xmm3
9354 ; SSE-NEXT:    movaps %xmm3, %xmm5
9355 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm2[0]
9356 ; SSE-NEXT:    movaps 192(%r8), %xmm11
9357 ; SSE-NEXT:    movaps 192(%r9), %xmm6
9358 ; SSE-NEXT:    movaps %xmm11, %xmm10
9359 ; SSE-NEXT:    unpcklps {{.*#+}} xmm10 = xmm10[0],xmm6[0],xmm10[1],xmm6[1]
9360 ; SSE-NEXT:    movaps %xmm10, %xmm9
9361 ; SSE-NEXT:    shufps {{.*#+}} xmm9 = xmm9[0,1],xmm5[2,0]
9362 ; SSE-NEXT:    movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9363 ; SSE-NEXT:    movaps %xmm1, %xmm5
9364 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1],xmm0[1,1]
9365 ; SSE-NEXT:    shufps {{.*#+}} xmm8 = xmm8[2,3],xmm5[2,0]
9366 ; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9367 ; SSE-NEXT:    movaps %xmm3, %xmm5
9368 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1],xmm2[1,1]
9369 ; SSE-NEXT:    shufps {{.*#+}} xmm10 = xmm10[2,3],xmm5[2,0]
9370 ; SSE-NEXT:    movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9371 ; SSE-NEXT:    unpckhps {{.*#+}} xmm7 = xmm7[2],xmm4[2],xmm7[3],xmm4[3]
9372 ; SSE-NEXT:    movaps %xmm0, %xmm4
9373 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm1[1]
9374 ; SSE-NEXT:    movaps %xmm7, %xmm5
9375 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm4[0,2]
9376 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9377 ; SSE-NEXT:    unpckhps {{.*#+}} xmm11 = xmm11[2],xmm6[2],xmm11[3],xmm6[3]
9378 ; SSE-NEXT:    movaps %xmm2, %xmm4
9379 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm3[1]
9380 ; SSE-NEXT:    movaps %xmm11, %xmm5
9381 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm4[0,2]
9382 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9383 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm1[3,3]
9384 ; SSE-NEXT:    shufps {{.*#+}} xmm7 = xmm7[2,3],xmm0[0,2]
9385 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9386 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[3,3],xmm3[3,3]
9387 ; SSE-NEXT:    shufps {{.*#+}} xmm11 = xmm11[2,3],xmm2[0,2]
9388 ; SSE-NEXT:    movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9389 ; SSE-NEXT:    movaps 208(%rdx), %xmm0
9390 ; SSE-NEXT:    movaps 208(%rcx), %xmm1
9391 ; SSE-NEXT:    movaps %xmm1, %xmm2
9392 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
9393 ; SSE-NEXT:    movaps 208(%rdi), %xmm7
9394 ; SSE-NEXT:    movaps 208(%rsi), %xmm4
9395 ; SSE-NEXT:    movaps %xmm7, %xmm5
9396 ; SSE-NEXT:    unpcklps {{.*#+}} xmm5 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
9397 ; SSE-NEXT:    movaps %xmm5, %xmm3
9398 ; SSE-NEXT:    movaps %xmm5, %xmm8
9399 ; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[0,1],xmm2[2,0]
9400 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9401 ; SSE-NEXT:    movaps 208(%r10), %xmm2
9402 ; SSE-NEXT:    movaps 208(%rax), %xmm3
9403 ; SSE-NEXT:    movaps %xmm3, %xmm5
9404 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm2[0]
9405 ; SSE-NEXT:    movaps 208(%r8), %xmm11
9406 ; SSE-NEXT:    movaps 208(%r9), %xmm6
9407 ; SSE-NEXT:    movaps %xmm11, %xmm10
9408 ; SSE-NEXT:    unpcklps {{.*#+}} xmm10 = xmm10[0],xmm6[0],xmm10[1],xmm6[1]
9409 ; SSE-NEXT:    movaps %xmm10, %xmm9
9410 ; SSE-NEXT:    shufps {{.*#+}} xmm9 = xmm9[0,1],xmm5[2,0]
9411 ; SSE-NEXT:    movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9412 ; SSE-NEXT:    movaps %xmm1, %xmm5
9413 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1],xmm0[1,1]
9414 ; SSE-NEXT:    shufps {{.*#+}} xmm8 = xmm8[2,3],xmm5[2,0]
9415 ; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9416 ; SSE-NEXT:    movaps %xmm3, %xmm5
9417 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1],xmm2[1,1]
9418 ; SSE-NEXT:    shufps {{.*#+}} xmm10 = xmm10[2,3],xmm5[2,0]
9419 ; SSE-NEXT:    movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9420 ; SSE-NEXT:    unpckhps {{.*#+}} xmm7 = xmm7[2],xmm4[2],xmm7[3],xmm4[3]
9421 ; SSE-NEXT:    movaps %xmm0, %xmm4
9422 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm1[1]
9423 ; SSE-NEXT:    movaps %xmm7, %xmm5
9424 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm4[0,2]
9425 ; SSE-NEXT:    movaps %xmm5, (%rsp) # 16-byte Spill
9426 ; SSE-NEXT:    unpckhps {{.*#+}} xmm11 = xmm11[2],xmm6[2],xmm11[3],xmm6[3]
9427 ; SSE-NEXT:    movaps %xmm2, %xmm4
9428 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm3[1]
9429 ; SSE-NEXT:    movaps %xmm11, %xmm5
9430 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm4[0,2]
9431 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9432 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm1[3,3]
9433 ; SSE-NEXT:    shufps {{.*#+}} xmm7 = xmm7[2,3],xmm0[0,2]
9434 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9435 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[3,3],xmm3[3,3]
9436 ; SSE-NEXT:    shufps {{.*#+}} xmm11 = xmm11[2,3],xmm2[0,2]
9437 ; SSE-NEXT:    movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9438 ; SSE-NEXT:    movaps 224(%rdx), %xmm1
9439 ; SSE-NEXT:    movaps 224(%rcx), %xmm0
9440 ; SSE-NEXT:    movaps %xmm0, %xmm2
9441 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm1[0]
9442 ; SSE-NEXT:    movaps 224(%rdi), %xmm12
9443 ; SSE-NEXT:    movaps 224(%rsi), %xmm4
9444 ; SSE-NEXT:    movaps %xmm12, %xmm5
9445 ; SSE-NEXT:    unpcklps {{.*#+}} xmm5 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
9446 ; SSE-NEXT:    movaps %xmm5, %xmm3
9447 ; SSE-NEXT:    movaps %xmm5, %xmm7
9448 ; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[0,1],xmm2[2,0]
9449 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9450 ; SSE-NEXT:    movaps 224(%r10), %xmm2
9451 ; SSE-NEXT:    movaps 224(%rax), %xmm3
9452 ; SSE-NEXT:    movaps %xmm3, %xmm5
9453 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm2[0]
9454 ; SSE-NEXT:    movaps 224(%r8), %xmm15
9455 ; SSE-NEXT:    movaps 224(%r9), %xmm6
9456 ; SSE-NEXT:    movaps %xmm15, %xmm13
9457 ; SSE-NEXT:    unpcklps {{.*#+}} xmm13 = xmm13[0],xmm6[0],xmm13[1],xmm6[1]
9458 ; SSE-NEXT:    movaps %xmm13, %xmm8
9459 ; SSE-NEXT:    shufps {{.*#+}} xmm8 = xmm8[0,1],xmm5[2,0]
9460 ; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9461 ; SSE-NEXT:    movaps %xmm0, %xmm5
9462 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1],xmm1[1,1]
9463 ; SSE-NEXT:    shufps {{.*#+}} xmm7 = xmm7[2,3],xmm5[2,0]
9464 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9465 ; SSE-NEXT:    movaps %xmm3, %xmm5
9466 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1],xmm2[1,1]
9467 ; SSE-NEXT:    shufps {{.*#+}} xmm13 = xmm13[2,3],xmm5[2,0]
9468 ; SSE-NEXT:    unpckhps {{.*#+}} xmm12 = xmm12[2],xmm4[2],xmm12[3],xmm4[3]
9469 ; SSE-NEXT:    movaps %xmm1, %xmm4
9470 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm0[1]
9471 ; SSE-NEXT:    movaps %xmm12, %xmm5
9472 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm4[0,2]
9473 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9474 ; SSE-NEXT:    unpckhps {{.*#+}} xmm15 = xmm15[2],xmm6[2],xmm15[3],xmm6[3]
9475 ; SSE-NEXT:    movaps %xmm2, %xmm4
9476 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm3[1]
9477 ; SSE-NEXT:    movaps %xmm15, %xmm5
9478 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm4[0,2]
9479 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9480 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[3,3],xmm0[3,3]
9481 ; SSE-NEXT:    shufps {{.*#+}} xmm12 = xmm12[2,3],xmm1[0,2]
9482 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[3,3],xmm3[3,3]
9483 ; SSE-NEXT:    shufps {{.*#+}} xmm15 = xmm15[2,3],xmm2[0,2]
9484 ; SSE-NEXT:    movaps 240(%rdx), %xmm2
9485 ; SSE-NEXT:    movaps 240(%rcx), %xmm8
9486 ; SSE-NEXT:    movaps %xmm8, %xmm0
9487 ; SSE-NEXT:    movlhps {{.*#+}} xmm0 = xmm0[0],xmm2[0]
9488 ; SSE-NEXT:    movaps 240(%rdi), %xmm1
9489 ; SSE-NEXT:    movaps 240(%rsi), %xmm11
9490 ; SSE-NEXT:    movaps %xmm1, %xmm4
9491 ; SSE-NEXT:    unpcklps {{.*#+}} xmm4 = xmm4[0],xmm11[0],xmm4[1],xmm11[1]
9492 ; SSE-NEXT:    movaps %xmm4, %xmm14
9493 ; SSE-NEXT:    shufps {{.*#+}} xmm14 = xmm14[0,1],xmm0[2,0]
9494 ; SSE-NEXT:    movaps 240(%r10), %xmm0
9495 ; SSE-NEXT:    movaps 240(%rax), %xmm7
9496 ; SSE-NEXT:    movaps %xmm7, %xmm3
9497 ; SSE-NEXT:    movlhps {{.*#+}} xmm3 = xmm3[0],xmm0[0]
9498 ; SSE-NEXT:    movaps 240(%r8), %xmm5
9499 ; SSE-NEXT:    movaps 240(%r9), %xmm9
9500 ; SSE-NEXT:    movaps %xmm5, %xmm6
9501 ; SSE-NEXT:    unpcklps {{.*#+}} xmm6 = xmm6[0],xmm9[0],xmm6[1],xmm9[1]
9502 ; SSE-NEXT:    movaps %xmm6, %xmm10
9503 ; SSE-NEXT:    shufps {{.*#+}} xmm10 = xmm10[0,1],xmm3[2,0]
9504 ; SSE-NEXT:    movaps %xmm8, %xmm3
9505 ; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[1,1],xmm2[1,1]
9506 ; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[2,3],xmm3[2,0]
9507 ; SSE-NEXT:    movaps %xmm7, %xmm3
9508 ; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[1,1],xmm0[1,1]
9509 ; SSE-NEXT:    shufps {{.*#+}} xmm6 = xmm6[2,3],xmm3[2,0]
9510 ; SSE-NEXT:    unpckhps {{.*#+}} xmm1 = xmm1[2],xmm11[2],xmm1[3],xmm11[3]
9511 ; SSE-NEXT:    movaps %xmm2, %xmm3
9512 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm3 = xmm3[1],xmm8[1]
9513 ; SSE-NEXT:    movaps %xmm1, %xmm11
9514 ; SSE-NEXT:    shufps {{.*#+}} xmm11 = xmm11[0,1],xmm3[0,2]
9515 ; SSE-NEXT:    unpckhps {{.*#+}} xmm5 = xmm5[2],xmm9[2],xmm5[3],xmm9[3]
9516 ; SSE-NEXT:    movaps %xmm0, %xmm3
9517 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm3 = xmm3[1],xmm7[1]
9518 ; SSE-NEXT:    movaps %xmm5, %xmm9
9519 ; SSE-NEXT:    shufps {{.*#+}} xmm9 = xmm9[0,1],xmm3[0,2]
9520 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[3,3],xmm8[3,3]
9521 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[2,3],xmm2[0,2]
9522 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm7[3,3]
9523 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[2,3],xmm0[0,2]
9524 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
9525 ; SSE-NEXT:    movaps %xmm5, 2032(%rax)
9526 ; SSE-NEXT:    movaps %xmm1, 2016(%rax)
9527 ; SSE-NEXT:    movaps %xmm9, 2000(%rax)
9528 ; SSE-NEXT:    movaps %xmm11, 1984(%rax)
9529 ; SSE-NEXT:    movaps %xmm6, 1968(%rax)
9530 ; SSE-NEXT:    movaps %xmm4, 1952(%rax)
9531 ; SSE-NEXT:    movaps %xmm10, 1936(%rax)
9532 ; SSE-NEXT:    movaps %xmm14, 1920(%rax)
9533 ; SSE-NEXT:    movaps %xmm15, 1904(%rax)
9534 ; SSE-NEXT:    movaps %xmm12, 1888(%rax)
9535 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9536 ; SSE-NEXT:    movaps %xmm0, 1872(%rax)
9537 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9538 ; SSE-NEXT:    movaps %xmm0, 1856(%rax)
9539 ; SSE-NEXT:    movaps %xmm13, 1840(%rax)
9540 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9541 ; SSE-NEXT:    movaps %xmm0, 1824(%rax)
9542 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9543 ; SSE-NEXT:    movaps %xmm0, 1808(%rax)
9544 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9545 ; SSE-NEXT:    movaps %xmm0, 1792(%rax)
9546 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9547 ; SSE-NEXT:    movaps %xmm0, 1776(%rax)
9548 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9549 ; SSE-NEXT:    movaps %xmm0, 1760(%rax)
9550 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9551 ; SSE-NEXT:    movaps %xmm0, 1744(%rax)
9552 ; SSE-NEXT:    movaps (%rsp), %xmm0 # 16-byte Reload
9553 ; SSE-NEXT:    movaps %xmm0, 1728(%rax)
9554 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9555 ; SSE-NEXT:    movaps %xmm0, 1712(%rax)
9556 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9557 ; SSE-NEXT:    movaps %xmm0, 1696(%rax)
9558 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9559 ; SSE-NEXT:    movaps %xmm0, 1680(%rax)
9560 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9561 ; SSE-NEXT:    movaps %xmm0, 1664(%rax)
9562 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9563 ; SSE-NEXT:    movaps %xmm0, 1648(%rax)
9564 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9565 ; SSE-NEXT:    movaps %xmm0, 1632(%rax)
9566 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9567 ; SSE-NEXT:    movaps %xmm0, 1616(%rax)
9568 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9569 ; SSE-NEXT:    movaps %xmm0, 1600(%rax)
9570 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9571 ; SSE-NEXT:    movaps %xmm0, 1584(%rax)
9572 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9573 ; SSE-NEXT:    movaps %xmm0, 1568(%rax)
9574 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9575 ; SSE-NEXT:    movaps %xmm0, 1552(%rax)
9576 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9577 ; SSE-NEXT:    movaps %xmm0, 1536(%rax)
9578 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9579 ; SSE-NEXT:    movaps %xmm0, 1520(%rax)
9580 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9581 ; SSE-NEXT:    movaps %xmm0, 1504(%rax)
9582 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9583 ; SSE-NEXT:    movaps %xmm0, 1488(%rax)
9584 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9585 ; SSE-NEXT:    movaps %xmm0, 1472(%rax)
9586 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9587 ; SSE-NEXT:    movaps %xmm0, 1456(%rax)
9588 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9589 ; SSE-NEXT:    movaps %xmm0, 1440(%rax)
9590 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9591 ; SSE-NEXT:    movaps %xmm0, 1424(%rax)
9592 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9593 ; SSE-NEXT:    movaps %xmm0, 1408(%rax)
9594 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9595 ; SSE-NEXT:    movaps %xmm0, 1392(%rax)
9596 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9597 ; SSE-NEXT:    movaps %xmm0, 1376(%rax)
9598 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9599 ; SSE-NEXT:    movaps %xmm0, 1360(%rax)
9600 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9601 ; SSE-NEXT:    movaps %xmm0, 1344(%rax)
9602 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9603 ; SSE-NEXT:    movaps %xmm0, 1328(%rax)
9604 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9605 ; SSE-NEXT:    movaps %xmm0, 1312(%rax)
9606 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9607 ; SSE-NEXT:    movaps %xmm0, 1296(%rax)
9608 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9609 ; SSE-NEXT:    movaps %xmm0, 1280(%rax)
9610 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9611 ; SSE-NEXT:    movaps %xmm0, 1264(%rax)
9612 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9613 ; SSE-NEXT:    movaps %xmm0, 1248(%rax)
9614 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9615 ; SSE-NEXT:    movaps %xmm0, 1232(%rax)
9616 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9617 ; SSE-NEXT:    movaps %xmm0, 1216(%rax)
9618 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9619 ; SSE-NEXT:    movaps %xmm0, 1200(%rax)
9620 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9621 ; SSE-NEXT:    movaps %xmm0, 1184(%rax)
9622 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9623 ; SSE-NEXT:    movaps %xmm0, 1168(%rax)
9624 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9625 ; SSE-NEXT:    movaps %xmm0, 1152(%rax)
9626 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9627 ; SSE-NEXT:    movaps %xmm0, 1136(%rax)
9628 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9629 ; SSE-NEXT:    movaps %xmm0, 1120(%rax)
9630 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9631 ; SSE-NEXT:    movaps %xmm0, 1104(%rax)
9632 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9633 ; SSE-NEXT:    movaps %xmm0, 1088(%rax)
9634 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9635 ; SSE-NEXT:    movaps %xmm0, 1072(%rax)
9636 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9637 ; SSE-NEXT:    movaps %xmm0, 1056(%rax)
9638 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9639 ; SSE-NEXT:    movaps %xmm0, 1040(%rax)
9640 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9641 ; SSE-NEXT:    movaps %xmm0, 1024(%rax)
9642 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9643 ; SSE-NEXT:    movaps %xmm0, 1008(%rax)
9644 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9645 ; SSE-NEXT:    movaps %xmm0, 992(%rax)
9646 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9647 ; SSE-NEXT:    movaps %xmm0, 976(%rax)
9648 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9649 ; SSE-NEXT:    movaps %xmm0, 960(%rax)
9650 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9651 ; SSE-NEXT:    movaps %xmm0, 944(%rax)
9652 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9653 ; SSE-NEXT:    movaps %xmm0, 928(%rax)
9654 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9655 ; SSE-NEXT:    movaps %xmm0, 912(%rax)
9656 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9657 ; SSE-NEXT:    movaps %xmm0, 896(%rax)
9658 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9659 ; SSE-NEXT:    movaps %xmm0, 880(%rax)
9660 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9661 ; SSE-NEXT:    movaps %xmm0, 864(%rax)
9662 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9663 ; SSE-NEXT:    movaps %xmm0, 848(%rax)
9664 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9665 ; SSE-NEXT:    movaps %xmm0, 832(%rax)
9666 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9667 ; SSE-NEXT:    movaps %xmm0, 816(%rax)
9668 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9669 ; SSE-NEXT:    movaps %xmm0, 800(%rax)
9670 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9671 ; SSE-NEXT:    movaps %xmm0, 784(%rax)
9672 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9673 ; SSE-NEXT:    movaps %xmm0, 768(%rax)
9674 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9675 ; SSE-NEXT:    movaps %xmm0, 752(%rax)
9676 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9677 ; SSE-NEXT:    movaps %xmm0, 736(%rax)
9678 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9679 ; SSE-NEXT:    movaps %xmm0, 720(%rax)
9680 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9681 ; SSE-NEXT:    movaps %xmm0, 704(%rax)
9682 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9683 ; SSE-NEXT:    movaps %xmm0, 688(%rax)
9684 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9685 ; SSE-NEXT:    movaps %xmm0, 672(%rax)
9686 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9687 ; SSE-NEXT:    movaps %xmm0, 656(%rax)
9688 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9689 ; SSE-NEXT:    movaps %xmm0, 640(%rax)
9690 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9691 ; SSE-NEXT:    movaps %xmm0, 624(%rax)
9692 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9693 ; SSE-NEXT:    movaps %xmm0, 608(%rax)
9694 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9695 ; SSE-NEXT:    movaps %xmm0, 592(%rax)
9696 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9697 ; SSE-NEXT:    movaps %xmm0, 576(%rax)
9698 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9699 ; SSE-NEXT:    movaps %xmm0, 560(%rax)
9700 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9701 ; SSE-NEXT:    movaps %xmm0, 544(%rax)
9702 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9703 ; SSE-NEXT:    movaps %xmm0, 528(%rax)
9704 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9705 ; SSE-NEXT:    movaps %xmm0, 512(%rax)
9706 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9707 ; SSE-NEXT:    movaps %xmm0, 496(%rax)
9708 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9709 ; SSE-NEXT:    movaps %xmm0, 480(%rax)
9710 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9711 ; SSE-NEXT:    movaps %xmm0, 464(%rax)
9712 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9713 ; SSE-NEXT:    movaps %xmm0, 448(%rax)
9714 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9715 ; SSE-NEXT:    movaps %xmm0, 432(%rax)
9716 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9717 ; SSE-NEXT:    movaps %xmm0, 416(%rax)
9718 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9719 ; SSE-NEXT:    movaps %xmm0, 400(%rax)
9720 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9721 ; SSE-NEXT:    movaps %xmm0, 384(%rax)
9722 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9723 ; SSE-NEXT:    movaps %xmm0, 368(%rax)
9724 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9725 ; SSE-NEXT:    movaps %xmm0, 352(%rax)
9726 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9727 ; SSE-NEXT:    movaps %xmm0, 336(%rax)
9728 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9729 ; SSE-NEXT:    movaps %xmm0, 320(%rax)
9730 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9731 ; SSE-NEXT:    movaps %xmm0, 304(%rax)
9732 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9733 ; SSE-NEXT:    movaps %xmm0, 288(%rax)
9734 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9735 ; SSE-NEXT:    movaps %xmm0, 272(%rax)
9736 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9737 ; SSE-NEXT:    movaps %xmm0, 256(%rax)
9738 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9739 ; SSE-NEXT:    movaps %xmm0, 240(%rax)
9740 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9741 ; SSE-NEXT:    movaps %xmm0, 224(%rax)
9742 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9743 ; SSE-NEXT:    movaps %xmm0, 208(%rax)
9744 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9745 ; SSE-NEXT:    movaps %xmm0, 192(%rax)
9746 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9747 ; SSE-NEXT:    movaps %xmm0, 176(%rax)
9748 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9749 ; SSE-NEXT:    movaps %xmm0, 160(%rax)
9750 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9751 ; SSE-NEXT:    movaps %xmm0, 144(%rax)
9752 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9753 ; SSE-NEXT:    movaps %xmm0, 128(%rax)
9754 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9755 ; SSE-NEXT:    movaps %xmm0, 112(%rax)
9756 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9757 ; SSE-NEXT:    movaps %xmm0, 96(%rax)
9758 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9759 ; SSE-NEXT:    movaps %xmm0, 80(%rax)
9760 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9761 ; SSE-NEXT:    movaps %xmm0, 64(%rax)
9762 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9763 ; SSE-NEXT:    movaps %xmm0, 48(%rax)
9764 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9765 ; SSE-NEXT:    movaps %xmm0, 32(%rax)
9766 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9767 ; SSE-NEXT:    movaps %xmm0, 16(%rax)
9768 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9769 ; SSE-NEXT:    movaps %xmm0, (%rax)
9770 ; SSE-NEXT:    addq $1752, %rsp # imm = 0x6D8
9771 ; SSE-NEXT:    retq
9773 ; AVX-LABEL: store_i32_stride8_vf64:
9774 ; AVX:       # %bb.0:
9775 ; AVX-NEXT:    subq $1672, %rsp # imm = 0x688
9776 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax
9777 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %r10
9778 ; AVX-NEXT:    vmovaps (%rdi), %ymm3
9779 ; AVX-NEXT:    vmovaps 32(%rdi), %ymm0
9780 ; AVX-NEXT:    vmovaps (%rsi), %ymm4
9781 ; AVX-NEXT:    vmovaps 32(%rsi), %ymm1
9782 ; AVX-NEXT:    vmovaps 32(%rdx), %ymm2
9783 ; AVX-NEXT:    vmovaps (%rdx), %ymm5
9784 ; AVX-NEXT:    vmovaps (%rcx), %ymm6
9785 ; AVX-NEXT:    vmovaps (%r8), %ymm7
9786 ; AVX-NEXT:    vmovaps (%r9), %ymm9
9787 ; AVX-NEXT:    vmovaps (%r10), %ymm11
9788 ; AVX-NEXT:    vmovaps (%rax), %ymm12
9789 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm8 = ymm12[0],ymm11[0],ymm12[2],ymm11[2]
9790 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm10 = ymm7[0],ymm9[0],ymm7[1],ymm9[1],ymm7[4],ymm9[4],ymm7[5],ymm9[5]
9791 ; AVX-NEXT:    vshufps {{.*#+}} ymm8 = ymm10[0,1],ymm8[2,0],ymm10[4,5],ymm8[6,4]
9792 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm10 = ymm3[0],ymm4[0],ymm3[1],ymm4[1],ymm3[4],ymm4[4],ymm3[5],ymm4[5]
9793 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
9794 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm13 = ymm6[0],ymm5[0],ymm6[2],ymm5[2]
9795 ; AVX-NEXT:    vshufps {{.*#+}} ymm13 = ymm13[0,1,2,0,4,5,6,4]
9796 ; AVX-NEXT:    vextractf128 $1, %ymm13, %xmm13
9797 ; AVX-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0,1],xmm13[2,3]
9798 ; AVX-NEXT:    vblendps {{.*#+}} ymm8 = ymm10[0,1,2,3],ymm8[4,5,6,7]
9799 ; AVX-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9800 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm8 = ymm11[0],ymm12[0],ymm11[1],ymm12[1],ymm11[4],ymm12[4],ymm11[5],ymm12[5]
9801 ; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm9[1,0],ymm7[1,0],ymm9[5,4],ymm7[5,4]
9802 ; AVX-NEXT:    vshufps {{.*#+}} ymm8 = ymm10[2,0],ymm8[2,3],ymm10[6,4],ymm8[6,7]
9803 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm10 = ymm5[0],ymm6[0],ymm5[1],ymm6[1],ymm5[4],ymm6[4],ymm5[5],ymm6[5]
9804 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
9805 ; AVX-NEXT:    vshufps {{.*#+}} ymm13 = ymm4[1,0],ymm3[1,0],ymm4[5,4],ymm3[5,4]
9806 ; AVX-NEXT:    vshufps {{.*#+}} ymm13 = ymm13[2,0,2,3,6,4,6,7]
9807 ; AVX-NEXT:    vextractf128 $1, %ymm13, %xmm13
9808 ; AVX-NEXT:    vblendps {{.*#+}} xmm10 = xmm13[0,1],xmm10[2,3]
9809 ; AVX-NEXT:    vblendps {{.*#+}} ymm8 = ymm10[0,1,2,3],ymm8[4,5,6,7]
9810 ; AVX-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9811 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm8 = ymm12[1],ymm11[1],ymm12[3],ymm11[3]
9812 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm10 = ymm7[2],ymm9[2],ymm7[3],ymm9[3],ymm7[6],ymm9[6],ymm7[7],ymm9[7]
9813 ; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm10[0,1],ymm8[2,0],ymm10[4,5],ymm8[6,4]
9814 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm8 = ymm3[2],ymm4[2],ymm3[3],ymm4[3],ymm3[6],ymm4[6],ymm3[7],ymm4[7]
9815 ; AVX-NEXT:    vextractf128 $1, %ymm8, %xmm8
9816 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm13 = ymm6[1],ymm5[1],ymm6[3],ymm5[3]
9817 ; AVX-NEXT:    vshufps {{.*#+}} ymm13 = ymm13[0,1,2,0,4,5,6,4]
9818 ; AVX-NEXT:    vextractf128 $1, %ymm13, %xmm13
9819 ; AVX-NEXT:    vblendps {{.*#+}} xmm13 = xmm8[0,1],xmm13[2,3]
9820 ; AVX-NEXT:    vmovaps 32(%rcx), %ymm8
9821 ; AVX-NEXT:    vblendps {{.*#+}} ymm10 = ymm13[0,1,2,3],ymm10[4,5,6,7]
9822 ; AVX-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9823 ; AVX-NEXT:    vmovaps 32(%r8), %ymm10
9824 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm12 = ymm11[2],ymm12[2],ymm11[3],ymm12[3],ymm11[6],ymm12[6],ymm11[7],ymm12[7]
9825 ; AVX-NEXT:    vmovaps 32(%r9), %ymm11
9826 ; AVX-NEXT:    vshufps {{.*#+}} ymm9 = ymm9[3,0],ymm7[3,0],ymm9[7,4],ymm7[7,4]
9827 ; AVX-NEXT:    vmovaps 32(%r10), %ymm7
9828 ; AVX-NEXT:    vshufps {{.*#+}} ymm12 = ymm9[2,0],ymm12[2,3],ymm9[6,4],ymm12[6,7]
9829 ; AVX-NEXT:    vmovaps 32(%rax), %ymm9
9830 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm5 = ymm5[2],ymm6[2],ymm5[3],ymm6[3],ymm5[6],ymm6[6],ymm5[7],ymm6[7]
9831 ; AVX-NEXT:    vextractf128 $1, %ymm5, %xmm5
9832 ; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm4[3,0],ymm3[3,0],ymm4[7,4],ymm3[7,4]
9833 ; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[2,0,2,3,6,4,6,7]
9834 ; AVX-NEXT:    vextractf128 $1, %ymm3, %xmm3
9835 ; AVX-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm5[2,3]
9836 ; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm12[4,5,6,7]
9837 ; AVX-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9838 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm9[0],ymm7[0],ymm9[2],ymm7[2]
9839 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm4 = ymm10[0],ymm11[0],ymm10[1],ymm11[1],ymm10[4],ymm11[4],ymm10[5],ymm11[5]
9840 ; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm4[0,1],ymm3[2,0],ymm4[4,5],ymm3[6,4]
9841 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm4 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]
9842 ; AVX-NEXT:    vextractf128 $1, %ymm4, %xmm4
9843 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm5 = ymm8[0],ymm2[0],ymm8[2],ymm2[2]
9844 ; AVX-NEXT:    vshufps {{.*#+}} ymm5 = ymm5[0,1,2,0,4,5,6,4]
9845 ; AVX-NEXT:    vextractf128 $1, %ymm5, %xmm5
9846 ; AVX-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],xmm5[2,3]
9847 ; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
9848 ; AVX-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9849 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm3 = ymm7[0],ymm9[0],ymm7[1],ymm9[1],ymm7[4],ymm9[4],ymm7[5],ymm9[5]
9850 ; AVX-NEXT:    vshufps {{.*#+}} ymm4 = ymm11[1,0],ymm10[1,0],ymm11[5,4],ymm10[5,4]
9851 ; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm4[2,0],ymm3[2,3],ymm4[6,4],ymm3[6,7]
9852 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm4 = ymm2[0],ymm8[0],ymm2[1],ymm8[1],ymm2[4],ymm8[4],ymm2[5],ymm8[5]
9853 ; AVX-NEXT:    vextractf128 $1, %ymm4, %xmm4
9854 ; AVX-NEXT:    vshufps {{.*#+}} ymm5 = ymm1[1,0],ymm0[1,0],ymm1[5,4],ymm0[5,4]
9855 ; AVX-NEXT:    vshufps {{.*#+}} ymm5 = ymm5[2,0,2,3,6,4,6,7]
9856 ; AVX-NEXT:    vextractf128 $1, %ymm5, %xmm5
9857 ; AVX-NEXT:    vblendps {{.*#+}} xmm4 = xmm5[0,1],xmm4[2,3]
9858 ; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
9859 ; AVX-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9860 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm3 = ymm9[1],ymm7[1],ymm9[3],ymm7[3]
9861 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm4 = ymm10[2],ymm11[2],ymm10[3],ymm11[3],ymm10[6],ymm11[6],ymm10[7],ymm11[7]
9862 ; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm4[0,1],ymm3[2,0],ymm4[4,5],ymm3[6,4]
9863 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm4 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
9864 ; AVX-NEXT:    vextractf128 $1, %ymm4, %xmm4
9865 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm5 = ymm8[1],ymm2[1],ymm8[3],ymm2[3]
9866 ; AVX-NEXT:    vshufps {{.*#+}} ymm5 = ymm5[0,1,2,0,4,5,6,4]
9867 ; AVX-NEXT:    vextractf128 $1, %ymm5, %xmm5
9868 ; AVX-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],xmm5[2,3]
9869 ; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
9870 ; AVX-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9871 ; AVX-NEXT:    vmovaps 64(%rdi), %ymm3
9872 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm6 = ymm7[2],ymm9[2],ymm7[3],ymm9[3],ymm7[6],ymm9[6],ymm7[7],ymm9[7]
9873 ; AVX-NEXT:    vmovaps 64(%rsi), %ymm4
9874 ; AVX-NEXT:    vshufps {{.*#+}} ymm7 = ymm11[3,0],ymm10[3,0],ymm11[7,4],ymm10[7,4]
9875 ; AVX-NEXT:    vmovaps 64(%r8), %ymm5
9876 ; AVX-NEXT:    vshufps {{.*#+}} ymm7 = ymm7[2,0],ymm6[2,3],ymm7[6,4],ymm6[6,7]
9877 ; AVX-NEXT:    vmovaps 64(%r9), %ymm6
9878 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm8 = ymm2[2],ymm8[2],ymm2[3],ymm8[3],ymm2[6],ymm8[6],ymm2[7],ymm8[7]
9879 ; AVX-NEXT:    vmovaps 64(%r10), %ymm2
9880 ; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[3,0],ymm0[3,0],ymm1[7,4],ymm0[7,4]
9881 ; AVX-NEXT:    vmovaps 64(%rax), %ymm0
9882 ; AVX-NEXT:    vextractf128 $1, %ymm8, %xmm8
9883 ; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[2,0,2,3,6,4,6,7]
9884 ; AVX-NEXT:    vextractf128 $1, %ymm1, %xmm1
9885 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm8[2,3]
9886 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm7[4,5,6,7]
9887 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9888 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm0[0],ymm2[0],ymm0[2],ymm2[2]
9889 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm7 = ymm5[0],ymm6[0],ymm5[1],ymm6[1],ymm5[4],ymm6[4],ymm5[5],ymm6[5]
9890 ; AVX-NEXT:    vshufps {{.*#+}} ymm7 = ymm7[0,1],ymm1[2,0],ymm7[4,5],ymm1[6,4]
9891 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm3[0],ymm4[0],ymm3[1],ymm4[1],ymm3[4],ymm4[4],ymm3[5],ymm4[5]
9892 ; AVX-NEXT:    vextractf128 $1, %ymm1, %xmm8
9893 ; AVX-NEXT:    vmovaps 64(%rdx), %ymm1
9894 ; AVX-NEXT:    vmovaps 64(%rcx), %ymm9
9895 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm10 = ymm9[0],ymm1[0],ymm9[2],ymm1[2]
9896 ; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm10[0,1,2,0,4,5,6,4]
9897 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
9898 ; AVX-NEXT:    vblendps {{.*#+}} xmm8 = xmm8[0,1],xmm10[2,3]
9899 ; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]
9900 ; AVX-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9901 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm7 = ymm2[0],ymm0[0],ymm2[1],ymm0[1],ymm2[4],ymm0[4],ymm2[5],ymm0[5]
9902 ; AVX-NEXT:    vshufps {{.*#+}} ymm8 = ymm6[1,0],ymm5[1,0],ymm6[5,4],ymm5[5,4]
9903 ; AVX-NEXT:    vshufps {{.*#+}} ymm7 = ymm8[2,0],ymm7[2,3],ymm8[6,4],ymm7[6,7]
9904 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm8 = ymm1[0],ymm9[0],ymm1[1],ymm9[1],ymm1[4],ymm9[4],ymm1[5],ymm9[5]
9905 ; AVX-NEXT:    vextractf128 $1, %ymm8, %xmm8
9906 ; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm4[1,0],ymm3[1,0],ymm4[5,4],ymm3[5,4]
9907 ; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm10[2,0,2,3,6,4,6,7]
9908 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
9909 ; AVX-NEXT:    vblendps {{.*#+}} xmm8 = xmm10[0,1],xmm8[2,3]
9910 ; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]
9911 ; AVX-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9912 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm7 = ymm0[1],ymm2[1],ymm0[3],ymm2[3]
9913 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm8 = ymm5[2],ymm6[2],ymm5[3],ymm6[3],ymm5[6],ymm6[6],ymm5[7],ymm6[7]
9914 ; AVX-NEXT:    vshufps {{.*#+}} ymm7 = ymm8[0,1],ymm7[2,0],ymm8[4,5],ymm7[6,4]
9915 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm8 = ymm3[2],ymm4[2],ymm3[3],ymm4[3],ymm3[6],ymm4[6],ymm3[7],ymm4[7]
9916 ; AVX-NEXT:    vextractf128 $1, %ymm8, %xmm8
9917 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm10 = ymm9[1],ymm1[1],ymm9[3],ymm1[3]
9918 ; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm10[0,1,2,0,4,5,6,4]
9919 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
9920 ; AVX-NEXT:    vblendps {{.*#+}} xmm8 = xmm8[0,1],xmm10[2,3]
9921 ; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]
9922 ; AVX-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9923 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm0 = ymm2[2],ymm0[2],ymm2[3],ymm0[3],ymm2[6],ymm0[6],ymm2[7],ymm0[7]
9924 ; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm6[3,0],ymm5[3,0],ymm6[7,4],ymm5[7,4]
9925 ; AVX-NEXT:    vshufps {{.*#+}} ymm5 = ymm2[2,0],ymm0[2,3],ymm2[6,4],ymm0[6,7]
9926 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm1[2],ymm9[2],ymm1[3],ymm9[3],ymm1[6],ymm9[6],ymm1[7],ymm9[7]
9927 ; AVX-NEXT:    vmovaps 96(%r8), %ymm0
9928 ; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm4[3,0],ymm3[3,0],ymm4[7,4],ymm3[7,4]
9929 ; AVX-NEXT:    vmovaps 96(%r9), %ymm1
9930 ; AVX-NEXT:    vextractf128 $1, %ymm2, %xmm2
9931 ; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[2,0,2,3,6,4,6,7]
9932 ; AVX-NEXT:    vextractf128 $1, %ymm3, %xmm3
9933 ; AVX-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm2[2,3]
9934 ; AVX-NEXT:    vmovaps 96(%r10), %ymm2
9935 ; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm5[4,5,6,7]
9936 ; AVX-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9937 ; AVX-NEXT:    vmovaps 96(%rax), %ymm5
9938 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm5[0],ymm2[0],ymm5[2],ymm2[2]
9939 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm4 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]
9940 ; AVX-NEXT:    vshufps {{.*#+}} ymm7 = ymm4[0,1],ymm3[2,0],ymm4[4,5],ymm3[6,4]
9941 ; AVX-NEXT:    vmovaps 96(%rdi), %ymm3
9942 ; AVX-NEXT:    vmovaps 96(%rsi), %ymm4
9943 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm6 = ymm3[0],ymm4[0],ymm3[1],ymm4[1],ymm3[4],ymm4[4],ymm3[5],ymm4[5]
9944 ; AVX-NEXT:    vextractf128 $1, %ymm6, %xmm8
9945 ; AVX-NEXT:    vmovaps 96(%rdx), %ymm6
9946 ; AVX-NEXT:    vmovaps 96(%rcx), %ymm9
9947 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm10 = ymm9[0],ymm6[0],ymm9[2],ymm6[2]
9948 ; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm10[0,1,2,0,4,5,6,4]
9949 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
9950 ; AVX-NEXT:    vblendps {{.*#+}} xmm8 = xmm8[0,1],xmm10[2,3]
9951 ; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]
9952 ; AVX-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9953 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm7 = ymm2[0],ymm5[0],ymm2[1],ymm5[1],ymm2[4],ymm5[4],ymm2[5],ymm5[5]
9954 ; AVX-NEXT:    vshufps {{.*#+}} ymm8 = ymm1[1,0],ymm0[1,0],ymm1[5,4],ymm0[5,4]
9955 ; AVX-NEXT:    vshufps {{.*#+}} ymm7 = ymm8[2,0],ymm7[2,3],ymm8[6,4],ymm7[6,7]
9956 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm8 = ymm6[0],ymm9[0],ymm6[1],ymm9[1],ymm6[4],ymm9[4],ymm6[5],ymm9[5]
9957 ; AVX-NEXT:    vextractf128 $1, %ymm8, %xmm8
9958 ; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm4[1,0],ymm3[1,0],ymm4[5,4],ymm3[5,4]
9959 ; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm10[2,0,2,3,6,4,6,7]
9960 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
9961 ; AVX-NEXT:    vblendps {{.*#+}} xmm8 = xmm10[0,1],xmm8[2,3]
9962 ; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]
9963 ; AVX-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9964 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm7 = ymm5[1],ymm2[1],ymm5[3],ymm2[3]
9965 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm8 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
9966 ; AVX-NEXT:    vshufps {{.*#+}} ymm7 = ymm8[0,1],ymm7[2,0],ymm8[4,5],ymm7[6,4]
9967 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm8 = ymm3[2],ymm4[2],ymm3[3],ymm4[3],ymm3[6],ymm4[6],ymm3[7],ymm4[7]
9968 ; AVX-NEXT:    vextractf128 $1, %ymm8, %xmm8
9969 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm10 = ymm9[1],ymm6[1],ymm9[3],ymm6[3]
9970 ; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm10[0,1,2,0,4,5,6,4]
9971 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
9972 ; AVX-NEXT:    vblendps {{.*#+}} xmm8 = xmm8[0,1],xmm10[2,3]
9973 ; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]
9974 ; AVX-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9975 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm2[2],ymm5[2],ymm2[3],ymm5[3],ymm2[6],ymm5[6],ymm2[7],ymm5[7]
9976 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[3,0],ymm0[3,0],ymm1[7,4],ymm0[7,4]
9977 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm2[2,3],ymm0[6,4],ymm2[6,7]
9978 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm6[2],ymm9[2],ymm6[3],ymm9[3],ymm6[6],ymm9[6],ymm6[7],ymm9[7]
9979 ; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm4[3,0],ymm3[3,0],ymm4[7,4],ymm3[7,4]
9980 ; AVX-NEXT:    vextractf128 $1, %ymm1, %xmm1
9981 ; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[2,0,2,3,6,4,6,7]
9982 ; AVX-NEXT:    vextractf128 $1, %ymm2, %xmm2
9983 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
9984 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
9985 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9986 ; AVX-NEXT:    vmovaps 128(%r8), %ymm0
9987 ; AVX-NEXT:    vmovaps 128(%r9), %ymm1
9988 ; AVX-NEXT:    vmovaps 128(%r10), %ymm3
9989 ; AVX-NEXT:    vmovaps 128(%rax), %ymm5
9990 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm5[0],ymm3[0],ymm5[2],ymm3[2]
9991 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm4 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]
9992 ; AVX-NEXT:    vshufps {{.*#+}} ymm7 = ymm4[0,1],ymm2[2,0],ymm4[4,5],ymm2[6,4]
9993 ; AVX-NEXT:    vmovaps 128(%rdi), %ymm2
9994 ; AVX-NEXT:    vmovaps 128(%rsi), %ymm4
9995 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm6 = ymm2[0],ymm4[0],ymm2[1],ymm4[1],ymm2[4],ymm4[4],ymm2[5],ymm4[5]
9996 ; AVX-NEXT:    vextractf128 $1, %ymm6, %xmm8
9997 ; AVX-NEXT:    vmovaps 128(%rdx), %ymm6
9998 ; AVX-NEXT:    vmovaps 128(%rcx), %ymm9
9999 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm10 = ymm9[0],ymm6[0],ymm9[2],ymm6[2]
10000 ; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm10[0,1,2,0,4,5,6,4]
10001 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
10002 ; AVX-NEXT:    vblendps {{.*#+}} xmm8 = xmm8[0,1],xmm10[2,3]
10003 ; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]
10004 ; AVX-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10005 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm7 = ymm3[0],ymm5[0],ymm3[1],ymm5[1],ymm3[4],ymm5[4],ymm3[5],ymm5[5]
10006 ; AVX-NEXT:    vshufps {{.*#+}} ymm8 = ymm1[1,0],ymm0[1,0],ymm1[5,4],ymm0[5,4]
10007 ; AVX-NEXT:    vshufps {{.*#+}} ymm7 = ymm8[2,0],ymm7[2,3],ymm8[6,4],ymm7[6,7]
10008 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm8 = ymm6[0],ymm9[0],ymm6[1],ymm9[1],ymm6[4],ymm9[4],ymm6[5],ymm9[5]
10009 ; AVX-NEXT:    vextractf128 $1, %ymm8, %xmm8
10010 ; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm4[1,0],ymm2[1,0],ymm4[5,4],ymm2[5,4]
10011 ; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm10[2,0,2,3,6,4,6,7]
10012 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
10013 ; AVX-NEXT:    vblendps {{.*#+}} xmm8 = xmm10[0,1],xmm8[2,3]
10014 ; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]
10015 ; AVX-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10016 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm7 = ymm5[1],ymm3[1],ymm5[3],ymm3[3]
10017 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm8 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
10018 ; AVX-NEXT:    vshufps {{.*#+}} ymm7 = ymm8[0,1],ymm7[2,0],ymm8[4,5],ymm7[6,4]
10019 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm8 = ymm2[2],ymm4[2],ymm2[3],ymm4[3],ymm2[6],ymm4[6],ymm2[7],ymm4[7]
10020 ; AVX-NEXT:    vextractf128 $1, %ymm8, %xmm8
10021 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm10 = ymm9[1],ymm6[1],ymm9[3],ymm6[3]
10022 ; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm10[0,1,2,0,4,5,6,4]
10023 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
10024 ; AVX-NEXT:    vblendps {{.*#+}} xmm8 = xmm8[0,1],xmm10[2,3]
10025 ; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]
10026 ; AVX-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10027 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm3 = ymm3[2],ymm5[2],ymm3[3],ymm5[3],ymm3[6],ymm5[6],ymm3[7],ymm5[7]
10028 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[3,0],ymm0[3,0],ymm1[7,4],ymm0[7,4]
10029 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm3[2,3],ymm0[6,4],ymm3[6,7]
10030 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm6[2],ymm9[2],ymm6[3],ymm9[3],ymm6[6],ymm9[6],ymm6[7],ymm9[7]
10031 ; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm4[3,0],ymm2[3,0],ymm4[7,4],ymm2[7,4]
10032 ; AVX-NEXT:    vextractf128 $1, %ymm1, %xmm1
10033 ; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[2,0,2,3,6,4,6,7]
10034 ; AVX-NEXT:    vextractf128 $1, %ymm2, %xmm2
10035 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
10036 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
10037 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10038 ; AVX-NEXT:    vmovaps 160(%r8), %ymm0
10039 ; AVX-NEXT:    vmovaps 160(%r9), %ymm1
10040 ; AVX-NEXT:    vmovaps 160(%r10), %ymm3
10041 ; AVX-NEXT:    vmovaps 160(%rax), %ymm5
10042 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm5[0],ymm3[0],ymm5[2],ymm3[2]
10043 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm4 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]
10044 ; AVX-NEXT:    vshufps {{.*#+}} ymm7 = ymm4[0,1],ymm2[2,0],ymm4[4,5],ymm2[6,4]
10045 ; AVX-NEXT:    vmovaps 160(%rdi), %ymm2
10046 ; AVX-NEXT:    vmovaps 160(%rsi), %ymm4
10047 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm6 = ymm2[0],ymm4[0],ymm2[1],ymm4[1],ymm2[4],ymm4[4],ymm2[5],ymm4[5]
10048 ; AVX-NEXT:    vextractf128 $1, %ymm6, %xmm8
10049 ; AVX-NEXT:    vmovaps 160(%rdx), %ymm6
10050 ; AVX-NEXT:    vmovaps 160(%rcx), %ymm9
10051 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm10 = ymm9[0],ymm6[0],ymm9[2],ymm6[2]
10052 ; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm10[0,1,2,0,4,5,6,4]
10053 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
10054 ; AVX-NEXT:    vblendps {{.*#+}} xmm8 = xmm8[0,1],xmm10[2,3]
10055 ; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]
10056 ; AVX-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10057 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm7 = ymm3[0],ymm5[0],ymm3[1],ymm5[1],ymm3[4],ymm5[4],ymm3[5],ymm5[5]
10058 ; AVX-NEXT:    vshufps {{.*#+}} ymm8 = ymm1[1,0],ymm0[1,0],ymm1[5,4],ymm0[5,4]
10059 ; AVX-NEXT:    vshufps {{.*#+}} ymm7 = ymm8[2,0],ymm7[2,3],ymm8[6,4],ymm7[6,7]
10060 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm8 = ymm6[0],ymm9[0],ymm6[1],ymm9[1],ymm6[4],ymm9[4],ymm6[5],ymm9[5]
10061 ; AVX-NEXT:    vextractf128 $1, %ymm8, %xmm8
10062 ; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm4[1,0],ymm2[1,0],ymm4[5,4],ymm2[5,4]
10063 ; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm10[2,0,2,3,6,4,6,7]
10064 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
10065 ; AVX-NEXT:    vblendps {{.*#+}} xmm8 = xmm10[0,1],xmm8[2,3]
10066 ; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]
10067 ; AVX-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10068 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm7 = ymm5[1],ymm3[1],ymm5[3],ymm3[3]
10069 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm8 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
10070 ; AVX-NEXT:    vshufps {{.*#+}} ymm7 = ymm8[0,1],ymm7[2,0],ymm8[4,5],ymm7[6,4]
10071 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm8 = ymm2[2],ymm4[2],ymm2[3],ymm4[3],ymm2[6],ymm4[6],ymm2[7],ymm4[7]
10072 ; AVX-NEXT:    vextractf128 $1, %ymm8, %xmm8
10073 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm10 = ymm9[1],ymm6[1],ymm9[3],ymm6[3]
10074 ; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm10[0,1,2,0,4,5,6,4]
10075 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
10076 ; AVX-NEXT:    vblendps {{.*#+}} xmm8 = xmm8[0,1],xmm10[2,3]
10077 ; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]
10078 ; AVX-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10079 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm3 = ymm3[2],ymm5[2],ymm3[3],ymm5[3],ymm3[6],ymm5[6],ymm3[7],ymm5[7]
10080 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[3,0],ymm0[3,0],ymm1[7,4],ymm0[7,4]
10081 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm3[2,3],ymm0[6,4],ymm3[6,7]
10082 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm6[2],ymm9[2],ymm6[3],ymm9[3],ymm6[6],ymm9[6],ymm6[7],ymm9[7]
10083 ; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm4[3,0],ymm2[3,0],ymm4[7,4],ymm2[7,4]
10084 ; AVX-NEXT:    vextractf128 $1, %ymm1, %xmm1
10085 ; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[2,0,2,3,6,4,6,7]
10086 ; AVX-NEXT:    vextractf128 $1, %ymm2, %xmm2
10087 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
10088 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
10089 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10090 ; AVX-NEXT:    vmovaps 192(%r8), %ymm0
10091 ; AVX-NEXT:    vmovaps 192(%r9), %ymm1
10092 ; AVX-NEXT:    vmovaps 192(%r10), %ymm3
10093 ; AVX-NEXT:    vmovaps 192(%rax), %ymm5
10094 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm5[0],ymm3[0],ymm5[2],ymm3[2]
10095 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm4 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]
10096 ; AVX-NEXT:    vshufps {{.*#+}} ymm7 = ymm4[0,1],ymm2[2,0],ymm4[4,5],ymm2[6,4]
10097 ; AVX-NEXT:    vmovaps 192(%rdi), %ymm2
10098 ; AVX-NEXT:    vmovaps 192(%rsi), %ymm4
10099 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm6 = ymm2[0],ymm4[0],ymm2[1],ymm4[1],ymm2[4],ymm4[4],ymm2[5],ymm4[5]
10100 ; AVX-NEXT:    vextractf128 $1, %ymm6, %xmm8
10101 ; AVX-NEXT:    vmovaps 192(%rdx), %ymm6
10102 ; AVX-NEXT:    vmovaps 192(%rcx), %ymm9
10103 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm10 = ymm9[0],ymm6[0],ymm9[2],ymm6[2]
10104 ; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm10[0,1,2,0,4,5,6,4]
10105 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
10106 ; AVX-NEXT:    vblendps {{.*#+}} xmm8 = xmm8[0,1],xmm10[2,3]
10107 ; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]
10108 ; AVX-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10109 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm7 = ymm3[0],ymm5[0],ymm3[1],ymm5[1],ymm3[4],ymm5[4],ymm3[5],ymm5[5]
10110 ; AVX-NEXT:    vshufps {{.*#+}} ymm8 = ymm1[1,0],ymm0[1,0],ymm1[5,4],ymm0[5,4]
10111 ; AVX-NEXT:    vshufps {{.*#+}} ymm7 = ymm8[2,0],ymm7[2,3],ymm8[6,4],ymm7[6,7]
10112 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm8 = ymm6[0],ymm9[0],ymm6[1],ymm9[1],ymm6[4],ymm9[4],ymm6[5],ymm9[5]
10113 ; AVX-NEXT:    vextractf128 $1, %ymm8, %xmm8
10114 ; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm4[1,0],ymm2[1,0],ymm4[5,4],ymm2[5,4]
10115 ; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm10[2,0,2,3,6,4,6,7]
10116 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
10117 ; AVX-NEXT:    vblendps {{.*#+}} xmm8 = xmm10[0,1],xmm8[2,3]
10118 ; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]
10119 ; AVX-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10120 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm7 = ymm5[1],ymm3[1],ymm5[3],ymm3[3]
10121 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm8 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
10122 ; AVX-NEXT:    vshufps {{.*#+}} ymm7 = ymm8[0,1],ymm7[2,0],ymm8[4,5],ymm7[6,4]
10123 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm8 = ymm2[2],ymm4[2],ymm2[3],ymm4[3],ymm2[6],ymm4[6],ymm2[7],ymm4[7]
10124 ; AVX-NEXT:    vextractf128 $1, %ymm8, %xmm8
10125 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm10 = ymm9[1],ymm6[1],ymm9[3],ymm6[3]
10126 ; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm10[0,1,2,0,4,5,6,4]
10127 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
10128 ; AVX-NEXT:    vblendps {{.*#+}} xmm8 = xmm8[0,1],xmm10[2,3]
10129 ; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]
10130 ; AVX-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10131 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm3 = ymm3[2],ymm5[2],ymm3[3],ymm5[3],ymm3[6],ymm5[6],ymm3[7],ymm5[7]
10132 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[3,0],ymm0[3,0],ymm1[7,4],ymm0[7,4]
10133 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm3[2,3],ymm0[6,4],ymm3[6,7]
10134 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm6[2],ymm9[2],ymm6[3],ymm9[3],ymm6[6],ymm9[6],ymm6[7],ymm9[7]
10135 ; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm4[3,0],ymm2[3,0],ymm4[7,4],ymm2[7,4]
10136 ; AVX-NEXT:    vextractf128 $1, %ymm1, %xmm1
10137 ; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[2,0,2,3,6,4,6,7]
10138 ; AVX-NEXT:    vextractf128 $1, %ymm2, %xmm2
10139 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
10140 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
10141 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10142 ; AVX-NEXT:    vmovaps 224(%r8), %ymm0
10143 ; AVX-NEXT:    vmovaps 224(%r9), %ymm1
10144 ; AVX-NEXT:    vmovaps 224(%r10), %ymm3
10145 ; AVX-NEXT:    vmovaps 224(%rax), %ymm5
10146 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm5[0],ymm3[0],ymm5[2],ymm3[2]
10147 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm4 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]
10148 ; AVX-NEXT:    vshufps {{.*#+}} ymm7 = ymm4[0,1],ymm2[2,0],ymm4[4,5],ymm2[6,4]
10149 ; AVX-NEXT:    vmovaps 224(%rdi), %ymm2
10150 ; AVX-NEXT:    vmovaps 224(%rsi), %ymm4
10151 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm6 = ymm2[0],ymm4[0],ymm2[1],ymm4[1],ymm2[4],ymm4[4],ymm2[5],ymm4[5]
10152 ; AVX-NEXT:    vextractf128 $1, %ymm6, %xmm8
10153 ; AVX-NEXT:    vmovaps 224(%rdx), %ymm6
10154 ; AVX-NEXT:    vmovaps 224(%rcx), %ymm9
10155 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm10 = ymm9[0],ymm6[0],ymm9[2],ymm6[2]
10156 ; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm10[0,1,2,0,4,5,6,4]
10157 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
10158 ; AVX-NEXT:    vblendps {{.*#+}} xmm8 = xmm8[0,1],xmm10[2,3]
10159 ; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]
10160 ; AVX-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10161 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm7 = ymm3[0],ymm5[0],ymm3[1],ymm5[1],ymm3[4],ymm5[4],ymm3[5],ymm5[5]
10162 ; AVX-NEXT:    vshufps {{.*#+}} ymm8 = ymm1[1,0],ymm0[1,0],ymm1[5,4],ymm0[5,4]
10163 ; AVX-NEXT:    vshufps {{.*#+}} ymm7 = ymm8[2,0],ymm7[2,3],ymm8[6,4],ymm7[6,7]
10164 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm8 = ymm6[0],ymm9[0],ymm6[1],ymm9[1],ymm6[4],ymm9[4],ymm6[5],ymm9[5]
10165 ; AVX-NEXT:    vextractf128 $1, %ymm8, %xmm8
10166 ; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm4[1,0],ymm2[1,0],ymm4[5,4],ymm2[5,4]
10167 ; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm10[2,0,2,3,6,4,6,7]
10168 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
10169 ; AVX-NEXT:    vblendps {{.*#+}} xmm8 = xmm10[0,1],xmm8[2,3]
10170 ; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]
10171 ; AVX-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10172 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm7 = ymm5[1],ymm3[1],ymm5[3],ymm3[3]
10173 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm8 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
10174 ; AVX-NEXT:    vshufps {{.*#+}} ymm7 = ymm8[0,1],ymm7[2,0],ymm8[4,5],ymm7[6,4]
10175 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm8 = ymm2[2],ymm4[2],ymm2[3],ymm4[3],ymm2[6],ymm4[6],ymm2[7],ymm4[7]
10176 ; AVX-NEXT:    vextractf128 $1, %ymm8, %xmm8
10177 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm10 = ymm9[1],ymm6[1],ymm9[3],ymm6[3]
10178 ; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm10[0,1,2,0,4,5,6,4]
10179 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
10180 ; AVX-NEXT:    vblendps {{.*#+}} xmm8 = xmm8[0,1],xmm10[2,3]
10181 ; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]
10182 ; AVX-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10183 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm3 = ymm3[2],ymm5[2],ymm3[3],ymm5[3],ymm3[6],ymm5[6],ymm3[7],ymm5[7]
10184 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[3,0],ymm0[3,0],ymm1[7,4],ymm0[7,4]
10185 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm3[2,3],ymm0[6,4],ymm3[6,7]
10186 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm6[2],ymm9[2],ymm6[3],ymm9[3],ymm6[6],ymm9[6],ymm6[7],ymm9[7]
10187 ; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm4[3,0],ymm2[3,0],ymm4[7,4],ymm2[7,4]
10188 ; AVX-NEXT:    vextractf128 $1, %ymm1, %xmm1
10189 ; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[2,0,2,3,6,4,6,7]
10190 ; AVX-NEXT:    vextractf128 $1, %ymm2, %xmm2
10191 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
10192 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
10193 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10194 ; AVX-NEXT:    vmovaps (%r9), %xmm2
10195 ; AVX-NEXT:    vmovaps (%r8), %xmm3
10196 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
10197 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm4
10198 ; AVX-NEXT:    vmovaps (%rax), %xmm0
10199 ; AVX-NEXT:    vmovaps (%r10), %xmm1
10200 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm6 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
10201 ; AVX-NEXT:    vshufps {{.*#+}} xmm5 = xmm6[0,1,0,1]
10202 ; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
10203 ; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm4[0,1,2,3,4,5],ymm5[6,7]
10204 ; AVX-NEXT:    vmovaps (%rcx), %xmm4
10205 ; AVX-NEXT:    vmovaps (%rdx), %xmm5
10206 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm8 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
10207 ; AVX-NEXT:    vmovaps (%rsi), %xmm9
10208 ; AVX-NEXT:    vmovaps (%rdi), %xmm10
10209 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm11 = xmm10[0],xmm9[0],xmm10[1],xmm9[1]
10210 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm11 = xmm11[0],xmm8[0]
10211 ; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm11[0,1,2,3],ymm7[4,5,6,7]
10212 ; AVX-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10213 ; AVX-NEXT:    vshufps {{.*#+}} xmm7 = xmm10[1,1,1,1]
10214 ; AVX-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0],xmm9[1],xmm7[2,3]
10215 ; AVX-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0,1],xmm8[2,3]
10216 ; AVX-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
10217 ; AVX-NEXT:    vshufps {{.*#+}} xmm8 = xmm3[1,1,1,1]
10218 ; AVX-NEXT:    vblendps {{.*#+}} xmm8 = xmm8[0],xmm2[1],xmm8[2,3]
10219 ; AVX-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm8
10220 ; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm8[0,1,2,3,4,5],ymm6[6,7]
10221 ; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]
10222 ; AVX-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10223 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm6 = xmm10[2],xmm9[2],xmm10[3],xmm9[3]
10224 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm3[2],xmm2[2],xmm3[3],xmm2[3]
10225 ; AVX-NEXT:    vshufps {{.*#+}} xmm3 = xmm0[2,2,2,2]
10226 ; AVX-NEXT:    vblendps {{.*#+}} xmm3 = xmm1[0,1,2],xmm3[3]
10227 ; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
10228 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm7
10229 ; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm7[0,1,2,3,4,5],ymm3[6,7]
10230 ; AVX-NEXT:    vshufps {{.*#+}} xmm7 = xmm4[2,2,2,2]
10231 ; AVX-NEXT:    vblendps {{.*#+}} xmm7 = xmm5[0,1,2],xmm7[3]
10232 ; AVX-NEXT:    vblendps {{.*#+}} xmm7 = xmm6[0,1],xmm7[2,3]
10233 ; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm7[0,1,2,3],ymm3[4,5,6,7]
10234 ; AVX-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10235 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm3 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
10236 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm3 = xmm6[1],xmm3[1]
10237 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
10238 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
10239 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm2[2,3,2,3]
10240 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
10241 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
10242 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm0[4,5,6,7]
10243 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10244 ; AVX-NEXT:    vmovaps 32(%r9), %xmm4
10245 ; AVX-NEXT:    vmovaps 32(%r8), %xmm5
10246 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
10247 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm2
10248 ; AVX-NEXT:    vmovaps 32(%rax), %xmm0
10249 ; AVX-NEXT:    vmovaps 32(%r10), %xmm1
10250 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm6 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
10251 ; AVX-NEXT:    vshufps {{.*#+}} xmm3 = xmm6[0,1,0,1]
10252 ; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
10253 ; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm2[0,1,2,3,4,5],ymm3[6,7]
10254 ; AVX-NEXT:    vmovaps 32(%rcx), %xmm2
10255 ; AVX-NEXT:    vmovaps 32(%rdx), %xmm3
10256 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm8 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
10257 ; AVX-NEXT:    vmovaps 32(%rsi), %xmm9
10258 ; AVX-NEXT:    vmovaps 32(%rdi), %xmm10
10259 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm11 = xmm10[0],xmm9[0],xmm10[1],xmm9[1]
10260 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm11 = xmm11[0],xmm8[0]
10261 ; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm11[0,1,2,3],ymm7[4,5,6,7]
10262 ; AVX-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10263 ; AVX-NEXT:    vshufps {{.*#+}} xmm7 = xmm10[1,1,1,1]
10264 ; AVX-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0],xmm9[1],xmm7[2,3]
10265 ; AVX-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0,1],xmm8[2,3]
10266 ; AVX-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
10267 ; AVX-NEXT:    vshufps {{.*#+}} xmm8 = xmm5[1,1,1,1]
10268 ; AVX-NEXT:    vblendps {{.*#+}} xmm8 = xmm8[0],xmm4[1],xmm8[2,3]
10269 ; AVX-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm8
10270 ; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm8[0,1,2,3,4,5],ymm6[6,7]
10271 ; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]
10272 ; AVX-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10273 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm6 = xmm10[2],xmm9[2],xmm10[3],xmm9[3]
10274 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
10275 ; AVX-NEXT:    vshufps {{.*#+}} xmm5 = xmm0[2,2,2,2]
10276 ; AVX-NEXT:    vblendps {{.*#+}} xmm5 = xmm1[0,1,2],xmm5[3]
10277 ; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
10278 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm7
10279 ; AVX-NEXT:    vblendps {{.*#+}} ymm5 = ymm7[0,1,2,3,4,5],ymm5[6,7]
10280 ; AVX-NEXT:    vshufps {{.*#+}} xmm7 = xmm2[2,2,2,2]
10281 ; AVX-NEXT:    vblendps {{.*#+}} xmm7 = xmm3[0,1,2],xmm7[3]
10282 ; AVX-NEXT:    vblendps {{.*#+}} xmm7 = xmm6[0,1],xmm7[2,3]
10283 ; AVX-NEXT:    vblendps {{.*#+}} ymm5 = ymm7[0,1,2,3],ymm5[4,5,6,7]
10284 ; AVX-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10285 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm3[2],xmm2[2],xmm3[3],xmm2[3]
10286 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm2 = xmm6[1],xmm2[1]
10287 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
10288 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
10289 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm4[2,3,2,3]
10290 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
10291 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
10292 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
10293 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10294 ; AVX-NEXT:    vmovaps 64(%r9), %xmm4
10295 ; AVX-NEXT:    vmovaps 64(%r8), %xmm5
10296 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
10297 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm2
10298 ; AVX-NEXT:    vmovaps 64(%rax), %xmm0
10299 ; AVX-NEXT:    vmovaps 64(%r10), %xmm1
10300 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm6 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
10301 ; AVX-NEXT:    vshufps {{.*#+}} xmm3 = xmm6[0,1,0,1]
10302 ; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
10303 ; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm2[0,1,2,3,4,5],ymm3[6,7]
10304 ; AVX-NEXT:    vmovaps 64(%rcx), %xmm2
10305 ; AVX-NEXT:    vmovaps 64(%rdx), %xmm3
10306 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm8 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
10307 ; AVX-NEXT:    vmovaps 64(%rsi), %xmm9
10308 ; AVX-NEXT:    vmovaps 64(%rdi), %xmm10
10309 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm11 = xmm10[0],xmm9[0],xmm10[1],xmm9[1]
10310 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm11 = xmm11[0],xmm8[0]
10311 ; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm11[0,1,2,3],ymm7[4,5,6,7]
10312 ; AVX-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10313 ; AVX-NEXT:    vshufps {{.*#+}} xmm7 = xmm10[1,1,1,1]
10314 ; AVX-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0],xmm9[1],xmm7[2,3]
10315 ; AVX-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0,1],xmm8[2,3]
10316 ; AVX-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
10317 ; AVX-NEXT:    vshufps {{.*#+}} xmm8 = xmm5[1,1,1,1]
10318 ; AVX-NEXT:    vblendps {{.*#+}} xmm8 = xmm8[0],xmm4[1],xmm8[2,3]
10319 ; AVX-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm8
10320 ; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm8[0,1,2,3,4,5],ymm6[6,7]
10321 ; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]
10322 ; AVX-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10323 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm6 = xmm10[2],xmm9[2],xmm10[3],xmm9[3]
10324 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
10325 ; AVX-NEXT:    vshufps {{.*#+}} xmm5 = xmm0[2,2,2,2]
10326 ; AVX-NEXT:    vblendps {{.*#+}} xmm5 = xmm1[0,1,2],xmm5[3]
10327 ; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
10328 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm7
10329 ; AVX-NEXT:    vblendps {{.*#+}} ymm5 = ymm7[0,1,2,3,4,5],ymm5[6,7]
10330 ; AVX-NEXT:    vshufps {{.*#+}} xmm7 = xmm2[2,2,2,2]
10331 ; AVX-NEXT:    vblendps {{.*#+}} xmm7 = xmm3[0,1,2],xmm7[3]
10332 ; AVX-NEXT:    vblendps {{.*#+}} xmm7 = xmm6[0,1],xmm7[2,3]
10333 ; AVX-NEXT:    vblendps {{.*#+}} ymm5 = ymm7[0,1,2,3],ymm5[4,5,6,7]
10334 ; AVX-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10335 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm3[2],xmm2[2],xmm3[3],xmm2[3]
10336 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm2 = xmm6[1],xmm2[1]
10337 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
10338 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
10339 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm4[2,3,2,3]
10340 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
10341 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
10342 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
10343 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10344 ; AVX-NEXT:    vmovaps 96(%r9), %xmm4
10345 ; AVX-NEXT:    vmovaps 96(%r8), %xmm5
10346 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
10347 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm2
10348 ; AVX-NEXT:    vmovaps 96(%rax), %xmm0
10349 ; AVX-NEXT:    vmovaps 96(%r10), %xmm1
10350 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm6 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
10351 ; AVX-NEXT:    vshufps {{.*#+}} xmm3 = xmm6[0,1,0,1]
10352 ; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
10353 ; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm2[0,1,2,3,4,5],ymm3[6,7]
10354 ; AVX-NEXT:    vmovaps 96(%rcx), %xmm2
10355 ; AVX-NEXT:    vmovaps 96(%rdx), %xmm3
10356 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm8 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
10357 ; AVX-NEXT:    vmovaps 96(%rsi), %xmm9
10358 ; AVX-NEXT:    vmovaps 96(%rdi), %xmm10
10359 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm11 = xmm10[0],xmm9[0],xmm10[1],xmm9[1]
10360 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm11 = xmm11[0],xmm8[0]
10361 ; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm11[0,1,2,3],ymm7[4,5,6,7]
10362 ; AVX-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10363 ; AVX-NEXT:    vshufps {{.*#+}} xmm7 = xmm10[1,1,1,1]
10364 ; AVX-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0],xmm9[1],xmm7[2,3]
10365 ; AVX-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0,1],xmm8[2,3]
10366 ; AVX-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
10367 ; AVX-NEXT:    vshufps {{.*#+}} xmm8 = xmm5[1,1,1,1]
10368 ; AVX-NEXT:    vblendps {{.*#+}} xmm8 = xmm8[0],xmm4[1],xmm8[2,3]
10369 ; AVX-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm8
10370 ; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm8[0,1,2,3,4,5],ymm6[6,7]
10371 ; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]
10372 ; AVX-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10373 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm6 = xmm10[2],xmm9[2],xmm10[3],xmm9[3]
10374 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
10375 ; AVX-NEXT:    vshufps {{.*#+}} xmm5 = xmm0[2,2,2,2]
10376 ; AVX-NEXT:    vblendps {{.*#+}} xmm5 = xmm1[0,1,2],xmm5[3]
10377 ; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
10378 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm7
10379 ; AVX-NEXT:    vblendps {{.*#+}} ymm5 = ymm7[0,1,2,3,4,5],ymm5[6,7]
10380 ; AVX-NEXT:    vshufps {{.*#+}} xmm7 = xmm2[2,2,2,2]
10381 ; AVX-NEXT:    vblendps {{.*#+}} xmm7 = xmm3[0,1,2],xmm7[3]
10382 ; AVX-NEXT:    vblendps {{.*#+}} xmm7 = xmm6[0,1],xmm7[2,3]
10383 ; AVX-NEXT:    vblendps {{.*#+}} ymm5 = ymm7[0,1,2,3],ymm5[4,5,6,7]
10384 ; AVX-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10385 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm3[2],xmm2[2],xmm3[3],xmm2[3]
10386 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm2 = xmm6[1],xmm2[1]
10387 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
10388 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
10389 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm4[2,3,2,3]
10390 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
10391 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
10392 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
10393 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10394 ; AVX-NEXT:    vmovaps 128(%r9), %xmm4
10395 ; AVX-NEXT:    vmovaps 128(%r8), %xmm5
10396 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
10397 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm2
10398 ; AVX-NEXT:    vmovaps 128(%rax), %xmm0
10399 ; AVX-NEXT:    vmovaps 128(%r10), %xmm1
10400 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm6 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
10401 ; AVX-NEXT:    vshufps {{.*#+}} xmm3 = xmm6[0,1,0,1]
10402 ; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
10403 ; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm2[0,1,2,3,4,5],ymm3[6,7]
10404 ; AVX-NEXT:    vmovaps 128(%rcx), %xmm2
10405 ; AVX-NEXT:    vmovaps 128(%rdx), %xmm3
10406 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm8 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
10407 ; AVX-NEXT:    vmovaps 128(%rsi), %xmm9
10408 ; AVX-NEXT:    vmovaps 128(%rdi), %xmm10
10409 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm11 = xmm10[0],xmm9[0],xmm10[1],xmm9[1]
10410 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm11 = xmm11[0],xmm8[0]
10411 ; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm11[0,1,2,3],ymm7[4,5,6,7]
10412 ; AVX-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10413 ; AVX-NEXT:    vshufps {{.*#+}} xmm7 = xmm10[1,1,1,1]
10414 ; AVX-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0],xmm9[1],xmm7[2,3]
10415 ; AVX-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0,1],xmm8[2,3]
10416 ; AVX-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
10417 ; AVX-NEXT:    vshufps {{.*#+}} xmm8 = xmm5[1,1,1,1]
10418 ; AVX-NEXT:    vblendps {{.*#+}} xmm8 = xmm8[0],xmm4[1],xmm8[2,3]
10419 ; AVX-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm8
10420 ; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm8[0,1,2,3,4,5],ymm6[6,7]
10421 ; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]
10422 ; AVX-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10423 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm6 = xmm10[2],xmm9[2],xmm10[3],xmm9[3]
10424 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
10425 ; AVX-NEXT:    vshufps {{.*#+}} xmm5 = xmm0[2,2,2,2]
10426 ; AVX-NEXT:    vblendps {{.*#+}} xmm5 = xmm1[0,1,2],xmm5[3]
10427 ; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
10428 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm7
10429 ; AVX-NEXT:    vblendps {{.*#+}} ymm5 = ymm7[0,1,2,3,4,5],ymm5[6,7]
10430 ; AVX-NEXT:    vshufps {{.*#+}} xmm7 = xmm2[2,2,2,2]
10431 ; AVX-NEXT:    vblendps {{.*#+}} xmm7 = xmm3[0,1,2],xmm7[3]
10432 ; AVX-NEXT:    vblendps {{.*#+}} xmm7 = xmm6[0,1],xmm7[2,3]
10433 ; AVX-NEXT:    vblendps {{.*#+}} ymm5 = ymm7[0,1,2,3],ymm5[4,5,6,7]
10434 ; AVX-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10435 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm3[2],xmm2[2],xmm3[3],xmm2[3]
10436 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm2 = xmm6[1],xmm2[1]
10437 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
10438 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
10439 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm4[2,3,2,3]
10440 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
10441 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
10442 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
10443 ; AVX-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
10444 ; AVX-NEXT:    vmovaps 160(%r9), %xmm4
10445 ; AVX-NEXT:    vmovaps 160(%r8), %xmm5
10446 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
10447 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm2
10448 ; AVX-NEXT:    vmovaps 160(%rax), %xmm0
10449 ; AVX-NEXT:    vmovaps 160(%r10), %xmm1
10450 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm6 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
10451 ; AVX-NEXT:    vshufps {{.*#+}} xmm3 = xmm6[0,1,0,1]
10452 ; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
10453 ; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm2[0,1,2,3,4,5],ymm3[6,7]
10454 ; AVX-NEXT:    vmovaps 160(%rcx), %xmm2
10455 ; AVX-NEXT:    vmovaps 160(%rdx), %xmm3
10456 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm8 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
10457 ; AVX-NEXT:    vmovaps 160(%rsi), %xmm9
10458 ; AVX-NEXT:    vmovaps 160(%rdi), %xmm10
10459 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm11 = xmm10[0],xmm9[0],xmm10[1],xmm9[1]
10460 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm11 = xmm11[0],xmm8[0]
10461 ; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm11[0,1,2,3],ymm7[4,5,6,7]
10462 ; AVX-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10463 ; AVX-NEXT:    vshufps {{.*#+}} xmm7 = xmm10[1,1,1,1]
10464 ; AVX-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0],xmm9[1],xmm7[2,3]
10465 ; AVX-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0,1],xmm8[2,3]
10466 ; AVX-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
10467 ; AVX-NEXT:    vshufps {{.*#+}} xmm8 = xmm5[1,1,1,1]
10468 ; AVX-NEXT:    vblendps {{.*#+}} xmm8 = xmm8[0],xmm4[1],xmm8[2,3]
10469 ; AVX-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm8
10470 ; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm8[0,1,2,3,4,5],ymm6[6,7]
10471 ; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]
10472 ; AVX-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10473 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm6 = xmm10[2],xmm9[2],xmm10[3],xmm9[3]
10474 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
10475 ; AVX-NEXT:    vshufps {{.*#+}} xmm5 = xmm0[2,2,2,2]
10476 ; AVX-NEXT:    vblendps {{.*#+}} xmm5 = xmm1[0,1,2],xmm5[3]
10477 ; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
10478 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm7
10479 ; AVX-NEXT:    vblendps {{.*#+}} ymm5 = ymm7[0,1,2,3,4,5],ymm5[6,7]
10480 ; AVX-NEXT:    vshufps {{.*#+}} xmm7 = xmm2[2,2,2,2]
10481 ; AVX-NEXT:    vblendps {{.*#+}} xmm7 = xmm3[0,1,2],xmm7[3]
10482 ; AVX-NEXT:    vblendps {{.*#+}} xmm7 = xmm6[0,1],xmm7[2,3]
10483 ; AVX-NEXT:    vblendps {{.*#+}} ymm5 = ymm7[0,1,2,3],ymm5[4,5,6,7]
10484 ; AVX-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10485 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm3[2],xmm2[2],xmm3[3],xmm2[3]
10486 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm2 = xmm6[1],xmm2[1]
10487 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
10488 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
10489 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm4[2,3,2,3]
10490 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
10491 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
10492 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
10493 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10494 ; AVX-NEXT:    vmovaps 192(%r9), %xmm4
10495 ; AVX-NEXT:    vmovaps 192(%r8), %xmm5
10496 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
10497 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm2
10498 ; AVX-NEXT:    vmovaps 192(%rax), %xmm9
10499 ; AVX-NEXT:    vmovaps 192(%r10), %xmm1
10500 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm6 = xmm1[0],xmm9[0],xmm1[1],xmm9[1]
10501 ; AVX-NEXT:    vshufps {{.*#+}} xmm3 = xmm6[0,1,0,1]
10502 ; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
10503 ; AVX-NEXT:    vblendps {{.*#+}} ymm10 = ymm2[0,1,2,3,4,5],ymm3[6,7]
10504 ; AVX-NEXT:    vmovaps 192(%rcx), %xmm2
10505 ; AVX-NEXT:    vmovaps 192(%rdx), %xmm3
10506 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm8 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
10507 ; AVX-NEXT:    vmovaps 192(%rsi), %xmm0
10508 ; AVX-NEXT:    vmovaps 192(%rdi), %xmm7
10509 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm15 = xmm7[0],xmm0[0],xmm7[1],xmm0[1]
10510 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm15 = xmm15[0],xmm8[0]
10511 ; AVX-NEXT:    vblendps {{.*#+}} ymm13 = ymm15[0,1,2,3],ymm10[4,5,6,7]
10512 ; AVX-NEXT:    vshufps {{.*#+}} xmm15 = xmm7[1,1,1,1]
10513 ; AVX-NEXT:    vblendps {{.*#+}} xmm15 = xmm15[0],xmm0[1],xmm15[2,3]
10514 ; AVX-NEXT:    vblendps {{.*#+}} xmm8 = xmm15[0,1],xmm8[2,3]
10515 ; AVX-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
10516 ; AVX-NEXT:    vshufps {{.*#+}} xmm15 = xmm5[1,1,1,1]
10517 ; AVX-NEXT:    vblendps {{.*#+}} xmm15 = xmm15[0],xmm4[1],xmm15[2,3]
10518 ; AVX-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm15
10519 ; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm15[0,1,2,3,4,5],ymm6[6,7]
10520 ; AVX-NEXT:    vblendps {{.*#+}} ymm12 = ymm8[0,1,2,3],ymm6[4,5,6,7]
10521 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm7[2],xmm0[2],xmm7[3],xmm0[3]
10522 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
10523 ; AVX-NEXT:    vshufps {{.*#+}} xmm5 = xmm9[2,2,2,2]
10524 ; AVX-NEXT:    vblendps {{.*#+}} xmm5 = xmm1[0,1,2],xmm5[3]
10525 ; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
10526 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm6
10527 ; AVX-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2,3,4,5],ymm5[6,7]
10528 ; AVX-NEXT:    vshufps {{.*#+}} xmm6 = xmm2[2,2,2,2]
10529 ; AVX-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1,2],xmm6[3]
10530 ; AVX-NEXT:    vblendps {{.*#+}} xmm6 = xmm0[0,1],xmm6[2,3]
10531 ; AVX-NEXT:    vblendps {{.*#+}} ymm11 = ymm6[0,1,2,3],ymm5[4,5,6,7]
10532 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm3[2],xmm2[2],xmm3[3],xmm2[3]
10533 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
10534 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm1[2],xmm9[2],xmm1[3],xmm9[3]
10535 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
10536 ; AVX-NEXT:    vshufps {{.*#+}} xmm2 = xmm4[2,3,2,3]
10537 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
10538 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
10539 ; AVX-NEXT:    vblendps {{.*#+}} ymm10 = ymm0[0,1,2,3],ymm1[4,5,6,7]
10540 ; AVX-NEXT:    vmovaps 224(%r9), %xmm3
10541 ; AVX-NEXT:    vmovaps 224(%r8), %xmm9
10542 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm9[0],xmm3[0],xmm9[1],xmm3[1]
10543 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
10544 ; AVX-NEXT:    vmovaps 224(%rax), %xmm7
10545 ; AVX-NEXT:    vmovaps 224(%r10), %xmm6
10546 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm15 = xmm6[0],xmm7[0],xmm6[1],xmm7[1]
10547 ; AVX-NEXT:    vshufps {{.*#+}} xmm2 = xmm15[0,1,0,1]
10548 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
10549 ; AVX-NEXT:    vblendps {{.*#+}} ymm8 = ymm0[0,1,2,3,4,5],ymm2[6,7]
10550 ; AVX-NEXT:    vmovaps 224(%rcx), %xmm5
10551 ; AVX-NEXT:    vmovaps 224(%rdx), %xmm4
10552 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm4[0],xmm5[0],xmm4[1],xmm5[1]
10553 ; AVX-NEXT:    vmovaps 224(%rsi), %xmm1
10554 ; AVX-NEXT:    vmovaps 224(%rdi), %xmm0
10555 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm14 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
10556 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm14 = xmm14[0],xmm2[0]
10557 ; AVX-NEXT:    vblendps {{.*#+}} ymm8 = ymm14[0,1,2,3],ymm8[4,5,6,7]
10558 ; AVX-NEXT:    vshufps {{.*#+}} xmm14 = xmm0[1,1,1,1]
10559 ; AVX-NEXT:    vblendps {{.*#+}} xmm14 = xmm14[0],xmm1[1],xmm14[2,3]
10560 ; AVX-NEXT:    vblendps {{.*#+}} xmm2 = xmm14[0,1],xmm2[2,3]
10561 ; AVX-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm14
10562 ; AVX-NEXT:    vshufps {{.*#+}} xmm15 = xmm9[1,1,1,1]
10563 ; AVX-NEXT:    vblendps {{.*#+}} xmm15 = xmm15[0],xmm3[1],xmm15[2,3]
10564 ; AVX-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm15
10565 ; AVX-NEXT:    vblendps {{.*#+}} ymm14 = ymm15[0,1,2,3,4,5],ymm14[6,7]
10566 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm14[4,5,6,7]
10567 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]
10568 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm9[2],xmm3[2],xmm9[3],xmm3[3]
10569 ; AVX-NEXT:    vshufps {{.*#+}} xmm3 = xmm7[2,2,2,2]
10570 ; AVX-NEXT:    vblendps {{.*#+}} xmm3 = xmm6[0,1,2],xmm3[3]
10571 ; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
10572 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm9
10573 ; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm9[0,1,2,3,4,5],ymm3[6,7]
10574 ; AVX-NEXT:    vshufps {{.*#+}} xmm9 = xmm5[2,2,2,2]
10575 ; AVX-NEXT:    vblendps {{.*#+}} xmm9 = xmm4[0,1,2],xmm9[3]
10576 ; AVX-NEXT:    vblendps {{.*#+}} xmm9 = xmm0[0,1],xmm9[2,3]
10577 ; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm9[0,1,2,3],ymm3[4,5,6,7]
10578 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm4[2],xmm5[2],xmm4[3],xmm5[3]
10579 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm4[1]
10580 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm6[2],xmm7[2],xmm6[3],xmm7[3]
10581 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
10582 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[2,3,2,3]
10583 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
10584 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm4[6,7]
10585 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
10586 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax
10587 ; AVX-NEXT:    vmovaps %ymm0, 1888(%rax)
10588 ; AVX-NEXT:    vmovaps %ymm3, 1856(%rax)
10589 ; AVX-NEXT:    vmovaps %ymm2, 1824(%rax)
10590 ; AVX-NEXT:    vmovaps %ymm8, 1792(%rax)
10591 ; AVX-NEXT:    vmovaps %ymm10, 1632(%rax)
10592 ; AVX-NEXT:    vmovaps %ymm11, 1600(%rax)
10593 ; AVX-NEXT:    vmovaps %ymm12, 1568(%rax)
10594 ; AVX-NEXT:    vmovaps %ymm13, 1536(%rax)
10595 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10596 ; AVX-NEXT:    vmovaps %ymm0, 1376(%rax)
10597 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10598 ; AVX-NEXT:    vmovaps %ymm0, 1344(%rax)
10599 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10600 ; AVX-NEXT:    vmovaps %ymm0, 1312(%rax)
10601 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10602 ; AVX-NEXT:    vmovaps %ymm0, 1280(%rax)
10603 ; AVX-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
10604 ; AVX-NEXT:    vmovaps %ymm0, 1120(%rax)
10605 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10606 ; AVX-NEXT:    vmovaps %ymm0, 1088(%rax)
10607 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10608 ; AVX-NEXT:    vmovaps %ymm0, 1056(%rax)
10609 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10610 ; AVX-NEXT:    vmovaps %ymm0, 1024(%rax)
10611 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10612 ; AVX-NEXT:    vmovaps %ymm0, 864(%rax)
10613 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10614 ; AVX-NEXT:    vmovaps %ymm0, 832(%rax)
10615 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10616 ; AVX-NEXT:    vmovaps %ymm0, 800(%rax)
10617 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10618 ; AVX-NEXT:    vmovaps %ymm0, 768(%rax)
10619 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10620 ; AVX-NEXT:    vmovaps %ymm0, 608(%rax)
10621 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10622 ; AVX-NEXT:    vmovaps %ymm0, 576(%rax)
10623 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10624 ; AVX-NEXT:    vmovaps %ymm0, 544(%rax)
10625 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10626 ; AVX-NEXT:    vmovaps %ymm0, 512(%rax)
10627 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10628 ; AVX-NEXT:    vmovaps %ymm0, 352(%rax)
10629 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10630 ; AVX-NEXT:    vmovaps %ymm0, 320(%rax)
10631 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10632 ; AVX-NEXT:    vmovaps %ymm0, 288(%rax)
10633 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10634 ; AVX-NEXT:    vmovaps %ymm0, 256(%rax)
10635 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10636 ; AVX-NEXT:    vmovaps %ymm0, 96(%rax)
10637 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10638 ; AVX-NEXT:    vmovaps %ymm0, 64(%rax)
10639 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10640 ; AVX-NEXT:    vmovaps %ymm0, 32(%rax)
10641 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10642 ; AVX-NEXT:    vmovaps %ymm0, (%rax)
10643 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10644 ; AVX-NEXT:    vmovaps %ymm0, 2016(%rax)
10645 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10646 ; AVX-NEXT:    vmovaps %ymm0, 1984(%rax)
10647 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10648 ; AVX-NEXT:    vmovaps %ymm0, 1952(%rax)
10649 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10650 ; AVX-NEXT:    vmovaps %ymm0, 1920(%rax)
10651 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10652 ; AVX-NEXT:    vmovaps %ymm0, 1760(%rax)
10653 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10654 ; AVX-NEXT:    vmovaps %ymm0, 1728(%rax)
10655 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10656 ; AVX-NEXT:    vmovaps %ymm0, 1696(%rax)
10657 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10658 ; AVX-NEXT:    vmovaps %ymm0, 1664(%rax)
10659 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10660 ; AVX-NEXT:    vmovaps %ymm0, 1504(%rax)
10661 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10662 ; AVX-NEXT:    vmovaps %ymm0, 1472(%rax)
10663 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10664 ; AVX-NEXT:    vmovaps %ymm0, 1440(%rax)
10665 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10666 ; AVX-NEXT:    vmovaps %ymm0, 1408(%rax)
10667 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10668 ; AVX-NEXT:    vmovaps %ymm0, 1248(%rax)
10669 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10670 ; AVX-NEXT:    vmovaps %ymm0, 1216(%rax)
10671 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10672 ; AVX-NEXT:    vmovaps %ymm0, 1184(%rax)
10673 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10674 ; AVX-NEXT:    vmovaps %ymm0, 1152(%rax)
10675 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10676 ; AVX-NEXT:    vmovaps %ymm0, 992(%rax)
10677 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10678 ; AVX-NEXT:    vmovaps %ymm0, 960(%rax)
10679 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10680 ; AVX-NEXT:    vmovaps %ymm0, 928(%rax)
10681 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10682 ; AVX-NEXT:    vmovaps %ymm0, 896(%rax)
10683 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10684 ; AVX-NEXT:    vmovaps %ymm0, 736(%rax)
10685 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10686 ; AVX-NEXT:    vmovaps %ymm0, 704(%rax)
10687 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10688 ; AVX-NEXT:    vmovaps %ymm0, 672(%rax)
10689 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10690 ; AVX-NEXT:    vmovaps %ymm0, 640(%rax)
10691 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10692 ; AVX-NEXT:    vmovaps %ymm0, 480(%rax)
10693 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10694 ; AVX-NEXT:    vmovaps %ymm0, 448(%rax)
10695 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10696 ; AVX-NEXT:    vmovaps %ymm0, 416(%rax)
10697 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10698 ; AVX-NEXT:    vmovaps %ymm0, 384(%rax)
10699 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10700 ; AVX-NEXT:    vmovaps %ymm0, 224(%rax)
10701 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10702 ; AVX-NEXT:    vmovaps %ymm0, 192(%rax)
10703 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10704 ; AVX-NEXT:    vmovaps %ymm0, 160(%rax)
10705 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10706 ; AVX-NEXT:    vmovaps %ymm0, 128(%rax)
10707 ; AVX-NEXT:    addq $1672, %rsp # imm = 0x688
10708 ; AVX-NEXT:    vzeroupper
10709 ; AVX-NEXT:    retq
10711 ; AVX2-LABEL: store_i32_stride8_vf64:
10712 ; AVX2:       # %bb.0:
10713 ; AVX2-NEXT:    subq $1672, %rsp # imm = 0x688
10714 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rax
10715 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %r10
10716 ; AVX2-NEXT:    vmovaps 32(%rdi), %ymm0
10717 ; AVX2-NEXT:    vmovaps (%rdi), %ymm4
10718 ; AVX2-NEXT:    vmovaps 32(%rsi), %ymm1
10719 ; AVX2-NEXT:    vmovaps (%rsi), %ymm5
10720 ; AVX2-NEXT:    vmovaps 32(%rdx), %ymm2
10721 ; AVX2-NEXT:    vmovaps (%rdx), %ymm6
10722 ; AVX2-NEXT:    vmovaps 32(%rcx), %ymm3
10723 ; AVX2-NEXT:    vmovaps (%rcx), %ymm7
10724 ; AVX2-NEXT:    vmovaps (%r8), %ymm9
10725 ; AVX2-NEXT:    vmovaps (%r9), %ymm11
10726 ; AVX2-NEXT:    vmovaps (%r10), %ymm10
10727 ; AVX2-NEXT:    vmovaps (%rax), %ymm12
10728 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm8 = ymm10[0],ymm12[0],ymm10[1],ymm12[1],ymm10[4],ymm12[4],ymm10[5],ymm12[5]
10729 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm13 = ymm4[0],ymm5[0],ymm4[1],ymm5[1],ymm4[4],ymm5[4],ymm4[5],ymm5[5]
10730 ; AVX2-NEXT:    vextractf128 $1, %ymm13, %xmm13
10731 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm14 = ymm6[0],ymm7[0],ymm6[1],ymm7[1],ymm6[4],ymm7[4],ymm6[5],ymm7[5]
10732 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm15 = ymm14[2,2,2,2]
10733 ; AVX2-NEXT:    vblendps {{.*#+}} xmm13 = xmm13[0,1],xmm15[2,3]
10734 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm15 = ymm9[0],ymm11[0],ymm9[1],ymm11[1],ymm9[4],ymm11[4],ymm9[5],ymm11[5]
10735 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm15 = ymm15[0],ymm8[0],ymm15[2],ymm8[2]
10736 ; AVX2-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1,2,3],ymm15[4,5,6,7]
10737 ; AVX2-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10738 ; AVX2-NEXT:    vbroadcastss 20(%r8), %ymm13
10739 ; AVX2-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1,2,3,4],ymm11[5],ymm13[6,7]
10740 ; AVX2-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1,2,3,4,5],ymm8[6,7]
10741 ; AVX2-NEXT:    vextractf128 $1, %ymm14, %xmm8
10742 ; AVX2-NEXT:    vshufps {{.*#+}} ymm14 = ymm4[1,1,1,1,5,5,5,5]
10743 ; AVX2-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0],ymm5[1],ymm14[2,3,4],ymm5[5],ymm14[6,7]
10744 ; AVX2-NEXT:    vextractf128 $1, %ymm14, %xmm14
10745 ; AVX2-NEXT:    vblendps {{.*#+}} xmm14 = xmm14[0,1],xmm8[2,3]
10746 ; AVX2-NEXT:    vmovaps 32(%r8), %ymm8
10747 ; AVX2-NEXT:    vblendps {{.*#+}} ymm13 = ymm14[0,1,2,3],ymm13[4,5,6,7]
10748 ; AVX2-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10749 ; AVX2-NEXT:    vbroadcastss 24(%rax), %ymm13
10750 ; AVX2-NEXT:    vblendps {{.*#+}} ymm13 = ymm10[0,1,2,3,4,5,6],ymm13[7]
10751 ; AVX2-NEXT:    vmovaps 32(%r9), %ymm10
10752 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm11 = ymm9[2],ymm11[2],ymm9[3],ymm11[3],ymm9[6],ymm11[6],ymm9[7],ymm11[7]
10753 ; AVX2-NEXT:    vmovaps 32(%r10), %ymm9
10754 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm4 = ymm4[2],ymm5[2],ymm4[3],ymm5[3],ymm4[6],ymm5[6],ymm4[7],ymm5[7]
10755 ; AVX2-NEXT:    vextractf128 $1, %ymm4, %xmm5
10756 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm6 = ymm6[2],ymm7[2],ymm6[3],ymm7[3],ymm6[6],ymm7[6],ymm6[7],ymm7[7]
10757 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm7 = ymm6[2,2,2,2]
10758 ; AVX2-NEXT:    vblendps {{.*#+}} xmm5 = xmm5[0,1],xmm7[2,3]
10759 ; AVX2-NEXT:    vmovaps 32(%rax), %ymm7
10760 ; AVX2-NEXT:    vblendps {{.*#+}} ymm13 = ymm11[0,1,2,3,4,5],ymm13[6,7]
10761 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm13[4,5,6,7]
10762 ; AVX2-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10763 ; AVX2-NEXT:    vbroadcastss 28(%r10), %ymm5
10764 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm5 = ymm5[2],ymm12[2],ymm5[3],ymm12[3],ymm5[6],ymm12[6],ymm5[7],ymm12[7]
10765 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm5 = ymm11[1],ymm5[1],ymm11[3],ymm5[3]
10766 ; AVX2-NEXT:    vextractf128 $1, %ymm6, %xmm6
10767 ; AVX2-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[2,3,2,3,6,7,6,7]
10768 ; AVX2-NEXT:    vextractf128 $1, %ymm4, %xmm4
10769 ; AVX2-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],xmm6[2,3]
10770 ; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm5[4,5,6,7]
10771 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10772 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm4 = ymm9[0],ymm7[0],ymm9[1],ymm7[1],ymm9[4],ymm7[4],ymm9[5],ymm7[5]
10773 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]
10774 ; AVX2-NEXT:    vextractf128 $1, %ymm5, %xmm5
10775 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm6 = ymm2[0],ymm3[0],ymm2[1],ymm3[1],ymm2[4],ymm3[4],ymm2[5],ymm3[5]
10776 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm11 = ymm6[2,2,2,2]
10777 ; AVX2-NEXT:    vblendps {{.*#+}} xmm5 = xmm5[0,1],xmm11[2,3]
10778 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm11 = ymm8[0],ymm10[0],ymm8[1],ymm10[1],ymm8[4],ymm10[4],ymm8[5],ymm10[5]
10779 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm11 = ymm11[0],ymm4[0],ymm11[2],ymm4[2]
10780 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm11[4,5,6,7]
10781 ; AVX2-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10782 ; AVX2-NEXT:    vbroadcastss 52(%r8), %ymm5
10783 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4],ymm10[5],ymm5[6,7]
10784 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],ymm4[6,7]
10785 ; AVX2-NEXT:    vextractf128 $1, %ymm6, %xmm4
10786 ; AVX2-NEXT:    vshufps {{.*#+}} ymm6 = ymm0[1,1,1,1,5,5,5,5]
10787 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0],ymm1[1],ymm6[2,3,4],ymm1[5],ymm6[6,7]
10788 ; AVX2-NEXT:    vextractf128 $1, %ymm6, %xmm6
10789 ; AVX2-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0,1],xmm4[2,3]
10790 ; AVX2-NEXT:    vmovaps 64(%rdi), %ymm4
10791 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2,3],ymm5[4,5,6,7]
10792 ; AVX2-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10793 ; AVX2-NEXT:    vbroadcastss 56(%rax), %ymm5
10794 ; AVX2-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5,6],ymm5[7]
10795 ; AVX2-NEXT:    vmovaps 64(%rsi), %ymm5
10796 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm8 = ymm8[2],ymm10[2],ymm8[3],ymm10[3],ymm8[6],ymm10[6],ymm8[7],ymm10[7]
10797 ; AVX2-NEXT:    vmovaps 64(%rdx), %ymm6
10798 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm10 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
10799 ; AVX2-NEXT:    vextractf128 $1, %ymm10, %xmm0
10800 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm2[2],ymm3[2],ymm2[3],ymm3[3],ymm2[6],ymm3[6],ymm2[7],ymm3[7]
10801 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm2[2,2,2,2]
10802 ; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm0[0,1],xmm1[2,3]
10803 ; AVX2-NEXT:    vmovaps 64(%rcx), %ymm0
10804 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm8[0,1,2,3,4,5],ymm9[6,7]
10805 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
10806 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10807 ; AVX2-NEXT:    vbroadcastss 60(%r10), %ymm1
10808 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm3 = ymm1[2],ymm7[2],ymm1[3],ymm7[3],ymm1[6],ymm7[6],ymm1[7],ymm7[7]
10809 ; AVX2-NEXT:    vmovaps 64(%r8), %ymm1
10810 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm3 = ymm8[1],ymm3[1],ymm8[3],ymm3[3]
10811 ; AVX2-NEXT:    vextractf128 $1, %ymm2, %xmm2
10812 ; AVX2-NEXT:    vshufps {{.*#+}} ymm7 = ymm10[2,3,2,3,6,7,6,7]
10813 ; AVX2-NEXT:    vextractf128 $1, %ymm7, %xmm7
10814 ; AVX2-NEXT:    vblendps {{.*#+}} xmm2 = xmm7[0,1],xmm2[2,3]
10815 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
10816 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10817 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm2 = ymm4[0],ymm5[0],ymm4[1],ymm5[1],ymm4[4],ymm5[4],ymm4[5],ymm5[5]
10818 ; AVX2-NEXT:    vextractf128 $1, %ymm2, %xmm2
10819 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm3 = ymm6[0],ymm0[0],ymm6[1],ymm0[1],ymm6[4],ymm0[4],ymm6[5],ymm0[5]
10820 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm7 = ymm3[2,2,2,2]
10821 ; AVX2-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm7[2,3]
10822 ; AVX2-NEXT:    vmovaps 64(%r9), %ymm7
10823 ; AVX2-NEXT:    vmovaps 64(%r10), %ymm8
10824 ; AVX2-NEXT:    vmovaps 64(%rax), %ymm9
10825 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm10 = ymm8[0],ymm9[0],ymm8[1],ymm9[1],ymm8[4],ymm9[4],ymm8[5],ymm9[5]
10826 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm11 = ymm1[0],ymm7[0],ymm1[1],ymm7[1],ymm1[4],ymm7[4],ymm1[5],ymm7[5]
10827 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm11 = ymm11[0],ymm10[0],ymm11[2],ymm10[2]
10828 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm11[4,5,6,7]
10829 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10830 ; AVX2-NEXT:    vbroadcastss 84(%r8), %ymm2
10831 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm7[5],ymm2[6,7]
10832 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm10[6,7]
10833 ; AVX2-NEXT:    vextractf128 $1, %ymm3, %xmm3
10834 ; AVX2-NEXT:    vshufps {{.*#+}} ymm10 = ymm4[1,1,1,1,5,5,5,5]
10835 ; AVX2-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0],ymm5[1],ymm10[2,3,4],ymm5[5],ymm10[6,7]
10836 ; AVX2-NEXT:    vextractf128 $1, %ymm10, %xmm10
10837 ; AVX2-NEXT:    vblendps {{.*#+}} xmm3 = xmm10[0,1],xmm3[2,3]
10838 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
10839 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10840 ; AVX2-NEXT:    vbroadcastss 88(%rax), %ymm2
10841 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm8[0,1,2,3,4,5,6],ymm2[7]
10842 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm1[2],ymm7[2],ymm1[3],ymm7[3],ymm1[6],ymm7[6],ymm1[7],ymm7[7]
10843 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm3 = ymm4[2],ymm5[2],ymm4[3],ymm5[3],ymm4[6],ymm5[6],ymm4[7],ymm5[7]
10844 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm4 = ymm6[2],ymm0[2],ymm6[3],ymm0[3],ymm6[6],ymm0[6],ymm6[7],ymm0[7]
10845 ; AVX2-NEXT:    vextractf128 $1, %ymm3, %xmm0
10846 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm5 = ymm4[2,2,2,2]
10847 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm5[2,3]
10848 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm1[0,1,2,3,4,5],ymm2[6,7]
10849 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
10850 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10851 ; AVX2-NEXT:    vbroadcastss 92(%r10), %ymm0
10852 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm0[2],ymm9[2],ymm0[3],ymm9[3],ymm0[6],ymm9[6],ymm0[7],ymm9[7]
10853 ; AVX2-NEXT:    vmovaps 96(%rdi), %ymm0
10854 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm5 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
10855 ; AVX2-NEXT:    vmovaps 96(%rsi), %ymm1
10856 ; AVX2-NEXT:    vextractf128 $1, %ymm4, %xmm2
10857 ; AVX2-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[2,3,2,3,6,7,6,7]
10858 ; AVX2-NEXT:    vextractf128 $1, %ymm3, %xmm3
10859 ; AVX2-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm2[2,3]
10860 ; AVX2-NEXT:    vmovaps 96(%rdx), %ymm2
10861 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm5[4,5,6,7]
10862 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10863 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm3 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]
10864 ; AVX2-NEXT:    vextractf128 $1, %ymm3, %xmm3
10865 ; AVX2-NEXT:    vmovaps 96(%rcx), %ymm4
10866 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm5 = ymm2[0],ymm4[0],ymm2[1],ymm4[1],ymm2[4],ymm4[4],ymm2[5],ymm4[5]
10867 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm6 = ymm5[2,2,2,2]
10868 ; AVX2-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm6[2,3]
10869 ; AVX2-NEXT:    vmovaps 96(%r8), %ymm6
10870 ; AVX2-NEXT:    vmovaps 96(%r9), %ymm7
10871 ; AVX2-NEXT:    vmovaps 96(%r10), %ymm8
10872 ; AVX2-NEXT:    vmovaps 96(%rax), %ymm9
10873 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm10 = ymm8[0],ymm9[0],ymm8[1],ymm9[1],ymm8[4],ymm9[4],ymm8[5],ymm9[5]
10874 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm11 = ymm6[0],ymm7[0],ymm6[1],ymm7[1],ymm6[4],ymm7[4],ymm6[5],ymm7[5]
10875 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm11 = ymm11[0],ymm10[0],ymm11[2],ymm10[2]
10876 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm11[4,5,6,7]
10877 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10878 ; AVX2-NEXT:    vbroadcastss 116(%r8), %ymm3
10879 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4],ymm7[5],ymm3[6,7]
10880 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm10[6,7]
10881 ; AVX2-NEXT:    vextractf128 $1, %ymm5, %xmm5
10882 ; AVX2-NEXT:    vshufps {{.*#+}} ymm10 = ymm0[1,1,1,1,5,5,5,5]
10883 ; AVX2-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0],ymm1[1],ymm10[2,3,4],ymm1[5],ymm10[6,7]
10884 ; AVX2-NEXT:    vextractf128 $1, %ymm10, %xmm10
10885 ; AVX2-NEXT:    vblendps {{.*#+}} xmm5 = xmm10[0,1],xmm5[2,3]
10886 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm5[0,1,2,3],ymm3[4,5,6,7]
10887 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10888 ; AVX2-NEXT:    vbroadcastss 120(%rax), %ymm3
10889 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm8[0,1,2,3,4,5,6],ymm3[7]
10890 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm5 = ymm6[2],ymm7[2],ymm6[3],ymm7[3],ymm6[6],ymm7[6],ymm6[7],ymm7[7]
10891 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm0 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
10892 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm2[2],ymm4[2],ymm2[3],ymm4[3],ymm2[6],ymm4[6],ymm2[7],ymm4[7]
10893 ; AVX2-NEXT:    vextractf128 $1, %ymm0, %xmm2
10894 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm4 = ymm1[2,2,2,2]
10895 ; AVX2-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm4[2,3]
10896 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm5[0,1,2,3,4,5],ymm3[6,7]
10897 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
10898 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10899 ; AVX2-NEXT:    vbroadcastss 124(%r10), %ymm2
10900 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm2[2],ymm9[2],ymm2[3],ymm9[3],ymm2[6],ymm9[6],ymm2[7],ymm9[7]
10901 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm5[1],ymm2[1],ymm5[3],ymm2[3]
10902 ; AVX2-NEXT:    vextractf128 $1, %ymm1, %xmm1
10903 ; AVX2-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]
10904 ; AVX2-NEXT:    vextractf128 $1, %ymm0, %xmm0
10905 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
10906 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
10907 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10908 ; AVX2-NEXT:    vmovaps 128(%rdi), %ymm0
10909 ; AVX2-NEXT:    vmovaps 128(%rsi), %ymm1
10910 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm2 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]
10911 ; AVX2-NEXT:    vextractf128 $1, %ymm2, %xmm2
10912 ; AVX2-NEXT:    vmovaps 128(%rdx), %ymm3
10913 ; AVX2-NEXT:    vmovaps 128(%rcx), %ymm4
10914 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm5 = ymm3[0],ymm4[0],ymm3[1],ymm4[1],ymm3[4],ymm4[4],ymm3[5],ymm4[5]
10915 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm6 = ymm5[2,2,2,2]
10916 ; AVX2-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm6[2,3]
10917 ; AVX2-NEXT:    vmovaps 128(%r8), %ymm6
10918 ; AVX2-NEXT:    vmovaps 128(%r9), %ymm7
10919 ; AVX2-NEXT:    vmovaps 128(%r10), %ymm8
10920 ; AVX2-NEXT:    vmovaps 128(%rax), %ymm9
10921 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm10 = ymm8[0],ymm9[0],ymm8[1],ymm9[1],ymm8[4],ymm9[4],ymm8[5],ymm9[5]
10922 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm11 = ymm6[0],ymm7[0],ymm6[1],ymm7[1],ymm6[4],ymm7[4],ymm6[5],ymm7[5]
10923 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm11 = ymm11[0],ymm10[0],ymm11[2],ymm10[2]
10924 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm11[4,5,6,7]
10925 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10926 ; AVX2-NEXT:    vbroadcastss 148(%r8), %ymm2
10927 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm7[5],ymm2[6,7]
10928 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm10[6,7]
10929 ; AVX2-NEXT:    vextractf128 $1, %ymm5, %xmm5
10930 ; AVX2-NEXT:    vshufps {{.*#+}} ymm10 = ymm0[1,1,1,1,5,5,5,5]
10931 ; AVX2-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0],ymm1[1],ymm10[2,3,4],ymm1[5],ymm10[6,7]
10932 ; AVX2-NEXT:    vextractf128 $1, %ymm10, %xmm10
10933 ; AVX2-NEXT:    vblendps {{.*#+}} xmm5 = xmm10[0,1],xmm5[2,3]
10934 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3],ymm2[4,5,6,7]
10935 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10936 ; AVX2-NEXT:    vbroadcastss 152(%rax), %ymm2
10937 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm8[0,1,2,3,4,5,6],ymm2[7]
10938 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm5 = ymm6[2],ymm7[2],ymm6[3],ymm7[3],ymm6[6],ymm7[6],ymm6[7],ymm7[7]
10939 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm0 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
10940 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm3[2],ymm4[2],ymm3[3],ymm4[3],ymm3[6],ymm4[6],ymm3[7],ymm4[7]
10941 ; AVX2-NEXT:    vextractf128 $1, %ymm0, %xmm3
10942 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm4 = ymm1[2,2,2,2]
10943 ; AVX2-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm4[2,3]
10944 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3,4,5],ymm2[6,7]
10945 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
10946 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10947 ; AVX2-NEXT:    vbroadcastss 156(%r10), %ymm2
10948 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm2[2],ymm9[2],ymm2[3],ymm9[3],ymm2[6],ymm9[6],ymm2[7],ymm9[7]
10949 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm5[1],ymm2[1],ymm5[3],ymm2[3]
10950 ; AVX2-NEXT:    vextractf128 $1, %ymm1, %xmm1
10951 ; AVX2-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]
10952 ; AVX2-NEXT:    vextractf128 $1, %ymm0, %xmm0
10953 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
10954 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
10955 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10956 ; AVX2-NEXT:    vmovaps 160(%rdi), %ymm0
10957 ; AVX2-NEXT:    vmovaps 160(%rsi), %ymm1
10958 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm2 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]
10959 ; AVX2-NEXT:    vextractf128 $1, %ymm2, %xmm2
10960 ; AVX2-NEXT:    vmovaps 160(%rdx), %ymm3
10961 ; AVX2-NEXT:    vmovaps 160(%rcx), %ymm4
10962 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm5 = ymm3[0],ymm4[0],ymm3[1],ymm4[1],ymm3[4],ymm4[4],ymm3[5],ymm4[5]
10963 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm6 = ymm5[2,2,2,2]
10964 ; AVX2-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm6[2,3]
10965 ; AVX2-NEXT:    vmovaps 160(%r8), %ymm6
10966 ; AVX2-NEXT:    vmovaps 160(%r9), %ymm7
10967 ; AVX2-NEXT:    vmovaps 160(%r10), %ymm8
10968 ; AVX2-NEXT:    vmovaps 160(%rax), %ymm9
10969 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm10 = ymm8[0],ymm9[0],ymm8[1],ymm9[1],ymm8[4],ymm9[4],ymm8[5],ymm9[5]
10970 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm11 = ymm6[0],ymm7[0],ymm6[1],ymm7[1],ymm6[4],ymm7[4],ymm6[5],ymm7[5]
10971 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm11 = ymm11[0],ymm10[0],ymm11[2],ymm10[2]
10972 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm11[4,5,6,7]
10973 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10974 ; AVX2-NEXT:    vbroadcastss 180(%r8), %ymm2
10975 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm7[5],ymm2[6,7]
10976 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm10[6,7]
10977 ; AVX2-NEXT:    vextractf128 $1, %ymm5, %xmm5
10978 ; AVX2-NEXT:    vshufps {{.*#+}} ymm10 = ymm0[1,1,1,1,5,5,5,5]
10979 ; AVX2-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0],ymm1[1],ymm10[2,3,4],ymm1[5],ymm10[6,7]
10980 ; AVX2-NEXT:    vextractf128 $1, %ymm10, %xmm10
10981 ; AVX2-NEXT:    vblendps {{.*#+}} xmm5 = xmm10[0,1],xmm5[2,3]
10982 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3],ymm2[4,5,6,7]
10983 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10984 ; AVX2-NEXT:    vbroadcastss 184(%rax), %ymm2
10985 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm8[0,1,2,3,4,5,6],ymm2[7]
10986 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm5 = ymm6[2],ymm7[2],ymm6[3],ymm7[3],ymm6[6],ymm7[6],ymm6[7],ymm7[7]
10987 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm0 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
10988 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm3[2],ymm4[2],ymm3[3],ymm4[3],ymm3[6],ymm4[6],ymm3[7],ymm4[7]
10989 ; AVX2-NEXT:    vextractf128 $1, %ymm0, %xmm3
10990 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm4 = ymm1[2,2,2,2]
10991 ; AVX2-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm4[2,3]
10992 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3,4,5],ymm2[6,7]
10993 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
10994 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10995 ; AVX2-NEXT:    vbroadcastss 188(%r10), %ymm2
10996 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm2[2],ymm9[2],ymm2[3],ymm9[3],ymm2[6],ymm9[6],ymm2[7],ymm9[7]
10997 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm5[1],ymm2[1],ymm5[3],ymm2[3]
10998 ; AVX2-NEXT:    vextractf128 $1, %ymm1, %xmm1
10999 ; AVX2-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]
11000 ; AVX2-NEXT:    vextractf128 $1, %ymm0, %xmm0
11001 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
11002 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
11003 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11004 ; AVX2-NEXT:    vmovaps 192(%rdi), %ymm0
11005 ; AVX2-NEXT:    vmovaps 192(%rsi), %ymm1
11006 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm2 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]
11007 ; AVX2-NEXT:    vextractf128 $1, %ymm2, %xmm2
11008 ; AVX2-NEXT:    vmovaps 192(%rdx), %ymm3
11009 ; AVX2-NEXT:    vmovaps 192(%rcx), %ymm4
11010 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm5 = ymm3[0],ymm4[0],ymm3[1],ymm4[1],ymm3[4],ymm4[4],ymm3[5],ymm4[5]
11011 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm6 = ymm5[2,2,2,2]
11012 ; AVX2-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm6[2,3]
11013 ; AVX2-NEXT:    vmovaps 192(%r8), %ymm6
11014 ; AVX2-NEXT:    vmovaps 192(%r9), %ymm7
11015 ; AVX2-NEXT:    vmovaps 192(%r10), %ymm8
11016 ; AVX2-NEXT:    vmovaps 192(%rax), %ymm9
11017 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm10 = ymm8[0],ymm9[0],ymm8[1],ymm9[1],ymm8[4],ymm9[4],ymm8[5],ymm9[5]
11018 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm11 = ymm6[0],ymm7[0],ymm6[1],ymm7[1],ymm6[4],ymm7[4],ymm6[5],ymm7[5]
11019 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm11 = ymm11[0],ymm10[0],ymm11[2],ymm10[2]
11020 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm11[4,5,6,7]
11021 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11022 ; AVX2-NEXT:    vbroadcastss 212(%r8), %ymm2
11023 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm7[5],ymm2[6,7]
11024 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm10[6,7]
11025 ; AVX2-NEXT:    vextractf128 $1, %ymm5, %xmm5
11026 ; AVX2-NEXT:    vshufps {{.*#+}} ymm10 = ymm0[1,1,1,1,5,5,5,5]
11027 ; AVX2-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0],ymm1[1],ymm10[2,3,4],ymm1[5],ymm10[6,7]
11028 ; AVX2-NEXT:    vextractf128 $1, %ymm10, %xmm10
11029 ; AVX2-NEXT:    vblendps {{.*#+}} xmm5 = xmm10[0,1],xmm5[2,3]
11030 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3],ymm2[4,5,6,7]
11031 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11032 ; AVX2-NEXT:    vbroadcastss 216(%rax), %ymm2
11033 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm8[0,1,2,3,4,5,6],ymm2[7]
11034 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm5 = ymm6[2],ymm7[2],ymm6[3],ymm7[3],ymm6[6],ymm7[6],ymm6[7],ymm7[7]
11035 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm0 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
11036 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm3[2],ymm4[2],ymm3[3],ymm4[3],ymm3[6],ymm4[6],ymm3[7],ymm4[7]
11037 ; AVX2-NEXT:    vextractf128 $1, %ymm0, %xmm3
11038 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm4 = ymm1[2,2,2,2]
11039 ; AVX2-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm4[2,3]
11040 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3,4,5],ymm2[6,7]
11041 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
11042 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11043 ; AVX2-NEXT:    vbroadcastss 220(%r10), %ymm2
11044 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm2[2],ymm9[2],ymm2[3],ymm9[3],ymm2[6],ymm9[6],ymm2[7],ymm9[7]
11045 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm5[1],ymm2[1],ymm5[3],ymm2[3]
11046 ; AVX2-NEXT:    vextractf128 $1, %ymm1, %xmm1
11047 ; AVX2-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]
11048 ; AVX2-NEXT:    vextractf128 $1, %ymm0, %xmm0
11049 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
11050 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
11051 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11052 ; AVX2-NEXT:    vmovaps 224(%rdi), %ymm0
11053 ; AVX2-NEXT:    vmovaps 224(%rsi), %ymm1
11054 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm2 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]
11055 ; AVX2-NEXT:    vextractf128 $1, %ymm2, %xmm2
11056 ; AVX2-NEXT:    vmovaps 224(%rdx), %ymm3
11057 ; AVX2-NEXT:    vmovaps 224(%rcx), %ymm4
11058 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm5 = ymm3[0],ymm4[0],ymm3[1],ymm4[1],ymm3[4],ymm4[4],ymm3[5],ymm4[5]
11059 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm6 = ymm5[2,2,2,2]
11060 ; AVX2-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm6[2,3]
11061 ; AVX2-NEXT:    vmovaps 224(%r8), %ymm6
11062 ; AVX2-NEXT:    vmovaps 224(%r9), %ymm7
11063 ; AVX2-NEXT:    vmovaps 224(%r10), %ymm8
11064 ; AVX2-NEXT:    vmovaps 224(%rax), %ymm9
11065 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm10 = ymm8[0],ymm9[0],ymm8[1],ymm9[1],ymm8[4],ymm9[4],ymm8[5],ymm9[5]
11066 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm11 = ymm6[0],ymm7[0],ymm6[1],ymm7[1],ymm6[4],ymm7[4],ymm6[5],ymm7[5]
11067 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm11 = ymm11[0],ymm10[0],ymm11[2],ymm10[2]
11068 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm11[4,5,6,7]
11069 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11070 ; AVX2-NEXT:    vbroadcastss 244(%r8), %ymm2
11071 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm7[5],ymm2[6,7]
11072 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm10[6,7]
11073 ; AVX2-NEXT:    vextractf128 $1, %ymm5, %xmm5
11074 ; AVX2-NEXT:    vshufps {{.*#+}} ymm10 = ymm0[1,1,1,1,5,5,5,5]
11075 ; AVX2-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0],ymm1[1],ymm10[2,3,4],ymm1[5],ymm10[6,7]
11076 ; AVX2-NEXT:    vextractf128 $1, %ymm10, %xmm10
11077 ; AVX2-NEXT:    vblendps {{.*#+}} xmm5 = xmm10[0,1],xmm5[2,3]
11078 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3],ymm2[4,5,6,7]
11079 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11080 ; AVX2-NEXT:    vbroadcastss 248(%rax), %ymm2
11081 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm8[0,1,2,3,4,5,6],ymm2[7]
11082 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm5 = ymm6[2],ymm7[2],ymm6[3],ymm7[3],ymm6[6],ymm7[6],ymm6[7],ymm7[7]
11083 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm0 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
11084 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm3[2],ymm4[2],ymm3[3],ymm4[3],ymm3[6],ymm4[6],ymm3[7],ymm4[7]
11085 ; AVX2-NEXT:    vextractf128 $1, %ymm0, %xmm3
11086 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm4 = ymm1[2,2,2,2]
11087 ; AVX2-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm4[2,3]
11088 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3,4,5],ymm2[6,7]
11089 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
11090 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11091 ; AVX2-NEXT:    vbroadcastss 252(%r10), %ymm2
11092 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm2[2],ymm9[2],ymm2[3],ymm9[3],ymm2[6],ymm9[6],ymm2[7],ymm9[7]
11093 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm5[1],ymm2[1],ymm5[3],ymm2[3]
11094 ; AVX2-NEXT:    vextractf128 $1, %ymm1, %xmm1
11095 ; AVX2-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]
11096 ; AVX2-NEXT:    vextractf128 $1, %ymm0, %xmm0
11097 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
11098 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
11099 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11100 ; AVX2-NEXT:    vmovaps (%rcx), %xmm0
11101 ; AVX2-NEXT:    vbroadcastss %xmm0, %xmm2
11102 ; AVX2-NEXT:    vmovaps (%rdx), %xmm1
11103 ; AVX2-NEXT:    vbroadcastss %xmm1, %xmm3
11104 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
11105 ; AVX2-NEXT:    vmovaps (%rsi), %xmm4
11106 ; AVX2-NEXT:    vmovaps (%rdi), %xmm5
11107 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
11108 ; AVX2-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1],xmm2[2,3]
11109 ; AVX2-NEXT:    vmovaps (%rax), %xmm2
11110 ; AVX2-NEXT:    vbroadcastss %xmm2, %xmm7
11111 ; AVX2-NEXT:    vmovaps (%r10), %xmm3
11112 ; AVX2-NEXT:    vbroadcastss %xmm3, %xmm8
11113 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm8[0],xmm7[0],xmm8[1],xmm7[1]
11114 ; AVX2-NEXT:    vmovaps (%r9), %xmm8
11115 ; AVX2-NEXT:    vmovaps (%r8), %xmm9
11116 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm10 = xmm9[0],xmm8[0],xmm9[1],xmm8[1]
11117 ; AVX2-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
11118 ; AVX2-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
11119 ; AVX2-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
11120 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
11121 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11122 ; AVX2-NEXT:    vshufps {{.*#+}} xmm6 = xmm5[1,1,1,1]
11123 ; AVX2-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0],xmm4[1],xmm6[2,3]
11124 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
11125 ; AVX2-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0,1],xmm7[2,3]
11126 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
11127 ; AVX2-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
11128 ; AVX2-NEXT:    vshufps {{.*#+}} xmm10 = xmm9[1,1,1,1]
11129 ; AVX2-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0],xmm8[1],xmm10[2,3]
11130 ; AVX2-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
11131 ; AVX2-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
11132 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
11133 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11134 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
11135 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm9[2],xmm8[2],xmm9[3],xmm8[3]
11136 ; AVX2-NEXT:    vshufps {{.*#+}} xmm6 = xmm2[2,2,2,2]
11137 ; AVX2-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1,2],xmm6[3]
11138 ; AVX2-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
11139 ; AVX2-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm7
11140 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3,4,5],ymm6[6,7]
11141 ; AVX2-NEXT:    vshufps {{.*#+}} xmm7 = xmm0[2,2,2,2]
11142 ; AVX2-NEXT:    vblendps {{.*#+}} xmm7 = xmm1[0,1,2],xmm7[3]
11143 ; AVX2-NEXT:    vblendps {{.*#+}} xmm7 = xmm4[0,1],xmm7[2,3]
11144 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]
11145 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11146 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
11147 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm4[1],xmm0[1]
11148 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm3[2],xmm2[2],xmm3[3],xmm2[3]
11149 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
11150 ; AVX2-NEXT:    vshufps {{.*#+}} xmm2 = xmm5[2,3,2,3]
11151 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
11152 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
11153 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
11154 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11155 ; AVX2-NEXT:    vmovaps 32(%rcx), %xmm0
11156 ; AVX2-NEXT:    vmovaps 32(%rdx), %xmm1
11157 ; AVX2-NEXT:    vbroadcastss %xmm0, %xmm2
11158 ; AVX2-NEXT:    vbroadcastss %xmm1, %xmm3
11159 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
11160 ; AVX2-NEXT:    vmovaps 32(%rsi), %xmm4
11161 ; AVX2-NEXT:    vmovaps 32(%rdi), %xmm5
11162 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
11163 ; AVX2-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1],xmm2[2,3]
11164 ; AVX2-NEXT:    vmovaps 32(%r10), %xmm2
11165 ; AVX2-NEXT:    vmovaps 32(%rax), %xmm3
11166 ; AVX2-NEXT:    vbroadcastss %xmm3, %xmm7
11167 ; AVX2-NEXT:    vbroadcastss %xmm2, %xmm8
11168 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm8[0],xmm7[0],xmm8[1],xmm7[1]
11169 ; AVX2-NEXT:    vmovaps 32(%r9), %xmm8
11170 ; AVX2-NEXT:    vmovaps 32(%r8), %xmm9
11171 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm10 = xmm9[0],xmm8[0],xmm9[1],xmm8[1]
11172 ; AVX2-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
11173 ; AVX2-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
11174 ; AVX2-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
11175 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
11176 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11177 ; AVX2-NEXT:    vshufps {{.*#+}} xmm6 = xmm5[1,1,1,1]
11178 ; AVX2-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0],xmm4[1],xmm6[2,3]
11179 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
11180 ; AVX2-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0,1],xmm7[2,3]
11181 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]
11182 ; AVX2-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
11183 ; AVX2-NEXT:    vshufps {{.*#+}} xmm10 = xmm9[1,1,1,1]
11184 ; AVX2-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0],xmm8[1],xmm10[2,3]
11185 ; AVX2-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
11186 ; AVX2-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
11187 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
11188 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11189 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
11190 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm9[2],xmm8[2],xmm9[3],xmm8[3]
11191 ; AVX2-NEXT:    vshufps {{.*#+}} xmm6 = xmm3[2,2,2,2]
11192 ; AVX2-NEXT:    vblendps {{.*#+}} xmm6 = xmm2[0,1,2],xmm6[3]
11193 ; AVX2-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
11194 ; AVX2-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm7
11195 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3,4,5],ymm6[6,7]
11196 ; AVX2-NEXT:    vshufps {{.*#+}} xmm7 = xmm0[2,2,2,2]
11197 ; AVX2-NEXT:    vblendps {{.*#+}} xmm7 = xmm1[0,1,2],xmm7[3]
11198 ; AVX2-NEXT:    vblendps {{.*#+}} xmm7 = xmm4[0,1],xmm7[2,3]
11199 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]
11200 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11201 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
11202 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm4[1],xmm0[1]
11203 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm2[2],xmm3[2],xmm2[3],xmm3[3]
11204 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
11205 ; AVX2-NEXT:    vshufps {{.*#+}} xmm2 = xmm5[2,3,2,3]
11206 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
11207 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
11208 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
11209 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11210 ; AVX2-NEXT:    vmovaps 64(%rcx), %xmm0
11211 ; AVX2-NEXT:    vmovaps 64(%rdx), %xmm1
11212 ; AVX2-NEXT:    vbroadcastss %xmm0, %xmm2
11213 ; AVX2-NEXT:    vbroadcastss %xmm1, %xmm3
11214 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
11215 ; AVX2-NEXT:    vmovaps 64(%rsi), %xmm4
11216 ; AVX2-NEXT:    vmovaps 64(%rdi), %xmm5
11217 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
11218 ; AVX2-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1],xmm2[2,3]
11219 ; AVX2-NEXT:    vmovaps 64(%r10), %xmm2
11220 ; AVX2-NEXT:    vmovaps 64(%rax), %xmm3
11221 ; AVX2-NEXT:    vbroadcastss %xmm3, %xmm7
11222 ; AVX2-NEXT:    vbroadcastss %xmm2, %xmm8
11223 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm8[0],xmm7[0],xmm8[1],xmm7[1]
11224 ; AVX2-NEXT:    vmovaps 64(%r9), %xmm8
11225 ; AVX2-NEXT:    vmovaps 64(%r8), %xmm9
11226 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm10 = xmm9[0],xmm8[0],xmm9[1],xmm8[1]
11227 ; AVX2-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
11228 ; AVX2-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
11229 ; AVX2-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
11230 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
11231 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11232 ; AVX2-NEXT:    vshufps {{.*#+}} xmm6 = xmm5[1,1,1,1]
11233 ; AVX2-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0],xmm4[1],xmm6[2,3]
11234 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
11235 ; AVX2-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0,1],xmm7[2,3]
11236 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]
11237 ; AVX2-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
11238 ; AVX2-NEXT:    vshufps {{.*#+}} xmm10 = xmm9[1,1,1,1]
11239 ; AVX2-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0],xmm8[1],xmm10[2,3]
11240 ; AVX2-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
11241 ; AVX2-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
11242 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
11243 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11244 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
11245 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm9[2],xmm8[2],xmm9[3],xmm8[3]
11246 ; AVX2-NEXT:    vshufps {{.*#+}} xmm6 = xmm3[2,2,2,2]
11247 ; AVX2-NEXT:    vblendps {{.*#+}} xmm6 = xmm2[0,1,2],xmm6[3]
11248 ; AVX2-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
11249 ; AVX2-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm7
11250 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3,4,5],ymm6[6,7]
11251 ; AVX2-NEXT:    vshufps {{.*#+}} xmm7 = xmm0[2,2,2,2]
11252 ; AVX2-NEXT:    vblendps {{.*#+}} xmm7 = xmm1[0,1,2],xmm7[3]
11253 ; AVX2-NEXT:    vblendps {{.*#+}} xmm7 = xmm4[0,1],xmm7[2,3]
11254 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]
11255 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11256 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
11257 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm4[1],xmm0[1]
11258 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm2[2],xmm3[2],xmm2[3],xmm3[3]
11259 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
11260 ; AVX2-NEXT:    vshufps {{.*#+}} xmm2 = xmm5[2,3,2,3]
11261 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
11262 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
11263 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
11264 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11265 ; AVX2-NEXT:    vmovaps 96(%rcx), %xmm0
11266 ; AVX2-NEXT:    vbroadcastss %xmm0, %xmm2
11267 ; AVX2-NEXT:    vmovaps 96(%rdx), %xmm1
11268 ; AVX2-NEXT:    vbroadcastss %xmm1, %xmm3
11269 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
11270 ; AVX2-NEXT:    vmovaps 96(%rsi), %xmm4
11271 ; AVX2-NEXT:    vmovaps 96(%rdi), %xmm5
11272 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
11273 ; AVX2-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1],xmm2[2,3]
11274 ; AVX2-NEXT:    vmovaps 96(%rax), %xmm2
11275 ; AVX2-NEXT:    vbroadcastss %xmm2, %xmm7
11276 ; AVX2-NEXT:    vmovaps 96(%r10), %xmm3
11277 ; AVX2-NEXT:    vbroadcastss %xmm3, %xmm8
11278 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm8[0],xmm7[0],xmm8[1],xmm7[1]
11279 ; AVX2-NEXT:    vmovaps 96(%r9), %xmm8
11280 ; AVX2-NEXT:    vmovaps 96(%r8), %xmm9
11281 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm10 = xmm9[0],xmm8[0],xmm9[1],xmm8[1]
11282 ; AVX2-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
11283 ; AVX2-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
11284 ; AVX2-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
11285 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
11286 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11287 ; AVX2-NEXT:    vshufps {{.*#+}} xmm6 = xmm5[1,1,1,1]
11288 ; AVX2-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0],xmm4[1],xmm6[2,3]
11289 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
11290 ; AVX2-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0,1],xmm7[2,3]
11291 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
11292 ; AVX2-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
11293 ; AVX2-NEXT:    vshufps {{.*#+}} xmm10 = xmm9[1,1,1,1]
11294 ; AVX2-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0],xmm8[1],xmm10[2,3]
11295 ; AVX2-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
11296 ; AVX2-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
11297 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
11298 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11299 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
11300 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm9[2],xmm8[2],xmm9[3],xmm8[3]
11301 ; AVX2-NEXT:    vshufps {{.*#+}} xmm6 = xmm2[2,2,2,2]
11302 ; AVX2-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1,2],xmm6[3]
11303 ; AVX2-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
11304 ; AVX2-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm7
11305 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3,4,5],ymm6[6,7]
11306 ; AVX2-NEXT:    vshufps {{.*#+}} xmm7 = xmm0[2,2,2,2]
11307 ; AVX2-NEXT:    vblendps {{.*#+}} xmm7 = xmm1[0,1,2],xmm7[3]
11308 ; AVX2-NEXT:    vblendps {{.*#+}} xmm7 = xmm4[0,1],xmm7[2,3]
11309 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]
11310 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11311 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
11312 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm4[1],xmm0[1]
11313 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm3[2],xmm2[2],xmm3[3],xmm2[3]
11314 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
11315 ; AVX2-NEXT:    vshufps {{.*#+}} xmm2 = xmm5[2,3,2,3]
11316 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
11317 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
11318 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
11319 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11320 ; AVX2-NEXT:    vmovaps 128(%rcx), %xmm0
11321 ; AVX2-NEXT:    vbroadcastss %xmm0, %xmm2
11322 ; AVX2-NEXT:    vmovaps 128(%rdx), %xmm1
11323 ; AVX2-NEXT:    vbroadcastss %xmm1, %xmm3
11324 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
11325 ; AVX2-NEXT:    vmovaps 128(%rsi), %xmm4
11326 ; AVX2-NEXT:    vmovaps 128(%rdi), %xmm5
11327 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
11328 ; AVX2-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1],xmm2[2,3]
11329 ; AVX2-NEXT:    vmovaps 128(%rax), %xmm2
11330 ; AVX2-NEXT:    vbroadcastss %xmm2, %xmm7
11331 ; AVX2-NEXT:    vmovaps 128(%r10), %xmm3
11332 ; AVX2-NEXT:    vbroadcastss %xmm3, %xmm8
11333 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm8[0],xmm7[0],xmm8[1],xmm7[1]
11334 ; AVX2-NEXT:    vmovaps 128(%r9), %xmm8
11335 ; AVX2-NEXT:    vmovaps 128(%r8), %xmm9
11336 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm10 = xmm9[0],xmm8[0],xmm9[1],xmm8[1]
11337 ; AVX2-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
11338 ; AVX2-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
11339 ; AVX2-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
11340 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
11341 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11342 ; AVX2-NEXT:    vshufps {{.*#+}} xmm6 = xmm5[1,1,1,1]
11343 ; AVX2-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0],xmm4[1],xmm6[2,3]
11344 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
11345 ; AVX2-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0,1],xmm7[2,3]
11346 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
11347 ; AVX2-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
11348 ; AVX2-NEXT:    vshufps {{.*#+}} xmm10 = xmm9[1,1,1,1]
11349 ; AVX2-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0],xmm8[1],xmm10[2,3]
11350 ; AVX2-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
11351 ; AVX2-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
11352 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
11353 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11354 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
11355 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm9[2],xmm8[2],xmm9[3],xmm8[3]
11356 ; AVX2-NEXT:    vshufps {{.*#+}} xmm6 = xmm2[2,2,2,2]
11357 ; AVX2-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1,2],xmm6[3]
11358 ; AVX2-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
11359 ; AVX2-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm7
11360 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3,4,5],ymm6[6,7]
11361 ; AVX2-NEXT:    vshufps {{.*#+}} xmm7 = xmm0[2,2,2,2]
11362 ; AVX2-NEXT:    vblendps {{.*#+}} xmm7 = xmm1[0,1,2],xmm7[3]
11363 ; AVX2-NEXT:    vblendps {{.*#+}} xmm7 = xmm4[0,1],xmm7[2,3]
11364 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]
11365 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11366 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
11367 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm4[1],xmm0[1]
11368 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm3[2],xmm2[2],xmm3[3],xmm2[3]
11369 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
11370 ; AVX2-NEXT:    vshufps {{.*#+}} xmm2 = xmm5[2,3,2,3]
11371 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
11372 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
11373 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
11374 ; AVX2-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
11375 ; AVX2-NEXT:    vmovaps 160(%rcx), %xmm0
11376 ; AVX2-NEXT:    vbroadcastss %xmm0, %xmm2
11377 ; AVX2-NEXT:    vmovaps 160(%rdx), %xmm1
11378 ; AVX2-NEXT:    vbroadcastss %xmm1, %xmm3
11379 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
11380 ; AVX2-NEXT:    vmovaps 160(%rsi), %xmm4
11381 ; AVX2-NEXT:    vmovaps 160(%rdi), %xmm5
11382 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
11383 ; AVX2-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1],xmm2[2,3]
11384 ; AVX2-NEXT:    vmovaps 160(%rax), %xmm2
11385 ; AVX2-NEXT:    vbroadcastss %xmm2, %xmm7
11386 ; AVX2-NEXT:    vmovaps 160(%r10), %xmm3
11387 ; AVX2-NEXT:    vbroadcastss %xmm3, %xmm8
11388 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm8[0],xmm7[0],xmm8[1],xmm7[1]
11389 ; AVX2-NEXT:    vmovaps 160(%r9), %xmm8
11390 ; AVX2-NEXT:    vmovaps 160(%r8), %xmm9
11391 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm10 = xmm9[0],xmm8[0],xmm9[1],xmm8[1]
11392 ; AVX2-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
11393 ; AVX2-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
11394 ; AVX2-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
11395 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
11396 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11397 ; AVX2-NEXT:    vshufps {{.*#+}} xmm6 = xmm5[1,1,1,1]
11398 ; AVX2-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0],xmm4[1],xmm6[2,3]
11399 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
11400 ; AVX2-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0,1],xmm7[2,3]
11401 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
11402 ; AVX2-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
11403 ; AVX2-NEXT:    vshufps {{.*#+}} xmm10 = xmm9[1,1,1,1]
11404 ; AVX2-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0],xmm8[1],xmm10[2,3]
11405 ; AVX2-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
11406 ; AVX2-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
11407 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
11408 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11409 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
11410 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm9[2],xmm8[2],xmm9[3],xmm8[3]
11411 ; AVX2-NEXT:    vshufps {{.*#+}} xmm6 = xmm2[2,2,2,2]
11412 ; AVX2-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1,2],xmm6[3]
11413 ; AVX2-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
11414 ; AVX2-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm7
11415 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3,4,5],ymm6[6,7]
11416 ; AVX2-NEXT:    vshufps {{.*#+}} xmm7 = xmm0[2,2,2,2]
11417 ; AVX2-NEXT:    vblendps {{.*#+}} xmm7 = xmm1[0,1,2],xmm7[3]
11418 ; AVX2-NEXT:    vblendps {{.*#+}} xmm7 = xmm4[0,1],xmm7[2,3]
11419 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]
11420 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11421 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
11422 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm4[1],xmm0[1]
11423 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm3[2],xmm2[2],xmm3[3],xmm2[3]
11424 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
11425 ; AVX2-NEXT:    vshufps {{.*#+}} xmm2 = xmm5[2,3,2,3]
11426 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
11427 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
11428 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
11429 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11430 ; AVX2-NEXT:    vmovaps 192(%rcx), %xmm0
11431 ; AVX2-NEXT:    vbroadcastss %xmm0, %xmm2
11432 ; AVX2-NEXT:    vmovaps 192(%rdx), %xmm1
11433 ; AVX2-NEXT:    vbroadcastss %xmm1, %xmm3
11434 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
11435 ; AVX2-NEXT:    vmovaps 192(%rsi), %xmm4
11436 ; AVX2-NEXT:    vmovaps 192(%rdi), %xmm5
11437 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
11438 ; AVX2-NEXT:    vblendps {{.*#+}} xmm9 = xmm3[0,1],xmm2[2,3]
11439 ; AVX2-NEXT:    vmovaps 192(%rax), %xmm2
11440 ; AVX2-NEXT:    vbroadcastss %xmm2, %xmm7
11441 ; AVX2-NEXT:    vmovaps 192(%r10), %xmm3
11442 ; AVX2-NEXT:    vbroadcastss %xmm3, %xmm8
11443 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm8[0],xmm7[0],xmm8[1],xmm7[1]
11444 ; AVX2-NEXT:    vmovaps 192(%r9), %xmm8
11445 ; AVX2-NEXT:    vmovaps 192(%r8), %xmm6
11446 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm10 = xmm6[0],xmm8[0],xmm6[1],xmm8[1]
11447 ; AVX2-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
11448 ; AVX2-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
11449 ; AVX2-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
11450 ; AVX2-NEXT:    vblendps {{.*#+}} ymm11 = ymm9[0,1,2,3],ymm7[4,5,6,7]
11451 ; AVX2-NEXT:    vshufps {{.*#+}} xmm7 = xmm5[1,1,1,1]
11452 ; AVX2-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0],xmm4[1],xmm7[2,3]
11453 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm9 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
11454 ; AVX2-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0,1],xmm9[2,3]
11455 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm9 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
11456 ; AVX2-NEXT:    vinsertf128 $1, %xmm9, %ymm0, %ymm9
11457 ; AVX2-NEXT:    vshufps {{.*#+}} xmm15 = xmm6[1,1,1,1]
11458 ; AVX2-NEXT:    vblendps {{.*#+}} xmm15 = xmm15[0],xmm8[1],xmm15[2,3]
11459 ; AVX2-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm15
11460 ; AVX2-NEXT:    vblendps {{.*#+}} ymm9 = ymm15[0,1,2,3,4,5],ymm9[6,7]
11461 ; AVX2-NEXT:    vblendps {{.*#+}} ymm10 = ymm7[0,1,2,3],ymm9[4,5,6,7]
11462 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
11463 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm6[2],xmm8[2],xmm6[3],xmm8[3]
11464 ; AVX2-NEXT:    vshufps {{.*#+}} xmm6 = xmm2[2,2,2,2]
11465 ; AVX2-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1,2],xmm6[3]
11466 ; AVX2-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
11467 ; AVX2-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm7
11468 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3,4,5],ymm6[6,7]
11469 ; AVX2-NEXT:    vshufps {{.*#+}} xmm7 = xmm0[2,2,2,2]
11470 ; AVX2-NEXT:    vblendps {{.*#+}} xmm7 = xmm1[0,1,2],xmm7[3]
11471 ; AVX2-NEXT:    vblendps {{.*#+}} xmm7 = xmm4[0,1],xmm7[2,3]
11472 ; AVX2-NEXT:    vblendps {{.*#+}} ymm9 = ymm7[0,1,2,3],ymm6[4,5,6,7]
11473 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
11474 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm4[1],xmm0[1]
11475 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm3[2],xmm2[2],xmm3[3],xmm2[3]
11476 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
11477 ; AVX2-NEXT:    vshufps {{.*#+}} xmm2 = xmm5[2,3,2,3]
11478 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
11479 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
11480 ; AVX2-NEXT:    vblendps {{.*#+}} ymm8 = ymm0[0,1,2,3],ymm1[4,5,6,7]
11481 ; AVX2-NEXT:    vmovaps 224(%rcx), %xmm6
11482 ; AVX2-NEXT:    vbroadcastss %xmm6, %xmm0
11483 ; AVX2-NEXT:    vmovaps 224(%rdx), %xmm5
11484 ; AVX2-NEXT:    vbroadcastss %xmm5, %xmm1
11485 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
11486 ; AVX2-NEXT:    vmovaps 224(%rsi), %xmm4
11487 ; AVX2-NEXT:    vmovaps 224(%rdi), %xmm2
11488 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm2[0],xmm4[0],xmm2[1],xmm4[1]
11489 ; AVX2-NEXT:    vblendps {{.*#+}} xmm7 = xmm3[0,1],xmm1[2,3]
11490 ; AVX2-NEXT:    vmovaps 224(%rax), %xmm3
11491 ; AVX2-NEXT:    vmovaps 224(%r10), %xmm1
11492 ; AVX2-NEXT:    vbroadcastss %xmm3, %xmm15
11493 ; AVX2-NEXT:    vbroadcastss %xmm1, %xmm14
11494 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm14 = xmm14[0],xmm15[0],xmm14[1],xmm15[1]
11495 ; AVX2-NEXT:    vmovaps 224(%r9), %xmm15
11496 ; AVX2-NEXT:    vmovaps 224(%r8), %xmm0
11497 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm13 = xmm0[0],xmm15[0],xmm0[1],xmm15[1]
11498 ; AVX2-NEXT:    vinsertf128 $1, %xmm13, %ymm0, %ymm13
11499 ; AVX2-NEXT:    vinsertf128 $1, %xmm14, %ymm0, %ymm14
11500 ; AVX2-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1,2,3,4,5],ymm14[6,7]
11501 ; AVX2-NEXT:    vblendps {{.*#+}} ymm14 = ymm7[0,1,2,3],ymm13[4,5,6,7]
11502 ; AVX2-NEXT:    vshufps {{.*#+}} xmm7 = xmm2[1,1,1,1]
11503 ; AVX2-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0],xmm4[1],xmm7[2,3]
11504 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm13 = xmm5[0],xmm6[0],xmm5[1],xmm6[1]
11505 ; AVX2-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0,1],xmm13[2,3]
11506 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm13 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
11507 ; AVX2-NEXT:    vinsertf128 $1, %xmm13, %ymm0, %ymm13
11508 ; AVX2-NEXT:    vshufps {{.*#+}} xmm12 = xmm0[1,1,1,1]
11509 ; AVX2-NEXT:    vblendps {{.*#+}} xmm12 = xmm12[0],xmm15[1],xmm12[2,3]
11510 ; AVX2-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm12
11511 ; AVX2-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3,4,5],ymm13[6,7]
11512 ; AVX2-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3],ymm12[4,5,6,7]
11513 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm2[2],xmm4[2],xmm2[3],xmm4[3]
11514 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm0[2],xmm15[2],xmm0[3],xmm15[3]
11515 ; AVX2-NEXT:    vshufps {{.*#+}} xmm4 = xmm3[2,2,2,2]
11516 ; AVX2-NEXT:    vblendps {{.*#+}} xmm4 = xmm1[0,1,2],xmm4[3]
11517 ; AVX2-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
11518 ; AVX2-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm12
11519 ; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm12[0,1,2,3,4,5],ymm4[6,7]
11520 ; AVX2-NEXT:    vshufps {{.*#+}} xmm12 = xmm6[2,2,2,2]
11521 ; AVX2-NEXT:    vblendps {{.*#+}} xmm12 = xmm5[0,1,2],xmm12[3]
11522 ; AVX2-NEXT:    vblendps {{.*#+}} xmm12 = xmm2[0,1],xmm12[2,3]
11523 ; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm12[0,1,2,3],ymm4[4,5,6,7]
11524 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm5[2],xmm6[2],xmm5[3],xmm6[3]
11525 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm2 = xmm2[1],xmm5[1]
11526 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm1[2],xmm3[2],xmm1[3],xmm3[3]
11527 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
11528 ; AVX2-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[2,3,2,3]
11529 ; AVX2-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
11530 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
11531 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
11532 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rax
11533 ; AVX2-NEXT:    vmovaps %ymm0, 1888(%rax)
11534 ; AVX2-NEXT:    vmovaps %ymm4, 1856(%rax)
11535 ; AVX2-NEXT:    vmovaps %ymm7, 1824(%rax)
11536 ; AVX2-NEXT:    vmovaps %ymm14, 1792(%rax)
11537 ; AVX2-NEXT:    vmovaps %ymm8, 1632(%rax)
11538 ; AVX2-NEXT:    vmovaps %ymm9, 1600(%rax)
11539 ; AVX2-NEXT:    vmovaps %ymm10, 1568(%rax)
11540 ; AVX2-NEXT:    vmovaps %ymm11, 1536(%rax)
11541 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11542 ; AVX2-NEXT:    vmovaps %ymm0, 1376(%rax)
11543 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11544 ; AVX2-NEXT:    vmovaps %ymm0, 1344(%rax)
11545 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11546 ; AVX2-NEXT:    vmovaps %ymm0, 1312(%rax)
11547 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11548 ; AVX2-NEXT:    vmovaps %ymm0, 1280(%rax)
11549 ; AVX2-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
11550 ; AVX2-NEXT:    vmovaps %ymm0, 1120(%rax)
11551 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11552 ; AVX2-NEXT:    vmovaps %ymm0, 1088(%rax)
11553 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11554 ; AVX2-NEXT:    vmovaps %ymm0, 1056(%rax)
11555 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11556 ; AVX2-NEXT:    vmovaps %ymm0, 1024(%rax)
11557 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11558 ; AVX2-NEXT:    vmovaps %ymm0, 864(%rax)
11559 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11560 ; AVX2-NEXT:    vmovaps %ymm0, 832(%rax)
11561 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11562 ; AVX2-NEXT:    vmovaps %ymm0, 800(%rax)
11563 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11564 ; AVX2-NEXT:    vmovaps %ymm0, 768(%rax)
11565 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11566 ; AVX2-NEXT:    vmovaps %ymm0, 608(%rax)
11567 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11568 ; AVX2-NEXT:    vmovaps %ymm0, 576(%rax)
11569 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11570 ; AVX2-NEXT:    vmovaps %ymm0, 544(%rax)
11571 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11572 ; AVX2-NEXT:    vmovaps %ymm0, 512(%rax)
11573 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11574 ; AVX2-NEXT:    vmovaps %ymm0, 352(%rax)
11575 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11576 ; AVX2-NEXT:    vmovaps %ymm0, 320(%rax)
11577 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11578 ; AVX2-NEXT:    vmovaps %ymm0, 288(%rax)
11579 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11580 ; AVX2-NEXT:    vmovaps %ymm0, 256(%rax)
11581 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11582 ; AVX2-NEXT:    vmovaps %ymm0, 96(%rax)
11583 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11584 ; AVX2-NEXT:    vmovaps %ymm0, 64(%rax)
11585 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11586 ; AVX2-NEXT:    vmovaps %ymm0, 32(%rax)
11587 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11588 ; AVX2-NEXT:    vmovaps %ymm0, (%rax)
11589 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11590 ; AVX2-NEXT:    vmovaps %ymm0, 2016(%rax)
11591 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11592 ; AVX2-NEXT:    vmovaps %ymm0, 1984(%rax)
11593 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11594 ; AVX2-NEXT:    vmovaps %ymm0, 1952(%rax)
11595 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11596 ; AVX2-NEXT:    vmovaps %ymm0, 1920(%rax)
11597 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11598 ; AVX2-NEXT:    vmovaps %ymm0, 1760(%rax)
11599 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11600 ; AVX2-NEXT:    vmovaps %ymm0, 1728(%rax)
11601 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11602 ; AVX2-NEXT:    vmovaps %ymm0, 1696(%rax)
11603 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11604 ; AVX2-NEXT:    vmovaps %ymm0, 1664(%rax)
11605 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11606 ; AVX2-NEXT:    vmovaps %ymm0, 1504(%rax)
11607 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11608 ; AVX2-NEXT:    vmovaps %ymm0, 1472(%rax)
11609 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11610 ; AVX2-NEXT:    vmovaps %ymm0, 1440(%rax)
11611 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11612 ; AVX2-NEXT:    vmovaps %ymm0, 1408(%rax)
11613 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11614 ; AVX2-NEXT:    vmovaps %ymm0, 1248(%rax)
11615 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11616 ; AVX2-NEXT:    vmovaps %ymm0, 1216(%rax)
11617 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11618 ; AVX2-NEXT:    vmovaps %ymm0, 1184(%rax)
11619 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11620 ; AVX2-NEXT:    vmovaps %ymm0, 1152(%rax)
11621 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11622 ; AVX2-NEXT:    vmovaps %ymm0, 992(%rax)
11623 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11624 ; AVX2-NEXT:    vmovaps %ymm0, 960(%rax)
11625 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11626 ; AVX2-NEXT:    vmovaps %ymm0, 928(%rax)
11627 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11628 ; AVX2-NEXT:    vmovaps %ymm0, 896(%rax)
11629 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11630 ; AVX2-NEXT:    vmovaps %ymm0, 736(%rax)
11631 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11632 ; AVX2-NEXT:    vmovaps %ymm0, 704(%rax)
11633 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11634 ; AVX2-NEXT:    vmovaps %ymm0, 672(%rax)
11635 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11636 ; AVX2-NEXT:    vmovaps %ymm0, 640(%rax)
11637 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11638 ; AVX2-NEXT:    vmovaps %ymm0, 480(%rax)
11639 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11640 ; AVX2-NEXT:    vmovaps %ymm0, 448(%rax)
11641 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11642 ; AVX2-NEXT:    vmovaps %ymm0, 416(%rax)
11643 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11644 ; AVX2-NEXT:    vmovaps %ymm0, 384(%rax)
11645 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11646 ; AVX2-NEXT:    vmovaps %ymm0, 224(%rax)
11647 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11648 ; AVX2-NEXT:    vmovaps %ymm0, 192(%rax)
11649 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11650 ; AVX2-NEXT:    vmovaps %ymm0, 160(%rax)
11651 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11652 ; AVX2-NEXT:    vmovaps %ymm0, 128(%rax)
11653 ; AVX2-NEXT:    addq $1672, %rsp # imm = 0x688
11654 ; AVX2-NEXT:    vzeroupper
11655 ; AVX2-NEXT:    retq
11657 ; AVX2-FP-LABEL: store_i32_stride8_vf64:
11658 ; AVX2-FP:       # %bb.0:
11659 ; AVX2-FP-NEXT:    subq $1672, %rsp # imm = 0x688
11660 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
11661 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
11662 ; AVX2-FP-NEXT:    vmovaps 32(%rdi), %ymm0
11663 ; AVX2-FP-NEXT:    vmovaps (%rdi), %ymm4
11664 ; AVX2-FP-NEXT:    vmovaps 32(%rsi), %ymm1
11665 ; AVX2-FP-NEXT:    vmovaps (%rsi), %ymm5
11666 ; AVX2-FP-NEXT:    vmovaps 32(%rdx), %ymm2
11667 ; AVX2-FP-NEXT:    vmovaps (%rdx), %ymm6
11668 ; AVX2-FP-NEXT:    vmovaps 32(%rcx), %ymm3
11669 ; AVX2-FP-NEXT:    vmovaps (%rcx), %ymm7
11670 ; AVX2-FP-NEXT:    vmovaps (%r8), %ymm9
11671 ; AVX2-FP-NEXT:    vmovaps (%r9), %ymm11
11672 ; AVX2-FP-NEXT:    vmovaps (%r10), %ymm10
11673 ; AVX2-FP-NEXT:    vmovaps (%rax), %ymm12
11674 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm8 = ymm10[0],ymm12[0],ymm10[1],ymm12[1],ymm10[4],ymm12[4],ymm10[5],ymm12[5]
11675 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm13 = ymm4[0],ymm5[0],ymm4[1],ymm5[1],ymm4[4],ymm5[4],ymm4[5],ymm5[5]
11676 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm13, %xmm13
11677 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm14 = ymm6[0],ymm7[0],ymm6[1],ymm7[1],ymm6[4],ymm7[4],ymm6[5],ymm7[5]
11678 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm15 = ymm14[2,2,2,2]
11679 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm13 = xmm13[0,1],xmm15[2,3]
11680 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm15 = ymm9[0],ymm11[0],ymm9[1],ymm11[1],ymm9[4],ymm11[4],ymm9[5],ymm11[5]
11681 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm15 = ymm15[0],ymm8[0],ymm15[2],ymm8[2]
11682 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1,2,3],ymm15[4,5,6,7]
11683 ; AVX2-FP-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11684 ; AVX2-FP-NEXT:    vbroadcastss 20(%r8), %ymm13
11685 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1,2,3,4],ymm11[5],ymm13[6,7]
11686 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1,2,3,4,5],ymm8[6,7]
11687 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm14, %xmm8
11688 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm14 = ymm4[1,1,1,1,5,5,5,5]
11689 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0],ymm5[1],ymm14[2,3,4],ymm5[5],ymm14[6,7]
11690 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm14, %xmm14
11691 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm14 = xmm14[0,1],xmm8[2,3]
11692 ; AVX2-FP-NEXT:    vmovaps 32(%r8), %ymm8
11693 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm13 = ymm14[0,1,2,3],ymm13[4,5,6,7]
11694 ; AVX2-FP-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11695 ; AVX2-FP-NEXT:    vbroadcastss 24(%rax), %ymm13
11696 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm13 = ymm10[0,1,2,3,4,5,6],ymm13[7]
11697 ; AVX2-FP-NEXT:    vmovaps 32(%r9), %ymm10
11698 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm11 = ymm9[2],ymm11[2],ymm9[3],ymm11[3],ymm9[6],ymm11[6],ymm9[7],ymm11[7]
11699 ; AVX2-FP-NEXT:    vmovaps 32(%r10), %ymm9
11700 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm4 = ymm4[2],ymm5[2],ymm4[3],ymm5[3],ymm4[6],ymm5[6],ymm4[7],ymm5[7]
11701 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm4, %xmm5
11702 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm6 = ymm6[2],ymm7[2],ymm6[3],ymm7[3],ymm6[6],ymm7[6],ymm6[7],ymm7[7]
11703 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm7 = ymm6[2,2,2,2]
11704 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm5 = xmm5[0,1],xmm7[2,3]
11705 ; AVX2-FP-NEXT:    vmovaps 32(%rax), %ymm7
11706 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm13 = ymm11[0,1,2,3,4,5],ymm13[6,7]
11707 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm13[4,5,6,7]
11708 ; AVX2-FP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11709 ; AVX2-FP-NEXT:    vbroadcastss 28(%r10), %ymm5
11710 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm5 = ymm5[2],ymm12[2],ymm5[3],ymm12[3],ymm5[6],ymm12[6],ymm5[7],ymm12[7]
11711 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm5 = ymm11[1],ymm5[1],ymm11[3],ymm5[3]
11712 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm6, %xmm6
11713 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[2,3,2,3,6,7,6,7]
11714 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm4, %xmm4
11715 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],xmm6[2,3]
11716 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm5[4,5,6,7]
11717 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11718 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm4 = ymm9[0],ymm7[0],ymm9[1],ymm7[1],ymm9[4],ymm7[4],ymm9[5],ymm7[5]
11719 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]
11720 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm5, %xmm5
11721 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm6 = ymm2[0],ymm3[0],ymm2[1],ymm3[1],ymm2[4],ymm3[4],ymm2[5],ymm3[5]
11722 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm11 = ymm6[2,2,2,2]
11723 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm5 = xmm5[0,1],xmm11[2,3]
11724 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm11 = ymm8[0],ymm10[0],ymm8[1],ymm10[1],ymm8[4],ymm10[4],ymm8[5],ymm10[5]
11725 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm11 = ymm11[0],ymm4[0],ymm11[2],ymm4[2]
11726 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm11[4,5,6,7]
11727 ; AVX2-FP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11728 ; AVX2-FP-NEXT:    vbroadcastss 52(%r8), %ymm5
11729 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4],ymm10[5],ymm5[6,7]
11730 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],ymm4[6,7]
11731 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm6, %xmm4
11732 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm6 = ymm0[1,1,1,1,5,5,5,5]
11733 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0],ymm1[1],ymm6[2,3,4],ymm1[5],ymm6[6,7]
11734 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm6, %xmm6
11735 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0,1],xmm4[2,3]
11736 ; AVX2-FP-NEXT:    vmovaps 64(%rdi), %ymm4
11737 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2,3],ymm5[4,5,6,7]
11738 ; AVX2-FP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11739 ; AVX2-FP-NEXT:    vbroadcastss 56(%rax), %ymm5
11740 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5,6],ymm5[7]
11741 ; AVX2-FP-NEXT:    vmovaps 64(%rsi), %ymm5
11742 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm8 = ymm8[2],ymm10[2],ymm8[3],ymm10[3],ymm8[6],ymm10[6],ymm8[7],ymm10[7]
11743 ; AVX2-FP-NEXT:    vmovaps 64(%rdx), %ymm6
11744 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm10 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
11745 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm10, %xmm0
11746 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm2[2],ymm3[2],ymm2[3],ymm3[3],ymm2[6],ymm3[6],ymm2[7],ymm3[7]
11747 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm2[2,2,2,2]
11748 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm0[0,1],xmm1[2,3]
11749 ; AVX2-FP-NEXT:    vmovaps 64(%rcx), %ymm0
11750 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm8[0,1,2,3,4,5],ymm9[6,7]
11751 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
11752 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11753 ; AVX2-FP-NEXT:    vbroadcastss 60(%r10), %ymm1
11754 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm3 = ymm1[2],ymm7[2],ymm1[3],ymm7[3],ymm1[6],ymm7[6],ymm1[7],ymm7[7]
11755 ; AVX2-FP-NEXT:    vmovaps 64(%r8), %ymm1
11756 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm3 = ymm8[1],ymm3[1],ymm8[3],ymm3[3]
11757 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm2, %xmm2
11758 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm7 = ymm10[2,3,2,3,6,7,6,7]
11759 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm7, %xmm7
11760 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm2 = xmm7[0,1],xmm2[2,3]
11761 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
11762 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11763 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm2 = ymm4[0],ymm5[0],ymm4[1],ymm5[1],ymm4[4],ymm5[4],ymm4[5],ymm5[5]
11764 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm2, %xmm2
11765 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm3 = ymm6[0],ymm0[0],ymm6[1],ymm0[1],ymm6[4],ymm0[4],ymm6[5],ymm0[5]
11766 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm7 = ymm3[2,2,2,2]
11767 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm7[2,3]
11768 ; AVX2-FP-NEXT:    vmovaps 64(%r9), %ymm7
11769 ; AVX2-FP-NEXT:    vmovaps 64(%r10), %ymm8
11770 ; AVX2-FP-NEXT:    vmovaps 64(%rax), %ymm9
11771 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm10 = ymm8[0],ymm9[0],ymm8[1],ymm9[1],ymm8[4],ymm9[4],ymm8[5],ymm9[5]
11772 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm11 = ymm1[0],ymm7[0],ymm1[1],ymm7[1],ymm1[4],ymm7[4],ymm1[5],ymm7[5]
11773 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm11 = ymm11[0],ymm10[0],ymm11[2],ymm10[2]
11774 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm11[4,5,6,7]
11775 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11776 ; AVX2-FP-NEXT:    vbroadcastss 84(%r8), %ymm2
11777 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm7[5],ymm2[6,7]
11778 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm10[6,7]
11779 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm3, %xmm3
11780 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm10 = ymm4[1,1,1,1,5,5,5,5]
11781 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0],ymm5[1],ymm10[2,3,4],ymm5[5],ymm10[6,7]
11782 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm10, %xmm10
11783 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm3 = xmm10[0,1],xmm3[2,3]
11784 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
11785 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11786 ; AVX2-FP-NEXT:    vbroadcastss 88(%rax), %ymm2
11787 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm8[0,1,2,3,4,5,6],ymm2[7]
11788 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm1[2],ymm7[2],ymm1[3],ymm7[3],ymm1[6],ymm7[6],ymm1[7],ymm7[7]
11789 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm3 = ymm4[2],ymm5[2],ymm4[3],ymm5[3],ymm4[6],ymm5[6],ymm4[7],ymm5[7]
11790 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm4 = ymm6[2],ymm0[2],ymm6[3],ymm0[3],ymm6[6],ymm0[6],ymm6[7],ymm0[7]
11791 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm3, %xmm0
11792 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm5 = ymm4[2,2,2,2]
11793 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm5[2,3]
11794 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm1[0,1,2,3,4,5],ymm2[6,7]
11795 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
11796 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11797 ; AVX2-FP-NEXT:    vbroadcastss 92(%r10), %ymm0
11798 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm0[2],ymm9[2],ymm0[3],ymm9[3],ymm0[6],ymm9[6],ymm0[7],ymm9[7]
11799 ; AVX2-FP-NEXT:    vmovaps 96(%rdi), %ymm0
11800 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm5 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
11801 ; AVX2-FP-NEXT:    vmovaps 96(%rsi), %ymm1
11802 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm4, %xmm2
11803 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[2,3,2,3,6,7,6,7]
11804 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm3, %xmm3
11805 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm2[2,3]
11806 ; AVX2-FP-NEXT:    vmovaps 96(%rdx), %ymm2
11807 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm5[4,5,6,7]
11808 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11809 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm3 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]
11810 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm3, %xmm3
11811 ; AVX2-FP-NEXT:    vmovaps 96(%rcx), %ymm4
11812 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm5 = ymm2[0],ymm4[0],ymm2[1],ymm4[1],ymm2[4],ymm4[4],ymm2[5],ymm4[5]
11813 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm6 = ymm5[2,2,2,2]
11814 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm6[2,3]
11815 ; AVX2-FP-NEXT:    vmovaps 96(%r8), %ymm6
11816 ; AVX2-FP-NEXT:    vmovaps 96(%r9), %ymm7
11817 ; AVX2-FP-NEXT:    vmovaps 96(%r10), %ymm8
11818 ; AVX2-FP-NEXT:    vmovaps 96(%rax), %ymm9
11819 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm10 = ymm8[0],ymm9[0],ymm8[1],ymm9[1],ymm8[4],ymm9[4],ymm8[5],ymm9[5]
11820 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm11 = ymm6[0],ymm7[0],ymm6[1],ymm7[1],ymm6[4],ymm7[4],ymm6[5],ymm7[5]
11821 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm11 = ymm11[0],ymm10[0],ymm11[2],ymm10[2]
11822 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm11[4,5,6,7]
11823 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11824 ; AVX2-FP-NEXT:    vbroadcastss 116(%r8), %ymm3
11825 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4],ymm7[5],ymm3[6,7]
11826 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm10[6,7]
11827 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm5, %xmm5
11828 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm10 = ymm0[1,1,1,1,5,5,5,5]
11829 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0],ymm1[1],ymm10[2,3,4],ymm1[5],ymm10[6,7]
11830 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm10, %xmm10
11831 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm5 = xmm10[0,1],xmm5[2,3]
11832 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm5[0,1,2,3],ymm3[4,5,6,7]
11833 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11834 ; AVX2-FP-NEXT:    vbroadcastss 120(%rax), %ymm3
11835 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm8[0,1,2,3,4,5,6],ymm3[7]
11836 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm5 = ymm6[2],ymm7[2],ymm6[3],ymm7[3],ymm6[6],ymm7[6],ymm6[7],ymm7[7]
11837 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm0 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
11838 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm2[2],ymm4[2],ymm2[3],ymm4[3],ymm2[6],ymm4[6],ymm2[7],ymm4[7]
11839 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm0, %xmm2
11840 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm4 = ymm1[2,2,2,2]
11841 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm4[2,3]
11842 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm5[0,1,2,3,4,5],ymm3[6,7]
11843 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
11844 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11845 ; AVX2-FP-NEXT:    vbroadcastss 124(%r10), %ymm2
11846 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm2[2],ymm9[2],ymm2[3],ymm9[3],ymm2[6],ymm9[6],ymm2[7],ymm9[7]
11847 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm5[1],ymm2[1],ymm5[3],ymm2[3]
11848 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm1, %xmm1
11849 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]
11850 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm0, %xmm0
11851 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
11852 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
11853 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11854 ; AVX2-FP-NEXT:    vmovaps 128(%rdi), %ymm0
11855 ; AVX2-FP-NEXT:    vmovaps 128(%rsi), %ymm1
11856 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm2 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]
11857 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm2, %xmm2
11858 ; AVX2-FP-NEXT:    vmovaps 128(%rdx), %ymm3
11859 ; AVX2-FP-NEXT:    vmovaps 128(%rcx), %ymm4
11860 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm5 = ymm3[0],ymm4[0],ymm3[1],ymm4[1],ymm3[4],ymm4[4],ymm3[5],ymm4[5]
11861 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm6 = ymm5[2,2,2,2]
11862 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm6[2,3]
11863 ; AVX2-FP-NEXT:    vmovaps 128(%r8), %ymm6
11864 ; AVX2-FP-NEXT:    vmovaps 128(%r9), %ymm7
11865 ; AVX2-FP-NEXT:    vmovaps 128(%r10), %ymm8
11866 ; AVX2-FP-NEXT:    vmovaps 128(%rax), %ymm9
11867 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm10 = ymm8[0],ymm9[0],ymm8[1],ymm9[1],ymm8[4],ymm9[4],ymm8[5],ymm9[5]
11868 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm11 = ymm6[0],ymm7[0],ymm6[1],ymm7[1],ymm6[4],ymm7[4],ymm6[5],ymm7[5]
11869 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm11 = ymm11[0],ymm10[0],ymm11[2],ymm10[2]
11870 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm11[4,5,6,7]
11871 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11872 ; AVX2-FP-NEXT:    vbroadcastss 148(%r8), %ymm2
11873 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm7[5],ymm2[6,7]
11874 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm10[6,7]
11875 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm5, %xmm5
11876 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm10 = ymm0[1,1,1,1,5,5,5,5]
11877 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0],ymm1[1],ymm10[2,3,4],ymm1[5],ymm10[6,7]
11878 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm10, %xmm10
11879 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm5 = xmm10[0,1],xmm5[2,3]
11880 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3],ymm2[4,5,6,7]
11881 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11882 ; AVX2-FP-NEXT:    vbroadcastss 152(%rax), %ymm2
11883 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm8[0,1,2,3,4,5,6],ymm2[7]
11884 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm5 = ymm6[2],ymm7[2],ymm6[3],ymm7[3],ymm6[6],ymm7[6],ymm6[7],ymm7[7]
11885 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm0 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
11886 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm3[2],ymm4[2],ymm3[3],ymm4[3],ymm3[6],ymm4[6],ymm3[7],ymm4[7]
11887 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm0, %xmm3
11888 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm4 = ymm1[2,2,2,2]
11889 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm4[2,3]
11890 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3,4,5],ymm2[6,7]
11891 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
11892 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11893 ; AVX2-FP-NEXT:    vbroadcastss 156(%r10), %ymm2
11894 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm2[2],ymm9[2],ymm2[3],ymm9[3],ymm2[6],ymm9[6],ymm2[7],ymm9[7]
11895 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm5[1],ymm2[1],ymm5[3],ymm2[3]
11896 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm1, %xmm1
11897 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]
11898 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm0, %xmm0
11899 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
11900 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
11901 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11902 ; AVX2-FP-NEXT:    vmovaps 160(%rdi), %ymm0
11903 ; AVX2-FP-NEXT:    vmovaps 160(%rsi), %ymm1
11904 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm2 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]
11905 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm2, %xmm2
11906 ; AVX2-FP-NEXT:    vmovaps 160(%rdx), %ymm3
11907 ; AVX2-FP-NEXT:    vmovaps 160(%rcx), %ymm4
11908 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm5 = ymm3[0],ymm4[0],ymm3[1],ymm4[1],ymm3[4],ymm4[4],ymm3[5],ymm4[5]
11909 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm6 = ymm5[2,2,2,2]
11910 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm6[2,3]
11911 ; AVX2-FP-NEXT:    vmovaps 160(%r8), %ymm6
11912 ; AVX2-FP-NEXT:    vmovaps 160(%r9), %ymm7
11913 ; AVX2-FP-NEXT:    vmovaps 160(%r10), %ymm8
11914 ; AVX2-FP-NEXT:    vmovaps 160(%rax), %ymm9
11915 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm10 = ymm8[0],ymm9[0],ymm8[1],ymm9[1],ymm8[4],ymm9[4],ymm8[5],ymm9[5]
11916 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm11 = ymm6[0],ymm7[0],ymm6[1],ymm7[1],ymm6[4],ymm7[4],ymm6[5],ymm7[5]
11917 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm11 = ymm11[0],ymm10[0],ymm11[2],ymm10[2]
11918 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm11[4,5,6,7]
11919 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11920 ; AVX2-FP-NEXT:    vbroadcastss 180(%r8), %ymm2
11921 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm7[5],ymm2[6,7]
11922 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm10[6,7]
11923 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm5, %xmm5
11924 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm10 = ymm0[1,1,1,1,5,5,5,5]
11925 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0],ymm1[1],ymm10[2,3,4],ymm1[5],ymm10[6,7]
11926 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm10, %xmm10
11927 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm5 = xmm10[0,1],xmm5[2,3]
11928 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3],ymm2[4,5,6,7]
11929 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11930 ; AVX2-FP-NEXT:    vbroadcastss 184(%rax), %ymm2
11931 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm8[0,1,2,3,4,5,6],ymm2[7]
11932 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm5 = ymm6[2],ymm7[2],ymm6[3],ymm7[3],ymm6[6],ymm7[6],ymm6[7],ymm7[7]
11933 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm0 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
11934 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm3[2],ymm4[2],ymm3[3],ymm4[3],ymm3[6],ymm4[6],ymm3[7],ymm4[7]
11935 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm0, %xmm3
11936 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm4 = ymm1[2,2,2,2]
11937 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm4[2,3]
11938 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3,4,5],ymm2[6,7]
11939 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
11940 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11941 ; AVX2-FP-NEXT:    vbroadcastss 188(%r10), %ymm2
11942 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm2[2],ymm9[2],ymm2[3],ymm9[3],ymm2[6],ymm9[6],ymm2[7],ymm9[7]
11943 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm5[1],ymm2[1],ymm5[3],ymm2[3]
11944 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm1, %xmm1
11945 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]
11946 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm0, %xmm0
11947 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
11948 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
11949 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11950 ; AVX2-FP-NEXT:    vmovaps 192(%rdi), %ymm0
11951 ; AVX2-FP-NEXT:    vmovaps 192(%rsi), %ymm1
11952 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm2 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]
11953 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm2, %xmm2
11954 ; AVX2-FP-NEXT:    vmovaps 192(%rdx), %ymm3
11955 ; AVX2-FP-NEXT:    vmovaps 192(%rcx), %ymm4
11956 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm5 = ymm3[0],ymm4[0],ymm3[1],ymm4[1],ymm3[4],ymm4[4],ymm3[5],ymm4[5]
11957 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm6 = ymm5[2,2,2,2]
11958 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm6[2,3]
11959 ; AVX2-FP-NEXT:    vmovaps 192(%r8), %ymm6
11960 ; AVX2-FP-NEXT:    vmovaps 192(%r9), %ymm7
11961 ; AVX2-FP-NEXT:    vmovaps 192(%r10), %ymm8
11962 ; AVX2-FP-NEXT:    vmovaps 192(%rax), %ymm9
11963 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm10 = ymm8[0],ymm9[0],ymm8[1],ymm9[1],ymm8[4],ymm9[4],ymm8[5],ymm9[5]
11964 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm11 = ymm6[0],ymm7[0],ymm6[1],ymm7[1],ymm6[4],ymm7[4],ymm6[5],ymm7[5]
11965 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm11 = ymm11[0],ymm10[0],ymm11[2],ymm10[2]
11966 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm11[4,5,6,7]
11967 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11968 ; AVX2-FP-NEXT:    vbroadcastss 212(%r8), %ymm2
11969 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm7[5],ymm2[6,7]
11970 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm10[6,7]
11971 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm5, %xmm5
11972 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm10 = ymm0[1,1,1,1,5,5,5,5]
11973 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0],ymm1[1],ymm10[2,3,4],ymm1[5],ymm10[6,7]
11974 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm10, %xmm10
11975 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm5 = xmm10[0,1],xmm5[2,3]
11976 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3],ymm2[4,5,6,7]
11977 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11978 ; AVX2-FP-NEXT:    vbroadcastss 216(%rax), %ymm2
11979 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm8[0,1,2,3,4,5,6],ymm2[7]
11980 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm5 = ymm6[2],ymm7[2],ymm6[3],ymm7[3],ymm6[6],ymm7[6],ymm6[7],ymm7[7]
11981 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm0 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
11982 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm3[2],ymm4[2],ymm3[3],ymm4[3],ymm3[6],ymm4[6],ymm3[7],ymm4[7]
11983 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm0, %xmm3
11984 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm4 = ymm1[2,2,2,2]
11985 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm4[2,3]
11986 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3,4,5],ymm2[6,7]
11987 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
11988 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11989 ; AVX2-FP-NEXT:    vbroadcastss 220(%r10), %ymm2
11990 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm2[2],ymm9[2],ymm2[3],ymm9[3],ymm2[6],ymm9[6],ymm2[7],ymm9[7]
11991 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm5[1],ymm2[1],ymm5[3],ymm2[3]
11992 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm1, %xmm1
11993 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]
11994 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm0, %xmm0
11995 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
11996 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
11997 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11998 ; AVX2-FP-NEXT:    vmovaps 224(%rdi), %ymm0
11999 ; AVX2-FP-NEXT:    vmovaps 224(%rsi), %ymm1
12000 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm2 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]
12001 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm2, %xmm2
12002 ; AVX2-FP-NEXT:    vmovaps 224(%rdx), %ymm3
12003 ; AVX2-FP-NEXT:    vmovaps 224(%rcx), %ymm4
12004 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm5 = ymm3[0],ymm4[0],ymm3[1],ymm4[1],ymm3[4],ymm4[4],ymm3[5],ymm4[5]
12005 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm6 = ymm5[2,2,2,2]
12006 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm6[2,3]
12007 ; AVX2-FP-NEXT:    vmovaps 224(%r8), %ymm6
12008 ; AVX2-FP-NEXT:    vmovaps 224(%r9), %ymm7
12009 ; AVX2-FP-NEXT:    vmovaps 224(%r10), %ymm8
12010 ; AVX2-FP-NEXT:    vmovaps 224(%rax), %ymm9
12011 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm10 = ymm8[0],ymm9[0],ymm8[1],ymm9[1],ymm8[4],ymm9[4],ymm8[5],ymm9[5]
12012 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm11 = ymm6[0],ymm7[0],ymm6[1],ymm7[1],ymm6[4],ymm7[4],ymm6[5],ymm7[5]
12013 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm11 = ymm11[0],ymm10[0],ymm11[2],ymm10[2]
12014 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm11[4,5,6,7]
12015 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12016 ; AVX2-FP-NEXT:    vbroadcastss 244(%r8), %ymm2
12017 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm7[5],ymm2[6,7]
12018 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm10[6,7]
12019 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm5, %xmm5
12020 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm10 = ymm0[1,1,1,1,5,5,5,5]
12021 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0],ymm1[1],ymm10[2,3,4],ymm1[5],ymm10[6,7]
12022 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm10, %xmm10
12023 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm5 = xmm10[0,1],xmm5[2,3]
12024 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3],ymm2[4,5,6,7]
12025 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12026 ; AVX2-FP-NEXT:    vbroadcastss 248(%rax), %ymm2
12027 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm8[0,1,2,3,4,5,6],ymm2[7]
12028 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm5 = ymm6[2],ymm7[2],ymm6[3],ymm7[3],ymm6[6],ymm7[6],ymm6[7],ymm7[7]
12029 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm0 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
12030 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm3[2],ymm4[2],ymm3[3],ymm4[3],ymm3[6],ymm4[6],ymm3[7],ymm4[7]
12031 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm0, %xmm3
12032 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm4 = ymm1[2,2,2,2]
12033 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm4[2,3]
12034 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3,4,5],ymm2[6,7]
12035 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
12036 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12037 ; AVX2-FP-NEXT:    vbroadcastss 252(%r10), %ymm2
12038 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm2[2],ymm9[2],ymm2[3],ymm9[3],ymm2[6],ymm9[6],ymm2[7],ymm9[7]
12039 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm5[1],ymm2[1],ymm5[3],ymm2[3]
12040 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm1, %xmm1
12041 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]
12042 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm0, %xmm0
12043 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
12044 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
12045 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12046 ; AVX2-FP-NEXT:    vmovaps (%rcx), %xmm0
12047 ; AVX2-FP-NEXT:    vbroadcastss %xmm0, %xmm2
12048 ; AVX2-FP-NEXT:    vmovaps (%rdx), %xmm1
12049 ; AVX2-FP-NEXT:    vbroadcastss %xmm1, %xmm3
12050 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
12051 ; AVX2-FP-NEXT:    vmovaps (%rsi), %xmm4
12052 ; AVX2-FP-NEXT:    vmovaps (%rdi), %xmm5
12053 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
12054 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1],xmm2[2,3]
12055 ; AVX2-FP-NEXT:    vmovaps (%rax), %xmm2
12056 ; AVX2-FP-NEXT:    vbroadcastss %xmm2, %xmm7
12057 ; AVX2-FP-NEXT:    vmovaps (%r10), %xmm3
12058 ; AVX2-FP-NEXT:    vbroadcastss %xmm3, %xmm8
12059 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm8[0],xmm7[0],xmm8[1],xmm7[1]
12060 ; AVX2-FP-NEXT:    vmovaps (%r9), %xmm8
12061 ; AVX2-FP-NEXT:    vmovaps (%r8), %xmm9
12062 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm10 = xmm9[0],xmm8[0],xmm9[1],xmm8[1]
12063 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
12064 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
12065 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
12066 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
12067 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12068 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm6 = xmm5[1,1,1,1]
12069 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0],xmm4[1],xmm6[2,3]
12070 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
12071 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0,1],xmm7[2,3]
12072 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
12073 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
12074 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm10 = xmm9[1,1,1,1]
12075 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0],xmm8[1],xmm10[2,3]
12076 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
12077 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
12078 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
12079 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12080 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
12081 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm9[2],xmm8[2],xmm9[3],xmm8[3]
12082 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm6 = xmm2[2,2,2,2]
12083 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1,2],xmm6[3]
12084 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
12085 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm7
12086 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3,4,5],ymm6[6,7]
12087 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm7 = xmm0[2,2,2,2]
12088 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm7 = xmm1[0,1,2],xmm7[3]
12089 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm7 = xmm4[0,1],xmm7[2,3]
12090 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]
12091 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12092 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
12093 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm4[1],xmm0[1]
12094 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm3[2],xmm2[2],xmm3[3],xmm2[3]
12095 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
12096 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm2 = xmm5[2,3,2,3]
12097 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
12098 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
12099 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
12100 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12101 ; AVX2-FP-NEXT:    vmovaps 32(%rcx), %xmm0
12102 ; AVX2-FP-NEXT:    vmovaps 32(%rdx), %xmm1
12103 ; AVX2-FP-NEXT:    vbroadcastss %xmm0, %xmm2
12104 ; AVX2-FP-NEXT:    vbroadcastss %xmm1, %xmm3
12105 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
12106 ; AVX2-FP-NEXT:    vmovaps 32(%rsi), %xmm4
12107 ; AVX2-FP-NEXT:    vmovaps 32(%rdi), %xmm5
12108 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
12109 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1],xmm2[2,3]
12110 ; AVX2-FP-NEXT:    vmovaps 32(%r10), %xmm2
12111 ; AVX2-FP-NEXT:    vmovaps 32(%rax), %xmm3
12112 ; AVX2-FP-NEXT:    vbroadcastss %xmm3, %xmm7
12113 ; AVX2-FP-NEXT:    vbroadcastss %xmm2, %xmm8
12114 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm8[0],xmm7[0],xmm8[1],xmm7[1]
12115 ; AVX2-FP-NEXT:    vmovaps 32(%r9), %xmm8
12116 ; AVX2-FP-NEXT:    vmovaps 32(%r8), %xmm9
12117 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm10 = xmm9[0],xmm8[0],xmm9[1],xmm8[1]
12118 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
12119 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
12120 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
12121 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
12122 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12123 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm6 = xmm5[1,1,1,1]
12124 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0],xmm4[1],xmm6[2,3]
12125 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
12126 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0,1],xmm7[2,3]
12127 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]
12128 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
12129 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm10 = xmm9[1,1,1,1]
12130 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0],xmm8[1],xmm10[2,3]
12131 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
12132 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
12133 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
12134 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12135 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
12136 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm9[2],xmm8[2],xmm9[3],xmm8[3]
12137 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm6 = xmm3[2,2,2,2]
12138 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm6 = xmm2[0,1,2],xmm6[3]
12139 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
12140 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm7
12141 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3,4,5],ymm6[6,7]
12142 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm7 = xmm0[2,2,2,2]
12143 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm7 = xmm1[0,1,2],xmm7[3]
12144 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm7 = xmm4[0,1],xmm7[2,3]
12145 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]
12146 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12147 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
12148 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm4[1],xmm0[1]
12149 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm2[2],xmm3[2],xmm2[3],xmm3[3]
12150 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
12151 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm2 = xmm5[2,3,2,3]
12152 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
12153 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
12154 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
12155 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12156 ; AVX2-FP-NEXT:    vmovaps 64(%rcx), %xmm0
12157 ; AVX2-FP-NEXT:    vmovaps 64(%rdx), %xmm1
12158 ; AVX2-FP-NEXT:    vbroadcastss %xmm0, %xmm2
12159 ; AVX2-FP-NEXT:    vbroadcastss %xmm1, %xmm3
12160 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
12161 ; AVX2-FP-NEXT:    vmovaps 64(%rsi), %xmm4
12162 ; AVX2-FP-NEXT:    vmovaps 64(%rdi), %xmm5
12163 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
12164 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1],xmm2[2,3]
12165 ; AVX2-FP-NEXT:    vmovaps 64(%r10), %xmm2
12166 ; AVX2-FP-NEXT:    vmovaps 64(%rax), %xmm3
12167 ; AVX2-FP-NEXT:    vbroadcastss %xmm3, %xmm7
12168 ; AVX2-FP-NEXT:    vbroadcastss %xmm2, %xmm8
12169 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm8[0],xmm7[0],xmm8[1],xmm7[1]
12170 ; AVX2-FP-NEXT:    vmovaps 64(%r9), %xmm8
12171 ; AVX2-FP-NEXT:    vmovaps 64(%r8), %xmm9
12172 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm10 = xmm9[0],xmm8[0],xmm9[1],xmm8[1]
12173 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
12174 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
12175 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
12176 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
12177 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12178 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm6 = xmm5[1,1,1,1]
12179 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0],xmm4[1],xmm6[2,3]
12180 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
12181 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0,1],xmm7[2,3]
12182 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]
12183 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
12184 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm10 = xmm9[1,1,1,1]
12185 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0],xmm8[1],xmm10[2,3]
12186 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
12187 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
12188 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
12189 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12190 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
12191 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm9[2],xmm8[2],xmm9[3],xmm8[3]
12192 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm6 = xmm3[2,2,2,2]
12193 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm6 = xmm2[0,1,2],xmm6[3]
12194 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
12195 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm7
12196 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3,4,5],ymm6[6,7]
12197 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm7 = xmm0[2,2,2,2]
12198 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm7 = xmm1[0,1,2],xmm7[3]
12199 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm7 = xmm4[0,1],xmm7[2,3]
12200 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]
12201 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12202 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
12203 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm4[1],xmm0[1]
12204 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm2[2],xmm3[2],xmm2[3],xmm3[3]
12205 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
12206 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm2 = xmm5[2,3,2,3]
12207 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
12208 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
12209 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
12210 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12211 ; AVX2-FP-NEXT:    vmovaps 96(%rcx), %xmm0
12212 ; AVX2-FP-NEXT:    vbroadcastss %xmm0, %xmm2
12213 ; AVX2-FP-NEXT:    vmovaps 96(%rdx), %xmm1
12214 ; AVX2-FP-NEXT:    vbroadcastss %xmm1, %xmm3
12215 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
12216 ; AVX2-FP-NEXT:    vmovaps 96(%rsi), %xmm4
12217 ; AVX2-FP-NEXT:    vmovaps 96(%rdi), %xmm5
12218 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
12219 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1],xmm2[2,3]
12220 ; AVX2-FP-NEXT:    vmovaps 96(%rax), %xmm2
12221 ; AVX2-FP-NEXT:    vbroadcastss %xmm2, %xmm7
12222 ; AVX2-FP-NEXT:    vmovaps 96(%r10), %xmm3
12223 ; AVX2-FP-NEXT:    vbroadcastss %xmm3, %xmm8
12224 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm8[0],xmm7[0],xmm8[1],xmm7[1]
12225 ; AVX2-FP-NEXT:    vmovaps 96(%r9), %xmm8
12226 ; AVX2-FP-NEXT:    vmovaps 96(%r8), %xmm9
12227 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm10 = xmm9[0],xmm8[0],xmm9[1],xmm8[1]
12228 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
12229 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
12230 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
12231 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
12232 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12233 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm6 = xmm5[1,1,1,1]
12234 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0],xmm4[1],xmm6[2,3]
12235 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
12236 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0,1],xmm7[2,3]
12237 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
12238 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
12239 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm10 = xmm9[1,1,1,1]
12240 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0],xmm8[1],xmm10[2,3]
12241 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
12242 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
12243 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
12244 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12245 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
12246 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm9[2],xmm8[2],xmm9[3],xmm8[3]
12247 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm6 = xmm2[2,2,2,2]
12248 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1,2],xmm6[3]
12249 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
12250 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm7
12251 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3,4,5],ymm6[6,7]
12252 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm7 = xmm0[2,2,2,2]
12253 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm7 = xmm1[0,1,2],xmm7[3]
12254 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm7 = xmm4[0,1],xmm7[2,3]
12255 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]
12256 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12257 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
12258 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm4[1],xmm0[1]
12259 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm3[2],xmm2[2],xmm3[3],xmm2[3]
12260 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
12261 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm2 = xmm5[2,3,2,3]
12262 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
12263 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
12264 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
12265 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12266 ; AVX2-FP-NEXT:    vmovaps 128(%rcx), %xmm0
12267 ; AVX2-FP-NEXT:    vbroadcastss %xmm0, %xmm2
12268 ; AVX2-FP-NEXT:    vmovaps 128(%rdx), %xmm1
12269 ; AVX2-FP-NEXT:    vbroadcastss %xmm1, %xmm3
12270 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
12271 ; AVX2-FP-NEXT:    vmovaps 128(%rsi), %xmm4
12272 ; AVX2-FP-NEXT:    vmovaps 128(%rdi), %xmm5
12273 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
12274 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1],xmm2[2,3]
12275 ; AVX2-FP-NEXT:    vmovaps 128(%rax), %xmm2
12276 ; AVX2-FP-NEXT:    vbroadcastss %xmm2, %xmm7
12277 ; AVX2-FP-NEXT:    vmovaps 128(%r10), %xmm3
12278 ; AVX2-FP-NEXT:    vbroadcastss %xmm3, %xmm8
12279 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm8[0],xmm7[0],xmm8[1],xmm7[1]
12280 ; AVX2-FP-NEXT:    vmovaps 128(%r9), %xmm8
12281 ; AVX2-FP-NEXT:    vmovaps 128(%r8), %xmm9
12282 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm10 = xmm9[0],xmm8[0],xmm9[1],xmm8[1]
12283 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
12284 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
12285 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
12286 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
12287 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12288 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm6 = xmm5[1,1,1,1]
12289 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0],xmm4[1],xmm6[2,3]
12290 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
12291 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0,1],xmm7[2,3]
12292 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
12293 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
12294 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm10 = xmm9[1,1,1,1]
12295 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0],xmm8[1],xmm10[2,3]
12296 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
12297 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
12298 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
12299 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12300 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
12301 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm9[2],xmm8[2],xmm9[3],xmm8[3]
12302 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm6 = xmm2[2,2,2,2]
12303 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1,2],xmm6[3]
12304 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
12305 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm7
12306 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3,4,5],ymm6[6,7]
12307 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm7 = xmm0[2,2,2,2]
12308 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm7 = xmm1[0,1,2],xmm7[3]
12309 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm7 = xmm4[0,1],xmm7[2,3]
12310 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]
12311 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12312 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
12313 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm4[1],xmm0[1]
12314 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm3[2],xmm2[2],xmm3[3],xmm2[3]
12315 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
12316 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm2 = xmm5[2,3,2,3]
12317 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
12318 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
12319 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
12320 ; AVX2-FP-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
12321 ; AVX2-FP-NEXT:    vmovaps 160(%rcx), %xmm0
12322 ; AVX2-FP-NEXT:    vbroadcastss %xmm0, %xmm2
12323 ; AVX2-FP-NEXT:    vmovaps 160(%rdx), %xmm1
12324 ; AVX2-FP-NEXT:    vbroadcastss %xmm1, %xmm3
12325 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
12326 ; AVX2-FP-NEXT:    vmovaps 160(%rsi), %xmm4
12327 ; AVX2-FP-NEXT:    vmovaps 160(%rdi), %xmm5
12328 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
12329 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1],xmm2[2,3]
12330 ; AVX2-FP-NEXT:    vmovaps 160(%rax), %xmm2
12331 ; AVX2-FP-NEXT:    vbroadcastss %xmm2, %xmm7
12332 ; AVX2-FP-NEXT:    vmovaps 160(%r10), %xmm3
12333 ; AVX2-FP-NEXT:    vbroadcastss %xmm3, %xmm8
12334 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm8[0],xmm7[0],xmm8[1],xmm7[1]
12335 ; AVX2-FP-NEXT:    vmovaps 160(%r9), %xmm8
12336 ; AVX2-FP-NEXT:    vmovaps 160(%r8), %xmm9
12337 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm10 = xmm9[0],xmm8[0],xmm9[1],xmm8[1]
12338 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
12339 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
12340 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
12341 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
12342 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12343 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm6 = xmm5[1,1,1,1]
12344 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0],xmm4[1],xmm6[2,3]
12345 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
12346 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0,1],xmm7[2,3]
12347 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
12348 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
12349 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm10 = xmm9[1,1,1,1]
12350 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0],xmm8[1],xmm10[2,3]
12351 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
12352 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
12353 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
12354 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12355 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
12356 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm9[2],xmm8[2],xmm9[3],xmm8[3]
12357 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm6 = xmm2[2,2,2,2]
12358 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1,2],xmm6[3]
12359 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
12360 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm7
12361 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3,4,5],ymm6[6,7]
12362 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm7 = xmm0[2,2,2,2]
12363 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm7 = xmm1[0,1,2],xmm7[3]
12364 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm7 = xmm4[0,1],xmm7[2,3]
12365 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]
12366 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12367 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
12368 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm4[1],xmm0[1]
12369 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm3[2],xmm2[2],xmm3[3],xmm2[3]
12370 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
12371 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm2 = xmm5[2,3,2,3]
12372 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
12373 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
12374 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
12375 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12376 ; AVX2-FP-NEXT:    vmovaps 192(%rcx), %xmm0
12377 ; AVX2-FP-NEXT:    vbroadcastss %xmm0, %xmm2
12378 ; AVX2-FP-NEXT:    vmovaps 192(%rdx), %xmm1
12379 ; AVX2-FP-NEXT:    vbroadcastss %xmm1, %xmm3
12380 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
12381 ; AVX2-FP-NEXT:    vmovaps 192(%rsi), %xmm4
12382 ; AVX2-FP-NEXT:    vmovaps 192(%rdi), %xmm5
12383 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
12384 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm9 = xmm3[0,1],xmm2[2,3]
12385 ; AVX2-FP-NEXT:    vmovaps 192(%rax), %xmm2
12386 ; AVX2-FP-NEXT:    vbroadcastss %xmm2, %xmm7
12387 ; AVX2-FP-NEXT:    vmovaps 192(%r10), %xmm3
12388 ; AVX2-FP-NEXT:    vbroadcastss %xmm3, %xmm8
12389 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm8[0],xmm7[0],xmm8[1],xmm7[1]
12390 ; AVX2-FP-NEXT:    vmovaps 192(%r9), %xmm8
12391 ; AVX2-FP-NEXT:    vmovaps 192(%r8), %xmm6
12392 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm10 = xmm6[0],xmm8[0],xmm6[1],xmm8[1]
12393 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
12394 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
12395 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
12396 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm11 = ymm9[0,1,2,3],ymm7[4,5,6,7]
12397 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm7 = xmm5[1,1,1,1]
12398 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0],xmm4[1],xmm7[2,3]
12399 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm9 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
12400 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0,1],xmm9[2,3]
12401 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm9 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
12402 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm9, %ymm0, %ymm9
12403 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm15 = xmm6[1,1,1,1]
12404 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm15 = xmm15[0],xmm8[1],xmm15[2,3]
12405 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm15
12406 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm9 = ymm15[0,1,2,3,4,5],ymm9[6,7]
12407 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm10 = ymm7[0,1,2,3],ymm9[4,5,6,7]
12408 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
12409 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm6[2],xmm8[2],xmm6[3],xmm8[3]
12410 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm6 = xmm2[2,2,2,2]
12411 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1,2],xmm6[3]
12412 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
12413 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm7
12414 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3,4,5],ymm6[6,7]
12415 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm7 = xmm0[2,2,2,2]
12416 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm7 = xmm1[0,1,2],xmm7[3]
12417 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm7 = xmm4[0,1],xmm7[2,3]
12418 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm9 = ymm7[0,1,2,3],ymm6[4,5,6,7]
12419 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
12420 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm4[1],xmm0[1]
12421 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm3[2],xmm2[2],xmm3[3],xmm2[3]
12422 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
12423 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm2 = xmm5[2,3,2,3]
12424 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
12425 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
12426 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm8 = ymm0[0,1,2,3],ymm1[4,5,6,7]
12427 ; AVX2-FP-NEXT:    vmovaps 224(%rcx), %xmm6
12428 ; AVX2-FP-NEXT:    vbroadcastss %xmm6, %xmm0
12429 ; AVX2-FP-NEXT:    vmovaps 224(%rdx), %xmm5
12430 ; AVX2-FP-NEXT:    vbroadcastss %xmm5, %xmm1
12431 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
12432 ; AVX2-FP-NEXT:    vmovaps 224(%rsi), %xmm4
12433 ; AVX2-FP-NEXT:    vmovaps 224(%rdi), %xmm2
12434 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm2[0],xmm4[0],xmm2[1],xmm4[1]
12435 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm7 = xmm3[0,1],xmm1[2,3]
12436 ; AVX2-FP-NEXT:    vmovaps 224(%rax), %xmm3
12437 ; AVX2-FP-NEXT:    vmovaps 224(%r10), %xmm1
12438 ; AVX2-FP-NEXT:    vbroadcastss %xmm3, %xmm15
12439 ; AVX2-FP-NEXT:    vbroadcastss %xmm1, %xmm14
12440 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm14 = xmm14[0],xmm15[0],xmm14[1],xmm15[1]
12441 ; AVX2-FP-NEXT:    vmovaps 224(%r9), %xmm15
12442 ; AVX2-FP-NEXT:    vmovaps 224(%r8), %xmm0
12443 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm13 = xmm0[0],xmm15[0],xmm0[1],xmm15[1]
12444 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm13, %ymm0, %ymm13
12445 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm14, %ymm0, %ymm14
12446 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1,2,3,4,5],ymm14[6,7]
12447 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm14 = ymm7[0,1,2,3],ymm13[4,5,6,7]
12448 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm7 = xmm2[1,1,1,1]
12449 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0],xmm4[1],xmm7[2,3]
12450 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm13 = xmm5[0],xmm6[0],xmm5[1],xmm6[1]
12451 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0,1],xmm13[2,3]
12452 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm13 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
12453 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm13, %ymm0, %ymm13
12454 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm12 = xmm0[1,1,1,1]
12455 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm12 = xmm12[0],xmm15[1],xmm12[2,3]
12456 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm12
12457 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3,4,5],ymm13[6,7]
12458 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3],ymm12[4,5,6,7]
12459 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm2[2],xmm4[2],xmm2[3],xmm4[3]
12460 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm0[2],xmm15[2],xmm0[3],xmm15[3]
12461 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm4 = xmm3[2,2,2,2]
12462 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm4 = xmm1[0,1,2],xmm4[3]
12463 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
12464 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm12
12465 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm12[0,1,2,3,4,5],ymm4[6,7]
12466 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm12 = xmm6[2,2,2,2]
12467 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm12 = xmm5[0,1,2],xmm12[3]
12468 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm12 = xmm2[0,1],xmm12[2,3]
12469 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm12[0,1,2,3],ymm4[4,5,6,7]
12470 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm5[2],xmm6[2],xmm5[3],xmm6[3]
12471 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm2 = xmm2[1],xmm5[1]
12472 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm1[2],xmm3[2],xmm1[3],xmm3[3]
12473 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
12474 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[2,3,2,3]
12475 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
12476 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
12477 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
12478 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
12479 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1888(%rax)
12480 ; AVX2-FP-NEXT:    vmovaps %ymm4, 1856(%rax)
12481 ; AVX2-FP-NEXT:    vmovaps %ymm7, 1824(%rax)
12482 ; AVX2-FP-NEXT:    vmovaps %ymm14, 1792(%rax)
12483 ; AVX2-FP-NEXT:    vmovaps %ymm8, 1632(%rax)
12484 ; AVX2-FP-NEXT:    vmovaps %ymm9, 1600(%rax)
12485 ; AVX2-FP-NEXT:    vmovaps %ymm10, 1568(%rax)
12486 ; AVX2-FP-NEXT:    vmovaps %ymm11, 1536(%rax)
12487 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12488 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1376(%rax)
12489 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12490 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1344(%rax)
12491 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12492 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1312(%rax)
12493 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12494 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1280(%rax)
12495 ; AVX2-FP-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
12496 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1120(%rax)
12497 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12498 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1088(%rax)
12499 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12500 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1056(%rax)
12501 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12502 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1024(%rax)
12503 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12504 ; AVX2-FP-NEXT:    vmovaps %ymm0, 864(%rax)
12505 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12506 ; AVX2-FP-NEXT:    vmovaps %ymm0, 832(%rax)
12507 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12508 ; AVX2-FP-NEXT:    vmovaps %ymm0, 800(%rax)
12509 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12510 ; AVX2-FP-NEXT:    vmovaps %ymm0, 768(%rax)
12511 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12512 ; AVX2-FP-NEXT:    vmovaps %ymm0, 608(%rax)
12513 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12514 ; AVX2-FP-NEXT:    vmovaps %ymm0, 576(%rax)
12515 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12516 ; AVX2-FP-NEXT:    vmovaps %ymm0, 544(%rax)
12517 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12518 ; AVX2-FP-NEXT:    vmovaps %ymm0, 512(%rax)
12519 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12520 ; AVX2-FP-NEXT:    vmovaps %ymm0, 352(%rax)
12521 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12522 ; AVX2-FP-NEXT:    vmovaps %ymm0, 320(%rax)
12523 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12524 ; AVX2-FP-NEXT:    vmovaps %ymm0, 288(%rax)
12525 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12526 ; AVX2-FP-NEXT:    vmovaps %ymm0, 256(%rax)
12527 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12528 ; AVX2-FP-NEXT:    vmovaps %ymm0, 96(%rax)
12529 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12530 ; AVX2-FP-NEXT:    vmovaps %ymm0, 64(%rax)
12531 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12532 ; AVX2-FP-NEXT:    vmovaps %ymm0, 32(%rax)
12533 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12534 ; AVX2-FP-NEXT:    vmovaps %ymm0, (%rax)
12535 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12536 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2016(%rax)
12537 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12538 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1984(%rax)
12539 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12540 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1952(%rax)
12541 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12542 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1920(%rax)
12543 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12544 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1760(%rax)
12545 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12546 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1728(%rax)
12547 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12548 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1696(%rax)
12549 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12550 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1664(%rax)
12551 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12552 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1504(%rax)
12553 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12554 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1472(%rax)
12555 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12556 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1440(%rax)
12557 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12558 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1408(%rax)
12559 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12560 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1248(%rax)
12561 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12562 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1216(%rax)
12563 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12564 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1184(%rax)
12565 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12566 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1152(%rax)
12567 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12568 ; AVX2-FP-NEXT:    vmovaps %ymm0, 992(%rax)
12569 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12570 ; AVX2-FP-NEXT:    vmovaps %ymm0, 960(%rax)
12571 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12572 ; AVX2-FP-NEXT:    vmovaps %ymm0, 928(%rax)
12573 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12574 ; AVX2-FP-NEXT:    vmovaps %ymm0, 896(%rax)
12575 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12576 ; AVX2-FP-NEXT:    vmovaps %ymm0, 736(%rax)
12577 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12578 ; AVX2-FP-NEXT:    vmovaps %ymm0, 704(%rax)
12579 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12580 ; AVX2-FP-NEXT:    vmovaps %ymm0, 672(%rax)
12581 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12582 ; AVX2-FP-NEXT:    vmovaps %ymm0, 640(%rax)
12583 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12584 ; AVX2-FP-NEXT:    vmovaps %ymm0, 480(%rax)
12585 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12586 ; AVX2-FP-NEXT:    vmovaps %ymm0, 448(%rax)
12587 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12588 ; AVX2-FP-NEXT:    vmovaps %ymm0, 416(%rax)
12589 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12590 ; AVX2-FP-NEXT:    vmovaps %ymm0, 384(%rax)
12591 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12592 ; AVX2-FP-NEXT:    vmovaps %ymm0, 224(%rax)
12593 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12594 ; AVX2-FP-NEXT:    vmovaps %ymm0, 192(%rax)
12595 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12596 ; AVX2-FP-NEXT:    vmovaps %ymm0, 160(%rax)
12597 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12598 ; AVX2-FP-NEXT:    vmovaps %ymm0, 128(%rax)
12599 ; AVX2-FP-NEXT:    addq $1672, %rsp # imm = 0x688
12600 ; AVX2-FP-NEXT:    vzeroupper
12601 ; AVX2-FP-NEXT:    retq
12603 ; AVX2-FCP-LABEL: store_i32_stride8_vf64:
12604 ; AVX2-FCP:       # %bb.0:
12605 ; AVX2-FCP-NEXT:    subq $1672, %rsp # imm = 0x688
12606 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
12607 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
12608 ; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %ymm0
12609 ; AVX2-FCP-NEXT:    vmovaps (%rdi), %ymm4
12610 ; AVX2-FCP-NEXT:    vmovaps 32(%rsi), %ymm1
12611 ; AVX2-FCP-NEXT:    vmovaps (%rsi), %ymm5
12612 ; AVX2-FCP-NEXT:    vmovaps 32(%rdx), %ymm2
12613 ; AVX2-FCP-NEXT:    vmovaps (%rdx), %ymm6
12614 ; AVX2-FCP-NEXT:    vmovaps 32(%rcx), %ymm3
12615 ; AVX2-FCP-NEXT:    vmovaps (%rcx), %ymm7
12616 ; AVX2-FCP-NEXT:    vmovaps (%r8), %ymm9
12617 ; AVX2-FCP-NEXT:    vmovaps (%r9), %ymm11
12618 ; AVX2-FCP-NEXT:    vmovaps (%r10), %ymm10
12619 ; AVX2-FCP-NEXT:    vmovaps (%rax), %ymm12
12620 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm8 = ymm10[0],ymm12[0],ymm10[1],ymm12[1],ymm10[4],ymm12[4],ymm10[5],ymm12[5]
12621 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm13 = ymm4[0],ymm5[0],ymm4[1],ymm5[1],ymm4[4],ymm5[4],ymm4[5],ymm5[5]
12622 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm13, %xmm13
12623 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm14 = ymm6[0],ymm7[0],ymm6[1],ymm7[1],ymm6[4],ymm7[4],ymm6[5],ymm7[5]
12624 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm15 = ymm14[2,2,2,2]
12625 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm13 = xmm13[0,1],xmm15[2,3]
12626 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm15 = ymm9[0],ymm11[0],ymm9[1],ymm11[1],ymm9[4],ymm11[4],ymm9[5],ymm11[5]
12627 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm15 = ymm15[0],ymm8[0],ymm15[2],ymm8[2]
12628 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1,2,3],ymm15[4,5,6,7]
12629 ; AVX2-FCP-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12630 ; AVX2-FCP-NEXT:    vbroadcastss 20(%r8), %ymm13
12631 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1,2,3,4],ymm11[5],ymm13[6,7]
12632 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1,2,3,4,5],ymm8[6,7]
12633 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm14, %xmm8
12634 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm14 = ymm4[1,1,1,1,5,5,5,5]
12635 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0],ymm5[1],ymm14[2,3,4],ymm5[5],ymm14[6,7]
12636 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm14, %xmm14
12637 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm14 = xmm14[0,1],xmm8[2,3]
12638 ; AVX2-FCP-NEXT:    vmovaps 32(%r8), %ymm8
12639 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm13 = ymm14[0,1,2,3],ymm13[4,5,6,7]
12640 ; AVX2-FCP-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12641 ; AVX2-FCP-NEXT:    vbroadcastss 24(%rax), %ymm13
12642 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm13 = ymm10[0,1,2,3,4,5,6],ymm13[7]
12643 ; AVX2-FCP-NEXT:    vmovaps 32(%r9), %ymm10
12644 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm11 = ymm9[2],ymm11[2],ymm9[3],ymm11[3],ymm9[6],ymm11[6],ymm9[7],ymm11[7]
12645 ; AVX2-FCP-NEXT:    vmovaps 32(%r10), %ymm9
12646 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm4 = ymm4[2],ymm5[2],ymm4[3],ymm5[3],ymm4[6],ymm5[6],ymm4[7],ymm5[7]
12647 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm4, %xmm5
12648 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm6 = ymm6[2],ymm7[2],ymm6[3],ymm7[3],ymm6[6],ymm7[6],ymm6[7],ymm7[7]
12649 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm7 = ymm6[2,2,2,2]
12650 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm5 = xmm5[0,1],xmm7[2,3]
12651 ; AVX2-FCP-NEXT:    vmovaps 32(%rax), %ymm7
12652 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm13 = ymm11[0,1,2,3,4,5],ymm13[6,7]
12653 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm13[4,5,6,7]
12654 ; AVX2-FCP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12655 ; AVX2-FCP-NEXT:    vbroadcastss 28(%r10), %ymm5
12656 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm5 = ymm5[2],ymm12[2],ymm5[3],ymm12[3],ymm5[6],ymm12[6],ymm5[7],ymm12[7]
12657 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm5 = ymm11[1],ymm5[1],ymm11[3],ymm5[3]
12658 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm6, %xmm6
12659 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[2,3,2,3,6,7,6,7]
12660 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm4, %xmm4
12661 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],xmm6[2,3]
12662 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm5[4,5,6,7]
12663 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12664 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm4 = ymm9[0],ymm7[0],ymm9[1],ymm7[1],ymm9[4],ymm7[4],ymm9[5],ymm7[5]
12665 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]
12666 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm5, %xmm5
12667 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm6 = ymm2[0],ymm3[0],ymm2[1],ymm3[1],ymm2[4],ymm3[4],ymm2[5],ymm3[5]
12668 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm11 = ymm6[2,2,2,2]
12669 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm5 = xmm5[0,1],xmm11[2,3]
12670 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm11 = ymm8[0],ymm10[0],ymm8[1],ymm10[1],ymm8[4],ymm10[4],ymm8[5],ymm10[5]
12671 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm11 = ymm11[0],ymm4[0],ymm11[2],ymm4[2]
12672 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm11[4,5,6,7]
12673 ; AVX2-FCP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12674 ; AVX2-FCP-NEXT:    vbroadcastss 52(%r8), %ymm5
12675 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4],ymm10[5],ymm5[6,7]
12676 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],ymm4[6,7]
12677 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm6, %xmm4
12678 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm6 = ymm0[1,1,1,1,5,5,5,5]
12679 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0],ymm1[1],ymm6[2,3,4],ymm1[5],ymm6[6,7]
12680 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm6, %xmm6
12681 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0,1],xmm4[2,3]
12682 ; AVX2-FCP-NEXT:    vmovaps 64(%rdi), %ymm4
12683 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2,3],ymm5[4,5,6,7]
12684 ; AVX2-FCP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12685 ; AVX2-FCP-NEXT:    vbroadcastss 56(%rax), %ymm5
12686 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5,6],ymm5[7]
12687 ; AVX2-FCP-NEXT:    vmovaps 64(%rsi), %ymm5
12688 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm8 = ymm8[2],ymm10[2],ymm8[3],ymm10[3],ymm8[6],ymm10[6],ymm8[7],ymm10[7]
12689 ; AVX2-FCP-NEXT:    vmovaps 64(%rdx), %ymm6
12690 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm10 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
12691 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm10, %xmm0
12692 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm2[2],ymm3[2],ymm2[3],ymm3[3],ymm2[6],ymm3[6],ymm2[7],ymm3[7]
12693 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm2[2,2,2,2]
12694 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm0[0,1],xmm1[2,3]
12695 ; AVX2-FCP-NEXT:    vmovaps 64(%rcx), %ymm0
12696 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm8[0,1,2,3,4,5],ymm9[6,7]
12697 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
12698 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12699 ; AVX2-FCP-NEXT:    vbroadcastss 60(%r10), %ymm1
12700 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm3 = ymm1[2],ymm7[2],ymm1[3],ymm7[3],ymm1[6],ymm7[6],ymm1[7],ymm7[7]
12701 ; AVX2-FCP-NEXT:    vmovaps 64(%r8), %ymm1
12702 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm3 = ymm8[1],ymm3[1],ymm8[3],ymm3[3]
12703 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm2, %xmm2
12704 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm7 = ymm10[2,3,2,3,6,7,6,7]
12705 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm7, %xmm7
12706 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm2 = xmm7[0,1],xmm2[2,3]
12707 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
12708 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12709 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm2 = ymm4[0],ymm5[0],ymm4[1],ymm5[1],ymm4[4],ymm5[4],ymm4[5],ymm5[5]
12710 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm2, %xmm2
12711 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm3 = ymm6[0],ymm0[0],ymm6[1],ymm0[1],ymm6[4],ymm0[4],ymm6[5],ymm0[5]
12712 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm7 = ymm3[2,2,2,2]
12713 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm7[2,3]
12714 ; AVX2-FCP-NEXT:    vmovaps 64(%r9), %ymm7
12715 ; AVX2-FCP-NEXT:    vmovaps 64(%r10), %ymm8
12716 ; AVX2-FCP-NEXT:    vmovaps 64(%rax), %ymm9
12717 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm10 = ymm8[0],ymm9[0],ymm8[1],ymm9[1],ymm8[4],ymm9[4],ymm8[5],ymm9[5]
12718 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm11 = ymm1[0],ymm7[0],ymm1[1],ymm7[1],ymm1[4],ymm7[4],ymm1[5],ymm7[5]
12719 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm11 = ymm11[0],ymm10[0],ymm11[2],ymm10[2]
12720 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm11[4,5,6,7]
12721 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12722 ; AVX2-FCP-NEXT:    vbroadcastss 84(%r8), %ymm2
12723 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm7[5],ymm2[6,7]
12724 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm10[6,7]
12725 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm3, %xmm3
12726 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm10 = ymm4[1,1,1,1,5,5,5,5]
12727 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0],ymm5[1],ymm10[2,3,4],ymm5[5],ymm10[6,7]
12728 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm10, %xmm10
12729 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm3 = xmm10[0,1],xmm3[2,3]
12730 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
12731 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12732 ; AVX2-FCP-NEXT:    vbroadcastss 88(%rax), %ymm2
12733 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm8[0,1,2,3,4,5,6],ymm2[7]
12734 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm1[2],ymm7[2],ymm1[3],ymm7[3],ymm1[6],ymm7[6],ymm1[7],ymm7[7]
12735 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm3 = ymm4[2],ymm5[2],ymm4[3],ymm5[3],ymm4[6],ymm5[6],ymm4[7],ymm5[7]
12736 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm4 = ymm6[2],ymm0[2],ymm6[3],ymm0[3],ymm6[6],ymm0[6],ymm6[7],ymm0[7]
12737 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm3, %xmm0
12738 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm5 = ymm4[2,2,2,2]
12739 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm5[2,3]
12740 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm1[0,1,2,3,4,5],ymm2[6,7]
12741 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
12742 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12743 ; AVX2-FCP-NEXT:    vbroadcastss 92(%r10), %ymm0
12744 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm0[2],ymm9[2],ymm0[3],ymm9[3],ymm0[6],ymm9[6],ymm0[7],ymm9[7]
12745 ; AVX2-FCP-NEXT:    vmovaps 96(%rdi), %ymm0
12746 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm5 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
12747 ; AVX2-FCP-NEXT:    vmovaps 96(%rsi), %ymm1
12748 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm4, %xmm2
12749 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[2,3,2,3,6,7,6,7]
12750 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm3, %xmm3
12751 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm2[2,3]
12752 ; AVX2-FCP-NEXT:    vmovaps 96(%rdx), %ymm2
12753 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm5[4,5,6,7]
12754 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12755 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm3 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]
12756 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm3, %xmm3
12757 ; AVX2-FCP-NEXT:    vmovaps 96(%rcx), %ymm4
12758 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm5 = ymm2[0],ymm4[0],ymm2[1],ymm4[1],ymm2[4],ymm4[4],ymm2[5],ymm4[5]
12759 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm6 = ymm5[2,2,2,2]
12760 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm6[2,3]
12761 ; AVX2-FCP-NEXT:    vmovaps 96(%r8), %ymm6
12762 ; AVX2-FCP-NEXT:    vmovaps 96(%r9), %ymm7
12763 ; AVX2-FCP-NEXT:    vmovaps 96(%r10), %ymm8
12764 ; AVX2-FCP-NEXT:    vmovaps 96(%rax), %ymm9
12765 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm10 = ymm8[0],ymm9[0],ymm8[1],ymm9[1],ymm8[4],ymm9[4],ymm8[5],ymm9[5]
12766 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm11 = ymm6[0],ymm7[0],ymm6[1],ymm7[1],ymm6[4],ymm7[4],ymm6[5],ymm7[5]
12767 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm11 = ymm11[0],ymm10[0],ymm11[2],ymm10[2]
12768 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm11[4,5,6,7]
12769 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12770 ; AVX2-FCP-NEXT:    vbroadcastss 116(%r8), %ymm3
12771 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4],ymm7[5],ymm3[6,7]
12772 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm10[6,7]
12773 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm5, %xmm5
12774 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm10 = ymm0[1,1,1,1,5,5,5,5]
12775 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0],ymm1[1],ymm10[2,3,4],ymm1[5],ymm10[6,7]
12776 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm10, %xmm10
12777 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm5 = xmm10[0,1],xmm5[2,3]
12778 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm5[0,1,2,3],ymm3[4,5,6,7]
12779 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12780 ; AVX2-FCP-NEXT:    vbroadcastss 120(%rax), %ymm3
12781 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm8[0,1,2,3,4,5,6],ymm3[7]
12782 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm5 = ymm6[2],ymm7[2],ymm6[3],ymm7[3],ymm6[6],ymm7[6],ymm6[7],ymm7[7]
12783 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm0 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
12784 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm2[2],ymm4[2],ymm2[3],ymm4[3],ymm2[6],ymm4[6],ymm2[7],ymm4[7]
12785 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm0, %xmm2
12786 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm4 = ymm1[2,2,2,2]
12787 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm4[2,3]
12788 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm5[0,1,2,3,4,5],ymm3[6,7]
12789 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
12790 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12791 ; AVX2-FCP-NEXT:    vbroadcastss 124(%r10), %ymm2
12792 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm2[2],ymm9[2],ymm2[3],ymm9[3],ymm2[6],ymm9[6],ymm2[7],ymm9[7]
12793 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm5[1],ymm2[1],ymm5[3],ymm2[3]
12794 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm1, %xmm1
12795 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]
12796 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm0, %xmm0
12797 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
12798 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
12799 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12800 ; AVX2-FCP-NEXT:    vmovaps 128(%rdi), %ymm0
12801 ; AVX2-FCP-NEXT:    vmovaps 128(%rsi), %ymm1
12802 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm2 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]
12803 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm2, %xmm2
12804 ; AVX2-FCP-NEXT:    vmovaps 128(%rdx), %ymm3
12805 ; AVX2-FCP-NEXT:    vmovaps 128(%rcx), %ymm4
12806 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm5 = ymm3[0],ymm4[0],ymm3[1],ymm4[1],ymm3[4],ymm4[4],ymm3[5],ymm4[5]
12807 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm6 = ymm5[2,2,2,2]
12808 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm6[2,3]
12809 ; AVX2-FCP-NEXT:    vmovaps 128(%r8), %ymm6
12810 ; AVX2-FCP-NEXT:    vmovaps 128(%r9), %ymm7
12811 ; AVX2-FCP-NEXT:    vmovaps 128(%r10), %ymm8
12812 ; AVX2-FCP-NEXT:    vmovaps 128(%rax), %ymm9
12813 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm10 = ymm8[0],ymm9[0],ymm8[1],ymm9[1],ymm8[4],ymm9[4],ymm8[5],ymm9[5]
12814 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm11 = ymm6[0],ymm7[0],ymm6[1],ymm7[1],ymm6[4],ymm7[4],ymm6[5],ymm7[5]
12815 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm11 = ymm11[0],ymm10[0],ymm11[2],ymm10[2]
12816 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm11[4,5,6,7]
12817 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12818 ; AVX2-FCP-NEXT:    vbroadcastss 148(%r8), %ymm2
12819 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm7[5],ymm2[6,7]
12820 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm10[6,7]
12821 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm5, %xmm5
12822 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm10 = ymm0[1,1,1,1,5,5,5,5]
12823 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0],ymm1[1],ymm10[2,3,4],ymm1[5],ymm10[6,7]
12824 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm10, %xmm10
12825 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm5 = xmm10[0,1],xmm5[2,3]
12826 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3],ymm2[4,5,6,7]
12827 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12828 ; AVX2-FCP-NEXT:    vbroadcastss 152(%rax), %ymm2
12829 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm8[0,1,2,3,4,5,6],ymm2[7]
12830 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm5 = ymm6[2],ymm7[2],ymm6[3],ymm7[3],ymm6[6],ymm7[6],ymm6[7],ymm7[7]
12831 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm0 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
12832 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm3[2],ymm4[2],ymm3[3],ymm4[3],ymm3[6],ymm4[6],ymm3[7],ymm4[7]
12833 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm0, %xmm3
12834 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm4 = ymm1[2,2,2,2]
12835 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm4[2,3]
12836 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3,4,5],ymm2[6,7]
12837 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
12838 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12839 ; AVX2-FCP-NEXT:    vbroadcastss 156(%r10), %ymm2
12840 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm2[2],ymm9[2],ymm2[3],ymm9[3],ymm2[6],ymm9[6],ymm2[7],ymm9[7]
12841 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm5[1],ymm2[1],ymm5[3],ymm2[3]
12842 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm1, %xmm1
12843 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]
12844 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm0, %xmm0
12845 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
12846 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
12847 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12848 ; AVX2-FCP-NEXT:    vmovaps 160(%rdi), %ymm0
12849 ; AVX2-FCP-NEXT:    vmovaps 160(%rsi), %ymm1
12850 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm2 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]
12851 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm2, %xmm2
12852 ; AVX2-FCP-NEXT:    vmovaps 160(%rdx), %ymm3
12853 ; AVX2-FCP-NEXT:    vmovaps 160(%rcx), %ymm4
12854 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm5 = ymm3[0],ymm4[0],ymm3[1],ymm4[1],ymm3[4],ymm4[4],ymm3[5],ymm4[5]
12855 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm6 = ymm5[2,2,2,2]
12856 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm6[2,3]
12857 ; AVX2-FCP-NEXT:    vmovaps 160(%r8), %ymm6
12858 ; AVX2-FCP-NEXT:    vmovaps 160(%r9), %ymm7
12859 ; AVX2-FCP-NEXT:    vmovaps 160(%r10), %ymm8
12860 ; AVX2-FCP-NEXT:    vmovaps 160(%rax), %ymm9
12861 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm10 = ymm8[0],ymm9[0],ymm8[1],ymm9[1],ymm8[4],ymm9[4],ymm8[5],ymm9[5]
12862 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm11 = ymm6[0],ymm7[0],ymm6[1],ymm7[1],ymm6[4],ymm7[4],ymm6[5],ymm7[5]
12863 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm11 = ymm11[0],ymm10[0],ymm11[2],ymm10[2]
12864 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm11[4,5,6,7]
12865 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12866 ; AVX2-FCP-NEXT:    vbroadcastss 180(%r8), %ymm2
12867 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm7[5],ymm2[6,7]
12868 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm10[6,7]
12869 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm5, %xmm5
12870 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm10 = ymm0[1,1,1,1,5,5,5,5]
12871 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0],ymm1[1],ymm10[2,3,4],ymm1[5],ymm10[6,7]
12872 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm10, %xmm10
12873 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm5 = xmm10[0,1],xmm5[2,3]
12874 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3],ymm2[4,5,6,7]
12875 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12876 ; AVX2-FCP-NEXT:    vbroadcastss 184(%rax), %ymm2
12877 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm8[0,1,2,3,4,5,6],ymm2[7]
12878 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm5 = ymm6[2],ymm7[2],ymm6[3],ymm7[3],ymm6[6],ymm7[6],ymm6[7],ymm7[7]
12879 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm0 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
12880 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm3[2],ymm4[2],ymm3[3],ymm4[3],ymm3[6],ymm4[6],ymm3[7],ymm4[7]
12881 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm0, %xmm3
12882 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm4 = ymm1[2,2,2,2]
12883 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm4[2,3]
12884 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3,4,5],ymm2[6,7]
12885 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
12886 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12887 ; AVX2-FCP-NEXT:    vbroadcastss 188(%r10), %ymm2
12888 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm2[2],ymm9[2],ymm2[3],ymm9[3],ymm2[6],ymm9[6],ymm2[7],ymm9[7]
12889 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm5[1],ymm2[1],ymm5[3],ymm2[3]
12890 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm1, %xmm1
12891 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]
12892 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm0, %xmm0
12893 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
12894 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
12895 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12896 ; AVX2-FCP-NEXT:    vmovaps 192(%rdi), %ymm0
12897 ; AVX2-FCP-NEXT:    vmovaps 192(%rsi), %ymm1
12898 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm2 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]
12899 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm2, %xmm2
12900 ; AVX2-FCP-NEXT:    vmovaps 192(%rdx), %ymm3
12901 ; AVX2-FCP-NEXT:    vmovaps 192(%rcx), %ymm4
12902 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm5 = ymm3[0],ymm4[0],ymm3[1],ymm4[1],ymm3[4],ymm4[4],ymm3[5],ymm4[5]
12903 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm6 = ymm5[2,2,2,2]
12904 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm6[2,3]
12905 ; AVX2-FCP-NEXT:    vmovaps 192(%r8), %ymm6
12906 ; AVX2-FCP-NEXT:    vmovaps 192(%r9), %ymm7
12907 ; AVX2-FCP-NEXT:    vmovaps 192(%r10), %ymm8
12908 ; AVX2-FCP-NEXT:    vmovaps 192(%rax), %ymm9
12909 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm10 = ymm8[0],ymm9[0],ymm8[1],ymm9[1],ymm8[4],ymm9[4],ymm8[5],ymm9[5]
12910 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm11 = ymm6[0],ymm7[0],ymm6[1],ymm7[1],ymm6[4],ymm7[4],ymm6[5],ymm7[5]
12911 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm11 = ymm11[0],ymm10[0],ymm11[2],ymm10[2]
12912 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm11[4,5,6,7]
12913 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12914 ; AVX2-FCP-NEXT:    vbroadcastss 212(%r8), %ymm2
12915 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm7[5],ymm2[6,7]
12916 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm10[6,7]
12917 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm5, %xmm5
12918 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm10 = ymm0[1,1,1,1,5,5,5,5]
12919 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0],ymm1[1],ymm10[2,3,4],ymm1[5],ymm10[6,7]
12920 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm10, %xmm10
12921 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm5 = xmm10[0,1],xmm5[2,3]
12922 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3],ymm2[4,5,6,7]
12923 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12924 ; AVX2-FCP-NEXT:    vbroadcastss 216(%rax), %ymm2
12925 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm8[0,1,2,3,4,5,6],ymm2[7]
12926 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm5 = ymm6[2],ymm7[2],ymm6[3],ymm7[3],ymm6[6],ymm7[6],ymm6[7],ymm7[7]
12927 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm0 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
12928 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm3[2],ymm4[2],ymm3[3],ymm4[3],ymm3[6],ymm4[6],ymm3[7],ymm4[7]
12929 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm0, %xmm3
12930 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm4 = ymm1[2,2,2,2]
12931 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm4[2,3]
12932 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3,4,5],ymm2[6,7]
12933 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
12934 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12935 ; AVX2-FCP-NEXT:    vbroadcastss 220(%r10), %ymm2
12936 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm2[2],ymm9[2],ymm2[3],ymm9[3],ymm2[6],ymm9[6],ymm2[7],ymm9[7]
12937 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm5[1],ymm2[1],ymm5[3],ymm2[3]
12938 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm1, %xmm1
12939 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]
12940 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm0, %xmm0
12941 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
12942 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
12943 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12944 ; AVX2-FCP-NEXT:    vmovaps 224(%rdi), %ymm0
12945 ; AVX2-FCP-NEXT:    vmovaps 224(%rsi), %ymm1
12946 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm2 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]
12947 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm2, %xmm2
12948 ; AVX2-FCP-NEXT:    vmovaps 224(%rdx), %ymm3
12949 ; AVX2-FCP-NEXT:    vmovaps 224(%rcx), %ymm4
12950 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm5 = ymm3[0],ymm4[0],ymm3[1],ymm4[1],ymm3[4],ymm4[4],ymm3[5],ymm4[5]
12951 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm6 = ymm5[2,2,2,2]
12952 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm6[2,3]
12953 ; AVX2-FCP-NEXT:    vmovaps 224(%r8), %ymm6
12954 ; AVX2-FCP-NEXT:    vmovaps 224(%r9), %ymm7
12955 ; AVX2-FCP-NEXT:    vmovaps 224(%r10), %ymm8
12956 ; AVX2-FCP-NEXT:    vmovaps 224(%rax), %ymm9
12957 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm10 = ymm8[0],ymm9[0],ymm8[1],ymm9[1],ymm8[4],ymm9[4],ymm8[5],ymm9[5]
12958 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm11 = ymm6[0],ymm7[0],ymm6[1],ymm7[1],ymm6[4],ymm7[4],ymm6[5],ymm7[5]
12959 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm11 = ymm11[0],ymm10[0],ymm11[2],ymm10[2]
12960 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm11[4,5,6,7]
12961 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12962 ; AVX2-FCP-NEXT:    vbroadcastss 244(%r8), %ymm2
12963 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm7[5],ymm2[6,7]
12964 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm10[6,7]
12965 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm5, %xmm5
12966 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm10 = ymm0[1,1,1,1,5,5,5,5]
12967 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0],ymm1[1],ymm10[2,3,4],ymm1[5],ymm10[6,7]
12968 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm10, %xmm10
12969 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm5 = xmm10[0,1],xmm5[2,3]
12970 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3],ymm2[4,5,6,7]
12971 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12972 ; AVX2-FCP-NEXT:    vbroadcastss 248(%rax), %ymm2
12973 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm8[0,1,2,3,4,5,6],ymm2[7]
12974 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm5 = ymm6[2],ymm7[2],ymm6[3],ymm7[3],ymm6[6],ymm7[6],ymm6[7],ymm7[7]
12975 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm0 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
12976 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm3[2],ymm4[2],ymm3[3],ymm4[3],ymm3[6],ymm4[6],ymm3[7],ymm4[7]
12977 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm0, %xmm3
12978 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm4 = ymm1[2,2,2,2]
12979 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm4[2,3]
12980 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3,4,5],ymm2[6,7]
12981 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
12982 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12983 ; AVX2-FCP-NEXT:    vbroadcastss 252(%r10), %ymm2
12984 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm2[2],ymm9[2],ymm2[3],ymm9[3],ymm2[6],ymm9[6],ymm2[7],ymm9[7]
12985 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm5[1],ymm2[1],ymm5[3],ymm2[3]
12986 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm1, %xmm1
12987 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]
12988 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm0, %xmm0
12989 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
12990 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
12991 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12992 ; AVX2-FCP-NEXT:    vmovaps (%rcx), %xmm0
12993 ; AVX2-FCP-NEXT:    vbroadcastss %xmm0, %xmm2
12994 ; AVX2-FCP-NEXT:    vmovaps (%rdx), %xmm1
12995 ; AVX2-FCP-NEXT:    vbroadcastss %xmm1, %xmm3
12996 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
12997 ; AVX2-FCP-NEXT:    vmovaps (%rsi), %xmm4
12998 ; AVX2-FCP-NEXT:    vmovaps (%rdi), %xmm5
12999 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
13000 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1],xmm2[2,3]
13001 ; AVX2-FCP-NEXT:    vmovaps (%rax), %xmm2
13002 ; AVX2-FCP-NEXT:    vbroadcastss %xmm2, %xmm7
13003 ; AVX2-FCP-NEXT:    vmovaps (%r10), %xmm3
13004 ; AVX2-FCP-NEXT:    vbroadcastss %xmm3, %xmm8
13005 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm8[0],xmm7[0],xmm8[1],xmm7[1]
13006 ; AVX2-FCP-NEXT:    vmovaps (%r9), %xmm8
13007 ; AVX2-FCP-NEXT:    vmovaps (%r8), %xmm9
13008 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm10 = xmm9[0],xmm8[0],xmm9[1],xmm8[1]
13009 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
13010 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
13011 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
13012 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
13013 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13014 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm6 = xmm5[1,1,1,1]
13015 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0],xmm4[1],xmm6[2,3]
13016 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
13017 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0,1],xmm7[2,3]
13018 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
13019 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
13020 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm10 = xmm9[1,1,1,1]
13021 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0],xmm8[1],xmm10[2,3]
13022 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
13023 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
13024 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
13025 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13026 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
13027 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm9[2],xmm8[2],xmm9[3],xmm8[3]
13028 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm6 = xmm2[2,2,2,2]
13029 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1,2],xmm6[3]
13030 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
13031 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm7
13032 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3,4,5],ymm6[6,7]
13033 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm7 = xmm0[2,2,2,2]
13034 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm7 = xmm1[0,1,2],xmm7[3]
13035 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm7 = xmm4[0,1],xmm7[2,3]
13036 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]
13037 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13038 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
13039 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm4[1],xmm0[1]
13040 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm3[2],xmm2[2],xmm3[3],xmm2[3]
13041 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
13042 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm2 = xmm5[2,3,2,3]
13043 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
13044 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
13045 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
13046 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13047 ; AVX2-FCP-NEXT:    vmovaps 32(%rcx), %xmm0
13048 ; AVX2-FCP-NEXT:    vmovaps 32(%rdx), %xmm1
13049 ; AVX2-FCP-NEXT:    vbroadcastss %xmm0, %xmm2
13050 ; AVX2-FCP-NEXT:    vbroadcastss %xmm1, %xmm3
13051 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
13052 ; AVX2-FCP-NEXT:    vmovaps 32(%rsi), %xmm4
13053 ; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %xmm5
13054 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
13055 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1],xmm2[2,3]
13056 ; AVX2-FCP-NEXT:    vmovaps 32(%r10), %xmm2
13057 ; AVX2-FCP-NEXT:    vmovaps 32(%rax), %xmm3
13058 ; AVX2-FCP-NEXT:    vbroadcastss %xmm3, %xmm7
13059 ; AVX2-FCP-NEXT:    vbroadcastss %xmm2, %xmm8
13060 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm8[0],xmm7[0],xmm8[1],xmm7[1]
13061 ; AVX2-FCP-NEXT:    vmovaps 32(%r9), %xmm8
13062 ; AVX2-FCP-NEXT:    vmovaps 32(%r8), %xmm9
13063 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm10 = xmm9[0],xmm8[0],xmm9[1],xmm8[1]
13064 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
13065 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
13066 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
13067 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
13068 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13069 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm6 = xmm5[1,1,1,1]
13070 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0],xmm4[1],xmm6[2,3]
13071 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
13072 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0,1],xmm7[2,3]
13073 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]
13074 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
13075 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm10 = xmm9[1,1,1,1]
13076 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0],xmm8[1],xmm10[2,3]
13077 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
13078 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
13079 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
13080 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13081 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
13082 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm9[2],xmm8[2],xmm9[3],xmm8[3]
13083 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm6 = xmm3[2,2,2,2]
13084 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm6 = xmm2[0,1,2],xmm6[3]
13085 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
13086 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm7
13087 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3,4,5],ymm6[6,7]
13088 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm7 = xmm0[2,2,2,2]
13089 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm7 = xmm1[0,1,2],xmm7[3]
13090 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm7 = xmm4[0,1],xmm7[2,3]
13091 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]
13092 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13093 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
13094 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm4[1],xmm0[1]
13095 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm2[2],xmm3[2],xmm2[3],xmm3[3]
13096 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
13097 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm2 = xmm5[2,3,2,3]
13098 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
13099 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
13100 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
13101 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13102 ; AVX2-FCP-NEXT:    vmovaps 64(%rcx), %xmm0
13103 ; AVX2-FCP-NEXT:    vmovaps 64(%rdx), %xmm1
13104 ; AVX2-FCP-NEXT:    vbroadcastss %xmm0, %xmm2
13105 ; AVX2-FCP-NEXT:    vbroadcastss %xmm1, %xmm3
13106 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
13107 ; AVX2-FCP-NEXT:    vmovaps 64(%rsi), %xmm4
13108 ; AVX2-FCP-NEXT:    vmovaps 64(%rdi), %xmm5
13109 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
13110 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1],xmm2[2,3]
13111 ; AVX2-FCP-NEXT:    vmovaps 64(%r10), %xmm2
13112 ; AVX2-FCP-NEXT:    vmovaps 64(%rax), %xmm3
13113 ; AVX2-FCP-NEXT:    vbroadcastss %xmm3, %xmm7
13114 ; AVX2-FCP-NEXT:    vbroadcastss %xmm2, %xmm8
13115 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm8[0],xmm7[0],xmm8[1],xmm7[1]
13116 ; AVX2-FCP-NEXT:    vmovaps 64(%r9), %xmm8
13117 ; AVX2-FCP-NEXT:    vmovaps 64(%r8), %xmm9
13118 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm10 = xmm9[0],xmm8[0],xmm9[1],xmm8[1]
13119 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
13120 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
13121 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
13122 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
13123 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13124 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm6 = xmm5[1,1,1,1]
13125 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0],xmm4[1],xmm6[2,3]
13126 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
13127 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0,1],xmm7[2,3]
13128 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]
13129 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
13130 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm10 = xmm9[1,1,1,1]
13131 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0],xmm8[1],xmm10[2,3]
13132 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
13133 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
13134 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
13135 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13136 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
13137 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm9[2],xmm8[2],xmm9[3],xmm8[3]
13138 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm6 = xmm3[2,2,2,2]
13139 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm6 = xmm2[0,1,2],xmm6[3]
13140 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
13141 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm7
13142 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3,4,5],ymm6[6,7]
13143 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm7 = xmm0[2,2,2,2]
13144 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm7 = xmm1[0,1,2],xmm7[3]
13145 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm7 = xmm4[0,1],xmm7[2,3]
13146 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]
13147 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13148 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
13149 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm4[1],xmm0[1]
13150 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm2[2],xmm3[2],xmm2[3],xmm3[3]
13151 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
13152 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm2 = xmm5[2,3,2,3]
13153 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
13154 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
13155 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
13156 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13157 ; AVX2-FCP-NEXT:    vmovaps 96(%rcx), %xmm0
13158 ; AVX2-FCP-NEXT:    vbroadcastss %xmm0, %xmm2
13159 ; AVX2-FCP-NEXT:    vmovaps 96(%rdx), %xmm1
13160 ; AVX2-FCP-NEXT:    vbroadcastss %xmm1, %xmm3
13161 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
13162 ; AVX2-FCP-NEXT:    vmovaps 96(%rsi), %xmm4
13163 ; AVX2-FCP-NEXT:    vmovaps 96(%rdi), %xmm5
13164 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
13165 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1],xmm2[2,3]
13166 ; AVX2-FCP-NEXT:    vmovaps 96(%rax), %xmm2
13167 ; AVX2-FCP-NEXT:    vbroadcastss %xmm2, %xmm7
13168 ; AVX2-FCP-NEXT:    vmovaps 96(%r10), %xmm3
13169 ; AVX2-FCP-NEXT:    vbroadcastss %xmm3, %xmm8
13170 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm8[0],xmm7[0],xmm8[1],xmm7[1]
13171 ; AVX2-FCP-NEXT:    vmovaps 96(%r9), %xmm8
13172 ; AVX2-FCP-NEXT:    vmovaps 96(%r8), %xmm9
13173 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm10 = xmm9[0],xmm8[0],xmm9[1],xmm8[1]
13174 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
13175 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
13176 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
13177 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
13178 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13179 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm6 = xmm5[1,1,1,1]
13180 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0],xmm4[1],xmm6[2,3]
13181 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
13182 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0,1],xmm7[2,3]
13183 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
13184 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
13185 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm10 = xmm9[1,1,1,1]
13186 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0],xmm8[1],xmm10[2,3]
13187 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
13188 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
13189 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
13190 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13191 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
13192 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm9[2],xmm8[2],xmm9[3],xmm8[3]
13193 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm6 = xmm2[2,2,2,2]
13194 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1,2],xmm6[3]
13195 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
13196 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm7
13197 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3,4,5],ymm6[6,7]
13198 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm7 = xmm0[2,2,2,2]
13199 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm7 = xmm1[0,1,2],xmm7[3]
13200 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm7 = xmm4[0,1],xmm7[2,3]
13201 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]
13202 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13203 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
13204 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm4[1],xmm0[1]
13205 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm3[2],xmm2[2],xmm3[3],xmm2[3]
13206 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
13207 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm2 = xmm5[2,3,2,3]
13208 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
13209 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
13210 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
13211 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13212 ; AVX2-FCP-NEXT:    vmovaps 128(%rcx), %xmm0
13213 ; AVX2-FCP-NEXT:    vbroadcastss %xmm0, %xmm2
13214 ; AVX2-FCP-NEXT:    vmovaps 128(%rdx), %xmm1
13215 ; AVX2-FCP-NEXT:    vbroadcastss %xmm1, %xmm3
13216 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
13217 ; AVX2-FCP-NEXT:    vmovaps 128(%rsi), %xmm4
13218 ; AVX2-FCP-NEXT:    vmovaps 128(%rdi), %xmm5
13219 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
13220 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1],xmm2[2,3]
13221 ; AVX2-FCP-NEXT:    vmovaps 128(%rax), %xmm2
13222 ; AVX2-FCP-NEXT:    vbroadcastss %xmm2, %xmm7
13223 ; AVX2-FCP-NEXT:    vmovaps 128(%r10), %xmm3
13224 ; AVX2-FCP-NEXT:    vbroadcastss %xmm3, %xmm8
13225 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm8[0],xmm7[0],xmm8[1],xmm7[1]
13226 ; AVX2-FCP-NEXT:    vmovaps 128(%r9), %xmm8
13227 ; AVX2-FCP-NEXT:    vmovaps 128(%r8), %xmm9
13228 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm10 = xmm9[0],xmm8[0],xmm9[1],xmm8[1]
13229 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
13230 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
13231 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
13232 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
13233 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13234 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm6 = xmm5[1,1,1,1]
13235 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0],xmm4[1],xmm6[2,3]
13236 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
13237 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0,1],xmm7[2,3]
13238 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
13239 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
13240 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm10 = xmm9[1,1,1,1]
13241 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0],xmm8[1],xmm10[2,3]
13242 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
13243 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
13244 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
13245 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13246 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
13247 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm9[2],xmm8[2],xmm9[3],xmm8[3]
13248 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm6 = xmm2[2,2,2,2]
13249 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1,2],xmm6[3]
13250 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
13251 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm7
13252 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3,4,5],ymm6[6,7]
13253 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm7 = xmm0[2,2,2,2]
13254 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm7 = xmm1[0,1,2],xmm7[3]
13255 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm7 = xmm4[0,1],xmm7[2,3]
13256 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]
13257 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13258 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
13259 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm4[1],xmm0[1]
13260 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm3[2],xmm2[2],xmm3[3],xmm2[3]
13261 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
13262 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm2 = xmm5[2,3,2,3]
13263 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
13264 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
13265 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
13266 ; AVX2-FCP-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
13267 ; AVX2-FCP-NEXT:    vmovaps 160(%rcx), %xmm0
13268 ; AVX2-FCP-NEXT:    vbroadcastss %xmm0, %xmm2
13269 ; AVX2-FCP-NEXT:    vmovaps 160(%rdx), %xmm1
13270 ; AVX2-FCP-NEXT:    vbroadcastss %xmm1, %xmm3
13271 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
13272 ; AVX2-FCP-NEXT:    vmovaps 160(%rsi), %xmm4
13273 ; AVX2-FCP-NEXT:    vmovaps 160(%rdi), %xmm5
13274 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
13275 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1],xmm2[2,3]
13276 ; AVX2-FCP-NEXT:    vmovaps 160(%rax), %xmm2
13277 ; AVX2-FCP-NEXT:    vbroadcastss %xmm2, %xmm7
13278 ; AVX2-FCP-NEXT:    vmovaps 160(%r10), %xmm3
13279 ; AVX2-FCP-NEXT:    vbroadcastss %xmm3, %xmm8
13280 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm8[0],xmm7[0],xmm8[1],xmm7[1]
13281 ; AVX2-FCP-NEXT:    vmovaps 160(%r9), %xmm8
13282 ; AVX2-FCP-NEXT:    vmovaps 160(%r8), %xmm9
13283 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm10 = xmm9[0],xmm8[0],xmm9[1],xmm8[1]
13284 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
13285 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
13286 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
13287 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
13288 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13289 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm6 = xmm5[1,1,1,1]
13290 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0],xmm4[1],xmm6[2,3]
13291 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
13292 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0,1],xmm7[2,3]
13293 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
13294 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
13295 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm10 = xmm9[1,1,1,1]
13296 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0],xmm8[1],xmm10[2,3]
13297 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
13298 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
13299 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
13300 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13301 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
13302 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm9[2],xmm8[2],xmm9[3],xmm8[3]
13303 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm6 = xmm2[2,2,2,2]
13304 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1,2],xmm6[3]
13305 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
13306 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm7
13307 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3,4,5],ymm6[6,7]
13308 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm7 = xmm0[2,2,2,2]
13309 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm7 = xmm1[0,1,2],xmm7[3]
13310 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm7 = xmm4[0,1],xmm7[2,3]
13311 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]
13312 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13313 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
13314 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm4[1],xmm0[1]
13315 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm3[2],xmm2[2],xmm3[3],xmm2[3]
13316 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
13317 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm2 = xmm5[2,3,2,3]
13318 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
13319 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
13320 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
13321 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13322 ; AVX2-FCP-NEXT:    vmovaps 192(%rcx), %xmm0
13323 ; AVX2-FCP-NEXT:    vbroadcastss %xmm0, %xmm2
13324 ; AVX2-FCP-NEXT:    vmovaps 192(%rdx), %xmm1
13325 ; AVX2-FCP-NEXT:    vbroadcastss %xmm1, %xmm3
13326 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
13327 ; AVX2-FCP-NEXT:    vmovaps 192(%rsi), %xmm4
13328 ; AVX2-FCP-NEXT:    vmovaps 192(%rdi), %xmm5
13329 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
13330 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm9 = xmm3[0,1],xmm2[2,3]
13331 ; AVX2-FCP-NEXT:    vmovaps 192(%rax), %xmm2
13332 ; AVX2-FCP-NEXT:    vbroadcastss %xmm2, %xmm7
13333 ; AVX2-FCP-NEXT:    vmovaps 192(%r10), %xmm3
13334 ; AVX2-FCP-NEXT:    vbroadcastss %xmm3, %xmm8
13335 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm8[0],xmm7[0],xmm8[1],xmm7[1]
13336 ; AVX2-FCP-NEXT:    vmovaps 192(%r9), %xmm8
13337 ; AVX2-FCP-NEXT:    vmovaps 192(%r8), %xmm6
13338 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm10 = xmm6[0],xmm8[0],xmm6[1],xmm8[1]
13339 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
13340 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
13341 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1,2,3,4,5],ymm7[6,7]
13342 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm11 = ymm9[0,1,2,3],ymm7[4,5,6,7]
13343 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm7 = xmm5[1,1,1,1]
13344 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0],xmm4[1],xmm7[2,3]
13345 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm9 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
13346 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0,1],xmm9[2,3]
13347 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm9 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
13348 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm9, %ymm0, %ymm9
13349 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm15 = xmm6[1,1,1,1]
13350 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm15 = xmm15[0],xmm8[1],xmm15[2,3]
13351 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm15
13352 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm9 = ymm15[0,1,2,3,4,5],ymm9[6,7]
13353 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm10 = ymm7[0,1,2,3],ymm9[4,5,6,7]
13354 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
13355 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm6[2],xmm8[2],xmm6[3],xmm8[3]
13356 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm6 = xmm2[2,2,2,2]
13357 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1,2],xmm6[3]
13358 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
13359 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm7
13360 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3,4,5],ymm6[6,7]
13361 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm7 = xmm0[2,2,2,2]
13362 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm7 = xmm1[0,1,2],xmm7[3]
13363 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm7 = xmm4[0,1],xmm7[2,3]
13364 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm9 = ymm7[0,1,2,3],ymm6[4,5,6,7]
13365 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
13366 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm4[1],xmm0[1]
13367 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm3[2],xmm2[2],xmm3[3],xmm2[3]
13368 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
13369 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm2 = xmm5[2,3,2,3]
13370 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
13371 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
13372 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm8 = ymm0[0,1,2,3],ymm1[4,5,6,7]
13373 ; AVX2-FCP-NEXT:    vmovaps 224(%rcx), %xmm6
13374 ; AVX2-FCP-NEXT:    vbroadcastss %xmm6, %xmm0
13375 ; AVX2-FCP-NEXT:    vmovaps 224(%rdx), %xmm5
13376 ; AVX2-FCP-NEXT:    vbroadcastss %xmm5, %xmm1
13377 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
13378 ; AVX2-FCP-NEXT:    vmovaps 224(%rsi), %xmm4
13379 ; AVX2-FCP-NEXT:    vmovaps 224(%rdi), %xmm2
13380 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm2[0],xmm4[0],xmm2[1],xmm4[1]
13381 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm7 = xmm3[0,1],xmm1[2,3]
13382 ; AVX2-FCP-NEXT:    vmovaps 224(%rax), %xmm3
13383 ; AVX2-FCP-NEXT:    vmovaps 224(%r10), %xmm1
13384 ; AVX2-FCP-NEXT:    vbroadcastss %xmm3, %xmm15
13385 ; AVX2-FCP-NEXT:    vbroadcastss %xmm1, %xmm14
13386 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm14 = xmm14[0],xmm15[0],xmm14[1],xmm15[1]
13387 ; AVX2-FCP-NEXT:    vmovaps 224(%r9), %xmm15
13388 ; AVX2-FCP-NEXT:    vmovaps 224(%r8), %xmm0
13389 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm13 = xmm0[0],xmm15[0],xmm0[1],xmm15[1]
13390 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm13, %ymm0, %ymm13
13391 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm14, %ymm0, %ymm14
13392 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1,2,3,4,5],ymm14[6,7]
13393 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm14 = ymm7[0,1,2,3],ymm13[4,5,6,7]
13394 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm7 = xmm2[1,1,1,1]
13395 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0],xmm4[1],xmm7[2,3]
13396 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm13 = xmm5[0],xmm6[0],xmm5[1],xmm6[1]
13397 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0,1],xmm13[2,3]
13398 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm13 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
13399 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm13, %ymm0, %ymm13
13400 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm12 = xmm0[1,1,1,1]
13401 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm12 = xmm12[0],xmm15[1],xmm12[2,3]
13402 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm12
13403 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3,4,5],ymm13[6,7]
13404 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3],ymm12[4,5,6,7]
13405 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm2[2],xmm4[2],xmm2[3],xmm4[3]
13406 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm0[2],xmm15[2],xmm0[3],xmm15[3]
13407 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm4 = xmm3[2,2,2,2]
13408 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm4 = xmm1[0,1,2],xmm4[3]
13409 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
13410 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm12
13411 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm12[0,1,2,3,4,5],ymm4[6,7]
13412 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm12 = xmm6[2,2,2,2]
13413 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm12 = xmm5[0,1,2],xmm12[3]
13414 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm12 = xmm2[0,1],xmm12[2,3]
13415 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm12[0,1,2,3],ymm4[4,5,6,7]
13416 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm5[2],xmm6[2],xmm5[3],xmm6[3]
13417 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm2 = xmm2[1],xmm5[1]
13418 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm1[2],xmm3[2],xmm1[3],xmm3[3]
13419 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
13420 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[2,3,2,3]
13421 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
13422 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
13423 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
13424 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
13425 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1888(%rax)
13426 ; AVX2-FCP-NEXT:    vmovaps %ymm4, 1856(%rax)
13427 ; AVX2-FCP-NEXT:    vmovaps %ymm7, 1824(%rax)
13428 ; AVX2-FCP-NEXT:    vmovaps %ymm14, 1792(%rax)
13429 ; AVX2-FCP-NEXT:    vmovaps %ymm8, 1632(%rax)
13430 ; AVX2-FCP-NEXT:    vmovaps %ymm9, 1600(%rax)
13431 ; AVX2-FCP-NEXT:    vmovaps %ymm10, 1568(%rax)
13432 ; AVX2-FCP-NEXT:    vmovaps %ymm11, 1536(%rax)
13433 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13434 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1376(%rax)
13435 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13436 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1344(%rax)
13437 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13438 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1312(%rax)
13439 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13440 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1280(%rax)
13441 ; AVX2-FCP-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
13442 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1120(%rax)
13443 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13444 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1088(%rax)
13445 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13446 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1056(%rax)
13447 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13448 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1024(%rax)
13449 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13450 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 864(%rax)
13451 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13452 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 832(%rax)
13453 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13454 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 800(%rax)
13455 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13456 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 768(%rax)
13457 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13458 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 608(%rax)
13459 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13460 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 576(%rax)
13461 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13462 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 544(%rax)
13463 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13464 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 512(%rax)
13465 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13466 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 352(%rax)
13467 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13468 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 320(%rax)
13469 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13470 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 288(%rax)
13471 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13472 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 256(%rax)
13473 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13474 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 96(%rax)
13475 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13476 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 64(%rax)
13477 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13478 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 32(%rax)
13479 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13480 ; AVX2-FCP-NEXT:    vmovaps %ymm0, (%rax)
13481 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13482 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2016(%rax)
13483 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13484 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1984(%rax)
13485 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13486 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1952(%rax)
13487 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13488 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1920(%rax)
13489 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13490 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1760(%rax)
13491 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13492 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1728(%rax)
13493 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13494 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1696(%rax)
13495 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13496 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1664(%rax)
13497 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13498 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1504(%rax)
13499 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13500 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1472(%rax)
13501 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13502 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1440(%rax)
13503 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13504 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1408(%rax)
13505 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13506 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1248(%rax)
13507 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13508 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1216(%rax)
13509 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13510 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1184(%rax)
13511 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13512 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1152(%rax)
13513 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13514 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 992(%rax)
13515 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13516 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 960(%rax)
13517 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13518 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 928(%rax)
13519 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13520 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 896(%rax)
13521 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13522 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 736(%rax)
13523 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13524 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 704(%rax)
13525 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13526 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 672(%rax)
13527 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13528 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 640(%rax)
13529 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13530 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 480(%rax)
13531 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13532 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 448(%rax)
13533 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13534 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 416(%rax)
13535 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13536 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 384(%rax)
13537 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13538 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 224(%rax)
13539 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13540 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 192(%rax)
13541 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13542 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 160(%rax)
13543 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13544 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 128(%rax)
13545 ; AVX2-FCP-NEXT:    addq $1672, %rsp # imm = 0x688
13546 ; AVX2-FCP-NEXT:    vzeroupper
13547 ; AVX2-FCP-NEXT:    retq
13549 ; AVX512-LABEL: store_i32_stride8_vf64:
13550 ; AVX512:       # %bb.0:
13551 ; AVX512-NEXT:    subq $6216, %rsp # imm = 0x1848
13552 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax
13553 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %r10
13554 ; AVX512-NEXT:    vmovdqa64 (%r10), %zmm5
13555 ; AVX512-NEXT:    vmovdqa64 64(%r10), %zmm4
13556 ; AVX512-NEXT:    vmovdqa64 128(%r10), %zmm2
13557 ; AVX512-NEXT:    vmovdqa64 (%rax), %zmm1
13558 ; AVX512-NEXT:    vmovdqa64 64(%rax), %zmm0
13559 ; AVX512-NEXT:    vmovdqa64 128(%rax), %zmm30
13560 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,0,0,0,0,0,0,16,0,0,0,0,0,0,1,17]
13561 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm7
13562 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm6
13563 ; AVX512-NEXT:    vpermt2d %zmm1, %zmm3, %zmm7
13564 ; AVX512-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13565 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,0,0,0,0,0,2,18,0,0,0,0,0,0,3,19]
13566 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm7
13567 ; AVX512-NEXT:    vpermt2d %zmm1, %zmm5, %zmm6
13568 ; AVX512-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13569 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [0,0,0,0,0,0,4,20,0,0,0,0,0,0,5,21]
13570 ; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm8
13571 ; AVX512-NEXT:    vpermt2d %zmm1, %zmm6, %zmm8
13572 ; AVX512-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13573 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,0,0,0,0,0,6,22,0,0,0,0,0,0,7,23]
13574 ; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm9
13575 ; AVX512-NEXT:    vpermt2d %zmm1, %zmm8, %zmm9
13576 ; AVX512-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13577 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm9
13578 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,0,0,0,0,0,8,24,0,0,0,0,0,0,9,25]
13579 ; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm10
13580 ; AVX512-NEXT:    vpermt2d %zmm1, %zmm8, %zmm10
13581 ; AVX512-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13582 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm10
13583 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,0,0,0,0,0,10,26,0,0,0,0,0,0,11,27]
13584 ; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm11
13585 ; AVX512-NEXT:    vpermt2d %zmm1, %zmm8, %zmm11
13586 ; AVX512-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13587 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm11
13588 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,0,0,0,0,0,12,28,0,0,0,0,0,0,13,29]
13589 ; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm13
13590 ; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm12
13591 ; AVX512-NEXT:    vpermt2d %zmm1, %zmm8, %zmm13
13592 ; AVX512-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13593 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm7
13594 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,0,0,0,0,0,14,30,0,0,0,0,0,0,15,31]
13595 ; AVX512-NEXT:    vpermt2d %zmm1, %zmm8, %zmm12
13596 ; AVX512-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13597 ; AVX512-NEXT:    vmovdqa64 %zmm4, %zmm1
13598 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm3, %zmm1
13599 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13600 ; AVX512-NEXT:    vmovdqa64 %zmm4, %zmm1
13601 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm5, %zmm1
13602 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13603 ; AVX512-NEXT:    vmovdqa64 %zmm4, %zmm1
13604 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm6, %zmm1
13605 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13606 ; AVX512-NEXT:    vmovdqa64 %zmm4, %zmm1
13607 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm9, %zmm1
13608 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13609 ; AVX512-NEXT:    vmovdqa64 %zmm4, %zmm1
13610 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm10, %zmm1
13611 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13612 ; AVX512-NEXT:    vmovdqa64 %zmm4, %zmm1
13613 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm11, %zmm1
13614 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13615 ; AVX512-NEXT:    vmovdqa64 %zmm4, %zmm1
13616 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm7, %zmm1
13617 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13618 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm8, %zmm4
13619 ; AVX512-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13620 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm0
13621 ; AVX512-NEXT:    vpermt2d %zmm30, %zmm3, %zmm0
13622 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13623 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm0
13624 ; AVX512-NEXT:    vpermt2d %zmm30, %zmm5, %zmm0
13625 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13626 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm0
13627 ; AVX512-NEXT:    vpermt2d %zmm30, %zmm6, %zmm0
13628 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13629 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm0
13630 ; AVX512-NEXT:    vpermt2d %zmm30, %zmm9, %zmm0
13631 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13632 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm0
13633 ; AVX512-NEXT:    vpermt2d %zmm30, %zmm10, %zmm0
13634 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13635 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm0
13636 ; AVX512-NEXT:    vpermt2d %zmm30, %zmm11, %zmm0
13637 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13638 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm0
13639 ; AVX512-NEXT:    vpermt2d %zmm30, %zmm7, %zmm0
13640 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13641 ; AVX512-NEXT:    vpermt2d %zmm30, %zmm8, %zmm2
13642 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13643 ; AVX512-NEXT:    vmovdqa64 192(%r10), %zmm1
13644 ; AVX512-NEXT:    vmovdqa64 192(%rax), %zmm0
13645 ; AVX512-NEXT:    vpermi2d %zmm0, %zmm1, %zmm3
13646 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13647 ; AVX512-NEXT:    vpermi2d %zmm0, %zmm1, %zmm5
13648 ; AVX512-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13649 ; AVX512-NEXT:    vpermi2d %zmm0, %zmm1, %zmm6
13650 ; AVX512-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13651 ; AVX512-NEXT:    vpermi2d %zmm0, %zmm1, %zmm9
13652 ; AVX512-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13653 ; AVX512-NEXT:    vpermi2d %zmm0, %zmm1, %zmm10
13654 ; AVX512-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13655 ; AVX512-NEXT:    vpermi2d %zmm0, %zmm1, %zmm11
13656 ; AVX512-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13657 ; AVX512-NEXT:    vpermi2d %zmm0, %zmm1, %zmm7
13658 ; AVX512-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13659 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm8, %zmm1
13660 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13661 ; AVX512-NEXT:    vmovdqa64 (%r8), %zmm26
13662 ; AVX512-NEXT:    vmovdqa64 (%r9), %zmm0
13663 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,16,0,0,0,0,0,0,1,17,0,0]
13664 ; AVX512-NEXT:    vmovdqa64 %zmm26, %zmm2
13665 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm1, %zmm2
13666 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13667 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm2
13668 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,2,18,0,0,0,0,0,0,3,19,0,0]
13669 ; AVX512-NEXT:    vmovdqa64 %zmm26, %zmm3
13670 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm1, %zmm3
13671 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13672 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm3
13673 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,4,20,0,0,0,0,0,0,5,21,0,0]
13674 ; AVX512-NEXT:    vmovdqa64 %zmm26, %zmm4
13675 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm1, %zmm4
13676 ; AVX512-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13677 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm4
13678 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,6,22,0,0,0,0,0,0,7,23,0,0]
13679 ; AVX512-NEXT:    vmovdqa64 %zmm26, %zmm5
13680 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm1, %zmm5
13681 ; AVX512-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13682 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm5
13683 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,8,24,0,0,0,0,0,0,9,25,0,0]
13684 ; AVX512-NEXT:    vmovdqa64 %zmm26, %zmm6
13685 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm1, %zmm6
13686 ; AVX512-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13687 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm6
13688 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,10,26,0,0,0,0,0,0,11,27,0,0]
13689 ; AVX512-NEXT:    vmovdqa64 %zmm26, %zmm7
13690 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm1, %zmm7
13691 ; AVX512-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13692 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm7
13693 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,12,28,0,0,0,0,0,0,13,29,0,0]
13694 ; AVX512-NEXT:    vmovdqa64 %zmm26, %zmm8
13695 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm1, %zmm8
13696 ; AVX512-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13697 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm8
13698 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,14,30,0,0,0,0,0,0,15,31,0,0]
13699 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm1, %zmm26
13700 ; AVX512-NEXT:    vmovdqa64 64(%r8), %zmm25
13701 ; AVX512-NEXT:    vmovdqa64 64(%r9), %zmm0
13702 ; AVX512-NEXT:    vmovdqa64 %zmm25, %zmm9
13703 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm2, %zmm9
13704 ; AVX512-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13705 ; AVX512-NEXT:    vmovdqa64 %zmm25, %zmm9
13706 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm3, %zmm9
13707 ; AVX512-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13708 ; AVX512-NEXT:    vmovdqa64 %zmm25, %zmm9
13709 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm4, %zmm9
13710 ; AVX512-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13711 ; AVX512-NEXT:    vmovdqa64 %zmm25, %zmm9
13712 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm5, %zmm9
13713 ; AVX512-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13714 ; AVX512-NEXT:    vmovdqa64 %zmm25, %zmm9
13715 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm6, %zmm9
13716 ; AVX512-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13717 ; AVX512-NEXT:    vmovdqa64 %zmm25, %zmm9
13718 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm7, %zmm9
13719 ; AVX512-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13720 ; AVX512-NEXT:    vmovdqa64 %zmm25, %zmm9
13721 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm8, %zmm9
13722 ; AVX512-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13723 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm1, %zmm25
13724 ; AVX512-NEXT:    vmovdqa64 128(%r8), %zmm22
13725 ; AVX512-NEXT:    vmovdqa64 128(%r9), %zmm0
13726 ; AVX512-NEXT:    vmovdqa64 %zmm22, %zmm9
13727 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm2, %zmm9
13728 ; AVX512-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13729 ; AVX512-NEXT:    vmovdqa64 %zmm22, %zmm9
13730 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm3, %zmm9
13731 ; AVX512-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13732 ; AVX512-NEXT:    vmovdqa64 %zmm22, %zmm9
13733 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm4, %zmm9
13734 ; AVX512-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13735 ; AVX512-NEXT:    vmovdqa64 %zmm22, %zmm9
13736 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm5, %zmm9
13737 ; AVX512-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13738 ; AVX512-NEXT:    vmovdqa64 %zmm22, %zmm9
13739 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm6, %zmm9
13740 ; AVX512-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13741 ; AVX512-NEXT:    vmovdqa64 %zmm22, %zmm9
13742 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm7, %zmm9
13743 ; AVX512-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13744 ; AVX512-NEXT:    vmovdqa64 %zmm22, %zmm9
13745 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm8, %zmm9
13746 ; AVX512-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13747 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm1, %zmm22
13748 ; AVX512-NEXT:    vmovdqa64 192(%r8), %zmm27
13749 ; AVX512-NEXT:    vmovdqa64 192(%r9), %zmm0
13750 ; AVX512-NEXT:    vpermi2d %zmm0, %zmm27, %zmm2
13751 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13752 ; AVX512-NEXT:    vpermi2d %zmm0, %zmm27, %zmm3
13753 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13754 ; AVX512-NEXT:    vpermi2d %zmm0, %zmm27, %zmm4
13755 ; AVX512-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13756 ; AVX512-NEXT:    vpermi2d %zmm0, %zmm27, %zmm5
13757 ; AVX512-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13758 ; AVX512-NEXT:    vpermi2d %zmm0, %zmm27, %zmm6
13759 ; AVX512-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13760 ; AVX512-NEXT:    vpermi2d %zmm0, %zmm27, %zmm7
13761 ; AVX512-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13762 ; AVX512-NEXT:    vpermi2d %zmm0, %zmm27, %zmm8
13763 ; AVX512-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13764 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm1, %zmm27
13765 ; AVX512-NEXT:    vmovdqa64 (%rdx), %zmm8
13766 ; AVX512-NEXT:    vmovdqa64 (%rcx), %zmm0
13767 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,16,0,0,0,0,0,0,1,17,0,0,0,0]
13768 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm2
13769 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm1, %zmm2
13770 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13771 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm2
13772 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,2,18,0,0,0,0,0,0,3,19,0,0,0,0]
13773 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm3
13774 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm1, %zmm3
13775 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13776 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm3
13777 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,4,20,0,0,0,0,0,0,5,21,0,0,0,0]
13778 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm4
13779 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm1, %zmm4
13780 ; AVX512-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13781 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm4
13782 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,6,22,0,0,0,0,0,0,7,23,0,0,0,0]
13783 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm5
13784 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm1, %zmm5
13785 ; AVX512-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13786 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm5
13787 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,8,24,0,0,0,0,0,0,9,25,0,0,0,0]
13788 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm6
13789 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm1, %zmm6
13790 ; AVX512-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13791 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm7
13792 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,10,26,0,0,0,0,0,0,11,27,0,0,0,0]
13793 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm6
13794 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm1, %zmm6
13795 ; AVX512-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13796 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm9
13797 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,12,28,0,0,0,0,0,0,13,29,0,0,0,0]
13798 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm6
13799 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm1, %zmm6
13800 ; AVX512-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13801 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm10
13802 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,14,30,0,0,0,0,0,0,15,31,0,0,0,0]
13803 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm1, %zmm8
13804 ; AVX512-NEXT:    vmovdqa64 64(%rdx), %zmm6
13805 ; AVX512-NEXT:    vmovdqa64 64(%rcx), %zmm0
13806 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm11
13807 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm2, %zmm11
13808 ; AVX512-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13809 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm11
13810 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm3, %zmm11
13811 ; AVX512-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13812 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm11
13813 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm4, %zmm11
13814 ; AVX512-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13815 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm11
13816 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm5, %zmm11
13817 ; AVX512-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13818 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm11
13819 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm7, %zmm11
13820 ; AVX512-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13821 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm11
13822 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm9, %zmm11
13823 ; AVX512-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13824 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm11
13825 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm10, %zmm11
13826 ; AVX512-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13827 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm1, %zmm6
13828 ; AVX512-NEXT:    vmovdqa64 128(%rdx), %zmm13
13829 ; AVX512-NEXT:    vmovdqa64 128(%rcx), %zmm0
13830 ; AVX512-NEXT:    vmovdqa64 %zmm13, %zmm11
13831 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm2, %zmm11
13832 ; AVX512-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13833 ; AVX512-NEXT:    vmovdqa64 %zmm13, %zmm11
13834 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm3, %zmm11
13835 ; AVX512-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13836 ; AVX512-NEXT:    vmovdqa64 %zmm13, %zmm11
13837 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm4, %zmm11
13838 ; AVX512-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13839 ; AVX512-NEXT:    vmovdqa64 %zmm13, %zmm11
13840 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm5, %zmm11
13841 ; AVX512-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13842 ; AVX512-NEXT:    vmovdqa64 %zmm13, %zmm11
13843 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm7, %zmm11
13844 ; AVX512-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13845 ; AVX512-NEXT:    vmovdqa64 %zmm13, %zmm11
13846 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm9, %zmm11
13847 ; AVX512-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13848 ; AVX512-NEXT:    vmovdqa64 %zmm13, %zmm11
13849 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm10, %zmm11
13850 ; AVX512-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13851 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm1, %zmm13
13852 ; AVX512-NEXT:    vmovdqa64 192(%rdx), %zmm17
13853 ; AVX512-NEXT:    vmovdqa64 192(%rcx), %zmm0
13854 ; AVX512-NEXT:    vpermi2d %zmm0, %zmm17, %zmm2
13855 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13856 ; AVX512-NEXT:    vpermi2d %zmm0, %zmm17, %zmm3
13857 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13858 ; AVX512-NEXT:    vpermi2d %zmm0, %zmm17, %zmm4
13859 ; AVX512-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13860 ; AVX512-NEXT:    vpermi2d %zmm0, %zmm17, %zmm5
13861 ; AVX512-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13862 ; AVX512-NEXT:    vpermi2d %zmm0, %zmm17, %zmm7
13863 ; AVX512-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13864 ; AVX512-NEXT:    vpermi2d %zmm0, %zmm17, %zmm9
13865 ; AVX512-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13866 ; AVX512-NEXT:    vpermi2d %zmm0, %zmm17, %zmm10
13867 ; AVX512-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13868 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm1, %zmm17
13869 ; AVX512-NEXT:    vmovdqa64 (%rdi), %zmm5
13870 ; AVX512-NEXT:    vmovdqa64 (%rsi), %zmm0
13871 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [0,16,0,0,0,0,0,0,1,17,0,0,0,0,0,0]
13872 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm1
13873 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm14, %zmm1
13874 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13875 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [2,18,0,0,0,0,0,0,3,19,0,0,0,0,0,0]
13876 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm1
13877 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm11, %zmm1
13878 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13879 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [4,20,0,0,0,0,0,0,5,21,0,0,0,0,0,0]
13880 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm1
13881 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm10, %zmm1
13882 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13883 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [6,22,0,0,0,0,0,0,7,23,0,0,0,0,0,0]
13884 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm1
13885 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm9, %zmm1
13886 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13887 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [8,24,0,0,0,0,0,0,9,25,0,0,0,0,0,0]
13888 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm1
13889 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm7, %zmm1
13890 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13891 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [10,26,0,0,0,0,0,0,11,27,0,0,0,0,0,0]
13892 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm1
13893 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm4, %zmm1
13894 ; AVX512-NEXT:    vmovdqu64 %zmm1, (%rsp) # 64-byte Spill
13895 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [12,28,0,0,0,0,0,0,13,29,0,0,0,0,0,0]
13896 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm1
13897 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm3, %zmm1
13898 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13899 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm31 = [14,30,0,0,0,0,0,0,15,31,0,0,0,0,0,0]
13900 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm31, %zmm5
13901 ; AVX512-NEXT:    vmovdqa64 64(%rdi), %zmm12
13902 ; AVX512-NEXT:    vmovdqa64 64(%rsi), %zmm0
13903 ; AVX512-NEXT:    vmovdqa64 %zmm12, %zmm1
13904 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm14, %zmm1
13905 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13906 ; AVX512-NEXT:    vmovdqa64 %zmm12, %zmm1
13907 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm11, %zmm1
13908 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13909 ; AVX512-NEXT:    vmovdqa64 %zmm12, %zmm1
13910 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm10, %zmm1
13911 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13912 ; AVX512-NEXT:    vmovdqa64 %zmm12, %zmm1
13913 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm9, %zmm1
13914 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13915 ; AVX512-NEXT:    vmovdqa64 %zmm12, %zmm30
13916 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm7, %zmm30
13917 ; AVX512-NEXT:    vmovdqa64 %zmm12, %zmm29
13918 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm4, %zmm29
13919 ; AVX512-NEXT:    vmovdqa64 %zmm12, %zmm28
13920 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm3, %zmm28
13921 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm31, %zmm12
13922 ; AVX512-NEXT:    vmovdqa64 128(%rdi), %zmm15
13923 ; AVX512-NEXT:    vmovdqa64 128(%rsi), %zmm0
13924 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm24
13925 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm14, %zmm24
13926 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm23
13927 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm11, %zmm23
13928 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm21
13929 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm10, %zmm21
13930 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm20
13931 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm9, %zmm20
13932 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm19
13933 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm7, %zmm19
13934 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm18
13935 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm4, %zmm18
13936 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm16
13937 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm3, %zmm16
13938 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm31, %zmm15
13939 ; AVX512-NEXT:    vmovdqa64 192(%rdi), %zmm2
13940 ; AVX512-NEXT:    vmovdqa64 192(%rsi), %zmm0
13941 ; AVX512-NEXT:    vpermi2d %zmm0, %zmm2, %zmm14
13942 ; AVX512-NEXT:    vpermi2d %zmm0, %zmm2, %zmm11
13943 ; AVX512-NEXT:    vpermi2d %zmm0, %zmm2, %zmm10
13944 ; AVX512-NEXT:    vpermi2d %zmm0, %zmm2, %zmm9
13945 ; AVX512-NEXT:    vpermi2d %zmm0, %zmm2, %zmm7
13946 ; AVX512-NEXT:    vpermi2d %zmm0, %zmm2, %zmm4
13947 ; AVX512-NEXT:    vpermi2d %zmm0, %zmm2, %zmm3
13948 ; AVX512-NEXT:    vpermt2d %zmm0, %zmm31, %zmm2
13949 ; AVX512-NEXT:    movb $-120, %al
13950 ; AVX512-NEXT:    kmovw %eax, %k1
13951 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13952 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
13953 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
13954 ; AVX512-NEXT:    movb $34, %al
13955 ; AVX512-NEXT:    kmovw %eax, %k2
13956 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13957 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
13958 ; AVX512-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
13959 ; AVX512-NEXT:    movb $-52, %al
13960 ; AVX512-NEXT:    kmovw %eax, %k3
13961 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
13962 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13963 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13964 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
13965 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
13966 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13967 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
13968 ; AVX512-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
13969 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
13970 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13971 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13972 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
13973 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
13974 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13975 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
13976 ; AVX512-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
13977 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
13978 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13979 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13980 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
13981 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
13982 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13983 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
13984 ; AVX512-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
13985 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
13986 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13987 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13988 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
13989 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
13990 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13991 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
13992 ; AVX512-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
13993 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
13994 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13995 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13996 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
13997 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
13998 ; AVX512-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
13999 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
14000 ; AVX512-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
14001 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
14002 ; AVX512-NEXT:    vmovdqu64 %zmm0, (%rsp) # 64-byte Spill
14003 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14004 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
14005 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
14006 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14007 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
14008 ; AVX512-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
14009 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
14010 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14011 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14012 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k1}
14013 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm5 {%k2}
14014 ; AVX512-NEXT:    vmovdqa64 %zmm26, %zmm5 {%k3}
14015 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14016 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
14017 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
14018 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14019 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
14020 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm0 {%k2}
14021 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
14022 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14023 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14024 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
14025 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
14026 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm26 # 64-byte Reload
14027 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14028 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k2}
14029 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm26 {%k3}
14030 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14031 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
14032 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
14033 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
14034 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14035 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
14036 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm1 {%k3}
14037 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14038 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
14039 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
14040 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14041 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
14042 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k2}
14043 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm31 {%k3}
14044 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14045 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
14046 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
14047 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14048 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm30 {%k2}
14049 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm30 {%k3}
14050 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14051 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
14052 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
14053 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14054 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm29 {%k2}
14055 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm29 {%k3}
14056 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14057 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
14058 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
14059 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14060 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm28 {%k2}
14061 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm28 {%k3}
14062 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14063 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm25 {%k1}
14064 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm12 {%k2}
14065 ; AVX512-NEXT:    vmovdqa64 %zmm25, %zmm12 {%k3}
14066 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14067 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
14068 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
14069 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14070 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm24 {%k2}
14071 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm24 {%k3}
14072 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14073 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
14074 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
14075 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14076 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm23 {%k2}
14077 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm23 {%k3}
14078 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14079 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
14080 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
14081 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14082 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm21 {%k2}
14083 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm21 {%k3}
14084 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14085 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
14086 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
14087 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14088 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm20 {%k2}
14089 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm20 {%k3}
14090 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14091 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
14092 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
14093 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14094 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k2}
14095 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm19 {%k3}
14096 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14097 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
14098 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
14099 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14100 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm18 {%k2}
14101 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm18 {%k3}
14102 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14103 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
14104 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
14105 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14106 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm16 {%k2}
14107 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm16 {%k3}
14108 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14109 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm22 {%k1}
14110 ; AVX512-NEXT:    vmovdqa64 %zmm13, %zmm15 {%k2}
14111 ; AVX512-NEXT:    vmovdqa64 %zmm22, %zmm15 {%k3}
14112 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14113 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
14114 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
14115 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14116 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm14 {%k2}
14117 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm14 {%k3}
14118 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14119 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
14120 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
14121 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14122 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm11 {%k2}
14123 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm11 {%k3}
14124 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14125 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
14126 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
14127 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14128 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm10 {%k2}
14129 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm10 {%k3}
14130 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14131 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
14132 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
14133 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14134 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm9 {%k2}
14135 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm9 {%k3}
14136 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14137 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
14138 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
14139 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14140 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k2}
14141 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm7 {%k3}
14142 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14143 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
14144 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
14145 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14146 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k2}
14147 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm4 {%k3}
14148 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14149 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
14150 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
14151 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14152 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k2}
14153 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm3 {%k3}
14154 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14155 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm27 {%k1}
14156 ; AVX512-NEXT:    vmovdqa64 %zmm17, %zmm2 {%k2}
14157 ; AVX512-NEXT:    vmovdqa64 %zmm27, %zmm2 {%k3}
14158 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax
14159 ; AVX512-NEXT:    vmovdqa64 %zmm2, 1984(%rax)
14160 ; AVX512-NEXT:    vmovdqa64 %zmm3, 1920(%rax)
14161 ; AVX512-NEXT:    vmovdqa64 %zmm4, 1856(%rax)
14162 ; AVX512-NEXT:    vmovdqa64 %zmm7, 1792(%rax)
14163 ; AVX512-NEXT:    vmovdqa64 %zmm9, 1728(%rax)
14164 ; AVX512-NEXT:    vmovdqa64 %zmm10, 1664(%rax)
14165 ; AVX512-NEXT:    vmovdqa64 %zmm11, 1600(%rax)
14166 ; AVX512-NEXT:    vmovdqa64 %zmm14, 1536(%rax)
14167 ; AVX512-NEXT:    vmovdqa64 %zmm15, 1472(%rax)
14168 ; AVX512-NEXT:    vmovdqa64 %zmm16, 1408(%rax)
14169 ; AVX512-NEXT:    vmovdqa64 %zmm18, 1344(%rax)
14170 ; AVX512-NEXT:    vmovdqa64 %zmm19, 1280(%rax)
14171 ; AVX512-NEXT:    vmovdqa64 %zmm20, 1216(%rax)
14172 ; AVX512-NEXT:    vmovdqa64 %zmm21, 1152(%rax)
14173 ; AVX512-NEXT:    vmovdqa64 %zmm23, 1088(%rax)
14174 ; AVX512-NEXT:    vmovdqa64 %zmm24, 1024(%rax)
14175 ; AVX512-NEXT:    vmovdqa64 %zmm12, 960(%rax)
14176 ; AVX512-NEXT:    vmovdqa64 %zmm28, 896(%rax)
14177 ; AVX512-NEXT:    vmovdqa64 %zmm29, 832(%rax)
14178 ; AVX512-NEXT:    vmovdqa64 %zmm30, 768(%rax)
14179 ; AVX512-NEXT:    vmovdqa64 %zmm31, 704(%rax)
14180 ; AVX512-NEXT:    vmovdqa64 %zmm1, 640(%rax)
14181 ; AVX512-NEXT:    vmovdqa64 %zmm26, 576(%rax)
14182 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14183 ; AVX512-NEXT:    vmovaps %zmm0, 512(%rax)
14184 ; AVX512-NEXT:    vmovdqa64 %zmm5, 448(%rax)
14185 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14186 ; AVX512-NEXT:    vmovaps %zmm0, 384(%rax)
14187 ; AVX512-NEXT:    vmovups (%rsp), %zmm0 # 64-byte Reload
14188 ; AVX512-NEXT:    vmovaps %zmm0, 320(%rax)
14189 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14190 ; AVX512-NEXT:    vmovaps %zmm0, 256(%rax)
14191 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14192 ; AVX512-NEXT:    vmovaps %zmm0, 192(%rax)
14193 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14194 ; AVX512-NEXT:    vmovaps %zmm0, 128(%rax)
14195 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14196 ; AVX512-NEXT:    vmovaps %zmm0, 64(%rax)
14197 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14198 ; AVX512-NEXT:    vmovaps %zmm0, (%rax)
14199 ; AVX512-NEXT:    addq $6216, %rsp # imm = 0x1848
14200 ; AVX512-NEXT:    vzeroupper
14201 ; AVX512-NEXT:    retq
14203 ; AVX512-FCP-LABEL: store_i32_stride8_vf64:
14204 ; AVX512-FCP:       # %bb.0:
14205 ; AVX512-FCP-NEXT:    subq $6216, %rsp # imm = 0x1848
14206 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
14207 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
14208 ; AVX512-FCP-NEXT:    vmovdqa64 (%r10), %zmm5
14209 ; AVX512-FCP-NEXT:    vmovdqa64 64(%r10), %zmm4
14210 ; AVX512-FCP-NEXT:    vmovdqa64 128(%r10), %zmm2
14211 ; AVX512-FCP-NEXT:    vmovdqa64 (%rax), %zmm1
14212 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rax), %zmm0
14213 ; AVX512-FCP-NEXT:    vmovdqa64 128(%rax), %zmm30
14214 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,0,0,0,0,0,0,16,0,0,0,0,0,0,1,17]
14215 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm7
14216 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm6
14217 ; AVX512-FCP-NEXT:    vpermt2d %zmm1, %zmm3, %zmm7
14218 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14219 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,0,0,0,0,0,2,18,0,0,0,0,0,0,3,19]
14220 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm7
14221 ; AVX512-FCP-NEXT:    vpermt2d %zmm1, %zmm5, %zmm6
14222 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14223 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [0,0,0,0,0,0,4,20,0,0,0,0,0,0,5,21]
14224 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, %zmm8
14225 ; AVX512-FCP-NEXT:    vpermt2d %zmm1, %zmm6, %zmm8
14226 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14227 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,0,0,0,0,0,6,22,0,0,0,0,0,0,7,23]
14228 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, %zmm9
14229 ; AVX512-FCP-NEXT:    vpermt2d %zmm1, %zmm8, %zmm9
14230 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14231 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm9
14232 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,0,0,0,0,0,8,24,0,0,0,0,0,0,9,25]
14233 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, %zmm10
14234 ; AVX512-FCP-NEXT:    vpermt2d %zmm1, %zmm8, %zmm10
14235 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14236 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm10
14237 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,0,0,0,0,0,10,26,0,0,0,0,0,0,11,27]
14238 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, %zmm11
14239 ; AVX512-FCP-NEXT:    vpermt2d %zmm1, %zmm8, %zmm11
14240 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14241 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm11
14242 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,0,0,0,0,0,12,28,0,0,0,0,0,0,13,29]
14243 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, %zmm13
14244 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, %zmm12
14245 ; AVX512-FCP-NEXT:    vpermt2d %zmm1, %zmm8, %zmm13
14246 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14247 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm7
14248 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,0,0,0,0,0,14,30,0,0,0,0,0,0,15,31]
14249 ; AVX512-FCP-NEXT:    vpermt2d %zmm1, %zmm8, %zmm12
14250 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14251 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, %zmm1
14252 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm3, %zmm1
14253 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14254 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, %zmm1
14255 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm5, %zmm1
14256 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14257 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, %zmm1
14258 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm6, %zmm1
14259 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14260 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, %zmm1
14261 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm9, %zmm1
14262 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14263 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, %zmm1
14264 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm10, %zmm1
14265 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14266 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, %zmm1
14267 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm11, %zmm1
14268 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14269 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, %zmm1
14270 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm7, %zmm1
14271 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14272 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm8, %zmm4
14273 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14274 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm0
14275 ; AVX512-FCP-NEXT:    vpermt2d %zmm30, %zmm3, %zmm0
14276 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14277 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm0
14278 ; AVX512-FCP-NEXT:    vpermt2d %zmm30, %zmm5, %zmm0
14279 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14280 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm0
14281 ; AVX512-FCP-NEXT:    vpermt2d %zmm30, %zmm6, %zmm0
14282 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14283 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm0
14284 ; AVX512-FCP-NEXT:    vpermt2d %zmm30, %zmm9, %zmm0
14285 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14286 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm0
14287 ; AVX512-FCP-NEXT:    vpermt2d %zmm30, %zmm10, %zmm0
14288 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14289 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm0
14290 ; AVX512-FCP-NEXT:    vpermt2d %zmm30, %zmm11, %zmm0
14291 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14292 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm0
14293 ; AVX512-FCP-NEXT:    vpermt2d %zmm30, %zmm7, %zmm0
14294 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14295 ; AVX512-FCP-NEXT:    vpermt2d %zmm30, %zmm8, %zmm2
14296 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14297 ; AVX512-FCP-NEXT:    vmovdqa64 192(%r10), %zmm1
14298 ; AVX512-FCP-NEXT:    vmovdqa64 192(%rax), %zmm0
14299 ; AVX512-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm3
14300 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14301 ; AVX512-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm5
14302 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14303 ; AVX512-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm6
14304 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14305 ; AVX512-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm9
14306 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14307 ; AVX512-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm10
14308 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14309 ; AVX512-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm11
14310 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14311 ; AVX512-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm7
14312 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14313 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm8, %zmm1
14314 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14315 ; AVX512-FCP-NEXT:    vmovdqa64 (%r8), %zmm26
14316 ; AVX512-FCP-NEXT:    vmovdqa64 (%r9), %zmm0
14317 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,16,0,0,0,0,0,0,1,17,0,0]
14318 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm26, %zmm2
14319 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm2
14320 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14321 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2
14322 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,2,18,0,0,0,0,0,0,3,19,0,0]
14323 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm26, %zmm3
14324 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm3
14325 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14326 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm3
14327 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,4,20,0,0,0,0,0,0,5,21,0,0]
14328 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm26, %zmm4
14329 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm4
14330 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14331 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4
14332 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,6,22,0,0,0,0,0,0,7,23,0,0]
14333 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm26, %zmm5
14334 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm5
14335 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14336 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm5
14337 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,8,24,0,0,0,0,0,0,9,25,0,0]
14338 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm26, %zmm6
14339 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm6
14340 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14341 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm6
14342 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,10,26,0,0,0,0,0,0,11,27,0,0]
14343 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm26, %zmm7
14344 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm7
14345 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14346 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm7
14347 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,12,28,0,0,0,0,0,0,13,29,0,0]
14348 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm26, %zmm8
14349 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm8
14350 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14351 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm8
14352 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,14,30,0,0,0,0,0,0,15,31,0,0]
14353 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm26
14354 ; AVX512-FCP-NEXT:    vmovdqa64 64(%r8), %zmm25
14355 ; AVX512-FCP-NEXT:    vmovdqa64 64(%r9), %zmm0
14356 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm25, %zmm9
14357 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm2, %zmm9
14358 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14359 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm25, %zmm9
14360 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm3, %zmm9
14361 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14362 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm25, %zmm9
14363 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm4, %zmm9
14364 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14365 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm25, %zmm9
14366 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm5, %zmm9
14367 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14368 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm25, %zmm9
14369 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm6, %zmm9
14370 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14371 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm25, %zmm9
14372 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm7, %zmm9
14373 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14374 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm25, %zmm9
14375 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm8, %zmm9
14376 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14377 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm25
14378 ; AVX512-FCP-NEXT:    vmovdqa64 128(%r8), %zmm22
14379 ; AVX512-FCP-NEXT:    vmovdqa64 128(%r9), %zmm0
14380 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm22, %zmm9
14381 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm2, %zmm9
14382 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14383 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm22, %zmm9
14384 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm3, %zmm9
14385 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14386 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm22, %zmm9
14387 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm4, %zmm9
14388 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14389 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm22, %zmm9
14390 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm5, %zmm9
14391 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14392 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm22, %zmm9
14393 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm6, %zmm9
14394 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14395 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm22, %zmm9
14396 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm7, %zmm9
14397 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14398 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm22, %zmm9
14399 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm8, %zmm9
14400 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14401 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm22
14402 ; AVX512-FCP-NEXT:    vmovdqa64 192(%r8), %zmm27
14403 ; AVX512-FCP-NEXT:    vmovdqa64 192(%r9), %zmm0
14404 ; AVX512-FCP-NEXT:    vpermi2d %zmm0, %zmm27, %zmm2
14405 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14406 ; AVX512-FCP-NEXT:    vpermi2d %zmm0, %zmm27, %zmm3
14407 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14408 ; AVX512-FCP-NEXT:    vpermi2d %zmm0, %zmm27, %zmm4
14409 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14410 ; AVX512-FCP-NEXT:    vpermi2d %zmm0, %zmm27, %zmm5
14411 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14412 ; AVX512-FCP-NEXT:    vpermi2d %zmm0, %zmm27, %zmm6
14413 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14414 ; AVX512-FCP-NEXT:    vpermi2d %zmm0, %zmm27, %zmm7
14415 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14416 ; AVX512-FCP-NEXT:    vpermi2d %zmm0, %zmm27, %zmm8
14417 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14418 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm27
14419 ; AVX512-FCP-NEXT:    vmovdqa64 (%rdx), %zmm8
14420 ; AVX512-FCP-NEXT:    vmovdqa64 (%rcx), %zmm0
14421 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,16,0,0,0,0,0,0,1,17,0,0,0,0]
14422 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm2
14423 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm2
14424 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14425 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2
14426 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,2,18,0,0,0,0,0,0,3,19,0,0,0,0]
14427 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm3
14428 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm3
14429 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14430 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm3
14431 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,4,20,0,0,0,0,0,0,5,21,0,0,0,0]
14432 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm4
14433 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm4
14434 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14435 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4
14436 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,6,22,0,0,0,0,0,0,7,23,0,0,0,0]
14437 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm5
14438 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm5
14439 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14440 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm5
14441 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,8,24,0,0,0,0,0,0,9,25,0,0,0,0]
14442 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm6
14443 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm6
14444 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14445 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm7
14446 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,10,26,0,0,0,0,0,0,11,27,0,0,0,0]
14447 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm6
14448 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm6
14449 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14450 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm9
14451 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,12,28,0,0,0,0,0,0,13,29,0,0,0,0]
14452 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm6
14453 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm6
14454 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14455 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm10
14456 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,14,30,0,0,0,0,0,0,15,31,0,0,0,0]
14457 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm8
14458 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rdx), %zmm6
14459 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rcx), %zmm0
14460 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm11
14461 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm2, %zmm11
14462 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14463 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm11
14464 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm3, %zmm11
14465 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14466 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm11
14467 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm4, %zmm11
14468 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14469 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm11
14470 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm5, %zmm11
14471 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14472 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm11
14473 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm7, %zmm11
14474 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14475 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm11
14476 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm9, %zmm11
14477 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14478 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm11
14479 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm10, %zmm11
14480 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14481 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm6
14482 ; AVX512-FCP-NEXT:    vmovdqa64 128(%rdx), %zmm13
14483 ; AVX512-FCP-NEXT:    vmovdqa64 128(%rcx), %zmm0
14484 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, %zmm11
14485 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm2, %zmm11
14486 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14487 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, %zmm11
14488 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm3, %zmm11
14489 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14490 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, %zmm11
14491 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm4, %zmm11
14492 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14493 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, %zmm11
14494 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm5, %zmm11
14495 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14496 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, %zmm11
14497 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm7, %zmm11
14498 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14499 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, %zmm11
14500 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm9, %zmm11
14501 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14502 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, %zmm11
14503 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm10, %zmm11
14504 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14505 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm13
14506 ; AVX512-FCP-NEXT:    vmovdqa64 192(%rdx), %zmm17
14507 ; AVX512-FCP-NEXT:    vmovdqa64 192(%rcx), %zmm0
14508 ; AVX512-FCP-NEXT:    vpermi2d %zmm0, %zmm17, %zmm2
14509 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14510 ; AVX512-FCP-NEXT:    vpermi2d %zmm0, %zmm17, %zmm3
14511 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14512 ; AVX512-FCP-NEXT:    vpermi2d %zmm0, %zmm17, %zmm4
14513 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14514 ; AVX512-FCP-NEXT:    vpermi2d %zmm0, %zmm17, %zmm5
14515 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14516 ; AVX512-FCP-NEXT:    vpermi2d %zmm0, %zmm17, %zmm7
14517 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14518 ; AVX512-FCP-NEXT:    vpermi2d %zmm0, %zmm17, %zmm9
14519 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14520 ; AVX512-FCP-NEXT:    vpermi2d %zmm0, %zmm17, %zmm10
14521 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14522 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm17
14523 ; AVX512-FCP-NEXT:    vmovdqa64 (%rdi), %zmm5
14524 ; AVX512-FCP-NEXT:    vmovdqa64 (%rsi), %zmm0
14525 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [0,16,0,0,0,0,0,0,1,17,0,0,0,0,0,0]
14526 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm1
14527 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm14, %zmm1
14528 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14529 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [2,18,0,0,0,0,0,0,3,19,0,0,0,0,0,0]
14530 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm1
14531 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm11, %zmm1
14532 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14533 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [4,20,0,0,0,0,0,0,5,21,0,0,0,0,0,0]
14534 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm1
14535 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm10, %zmm1
14536 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14537 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [6,22,0,0,0,0,0,0,7,23,0,0,0,0,0,0]
14538 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm1
14539 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm9, %zmm1
14540 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14541 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [8,24,0,0,0,0,0,0,9,25,0,0,0,0,0,0]
14542 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm1
14543 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm7, %zmm1
14544 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14545 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [10,26,0,0,0,0,0,0,11,27,0,0,0,0,0,0]
14546 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm1
14547 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm4, %zmm1
14548 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, (%rsp) # 64-byte Spill
14549 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [12,28,0,0,0,0,0,0,13,29,0,0,0,0,0,0]
14550 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm1
14551 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm3, %zmm1
14552 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14553 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm31 = [14,30,0,0,0,0,0,0,15,31,0,0,0,0,0,0]
14554 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm31, %zmm5
14555 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm12
14556 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rsi), %zmm0
14557 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, %zmm1
14558 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm14, %zmm1
14559 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14560 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, %zmm1
14561 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm11, %zmm1
14562 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14563 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, %zmm1
14564 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm10, %zmm1
14565 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14566 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, %zmm1
14567 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm9, %zmm1
14568 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14569 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, %zmm30
14570 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm7, %zmm30
14571 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, %zmm29
14572 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm4, %zmm29
14573 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, %zmm28
14574 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm3, %zmm28
14575 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm31, %zmm12
14576 ; AVX512-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm15
14577 ; AVX512-FCP-NEXT:    vmovdqa64 128(%rsi), %zmm0
14578 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm15, %zmm24
14579 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm14, %zmm24
14580 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm15, %zmm23
14581 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm11, %zmm23
14582 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm15, %zmm21
14583 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm10, %zmm21
14584 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm15, %zmm20
14585 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm9, %zmm20
14586 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm15, %zmm19
14587 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm7, %zmm19
14588 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm15, %zmm18
14589 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm4, %zmm18
14590 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm15, %zmm16
14591 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm3, %zmm16
14592 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm31, %zmm15
14593 ; AVX512-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm2
14594 ; AVX512-FCP-NEXT:    vmovdqa64 192(%rsi), %zmm0
14595 ; AVX512-FCP-NEXT:    vpermi2d %zmm0, %zmm2, %zmm14
14596 ; AVX512-FCP-NEXT:    vpermi2d %zmm0, %zmm2, %zmm11
14597 ; AVX512-FCP-NEXT:    vpermi2d %zmm0, %zmm2, %zmm10
14598 ; AVX512-FCP-NEXT:    vpermi2d %zmm0, %zmm2, %zmm9
14599 ; AVX512-FCP-NEXT:    vpermi2d %zmm0, %zmm2, %zmm7
14600 ; AVX512-FCP-NEXT:    vpermi2d %zmm0, %zmm2, %zmm4
14601 ; AVX512-FCP-NEXT:    vpermi2d %zmm0, %zmm2, %zmm3
14602 ; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm31, %zmm2
14603 ; AVX512-FCP-NEXT:    movb $-120, %al
14604 ; AVX512-FCP-NEXT:    kmovw %eax, %k1
14605 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14606 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
14607 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
14608 ; AVX512-FCP-NEXT:    movb $34, %al
14609 ; AVX512-FCP-NEXT:    kmovw %eax, %k2
14610 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14611 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
14612 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
14613 ; AVX512-FCP-NEXT:    movb $-52, %al
14614 ; AVX512-FCP-NEXT:    kmovw %eax, %k3
14615 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
14616 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14617 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14618 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
14619 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
14620 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14621 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
14622 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
14623 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
14624 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14625 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14626 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
14627 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
14628 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14629 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
14630 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
14631 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
14632 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14633 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14634 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
14635 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
14636 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14637 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
14638 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
14639 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
14640 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14641 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14642 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
14643 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
14644 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14645 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
14646 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
14647 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
14648 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14649 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14650 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
14651 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
14652 ; AVX512-FCP-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
14653 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
14654 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
14655 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
14656 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, (%rsp) # 64-byte Spill
14657 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14658 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
14659 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
14660 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14661 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
14662 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
14663 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
14664 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14665 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14666 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k1}
14667 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm5 {%k2}
14668 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm26, %zmm5 {%k3}
14669 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14670 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
14671 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
14672 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14673 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
14674 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm0 {%k2}
14675 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
14676 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14677 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14678 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
14679 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
14680 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm26 # 64-byte Reload
14681 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14682 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k2}
14683 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm26 {%k3}
14684 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14685 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
14686 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
14687 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
14688 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14689 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
14690 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm1 {%k3}
14691 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14692 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
14693 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
14694 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14695 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
14696 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k2}
14697 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm31 {%k3}
14698 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14699 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
14700 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
14701 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14702 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm30 {%k2}
14703 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm30 {%k3}
14704 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14705 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
14706 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
14707 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14708 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm29 {%k2}
14709 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm29 {%k3}
14710 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14711 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
14712 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
14713 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14714 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm28 {%k2}
14715 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm28 {%k3}
14716 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14717 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm25 {%k1}
14718 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm12 {%k2}
14719 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm25, %zmm12 {%k3}
14720 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14721 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
14722 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
14723 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14724 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm24 {%k2}
14725 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm24 {%k3}
14726 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14727 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
14728 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
14729 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14730 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm23 {%k2}
14731 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm23 {%k3}
14732 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14733 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
14734 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
14735 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14736 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm21 {%k2}
14737 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm21 {%k3}
14738 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14739 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
14740 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
14741 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14742 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm20 {%k2}
14743 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm20 {%k3}
14744 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14745 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
14746 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
14747 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14748 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k2}
14749 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm19 {%k3}
14750 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14751 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
14752 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
14753 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14754 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm18 {%k2}
14755 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm18 {%k3}
14756 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14757 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
14758 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
14759 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14760 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm16 {%k2}
14761 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm16 {%k3}
14762 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14763 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm22 {%k1}
14764 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, %zmm15 {%k2}
14765 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm22, %zmm15 {%k3}
14766 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14767 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
14768 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
14769 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14770 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm14 {%k2}
14771 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm14 {%k3}
14772 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14773 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
14774 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
14775 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14776 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm11 {%k2}
14777 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm11 {%k3}
14778 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14779 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
14780 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
14781 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14782 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm10 {%k2}
14783 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm10 {%k3}
14784 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14785 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
14786 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
14787 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14788 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm9 {%k2}
14789 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm9 {%k3}
14790 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14791 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
14792 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
14793 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14794 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k2}
14795 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm7 {%k3}
14796 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14797 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
14798 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
14799 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14800 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k2}
14801 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm4 {%k3}
14802 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14803 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
14804 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
14805 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14806 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k2}
14807 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm3 {%k3}
14808 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14809 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm27 {%k1}
14810 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm17, %zmm2 {%k2}
14811 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm27, %zmm2 {%k3}
14812 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
14813 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, 1984(%rax)
14814 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, 1920(%rax)
14815 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, 1856(%rax)
14816 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, 1792(%rax)
14817 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm9, 1728(%rax)
14818 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm10, 1664(%rax)
14819 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm11, 1600(%rax)
14820 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm14, 1536(%rax)
14821 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm15, 1472(%rax)
14822 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, 1408(%rax)
14823 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm18, 1344(%rax)
14824 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm19, 1280(%rax)
14825 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm20, 1216(%rax)
14826 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm21, 1152(%rax)
14827 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm23, 1088(%rax)
14828 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm24, 1024(%rax)
14829 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, 960(%rax)
14830 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm28, 896(%rax)
14831 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm29, 832(%rax)
14832 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm30, 768(%rax)
14833 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm31, 704(%rax)
14834 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, 640(%rax)
14835 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm26, 576(%rax)
14836 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14837 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 512(%rax)
14838 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, 448(%rax)
14839 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14840 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 384(%rax)
14841 ; AVX512-FCP-NEXT:    vmovups (%rsp), %zmm0 # 64-byte Reload
14842 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 320(%rax)
14843 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14844 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 256(%rax)
14845 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14846 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 192(%rax)
14847 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14848 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 128(%rax)
14849 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14850 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 64(%rax)
14851 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14852 ; AVX512-FCP-NEXT:    vmovaps %zmm0, (%rax)
14853 ; AVX512-FCP-NEXT:    addq $6216, %rsp # imm = 0x1848
14854 ; AVX512-FCP-NEXT:    vzeroupper
14855 ; AVX512-FCP-NEXT:    retq
14857 ; AVX512DQ-LABEL: store_i32_stride8_vf64:
14858 ; AVX512DQ:       # %bb.0:
14859 ; AVX512DQ-NEXT:    subq $6216, %rsp # imm = 0x1848
14860 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %rax
14861 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %r10
14862 ; AVX512DQ-NEXT:    vmovdqa64 (%r10), %zmm5
14863 ; AVX512DQ-NEXT:    vmovdqa64 64(%r10), %zmm4
14864 ; AVX512DQ-NEXT:    vmovdqa64 128(%r10), %zmm2
14865 ; AVX512DQ-NEXT:    vmovdqa64 (%rax), %zmm1
14866 ; AVX512DQ-NEXT:    vmovdqa64 64(%rax), %zmm0
14867 ; AVX512DQ-NEXT:    vmovdqa64 128(%rax), %zmm30
14868 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,0,0,0,0,0,0,16,0,0,0,0,0,0,1,17]
14869 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm7
14870 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm6
14871 ; AVX512DQ-NEXT:    vpermt2d %zmm1, %zmm3, %zmm7
14872 ; AVX512DQ-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14873 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,0,0,0,0,0,2,18,0,0,0,0,0,0,3,19]
14874 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm7
14875 ; AVX512DQ-NEXT:    vpermt2d %zmm1, %zmm5, %zmm6
14876 ; AVX512DQ-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14877 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [0,0,0,0,0,0,4,20,0,0,0,0,0,0,5,21]
14878 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, %zmm8
14879 ; AVX512DQ-NEXT:    vpermt2d %zmm1, %zmm6, %zmm8
14880 ; AVX512DQ-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14881 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,0,0,0,0,0,6,22,0,0,0,0,0,0,7,23]
14882 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, %zmm9
14883 ; AVX512DQ-NEXT:    vpermt2d %zmm1, %zmm8, %zmm9
14884 ; AVX512DQ-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14885 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm9
14886 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,0,0,0,0,0,8,24,0,0,0,0,0,0,9,25]
14887 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, %zmm10
14888 ; AVX512DQ-NEXT:    vpermt2d %zmm1, %zmm8, %zmm10
14889 ; AVX512DQ-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14890 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm10
14891 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,0,0,0,0,0,10,26,0,0,0,0,0,0,11,27]
14892 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, %zmm11
14893 ; AVX512DQ-NEXT:    vpermt2d %zmm1, %zmm8, %zmm11
14894 ; AVX512DQ-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14895 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm11
14896 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,0,0,0,0,0,12,28,0,0,0,0,0,0,13,29]
14897 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, %zmm13
14898 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, %zmm12
14899 ; AVX512DQ-NEXT:    vpermt2d %zmm1, %zmm8, %zmm13
14900 ; AVX512DQ-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14901 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm7
14902 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,0,0,0,0,0,14,30,0,0,0,0,0,0,15,31]
14903 ; AVX512DQ-NEXT:    vpermt2d %zmm1, %zmm8, %zmm12
14904 ; AVX512DQ-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14905 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm1
14906 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm3, %zmm1
14907 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14908 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm1
14909 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm5, %zmm1
14910 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14911 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm1
14912 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm6, %zmm1
14913 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14914 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm1
14915 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm9, %zmm1
14916 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14917 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm1
14918 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm10, %zmm1
14919 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14920 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm1
14921 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm11, %zmm1
14922 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14923 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm1
14924 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm7, %zmm1
14925 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14926 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm8, %zmm4
14927 ; AVX512DQ-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14928 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm0
14929 ; AVX512DQ-NEXT:    vpermt2d %zmm30, %zmm3, %zmm0
14930 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14931 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm0
14932 ; AVX512DQ-NEXT:    vpermt2d %zmm30, %zmm5, %zmm0
14933 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14934 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm0
14935 ; AVX512DQ-NEXT:    vpermt2d %zmm30, %zmm6, %zmm0
14936 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14937 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm0
14938 ; AVX512DQ-NEXT:    vpermt2d %zmm30, %zmm9, %zmm0
14939 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14940 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm0
14941 ; AVX512DQ-NEXT:    vpermt2d %zmm30, %zmm10, %zmm0
14942 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14943 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm0
14944 ; AVX512DQ-NEXT:    vpermt2d %zmm30, %zmm11, %zmm0
14945 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14946 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm0
14947 ; AVX512DQ-NEXT:    vpermt2d %zmm30, %zmm7, %zmm0
14948 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14949 ; AVX512DQ-NEXT:    vpermt2d %zmm30, %zmm8, %zmm2
14950 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14951 ; AVX512DQ-NEXT:    vmovdqa64 192(%r10), %zmm1
14952 ; AVX512DQ-NEXT:    vmovdqa64 192(%rax), %zmm0
14953 ; AVX512DQ-NEXT:    vpermi2d %zmm0, %zmm1, %zmm3
14954 ; AVX512DQ-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14955 ; AVX512DQ-NEXT:    vpermi2d %zmm0, %zmm1, %zmm5
14956 ; AVX512DQ-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14957 ; AVX512DQ-NEXT:    vpermi2d %zmm0, %zmm1, %zmm6
14958 ; AVX512DQ-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14959 ; AVX512DQ-NEXT:    vpermi2d %zmm0, %zmm1, %zmm9
14960 ; AVX512DQ-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14961 ; AVX512DQ-NEXT:    vpermi2d %zmm0, %zmm1, %zmm10
14962 ; AVX512DQ-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14963 ; AVX512DQ-NEXT:    vpermi2d %zmm0, %zmm1, %zmm11
14964 ; AVX512DQ-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14965 ; AVX512DQ-NEXT:    vpermi2d %zmm0, %zmm1, %zmm7
14966 ; AVX512DQ-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14967 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm8, %zmm1
14968 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14969 ; AVX512DQ-NEXT:    vmovdqa64 (%r8), %zmm26
14970 ; AVX512DQ-NEXT:    vmovdqa64 (%r9), %zmm0
14971 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,16,0,0,0,0,0,0,1,17,0,0]
14972 ; AVX512DQ-NEXT:    vmovdqa64 %zmm26, %zmm2
14973 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm1, %zmm2
14974 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14975 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm2
14976 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,2,18,0,0,0,0,0,0,3,19,0,0]
14977 ; AVX512DQ-NEXT:    vmovdqa64 %zmm26, %zmm3
14978 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm1, %zmm3
14979 ; AVX512DQ-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14980 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm3
14981 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,4,20,0,0,0,0,0,0,5,21,0,0]
14982 ; AVX512DQ-NEXT:    vmovdqa64 %zmm26, %zmm4
14983 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm1, %zmm4
14984 ; AVX512DQ-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14985 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm4
14986 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,6,22,0,0,0,0,0,0,7,23,0,0]
14987 ; AVX512DQ-NEXT:    vmovdqa64 %zmm26, %zmm5
14988 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm1, %zmm5
14989 ; AVX512DQ-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14990 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm5
14991 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,8,24,0,0,0,0,0,0,9,25,0,0]
14992 ; AVX512DQ-NEXT:    vmovdqa64 %zmm26, %zmm6
14993 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm1, %zmm6
14994 ; AVX512DQ-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14995 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm6
14996 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,10,26,0,0,0,0,0,0,11,27,0,0]
14997 ; AVX512DQ-NEXT:    vmovdqa64 %zmm26, %zmm7
14998 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm1, %zmm7
14999 ; AVX512DQ-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15000 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm7
15001 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,12,28,0,0,0,0,0,0,13,29,0,0]
15002 ; AVX512DQ-NEXT:    vmovdqa64 %zmm26, %zmm8
15003 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm1, %zmm8
15004 ; AVX512DQ-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15005 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm8
15006 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,14,30,0,0,0,0,0,0,15,31,0,0]
15007 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm1, %zmm26
15008 ; AVX512DQ-NEXT:    vmovdqa64 64(%r8), %zmm25
15009 ; AVX512DQ-NEXT:    vmovdqa64 64(%r9), %zmm0
15010 ; AVX512DQ-NEXT:    vmovdqa64 %zmm25, %zmm9
15011 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm2, %zmm9
15012 ; AVX512DQ-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15013 ; AVX512DQ-NEXT:    vmovdqa64 %zmm25, %zmm9
15014 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm3, %zmm9
15015 ; AVX512DQ-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15016 ; AVX512DQ-NEXT:    vmovdqa64 %zmm25, %zmm9
15017 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm4, %zmm9
15018 ; AVX512DQ-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15019 ; AVX512DQ-NEXT:    vmovdqa64 %zmm25, %zmm9
15020 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm5, %zmm9
15021 ; AVX512DQ-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15022 ; AVX512DQ-NEXT:    vmovdqa64 %zmm25, %zmm9
15023 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm6, %zmm9
15024 ; AVX512DQ-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15025 ; AVX512DQ-NEXT:    vmovdqa64 %zmm25, %zmm9
15026 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm7, %zmm9
15027 ; AVX512DQ-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15028 ; AVX512DQ-NEXT:    vmovdqa64 %zmm25, %zmm9
15029 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm8, %zmm9
15030 ; AVX512DQ-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15031 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm1, %zmm25
15032 ; AVX512DQ-NEXT:    vmovdqa64 128(%r8), %zmm22
15033 ; AVX512DQ-NEXT:    vmovdqa64 128(%r9), %zmm0
15034 ; AVX512DQ-NEXT:    vmovdqa64 %zmm22, %zmm9
15035 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm2, %zmm9
15036 ; AVX512DQ-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15037 ; AVX512DQ-NEXT:    vmovdqa64 %zmm22, %zmm9
15038 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm3, %zmm9
15039 ; AVX512DQ-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15040 ; AVX512DQ-NEXT:    vmovdqa64 %zmm22, %zmm9
15041 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm4, %zmm9
15042 ; AVX512DQ-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15043 ; AVX512DQ-NEXT:    vmovdqa64 %zmm22, %zmm9
15044 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm5, %zmm9
15045 ; AVX512DQ-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15046 ; AVX512DQ-NEXT:    vmovdqa64 %zmm22, %zmm9
15047 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm6, %zmm9
15048 ; AVX512DQ-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15049 ; AVX512DQ-NEXT:    vmovdqa64 %zmm22, %zmm9
15050 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm7, %zmm9
15051 ; AVX512DQ-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15052 ; AVX512DQ-NEXT:    vmovdqa64 %zmm22, %zmm9
15053 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm8, %zmm9
15054 ; AVX512DQ-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15055 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm1, %zmm22
15056 ; AVX512DQ-NEXT:    vmovdqa64 192(%r8), %zmm27
15057 ; AVX512DQ-NEXT:    vmovdqa64 192(%r9), %zmm0
15058 ; AVX512DQ-NEXT:    vpermi2d %zmm0, %zmm27, %zmm2
15059 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15060 ; AVX512DQ-NEXT:    vpermi2d %zmm0, %zmm27, %zmm3
15061 ; AVX512DQ-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15062 ; AVX512DQ-NEXT:    vpermi2d %zmm0, %zmm27, %zmm4
15063 ; AVX512DQ-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15064 ; AVX512DQ-NEXT:    vpermi2d %zmm0, %zmm27, %zmm5
15065 ; AVX512DQ-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15066 ; AVX512DQ-NEXT:    vpermi2d %zmm0, %zmm27, %zmm6
15067 ; AVX512DQ-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15068 ; AVX512DQ-NEXT:    vpermi2d %zmm0, %zmm27, %zmm7
15069 ; AVX512DQ-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15070 ; AVX512DQ-NEXT:    vpermi2d %zmm0, %zmm27, %zmm8
15071 ; AVX512DQ-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15072 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm1, %zmm27
15073 ; AVX512DQ-NEXT:    vmovdqa64 (%rdx), %zmm8
15074 ; AVX512DQ-NEXT:    vmovdqa64 (%rcx), %zmm0
15075 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,16,0,0,0,0,0,0,1,17,0,0,0,0]
15076 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm2
15077 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm1, %zmm2
15078 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15079 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm2
15080 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,2,18,0,0,0,0,0,0,3,19,0,0,0,0]
15081 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm3
15082 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm1, %zmm3
15083 ; AVX512DQ-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15084 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm3
15085 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,4,20,0,0,0,0,0,0,5,21,0,0,0,0]
15086 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm4
15087 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm1, %zmm4
15088 ; AVX512DQ-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15089 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm4
15090 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,6,22,0,0,0,0,0,0,7,23,0,0,0,0]
15091 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm5
15092 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm1, %zmm5
15093 ; AVX512DQ-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15094 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm5
15095 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,8,24,0,0,0,0,0,0,9,25,0,0,0,0]
15096 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm6
15097 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm1, %zmm6
15098 ; AVX512DQ-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15099 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm7
15100 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,10,26,0,0,0,0,0,0,11,27,0,0,0,0]
15101 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm6
15102 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm1, %zmm6
15103 ; AVX512DQ-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15104 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm9
15105 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,12,28,0,0,0,0,0,0,13,29,0,0,0,0]
15106 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm6
15107 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm1, %zmm6
15108 ; AVX512DQ-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15109 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm10
15110 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,14,30,0,0,0,0,0,0,15,31,0,0,0,0]
15111 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm1, %zmm8
15112 ; AVX512DQ-NEXT:    vmovdqa64 64(%rdx), %zmm6
15113 ; AVX512DQ-NEXT:    vmovdqa64 64(%rcx), %zmm0
15114 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm11
15115 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm2, %zmm11
15116 ; AVX512DQ-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15117 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm11
15118 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm3, %zmm11
15119 ; AVX512DQ-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15120 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm11
15121 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm4, %zmm11
15122 ; AVX512DQ-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15123 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm11
15124 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm5, %zmm11
15125 ; AVX512DQ-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15126 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm11
15127 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm7, %zmm11
15128 ; AVX512DQ-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15129 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm11
15130 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm9, %zmm11
15131 ; AVX512DQ-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15132 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm11
15133 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm10, %zmm11
15134 ; AVX512DQ-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15135 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm1, %zmm6
15136 ; AVX512DQ-NEXT:    vmovdqa64 128(%rdx), %zmm13
15137 ; AVX512DQ-NEXT:    vmovdqa64 128(%rcx), %zmm0
15138 ; AVX512DQ-NEXT:    vmovdqa64 %zmm13, %zmm11
15139 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm2, %zmm11
15140 ; AVX512DQ-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15141 ; AVX512DQ-NEXT:    vmovdqa64 %zmm13, %zmm11
15142 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm3, %zmm11
15143 ; AVX512DQ-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15144 ; AVX512DQ-NEXT:    vmovdqa64 %zmm13, %zmm11
15145 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm4, %zmm11
15146 ; AVX512DQ-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15147 ; AVX512DQ-NEXT:    vmovdqa64 %zmm13, %zmm11
15148 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm5, %zmm11
15149 ; AVX512DQ-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15150 ; AVX512DQ-NEXT:    vmovdqa64 %zmm13, %zmm11
15151 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm7, %zmm11
15152 ; AVX512DQ-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15153 ; AVX512DQ-NEXT:    vmovdqa64 %zmm13, %zmm11
15154 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm9, %zmm11
15155 ; AVX512DQ-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15156 ; AVX512DQ-NEXT:    vmovdqa64 %zmm13, %zmm11
15157 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm10, %zmm11
15158 ; AVX512DQ-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15159 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm1, %zmm13
15160 ; AVX512DQ-NEXT:    vmovdqa64 192(%rdx), %zmm17
15161 ; AVX512DQ-NEXT:    vmovdqa64 192(%rcx), %zmm0
15162 ; AVX512DQ-NEXT:    vpermi2d %zmm0, %zmm17, %zmm2
15163 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15164 ; AVX512DQ-NEXT:    vpermi2d %zmm0, %zmm17, %zmm3
15165 ; AVX512DQ-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15166 ; AVX512DQ-NEXT:    vpermi2d %zmm0, %zmm17, %zmm4
15167 ; AVX512DQ-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15168 ; AVX512DQ-NEXT:    vpermi2d %zmm0, %zmm17, %zmm5
15169 ; AVX512DQ-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15170 ; AVX512DQ-NEXT:    vpermi2d %zmm0, %zmm17, %zmm7
15171 ; AVX512DQ-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15172 ; AVX512DQ-NEXT:    vpermi2d %zmm0, %zmm17, %zmm9
15173 ; AVX512DQ-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15174 ; AVX512DQ-NEXT:    vpermi2d %zmm0, %zmm17, %zmm10
15175 ; AVX512DQ-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15176 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm1, %zmm17
15177 ; AVX512DQ-NEXT:    vmovdqa64 (%rdi), %zmm5
15178 ; AVX512DQ-NEXT:    vmovdqa64 (%rsi), %zmm0
15179 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [0,16,0,0,0,0,0,0,1,17,0,0,0,0,0,0]
15180 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm1
15181 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm14, %zmm1
15182 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15183 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [2,18,0,0,0,0,0,0,3,19,0,0,0,0,0,0]
15184 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm1
15185 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm11, %zmm1
15186 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15187 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [4,20,0,0,0,0,0,0,5,21,0,0,0,0,0,0]
15188 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm1
15189 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm10, %zmm1
15190 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15191 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [6,22,0,0,0,0,0,0,7,23,0,0,0,0,0,0]
15192 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm1
15193 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm9, %zmm1
15194 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15195 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [8,24,0,0,0,0,0,0,9,25,0,0,0,0,0,0]
15196 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm1
15197 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm7, %zmm1
15198 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15199 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [10,26,0,0,0,0,0,0,11,27,0,0,0,0,0,0]
15200 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm1
15201 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm4, %zmm1
15202 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, (%rsp) # 64-byte Spill
15203 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [12,28,0,0,0,0,0,0,13,29,0,0,0,0,0,0]
15204 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm1
15205 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm3, %zmm1
15206 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15207 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm31 = [14,30,0,0,0,0,0,0,15,31,0,0,0,0,0,0]
15208 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm31, %zmm5
15209 ; AVX512DQ-NEXT:    vmovdqa64 64(%rdi), %zmm12
15210 ; AVX512DQ-NEXT:    vmovdqa64 64(%rsi), %zmm0
15211 ; AVX512DQ-NEXT:    vmovdqa64 %zmm12, %zmm1
15212 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm14, %zmm1
15213 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15214 ; AVX512DQ-NEXT:    vmovdqa64 %zmm12, %zmm1
15215 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm11, %zmm1
15216 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15217 ; AVX512DQ-NEXT:    vmovdqa64 %zmm12, %zmm1
15218 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm10, %zmm1
15219 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15220 ; AVX512DQ-NEXT:    vmovdqa64 %zmm12, %zmm1
15221 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm9, %zmm1
15222 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15223 ; AVX512DQ-NEXT:    vmovdqa64 %zmm12, %zmm30
15224 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm7, %zmm30
15225 ; AVX512DQ-NEXT:    vmovdqa64 %zmm12, %zmm29
15226 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm4, %zmm29
15227 ; AVX512DQ-NEXT:    vmovdqa64 %zmm12, %zmm28
15228 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm3, %zmm28
15229 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm31, %zmm12
15230 ; AVX512DQ-NEXT:    vmovdqa64 128(%rdi), %zmm15
15231 ; AVX512DQ-NEXT:    vmovdqa64 128(%rsi), %zmm0
15232 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, %zmm24
15233 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm14, %zmm24
15234 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, %zmm23
15235 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm11, %zmm23
15236 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, %zmm21
15237 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm10, %zmm21
15238 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, %zmm20
15239 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm9, %zmm20
15240 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, %zmm19
15241 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm7, %zmm19
15242 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, %zmm18
15243 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm4, %zmm18
15244 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, %zmm16
15245 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm3, %zmm16
15246 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm31, %zmm15
15247 ; AVX512DQ-NEXT:    vmovdqa64 192(%rdi), %zmm2
15248 ; AVX512DQ-NEXT:    vmovdqa64 192(%rsi), %zmm0
15249 ; AVX512DQ-NEXT:    vpermi2d %zmm0, %zmm2, %zmm14
15250 ; AVX512DQ-NEXT:    vpermi2d %zmm0, %zmm2, %zmm11
15251 ; AVX512DQ-NEXT:    vpermi2d %zmm0, %zmm2, %zmm10
15252 ; AVX512DQ-NEXT:    vpermi2d %zmm0, %zmm2, %zmm9
15253 ; AVX512DQ-NEXT:    vpermi2d %zmm0, %zmm2, %zmm7
15254 ; AVX512DQ-NEXT:    vpermi2d %zmm0, %zmm2, %zmm4
15255 ; AVX512DQ-NEXT:    vpermi2d %zmm0, %zmm2, %zmm3
15256 ; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm31, %zmm2
15257 ; AVX512DQ-NEXT:    movb $-120, %al
15258 ; AVX512DQ-NEXT:    kmovw %eax, %k1
15259 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15260 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
15261 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
15262 ; AVX512DQ-NEXT:    movb $34, %al
15263 ; AVX512DQ-NEXT:    kmovw %eax, %k2
15264 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15265 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
15266 ; AVX512DQ-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
15267 ; AVX512DQ-NEXT:    movb $-52, %al
15268 ; AVX512DQ-NEXT:    kmovw %eax, %k3
15269 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
15270 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15271 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15272 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
15273 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
15274 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15275 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
15276 ; AVX512DQ-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
15277 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
15278 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15279 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15280 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
15281 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
15282 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15283 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
15284 ; AVX512DQ-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
15285 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
15286 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15287 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15288 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
15289 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
15290 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15291 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
15292 ; AVX512DQ-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
15293 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
15294 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15295 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15296 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
15297 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
15298 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15299 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
15300 ; AVX512DQ-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
15301 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
15302 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15303 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15304 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
15305 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
15306 ; AVX512DQ-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
15307 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
15308 ; AVX512DQ-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
15309 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
15310 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, (%rsp) # 64-byte Spill
15311 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15312 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
15313 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
15314 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15315 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
15316 ; AVX512DQ-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
15317 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
15318 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15319 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15320 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k1}
15321 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm5 {%k2}
15322 ; AVX512DQ-NEXT:    vmovdqa64 %zmm26, %zmm5 {%k3}
15323 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15324 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
15325 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
15326 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15327 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
15328 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm0 {%k2}
15329 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
15330 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15331 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15332 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
15333 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
15334 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm26 # 64-byte Reload
15335 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15336 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k2}
15337 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm26 {%k3}
15338 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15339 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
15340 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
15341 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
15342 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15343 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
15344 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm1 {%k3}
15345 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15346 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
15347 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
15348 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15349 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
15350 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k2}
15351 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm31 {%k3}
15352 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15353 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
15354 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
15355 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15356 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm30 {%k2}
15357 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm30 {%k3}
15358 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15359 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
15360 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
15361 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15362 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm29 {%k2}
15363 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm29 {%k3}
15364 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15365 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
15366 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
15367 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15368 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm28 {%k2}
15369 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm28 {%k3}
15370 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15371 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm25 {%k1}
15372 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm12 {%k2}
15373 ; AVX512DQ-NEXT:    vmovdqa64 %zmm25, %zmm12 {%k3}
15374 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15375 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
15376 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
15377 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15378 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm24 {%k2}
15379 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm24 {%k3}
15380 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15381 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
15382 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
15383 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15384 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm23 {%k2}
15385 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm23 {%k3}
15386 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15387 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
15388 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
15389 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15390 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm21 {%k2}
15391 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm21 {%k3}
15392 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15393 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
15394 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
15395 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15396 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm20 {%k2}
15397 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm20 {%k3}
15398 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15399 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
15400 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
15401 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15402 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k2}
15403 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm19 {%k3}
15404 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15405 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
15406 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
15407 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15408 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm18 {%k2}
15409 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm18 {%k3}
15410 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15411 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
15412 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
15413 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15414 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm16 {%k2}
15415 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm16 {%k3}
15416 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15417 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm22 {%k1}
15418 ; AVX512DQ-NEXT:    vmovdqa64 %zmm13, %zmm15 {%k2}
15419 ; AVX512DQ-NEXT:    vmovdqa64 %zmm22, %zmm15 {%k3}
15420 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15421 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
15422 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
15423 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15424 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm14 {%k2}
15425 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm14 {%k3}
15426 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15427 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
15428 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
15429 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15430 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm11 {%k2}
15431 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm11 {%k3}
15432 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15433 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
15434 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
15435 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15436 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm10 {%k2}
15437 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm10 {%k3}
15438 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15439 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
15440 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
15441 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15442 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm9 {%k2}
15443 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm9 {%k3}
15444 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15445 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
15446 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
15447 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15448 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k2}
15449 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm7 {%k3}
15450 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15451 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
15452 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
15453 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15454 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k2}
15455 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm4 {%k3}
15456 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15457 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
15458 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
15459 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15460 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k2}
15461 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm3 {%k3}
15462 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15463 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm27 {%k1}
15464 ; AVX512DQ-NEXT:    vmovdqa64 %zmm17, %zmm2 {%k2}
15465 ; AVX512DQ-NEXT:    vmovdqa64 %zmm27, %zmm2 {%k3}
15466 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %rax
15467 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, 1984(%rax)
15468 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, 1920(%rax)
15469 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, 1856(%rax)
15470 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, 1792(%rax)
15471 ; AVX512DQ-NEXT:    vmovdqa64 %zmm9, 1728(%rax)
15472 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, 1664(%rax)
15473 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, 1600(%rax)
15474 ; AVX512DQ-NEXT:    vmovdqa64 %zmm14, 1536(%rax)
15475 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, 1472(%rax)
15476 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, 1408(%rax)
15477 ; AVX512DQ-NEXT:    vmovdqa64 %zmm18, 1344(%rax)
15478 ; AVX512DQ-NEXT:    vmovdqa64 %zmm19, 1280(%rax)
15479 ; AVX512DQ-NEXT:    vmovdqa64 %zmm20, 1216(%rax)
15480 ; AVX512DQ-NEXT:    vmovdqa64 %zmm21, 1152(%rax)
15481 ; AVX512DQ-NEXT:    vmovdqa64 %zmm23, 1088(%rax)
15482 ; AVX512DQ-NEXT:    vmovdqa64 %zmm24, 1024(%rax)
15483 ; AVX512DQ-NEXT:    vmovdqa64 %zmm12, 960(%rax)
15484 ; AVX512DQ-NEXT:    vmovdqa64 %zmm28, 896(%rax)
15485 ; AVX512DQ-NEXT:    vmovdqa64 %zmm29, 832(%rax)
15486 ; AVX512DQ-NEXT:    vmovdqa64 %zmm30, 768(%rax)
15487 ; AVX512DQ-NEXT:    vmovdqa64 %zmm31, 704(%rax)
15488 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, 640(%rax)
15489 ; AVX512DQ-NEXT:    vmovdqa64 %zmm26, 576(%rax)
15490 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15491 ; AVX512DQ-NEXT:    vmovaps %zmm0, 512(%rax)
15492 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, 448(%rax)
15493 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15494 ; AVX512DQ-NEXT:    vmovaps %zmm0, 384(%rax)
15495 ; AVX512DQ-NEXT:    vmovups (%rsp), %zmm0 # 64-byte Reload
15496 ; AVX512DQ-NEXT:    vmovaps %zmm0, 320(%rax)
15497 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15498 ; AVX512DQ-NEXT:    vmovaps %zmm0, 256(%rax)
15499 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15500 ; AVX512DQ-NEXT:    vmovaps %zmm0, 192(%rax)
15501 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15502 ; AVX512DQ-NEXT:    vmovaps %zmm0, 128(%rax)
15503 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15504 ; AVX512DQ-NEXT:    vmovaps %zmm0, 64(%rax)
15505 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15506 ; AVX512DQ-NEXT:    vmovaps %zmm0, (%rax)
15507 ; AVX512DQ-NEXT:    addq $6216, %rsp # imm = 0x1848
15508 ; AVX512DQ-NEXT:    vzeroupper
15509 ; AVX512DQ-NEXT:    retq
15511 ; AVX512DQ-FCP-LABEL: store_i32_stride8_vf64:
15512 ; AVX512DQ-FCP:       # %bb.0:
15513 ; AVX512DQ-FCP-NEXT:    subq $6216, %rsp # imm = 0x1848
15514 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
15515 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
15516 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%r10), %zmm5
15517 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%r10), %zmm4
15518 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%r10), %zmm2
15519 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rax), %zmm1
15520 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rax), %zmm0
15521 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%rax), %zmm30
15522 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,0,0,0,0,0,0,16,0,0,0,0,0,0,1,17]
15523 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm7
15524 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm6
15525 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm1, %zmm3, %zmm7
15526 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15527 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,0,0,0,0,0,2,18,0,0,0,0,0,0,3,19]
15528 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm7
15529 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm1, %zmm5, %zmm6
15530 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15531 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [0,0,0,0,0,0,4,20,0,0,0,0,0,0,5,21]
15532 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm8
15533 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm1, %zmm6, %zmm8
15534 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15535 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,0,0,0,0,0,6,22,0,0,0,0,0,0,7,23]
15536 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm9
15537 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm1, %zmm8, %zmm9
15538 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15539 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm9
15540 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,0,0,0,0,0,8,24,0,0,0,0,0,0,9,25]
15541 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm10
15542 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm1, %zmm8, %zmm10
15543 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15544 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm10
15545 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,0,0,0,0,0,10,26,0,0,0,0,0,0,11,27]
15546 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm11
15547 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm1, %zmm8, %zmm11
15548 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15549 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm11
15550 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,0,0,0,0,0,12,28,0,0,0,0,0,0,13,29]
15551 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm13
15552 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm12
15553 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm1, %zmm8, %zmm13
15554 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15555 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm7
15556 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,0,0,0,0,0,14,30,0,0,0,0,0,0,15,31]
15557 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm1, %zmm8, %zmm12
15558 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15559 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, %zmm1
15560 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm3, %zmm1
15561 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15562 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, %zmm1
15563 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm5, %zmm1
15564 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15565 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, %zmm1
15566 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm6, %zmm1
15567 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15568 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, %zmm1
15569 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm9, %zmm1
15570 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15571 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, %zmm1
15572 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm10, %zmm1
15573 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15574 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, %zmm1
15575 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm11, %zmm1
15576 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15577 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, %zmm1
15578 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm7, %zmm1
15579 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15580 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm8, %zmm4
15581 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15582 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm0
15583 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm30, %zmm3, %zmm0
15584 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15585 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm0
15586 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm30, %zmm5, %zmm0
15587 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15588 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm0
15589 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm30, %zmm6, %zmm0
15590 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15591 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm0
15592 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm30, %zmm9, %zmm0
15593 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15594 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm0
15595 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm30, %zmm10, %zmm0
15596 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15597 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm0
15598 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm30, %zmm11, %zmm0
15599 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15600 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm0
15601 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm30, %zmm7, %zmm0
15602 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15603 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm30, %zmm8, %zmm2
15604 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15605 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%r10), %zmm1
15606 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%rax), %zmm0
15607 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm3
15608 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15609 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm5
15610 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15611 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm6
15612 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15613 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm9
15614 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15615 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm10
15616 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15617 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm11
15618 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15619 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm7
15620 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15621 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm8, %zmm1
15622 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15623 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%r8), %zmm26
15624 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%r9), %zmm0
15625 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,16,0,0,0,0,0,0,1,17,0,0]
15626 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm26, %zmm2
15627 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm2
15628 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15629 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2
15630 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,2,18,0,0,0,0,0,0,3,19,0,0]
15631 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm26, %zmm3
15632 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm3
15633 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15634 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm3
15635 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,4,20,0,0,0,0,0,0,5,21,0,0]
15636 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm26, %zmm4
15637 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm4
15638 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15639 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4
15640 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,6,22,0,0,0,0,0,0,7,23,0,0]
15641 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm26, %zmm5
15642 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm5
15643 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15644 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm5
15645 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,8,24,0,0,0,0,0,0,9,25,0,0]
15646 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm26, %zmm6
15647 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm6
15648 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15649 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm6
15650 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,10,26,0,0,0,0,0,0,11,27,0,0]
15651 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm26, %zmm7
15652 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm7
15653 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15654 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm7
15655 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,12,28,0,0,0,0,0,0,13,29,0,0]
15656 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm26, %zmm8
15657 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm8
15658 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15659 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm8
15660 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,14,30,0,0,0,0,0,0,15,31,0,0]
15661 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm26
15662 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%r8), %zmm25
15663 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%r9), %zmm0
15664 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm25, %zmm9
15665 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm2, %zmm9
15666 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15667 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm25, %zmm9
15668 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm3, %zmm9
15669 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15670 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm25, %zmm9
15671 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm4, %zmm9
15672 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15673 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm25, %zmm9
15674 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm5, %zmm9
15675 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15676 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm25, %zmm9
15677 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm6, %zmm9
15678 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15679 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm25, %zmm9
15680 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm7, %zmm9
15681 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15682 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm25, %zmm9
15683 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm8, %zmm9
15684 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15685 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm25
15686 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%r8), %zmm22
15687 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%r9), %zmm0
15688 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm22, %zmm9
15689 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm2, %zmm9
15690 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15691 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm22, %zmm9
15692 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm3, %zmm9
15693 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15694 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm22, %zmm9
15695 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm4, %zmm9
15696 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15697 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm22, %zmm9
15698 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm5, %zmm9
15699 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15700 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm22, %zmm9
15701 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm6, %zmm9
15702 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15703 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm22, %zmm9
15704 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm7, %zmm9
15705 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15706 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm22, %zmm9
15707 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm8, %zmm9
15708 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15709 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm22
15710 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%r8), %zmm27
15711 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%r9), %zmm0
15712 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm0, %zmm27, %zmm2
15713 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15714 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm0, %zmm27, %zmm3
15715 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15716 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm0, %zmm27, %zmm4
15717 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15718 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm0, %zmm27, %zmm5
15719 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15720 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm0, %zmm27, %zmm6
15721 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15722 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm0, %zmm27, %zmm7
15723 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15724 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm0, %zmm27, %zmm8
15725 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15726 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm27
15727 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rdx), %zmm8
15728 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rcx), %zmm0
15729 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,16,0,0,0,0,0,0,1,17,0,0,0,0]
15730 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm2
15731 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm2
15732 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15733 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2
15734 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,2,18,0,0,0,0,0,0,3,19,0,0,0,0]
15735 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm3
15736 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm3
15737 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15738 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm3
15739 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,4,20,0,0,0,0,0,0,5,21,0,0,0,0]
15740 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm4
15741 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm4
15742 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15743 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4
15744 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,6,22,0,0,0,0,0,0,7,23,0,0,0,0]
15745 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm5
15746 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm5
15747 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15748 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm5
15749 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,8,24,0,0,0,0,0,0,9,25,0,0,0,0]
15750 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm6
15751 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm6
15752 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15753 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm7
15754 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,10,26,0,0,0,0,0,0,11,27,0,0,0,0]
15755 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm6
15756 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm6
15757 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15758 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm9
15759 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,12,28,0,0,0,0,0,0,13,29,0,0,0,0]
15760 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm6
15761 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm6
15762 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15763 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm10
15764 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,14,30,0,0,0,0,0,0,15,31,0,0,0,0]
15765 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm8
15766 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rdx), %zmm6
15767 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rcx), %zmm0
15768 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm11
15769 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm2, %zmm11
15770 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15771 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm11
15772 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm3, %zmm11
15773 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15774 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm11
15775 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm4, %zmm11
15776 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15777 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm11
15778 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm5, %zmm11
15779 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15780 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm11
15781 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm7, %zmm11
15782 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15783 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm11
15784 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm9, %zmm11
15785 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15786 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm11
15787 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm10, %zmm11
15788 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15789 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm6
15790 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%rdx), %zmm13
15791 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%rcx), %zmm0
15792 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm13, %zmm11
15793 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm2, %zmm11
15794 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15795 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm13, %zmm11
15796 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm3, %zmm11
15797 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15798 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm13, %zmm11
15799 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm4, %zmm11
15800 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15801 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm13, %zmm11
15802 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm5, %zmm11
15803 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15804 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm13, %zmm11
15805 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm7, %zmm11
15806 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15807 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm13, %zmm11
15808 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm9, %zmm11
15809 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15810 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm13, %zmm11
15811 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm10, %zmm11
15812 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15813 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm13
15814 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%rdx), %zmm17
15815 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%rcx), %zmm0
15816 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm0, %zmm17, %zmm2
15817 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15818 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm0, %zmm17, %zmm3
15819 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15820 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm0, %zmm17, %zmm4
15821 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15822 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm0, %zmm17, %zmm5
15823 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15824 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm0, %zmm17, %zmm7
15825 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15826 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm0, %zmm17, %zmm9
15827 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15828 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm0, %zmm17, %zmm10
15829 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15830 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm17
15831 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rdi), %zmm5
15832 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rsi), %zmm0
15833 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [0,16,0,0,0,0,0,0,1,17,0,0,0,0,0,0]
15834 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm1
15835 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm14, %zmm1
15836 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15837 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [2,18,0,0,0,0,0,0,3,19,0,0,0,0,0,0]
15838 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm1
15839 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm11, %zmm1
15840 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15841 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [4,20,0,0,0,0,0,0,5,21,0,0,0,0,0,0]
15842 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm1
15843 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm10, %zmm1
15844 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15845 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [6,22,0,0,0,0,0,0,7,23,0,0,0,0,0,0]
15846 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm1
15847 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm9, %zmm1
15848 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15849 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [8,24,0,0,0,0,0,0,9,25,0,0,0,0,0,0]
15850 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm1
15851 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm7, %zmm1
15852 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15853 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [10,26,0,0,0,0,0,0,11,27,0,0,0,0,0,0]
15854 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm1
15855 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm4, %zmm1
15856 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, (%rsp) # 64-byte Spill
15857 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [12,28,0,0,0,0,0,0,13,29,0,0,0,0,0,0]
15858 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm1
15859 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm3, %zmm1
15860 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15861 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm31 = [14,30,0,0,0,0,0,0,15,31,0,0,0,0,0,0]
15862 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm31, %zmm5
15863 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm12
15864 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rsi), %zmm0
15865 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm1
15866 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm14, %zmm1
15867 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15868 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm1
15869 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm11, %zmm1
15870 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15871 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm1
15872 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm10, %zmm1
15873 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15874 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm1
15875 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm9, %zmm1
15876 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15877 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm30
15878 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm7, %zmm30
15879 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm29
15880 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm4, %zmm29
15881 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm28
15882 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm3, %zmm28
15883 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm31, %zmm12
15884 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm15
15885 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%rsi), %zmm0
15886 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm15, %zmm24
15887 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm14, %zmm24
15888 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm15, %zmm23
15889 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm11, %zmm23
15890 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm15, %zmm21
15891 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm10, %zmm21
15892 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm15, %zmm20
15893 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm9, %zmm20
15894 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm15, %zmm19
15895 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm7, %zmm19
15896 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm15, %zmm18
15897 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm4, %zmm18
15898 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm15, %zmm16
15899 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm3, %zmm16
15900 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm31, %zmm15
15901 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm2
15902 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%rsi), %zmm0
15903 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm0, %zmm2, %zmm14
15904 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm0, %zmm2, %zmm11
15905 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm0, %zmm2, %zmm10
15906 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm0, %zmm2, %zmm9
15907 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm0, %zmm2, %zmm7
15908 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm0, %zmm2, %zmm4
15909 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm0, %zmm2, %zmm3
15910 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm31, %zmm2
15911 ; AVX512DQ-FCP-NEXT:    movb $-120, %al
15912 ; AVX512DQ-FCP-NEXT:    kmovw %eax, %k1
15913 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15914 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
15915 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
15916 ; AVX512DQ-FCP-NEXT:    movb $34, %al
15917 ; AVX512DQ-FCP-NEXT:    kmovw %eax, %k2
15918 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15919 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
15920 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
15921 ; AVX512DQ-FCP-NEXT:    movb $-52, %al
15922 ; AVX512DQ-FCP-NEXT:    kmovw %eax, %k3
15923 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
15924 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15925 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15926 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
15927 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
15928 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15929 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
15930 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
15931 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
15932 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15933 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15934 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
15935 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
15936 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15937 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
15938 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
15939 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
15940 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15941 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15942 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
15943 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
15944 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15945 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
15946 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
15947 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
15948 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15949 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15950 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
15951 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
15952 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15953 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
15954 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
15955 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
15956 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15957 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15958 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
15959 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
15960 ; AVX512DQ-FCP-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
15961 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
15962 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
15963 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
15964 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, (%rsp) # 64-byte Spill
15965 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15966 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
15967 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
15968 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15969 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
15970 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
15971 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
15972 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15973 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15974 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k1}
15975 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm5 {%k2}
15976 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm26, %zmm5 {%k3}
15977 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15978 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
15979 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
15980 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15981 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
15982 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm0 {%k2}
15983 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
15984 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15985 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15986 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
15987 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
15988 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm26 # 64-byte Reload
15989 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15990 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k2}
15991 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm26 {%k3}
15992 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15993 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
15994 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
15995 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
15996 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
15997 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
15998 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm1 {%k3}
15999 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16000 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
16001 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
16002 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16003 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
16004 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k2}
16005 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm31 {%k3}
16006 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16007 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
16008 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
16009 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16010 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm30 {%k2}
16011 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm30 {%k3}
16012 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16013 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
16014 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
16015 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16016 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm29 {%k2}
16017 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm29 {%k3}
16018 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16019 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
16020 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
16021 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16022 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm28 {%k2}
16023 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm28 {%k3}
16024 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16025 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm25 {%k1}
16026 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm12 {%k2}
16027 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm25, %zmm12 {%k3}
16028 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16029 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16030 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
16031 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16032 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm24 {%k2}
16033 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm24 {%k3}
16034 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16035 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16036 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
16037 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16038 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm23 {%k2}
16039 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm23 {%k3}
16040 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16041 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16042 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
16043 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16044 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm21 {%k2}
16045 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm21 {%k3}
16046 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16047 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16048 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
16049 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16050 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm20 {%k2}
16051 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm20 {%k3}
16052 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16053 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16054 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
16055 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16056 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k2}
16057 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm19 {%k3}
16058 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16059 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16060 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
16061 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16062 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm18 {%k2}
16063 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm18 {%k3}
16064 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16065 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16066 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
16067 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16068 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm16 {%k2}
16069 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm16 {%k3}
16070 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16071 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm22 {%k1}
16072 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm13, %zmm15 {%k2}
16073 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm22, %zmm15 {%k3}
16074 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16075 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16076 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
16077 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16078 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm14 {%k2}
16079 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm14 {%k3}
16080 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16081 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16082 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
16083 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16084 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm11 {%k2}
16085 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm11 {%k3}
16086 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16087 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16088 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
16089 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16090 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm10 {%k2}
16091 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm10 {%k3}
16092 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16093 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16094 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
16095 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16096 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm9 {%k2}
16097 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm9 {%k3}
16098 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16099 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16100 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
16101 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16102 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k2}
16103 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm7 {%k3}
16104 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16105 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16106 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
16107 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16108 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k2}
16109 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm4 {%k3}
16110 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16111 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16112 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
16113 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16114 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k2}
16115 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm3 {%k3}
16116 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16117 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm27 {%k1}
16118 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm17, %zmm2 {%k2}
16119 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm27, %zmm2 {%k3}
16120 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
16121 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, 1984(%rax)
16122 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, 1920(%rax)
16123 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, 1856(%rax)
16124 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, 1792(%rax)
16125 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, 1728(%rax)
16126 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, 1664(%rax)
16127 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, 1600(%rax)
16128 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm14, 1536(%rax)
16129 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm15, 1472(%rax)
16130 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm16, 1408(%rax)
16131 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm18, 1344(%rax)
16132 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm19, 1280(%rax)
16133 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm20, 1216(%rax)
16134 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm21, 1152(%rax)
16135 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm23, 1088(%rax)
16136 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm24, 1024(%rax)
16137 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, 960(%rax)
16138 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm28, 896(%rax)
16139 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm29, 832(%rax)
16140 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm30, 768(%rax)
16141 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm31, 704(%rax)
16142 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, 640(%rax)
16143 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm26, 576(%rax)
16144 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16145 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 512(%rax)
16146 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, 448(%rax)
16147 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16148 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 384(%rax)
16149 ; AVX512DQ-FCP-NEXT:    vmovups (%rsp), %zmm0 # 64-byte Reload
16150 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 320(%rax)
16151 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16152 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 256(%rax)
16153 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16154 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 192(%rax)
16155 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16156 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 128(%rax)
16157 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16158 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 64(%rax)
16159 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16160 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, (%rax)
16161 ; AVX512DQ-FCP-NEXT:    addq $6216, %rsp # imm = 0x1848
16162 ; AVX512DQ-FCP-NEXT:    vzeroupper
16163 ; AVX512DQ-FCP-NEXT:    retq
16165 ; AVX512BW-LABEL: store_i32_stride8_vf64:
16166 ; AVX512BW:       # %bb.0:
16167 ; AVX512BW-NEXT:    subq $6216, %rsp # imm = 0x1848
16168 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
16169 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %r10
16170 ; AVX512BW-NEXT:    vmovdqa64 (%r10), %zmm5
16171 ; AVX512BW-NEXT:    vmovdqa64 64(%r10), %zmm4
16172 ; AVX512BW-NEXT:    vmovdqa64 128(%r10), %zmm2
16173 ; AVX512BW-NEXT:    vmovdqa64 (%rax), %zmm1
16174 ; AVX512BW-NEXT:    vmovdqa64 64(%rax), %zmm0
16175 ; AVX512BW-NEXT:    vmovdqa64 128(%rax), %zmm30
16176 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,0,0,0,0,0,0,16,0,0,0,0,0,0,1,17]
16177 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm7
16178 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm6
16179 ; AVX512BW-NEXT:    vpermt2d %zmm1, %zmm3, %zmm7
16180 ; AVX512BW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16181 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,0,0,0,0,0,2,18,0,0,0,0,0,0,3,19]
16182 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm7
16183 ; AVX512BW-NEXT:    vpermt2d %zmm1, %zmm5, %zmm6
16184 ; AVX512BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16185 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [0,0,0,0,0,0,4,20,0,0,0,0,0,0,5,21]
16186 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm8
16187 ; AVX512BW-NEXT:    vpermt2d %zmm1, %zmm6, %zmm8
16188 ; AVX512BW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16189 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,0,0,0,0,0,6,22,0,0,0,0,0,0,7,23]
16190 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm9
16191 ; AVX512BW-NEXT:    vpermt2d %zmm1, %zmm8, %zmm9
16192 ; AVX512BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16193 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm9
16194 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,0,0,0,0,0,8,24,0,0,0,0,0,0,9,25]
16195 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm10
16196 ; AVX512BW-NEXT:    vpermt2d %zmm1, %zmm8, %zmm10
16197 ; AVX512BW-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16198 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm10
16199 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,0,0,0,0,0,10,26,0,0,0,0,0,0,11,27]
16200 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm11
16201 ; AVX512BW-NEXT:    vpermt2d %zmm1, %zmm8, %zmm11
16202 ; AVX512BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16203 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm11
16204 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,0,0,0,0,0,12,28,0,0,0,0,0,0,13,29]
16205 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm13
16206 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm12
16207 ; AVX512BW-NEXT:    vpermt2d %zmm1, %zmm8, %zmm13
16208 ; AVX512BW-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16209 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm7
16210 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,0,0,0,0,0,14,30,0,0,0,0,0,0,15,31]
16211 ; AVX512BW-NEXT:    vpermt2d %zmm1, %zmm8, %zmm12
16212 ; AVX512BW-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16213 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm1
16214 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm3, %zmm1
16215 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16216 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm1
16217 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm5, %zmm1
16218 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16219 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm1
16220 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm6, %zmm1
16221 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16222 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm1
16223 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm9, %zmm1
16224 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16225 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm1
16226 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm10, %zmm1
16227 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16228 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm1
16229 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm11, %zmm1
16230 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16231 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm1
16232 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm7, %zmm1
16233 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16234 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm8, %zmm4
16235 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16236 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm0
16237 ; AVX512BW-NEXT:    vpermt2d %zmm30, %zmm3, %zmm0
16238 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16239 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm0
16240 ; AVX512BW-NEXT:    vpermt2d %zmm30, %zmm5, %zmm0
16241 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16242 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm0
16243 ; AVX512BW-NEXT:    vpermt2d %zmm30, %zmm6, %zmm0
16244 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16245 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm0
16246 ; AVX512BW-NEXT:    vpermt2d %zmm30, %zmm9, %zmm0
16247 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16248 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm0
16249 ; AVX512BW-NEXT:    vpermt2d %zmm30, %zmm10, %zmm0
16250 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16251 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm0
16252 ; AVX512BW-NEXT:    vpermt2d %zmm30, %zmm11, %zmm0
16253 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16254 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm0
16255 ; AVX512BW-NEXT:    vpermt2d %zmm30, %zmm7, %zmm0
16256 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16257 ; AVX512BW-NEXT:    vpermt2d %zmm30, %zmm8, %zmm2
16258 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16259 ; AVX512BW-NEXT:    vmovdqa64 192(%r10), %zmm1
16260 ; AVX512BW-NEXT:    vmovdqa64 192(%rax), %zmm0
16261 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm1, %zmm3
16262 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16263 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm1, %zmm5
16264 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16265 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm1, %zmm6
16266 ; AVX512BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16267 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm1, %zmm9
16268 ; AVX512BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16269 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm1, %zmm10
16270 ; AVX512BW-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16271 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm1, %zmm11
16272 ; AVX512BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16273 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm1, %zmm7
16274 ; AVX512BW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16275 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm8, %zmm1
16276 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16277 ; AVX512BW-NEXT:    vmovdqa64 (%r8), %zmm26
16278 ; AVX512BW-NEXT:    vmovdqa64 (%r9), %zmm0
16279 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,16,0,0,0,0,0,0,1,17,0,0]
16280 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, %zmm2
16281 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm2
16282 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16283 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm2
16284 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,2,18,0,0,0,0,0,0,3,19,0,0]
16285 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, %zmm3
16286 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm3
16287 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16288 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm3
16289 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,4,20,0,0,0,0,0,0,5,21,0,0]
16290 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, %zmm4
16291 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm4
16292 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16293 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm4
16294 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,6,22,0,0,0,0,0,0,7,23,0,0]
16295 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, %zmm5
16296 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm5
16297 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16298 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm5
16299 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,8,24,0,0,0,0,0,0,9,25,0,0]
16300 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, %zmm6
16301 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm6
16302 ; AVX512BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16303 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm6
16304 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,10,26,0,0,0,0,0,0,11,27,0,0]
16305 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, %zmm7
16306 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm7
16307 ; AVX512BW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16308 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm7
16309 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,12,28,0,0,0,0,0,0,13,29,0,0]
16310 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, %zmm8
16311 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm8
16312 ; AVX512BW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16313 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm8
16314 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,14,30,0,0,0,0,0,0,15,31,0,0]
16315 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm26
16316 ; AVX512BW-NEXT:    vmovdqa64 64(%r8), %zmm25
16317 ; AVX512BW-NEXT:    vmovdqa64 64(%r9), %zmm0
16318 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, %zmm9
16319 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm2, %zmm9
16320 ; AVX512BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16321 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, %zmm9
16322 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm3, %zmm9
16323 ; AVX512BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16324 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, %zmm9
16325 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm4, %zmm9
16326 ; AVX512BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16327 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, %zmm9
16328 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm5, %zmm9
16329 ; AVX512BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16330 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, %zmm9
16331 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm6, %zmm9
16332 ; AVX512BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16333 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, %zmm9
16334 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm7, %zmm9
16335 ; AVX512BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16336 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, %zmm9
16337 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm8, %zmm9
16338 ; AVX512BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16339 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm25
16340 ; AVX512BW-NEXT:    vmovdqa64 128(%r8), %zmm22
16341 ; AVX512BW-NEXT:    vmovdqa64 128(%r9), %zmm0
16342 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm9
16343 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm2, %zmm9
16344 ; AVX512BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16345 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm9
16346 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm3, %zmm9
16347 ; AVX512BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16348 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm9
16349 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm4, %zmm9
16350 ; AVX512BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16351 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm9
16352 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm5, %zmm9
16353 ; AVX512BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16354 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm9
16355 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm6, %zmm9
16356 ; AVX512BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16357 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm9
16358 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm7, %zmm9
16359 ; AVX512BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16360 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm9
16361 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm8, %zmm9
16362 ; AVX512BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16363 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm22
16364 ; AVX512BW-NEXT:    vmovdqa64 192(%r8), %zmm27
16365 ; AVX512BW-NEXT:    vmovdqa64 192(%r9), %zmm0
16366 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm27, %zmm2
16367 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16368 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm27, %zmm3
16369 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16370 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm27, %zmm4
16371 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16372 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm27, %zmm5
16373 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16374 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm27, %zmm6
16375 ; AVX512BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16376 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm27, %zmm7
16377 ; AVX512BW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16378 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm27, %zmm8
16379 ; AVX512BW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16380 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm27
16381 ; AVX512BW-NEXT:    vmovdqa64 (%rdx), %zmm8
16382 ; AVX512BW-NEXT:    vmovdqa64 (%rcx), %zmm0
16383 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,16,0,0,0,0,0,0,1,17,0,0,0,0]
16384 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm2
16385 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm2
16386 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16387 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm2
16388 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,2,18,0,0,0,0,0,0,3,19,0,0,0,0]
16389 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm3
16390 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm3
16391 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16392 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm3
16393 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,4,20,0,0,0,0,0,0,5,21,0,0,0,0]
16394 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm4
16395 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm4
16396 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16397 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm4
16398 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,6,22,0,0,0,0,0,0,7,23,0,0,0,0]
16399 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm5
16400 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm5
16401 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16402 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm5
16403 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,8,24,0,0,0,0,0,0,9,25,0,0,0,0]
16404 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm6
16405 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm6
16406 ; AVX512BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16407 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm7
16408 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,10,26,0,0,0,0,0,0,11,27,0,0,0,0]
16409 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm6
16410 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm6
16411 ; AVX512BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16412 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm9
16413 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,12,28,0,0,0,0,0,0,13,29,0,0,0,0]
16414 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm6
16415 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm6
16416 ; AVX512BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16417 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm10
16418 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,14,30,0,0,0,0,0,0,15,31,0,0,0,0]
16419 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm8
16420 ; AVX512BW-NEXT:    vmovdqa64 64(%rdx), %zmm6
16421 ; AVX512BW-NEXT:    vmovdqa64 64(%rcx), %zmm0
16422 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm11
16423 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm2, %zmm11
16424 ; AVX512BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16425 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm11
16426 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm3, %zmm11
16427 ; AVX512BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16428 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm11
16429 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm4, %zmm11
16430 ; AVX512BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16431 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm11
16432 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm5, %zmm11
16433 ; AVX512BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16434 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm11
16435 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm7, %zmm11
16436 ; AVX512BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16437 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm11
16438 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm9, %zmm11
16439 ; AVX512BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16440 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm11
16441 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm10, %zmm11
16442 ; AVX512BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16443 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm6
16444 ; AVX512BW-NEXT:    vmovdqa64 128(%rdx), %zmm13
16445 ; AVX512BW-NEXT:    vmovdqa64 128(%rcx), %zmm0
16446 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm11
16447 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm2, %zmm11
16448 ; AVX512BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16449 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm11
16450 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm3, %zmm11
16451 ; AVX512BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16452 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm11
16453 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm4, %zmm11
16454 ; AVX512BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16455 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm11
16456 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm5, %zmm11
16457 ; AVX512BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16458 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm11
16459 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm7, %zmm11
16460 ; AVX512BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16461 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm11
16462 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm9, %zmm11
16463 ; AVX512BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16464 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm11
16465 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm10, %zmm11
16466 ; AVX512BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16467 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm13
16468 ; AVX512BW-NEXT:    vmovdqa64 192(%rdx), %zmm17
16469 ; AVX512BW-NEXT:    vmovdqa64 192(%rcx), %zmm0
16470 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm17, %zmm2
16471 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16472 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm17, %zmm3
16473 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16474 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm17, %zmm4
16475 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16476 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm17, %zmm5
16477 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16478 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm17, %zmm7
16479 ; AVX512BW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16480 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm17, %zmm9
16481 ; AVX512BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16482 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm17, %zmm10
16483 ; AVX512BW-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16484 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm17
16485 ; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm5
16486 ; AVX512BW-NEXT:    vmovdqa64 (%rsi), %zmm0
16487 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [0,16,0,0,0,0,0,0,1,17,0,0,0,0,0,0]
16488 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm1
16489 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm14, %zmm1
16490 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16491 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [2,18,0,0,0,0,0,0,3,19,0,0,0,0,0,0]
16492 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm1
16493 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm11, %zmm1
16494 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16495 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [4,20,0,0,0,0,0,0,5,21,0,0,0,0,0,0]
16496 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm1
16497 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm10, %zmm1
16498 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16499 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [6,22,0,0,0,0,0,0,7,23,0,0,0,0,0,0]
16500 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm1
16501 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm9, %zmm1
16502 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16503 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [8,24,0,0,0,0,0,0,9,25,0,0,0,0,0,0]
16504 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm1
16505 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm7, %zmm1
16506 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16507 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [10,26,0,0,0,0,0,0,11,27,0,0,0,0,0,0]
16508 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm1
16509 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm4, %zmm1
16510 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, (%rsp) # 64-byte Spill
16511 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [12,28,0,0,0,0,0,0,13,29,0,0,0,0,0,0]
16512 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm1
16513 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm3, %zmm1
16514 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16515 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm31 = [14,30,0,0,0,0,0,0,15,31,0,0,0,0,0,0]
16516 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm31, %zmm5
16517 ; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %zmm12
16518 ; AVX512BW-NEXT:    vmovdqa64 64(%rsi), %zmm0
16519 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm1
16520 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm14, %zmm1
16521 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16522 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm1
16523 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm11, %zmm1
16524 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16525 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm1
16526 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm10, %zmm1
16527 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16528 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm1
16529 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm9, %zmm1
16530 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16531 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm30
16532 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm7, %zmm30
16533 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm29
16534 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm4, %zmm29
16535 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm28
16536 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm3, %zmm28
16537 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm31, %zmm12
16538 ; AVX512BW-NEXT:    vmovdqa64 128(%rdi), %zmm15
16539 ; AVX512BW-NEXT:    vmovdqa64 128(%rsi), %zmm0
16540 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm24
16541 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm14, %zmm24
16542 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm23
16543 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm11, %zmm23
16544 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm21
16545 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm10, %zmm21
16546 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm20
16547 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm9, %zmm20
16548 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm19
16549 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm7, %zmm19
16550 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm18
16551 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm4, %zmm18
16552 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm16
16553 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm3, %zmm16
16554 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm31, %zmm15
16555 ; AVX512BW-NEXT:    vmovdqa64 192(%rdi), %zmm2
16556 ; AVX512BW-NEXT:    vmovdqa64 192(%rsi), %zmm0
16557 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm2, %zmm14
16558 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm2, %zmm11
16559 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm2, %zmm10
16560 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm2, %zmm9
16561 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm2, %zmm7
16562 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm2, %zmm4
16563 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm2, %zmm3
16564 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm31, %zmm2
16565 ; AVX512BW-NEXT:    movb $-120, %al
16566 ; AVX512BW-NEXT:    kmovd %eax, %k1
16567 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16568 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
16569 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
16570 ; AVX512BW-NEXT:    movb $34, %al
16571 ; AVX512BW-NEXT:    kmovd %eax, %k2
16572 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16573 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
16574 ; AVX512BW-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
16575 ; AVX512BW-NEXT:    movb $-52, %al
16576 ; AVX512BW-NEXT:    kmovd %eax, %k3
16577 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
16578 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16579 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16580 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
16581 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
16582 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16583 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
16584 ; AVX512BW-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
16585 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
16586 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16587 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16588 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
16589 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
16590 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16591 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
16592 ; AVX512BW-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
16593 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
16594 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16595 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16596 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
16597 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
16598 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16599 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
16600 ; AVX512BW-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
16601 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
16602 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16603 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16604 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
16605 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
16606 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16607 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
16608 ; AVX512BW-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
16609 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
16610 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16611 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16612 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
16613 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
16614 ; AVX512BW-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
16615 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
16616 ; AVX512BW-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
16617 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
16618 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, (%rsp) # 64-byte Spill
16619 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16620 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
16621 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
16622 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16623 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
16624 ; AVX512BW-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
16625 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
16626 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16627 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16628 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k1}
16629 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm5 {%k2}
16630 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, %zmm5 {%k3}
16631 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16632 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
16633 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
16634 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16635 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
16636 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm0 {%k2}
16637 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
16638 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16639 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16640 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
16641 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
16642 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm26 # 64-byte Reload
16643 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16644 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k2}
16645 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm26 {%k3}
16646 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16647 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
16648 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
16649 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
16650 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16651 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
16652 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm1 {%k3}
16653 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16654 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
16655 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
16656 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16657 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
16658 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k2}
16659 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm31 {%k3}
16660 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16661 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
16662 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
16663 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16664 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm30 {%k2}
16665 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm30 {%k3}
16666 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16667 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
16668 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
16669 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16670 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm29 {%k2}
16671 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm29 {%k3}
16672 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16673 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
16674 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
16675 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16676 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm28 {%k2}
16677 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm28 {%k3}
16678 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16679 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm25 {%k1}
16680 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm12 {%k2}
16681 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, %zmm12 {%k3}
16682 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16683 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16684 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
16685 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16686 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm24 {%k2}
16687 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm24 {%k3}
16688 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16689 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16690 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
16691 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16692 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm23 {%k2}
16693 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm23 {%k3}
16694 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16695 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16696 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
16697 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16698 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm21 {%k2}
16699 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm21 {%k3}
16700 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16701 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16702 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
16703 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16704 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm20 {%k2}
16705 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm20 {%k3}
16706 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16707 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16708 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
16709 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16710 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k2}
16711 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm19 {%k3}
16712 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16713 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16714 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
16715 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16716 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm18 {%k2}
16717 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm18 {%k3}
16718 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16719 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16720 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
16721 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16722 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm16 {%k2}
16723 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm16 {%k3}
16724 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16725 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm22 {%k1}
16726 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm15 {%k2}
16727 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm15 {%k3}
16728 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16729 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16730 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
16731 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16732 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm14 {%k2}
16733 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm14 {%k3}
16734 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16735 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16736 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
16737 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16738 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm11 {%k2}
16739 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm11 {%k3}
16740 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16741 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16742 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
16743 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16744 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm10 {%k2}
16745 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm10 {%k3}
16746 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16747 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16748 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
16749 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16750 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm9 {%k2}
16751 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm9 {%k3}
16752 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16753 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16754 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
16755 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16756 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k2}
16757 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm7 {%k3}
16758 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16759 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16760 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
16761 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16762 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k2}
16763 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm4 {%k3}
16764 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16765 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16766 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
16767 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16768 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k2}
16769 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm3 {%k3}
16770 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16771 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm27 {%k1}
16772 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm2 {%k2}
16773 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, %zmm2 {%k3}
16774 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
16775 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, 1984(%rax)
16776 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, 1920(%rax)
16777 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, 1856(%rax)
16778 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, 1792(%rax)
16779 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, 1728(%rax)
16780 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, 1664(%rax)
16781 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, 1600(%rax)
16782 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, 1536(%rax)
16783 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, 1472(%rax)
16784 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, 1408(%rax)
16785 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, 1344(%rax)
16786 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, 1280(%rax)
16787 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, 1216(%rax)
16788 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, 1152(%rax)
16789 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, 1088(%rax)
16790 ; AVX512BW-NEXT:    vmovdqa64 %zmm24, 1024(%rax)
16791 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, 960(%rax)
16792 ; AVX512BW-NEXT:    vmovdqa64 %zmm28, 896(%rax)
16793 ; AVX512BW-NEXT:    vmovdqa64 %zmm29, 832(%rax)
16794 ; AVX512BW-NEXT:    vmovdqa64 %zmm30, 768(%rax)
16795 ; AVX512BW-NEXT:    vmovdqa64 %zmm31, 704(%rax)
16796 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, 640(%rax)
16797 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, 576(%rax)
16798 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16799 ; AVX512BW-NEXT:    vmovaps %zmm0, 512(%rax)
16800 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, 448(%rax)
16801 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16802 ; AVX512BW-NEXT:    vmovaps %zmm0, 384(%rax)
16803 ; AVX512BW-NEXT:    vmovups (%rsp), %zmm0 # 64-byte Reload
16804 ; AVX512BW-NEXT:    vmovaps %zmm0, 320(%rax)
16805 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16806 ; AVX512BW-NEXT:    vmovaps %zmm0, 256(%rax)
16807 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16808 ; AVX512BW-NEXT:    vmovaps %zmm0, 192(%rax)
16809 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16810 ; AVX512BW-NEXT:    vmovaps %zmm0, 128(%rax)
16811 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16812 ; AVX512BW-NEXT:    vmovaps %zmm0, 64(%rax)
16813 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
16814 ; AVX512BW-NEXT:    vmovaps %zmm0, (%rax)
16815 ; AVX512BW-NEXT:    addq $6216, %rsp # imm = 0x1848
16816 ; AVX512BW-NEXT:    vzeroupper
16817 ; AVX512BW-NEXT:    retq
16819 ; AVX512BW-FCP-LABEL: store_i32_stride8_vf64:
16820 ; AVX512BW-FCP:       # %bb.0:
16821 ; AVX512BW-FCP-NEXT:    subq $6216, %rsp # imm = 0x1848
16822 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
16823 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
16824 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%r10), %zmm5
16825 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%r10), %zmm4
16826 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%r10), %zmm2
16827 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rax), %zmm1
16828 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rax), %zmm0
16829 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%rax), %zmm30
16830 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,0,0,0,0,0,0,16,0,0,0,0,0,0,1,17]
16831 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm7
16832 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm6
16833 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm1, %zmm3, %zmm7
16834 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16835 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,0,0,0,0,0,2,18,0,0,0,0,0,0,3,19]
16836 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm7
16837 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm1, %zmm5, %zmm6
16838 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16839 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [0,0,0,0,0,0,4,20,0,0,0,0,0,0,5,21]
16840 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm8
16841 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm1, %zmm6, %zmm8
16842 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16843 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,0,0,0,0,0,6,22,0,0,0,0,0,0,7,23]
16844 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm9
16845 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm1, %zmm8, %zmm9
16846 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16847 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm9
16848 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,0,0,0,0,0,8,24,0,0,0,0,0,0,9,25]
16849 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm10
16850 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm1, %zmm8, %zmm10
16851 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16852 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm10
16853 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,0,0,0,0,0,10,26,0,0,0,0,0,0,11,27]
16854 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm11
16855 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm1, %zmm8, %zmm11
16856 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16857 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm11
16858 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,0,0,0,0,0,12,28,0,0,0,0,0,0,13,29]
16859 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm13
16860 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm12
16861 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm1, %zmm8, %zmm13
16862 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16863 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm7
16864 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,0,0,0,0,0,14,30,0,0,0,0,0,0,15,31]
16865 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm1, %zmm8, %zmm12
16866 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16867 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm1
16868 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm3, %zmm1
16869 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16870 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm1
16871 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm5, %zmm1
16872 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16873 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm1
16874 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm6, %zmm1
16875 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16876 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm1
16877 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm9, %zmm1
16878 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16879 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm1
16880 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm10, %zmm1
16881 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16882 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm1
16883 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm11, %zmm1
16884 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16885 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm1
16886 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm7, %zmm1
16887 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16888 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm8, %zmm4
16889 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16890 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm0
16891 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm30, %zmm3, %zmm0
16892 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16893 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm0
16894 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm30, %zmm5, %zmm0
16895 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16896 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm0
16897 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm30, %zmm6, %zmm0
16898 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16899 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm0
16900 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm30, %zmm9, %zmm0
16901 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16902 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm0
16903 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm30, %zmm10, %zmm0
16904 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16905 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm0
16906 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm30, %zmm11, %zmm0
16907 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16908 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm0
16909 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm30, %zmm7, %zmm0
16910 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16911 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm30, %zmm8, %zmm2
16912 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16913 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%r10), %zmm1
16914 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%rax), %zmm0
16915 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm3
16916 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16917 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm5
16918 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16919 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm6
16920 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16921 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm9
16922 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16923 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm10
16924 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16925 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm11
16926 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16927 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm7
16928 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16929 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm8, %zmm1
16930 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16931 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%r8), %zmm26
16932 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%r9), %zmm0
16933 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,16,0,0,0,0,0,0,1,17,0,0]
16934 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm26, %zmm2
16935 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm2
16936 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16937 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2
16938 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,2,18,0,0,0,0,0,0,3,19,0,0]
16939 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm26, %zmm3
16940 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm3
16941 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16942 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm3
16943 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,4,20,0,0,0,0,0,0,5,21,0,0]
16944 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm26, %zmm4
16945 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm4
16946 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16947 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4
16948 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,6,22,0,0,0,0,0,0,7,23,0,0]
16949 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm26, %zmm5
16950 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm5
16951 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16952 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm5
16953 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,8,24,0,0,0,0,0,0,9,25,0,0]
16954 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm26, %zmm6
16955 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm6
16956 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16957 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm6
16958 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,10,26,0,0,0,0,0,0,11,27,0,0]
16959 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm26, %zmm7
16960 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm7
16961 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16962 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm7
16963 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,12,28,0,0,0,0,0,0,13,29,0,0]
16964 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm26, %zmm8
16965 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm8
16966 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16967 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm8
16968 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,14,30,0,0,0,0,0,0,15,31,0,0]
16969 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm26
16970 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%r8), %zmm25
16971 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%r9), %zmm0
16972 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm25, %zmm9
16973 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm2, %zmm9
16974 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16975 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm25, %zmm9
16976 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm3, %zmm9
16977 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16978 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm25, %zmm9
16979 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm4, %zmm9
16980 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16981 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm25, %zmm9
16982 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm5, %zmm9
16983 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16984 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm25, %zmm9
16985 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm6, %zmm9
16986 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16987 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm25, %zmm9
16988 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm7, %zmm9
16989 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16990 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm25, %zmm9
16991 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm8, %zmm9
16992 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16993 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm25
16994 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%r8), %zmm22
16995 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%r9), %zmm0
16996 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm9
16997 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm2, %zmm9
16998 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16999 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm9
17000 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm3, %zmm9
17001 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17002 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm9
17003 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm4, %zmm9
17004 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17005 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm9
17006 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm5, %zmm9
17007 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17008 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm9
17009 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm6, %zmm9
17010 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17011 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm9
17012 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm7, %zmm9
17013 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17014 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm9
17015 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm8, %zmm9
17016 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17017 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm22
17018 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%r8), %zmm27
17019 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%r9), %zmm0
17020 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm0, %zmm27, %zmm2
17021 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17022 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm0, %zmm27, %zmm3
17023 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17024 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm0, %zmm27, %zmm4
17025 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17026 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm0, %zmm27, %zmm5
17027 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17028 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm0, %zmm27, %zmm6
17029 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17030 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm0, %zmm27, %zmm7
17031 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17032 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm0, %zmm27, %zmm8
17033 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17034 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm27
17035 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdx), %zmm8
17036 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rcx), %zmm0
17037 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,16,0,0,0,0,0,0,1,17,0,0,0,0]
17038 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm2
17039 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm2
17040 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17041 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2
17042 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,2,18,0,0,0,0,0,0,3,19,0,0,0,0]
17043 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm3
17044 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm3
17045 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17046 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm3
17047 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,4,20,0,0,0,0,0,0,5,21,0,0,0,0]
17048 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm4
17049 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm4
17050 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17051 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4
17052 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,6,22,0,0,0,0,0,0,7,23,0,0,0,0]
17053 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm5
17054 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm5
17055 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17056 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm5
17057 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,8,24,0,0,0,0,0,0,9,25,0,0,0,0]
17058 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm6
17059 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm6
17060 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17061 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm7
17062 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,10,26,0,0,0,0,0,0,11,27,0,0,0,0]
17063 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm6
17064 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm6
17065 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17066 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm9
17067 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,12,28,0,0,0,0,0,0,13,29,0,0,0,0]
17068 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm6
17069 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm6
17070 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17071 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm10
17072 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,14,30,0,0,0,0,0,0,15,31,0,0,0,0]
17073 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm8
17074 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rdx), %zmm6
17075 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rcx), %zmm0
17076 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm11
17077 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm2, %zmm11
17078 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17079 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm11
17080 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm3, %zmm11
17081 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17082 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm11
17083 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm4, %zmm11
17084 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17085 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm11
17086 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm5, %zmm11
17087 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17088 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm11
17089 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm7, %zmm11
17090 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17091 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm11
17092 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm9, %zmm11
17093 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17094 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm11
17095 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm10, %zmm11
17096 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17097 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm6
17098 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%rdx), %zmm13
17099 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%rcx), %zmm0
17100 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm11
17101 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm2, %zmm11
17102 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17103 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm11
17104 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm3, %zmm11
17105 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17106 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm11
17107 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm4, %zmm11
17108 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17109 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm11
17110 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm5, %zmm11
17111 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17112 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm11
17113 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm7, %zmm11
17114 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17115 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm11
17116 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm9, %zmm11
17117 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17118 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm11
17119 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm10, %zmm11
17120 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17121 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm13
17122 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%rdx), %zmm17
17123 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%rcx), %zmm0
17124 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm0, %zmm17, %zmm2
17125 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17126 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm0, %zmm17, %zmm3
17127 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17128 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm0, %zmm17, %zmm4
17129 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17130 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm0, %zmm17, %zmm5
17131 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17132 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm0, %zmm17, %zmm7
17133 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17134 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm0, %zmm17, %zmm9
17135 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17136 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm0, %zmm17, %zmm10
17137 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17138 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm17
17139 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm5
17140 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rsi), %zmm0
17141 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [0,16,0,0,0,0,0,0,1,17,0,0,0,0,0,0]
17142 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm1
17143 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm14, %zmm1
17144 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17145 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [2,18,0,0,0,0,0,0,3,19,0,0,0,0,0,0]
17146 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm1
17147 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm11, %zmm1
17148 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17149 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [4,20,0,0,0,0,0,0,5,21,0,0,0,0,0,0]
17150 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm1
17151 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm10, %zmm1
17152 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17153 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [6,22,0,0,0,0,0,0,7,23,0,0,0,0,0,0]
17154 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm1
17155 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm9, %zmm1
17156 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17157 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [8,24,0,0,0,0,0,0,9,25,0,0,0,0,0,0]
17158 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm1
17159 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm7, %zmm1
17160 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17161 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [10,26,0,0,0,0,0,0,11,27,0,0,0,0,0,0]
17162 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm1
17163 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm4, %zmm1
17164 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, (%rsp) # 64-byte Spill
17165 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [12,28,0,0,0,0,0,0,13,29,0,0,0,0,0,0]
17166 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm1
17167 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm3, %zmm1
17168 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17169 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm31 = [14,30,0,0,0,0,0,0,15,31,0,0,0,0,0,0]
17170 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm31, %zmm5
17171 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm12
17172 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rsi), %zmm0
17173 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm1
17174 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm14, %zmm1
17175 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17176 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm1
17177 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm11, %zmm1
17178 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17179 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm1
17180 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm10, %zmm1
17181 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17182 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm1
17183 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm9, %zmm1
17184 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17185 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm30
17186 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm7, %zmm30
17187 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm29
17188 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm4, %zmm29
17189 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm28
17190 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm3, %zmm28
17191 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm31, %zmm12
17192 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm15
17193 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%rsi), %zmm0
17194 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm24
17195 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm14, %zmm24
17196 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm23
17197 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm11, %zmm23
17198 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm21
17199 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm10, %zmm21
17200 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm20
17201 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm9, %zmm20
17202 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm19
17203 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm7, %zmm19
17204 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm18
17205 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm4, %zmm18
17206 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm16
17207 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm3, %zmm16
17208 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm31, %zmm15
17209 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm2
17210 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%rsi), %zmm0
17211 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm0, %zmm2, %zmm14
17212 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm0, %zmm2, %zmm11
17213 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm0, %zmm2, %zmm10
17214 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm0, %zmm2, %zmm9
17215 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm0, %zmm2, %zmm7
17216 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm0, %zmm2, %zmm4
17217 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm0, %zmm2, %zmm3
17218 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm31, %zmm2
17219 ; AVX512BW-FCP-NEXT:    movb $-120, %al
17220 ; AVX512BW-FCP-NEXT:    kmovd %eax, %k1
17221 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17222 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
17223 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
17224 ; AVX512BW-FCP-NEXT:    movb $34, %al
17225 ; AVX512BW-FCP-NEXT:    kmovd %eax, %k2
17226 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17227 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
17228 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
17229 ; AVX512BW-FCP-NEXT:    movb $-52, %al
17230 ; AVX512BW-FCP-NEXT:    kmovd %eax, %k3
17231 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
17232 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17233 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17234 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
17235 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
17236 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17237 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
17238 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
17239 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
17240 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17241 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17242 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
17243 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
17244 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17245 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
17246 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
17247 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
17248 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17249 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17250 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
17251 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
17252 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17253 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
17254 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
17255 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
17256 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17257 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17258 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
17259 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
17260 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17261 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
17262 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
17263 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
17264 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17265 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17266 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
17267 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
17268 ; AVX512BW-FCP-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
17269 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
17270 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
17271 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
17272 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, (%rsp) # 64-byte Spill
17273 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17274 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
17275 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
17276 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17277 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
17278 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
17279 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
17280 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17281 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17282 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k1}
17283 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm5 {%k2}
17284 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm26, %zmm5 {%k3}
17285 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17286 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
17287 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
17288 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17289 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
17290 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm0 {%k2}
17291 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
17292 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17293 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17294 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
17295 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
17296 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm26 # 64-byte Reload
17297 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17298 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k2}
17299 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm26 {%k3}
17300 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17301 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
17302 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
17303 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
17304 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17305 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
17306 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm1 {%k3}
17307 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17308 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
17309 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
17310 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17311 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
17312 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k2}
17313 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm31 {%k3}
17314 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17315 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
17316 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
17317 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17318 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm30 {%k2}
17319 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm30 {%k3}
17320 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17321 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
17322 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
17323 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17324 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm29 {%k2}
17325 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm29 {%k3}
17326 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17327 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
17328 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
17329 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17330 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm28 {%k2}
17331 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm28 {%k3}
17332 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17333 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm25 {%k1}
17334 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm12 {%k2}
17335 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm25, %zmm12 {%k3}
17336 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17337 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
17338 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
17339 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17340 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm24 {%k2}
17341 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm24 {%k3}
17342 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17343 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
17344 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
17345 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17346 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm23 {%k2}
17347 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm23 {%k3}
17348 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17349 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
17350 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
17351 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17352 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm21 {%k2}
17353 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm21 {%k3}
17354 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17355 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
17356 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
17357 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17358 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm20 {%k2}
17359 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm20 {%k3}
17360 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17361 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
17362 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
17363 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17364 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k2}
17365 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm19 {%k3}
17366 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17367 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
17368 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
17369 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17370 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm18 {%k2}
17371 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm18 {%k3}
17372 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17373 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
17374 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
17375 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17376 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm16 {%k2}
17377 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm16 {%k3}
17378 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17379 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm22 {%k1}
17380 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm15 {%k2}
17381 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm15 {%k3}
17382 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17383 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
17384 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
17385 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17386 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm14 {%k2}
17387 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm14 {%k3}
17388 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17389 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
17390 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
17391 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17392 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm11 {%k2}
17393 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm11 {%k3}
17394 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17395 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
17396 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
17397 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17398 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm10 {%k2}
17399 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm10 {%k3}
17400 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17401 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
17402 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
17403 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17404 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm9 {%k2}
17405 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm9 {%k3}
17406 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17407 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
17408 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
17409 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17410 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k2}
17411 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm7 {%k3}
17412 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17413 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
17414 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
17415 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17416 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k2}
17417 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm4 {%k3}
17418 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17419 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
17420 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
17421 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17422 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k2}
17423 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm3 {%k3}
17424 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17425 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm27 {%k1}
17426 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm17, %zmm2 {%k2}
17427 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm27, %zmm2 {%k3}
17428 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
17429 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, 1984(%rax)
17430 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, 1920(%rax)
17431 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, 1856(%rax)
17432 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, 1792(%rax)
17433 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm9, 1728(%rax)
17434 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm10, 1664(%rax)
17435 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm11, 1600(%rax)
17436 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm14, 1536(%rax)
17437 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm15, 1472(%rax)
17438 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, 1408(%rax)
17439 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm18, 1344(%rax)
17440 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm19, 1280(%rax)
17441 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm20, 1216(%rax)
17442 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm21, 1152(%rax)
17443 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm23, 1088(%rax)
17444 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm24, 1024(%rax)
17445 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, 960(%rax)
17446 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm28, 896(%rax)
17447 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm29, 832(%rax)
17448 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm30, 768(%rax)
17449 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm31, 704(%rax)
17450 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, 640(%rax)
17451 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm26, 576(%rax)
17452 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17453 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 512(%rax)
17454 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, 448(%rax)
17455 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17456 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 384(%rax)
17457 ; AVX512BW-FCP-NEXT:    vmovups (%rsp), %zmm0 # 64-byte Reload
17458 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 320(%rax)
17459 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17460 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 256(%rax)
17461 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17462 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 192(%rax)
17463 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17464 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 128(%rax)
17465 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17466 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 64(%rax)
17467 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17468 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, (%rax)
17469 ; AVX512BW-FCP-NEXT:    addq $6216, %rsp # imm = 0x1848
17470 ; AVX512BW-FCP-NEXT:    vzeroupper
17471 ; AVX512BW-FCP-NEXT:    retq
17473 ; AVX512DQ-BW-LABEL: store_i32_stride8_vf64:
17474 ; AVX512DQ-BW:       # %bb.0:
17475 ; AVX512DQ-BW-NEXT:    subq $6216, %rsp # imm = 0x1848
17476 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
17477 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %r10
17478 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%r10), %zmm5
17479 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%r10), %zmm4
17480 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%r10), %zmm2
17481 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rax), %zmm1
17482 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rax), %zmm0
17483 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%rax), %zmm30
17484 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,0,0,0,0,0,0,16,0,0,0,0,0,0,1,17]
17485 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm7
17486 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm6
17487 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm1, %zmm3, %zmm7
17488 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17489 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,0,0,0,0,0,2,18,0,0,0,0,0,0,3,19]
17490 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm7
17491 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm1, %zmm5, %zmm6
17492 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17493 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [0,0,0,0,0,0,4,20,0,0,0,0,0,0,5,21]
17494 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, %zmm8
17495 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm1, %zmm6, %zmm8
17496 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17497 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,0,0,0,0,0,6,22,0,0,0,0,0,0,7,23]
17498 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, %zmm9
17499 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm1, %zmm8, %zmm9
17500 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17501 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm9
17502 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,0,0,0,0,0,8,24,0,0,0,0,0,0,9,25]
17503 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, %zmm10
17504 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm1, %zmm8, %zmm10
17505 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17506 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm10
17507 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,0,0,0,0,0,10,26,0,0,0,0,0,0,11,27]
17508 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, %zmm11
17509 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm1, %zmm8, %zmm11
17510 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17511 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm11
17512 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,0,0,0,0,0,12,28,0,0,0,0,0,0,13,29]
17513 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, %zmm13
17514 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, %zmm12
17515 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm1, %zmm8, %zmm13
17516 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17517 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm7
17518 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,0,0,0,0,0,14,30,0,0,0,0,0,0,15,31]
17519 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm1, %zmm8, %zmm12
17520 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17521 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm1
17522 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm3, %zmm1
17523 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17524 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm1
17525 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm5, %zmm1
17526 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17527 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm1
17528 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm6, %zmm1
17529 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17530 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm1
17531 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm9, %zmm1
17532 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17533 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm1
17534 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm10, %zmm1
17535 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17536 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm1
17537 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm11, %zmm1
17538 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17539 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm1
17540 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm7, %zmm1
17541 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17542 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm8, %zmm4
17543 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17544 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm0
17545 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm30, %zmm3, %zmm0
17546 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17547 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm0
17548 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm30, %zmm5, %zmm0
17549 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17550 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm0
17551 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm30, %zmm6, %zmm0
17552 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17553 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm0
17554 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm30, %zmm9, %zmm0
17555 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17556 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm0
17557 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm30, %zmm10, %zmm0
17558 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17559 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm0
17560 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm30, %zmm11, %zmm0
17561 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17562 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm0
17563 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm30, %zmm7, %zmm0
17564 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17565 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm30, %zmm8, %zmm2
17566 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17567 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%r10), %zmm1
17568 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%rax), %zmm0
17569 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm0, %zmm1, %zmm3
17570 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17571 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm0, %zmm1, %zmm5
17572 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17573 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm0, %zmm1, %zmm6
17574 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17575 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm0, %zmm1, %zmm9
17576 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17577 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm0, %zmm1, %zmm10
17578 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17579 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm0, %zmm1, %zmm11
17580 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17581 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm0, %zmm1, %zmm7
17582 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17583 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm8, %zmm1
17584 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17585 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%r8), %zmm26
17586 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%r9), %zmm0
17587 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,16,0,0,0,0,0,0,1,17,0,0]
17588 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm26, %zmm2
17589 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm2
17590 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17591 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm2
17592 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,2,18,0,0,0,0,0,0,3,19,0,0]
17593 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm26, %zmm3
17594 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm3
17595 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17596 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm3
17597 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,4,20,0,0,0,0,0,0,5,21,0,0]
17598 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm26, %zmm4
17599 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm4
17600 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17601 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm4
17602 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,6,22,0,0,0,0,0,0,7,23,0,0]
17603 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm26, %zmm5
17604 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm5
17605 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17606 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm5
17607 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,8,24,0,0,0,0,0,0,9,25,0,0]
17608 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm26, %zmm6
17609 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm6
17610 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17611 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm6
17612 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,10,26,0,0,0,0,0,0,11,27,0,0]
17613 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm26, %zmm7
17614 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm7
17615 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17616 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm7
17617 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,12,28,0,0,0,0,0,0,13,29,0,0]
17618 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm26, %zmm8
17619 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm8
17620 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17621 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm8
17622 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,14,30,0,0,0,0,0,0,15,31,0,0]
17623 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm26
17624 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%r8), %zmm25
17625 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%r9), %zmm0
17626 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm25, %zmm9
17627 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm2, %zmm9
17628 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17629 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm25, %zmm9
17630 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm3, %zmm9
17631 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17632 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm25, %zmm9
17633 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm4, %zmm9
17634 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17635 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm25, %zmm9
17636 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm5, %zmm9
17637 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17638 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm25, %zmm9
17639 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm6, %zmm9
17640 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17641 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm25, %zmm9
17642 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm7, %zmm9
17643 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17644 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm25, %zmm9
17645 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm8, %zmm9
17646 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17647 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm25
17648 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%r8), %zmm22
17649 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%r9), %zmm0
17650 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm22, %zmm9
17651 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm2, %zmm9
17652 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17653 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm22, %zmm9
17654 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm3, %zmm9
17655 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17656 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm22, %zmm9
17657 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm4, %zmm9
17658 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17659 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm22, %zmm9
17660 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm5, %zmm9
17661 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17662 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm22, %zmm9
17663 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm6, %zmm9
17664 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17665 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm22, %zmm9
17666 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm7, %zmm9
17667 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17668 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm22, %zmm9
17669 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm8, %zmm9
17670 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17671 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm22
17672 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%r8), %zmm27
17673 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%r9), %zmm0
17674 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm0, %zmm27, %zmm2
17675 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17676 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm0, %zmm27, %zmm3
17677 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17678 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm0, %zmm27, %zmm4
17679 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17680 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm0, %zmm27, %zmm5
17681 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17682 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm0, %zmm27, %zmm6
17683 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17684 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm0, %zmm27, %zmm7
17685 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17686 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm0, %zmm27, %zmm8
17687 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17688 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm27
17689 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rdx), %zmm8
17690 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rcx), %zmm0
17691 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,16,0,0,0,0,0,0,1,17,0,0,0,0]
17692 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm2
17693 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm2
17694 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17695 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm2
17696 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,2,18,0,0,0,0,0,0,3,19,0,0,0,0]
17697 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm3
17698 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm3
17699 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17700 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm3
17701 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,4,20,0,0,0,0,0,0,5,21,0,0,0,0]
17702 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm4
17703 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm4
17704 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17705 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm4
17706 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,6,22,0,0,0,0,0,0,7,23,0,0,0,0]
17707 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm5
17708 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm5
17709 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17710 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm5
17711 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,8,24,0,0,0,0,0,0,9,25,0,0,0,0]
17712 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm6
17713 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm6
17714 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17715 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm7
17716 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,10,26,0,0,0,0,0,0,11,27,0,0,0,0]
17717 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm6
17718 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm6
17719 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17720 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm9
17721 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,12,28,0,0,0,0,0,0,13,29,0,0,0,0]
17722 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm6
17723 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm6
17724 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17725 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm10
17726 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,14,30,0,0,0,0,0,0,15,31,0,0,0,0]
17727 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm8
17728 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rdx), %zmm6
17729 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rcx), %zmm0
17730 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm11
17731 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm2, %zmm11
17732 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17733 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm11
17734 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm3, %zmm11
17735 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17736 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm11
17737 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm4, %zmm11
17738 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17739 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm11
17740 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm5, %zmm11
17741 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17742 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm11
17743 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm7, %zmm11
17744 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17745 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm11
17746 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm9, %zmm11
17747 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17748 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm11
17749 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm10, %zmm11
17750 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17751 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm6
17752 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%rdx), %zmm13
17753 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%rcx), %zmm0
17754 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm13, %zmm11
17755 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm2, %zmm11
17756 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17757 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm13, %zmm11
17758 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm3, %zmm11
17759 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17760 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm13, %zmm11
17761 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm4, %zmm11
17762 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17763 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm13, %zmm11
17764 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm5, %zmm11
17765 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17766 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm13, %zmm11
17767 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm7, %zmm11
17768 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17769 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm13, %zmm11
17770 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm9, %zmm11
17771 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17772 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm13, %zmm11
17773 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm10, %zmm11
17774 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17775 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm13
17776 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%rdx), %zmm17
17777 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%rcx), %zmm0
17778 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm0, %zmm17, %zmm2
17779 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17780 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm0, %zmm17, %zmm3
17781 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17782 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm0, %zmm17, %zmm4
17783 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17784 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm0, %zmm17, %zmm5
17785 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17786 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm0, %zmm17, %zmm7
17787 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17788 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm0, %zmm17, %zmm9
17789 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17790 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm0, %zmm17, %zmm10
17791 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17792 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm17
17793 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rdi), %zmm5
17794 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rsi), %zmm0
17795 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [0,16,0,0,0,0,0,0,1,17,0,0,0,0,0,0]
17796 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm1
17797 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm14, %zmm1
17798 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17799 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [2,18,0,0,0,0,0,0,3,19,0,0,0,0,0,0]
17800 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm1
17801 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm11, %zmm1
17802 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17803 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [4,20,0,0,0,0,0,0,5,21,0,0,0,0,0,0]
17804 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm1
17805 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm10, %zmm1
17806 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17807 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [6,22,0,0,0,0,0,0,7,23,0,0,0,0,0,0]
17808 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm1
17809 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm9, %zmm1
17810 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17811 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [8,24,0,0,0,0,0,0,9,25,0,0,0,0,0,0]
17812 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm1
17813 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm7, %zmm1
17814 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17815 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [10,26,0,0,0,0,0,0,11,27,0,0,0,0,0,0]
17816 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm1
17817 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm4, %zmm1
17818 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, (%rsp) # 64-byte Spill
17819 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [12,28,0,0,0,0,0,0,13,29,0,0,0,0,0,0]
17820 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm1
17821 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm3, %zmm1
17822 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17823 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm31 = [14,30,0,0,0,0,0,0,15,31,0,0,0,0,0,0]
17824 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm31, %zmm5
17825 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rdi), %zmm12
17826 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rsi), %zmm0
17827 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm12, %zmm1
17828 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm14, %zmm1
17829 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17830 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm12, %zmm1
17831 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm11, %zmm1
17832 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17833 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm12, %zmm1
17834 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm10, %zmm1
17835 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17836 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm12, %zmm1
17837 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm9, %zmm1
17838 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17839 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm12, %zmm30
17840 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm7, %zmm30
17841 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm12, %zmm29
17842 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm4, %zmm29
17843 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm12, %zmm28
17844 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm3, %zmm28
17845 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm31, %zmm12
17846 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%rdi), %zmm15
17847 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%rsi), %zmm0
17848 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, %zmm24
17849 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm14, %zmm24
17850 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, %zmm23
17851 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm11, %zmm23
17852 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, %zmm21
17853 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm10, %zmm21
17854 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, %zmm20
17855 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm9, %zmm20
17856 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, %zmm19
17857 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm7, %zmm19
17858 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, %zmm18
17859 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm4, %zmm18
17860 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, %zmm16
17861 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm3, %zmm16
17862 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm31, %zmm15
17863 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%rdi), %zmm2
17864 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%rsi), %zmm0
17865 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm0, %zmm2, %zmm14
17866 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm0, %zmm2, %zmm11
17867 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm0, %zmm2, %zmm10
17868 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm0, %zmm2, %zmm9
17869 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm0, %zmm2, %zmm7
17870 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm0, %zmm2, %zmm4
17871 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm0, %zmm2, %zmm3
17872 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm31, %zmm2
17873 ; AVX512DQ-BW-NEXT:    movb $-120, %al
17874 ; AVX512DQ-BW-NEXT:    kmovd %eax, %k1
17875 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17876 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
17877 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
17878 ; AVX512DQ-BW-NEXT:    movb $34, %al
17879 ; AVX512DQ-BW-NEXT:    kmovd %eax, %k2
17880 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17881 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
17882 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
17883 ; AVX512DQ-BW-NEXT:    movb $-52, %al
17884 ; AVX512DQ-BW-NEXT:    kmovd %eax, %k3
17885 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
17886 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17887 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17888 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
17889 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
17890 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17891 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
17892 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
17893 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
17894 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17895 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17896 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
17897 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
17898 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17899 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
17900 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
17901 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
17902 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17903 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17904 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
17905 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
17906 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17907 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
17908 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
17909 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
17910 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17911 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17912 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
17913 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
17914 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17915 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
17916 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
17917 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
17918 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17919 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17920 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
17921 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
17922 ; AVX512DQ-BW-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
17923 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
17924 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
17925 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
17926 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, (%rsp) # 64-byte Spill
17927 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17928 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
17929 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
17930 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17931 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
17932 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
17933 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
17934 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17935 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17936 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k1}
17937 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm5 {%k2}
17938 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm26, %zmm5 {%k3}
17939 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17940 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
17941 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
17942 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17943 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
17944 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm0 {%k2}
17945 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
17946 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17947 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17948 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
17949 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
17950 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm26 # 64-byte Reload
17951 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17952 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k2}
17953 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm26 {%k3}
17954 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17955 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
17956 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
17957 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
17958 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17959 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
17960 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm1 {%k3}
17961 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17962 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
17963 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
17964 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17965 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
17966 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k2}
17967 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm31 {%k3}
17968 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17969 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
17970 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
17971 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17972 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm30 {%k2}
17973 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm30 {%k3}
17974 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17975 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
17976 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
17977 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17978 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm29 {%k2}
17979 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm29 {%k3}
17980 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17981 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
17982 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
17983 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17984 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm28 {%k2}
17985 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm28 {%k3}
17986 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17987 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm25 {%k1}
17988 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm12 {%k2}
17989 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm25, %zmm12 {%k3}
17990 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17991 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
17992 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
17993 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17994 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm24 {%k2}
17995 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm24 {%k3}
17996 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17997 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
17998 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
17999 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18000 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm23 {%k2}
18001 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm23 {%k3}
18002 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18003 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18004 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
18005 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18006 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm21 {%k2}
18007 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm21 {%k3}
18008 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18009 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18010 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
18011 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18012 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm20 {%k2}
18013 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm20 {%k3}
18014 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18015 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18016 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
18017 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18018 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k2}
18019 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm19 {%k3}
18020 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18021 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18022 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
18023 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18024 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm18 {%k2}
18025 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm18 {%k3}
18026 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18027 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18028 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
18029 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18030 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm16 {%k2}
18031 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm16 {%k3}
18032 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18033 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm22 {%k1}
18034 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm13, %zmm15 {%k2}
18035 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm22, %zmm15 {%k3}
18036 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18037 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18038 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
18039 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18040 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm14 {%k2}
18041 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm14 {%k3}
18042 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18043 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18044 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
18045 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18046 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm11 {%k2}
18047 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm11 {%k3}
18048 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18049 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18050 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
18051 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18052 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm10 {%k2}
18053 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm10 {%k3}
18054 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18055 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18056 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
18057 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18058 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm9 {%k2}
18059 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm9 {%k3}
18060 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18061 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18062 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
18063 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18064 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k2}
18065 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm7 {%k3}
18066 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18067 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18068 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
18069 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18070 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k2}
18071 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm4 {%k3}
18072 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18073 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18074 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
18075 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18076 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k2}
18077 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm3 {%k3}
18078 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18079 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm27 {%k1}
18080 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm17, %zmm2 {%k2}
18081 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm27, %zmm2 {%k3}
18082 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
18083 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, 1984(%rax)
18084 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, 1920(%rax)
18085 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, 1856(%rax)
18086 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, 1792(%rax)
18087 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, 1728(%rax)
18088 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, 1664(%rax)
18089 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, 1600(%rax)
18090 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm14, 1536(%rax)
18091 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, 1472(%rax)
18092 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, 1408(%rax)
18093 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm18, 1344(%rax)
18094 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm19, 1280(%rax)
18095 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm20, 1216(%rax)
18096 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm21, 1152(%rax)
18097 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm23, 1088(%rax)
18098 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm24, 1024(%rax)
18099 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm12, 960(%rax)
18100 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm28, 896(%rax)
18101 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm29, 832(%rax)
18102 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm30, 768(%rax)
18103 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm31, 704(%rax)
18104 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, 640(%rax)
18105 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm26, 576(%rax)
18106 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18107 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 512(%rax)
18108 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, 448(%rax)
18109 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18110 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 384(%rax)
18111 ; AVX512DQ-BW-NEXT:    vmovups (%rsp), %zmm0 # 64-byte Reload
18112 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 320(%rax)
18113 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18114 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 256(%rax)
18115 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18116 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 192(%rax)
18117 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18118 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 128(%rax)
18119 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18120 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 64(%rax)
18121 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18122 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, (%rax)
18123 ; AVX512DQ-BW-NEXT:    addq $6216, %rsp # imm = 0x1848
18124 ; AVX512DQ-BW-NEXT:    vzeroupper
18125 ; AVX512DQ-BW-NEXT:    retq
18127 ; AVX512DQ-BW-FCP-LABEL: store_i32_stride8_vf64:
18128 ; AVX512DQ-BW-FCP:       # %bb.0:
18129 ; AVX512DQ-BW-FCP-NEXT:    subq $6216, %rsp # imm = 0x1848
18130 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
18131 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
18132 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%r10), %zmm5
18133 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%r10), %zmm4
18134 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%r10), %zmm2
18135 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rax), %zmm1
18136 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rax), %zmm0
18137 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%rax), %zmm30
18138 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,0,0,0,0,0,0,16,0,0,0,0,0,0,1,17]
18139 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm7
18140 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm6
18141 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm1, %zmm3, %zmm7
18142 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18143 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,0,0,0,0,0,2,18,0,0,0,0,0,0,3,19]
18144 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm7
18145 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm1, %zmm5, %zmm6
18146 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18147 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [0,0,0,0,0,0,4,20,0,0,0,0,0,0,5,21]
18148 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm8
18149 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm1, %zmm6, %zmm8
18150 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18151 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,0,0,0,0,0,6,22,0,0,0,0,0,0,7,23]
18152 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm9
18153 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm1, %zmm8, %zmm9
18154 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18155 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm9
18156 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,0,0,0,0,0,8,24,0,0,0,0,0,0,9,25]
18157 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm10
18158 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm1, %zmm8, %zmm10
18159 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18160 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm10
18161 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,0,0,0,0,0,10,26,0,0,0,0,0,0,11,27]
18162 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm11
18163 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm1, %zmm8, %zmm11
18164 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18165 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm11
18166 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,0,0,0,0,0,12,28,0,0,0,0,0,0,13,29]
18167 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm13
18168 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm12
18169 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm1, %zmm8, %zmm13
18170 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18171 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm7
18172 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,0,0,0,0,0,14,30,0,0,0,0,0,0,15,31]
18173 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm1, %zmm8, %zmm12
18174 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18175 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm1
18176 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm3, %zmm1
18177 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18178 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm1
18179 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm5, %zmm1
18180 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18181 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm1
18182 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm6, %zmm1
18183 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18184 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm1
18185 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm9, %zmm1
18186 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18187 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm1
18188 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm10, %zmm1
18189 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18190 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm1
18191 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm11, %zmm1
18192 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18193 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm1
18194 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm7, %zmm1
18195 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18196 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm8, %zmm4
18197 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18198 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm0
18199 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm30, %zmm3, %zmm0
18200 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18201 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm0
18202 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm30, %zmm5, %zmm0
18203 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18204 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm0
18205 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm30, %zmm6, %zmm0
18206 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18207 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm0
18208 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm30, %zmm9, %zmm0
18209 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18210 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm0
18211 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm30, %zmm10, %zmm0
18212 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18213 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm0
18214 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm30, %zmm11, %zmm0
18215 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18216 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm0
18217 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm30, %zmm7, %zmm0
18218 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18219 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm30, %zmm8, %zmm2
18220 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18221 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%r10), %zmm1
18222 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%rax), %zmm0
18223 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm3
18224 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18225 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm5
18226 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18227 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm6
18228 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18229 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm9
18230 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18231 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm10
18232 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18233 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm11
18234 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18235 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm7
18236 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18237 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm8, %zmm1
18238 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18239 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%r8), %zmm26
18240 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%r9), %zmm0
18241 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,0,16,0,0,0,0,0,0,1,17,0,0]
18242 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm26, %zmm2
18243 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm2
18244 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18245 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2
18246 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,2,18,0,0,0,0,0,0,3,19,0,0]
18247 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm26, %zmm3
18248 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm3
18249 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18250 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm3
18251 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,4,20,0,0,0,0,0,0,5,21,0,0]
18252 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm26, %zmm4
18253 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm4
18254 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18255 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4
18256 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,6,22,0,0,0,0,0,0,7,23,0,0]
18257 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm26, %zmm5
18258 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm5
18259 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18260 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm5
18261 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,8,24,0,0,0,0,0,0,9,25,0,0]
18262 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm26, %zmm6
18263 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm6
18264 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18265 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm6
18266 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,10,26,0,0,0,0,0,0,11,27,0,0]
18267 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm26, %zmm7
18268 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm7
18269 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18270 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm7
18271 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,12,28,0,0,0,0,0,0,13,29,0,0]
18272 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm26, %zmm8
18273 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm8
18274 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18275 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm8
18276 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,0,14,30,0,0,0,0,0,0,15,31,0,0]
18277 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm26
18278 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%r8), %zmm25
18279 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%r9), %zmm0
18280 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm25, %zmm9
18281 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm2, %zmm9
18282 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18283 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm25, %zmm9
18284 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm3, %zmm9
18285 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18286 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm25, %zmm9
18287 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm4, %zmm9
18288 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18289 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm25, %zmm9
18290 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm5, %zmm9
18291 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18292 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm25, %zmm9
18293 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm6, %zmm9
18294 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18295 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm25, %zmm9
18296 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm7, %zmm9
18297 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18298 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm25, %zmm9
18299 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm8, %zmm9
18300 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18301 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm25
18302 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%r8), %zmm22
18303 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%r9), %zmm0
18304 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm9
18305 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm2, %zmm9
18306 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18307 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm9
18308 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm3, %zmm9
18309 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18310 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm9
18311 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm4, %zmm9
18312 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18313 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm9
18314 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm5, %zmm9
18315 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18316 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm9
18317 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm6, %zmm9
18318 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18319 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm9
18320 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm7, %zmm9
18321 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18322 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm9
18323 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm8, %zmm9
18324 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18325 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm22
18326 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%r8), %zmm27
18327 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%r9), %zmm0
18328 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm0, %zmm27, %zmm2
18329 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18330 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm0, %zmm27, %zmm3
18331 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18332 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm0, %zmm27, %zmm4
18333 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18334 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm0, %zmm27, %zmm5
18335 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18336 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm0, %zmm27, %zmm6
18337 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18338 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm0, %zmm27, %zmm7
18339 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18340 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm0, %zmm27, %zmm8
18341 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18342 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm27
18343 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdx), %zmm8
18344 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rcx), %zmm0
18345 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,0,16,0,0,0,0,0,0,1,17,0,0,0,0]
18346 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm2
18347 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm2
18348 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18349 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2
18350 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,2,18,0,0,0,0,0,0,3,19,0,0,0,0]
18351 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm3
18352 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm3
18353 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18354 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm3
18355 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,4,20,0,0,0,0,0,0,5,21,0,0,0,0]
18356 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm4
18357 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm4
18358 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18359 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4
18360 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,6,22,0,0,0,0,0,0,7,23,0,0,0,0]
18361 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm5
18362 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm5
18363 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18364 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm5
18365 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,8,24,0,0,0,0,0,0,9,25,0,0,0,0]
18366 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm6
18367 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm6
18368 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18369 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm7
18370 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,10,26,0,0,0,0,0,0,11,27,0,0,0,0]
18371 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm6
18372 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm6
18373 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18374 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm9
18375 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,12,28,0,0,0,0,0,0,13,29,0,0,0,0]
18376 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm6
18377 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm6
18378 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18379 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm10
18380 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,0,14,30,0,0,0,0,0,0,15,31,0,0,0,0]
18381 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm8
18382 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rdx), %zmm6
18383 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rcx), %zmm0
18384 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm11
18385 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm2, %zmm11
18386 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18387 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm11
18388 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm3, %zmm11
18389 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18390 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm11
18391 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm4, %zmm11
18392 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18393 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm11
18394 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm5, %zmm11
18395 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18396 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm11
18397 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm7, %zmm11
18398 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18399 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm11
18400 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm9, %zmm11
18401 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18402 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm11
18403 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm10, %zmm11
18404 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18405 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm6
18406 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%rdx), %zmm13
18407 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%rcx), %zmm0
18408 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm11
18409 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm2, %zmm11
18410 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18411 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm11
18412 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm3, %zmm11
18413 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18414 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm11
18415 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm4, %zmm11
18416 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18417 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm11
18418 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm5, %zmm11
18419 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18420 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm11
18421 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm7, %zmm11
18422 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18423 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm11
18424 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm9, %zmm11
18425 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18426 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm11
18427 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm10, %zmm11
18428 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18429 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm13
18430 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%rdx), %zmm17
18431 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%rcx), %zmm0
18432 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm0, %zmm17, %zmm2
18433 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18434 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm0, %zmm17, %zmm3
18435 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18436 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm0, %zmm17, %zmm4
18437 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18438 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm0, %zmm17, %zmm5
18439 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18440 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm0, %zmm17, %zmm7
18441 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18442 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm0, %zmm17, %zmm9
18443 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18444 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm0, %zmm17, %zmm10
18445 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18446 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm17
18447 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm5
18448 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rsi), %zmm0
18449 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [0,16,0,0,0,0,0,0,1,17,0,0,0,0,0,0]
18450 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm1
18451 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm14, %zmm1
18452 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18453 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [2,18,0,0,0,0,0,0,3,19,0,0,0,0,0,0]
18454 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm1
18455 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm11, %zmm1
18456 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18457 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [4,20,0,0,0,0,0,0,5,21,0,0,0,0,0,0]
18458 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm1
18459 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm10, %zmm1
18460 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18461 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [6,22,0,0,0,0,0,0,7,23,0,0,0,0,0,0]
18462 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm1
18463 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm9, %zmm1
18464 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18465 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm7 = [8,24,0,0,0,0,0,0,9,25,0,0,0,0,0,0]
18466 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm1
18467 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm7, %zmm1
18468 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18469 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [10,26,0,0,0,0,0,0,11,27,0,0,0,0,0,0]
18470 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm1
18471 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm4, %zmm1
18472 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, (%rsp) # 64-byte Spill
18473 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [12,28,0,0,0,0,0,0,13,29,0,0,0,0,0,0]
18474 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm1
18475 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm3, %zmm1
18476 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18477 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm31 = [14,30,0,0,0,0,0,0,15,31,0,0,0,0,0,0]
18478 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm31, %zmm5
18479 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm12
18480 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rsi), %zmm0
18481 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm1
18482 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm14, %zmm1
18483 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18484 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm1
18485 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm11, %zmm1
18486 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18487 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm1
18488 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm10, %zmm1
18489 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18490 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm1
18491 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm9, %zmm1
18492 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18493 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm30
18494 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm7, %zmm30
18495 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm29
18496 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm4, %zmm29
18497 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm28
18498 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm3, %zmm28
18499 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm31, %zmm12
18500 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm15
18501 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%rsi), %zmm0
18502 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm24
18503 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm14, %zmm24
18504 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm23
18505 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm11, %zmm23
18506 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm21
18507 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm10, %zmm21
18508 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm20
18509 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm9, %zmm20
18510 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm19
18511 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm7, %zmm19
18512 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm18
18513 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm4, %zmm18
18514 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm16
18515 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm3, %zmm16
18516 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm31, %zmm15
18517 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm2
18518 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%rsi), %zmm0
18519 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm0, %zmm2, %zmm14
18520 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm0, %zmm2, %zmm11
18521 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm0, %zmm2, %zmm10
18522 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm0, %zmm2, %zmm9
18523 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm0, %zmm2, %zmm7
18524 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm0, %zmm2, %zmm4
18525 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm0, %zmm2, %zmm3
18526 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm31, %zmm2
18527 ; AVX512DQ-BW-FCP-NEXT:    movb $-120, %al
18528 ; AVX512DQ-BW-FCP-NEXT:    kmovd %eax, %k1
18529 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18530 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
18531 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
18532 ; AVX512DQ-BW-FCP-NEXT:    movb $34, %al
18533 ; AVX512DQ-BW-FCP-NEXT:    kmovd %eax, %k2
18534 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18535 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
18536 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
18537 ; AVX512DQ-BW-FCP-NEXT:    movb $-52, %al
18538 ; AVX512DQ-BW-FCP-NEXT:    kmovd %eax, %k3
18539 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
18540 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18541 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18542 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
18543 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
18544 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18545 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
18546 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
18547 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
18548 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18549 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18550 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
18551 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
18552 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18553 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
18554 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
18555 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
18556 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18557 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18558 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
18559 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
18560 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18561 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
18562 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
18563 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
18564 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18565 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18566 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
18567 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
18568 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18569 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
18570 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
18571 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
18572 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18573 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18574 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
18575 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
18576 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
18577 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
18578 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
18579 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
18580 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, (%rsp) # 64-byte Spill
18581 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18582 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
18583 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
18584 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18585 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
18586 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm31, %zmm0 {%k2}
18587 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
18588 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18589 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18590 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k1}
18591 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm5 {%k2}
18592 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm26, %zmm5 {%k3}
18593 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18594 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
18595 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
18596 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18597 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
18598 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm0 {%k2}
18599 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
18600 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18601 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18602 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
18603 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
18604 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm26 # 64-byte Reload
18605 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18606 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k2}
18607 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm26 {%k3}
18608 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18609 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
18610 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
18611 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
18612 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18613 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
18614 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm1 {%k3}
18615 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18616 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
18617 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
18618 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18619 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
18620 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k2}
18621 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm31 {%k3}
18622 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18623 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
18624 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
18625 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18626 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm30 {%k2}
18627 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm30 {%k3}
18628 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18629 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
18630 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
18631 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18632 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm29 {%k2}
18633 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm29 {%k3}
18634 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18635 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
18636 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
18637 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18638 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm28 {%k2}
18639 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm28 {%k3}
18640 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18641 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm25 {%k1}
18642 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm12 {%k2}
18643 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm25, %zmm12 {%k3}
18644 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18645 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18646 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
18647 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18648 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm24 {%k2}
18649 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm24 {%k3}
18650 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18651 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18652 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
18653 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18654 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm23 {%k2}
18655 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm23 {%k3}
18656 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18657 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18658 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
18659 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18660 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm21 {%k2}
18661 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm21 {%k3}
18662 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18663 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18664 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
18665 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18666 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm20 {%k2}
18667 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm20 {%k3}
18668 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18669 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18670 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
18671 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18672 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k2}
18673 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm19 {%k3}
18674 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18675 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18676 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
18677 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18678 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm18 {%k2}
18679 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm18 {%k3}
18680 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18681 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18682 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
18683 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18684 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm16 {%k2}
18685 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm16 {%k3}
18686 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18687 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm22 {%k1}
18688 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm15 {%k2}
18689 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm15 {%k3}
18690 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18691 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18692 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
18693 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18694 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm14 {%k2}
18695 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm14 {%k3}
18696 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18697 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18698 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
18699 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18700 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm11 {%k2}
18701 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm11 {%k3}
18702 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18703 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18704 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
18705 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18706 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm10 {%k2}
18707 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm10 {%k3}
18708 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18709 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18710 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
18711 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18712 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm9 {%k2}
18713 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm9 {%k3}
18714 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18715 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18716 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
18717 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18718 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k2}
18719 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm7 {%k3}
18720 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18721 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18722 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
18723 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18724 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k2}
18725 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm4 {%k3}
18726 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18727 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18728 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
18729 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18730 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k2}
18731 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm3 {%k3}
18732 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18733 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm27 {%k1}
18734 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm17, %zmm2 {%k2}
18735 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm27, %zmm2 {%k3}
18736 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
18737 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, 1984(%rax)
18738 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, 1920(%rax)
18739 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, 1856(%rax)
18740 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, 1792(%rax)
18741 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, 1728(%rax)
18742 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, 1664(%rax)
18743 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, 1600(%rax)
18744 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm14, 1536(%rax)
18745 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm15, 1472(%rax)
18746 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm16, 1408(%rax)
18747 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm18, 1344(%rax)
18748 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm19, 1280(%rax)
18749 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm20, 1216(%rax)
18750 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm21, 1152(%rax)
18751 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm23, 1088(%rax)
18752 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm24, 1024(%rax)
18753 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, 960(%rax)
18754 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm28, 896(%rax)
18755 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm29, 832(%rax)
18756 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm30, 768(%rax)
18757 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm31, 704(%rax)
18758 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, 640(%rax)
18759 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm26, 576(%rax)
18760 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18761 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 512(%rax)
18762 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, 448(%rax)
18763 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18764 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 384(%rax)
18765 ; AVX512DQ-BW-FCP-NEXT:    vmovups (%rsp), %zmm0 # 64-byte Reload
18766 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 320(%rax)
18767 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18768 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 256(%rax)
18769 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18770 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 192(%rax)
18771 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18772 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 128(%rax)
18773 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18774 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 64(%rax)
18775 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18776 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, (%rax)
18777 ; AVX512DQ-BW-FCP-NEXT:    addq $6216, %rsp # imm = 0x1848
18778 ; AVX512DQ-BW-FCP-NEXT:    vzeroupper
18779 ; AVX512DQ-BW-FCP-NEXT:    retq
18780   %in.vec0 = load <64 x i32>, ptr %in.vecptr0, align 64
18781   %in.vec1 = load <64 x i32>, ptr %in.vecptr1, align 64
18782   %in.vec2 = load <64 x i32>, ptr %in.vecptr2, align 64
18783   %in.vec3 = load <64 x i32>, ptr %in.vecptr3, align 64
18784   %in.vec4 = load <64 x i32>, ptr %in.vecptr4, align 64
18785   %in.vec5 = load <64 x i32>, ptr %in.vecptr5, align 64
18786   %in.vec6 = load <64 x i32>, ptr %in.vecptr6, align 64
18787   %in.vec7 = load <64 x i32>, ptr %in.vecptr7, align 64
18788   %1 = shufflevector <64 x i32> %in.vec0, <64 x i32> %in.vec1, <128 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127>
18789   %2 = shufflevector <64 x i32> %in.vec2, <64 x i32> %in.vec3, <128 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127>
18790   %3 = shufflevector <64 x i32> %in.vec4, <64 x i32> %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>
18791   %4 = shufflevector <64 x i32> %in.vec6, <64 x i32> %in.vec7, <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>
18792   %5 = shufflevector <128 x i32> %1, <128 x i32> %2, <256 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127, i32 128, i32 129, i32 130, i32 131, i32 132, i32 133, i32 134, i32 135, i32 136, i32 137, i32 138, i32 139, i32 140, i32 141, i32 142, i32 143, i32 144, i32 145, i32 146, i32 147, i32 148, i32 149, i32 150, i32 151, i32 152, i32 153, i32 154, i32 155, i32 156, i32 157, i32 158, i32 159, i32 160, i32 161, i32 162, i32 163, i32 164, i32 165, i32 166, i32 167, i32 168, i32 169, i32 170, i32 171, i32 172, i32 173, i32 174, i32 175, i32 176, i32 177, i32 178, i32 179, i32 180, i32 181, i32 182, i32 183, i32 184, i32 185, i32 186, i32 187, i32 188, i32 189, i32 190, i32 191, i32 192, i32 193, i32 194, i32 195, i32 196, i32 197, i32 198, i32 199, i32 200, i32 201, i32 202, i32 203, i32 204, i32 205, i32 206, i32 207, i32 208, i32 209, i32 210, i32 211, i32 212, i32 213, i32 214, i32 215, i32 216, i32 217, i32 218, i32 219, i32 220, i32 221, i32 222, i32 223, i32 224, i32 225, i32 226, i32 227, i32 228, i32 229, i32 230, i32 231, i32 232, i32 233, i32 234, i32 235, i32 236, i32 237, i32 238, i32 239, i32 240, i32 241, i32 242, i32 243, i32 244, i32 245, i32 246, i32 247, i32 248, i32 249, i32 250, i32 251, i32 252, i32 253, i32 254, i32 255>
18793   %6 = shufflevector <128 x i32> %3, <128 x i32> %4, <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>
18794   %7 = shufflevector <256 x i32> %5, <256 x i32> %6, <512 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, i32 448, i32 449, i32 450, i32 451, i32 452, i32 453, i32 454, i32 455, i32 456, i32 457, i32 458, i32 459, i32 460, i32 461, i32 462, i32 463, i32 464, i32 465, i32 466, i32 467, i32 468, i32 469, i32 470, i32 471, i32 472, i32 473, i32 474, i32 475, i32 476, i32 477, i32 478, i32 479, i32 480, i32 481, i32 482, i32 483, i32 484, i32 485, i32 486, i32 487, i32 488, i32 489, i32 490, i32 491, i32 492, i32 493, i32 494, i32 495, i32 496, i32 497, i32 498, i32 499, i32 500, i32 501, i32 502, i32 503, i32 504, i32 505, i32 506, i32 507, i32 508, i32 509, i32 510, i32 511>
18795   %interleaved.vec = shufflevector <512 x i32> %7, <512 x i32> poison, <512 x i32> <i32 0, i32 64, i32 128, i32 192, i32 256, i32 320, i32 384, i32 448, i32 1, i32 65, i32 129, i32 193, i32 257, i32 321, i32 385, i32 449, i32 2, i32 66, i32 130, i32 194, i32 258, i32 322, i32 386, i32 450, i32 3, i32 67, i32 131, i32 195, i32 259, i32 323, i32 387, i32 451, i32 4, i32 68, i32 132, i32 196, i32 260, i32 324, i32 388, i32 452, i32 5, i32 69, i32 133, i32 197, i32 261, i32 325, i32 389, i32 453, i32 6, i32 70, i32 134, i32 198, i32 262, i32 326, i32 390, i32 454, i32 7, i32 71, i32 135, i32 199, i32 263, i32 327, i32 391, i32 455, i32 8, i32 72, i32 136, i32 200, i32 264, i32 328, i32 392, i32 456, i32 9, i32 73, i32 137, i32 201, i32 265, i32 329, i32 393, i32 457, i32 10, i32 74, i32 138, i32 202, i32 266, i32 330, i32 394, i32 458, i32 11, i32 75, i32 139, i32 203, i32 267, i32 331, i32 395, i32 459, i32 12, i32 76, i32 140, i32 204, i32 268, i32 332, i32 396, i32 460, i32 13, i32 77, i32 141, i32 205, i32 269, i32 333, i32 397, i32 461, i32 14, i32 78, i32 142, i32 206, i32 270, i32 334, i32 398, i32 462, i32 15, i32 79, i32 143, i32 207, i32 271, i32 335, i32 399, i32 463, i32 16, i32 80, i32 144, i32 208, i32 272, i32 336, i32 400, i32 464, i32 17, i32 81, i32 145, i32 209, i32 273, i32 337, i32 401, i32 465, i32 18, i32 82, i32 146, i32 210, i32 274, i32 338, i32 402, i32 466, i32 19, i32 83, i32 147, i32 211, i32 275, i32 339, i32 403, i32 467, i32 20, i32 84, i32 148, i32 212, i32 276, i32 340, i32 404, i32 468, i32 21, i32 85, i32 149, i32 213, i32 277, i32 341, i32 405, i32 469, i32 22, i32 86, i32 150, i32 214, i32 278, i32 342, i32 406, i32 470, i32 23, i32 87, i32 151, i32 215, i32 279, i32 343, i32 407, i32 471, i32 24, i32 88, i32 152, i32 216, i32 280, i32 344, i32 408, i32 472, i32 25, i32 89, i32 153, i32 217, i32 281, i32 345, i32 409, i32 473, i32 26, i32 90, i32 154, i32 218, i32 282, i32 346, i32 410, i32 474, i32 27, i32 91, i32 155, i32 219, i32 283, i32 347, i32 411, i32 475, i32 28, i32 92, i32 156, i32 220, i32 284, i32 348, i32 412, i32 476, i32 29, i32 93, i32 157, i32 221, i32 285, i32 349, i32 413, i32 477, i32 30, i32 94, i32 158, i32 222, i32 286, i32 350, i32 414, i32 478, i32 31, i32 95, i32 159, i32 223, i32 287, i32 351, i32 415, i32 479, i32 32, i32 96, i32 160, i32 224, i32 288, i32 352, i32 416, i32 480, i32 33, i32 97, i32 161, i32 225, i32 289, i32 353, i32 417, i32 481, i32 34, i32 98, i32 162, i32 226, i32 290, i32 354, i32 418, i32 482, i32 35, i32 99, i32 163, i32 227, i32 291, i32 355, i32 419, i32 483, i32 36, i32 100, i32 164, i32 228, i32 292, i32 356, i32 420, i32 484, i32 37, i32 101, i32 165, i32 229, i32 293, i32 357, i32 421, i32 485, i32 38, i32 102, i32 166, i32 230, i32 294, i32 358, i32 422, i32 486, i32 39, i32 103, i32 167, i32 231, i32 295, i32 359, i32 423, i32 487, i32 40, i32 104, i32 168, i32 232, i32 296, i32 360, i32 424, i32 488, i32 41, i32 105, i32 169, i32 233, i32 297, i32 361, i32 425, i32 489, i32 42, i32 106, i32 170, i32 234, i32 298, i32 362, i32 426, i32 490, i32 43, i32 107, i32 171, i32 235, i32 299, i32 363, i32 427, i32 491, i32 44, i32 108, i32 172, i32 236, i32 300, i32 364, i32 428, i32 492, i32 45, i32 109, i32 173, i32 237, i32 301, i32 365, i32 429, i32 493, i32 46, i32 110, i32 174, i32 238, i32 302, i32 366, i32 430, i32 494, i32 47, i32 111, i32 175, i32 239, i32 303, i32 367, i32 431, i32 495, i32 48, i32 112, i32 176, i32 240, i32 304, i32 368, i32 432, i32 496, i32 49, i32 113, i32 177, i32 241, i32 305, i32 369, i32 433, i32 497, i32 50, i32 114, i32 178, i32 242, i32 306, i32 370, i32 434, i32 498, i32 51, i32 115, i32 179, i32 243, i32 307, i32 371, i32 435, i32 499, i32 52, i32 116, i32 180, i32 244, i32 308, i32 372, i32 436, i32 500, i32 53, i32 117, i32 181, i32 245, i32 309, i32 373, i32 437, i32 501, i32 54, i32 118, i32 182, i32 246, i32 310, i32 374, i32 438, i32 502, i32 55, i32 119, i32 183, i32 247, i32 311, i32 375, i32 439, i32 503, i32 56, i32 120, i32 184, i32 248, i32 312, i32 376, i32 440, i32 504, i32 57, i32 121, i32 185, i32 249, i32 313, i32 377, i32 441, i32 505, i32 58, i32 122, i32 186, i32 250, i32 314, i32 378, i32 442, i32 506, i32 59, i32 123, i32 187, i32 251, i32 315, i32 379, i32 443, i32 507, i32 60, i32 124, i32 188, i32 252, i32 316, i32 380, i32 444, i32 508, i32 61, i32 125, i32 189, i32 253, i32 317, i32 381, i32 445, i32 509, i32 62, i32 126, i32 190, i32 254, i32 318, i32 382, i32 446, i32 510, i32 63, i32 127, i32 191, i32 255, i32 319, i32 383, i32 447, i32 511>
18796   store <512 x i32> %interleaved.vec, ptr %out.vec, align 64
18797   ret void