1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+sse2 | FileCheck %s --check-prefixes=SSE,FALLBACK0
3 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx | FileCheck %s --check-prefixes=AVX,AVX1,AVX1-ONLY,FALLBACK1
4 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx2 | FileCheck %s --check-prefixes=AVX,AVX1,AVX2,AVX2-ONLY,AVX2-SLOW,FALLBACK2
5 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx2,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX,AVX1,AVX2,AVX2-ONLY,AVX2-FAST,FALLBACK3
6 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx2,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX,AVX1,AVX2,AVX2-ONLY,AVX2-FAST-PERLANE,FALLBACK4
7 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512F,AVX512-SLOW,AVX512F-SLOW,AVX512F-ONLY-SLOW,FALLBACK5
8 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512F,AVX512-FAST,AVX512F-FAST,AVX512F-ONLY-FAST,FALLBACK6
9 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512F,AVX512-SLOW,AVX512F-SLOW,AVX512DQ-SLOW,FALLBACK7
10 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512F,AVX512-FAST,AVX512F-FAST,AVX512DQ-FAST,FALLBACK8
11 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512bw | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512BW,AVX512-SLOW,AVX512BW-SLOW,AVX512BW-ONLY-SLOW,FALLBACK9
12 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512bw,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512BW,AVX512-FAST,AVX512BW-FAST,AVX512BW-ONLY-FAST,FALLBACK10
13 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq,+avx512bw | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512BW,AVX512-SLOW,AVX512BW-SLOW,AVX512DQBW-SLOW,FALLBACK11
14 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq,+avx512bw,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512BW,AVX512-FAST,AVX512BW-FAST,AVX512DQBW-FAST,FALLBACK12
16 ; These patterns are produced by LoopVectorizer for interleaved loads.
18 define void @load_i64_stride8_vf2(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4, ptr %out.vec5, ptr %out.vec6, ptr %out.vec7) nounwind {
19 ; SSE-LABEL: load_i64_stride8_vf2:
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: movaps 112(%rdi), %xmm0
25 ; SSE-NEXT: movaps 96(%rdi), %xmm1
26 ; SSE-NEXT: movaps 80(%rdi), %xmm2
27 ; SSE-NEXT: movaps 64(%rdi), %xmm3
28 ; SSE-NEXT: movaps (%rdi), %xmm4
29 ; SSE-NEXT: movaps 16(%rdi), %xmm5
30 ; SSE-NEXT: movaps 32(%rdi), %xmm6
31 ; SSE-NEXT: movaps 48(%rdi), %xmm7
32 ; SSE-NEXT: movaps %xmm4, %xmm8
33 ; SSE-NEXT: movlhps {{.*#+}} xmm8 = xmm8[0],xmm3[0]
34 ; SSE-NEXT: unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm3[1]
35 ; SSE-NEXT: movaps %xmm5, %xmm3
36 ; SSE-NEXT: movlhps {{.*#+}} xmm3 = xmm3[0],xmm2[0]
37 ; SSE-NEXT: unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm2[1]
38 ; SSE-NEXT: movaps %xmm6, %xmm2
39 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm1[0]
40 ; SSE-NEXT: unpckhpd {{.*#+}} xmm6 = xmm6[1],xmm1[1]
41 ; SSE-NEXT: movaps %xmm7, %xmm1
42 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
43 ; SSE-NEXT: unpckhpd {{.*#+}} xmm7 = xmm7[1],xmm0[1]
44 ; SSE-NEXT: movaps %xmm8, (%rsi)
45 ; SSE-NEXT: movaps %xmm4, (%rdx)
46 ; SSE-NEXT: movaps %xmm3, (%rcx)
47 ; SSE-NEXT: movaps %xmm5, (%r8)
48 ; SSE-NEXT: movaps %xmm2, (%r9)
49 ; SSE-NEXT: movaps %xmm6, (%r11)
50 ; SSE-NEXT: movaps %xmm1, (%r10)
51 ; SSE-NEXT: movaps %xmm7, (%rax)
54 ; AVX1-ONLY-LABEL: load_i64_stride8_vf2:
56 ; AVX1-ONLY-NEXT: movq {{[0-9]+}}(%rsp), %rax
57 ; AVX1-ONLY-NEXT: movq {{[0-9]+}}(%rsp), %r10
58 ; AVX1-ONLY-NEXT: movq {{[0-9]+}}(%rsp), %r11
59 ; AVX1-ONLY-NEXT: vmovaps 64(%rdi), %xmm0
60 ; AVX1-ONLY-NEXT: vmovaps (%rdi), %xmm1
61 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
62 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
63 ; AVX1-ONLY-NEXT: vmovaps 80(%rdi), %xmm1
64 ; AVX1-ONLY-NEXT: vmovaps 16(%rdi), %xmm3
65 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm4 = xmm3[0],xmm1[0]
66 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm1 = xmm3[1],xmm1[1]
67 ; AVX1-ONLY-NEXT: vmovaps 96(%rdi), %xmm3
68 ; AVX1-ONLY-NEXT: vmovaps 32(%rdi), %xmm5
69 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm6 = xmm5[0],xmm3[0]
70 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm3 = xmm5[1],xmm3[1]
71 ; AVX1-ONLY-NEXT: vmovaps 112(%rdi), %xmm5
72 ; AVX1-ONLY-NEXT: vmovaps 48(%rdi), %xmm7
73 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm8 = xmm7[0],xmm5[0]
74 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm5 = xmm7[1],xmm5[1]
75 ; AVX1-ONLY-NEXT: vmovaps %xmm2, (%rsi)
76 ; AVX1-ONLY-NEXT: vmovaps %xmm0, (%rdx)
77 ; AVX1-ONLY-NEXT: vmovaps %xmm4, (%rcx)
78 ; AVX1-ONLY-NEXT: vmovaps %xmm1, (%r8)
79 ; AVX1-ONLY-NEXT: vmovaps %xmm6, (%r9)
80 ; AVX1-ONLY-NEXT: vmovaps %xmm3, (%r11)
81 ; AVX1-ONLY-NEXT: vmovaps %xmm8, (%r10)
82 ; AVX1-ONLY-NEXT: vmovaps %xmm5, (%rax)
83 ; AVX1-ONLY-NEXT: retq
85 ; AVX2-ONLY-LABEL: load_i64_stride8_vf2:
87 ; AVX2-ONLY-NEXT: movq {{[0-9]+}}(%rsp), %rax
88 ; AVX2-ONLY-NEXT: movq {{[0-9]+}}(%rsp), %r10
89 ; AVX2-ONLY-NEXT: movq {{[0-9]+}}(%rsp), %r11
90 ; AVX2-ONLY-NEXT: vmovaps 96(%rdi), %ymm0
91 ; AVX2-ONLY-NEXT: vmovaps 32(%rdi), %ymm1
92 ; AVX2-ONLY-NEXT: vmovaps 64(%rdi), %ymm2
93 ; AVX2-ONLY-NEXT: vmovaps (%rdi), %ymm3
94 ; AVX2-ONLY-NEXT: vmovaps (%rdi), %xmm4
95 ; AVX2-ONLY-NEXT: vmovaps 32(%rdi), %xmm5
96 ; AVX2-ONLY-NEXT: vmovaps 64(%rdi), %xmm6
97 ; AVX2-ONLY-NEXT: vmovlhps {{.*#+}} xmm7 = xmm4[0],xmm6[0]
98 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} xmm4 = xmm4[1],xmm6[1]
99 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm6 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
100 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm3[1],ymm2[1],ymm3[3],ymm2[3]
101 ; AVX2-ONLY-NEXT: vmovaps 96(%rdi), %xmm3
102 ; AVX2-ONLY-NEXT: vmovlhps {{.*#+}} xmm8 = xmm5[0],xmm3[0]
103 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} xmm3 = xmm5[1],xmm3[1]
104 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
105 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
106 ; AVX2-ONLY-NEXT: vmovaps %xmm7, (%rsi)
107 ; AVX2-ONLY-NEXT: vmovaps %xmm4, (%rdx)
108 ; AVX2-ONLY-NEXT: vextractf128 $1, %ymm6, (%rcx)
109 ; AVX2-ONLY-NEXT: vextractf128 $1, %ymm2, (%r8)
110 ; AVX2-ONLY-NEXT: vmovaps %xmm8, (%r9)
111 ; AVX2-ONLY-NEXT: vmovaps %xmm3, (%r11)
112 ; AVX2-ONLY-NEXT: vextractf128 $1, %ymm5, (%r10)
113 ; AVX2-ONLY-NEXT: vextractf128 $1, %ymm0, (%rax)
114 ; AVX2-ONLY-NEXT: vzeroupper
115 ; AVX2-ONLY-NEXT: retq
117 ; AVX512-LABEL: load_i64_stride8_vf2:
119 ; AVX512-NEXT: movq {{[0-9]+}}(%rsp), %rax
120 ; AVX512-NEXT: movq {{[0-9]+}}(%rsp), %r10
121 ; AVX512-NEXT: movq {{[0-9]+}}(%rsp), %r11
122 ; AVX512-NEXT: vmovaps 64(%rdi), %xmm0
123 ; AVX512-NEXT: vmovaps (%rdi), %xmm1
124 ; AVX512-NEXT: vmovaps 16(%rdi), %xmm2
125 ; AVX512-NEXT: vmovaps 32(%rdi), %xmm3
126 ; AVX512-NEXT: vmovaps 48(%rdi), %xmm4
127 ; AVX512-NEXT: vmovlhps {{.*#+}} xmm5 = xmm1[0],xmm0[0]
128 ; AVX512-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
129 ; AVX512-NEXT: vmovaps 80(%rdi), %xmm1
130 ; AVX512-NEXT: vmovlhps {{.*#+}} xmm6 = xmm2[0],xmm1[0]
131 ; AVX512-NEXT: vunpckhpd {{.*#+}} xmm1 = xmm2[1],xmm1[1]
132 ; AVX512-NEXT: vmovaps 96(%rdi), %xmm2
133 ; AVX512-NEXT: vmovlhps {{.*#+}} xmm7 = xmm3[0],xmm2[0]
134 ; AVX512-NEXT: vunpckhpd {{.*#+}} xmm2 = xmm3[1],xmm2[1]
135 ; AVX512-NEXT: vmovaps 112(%rdi), %xmm3
136 ; AVX512-NEXT: vmovlhps {{.*#+}} xmm8 = xmm4[0],xmm3[0]
137 ; AVX512-NEXT: vunpckhpd {{.*#+}} xmm3 = xmm4[1],xmm3[1]
138 ; AVX512-NEXT: vmovaps %xmm5, (%rsi)
139 ; AVX512-NEXT: vmovaps %xmm0, (%rdx)
140 ; AVX512-NEXT: vmovaps %xmm6, (%rcx)
141 ; AVX512-NEXT: vmovaps %xmm1, (%r8)
142 ; AVX512-NEXT: vmovaps %xmm7, (%r9)
143 ; AVX512-NEXT: vmovaps %xmm2, (%r11)
144 ; AVX512-NEXT: vmovaps %xmm8, (%r10)
145 ; AVX512-NEXT: vmovaps %xmm3, (%rax)
147 %wide.vec = load <16 x i64>, ptr %in.vec, align 64
148 %strided.vec0 = shufflevector <16 x i64> %wide.vec, <16 x i64> poison, <2 x i32> <i32 0, i32 8>
149 %strided.vec1 = shufflevector <16 x i64> %wide.vec, <16 x i64> poison, <2 x i32> <i32 1, i32 9>
150 %strided.vec2 = shufflevector <16 x i64> %wide.vec, <16 x i64> poison, <2 x i32> <i32 2, i32 10>
151 %strided.vec3 = shufflevector <16 x i64> %wide.vec, <16 x i64> poison, <2 x i32> <i32 3, i32 11>
152 %strided.vec4 = shufflevector <16 x i64> %wide.vec, <16 x i64> poison, <2 x i32> <i32 4, i32 12>
153 %strided.vec5 = shufflevector <16 x i64> %wide.vec, <16 x i64> poison, <2 x i32> <i32 5, i32 13>
154 %strided.vec6 = shufflevector <16 x i64> %wide.vec, <16 x i64> poison, <2 x i32> <i32 6, i32 14>
155 %strided.vec7 = shufflevector <16 x i64> %wide.vec, <16 x i64> poison, <2 x i32> <i32 7, i32 15>
156 store <2 x i64> %strided.vec0, ptr %out.vec0, align 64
157 store <2 x i64> %strided.vec1, ptr %out.vec1, align 64
158 store <2 x i64> %strided.vec2, ptr %out.vec2, align 64
159 store <2 x i64> %strided.vec3, ptr %out.vec3, align 64
160 store <2 x i64> %strided.vec4, ptr %out.vec4, align 64
161 store <2 x i64> %strided.vec5, ptr %out.vec5, align 64
162 store <2 x i64> %strided.vec6, ptr %out.vec6, align 64
163 store <2 x i64> %strided.vec7, ptr %out.vec7, align 64
167 define void @load_i64_stride8_vf4(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4, ptr %out.vec5, ptr %out.vec6, ptr %out.vec7) nounwind {
168 ; SSE-LABEL: load_i64_stride8_vf4:
170 ; SSE-NEXT: movaps 112(%rdi), %xmm6
171 ; SSE-NEXT: movaps 240(%rdi), %xmm0
172 ; SSE-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
173 ; SSE-NEXT: movaps 96(%rdi), %xmm9
174 ; SSE-NEXT: movaps 224(%rdi), %xmm11
175 ; SSE-NEXT: movaps 160(%rdi), %xmm0
176 ; SSE-NEXT: movaps 80(%rdi), %xmm14
177 ; SSE-NEXT: movaps 208(%rdi), %xmm15
178 ; SSE-NEXT: movaps 144(%rdi), %xmm2
179 ; SSE-NEXT: movaps 64(%rdi), %xmm12
180 ; SSE-NEXT: movaps (%rdi), %xmm7
181 ; SSE-NEXT: movaps 16(%rdi), %xmm5
182 ; SSE-NEXT: movaps 32(%rdi), %xmm3
183 ; SSE-NEXT: movaps 48(%rdi), %xmm4
184 ; SSE-NEXT: movaps 192(%rdi), %xmm13
185 ; SSE-NEXT: movaps 128(%rdi), %xmm8
186 ; SSE-NEXT: movaps %xmm8, %xmm10
187 ; SSE-NEXT: movlhps {{.*#+}} xmm10 = xmm10[0],xmm13[0]
188 ; SSE-NEXT: unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm13[1]
189 ; SSE-NEXT: movaps %xmm7, %xmm13
190 ; SSE-NEXT: movlhps {{.*#+}} xmm13 = xmm13[0],xmm12[0]
191 ; SSE-NEXT: unpckhpd {{.*#+}} xmm7 = xmm7[1],xmm12[1]
192 ; SSE-NEXT: movaps %xmm2, %xmm12
193 ; SSE-NEXT: movlhps {{.*#+}} xmm12 = xmm12[0],xmm15[0]
194 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm15[1]
195 ; SSE-NEXT: movaps %xmm5, %xmm15
196 ; SSE-NEXT: movlhps {{.*#+}} xmm15 = xmm15[0],xmm14[0]
197 ; SSE-NEXT: unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm14[1]
198 ; SSE-NEXT: movaps %xmm0, %xmm14
199 ; SSE-NEXT: movlhps {{.*#+}} xmm14 = xmm14[0],xmm11[0]
200 ; SSE-NEXT: unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm11[1]
201 ; SSE-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
202 ; SSE-NEXT: movaps %xmm3, %xmm11
203 ; SSE-NEXT: movlhps {{.*#+}} xmm11 = xmm11[0],xmm9[0]
204 ; SSE-NEXT: unpckhpd {{.*#+}} xmm3 = xmm3[1],xmm9[1]
205 ; SSE-NEXT: movaps %xmm4, %xmm9
206 ; SSE-NEXT: movlhps {{.*#+}} xmm9 = xmm9[0],xmm6[0]
207 ; SSE-NEXT: unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm6[1]
208 ; SSE-NEXT: movaps 176(%rdi), %xmm6
209 ; SSE-NEXT: movaps %xmm6, %xmm1
210 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
211 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
212 ; SSE-NEXT: unpckhpd {{.*#+}} xmm6 = xmm6[1],xmm0[1]
213 ; SSE-NEXT: movaps %xmm13, (%rsi)
214 ; SSE-NEXT: movaps %xmm10, 16(%rsi)
215 ; SSE-NEXT: movaps %xmm7, (%rdx)
216 ; SSE-NEXT: movaps %xmm8, 16(%rdx)
217 ; SSE-NEXT: movaps %xmm15, (%rcx)
218 ; SSE-NEXT: movaps %xmm12, 16(%rcx)
219 ; SSE-NEXT: movaps %xmm5, (%r8)
220 ; SSE-NEXT: movaps %xmm2, 16(%r8)
221 ; SSE-NEXT: movaps %xmm11, (%r9)
222 ; SSE-NEXT: movaps %xmm14, 16(%r9)
223 ; SSE-NEXT: movq {{[0-9]+}}(%rsp), %rax
224 ; SSE-NEXT: movaps %xmm3, (%rax)
225 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
226 ; SSE-NEXT: movaps %xmm0, 16(%rax)
227 ; SSE-NEXT: movq {{[0-9]+}}(%rsp), %rax
228 ; SSE-NEXT: movaps %xmm9, (%rax)
229 ; SSE-NEXT: movaps %xmm1, 16(%rax)
230 ; SSE-NEXT: movq {{[0-9]+}}(%rsp), %rax
231 ; SSE-NEXT: movaps %xmm6, 16(%rax)
232 ; SSE-NEXT: movaps %xmm4, (%rax)
235 ; AVX1-ONLY-LABEL: load_i64_stride8_vf4:
236 ; AVX1-ONLY: # %bb.0:
237 ; AVX1-ONLY-NEXT: movq {{[0-9]+}}(%rsp), %rax
238 ; AVX1-ONLY-NEXT: movq {{[0-9]+}}(%rsp), %r10
239 ; AVX1-ONLY-NEXT: movq {{[0-9]+}}(%rsp), %r11
240 ; AVX1-ONLY-NEXT: vmovaps 224(%rdi), %ymm0
241 ; AVX1-ONLY-NEXT: vmovaps 160(%rdi), %ymm1
242 ; AVX1-ONLY-NEXT: vmovaps 192(%rdi), %ymm4
243 ; AVX1-ONLY-NEXT: vmovaps 128(%rdi), %ymm5
244 ; AVX1-ONLY-NEXT: vmovaps 192(%rdi), %xmm3
245 ; AVX1-ONLY-NEXT: vmovaps 128(%rdi), %xmm6
246 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm6[0],xmm3[0]
247 ; AVX1-ONLY-NEXT: vmovaps 64(%rdi), %xmm7
248 ; AVX1-ONLY-NEXT: vmovaps (%rdi), %xmm8
249 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm9 = xmm8[0],xmm7[0]
250 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm3 = xmm6[1],xmm3[1]
251 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm6 = xmm8[1],xmm7[1]
252 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm7 = ymm5[0],ymm4[0],ymm5[2],ymm4[2]
253 ; AVX1-ONLY-NEXT: vmovaps 80(%rdi), %xmm8
254 ; AVX1-ONLY-NEXT: vmovaps 16(%rdi), %xmm10
255 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm11 = xmm10[0],xmm8[0]
256 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm7 = ymm11[0,1,2,3],ymm7[4,5,6,7]
257 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm4 = ymm5[1],ymm4[1],ymm5[3],ymm4[3]
258 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm5 = xmm10[1],xmm8[1]
259 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm4 = ymm5[0,1,2,3],ymm4[4,5,6,7]
260 ; AVX1-ONLY-NEXT: vmovaps 224(%rdi), %xmm5
261 ; AVX1-ONLY-NEXT: vmovaps 160(%rdi), %xmm8
262 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm10 = xmm8[0],xmm5[0]
263 ; AVX1-ONLY-NEXT: vmovaps 96(%rdi), %xmm11
264 ; AVX1-ONLY-NEXT: vmovaps 32(%rdi), %xmm12
265 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm13 = xmm12[0],xmm11[0]
266 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm5 = xmm8[1],xmm5[1]
267 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm8 = xmm12[1],xmm11[1]
268 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm11 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
269 ; AVX1-ONLY-NEXT: vmovaps 112(%rdi), %xmm12
270 ; AVX1-ONLY-NEXT: vmovaps 48(%rdi), %xmm14
271 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm15 = xmm14[0],xmm12[0]
272 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm11 = ymm15[0,1,2,3],ymm11[4,5,6,7]
273 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
274 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm1 = xmm14[1],xmm12[1]
275 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
276 ; AVX1-ONLY-NEXT: vmovaps %xmm9, (%rsi)
277 ; AVX1-ONLY-NEXT: vmovaps %xmm2, 16(%rsi)
278 ; AVX1-ONLY-NEXT: vmovaps %xmm6, (%rdx)
279 ; AVX1-ONLY-NEXT: vmovaps %xmm3, 16(%rdx)
280 ; AVX1-ONLY-NEXT: vmovaps %ymm7, (%rcx)
281 ; AVX1-ONLY-NEXT: vmovaps %ymm4, (%r8)
282 ; AVX1-ONLY-NEXT: vmovaps %xmm13, (%r9)
283 ; AVX1-ONLY-NEXT: vmovaps %xmm10, 16(%r9)
284 ; AVX1-ONLY-NEXT: vmovaps %xmm8, (%r11)
285 ; AVX1-ONLY-NEXT: vmovaps %xmm5, 16(%r11)
286 ; AVX1-ONLY-NEXT: vmovaps %ymm11, (%r10)
287 ; AVX1-ONLY-NEXT: vmovaps %ymm0, (%rax)
288 ; AVX1-ONLY-NEXT: vzeroupper
289 ; AVX1-ONLY-NEXT: retq
291 ; AVX2-ONLY-LABEL: load_i64_stride8_vf4:
292 ; AVX2-ONLY: # %bb.0:
293 ; AVX2-ONLY-NEXT: movq {{[0-9]+}}(%rsp), %rax
294 ; AVX2-ONLY-NEXT: movq {{[0-9]+}}(%rsp), %r10
295 ; AVX2-ONLY-NEXT: movq {{[0-9]+}}(%rsp), %r11
296 ; AVX2-ONLY-NEXT: vmovaps 96(%rdi), %ymm0
297 ; AVX2-ONLY-NEXT: vmovaps 32(%rdi), %ymm1
298 ; AVX2-ONLY-NEXT: vmovaps 224(%rdi), %ymm2
299 ; AVX2-ONLY-NEXT: vmovaps 160(%rdi), %ymm3
300 ; AVX2-ONLY-NEXT: vmovaps 64(%rdi), %ymm4
301 ; AVX2-ONLY-NEXT: vmovaps (%rdi), %ymm5
302 ; AVX2-ONLY-NEXT: vmovaps 192(%rdi), %ymm6
303 ; AVX2-ONLY-NEXT: vmovaps 128(%rdi), %ymm7
304 ; AVX2-ONLY-NEXT: vmovaps (%rdi), %xmm8
305 ; AVX2-ONLY-NEXT: vmovaps 32(%rdi), %xmm9
306 ; AVX2-ONLY-NEXT: vmovaps 64(%rdi), %xmm10
307 ; AVX2-ONLY-NEXT: vinsertf128 $1, 192(%rdi), %ymm10, %ymm10
308 ; AVX2-ONLY-NEXT: vinsertf128 $1, 128(%rdi), %ymm8, %ymm8
309 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm11 = ymm8[0],ymm10[0],ymm8[2],ymm10[2]
310 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm8 = ymm8[1],ymm10[1],ymm8[3],ymm10[3]
311 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm10 = ymm7[0],ymm6[0],ymm7[2],ymm6[2]
312 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm12 = ymm5[0],ymm4[0],ymm5[2],ymm4[2]
313 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm10 = ymm12[2,3],ymm10[2,3]
314 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm6 = ymm7[1],ymm6[1],ymm7[3],ymm6[3]
315 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm4 = ymm5[1],ymm4[1],ymm5[3],ymm4[3]
316 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm4[2,3],ymm6[2,3]
317 ; AVX2-ONLY-NEXT: vmovaps 96(%rdi), %xmm5
318 ; AVX2-ONLY-NEXT: vinsertf128 $1, 224(%rdi), %ymm5, %ymm5
319 ; AVX2-ONLY-NEXT: vinsertf128 $1, 160(%rdi), %ymm9, %ymm6
320 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm7 = ymm6[0],ymm5[0],ymm6[2],ymm5[2]
321 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm5 = ymm6[1],ymm5[1],ymm6[3],ymm5[3]
322 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm6 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
323 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm9 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
324 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm6 = ymm9[2,3],ymm6[2,3]
325 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm3[1],ymm2[1],ymm3[3],ymm2[3]
326 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
327 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]
328 ; AVX2-ONLY-NEXT: vmovaps %ymm11, (%rsi)
329 ; AVX2-ONLY-NEXT: vmovaps %ymm8, (%rdx)
330 ; AVX2-ONLY-NEXT: vmovaps %ymm10, (%rcx)
331 ; AVX2-ONLY-NEXT: vmovaps %ymm4, (%r8)
332 ; AVX2-ONLY-NEXT: vmovaps %ymm7, (%r9)
333 ; AVX2-ONLY-NEXT: vmovaps %ymm5, (%r11)
334 ; AVX2-ONLY-NEXT: vmovaps %ymm6, (%r10)
335 ; AVX2-ONLY-NEXT: vmovaps %ymm0, (%rax)
336 ; AVX2-ONLY-NEXT: vzeroupper
337 ; AVX2-ONLY-NEXT: retq
339 ; AVX512-LABEL: load_i64_stride8_vf4:
341 ; AVX512-NEXT: movq {{[0-9]+}}(%rsp), %rax
342 ; AVX512-NEXT: movq {{[0-9]+}}(%rsp), %r10
343 ; AVX512-NEXT: movq {{[0-9]+}}(%rsp), %r11
344 ; AVX512-NEXT: vmovdqa64 64(%rdi), %zmm3
345 ; AVX512-NEXT: vmovdqa64 (%rdi), %zmm4
346 ; AVX512-NEXT: vmovdqa64 192(%rdi), %zmm5
347 ; AVX512-NEXT: vmovdqa64 128(%rdi), %zmm6
348 ; AVX512-NEXT: vmovaps (%rdi), %xmm0
349 ; AVX512-NEXT: vmovaps 64(%rdi), %xmm1
350 ; AVX512-NEXT: vinsertf128 $1, 192(%rdi), %ymm1, %ymm1
351 ; AVX512-NEXT: vinsertf128 $1, 128(%rdi), %ymm0, %ymm0
352 ; AVX512-NEXT: vunpcklpd {{.*#+}} ymm7 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
353 ; AVX512-NEXT: vunpckhpd {{.*#+}} ymm8 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
354 ; AVX512-NEXT: vmovaps 192(%rdi), %ymm1
355 ; AVX512-NEXT: vmovaps 128(%rdi), %ymm2
356 ; AVX512-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm2[0],ymm1[0],ymm2[2],ymm1[2]
357 ; AVX512-NEXT: vmovaps 64(%rdi), %ymm9
358 ; AVX512-NEXT: vmovaps (%rdi), %ymm10
359 ; AVX512-NEXT: vunpcklpd {{.*#+}} ymm11 = ymm10[0],ymm9[0],ymm10[2],ymm9[2]
360 ; AVX512-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm11[2,3],ymm0[2,3]
361 ; AVX512-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm1[1],ymm2[3],ymm1[3]
362 ; AVX512-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm10[1],ymm9[1],ymm10[3],ymm9[3]
363 ; AVX512-NEXT: vperm2f128 {{.*#+}} ymm1 = ymm2[2,3],ymm1[2,3]
364 ; AVX512-NEXT: vbroadcasti128 {{.*#+}} ymm2 = [4,12,4,12]
365 ; AVX512-NEXT: # ymm2 = mem[0,1,0,1]
366 ; AVX512-NEXT: vpermi2q %zmm5, %zmm6, %zmm2
367 ; AVX512-NEXT: vmovdqa {{.*#+}} xmm9 = [4,12]
368 ; AVX512-NEXT: vpermi2q %zmm3, %zmm4, %zmm9
369 ; AVX512-NEXT: vpblendd {{.*#+}} ymm2 = ymm9[0,1,2,3],ymm2[4,5,6,7]
370 ; AVX512-NEXT: vbroadcasti128 {{.*#+}} ymm9 = [5,13,5,13]
371 ; AVX512-NEXT: # ymm9 = mem[0,1,0,1]
372 ; AVX512-NEXT: vpermi2q %zmm5, %zmm6, %zmm9
373 ; AVX512-NEXT: vmovdqa {{.*#+}} xmm10 = [5,13]
374 ; AVX512-NEXT: vpermi2q %zmm3, %zmm4, %zmm10
375 ; AVX512-NEXT: vpblendd {{.*#+}} ymm9 = ymm10[0,1,2,3],ymm9[4,5,6,7]
376 ; AVX512-NEXT: vbroadcasti128 {{.*#+}} ymm10 = [6,14,6,14]
377 ; AVX512-NEXT: # ymm10 = mem[0,1,0,1]
378 ; AVX512-NEXT: vpermi2q %zmm5, %zmm6, %zmm10
379 ; AVX512-NEXT: vmovdqa {{.*#+}} xmm11 = [6,14]
380 ; AVX512-NEXT: vpermi2q %zmm3, %zmm4, %zmm11
381 ; AVX512-NEXT: vpblendd {{.*#+}} ymm10 = ymm11[0,1,2,3],ymm10[4,5,6,7]
382 ; AVX512-NEXT: vbroadcasti128 {{.*#+}} ymm11 = [7,15,7,15]
383 ; AVX512-NEXT: # ymm11 = mem[0,1,0,1]
384 ; AVX512-NEXT: vpermi2q %zmm5, %zmm6, %zmm11
385 ; AVX512-NEXT: vmovdqa {{.*#+}} xmm5 = [7,15]
386 ; AVX512-NEXT: vpermi2q %zmm3, %zmm4, %zmm5
387 ; AVX512-NEXT: vpblendd {{.*#+}} ymm3 = ymm5[0,1,2,3],ymm11[4,5,6,7]
388 ; AVX512-NEXT: vmovaps %ymm7, (%rsi)
389 ; AVX512-NEXT: vmovaps %ymm8, (%rdx)
390 ; AVX512-NEXT: vmovaps %ymm0, (%rcx)
391 ; AVX512-NEXT: vmovaps %ymm1, (%r8)
392 ; AVX512-NEXT: vmovdqa %ymm2, (%r9)
393 ; AVX512-NEXT: vmovdqa %ymm9, (%r11)
394 ; AVX512-NEXT: vmovdqa %ymm10, (%r10)
395 ; AVX512-NEXT: vmovdqa %ymm3, (%rax)
396 ; AVX512-NEXT: vzeroupper
398 %wide.vec = load <32 x i64>, ptr %in.vec, align 64
399 %strided.vec0 = shufflevector <32 x i64> %wide.vec, <32 x i64> poison, <4 x i32> <i32 0, i32 8, i32 16, i32 24>
400 %strided.vec1 = shufflevector <32 x i64> %wide.vec, <32 x i64> poison, <4 x i32> <i32 1, i32 9, i32 17, i32 25>
401 %strided.vec2 = shufflevector <32 x i64> %wide.vec, <32 x i64> poison, <4 x i32> <i32 2, i32 10, i32 18, i32 26>
402 %strided.vec3 = shufflevector <32 x i64> %wide.vec, <32 x i64> poison, <4 x i32> <i32 3, i32 11, i32 19, i32 27>
403 %strided.vec4 = shufflevector <32 x i64> %wide.vec, <32 x i64> poison, <4 x i32> <i32 4, i32 12, i32 20, i32 28>
404 %strided.vec5 = shufflevector <32 x i64> %wide.vec, <32 x i64> poison, <4 x i32> <i32 5, i32 13, i32 21, i32 29>
405 %strided.vec6 = shufflevector <32 x i64> %wide.vec, <32 x i64> poison, <4 x i32> <i32 6, i32 14, i32 22, i32 30>
406 %strided.vec7 = shufflevector <32 x i64> %wide.vec, <32 x i64> poison, <4 x i32> <i32 7, i32 15, i32 23, i32 31>
407 store <4 x i64> %strided.vec0, ptr %out.vec0, align 64
408 store <4 x i64> %strided.vec1, ptr %out.vec1, align 64
409 store <4 x i64> %strided.vec2, ptr %out.vec2, align 64
410 store <4 x i64> %strided.vec3, ptr %out.vec3, align 64
411 store <4 x i64> %strided.vec4, ptr %out.vec4, align 64
412 store <4 x i64> %strided.vec5, ptr %out.vec5, align 64
413 store <4 x i64> %strided.vec6, ptr %out.vec6, align 64
414 store <4 x i64> %strided.vec7, ptr %out.vec7, align 64
418 define void @load_i64_stride8_vf8(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4, ptr %out.vec5, ptr %out.vec6, ptr %out.vec7) nounwind {
419 ; SSE-LABEL: load_i64_stride8_vf8:
421 ; SSE-NEXT: subq $152, %rsp
422 ; SSE-NEXT: movaps 336(%rdi), %xmm0
423 ; SSE-NEXT: movaps 464(%rdi), %xmm1
424 ; SSE-NEXT: movaps 400(%rdi), %xmm8
425 ; SSE-NEXT: movaps 80(%rdi), %xmm2
426 ; SSE-NEXT: movaps 208(%rdi), %xmm3
427 ; SSE-NEXT: movaps 144(%rdi), %xmm9
428 ; SSE-NEXT: movaps 320(%rdi), %xmm4
429 ; SSE-NEXT: movaps 256(%rdi), %xmm11
430 ; SSE-NEXT: movaps 448(%rdi), %xmm5
431 ; SSE-NEXT: movaps 384(%rdi), %xmm12
432 ; SSE-NEXT: movaps 64(%rdi), %xmm6
433 ; SSE-NEXT: movaps (%rdi), %xmm13
434 ; SSE-NEXT: movaps 16(%rdi), %xmm10
435 ; SSE-NEXT: movaps 192(%rdi), %xmm7
436 ; SSE-NEXT: movaps 128(%rdi), %xmm14
437 ; SSE-NEXT: movaps %xmm14, %xmm15
438 ; SSE-NEXT: movlhps {{.*#+}} xmm15 = xmm15[0],xmm7[0]
439 ; SSE-NEXT: movaps %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
440 ; SSE-NEXT: unpckhpd {{.*#+}} xmm14 = xmm14[1],xmm7[1]
441 ; SSE-NEXT: movaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
442 ; SSE-NEXT: movaps %xmm13, %xmm7
443 ; SSE-NEXT: movlhps {{.*#+}} xmm7 = xmm7[0],xmm6[0]
444 ; SSE-NEXT: movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
445 ; SSE-NEXT: unpckhpd {{.*#+}} xmm13 = xmm13[1],xmm6[1]
446 ; SSE-NEXT: movaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
447 ; SSE-NEXT: movaps %xmm12, %xmm6
448 ; SSE-NEXT: movlhps {{.*#+}} xmm6 = xmm6[0],xmm5[0]
449 ; SSE-NEXT: movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
450 ; SSE-NEXT: unpckhpd {{.*#+}} xmm12 = xmm12[1],xmm5[1]
451 ; SSE-NEXT: movaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
452 ; SSE-NEXT: movaps %xmm11, %xmm5
453 ; SSE-NEXT: movlhps {{.*#+}} xmm5 = xmm5[0],xmm4[0]
454 ; SSE-NEXT: movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
455 ; SSE-NEXT: unpckhpd {{.*#+}} xmm11 = xmm11[1],xmm4[1]
456 ; SSE-NEXT: movaps %xmm11, (%rsp) # 16-byte Spill
457 ; SSE-NEXT: movaps %xmm9, %xmm4
458 ; SSE-NEXT: movlhps {{.*#+}} xmm4 = xmm4[0],xmm3[0]
459 ; SSE-NEXT: movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
460 ; SSE-NEXT: unpckhpd {{.*#+}} xmm9 = xmm9[1],xmm3[1]
461 ; SSE-NEXT: movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
462 ; SSE-NEXT: movaps %xmm10, %xmm3
463 ; SSE-NEXT: movlhps {{.*#+}} xmm3 = xmm3[0],xmm2[0]
464 ; SSE-NEXT: movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
465 ; SSE-NEXT: unpckhpd {{.*#+}} xmm10 = xmm10[1],xmm2[1]
466 ; SSE-NEXT: movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
467 ; SSE-NEXT: movaps %xmm8, %xmm2
468 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm1[0]
469 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
470 ; SSE-NEXT: unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm1[1]
471 ; SSE-NEXT: movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
472 ; SSE-NEXT: movaps 272(%rdi), %xmm15
473 ; SSE-NEXT: movaps %xmm15, %xmm1
474 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
475 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
476 ; SSE-NEXT: unpckhpd {{.*#+}} xmm15 = xmm15[1],xmm0[1]
477 ; SSE-NEXT: movaps 96(%rdi), %xmm0
478 ; SSE-NEXT: movaps 32(%rdi), %xmm14
479 ; SSE-NEXT: movaps %xmm14, %xmm1
480 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
481 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
482 ; SSE-NEXT: unpckhpd {{.*#+}} xmm14 = xmm14[1],xmm0[1]
483 ; SSE-NEXT: movaps 224(%rdi), %xmm0
484 ; SSE-NEXT: movaps 160(%rdi), %xmm9
485 ; SSE-NEXT: movaps %xmm9, %xmm1
486 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
487 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
488 ; SSE-NEXT: unpckhpd {{.*#+}} xmm9 = xmm9[1],xmm0[1]
489 ; SSE-NEXT: movaps 352(%rdi), %xmm0
490 ; SSE-NEXT: movaps 288(%rdi), %xmm10
491 ; SSE-NEXT: movaps %xmm10, %xmm12
492 ; SSE-NEXT: movlhps {{.*#+}} xmm12 = xmm12[0],xmm0[0]
493 ; SSE-NEXT: unpckhpd {{.*#+}} xmm10 = xmm10[1],xmm0[1]
494 ; SSE-NEXT: movaps 480(%rdi), %xmm0
495 ; SSE-NEXT: movaps 416(%rdi), %xmm8
496 ; SSE-NEXT: movaps %xmm8, %xmm11
497 ; SSE-NEXT: movlhps {{.*#+}} xmm11 = xmm11[0],xmm0[0]
498 ; SSE-NEXT: unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm0[1]
499 ; SSE-NEXT: movaps 112(%rdi), %xmm0
500 ; SSE-NEXT: movaps 48(%rdi), %xmm7
501 ; SSE-NEXT: movaps %xmm7, %xmm13
502 ; SSE-NEXT: movlhps {{.*#+}} xmm13 = xmm13[0],xmm0[0]
503 ; SSE-NEXT: unpckhpd {{.*#+}} xmm7 = xmm7[1],xmm0[1]
504 ; SSE-NEXT: movaps 240(%rdi), %xmm0
505 ; SSE-NEXT: movaps 176(%rdi), %xmm5
506 ; SSE-NEXT: movaps %xmm5, %xmm6
507 ; SSE-NEXT: movlhps {{.*#+}} xmm6 = xmm6[0],xmm0[0]
508 ; SSE-NEXT: unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm0[1]
509 ; SSE-NEXT: movaps 368(%rdi), %xmm0
510 ; SSE-NEXT: movaps 304(%rdi), %xmm2
511 ; SSE-NEXT: movaps %xmm2, %xmm4
512 ; SSE-NEXT: movlhps {{.*#+}} xmm4 = xmm4[0],xmm0[0]
513 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
514 ; SSE-NEXT: movaps 496(%rdi), %xmm0
515 ; SSE-NEXT: movaps 432(%rdi), %xmm1
516 ; SSE-NEXT: movaps %xmm1, %xmm3
517 ; SSE-NEXT: movlhps {{.*#+}} xmm3 = xmm3[0],xmm0[0]
518 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
519 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
520 ; SSE-NEXT: movaps %xmm0, 32(%rsi)
521 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
522 ; SSE-NEXT: movaps %xmm0, 48(%rsi)
523 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
524 ; SSE-NEXT: movaps %xmm0, (%rsi)
525 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
526 ; SSE-NEXT: movaps %xmm0, 16(%rsi)
527 ; SSE-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload
528 ; SSE-NEXT: movaps %xmm0, 32(%rdx)
529 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
530 ; SSE-NEXT: movaps %xmm0, 48(%rdx)
531 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
532 ; SSE-NEXT: movaps %xmm0, (%rdx)
533 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
534 ; SSE-NEXT: movaps %xmm0, 16(%rdx)
535 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
536 ; SSE-NEXT: movaps %xmm0, 32(%rcx)
537 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
538 ; SSE-NEXT: movaps %xmm0, 48(%rcx)
539 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
540 ; SSE-NEXT: movaps %xmm0, (%rcx)
541 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
542 ; SSE-NEXT: movaps %xmm0, 16(%rcx)
543 ; SSE-NEXT: movaps %xmm15, 32(%r8)
544 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
545 ; SSE-NEXT: movaps %xmm0, 48(%r8)
546 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
547 ; SSE-NEXT: movaps %xmm0, (%r8)
548 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
549 ; SSE-NEXT: movaps %xmm0, 16(%r8)
550 ; SSE-NEXT: movaps %xmm12, 32(%r9)
551 ; SSE-NEXT: movaps %xmm11, 48(%r9)
552 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
553 ; SSE-NEXT: movaps %xmm0, (%r9)
554 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
555 ; SSE-NEXT: movaps %xmm0, 16(%r9)
556 ; SSE-NEXT: movq {{[0-9]+}}(%rsp), %rax
557 ; SSE-NEXT: movaps %xmm8, 48(%rax)
558 ; SSE-NEXT: movaps %xmm10, 32(%rax)
559 ; SSE-NEXT: movaps %xmm9, 16(%rax)
560 ; SSE-NEXT: movaps %xmm14, (%rax)
561 ; SSE-NEXT: movq {{[0-9]+}}(%rsp), %rax
562 ; SSE-NEXT: movaps %xmm3, 48(%rax)
563 ; SSE-NEXT: movaps %xmm4, 32(%rax)
564 ; SSE-NEXT: movaps %xmm6, 16(%rax)
565 ; SSE-NEXT: movaps %xmm13, (%rax)
566 ; SSE-NEXT: movq {{[0-9]+}}(%rsp), %rax
567 ; SSE-NEXT: movaps %xmm1, 48(%rax)
568 ; SSE-NEXT: movaps %xmm2, 32(%rax)
569 ; SSE-NEXT: movaps %xmm5, 16(%rax)
570 ; SSE-NEXT: movaps %xmm7, (%rax)
571 ; SSE-NEXT: addq $152, %rsp
574 ; AVX1-ONLY-LABEL: load_i64_stride8_vf8:
575 ; AVX1-ONLY: # %bb.0:
576 ; AVX1-ONLY-NEXT: subq $184, %rsp
577 ; AVX1-ONLY-NEXT: vmovaps 192(%rdi), %ymm0
578 ; AVX1-ONLY-NEXT: vmovaps 128(%rdi), %ymm1
579 ; AVX1-ONLY-NEXT: vmovaps 448(%rdi), %ymm2
580 ; AVX1-ONLY-NEXT: vmovaps 384(%rdi), %ymm3
581 ; AVX1-ONLY-NEXT: vmovaps 320(%rdi), %xmm4
582 ; AVX1-ONLY-NEXT: vmovaps 256(%rdi), %xmm5
583 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm6 = xmm5[0],xmm4[0]
584 ; AVX1-ONLY-NEXT: vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
585 ; AVX1-ONLY-NEXT: vmovaps 448(%rdi), %xmm7
586 ; AVX1-ONLY-NEXT: vmovaps 384(%rdi), %xmm8
587 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm6 = xmm8[0],xmm7[0]
588 ; AVX1-ONLY-NEXT: vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
589 ; AVX1-ONLY-NEXT: vmovaps 192(%rdi), %xmm9
590 ; AVX1-ONLY-NEXT: vmovaps 128(%rdi), %xmm10
591 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm6 = xmm10[0],xmm9[0]
592 ; AVX1-ONLY-NEXT: vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
593 ; AVX1-ONLY-NEXT: vmovaps 64(%rdi), %xmm11
594 ; AVX1-ONLY-NEXT: vmovaps (%rdi), %xmm12
595 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm6 = xmm12[0],xmm11[0]
596 ; AVX1-ONLY-NEXT: vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
597 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm4 = xmm5[1],xmm4[1]
598 ; AVX1-ONLY-NEXT: vmovaps %xmm4, (%rsp) # 16-byte Spill
599 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm4 = xmm8[1],xmm7[1]
600 ; AVX1-ONLY-NEXT: vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
601 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm4 = xmm10[1],xmm9[1]
602 ; AVX1-ONLY-NEXT: vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
603 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm4 = xmm12[1],xmm11[1]
604 ; AVX1-ONLY-NEXT: vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
605 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
606 ; AVX1-ONLY-NEXT: vmovaps 336(%rdi), %xmm10
607 ; AVX1-ONLY-NEXT: vmovaps 272(%rdi), %xmm11
608 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm8 = xmm11[0],xmm10[0]
609 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm4 = ymm8[0,1,2,3],ymm4[4,5,6,7]
610 ; AVX1-ONLY-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
611 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
612 ; AVX1-ONLY-NEXT: vmovaps 80(%rdi), %xmm12
613 ; AVX1-ONLY-NEXT: vmovaps 16(%rdi), %xmm13
614 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm9 = xmm13[0],xmm12[0]
615 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm4 = ymm9[0,1,2,3],ymm4[4,5,6,7]
616 ; AVX1-ONLY-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
617 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm3[1],ymm2[1],ymm3[3],ymm2[3]
618 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm3 = xmm11[1],xmm10[1]
619 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
620 ; AVX1-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
621 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
622 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm1 = xmm13[1],xmm12[1]
623 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
624 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
625 ; AVX1-ONLY-NEXT: vmovaps 480(%rdi), %xmm0
626 ; AVX1-ONLY-NEXT: vmovaps 416(%rdi), %xmm1
627 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
628 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
629 ; AVX1-ONLY-NEXT: vmovaps 352(%rdi), %xmm2
630 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
631 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
632 ; AVX1-ONLY-NEXT: vmovaps 288(%rdi), %xmm0
633 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm15 = xmm0[0],xmm2[0]
634 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
635 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
636 ; AVX1-ONLY-NEXT: vmovaps 224(%rdi), %xmm0
637 ; AVX1-ONLY-NEXT: vmovaps 160(%rdi), %xmm1
638 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm12 = xmm1[0],xmm0[0]
639 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm13 = xmm1[1],xmm0[1]
640 ; AVX1-ONLY-NEXT: vmovaps 96(%rdi), %xmm1
641 ; AVX1-ONLY-NEXT: vmovaps 32(%rdi), %xmm2
642 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm8 = xmm2[0],xmm1[0]
643 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm11 = xmm2[1],xmm1[1]
644 ; AVX1-ONLY-NEXT: vmovaps 480(%rdi), %ymm6
645 ; AVX1-ONLY-NEXT: vmovaps 416(%rdi), %ymm5
646 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm5[0],ymm6[0],ymm5[2],ymm6[2]
647 ; AVX1-ONLY-NEXT: vmovaps 368(%rdi), %xmm4
648 ; AVX1-ONLY-NEXT: vmovaps 304(%rdi), %xmm3
649 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm9 = xmm3[0],xmm4[0]
650 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm10 = ymm9[0,1,2,3],ymm0[4,5,6,7]
651 ; AVX1-ONLY-NEXT: vmovaps 224(%rdi), %ymm9
652 ; AVX1-ONLY-NEXT: vmovaps 160(%rdi), %ymm2
653 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm7 = ymm2[0],ymm9[0],ymm2[2],ymm9[2]
654 ; AVX1-ONLY-NEXT: vmovaps 112(%rdi), %xmm1
655 ; AVX1-ONLY-NEXT: vmovaps 48(%rdi), %xmm0
656 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm14 = xmm0[0],xmm1[0]
657 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm7 = ymm14[0,1,2,3],ymm7[4,5,6,7]
658 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm5 = ymm5[1],ymm6[1],ymm5[3],ymm6[3]
659 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm3 = xmm3[1],xmm4[1]
660 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm5[4,5,6,7]
661 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm9[1],ymm2[3],ymm9[3]
662 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]
663 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
664 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
665 ; AVX1-ONLY-NEXT: vmovaps %xmm1, (%rsi)
666 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
667 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 16(%rsi)
668 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
669 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 48(%rsi)
670 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
671 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 32(%rsi)
672 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
673 ; AVX1-ONLY-NEXT: vmovaps %xmm1, (%rdx)
674 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
675 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 16(%rdx)
676 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
677 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 48(%rdx)
678 ; AVX1-ONLY-NEXT: vmovaps (%rsp), %xmm1 # 16-byte Reload
679 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 32(%rdx)
680 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
681 ; AVX1-ONLY-NEXT: vmovaps %ymm1, (%rcx)
682 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
683 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 32(%rcx)
684 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
685 ; AVX1-ONLY-NEXT: vmovaps %ymm1, (%r8)
686 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
687 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 32(%r8)
688 ; AVX1-ONLY-NEXT: vmovaps %xmm8, (%r9)
689 ; AVX1-ONLY-NEXT: vmovaps %xmm12, 16(%r9)
690 ; AVX1-ONLY-NEXT: vmovaps %xmm15, 32(%r9)
691 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
692 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 48(%r9)
693 ; AVX1-ONLY-NEXT: movq {{[0-9]+}}(%rsp), %rax
694 ; AVX1-ONLY-NEXT: vmovaps %xmm11, (%rax)
695 ; AVX1-ONLY-NEXT: vmovaps %xmm13, 16(%rax)
696 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
697 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 32(%rax)
698 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
699 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 48(%rax)
700 ; AVX1-ONLY-NEXT: movq {{[0-9]+}}(%rsp), %rax
701 ; AVX1-ONLY-NEXT: vmovaps %ymm7, (%rax)
702 ; AVX1-ONLY-NEXT: vmovaps %ymm10, 32(%rax)
703 ; AVX1-ONLY-NEXT: movq {{[0-9]+}}(%rsp), %rax
704 ; AVX1-ONLY-NEXT: vmovaps %ymm0, (%rax)
705 ; AVX1-ONLY-NEXT: vmovaps %ymm3, 32(%rax)
706 ; AVX1-ONLY-NEXT: addq $184, %rsp
707 ; AVX1-ONLY-NEXT: vzeroupper
708 ; AVX1-ONLY-NEXT: retq
710 ; AVX2-ONLY-LABEL: load_i64_stride8_vf8:
711 ; AVX2-ONLY: # %bb.0:
712 ; AVX2-ONLY-NEXT: subq $136, %rsp
713 ; AVX2-ONLY-NEXT: vmovaps 352(%rdi), %ymm0
714 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
715 ; AVX2-ONLY-NEXT: vmovaps 64(%rdi), %ymm8
716 ; AVX2-ONLY-NEXT: vmovaps (%rdi), %ymm10
717 ; AVX2-ONLY-NEXT: vmovaps 192(%rdi), %ymm11
718 ; AVX2-ONLY-NEXT: vmovaps 128(%rdi), %ymm13
719 ; AVX2-ONLY-NEXT: vmovaps 320(%rdi), %ymm7
720 ; AVX2-ONLY-NEXT: vmovaps 256(%rdi), %ymm14
721 ; AVX2-ONLY-NEXT: vmovaps 448(%rdi), %ymm12
722 ; AVX2-ONLY-NEXT: vmovaps 384(%rdi), %ymm15
723 ; AVX2-ONLY-NEXT: vmovaps 320(%rdi), %xmm1
724 ; AVX2-ONLY-NEXT: vinsertf128 $1, 448(%rdi), %ymm1, %ymm2
725 ; AVX2-ONLY-NEXT: vmovaps 256(%rdi), %xmm1
726 ; AVX2-ONLY-NEXT: vinsertf128 $1, 384(%rdi), %ymm1, %ymm4
727 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm4[0],ymm2[0],ymm4[2],ymm2[2]
728 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
729 ; AVX2-ONLY-NEXT: vmovaps (%rdi), %xmm3
730 ; AVX2-ONLY-NEXT: vmovaps 64(%rdi), %xmm5
731 ; AVX2-ONLY-NEXT: vinsertf128 $1, 192(%rdi), %ymm5, %ymm5
732 ; AVX2-ONLY-NEXT: vinsertf128 $1, 128(%rdi), %ymm3, %ymm6
733 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm6[0],ymm5[0],ymm6[2],ymm5[2]
734 ; AVX2-ONLY-NEXT: vmovups %ymm0, (%rsp) # 32-byte Spill
735 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm4[1],ymm2[1],ymm4[3],ymm2[3]
736 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
737 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm6[1],ymm5[1],ymm6[3],ymm5[3]
738 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
739 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm15[0],ymm12[0],ymm15[2],ymm12[2]
740 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm6 = ymm14[0],ymm7[0],ymm14[2],ymm7[2]
741 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm6[2,3],ymm5[2,3]
742 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
743 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm6 = ymm13[0],ymm11[0],ymm13[2],ymm11[2]
744 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm9 = ymm10[0],ymm8[0],ymm10[2],ymm8[2]
745 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm9[2,3],ymm6[2,3]
746 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
747 ; AVX2-ONLY-NEXT: vmovaps 288(%rdi), %ymm9
748 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm15 = ymm15[1],ymm12[1],ymm15[3],ymm12[3]
749 ; AVX2-ONLY-NEXT: vmovaps 480(%rdi), %ymm12
750 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm7 = ymm14[1],ymm7[1],ymm14[3],ymm7[3]
751 ; AVX2-ONLY-NEXT: vmovaps 32(%rdi), %xmm14
752 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm7[2,3],ymm15[2,3]
753 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
754 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm11 = ymm13[1],ymm11[1],ymm13[3],ymm11[3]
755 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm8 = ymm10[1],ymm8[1],ymm10[3],ymm8[3]
756 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm8 = ymm8[2,3],ymm11[2,3]
757 ; AVX2-ONLY-NEXT: vmovaps 352(%rdi), %xmm10
758 ; AVX2-ONLY-NEXT: vinsertf128 $1, 480(%rdi), %ymm10, %ymm11
759 ; AVX2-ONLY-NEXT: vmovaps 288(%rdi), %xmm10
760 ; AVX2-ONLY-NEXT: vinsertf128 $1, 416(%rdi), %ymm10, %ymm13
761 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm10 = ymm13[0],ymm11[0],ymm13[2],ymm11[2]
762 ; AVX2-ONLY-NEXT: vmovaps 96(%rdi), %xmm15
763 ; AVX2-ONLY-NEXT: vinsertf128 $1, 224(%rdi), %ymm15, %ymm15
764 ; AVX2-ONLY-NEXT: vinsertf128 $1, 160(%rdi), %ymm14, %ymm14
765 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm11 = ymm13[1],ymm11[1],ymm13[3],ymm11[3]
766 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm13 = ymm14[0],ymm15[0],ymm14[2],ymm15[2]
767 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm14 = ymm14[1],ymm15[1],ymm14[3],ymm15[3]
768 ; AVX2-ONLY-NEXT: vmovaps 416(%rdi), %ymm15
769 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm15[0],ymm12[0],ymm15[2],ymm12[2]
770 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
771 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm9[0],ymm3[0],ymm9[2],ymm3[2]
772 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm7 = ymm1[2,3],ymm0[2,3]
773 ; AVX2-ONLY-NEXT: vmovaps 96(%rdi), %ymm4
774 ; AVX2-ONLY-NEXT: vmovaps 32(%rdi), %ymm2
775 ; AVX2-ONLY-NEXT: vmovaps 224(%rdi), %ymm1
776 ; AVX2-ONLY-NEXT: vmovaps 160(%rdi), %ymm0
777 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
778 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm6 = ymm2[0],ymm4[0],ymm2[2],ymm4[2]
779 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm5 = ymm6[2,3],ymm5[2,3]
780 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm6 = ymm15[1],ymm12[1],ymm15[3],ymm12[3]
781 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm9 = ymm9[1],ymm3[1],ymm9[3],ymm3[3]
782 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm6 = ymm9[2,3],ymm6[2,3]
783 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
784 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm4[1],ymm2[3],ymm4[3]
785 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
786 ; AVX2-ONLY-NEXT: vmovups (%rsp), %ymm1 # 32-byte Reload
787 ; AVX2-ONLY-NEXT: vmovaps %ymm1, (%rsi)
788 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
789 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 32(%rsi)
790 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
791 ; AVX2-ONLY-NEXT: vmovaps %ymm1, (%rdx)
792 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
793 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 32(%rdx)
794 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
795 ; AVX2-ONLY-NEXT: vmovaps %ymm1, (%rcx)
796 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
797 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 32(%rcx)
798 ; AVX2-ONLY-NEXT: vmovaps %ymm8, (%r8)
799 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
800 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 32(%r8)
801 ; AVX2-ONLY-NEXT: vmovaps %ymm13, (%r9)
802 ; AVX2-ONLY-NEXT: vmovaps %ymm10, 32(%r9)
803 ; AVX2-ONLY-NEXT: movq {{[0-9]+}}(%rsp), %rax
804 ; AVX2-ONLY-NEXT: vmovaps %ymm14, (%rax)
805 ; AVX2-ONLY-NEXT: vmovaps %ymm11, 32(%rax)
806 ; AVX2-ONLY-NEXT: movq {{[0-9]+}}(%rsp), %rax
807 ; AVX2-ONLY-NEXT: vmovaps %ymm5, (%rax)
808 ; AVX2-ONLY-NEXT: vmovaps %ymm7, 32(%rax)
809 ; AVX2-ONLY-NEXT: movq {{[0-9]+}}(%rsp), %rax
810 ; AVX2-ONLY-NEXT: vmovaps %ymm0, (%rax)
811 ; AVX2-ONLY-NEXT: vmovaps %ymm6, 32(%rax)
812 ; AVX2-ONLY-NEXT: addq $136, %rsp
813 ; AVX2-ONLY-NEXT: vzeroupper
814 ; AVX2-ONLY-NEXT: retq
816 ; AVX512F-LABEL: load_i64_stride8_vf8:
818 ; AVX512F-NEXT: vmovdqa64 192(%rdi), %zmm18
819 ; AVX512F-NEXT: vmovdqa64 128(%rdi), %zmm1
820 ; AVX512F-NEXT: vmovdqa64 64(%rdi), %zmm4
821 ; AVX512F-NEXT: vmovdqa64 (%rdi), %zmm2
822 ; AVX512F-NEXT: vmovdqa64 320(%rdi), %zmm12
823 ; AVX512F-NEXT: vmovdqa64 256(%rdi), %zmm3
824 ; AVX512F-NEXT: vmovdqa64 448(%rdi), %zmm7
825 ; AVX512F-NEXT: vmovdqa64 384(%rdi), %zmm11
826 ; AVX512F-NEXT: vbroadcasti32x4 {{.*#+}} zmm5 = [0,8,0,8,0,8,0,8]
827 ; AVX512F-NEXT: # zmm5 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
828 ; AVX512F-NEXT: vmovdqa64 %zmm11, %zmm6
829 ; AVX512F-NEXT: vpermt2q %zmm7, %zmm5, %zmm6
830 ; AVX512F-NEXT: vpermi2q %zmm12, %zmm3, %zmm5
831 ; AVX512F-NEXT: movb $-64, %al
832 ; AVX512F-NEXT: kmovw %eax, %k1
833 ; AVX512F-NEXT: vbroadcasti32x4 {{.*#+}} zmm8 = [1,9,1,9,1,9,1,9]
834 ; AVX512F-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
835 ; AVX512F-NEXT: vmovdqa64 %zmm11, %zmm10
836 ; AVX512F-NEXT: vpermt2q %zmm7, %zmm8, %zmm10
837 ; AVX512F-NEXT: vpermi2q %zmm12, %zmm3, %zmm8
838 ; AVX512F-NEXT: vbroadcasti32x4 {{.*#+}} zmm9 = [2,10,2,10,2,10,2,10]
839 ; AVX512F-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
840 ; AVX512F-NEXT: vmovdqa64 %zmm11, %zmm13
841 ; AVX512F-NEXT: vpermt2q %zmm7, %zmm9, %zmm13
842 ; AVX512F-NEXT: vpermi2q %zmm12, %zmm3, %zmm9
843 ; AVX512F-NEXT: vmovdqa64 %zmm13, %zmm9 {%k1}
844 ; AVX512F-NEXT: vmovdqa 192(%rdi), %ymm13
845 ; AVX512F-NEXT: vmovdqa 128(%rdi), %ymm14
846 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} ymm15 = ymm14[0],ymm13[0],ymm14[2],ymm13[2]
847 ; AVX512F-NEXT: vmovdqa64 64(%rdi), %ymm16
848 ; AVX512F-NEXT: vmovdqa64 (%rdi), %ymm17
849 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} ymm0 = ymm17[0],ymm16[0],ymm17[2],ymm16[2]
850 ; AVX512F-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm0[2,3],ymm15[2,3]
851 ; AVX512F-NEXT: vinserti64x4 $0, %ymm0, %zmm9, %zmm9
852 ; AVX512F-NEXT: vbroadcasti32x4 {{.*#+}} zmm0 = [3,11,3,11,3,11,3,11]
853 ; AVX512F-NEXT: # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
854 ; AVX512F-NEXT: vmovdqa64 %zmm11, %zmm15
855 ; AVX512F-NEXT: vpermt2q %zmm7, %zmm0, %zmm15
856 ; AVX512F-NEXT: vpermi2q %zmm12, %zmm3, %zmm0
857 ; AVX512F-NEXT: vmovdqa64 %zmm15, %zmm0 {%k1}
858 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} ymm13 = ymm14[1],ymm13[1],ymm14[3],ymm13[3]
859 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} ymm14 = ymm17[1],ymm16[1],ymm17[3],ymm16[3]
860 ; AVX512F-NEXT: vperm2i128 {{.*#+}} ymm13 = ymm14[2,3],ymm13[2,3]
861 ; AVX512F-NEXT: vinserti64x4 $0, %ymm13, %zmm0, %zmm13
862 ; AVX512F-NEXT: vbroadcasti32x4 {{.*#+}} zmm14 = [4,12,4,12,4,12,4,12]
863 ; AVX512F-NEXT: # zmm14 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
864 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} zmm0 = zmm3[0],zmm12[0],zmm3[2],zmm12[2],zmm3[4],zmm12[4],zmm3[6],zmm12[6]
865 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} zmm16 = zmm3[1],zmm12[1],zmm3[3],zmm12[3],zmm3[5],zmm12[5],zmm3[7],zmm12[7]
866 ; AVX512F-NEXT: vbroadcasti32x4 {{.*#+}} zmm15 = [6,14,6,14,6,14,6,14]
867 ; AVX512F-NEXT: # zmm15 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
868 ; AVX512F-NEXT: vmovdqa64 %zmm3, %zmm17
869 ; AVX512F-NEXT: vpermt2q %zmm12, %zmm15, %zmm17
870 ; AVX512F-NEXT: vbroadcasti32x4 {{.*#+}} zmm19 = [7,15,7,15,7,15,7,15]
871 ; AVX512F-NEXT: # zmm19 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
872 ; AVX512F-NEXT: vpermt2q %zmm12, %zmm19, %zmm3
873 ; AVX512F-NEXT: vmovdqa64 %zmm11, %zmm12
874 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} zmm17 {%k1} = zmm11[0],zmm7[0],zmm11[2],zmm7[2],zmm11[4],zmm7[4],zmm11[6],zmm7[6]
875 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} zmm3 {%k1} = zmm11[1],zmm7[1],zmm11[3],zmm7[3],zmm11[5],zmm7[5],zmm11[7],zmm7[7]
876 ; AVX512F-NEXT: vpermt2q %zmm7, %zmm14, %zmm11
877 ; AVX512F-NEXT: vmovdqa64 %zmm11, %zmm0 {%k1}
878 ; AVX512F-NEXT: vpermi2q %zmm4, %zmm2, %zmm14
879 ; AVX512F-NEXT: vbroadcasti128 {{.*#+}} ymm11 = [4,12,4,12]
880 ; AVX512F-NEXT: # ymm11 = mem[0,1,0,1]
881 ; AVX512F-NEXT: vpermi2q %zmm18, %zmm1, %zmm11
882 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm11 = ymm14[0,1,2,3],ymm11[4,5,6,7]
883 ; AVX512F-NEXT: vinserti64x4 $0, %ymm11, %zmm0, %zmm0
884 ; AVX512F-NEXT: vbroadcasti32x4 {{.*#+}} zmm11 = [5,13,5,13,5,13,5,13]
885 ; AVX512F-NEXT: # zmm11 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
886 ; AVX512F-NEXT: vpermt2q %zmm7, %zmm11, %zmm12
887 ; AVX512F-NEXT: vpermi2q %zmm4, %zmm2, %zmm11
888 ; AVX512F-NEXT: vbroadcasti128 {{.*#+}} ymm7 = [5,13,5,13]
889 ; AVX512F-NEXT: # ymm7 = mem[0,1,0,1]
890 ; AVX512F-NEXT: vpermi2q %zmm18, %zmm1, %zmm7
891 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm7 = ymm11[0,1,2,3],ymm7[4,5,6,7]
892 ; AVX512F-NEXT: vmovdqa64 %zmm6, %zmm5 {%k1}
893 ; AVX512F-NEXT: vmovdqa (%rdi), %xmm6
894 ; AVX512F-NEXT: vmovdqa 64(%rdi), %xmm11
895 ; AVX512F-NEXT: vinserti128 $1, 192(%rdi), %ymm11, %ymm11
896 ; AVX512F-NEXT: vinserti128 $1, 128(%rdi), %ymm6, %ymm6
897 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} ymm14 = ymm6[0],ymm11[0],ymm6[2],ymm11[2]
898 ; AVX512F-NEXT: vinserti64x4 $0, %ymm14, %zmm5, %zmm5
899 ; AVX512F-NEXT: vmovdqa64 %zmm10, %zmm8 {%k1}
900 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} ymm6 = ymm6[1],ymm11[1],ymm6[3],ymm11[3]
901 ; AVX512F-NEXT: movq {{[0-9]+}}(%rsp), %rax
902 ; AVX512F-NEXT: movq {{[0-9]+}}(%rsp), %rdi
903 ; AVX512F-NEXT: movq {{[0-9]+}}(%rsp), %r10
904 ; AVX512F-NEXT: vinserti64x4 $0, %ymm6, %zmm8, %zmm6
905 ; AVX512F-NEXT: vmovdqa64 %zmm12, %zmm16 {%k1}
906 ; AVX512F-NEXT: vinserti64x4 $0, %ymm7, %zmm16, %zmm7
907 ; AVX512F-NEXT: vpermi2q %zmm4, %zmm2, %zmm15
908 ; AVX512F-NEXT: vbroadcasti128 {{.*#+}} ymm8 = [6,14,6,14]
909 ; AVX512F-NEXT: # ymm8 = mem[0,1,0,1]
910 ; AVX512F-NEXT: vpermi2q %zmm18, %zmm1, %zmm8
911 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm8 = ymm15[0,1,2,3],ymm8[4,5,6,7]
912 ; AVX512F-NEXT: vinserti64x4 $0, %ymm8, %zmm17, %zmm8
913 ; AVX512F-NEXT: vpermt2q %zmm4, %zmm19, %zmm2
914 ; AVX512F-NEXT: vbroadcasti128 {{.*#+}} ymm4 = [7,15,7,15]
915 ; AVX512F-NEXT: # ymm4 = mem[0,1,0,1]
916 ; AVX512F-NEXT: vpermi2q %zmm18, %zmm1, %zmm4
917 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm4[4,5,6,7]
918 ; AVX512F-NEXT: vinserti64x4 $0, %ymm1, %zmm3, %zmm1
919 ; AVX512F-NEXT: vmovdqa64 %zmm5, (%rsi)
920 ; AVX512F-NEXT: vmovdqa64 %zmm6, (%rdx)
921 ; AVX512F-NEXT: vmovdqa64 %zmm9, (%rcx)
922 ; AVX512F-NEXT: vmovdqa64 %zmm13, (%r8)
923 ; AVX512F-NEXT: vmovdqa64 %zmm0, (%r9)
924 ; AVX512F-NEXT: vmovdqa64 %zmm7, (%r10)
925 ; AVX512F-NEXT: vmovdqa64 %zmm8, (%rdi)
926 ; AVX512F-NEXT: vmovdqa64 %zmm1, (%rax)
927 ; AVX512F-NEXT: vzeroupper
930 ; AVX512BW-LABEL: load_i64_stride8_vf8:
932 ; AVX512BW-NEXT: vmovdqa64 192(%rdi), %zmm18
933 ; AVX512BW-NEXT: vmovdqa64 128(%rdi), %zmm1
934 ; AVX512BW-NEXT: vmovdqa64 64(%rdi), %zmm4
935 ; AVX512BW-NEXT: vmovdqa64 (%rdi), %zmm2
936 ; AVX512BW-NEXT: vmovdqa64 320(%rdi), %zmm12
937 ; AVX512BW-NEXT: vmovdqa64 256(%rdi), %zmm3
938 ; AVX512BW-NEXT: vmovdqa64 448(%rdi), %zmm7
939 ; AVX512BW-NEXT: vmovdqa64 384(%rdi), %zmm11
940 ; AVX512BW-NEXT: vbroadcasti32x4 {{.*#+}} zmm5 = [0,8,0,8,0,8,0,8]
941 ; AVX512BW-NEXT: # zmm5 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
942 ; AVX512BW-NEXT: vmovdqa64 %zmm11, %zmm6
943 ; AVX512BW-NEXT: vpermt2q %zmm7, %zmm5, %zmm6
944 ; AVX512BW-NEXT: vpermi2q %zmm12, %zmm3, %zmm5
945 ; AVX512BW-NEXT: movb $-64, %al
946 ; AVX512BW-NEXT: kmovd %eax, %k1
947 ; AVX512BW-NEXT: vbroadcasti32x4 {{.*#+}} zmm8 = [1,9,1,9,1,9,1,9]
948 ; AVX512BW-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
949 ; AVX512BW-NEXT: vmovdqa64 %zmm11, %zmm10
950 ; AVX512BW-NEXT: vpermt2q %zmm7, %zmm8, %zmm10
951 ; AVX512BW-NEXT: vpermi2q %zmm12, %zmm3, %zmm8
952 ; AVX512BW-NEXT: vbroadcasti32x4 {{.*#+}} zmm9 = [2,10,2,10,2,10,2,10]
953 ; AVX512BW-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
954 ; AVX512BW-NEXT: vmovdqa64 %zmm11, %zmm13
955 ; AVX512BW-NEXT: vpermt2q %zmm7, %zmm9, %zmm13
956 ; AVX512BW-NEXT: vpermi2q %zmm12, %zmm3, %zmm9
957 ; AVX512BW-NEXT: vmovdqa64 %zmm13, %zmm9 {%k1}
958 ; AVX512BW-NEXT: vmovdqa 192(%rdi), %ymm13
959 ; AVX512BW-NEXT: vmovdqa 128(%rdi), %ymm14
960 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} ymm15 = ymm14[0],ymm13[0],ymm14[2],ymm13[2]
961 ; AVX512BW-NEXT: vmovdqa64 64(%rdi), %ymm16
962 ; AVX512BW-NEXT: vmovdqa64 (%rdi), %ymm17
963 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} ymm0 = ymm17[0],ymm16[0],ymm17[2],ymm16[2]
964 ; AVX512BW-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm0[2,3],ymm15[2,3]
965 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm0, %zmm9, %zmm9
966 ; AVX512BW-NEXT: vbroadcasti32x4 {{.*#+}} zmm0 = [3,11,3,11,3,11,3,11]
967 ; AVX512BW-NEXT: # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
968 ; AVX512BW-NEXT: vmovdqa64 %zmm11, %zmm15
969 ; AVX512BW-NEXT: vpermt2q %zmm7, %zmm0, %zmm15
970 ; AVX512BW-NEXT: vpermi2q %zmm12, %zmm3, %zmm0
971 ; AVX512BW-NEXT: vmovdqa64 %zmm15, %zmm0 {%k1}
972 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} ymm13 = ymm14[1],ymm13[1],ymm14[3],ymm13[3]
973 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} ymm14 = ymm17[1],ymm16[1],ymm17[3],ymm16[3]
974 ; AVX512BW-NEXT: vperm2i128 {{.*#+}} ymm13 = ymm14[2,3],ymm13[2,3]
975 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm13, %zmm0, %zmm13
976 ; AVX512BW-NEXT: vbroadcasti32x4 {{.*#+}} zmm14 = [4,12,4,12,4,12,4,12]
977 ; AVX512BW-NEXT: # zmm14 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
978 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} zmm0 = zmm3[0],zmm12[0],zmm3[2],zmm12[2],zmm3[4],zmm12[4],zmm3[6],zmm12[6]
979 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} zmm16 = zmm3[1],zmm12[1],zmm3[3],zmm12[3],zmm3[5],zmm12[5],zmm3[7],zmm12[7]
980 ; AVX512BW-NEXT: vbroadcasti32x4 {{.*#+}} zmm15 = [6,14,6,14,6,14,6,14]
981 ; AVX512BW-NEXT: # zmm15 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
982 ; AVX512BW-NEXT: vmovdqa64 %zmm3, %zmm17
983 ; AVX512BW-NEXT: vpermt2q %zmm12, %zmm15, %zmm17
984 ; AVX512BW-NEXT: vbroadcasti32x4 {{.*#+}} zmm19 = [7,15,7,15,7,15,7,15]
985 ; AVX512BW-NEXT: # zmm19 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
986 ; AVX512BW-NEXT: vpermt2q %zmm12, %zmm19, %zmm3
987 ; AVX512BW-NEXT: vmovdqa64 %zmm11, %zmm12
988 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} zmm17 {%k1} = zmm11[0],zmm7[0],zmm11[2],zmm7[2],zmm11[4],zmm7[4],zmm11[6],zmm7[6]
989 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} zmm3 {%k1} = zmm11[1],zmm7[1],zmm11[3],zmm7[3],zmm11[5],zmm7[5],zmm11[7],zmm7[7]
990 ; AVX512BW-NEXT: vpermt2q %zmm7, %zmm14, %zmm11
991 ; AVX512BW-NEXT: vmovdqa64 %zmm11, %zmm0 {%k1}
992 ; AVX512BW-NEXT: vpermi2q %zmm4, %zmm2, %zmm14
993 ; AVX512BW-NEXT: vbroadcasti128 {{.*#+}} ymm11 = [4,12,4,12]
994 ; AVX512BW-NEXT: # ymm11 = mem[0,1,0,1]
995 ; AVX512BW-NEXT: vpermi2q %zmm18, %zmm1, %zmm11
996 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm11 = ymm14[0,1,2,3],ymm11[4,5,6,7]
997 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm11, %zmm0, %zmm0
998 ; AVX512BW-NEXT: vbroadcasti32x4 {{.*#+}} zmm11 = [5,13,5,13,5,13,5,13]
999 ; AVX512BW-NEXT: # zmm11 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1000 ; AVX512BW-NEXT: vpermt2q %zmm7, %zmm11, %zmm12
1001 ; AVX512BW-NEXT: vpermi2q %zmm4, %zmm2, %zmm11
1002 ; AVX512BW-NEXT: vbroadcasti128 {{.*#+}} ymm7 = [5,13,5,13]
1003 ; AVX512BW-NEXT: # ymm7 = mem[0,1,0,1]
1004 ; AVX512BW-NEXT: vpermi2q %zmm18, %zmm1, %zmm7
1005 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm7 = ymm11[0,1,2,3],ymm7[4,5,6,7]
1006 ; AVX512BW-NEXT: vmovdqa64 %zmm6, %zmm5 {%k1}
1007 ; AVX512BW-NEXT: vmovdqa (%rdi), %xmm6
1008 ; AVX512BW-NEXT: vmovdqa 64(%rdi), %xmm11
1009 ; AVX512BW-NEXT: vinserti128 $1, 192(%rdi), %ymm11, %ymm11
1010 ; AVX512BW-NEXT: vinserti128 $1, 128(%rdi), %ymm6, %ymm6
1011 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} ymm14 = ymm6[0],ymm11[0],ymm6[2],ymm11[2]
1012 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm14, %zmm5, %zmm5
1013 ; AVX512BW-NEXT: vmovdqa64 %zmm10, %zmm8 {%k1}
1014 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} ymm6 = ymm6[1],ymm11[1],ymm6[3],ymm11[3]
1015 ; AVX512BW-NEXT: movq {{[0-9]+}}(%rsp), %rax
1016 ; AVX512BW-NEXT: movq {{[0-9]+}}(%rsp), %rdi
1017 ; AVX512BW-NEXT: movq {{[0-9]+}}(%rsp), %r10
1018 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm6, %zmm8, %zmm6
1019 ; AVX512BW-NEXT: vmovdqa64 %zmm12, %zmm16 {%k1}
1020 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm7, %zmm16, %zmm7
1021 ; AVX512BW-NEXT: vpermi2q %zmm4, %zmm2, %zmm15
1022 ; AVX512BW-NEXT: vbroadcasti128 {{.*#+}} ymm8 = [6,14,6,14]
1023 ; AVX512BW-NEXT: # ymm8 = mem[0,1,0,1]
1024 ; AVX512BW-NEXT: vpermi2q %zmm18, %zmm1, %zmm8
1025 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm8 = ymm15[0,1,2,3],ymm8[4,5,6,7]
1026 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm8, %zmm17, %zmm8
1027 ; AVX512BW-NEXT: vpermt2q %zmm4, %zmm19, %zmm2
1028 ; AVX512BW-NEXT: vbroadcasti128 {{.*#+}} ymm4 = [7,15,7,15]
1029 ; AVX512BW-NEXT: # ymm4 = mem[0,1,0,1]
1030 ; AVX512BW-NEXT: vpermi2q %zmm18, %zmm1, %zmm4
1031 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm4[4,5,6,7]
1032 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm1, %zmm3, %zmm1
1033 ; AVX512BW-NEXT: vmovdqa64 %zmm5, (%rsi)
1034 ; AVX512BW-NEXT: vmovdqa64 %zmm6, (%rdx)
1035 ; AVX512BW-NEXT: vmovdqa64 %zmm9, (%rcx)
1036 ; AVX512BW-NEXT: vmovdqa64 %zmm13, (%r8)
1037 ; AVX512BW-NEXT: vmovdqa64 %zmm0, (%r9)
1038 ; AVX512BW-NEXT: vmovdqa64 %zmm7, (%r10)
1039 ; AVX512BW-NEXT: vmovdqa64 %zmm8, (%rdi)
1040 ; AVX512BW-NEXT: vmovdqa64 %zmm1, (%rax)
1041 ; AVX512BW-NEXT: vzeroupper
1042 ; AVX512BW-NEXT: retq
1043 %wide.vec = load <64 x i64>, ptr %in.vec, align 64
1044 %strided.vec0 = shufflevector <64 x i64> %wide.vec, <64 x i64> poison, <8 x i32> <i32 0, i32 8, i32 16, i32 24, i32 32, i32 40, i32 48, i32 56>
1045 %strided.vec1 = shufflevector <64 x i64> %wide.vec, <64 x i64> poison, <8 x i32> <i32 1, i32 9, i32 17, i32 25, i32 33, i32 41, i32 49, i32 57>
1046 %strided.vec2 = shufflevector <64 x i64> %wide.vec, <64 x i64> poison, <8 x i32> <i32 2, i32 10, i32 18, i32 26, i32 34, i32 42, i32 50, i32 58>
1047 %strided.vec3 = shufflevector <64 x i64> %wide.vec, <64 x i64> poison, <8 x i32> <i32 3, i32 11, i32 19, i32 27, i32 35, i32 43, i32 51, i32 59>
1048 %strided.vec4 = shufflevector <64 x i64> %wide.vec, <64 x i64> poison, <8 x i32> <i32 4, i32 12, i32 20, i32 28, i32 36, i32 44, i32 52, i32 60>
1049 %strided.vec5 = shufflevector <64 x i64> %wide.vec, <64 x i64> poison, <8 x i32> <i32 5, i32 13, i32 21, i32 29, i32 37, i32 45, i32 53, i32 61>
1050 %strided.vec6 = shufflevector <64 x i64> %wide.vec, <64 x i64> poison, <8 x i32> <i32 6, i32 14, i32 22, i32 30, i32 38, i32 46, i32 54, i32 62>
1051 %strided.vec7 = shufflevector <64 x i64> %wide.vec, <64 x i64> poison, <8 x i32> <i32 7, i32 15, i32 23, i32 31, i32 39, i32 47, i32 55, i32 63>
1052 store <8 x i64> %strided.vec0, ptr %out.vec0, align 64
1053 store <8 x i64> %strided.vec1, ptr %out.vec1, align 64
1054 store <8 x i64> %strided.vec2, ptr %out.vec2, align 64
1055 store <8 x i64> %strided.vec3, ptr %out.vec3, align 64
1056 store <8 x i64> %strided.vec4, ptr %out.vec4, align 64
1057 store <8 x i64> %strided.vec5, ptr %out.vec5, align 64
1058 store <8 x i64> %strided.vec6, ptr %out.vec6, align 64
1059 store <8 x i64> %strided.vec7, ptr %out.vec7, align 64
1063 define void @load_i64_stride8_vf16(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4, ptr %out.vec5, ptr %out.vec6, ptr %out.vec7) nounwind {
1064 ; SSE-LABEL: load_i64_stride8_vf16:
1066 ; SSE-NEXT: subq $664, %rsp # imm = 0x298
1067 ; SSE-NEXT: movaps 832(%rdi), %xmm0
1068 ; SSE-NEXT: movaps 320(%rdi), %xmm1
1069 ; SSE-NEXT: movaps 256(%rdi), %xmm8
1070 ; SSE-NEXT: movaps 960(%rdi), %xmm2
1071 ; SSE-NEXT: movaps 896(%rdi), %xmm9
1072 ; SSE-NEXT: movaps 448(%rdi), %xmm3
1073 ; SSE-NEXT: movaps 384(%rdi), %xmm10
1074 ; SSE-NEXT: movaps 576(%rdi), %xmm4
1075 ; SSE-NEXT: movaps 512(%rdi), %xmm11
1076 ; SSE-NEXT: movaps 64(%rdi), %xmm5
1077 ; SSE-NEXT: movaps (%rdi), %xmm12
1078 ; SSE-NEXT: movaps 704(%rdi), %xmm6
1079 ; SSE-NEXT: movaps 640(%rdi), %xmm13
1080 ; SSE-NEXT: movaps 192(%rdi), %xmm7
1081 ; SSE-NEXT: movaps 128(%rdi), %xmm14
1082 ; SSE-NEXT: movaps %xmm14, %xmm15
1083 ; SSE-NEXT: movlhps {{.*#+}} xmm15 = xmm15[0],xmm7[0]
1084 ; SSE-NEXT: movaps %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1085 ; SSE-NEXT: unpckhpd {{.*#+}} xmm14 = xmm14[1],xmm7[1]
1086 ; SSE-NEXT: movaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1087 ; SSE-NEXT: movaps %xmm13, %xmm7
1088 ; SSE-NEXT: movlhps {{.*#+}} xmm7 = xmm7[0],xmm6[0]
1089 ; SSE-NEXT: movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1090 ; SSE-NEXT: unpckhpd {{.*#+}} xmm13 = xmm13[1],xmm6[1]
1091 ; SSE-NEXT: movaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1092 ; SSE-NEXT: movaps %xmm12, %xmm6
1093 ; SSE-NEXT: movlhps {{.*#+}} xmm6 = xmm6[0],xmm5[0]
1094 ; SSE-NEXT: movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1095 ; SSE-NEXT: unpckhpd {{.*#+}} xmm12 = xmm12[1],xmm5[1]
1096 ; SSE-NEXT: movaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1097 ; SSE-NEXT: movaps %xmm11, %xmm5
1098 ; SSE-NEXT: movlhps {{.*#+}} xmm5 = xmm5[0],xmm4[0]
1099 ; SSE-NEXT: movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1100 ; SSE-NEXT: unpckhpd {{.*#+}} xmm11 = xmm11[1],xmm4[1]
1101 ; SSE-NEXT: movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1102 ; SSE-NEXT: movaps %xmm10, %xmm4
1103 ; SSE-NEXT: movlhps {{.*#+}} xmm4 = xmm4[0],xmm3[0]
1104 ; SSE-NEXT: movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1105 ; SSE-NEXT: unpckhpd {{.*#+}} xmm10 = xmm10[1],xmm3[1]
1106 ; SSE-NEXT: movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1107 ; SSE-NEXT: movaps %xmm9, %xmm3
1108 ; SSE-NEXT: movlhps {{.*#+}} xmm3 = xmm3[0],xmm2[0]
1109 ; SSE-NEXT: movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1110 ; SSE-NEXT: unpckhpd {{.*#+}} xmm9 = xmm9[1],xmm2[1]
1111 ; SSE-NEXT: movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1112 ; SSE-NEXT: movaps %xmm8, %xmm2
1113 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm1[0]
1114 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1115 ; SSE-NEXT: unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm1[1]
1116 ; SSE-NEXT: movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1117 ; SSE-NEXT: movaps 768(%rdi), %xmm1
1118 ; SSE-NEXT: movaps %xmm1, %xmm2
1119 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
1120 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1121 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1122 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1123 ; SSE-NEXT: movaps 80(%rdi), %xmm0
1124 ; SSE-NEXT: movaps 16(%rdi), %xmm1
1125 ; SSE-NEXT: movaps %xmm1, %xmm2
1126 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
1127 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1128 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1129 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1130 ; SSE-NEXT: movaps 208(%rdi), %xmm0
1131 ; SSE-NEXT: movaps 144(%rdi), %xmm1
1132 ; SSE-NEXT: movaps %xmm1, %xmm2
1133 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
1134 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1135 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1136 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1137 ; SSE-NEXT: movaps 336(%rdi), %xmm0
1138 ; SSE-NEXT: movaps 272(%rdi), %xmm1
1139 ; SSE-NEXT: movaps %xmm1, %xmm2
1140 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
1141 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1142 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1143 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1144 ; SSE-NEXT: movaps 464(%rdi), %xmm0
1145 ; SSE-NEXT: movaps 400(%rdi), %xmm1
1146 ; SSE-NEXT: movaps %xmm1, %xmm2
1147 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
1148 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1149 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1150 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1151 ; SSE-NEXT: movaps 592(%rdi), %xmm0
1152 ; SSE-NEXT: movaps 528(%rdi), %xmm1
1153 ; SSE-NEXT: movaps %xmm1, %xmm2
1154 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
1155 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1156 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1157 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1158 ; SSE-NEXT: movaps 720(%rdi), %xmm0
1159 ; SSE-NEXT: movaps 656(%rdi), %xmm1
1160 ; SSE-NEXT: movaps %xmm1, %xmm2
1161 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
1162 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1163 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1164 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1165 ; SSE-NEXT: movaps 848(%rdi), %xmm0
1166 ; SSE-NEXT: movaps 784(%rdi), %xmm1
1167 ; SSE-NEXT: movaps %xmm1, %xmm2
1168 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
1169 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1170 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1171 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1172 ; SSE-NEXT: movaps 976(%rdi), %xmm0
1173 ; SSE-NEXT: movaps 912(%rdi), %xmm1
1174 ; SSE-NEXT: movaps %xmm1, %xmm2
1175 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
1176 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1177 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1178 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1179 ; SSE-NEXT: movaps 96(%rdi), %xmm0
1180 ; SSE-NEXT: movaps 32(%rdi), %xmm1
1181 ; SSE-NEXT: movaps %xmm1, %xmm2
1182 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
1183 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1184 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1185 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1186 ; SSE-NEXT: movaps 224(%rdi), %xmm0
1187 ; SSE-NEXT: movaps 160(%rdi), %xmm1
1188 ; SSE-NEXT: movaps %xmm1, %xmm2
1189 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
1190 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1191 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1192 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1193 ; SSE-NEXT: movaps 352(%rdi), %xmm0
1194 ; SSE-NEXT: movaps 288(%rdi), %xmm1
1195 ; SSE-NEXT: movaps %xmm1, %xmm2
1196 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
1197 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1198 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1199 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1200 ; SSE-NEXT: movaps 480(%rdi), %xmm0
1201 ; SSE-NEXT: movaps 416(%rdi), %xmm1
1202 ; SSE-NEXT: movaps %xmm1, %xmm2
1203 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
1204 ; SSE-NEXT: movaps %xmm2, (%rsp) # 16-byte Spill
1205 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1206 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1207 ; SSE-NEXT: movaps 608(%rdi), %xmm0
1208 ; SSE-NEXT: movaps 544(%rdi), %xmm1
1209 ; SSE-NEXT: movaps %xmm1, %xmm2
1210 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
1211 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1212 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1213 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1214 ; SSE-NEXT: movaps 736(%rdi), %xmm0
1215 ; SSE-NEXT: movaps 672(%rdi), %xmm1
1216 ; SSE-NEXT: movaps %xmm1, %xmm2
1217 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
1218 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1219 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1220 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1221 ; SSE-NEXT: movaps 864(%rdi), %xmm0
1222 ; SSE-NEXT: movaps 800(%rdi), %xmm12
1223 ; SSE-NEXT: movaps %xmm12, %xmm1
1224 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
1225 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1226 ; SSE-NEXT: unpckhpd {{.*#+}} xmm12 = xmm12[1],xmm0[1]
1227 ; SSE-NEXT: movaps 992(%rdi), %xmm0
1228 ; SSE-NEXT: movaps 928(%rdi), %xmm9
1229 ; SSE-NEXT: movaps %xmm9, %xmm1
1230 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
1231 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1232 ; SSE-NEXT: unpckhpd {{.*#+}} xmm9 = xmm9[1],xmm0[1]
1233 ; SSE-NEXT: movaps 112(%rdi), %xmm0
1234 ; SSE-NEXT: movaps 48(%rdi), %xmm1
1235 ; SSE-NEXT: movaps %xmm1, %xmm2
1236 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
1237 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1238 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1239 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1240 ; SSE-NEXT: movaps 240(%rdi), %xmm0
1241 ; SSE-NEXT: movaps 176(%rdi), %xmm14
1242 ; SSE-NEXT: movaps %xmm14, %xmm1
1243 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
1244 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1245 ; SSE-NEXT: unpckhpd {{.*#+}} xmm14 = xmm14[1],xmm0[1]
1246 ; SSE-NEXT: movaps 368(%rdi), %xmm0
1247 ; SSE-NEXT: movaps 304(%rdi), %xmm13
1248 ; SSE-NEXT: movaps %xmm13, %xmm15
1249 ; SSE-NEXT: movlhps {{.*#+}} xmm15 = xmm15[0],xmm0[0]
1250 ; SSE-NEXT: unpckhpd {{.*#+}} xmm13 = xmm13[1],xmm0[1]
1251 ; SSE-NEXT: movaps 496(%rdi), %xmm0
1252 ; SSE-NEXT: movaps 432(%rdi), %xmm10
1253 ; SSE-NEXT: movaps %xmm10, %xmm11
1254 ; SSE-NEXT: movlhps {{.*#+}} xmm11 = xmm11[0],xmm0[0]
1255 ; SSE-NEXT: unpckhpd {{.*#+}} xmm10 = xmm10[1],xmm0[1]
1256 ; SSE-NEXT: movaps 624(%rdi), %xmm0
1257 ; SSE-NEXT: movaps 560(%rdi), %xmm5
1258 ; SSE-NEXT: movaps %xmm5, %xmm8
1259 ; SSE-NEXT: movlhps {{.*#+}} xmm8 = xmm8[0],xmm0[0]
1260 ; SSE-NEXT: unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm0[1]
1261 ; SSE-NEXT: movaps 752(%rdi), %xmm0
1262 ; SSE-NEXT: movaps 688(%rdi), %xmm6
1263 ; SSE-NEXT: movaps %xmm6, %xmm7
1264 ; SSE-NEXT: movlhps {{.*#+}} xmm7 = xmm7[0],xmm0[0]
1265 ; SSE-NEXT: unpckhpd {{.*#+}} xmm6 = xmm6[1],xmm0[1]
1266 ; SSE-NEXT: movaps 880(%rdi), %xmm0
1267 ; SSE-NEXT: movaps 816(%rdi), %xmm1
1268 ; SSE-NEXT: movaps %xmm1, %xmm4
1269 ; SSE-NEXT: movlhps {{.*#+}} xmm4 = xmm4[0],xmm0[0]
1270 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1271 ; SSE-NEXT: movaps 1008(%rdi), %xmm0
1272 ; SSE-NEXT: movaps 944(%rdi), %xmm2
1273 ; SSE-NEXT: movaps %xmm2, %xmm3
1274 ; SSE-NEXT: movlhps {{.*#+}} xmm3 = xmm3[0],xmm0[0]
1275 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
1276 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1277 ; SSE-NEXT: movaps %xmm0, 96(%rsi)
1278 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1279 ; SSE-NEXT: movaps %xmm0, 32(%rsi)
1280 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1281 ; SSE-NEXT: movaps %xmm0, 112(%rsi)
1282 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1283 ; SSE-NEXT: movaps %xmm0, 48(%rsi)
1284 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1285 ; SSE-NEXT: movaps %xmm0, 64(%rsi)
1286 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1287 ; SSE-NEXT: movaps %xmm0, (%rsi)
1288 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1289 ; SSE-NEXT: movaps %xmm0, 80(%rsi)
1290 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1291 ; SSE-NEXT: movaps %xmm0, 16(%rsi)
1292 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1293 ; SSE-NEXT: movaps %xmm0, 96(%rdx)
1294 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1295 ; SSE-NEXT: movaps %xmm0, 32(%rdx)
1296 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1297 ; SSE-NEXT: movaps %xmm0, 112(%rdx)
1298 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1299 ; SSE-NEXT: movaps %xmm0, 48(%rdx)
1300 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1301 ; SSE-NEXT: movaps %xmm0, 64(%rdx)
1302 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1303 ; SSE-NEXT: movaps %xmm0, (%rdx)
1304 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1305 ; SSE-NEXT: movaps %xmm0, 80(%rdx)
1306 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1307 ; SSE-NEXT: movaps %xmm0, 16(%rdx)
1308 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1309 ; SSE-NEXT: movaps %xmm0, 96(%rcx)
1310 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1311 ; SSE-NEXT: movaps %xmm0, 32(%rcx)
1312 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1313 ; SSE-NEXT: movaps %xmm0, 112(%rcx)
1314 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1315 ; SSE-NEXT: movaps %xmm0, 48(%rcx)
1316 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1317 ; SSE-NEXT: movaps %xmm0, 64(%rcx)
1318 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1319 ; SSE-NEXT: movaps %xmm0, (%rcx)
1320 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1321 ; SSE-NEXT: movaps %xmm0, 80(%rcx)
1322 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1323 ; SSE-NEXT: movaps %xmm0, 16(%rcx)
1324 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1325 ; SSE-NEXT: movaps %xmm0, 112(%r8)
1326 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1327 ; SSE-NEXT: movaps %xmm0, 96(%r8)
1328 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1329 ; SSE-NEXT: movaps %xmm0, 80(%r8)
1330 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1331 ; SSE-NEXT: movaps %xmm0, 64(%r8)
1332 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1333 ; SSE-NEXT: movaps %xmm0, 48(%r8)
1334 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1335 ; SSE-NEXT: movaps %xmm0, 32(%r8)
1336 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1337 ; SSE-NEXT: movaps %xmm0, 16(%r8)
1338 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1339 ; SSE-NEXT: movaps %xmm0, (%r8)
1340 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1341 ; SSE-NEXT: movaps %xmm0, 112(%r9)
1342 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1343 ; SSE-NEXT: movaps %xmm0, 96(%r9)
1344 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1345 ; SSE-NEXT: movaps %xmm0, 80(%r9)
1346 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1347 ; SSE-NEXT: movaps %xmm0, 64(%r9)
1348 ; SSE-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload
1349 ; SSE-NEXT: movaps %xmm0, 48(%r9)
1350 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1351 ; SSE-NEXT: movaps %xmm0, 32(%r9)
1352 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1353 ; SSE-NEXT: movaps %xmm0, 16(%r9)
1354 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1355 ; SSE-NEXT: movaps %xmm0, (%r9)
1356 ; SSE-NEXT: movq {{[0-9]+}}(%rsp), %rax
1357 ; SSE-NEXT: movaps %xmm9, 112(%rax)
1358 ; SSE-NEXT: movaps %xmm12, 96(%rax)
1359 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1360 ; SSE-NEXT: movaps %xmm0, 80(%rax)
1361 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1362 ; SSE-NEXT: movaps %xmm0, 64(%rax)
1363 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1364 ; SSE-NEXT: movaps %xmm0, 48(%rax)
1365 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1366 ; SSE-NEXT: movaps %xmm0, 32(%rax)
1367 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1368 ; SSE-NEXT: movaps %xmm0, 16(%rax)
1369 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1370 ; SSE-NEXT: movaps %xmm0, (%rax)
1371 ; SSE-NEXT: movq {{[0-9]+}}(%rsp), %rax
1372 ; SSE-NEXT: movaps %xmm3, 112(%rax)
1373 ; SSE-NEXT: movaps %xmm4, 96(%rax)
1374 ; SSE-NEXT: movaps %xmm7, 80(%rax)
1375 ; SSE-NEXT: movaps %xmm8, 64(%rax)
1376 ; SSE-NEXT: movaps %xmm11, 48(%rax)
1377 ; SSE-NEXT: movaps %xmm15, 32(%rax)
1378 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1379 ; SSE-NEXT: movaps %xmm0, 16(%rax)
1380 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1381 ; SSE-NEXT: movaps %xmm0, (%rax)
1382 ; SSE-NEXT: movq {{[0-9]+}}(%rsp), %rax
1383 ; SSE-NEXT: movaps %xmm2, 112(%rax)
1384 ; SSE-NEXT: movaps %xmm1, 96(%rax)
1385 ; SSE-NEXT: movaps %xmm6, 80(%rax)
1386 ; SSE-NEXT: movaps %xmm5, 64(%rax)
1387 ; SSE-NEXT: movaps %xmm10, 48(%rax)
1388 ; SSE-NEXT: movaps %xmm13, 32(%rax)
1389 ; SSE-NEXT: movaps %xmm14, 16(%rax)
1390 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1391 ; SSE-NEXT: movaps %xmm0, (%rax)
1392 ; SSE-NEXT: addq $664, %rsp # imm = 0x298
1395 ; AVX1-ONLY-LABEL: load_i64_stride8_vf16:
1396 ; AVX1-ONLY: # %bb.0:
1397 ; AVX1-ONLY-NEXT: subq $808, %rsp # imm = 0x328
1398 ; AVX1-ONLY-NEXT: vmovaps 448(%rdi), %xmm0
1399 ; AVX1-ONLY-NEXT: vmovaps 384(%rdi), %xmm1
1400 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
1401 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1402 ; AVX1-ONLY-NEXT: vmovaps 320(%rdi), %xmm2
1403 ; AVX1-ONLY-NEXT: vmovaps 256(%rdi), %xmm3
1404 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm4 = xmm3[0],xmm2[0]
1405 ; AVX1-ONLY-NEXT: vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1406 ; AVX1-ONLY-NEXT: vmovaps 832(%rdi), %xmm4
1407 ; AVX1-ONLY-NEXT: vmovaps 768(%rdi), %xmm5
1408 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm6 = xmm5[0],xmm4[0]
1409 ; AVX1-ONLY-NEXT: vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1410 ; AVX1-ONLY-NEXT: vmovaps 960(%rdi), %xmm6
1411 ; AVX1-ONLY-NEXT: vmovaps 896(%rdi), %xmm7
1412 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm8 = xmm7[0],xmm6[0]
1413 ; AVX1-ONLY-NEXT: vmovaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1414 ; AVX1-ONLY-NEXT: vmovaps 704(%rdi), %xmm8
1415 ; AVX1-ONLY-NEXT: vmovaps 640(%rdi), %xmm9
1416 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm10 = xmm9[0],xmm8[0]
1417 ; AVX1-ONLY-NEXT: vmovaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1418 ; AVX1-ONLY-NEXT: vmovaps 576(%rdi), %xmm10
1419 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
1420 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1421 ; AVX1-ONLY-NEXT: vmovaps 512(%rdi), %xmm0
1422 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm1 = xmm3[1],xmm2[1]
1423 ; AVX1-ONLY-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1424 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm1 = xmm0[0],xmm10[0]
1425 ; AVX1-ONLY-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1426 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm1 = xmm7[1],xmm6[1]
1427 ; AVX1-ONLY-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1428 ; AVX1-ONLY-NEXT: vmovaps 64(%rdi), %xmm1
1429 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm2 = xmm5[1],xmm4[1]
1430 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1431 ; AVX1-ONLY-NEXT: vmovaps 192(%rdi), %xmm2
1432 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm3 = xmm9[1],xmm8[1]
1433 ; AVX1-ONLY-NEXT: vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1434 ; AVX1-ONLY-NEXT: vmovaps 128(%rdi), %xmm3
1435 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm10[1]
1436 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1437 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm0 = xmm3[0],xmm2[0]
1438 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1439 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm3[1],xmm2[1]
1440 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1441 ; AVX1-ONLY-NEXT: vmovaps (%rdi), %xmm0
1442 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm0[0],xmm1[0]
1443 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1444 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]
1445 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1446 ; AVX1-ONLY-NEXT: vmovaps 448(%rdi), %ymm0
1447 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1448 ; AVX1-ONLY-NEXT: vmovaps 384(%rdi), %ymm1
1449 ; AVX1-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1450 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
1451 ; AVX1-ONLY-NEXT: vmovaps 336(%rdi), %xmm3
1452 ; AVX1-ONLY-NEXT: vmovaps 272(%rdi), %xmm4
1453 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm5 = xmm4[0],xmm3[0]
1454 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm5[0,1,2,3],ymm2[4,5,6,7]
1455 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1456 ; AVX1-ONLY-NEXT: vmovaps 960(%rdi), %ymm2
1457 ; AVX1-ONLY-NEXT: vmovaps 896(%rdi), %ymm5
1458 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm6 = ymm5[0],ymm2[0],ymm5[2],ymm2[2]
1459 ; AVX1-ONLY-NEXT: vmovaps 848(%rdi), %xmm7
1460 ; AVX1-ONLY-NEXT: vmovaps 784(%rdi), %xmm8
1461 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm9 = xmm8[0],xmm7[0]
1462 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm9[0,1,2,3],ymm6[4,5,6,7]
1463 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1464 ; AVX1-ONLY-NEXT: vmovaps 192(%rdi), %ymm6
1465 ; AVX1-ONLY-NEXT: vmovaps 128(%rdi), %ymm9
1466 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm10 = ymm9[0],ymm6[0],ymm9[2],ymm6[2]
1467 ; AVX1-ONLY-NEXT: vmovaps 80(%rdi), %xmm11
1468 ; AVX1-ONLY-NEXT: vmovaps 16(%rdi), %xmm12
1469 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm13 = xmm12[0],xmm11[0]
1470 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm13[0,1,2,3],ymm10[4,5,6,7]
1471 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1472 ; AVX1-ONLY-NEXT: vmovaps 704(%rdi), %ymm10
1473 ; AVX1-ONLY-NEXT: vmovaps 640(%rdi), %ymm13
1474 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm14 = ymm13[0],ymm10[0],ymm13[2],ymm10[2]
1475 ; AVX1-ONLY-NEXT: vmovaps 592(%rdi), %xmm15
1476 ; AVX1-ONLY-NEXT: vmovaps 528(%rdi), %xmm0
1477 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm1 = xmm0[0],xmm15[0]
1478 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm14[4,5,6,7]
1479 ; AVX1-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1480 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
1481 ; AVX1-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
1482 ; AVX1-ONLY-NEXT: # ymm1 = ymm1[1],mem[1],ymm1[3],mem[3]
1483 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm3 = xmm4[1],xmm3[1]
1484 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm1[4,5,6,7]
1485 ; AVX1-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1486 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm5[1],ymm2[1],ymm5[3],ymm2[3]
1487 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm2 = xmm8[1],xmm7[1]
1488 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
1489 ; AVX1-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1490 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm9[1],ymm6[1],ymm9[3],ymm6[3]
1491 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm2 = xmm12[1],xmm11[1]
1492 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
1493 ; AVX1-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1494 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm13[1],ymm10[1],ymm13[3],ymm10[3]
1495 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm15[1]
1496 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
1497 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1498 ; AVX1-ONLY-NEXT: vmovaps 480(%rdi), %xmm0
1499 ; AVX1-ONLY-NEXT: vmovaps 416(%rdi), %xmm1
1500 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
1501 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1502 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
1503 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1504 ; AVX1-ONLY-NEXT: vmovaps 352(%rdi), %xmm0
1505 ; AVX1-ONLY-NEXT: vmovaps 288(%rdi), %xmm1
1506 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
1507 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1508 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
1509 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1510 ; AVX1-ONLY-NEXT: vmovaps 992(%rdi), %xmm0
1511 ; AVX1-ONLY-NEXT: vmovaps 928(%rdi), %xmm1
1512 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
1513 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1514 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
1515 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1516 ; AVX1-ONLY-NEXT: vmovaps 864(%rdi), %xmm0
1517 ; AVX1-ONLY-NEXT: vmovaps 800(%rdi), %xmm1
1518 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
1519 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1520 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
1521 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1522 ; AVX1-ONLY-NEXT: vmovaps 224(%rdi), %xmm0
1523 ; AVX1-ONLY-NEXT: vmovaps 160(%rdi), %xmm1
1524 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
1525 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1526 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
1527 ; AVX1-ONLY-NEXT: vmovaps %xmm0, (%rsp) # 16-byte Spill
1528 ; AVX1-ONLY-NEXT: vmovaps 96(%rdi), %xmm0
1529 ; AVX1-ONLY-NEXT: vmovaps 32(%rdi), %xmm1
1530 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
1531 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1532 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
1533 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1534 ; AVX1-ONLY-NEXT: vmovaps 736(%rdi), %xmm0
1535 ; AVX1-ONLY-NEXT: vmovaps 672(%rdi), %xmm1
1536 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
1537 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1538 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
1539 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1540 ; AVX1-ONLY-NEXT: vmovaps 608(%rdi), %xmm0
1541 ; AVX1-ONLY-NEXT: vmovaps 544(%rdi), %xmm1
1542 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
1543 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1544 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
1545 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1546 ; AVX1-ONLY-NEXT: vmovaps 480(%rdi), %ymm0
1547 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1548 ; AVX1-ONLY-NEXT: vmovaps 416(%rdi), %ymm14
1549 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm14[0],ymm0[0],ymm14[2],ymm0[2]
1550 ; AVX1-ONLY-NEXT: vmovaps 368(%rdi), %xmm12
1551 ; AVX1-ONLY-NEXT: vmovaps 304(%rdi), %xmm6
1552 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm3 = xmm6[0],xmm12[0]
1553 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm1[4,5,6,7]
1554 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1555 ; AVX1-ONLY-NEXT: vmovaps 992(%rdi), %ymm0
1556 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1557 ; AVX1-ONLY-NEXT: vmovaps 928(%rdi), %ymm15
1558 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm8 = ymm15[0],ymm0[0],ymm15[2],ymm0[2]
1559 ; AVX1-ONLY-NEXT: vmovaps 880(%rdi), %xmm11
1560 ; AVX1-ONLY-NEXT: vmovaps 816(%rdi), %xmm10
1561 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm9 = xmm10[0],xmm11[0]
1562 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm9[0,1,2,3],ymm8[4,5,6,7]
1563 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1564 ; AVX1-ONLY-NEXT: vmovaps 224(%rdi), %ymm9
1565 ; AVX1-ONLY-NEXT: vmovaps 160(%rdi), %ymm4
1566 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm8 = ymm4[0],ymm9[0],ymm4[2],ymm9[2]
1567 ; AVX1-ONLY-NEXT: vmovaps 112(%rdi), %xmm3
1568 ; AVX1-ONLY-NEXT: vmovaps 48(%rdi), %xmm0
1569 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm13 = xmm0[0],xmm3[0]
1570 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm1 = ymm13[0,1,2,3],ymm8[4,5,6,7]
1571 ; AVX1-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1572 ; AVX1-ONLY-NEXT: vmovaps 736(%rdi), %ymm7
1573 ; AVX1-ONLY-NEXT: vmovaps 672(%rdi), %ymm5
1574 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm8 = ymm5[0],ymm7[0],ymm5[2],ymm7[2]
1575 ; AVX1-ONLY-NEXT: vmovaps 624(%rdi), %xmm2
1576 ; AVX1-ONLY-NEXT: vmovaps 560(%rdi), %xmm1
1577 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm13 = xmm1[0],xmm2[0]
1578 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
1579 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm4 = ymm4[1],ymm9[1],ymm4[3],ymm9[3]
1580 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm3[1]
1581 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm9 = ymm0[0,1,2,3],ymm4[4,5,6,7]
1582 ; AVX1-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm0 # 32-byte Folded Reload
1583 ; AVX1-ONLY-NEXT: # ymm0 = ymm14[1],mem[1],ymm14[3],mem[3]
1584 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm3 = xmm6[1],xmm12[1]
1585 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm6 = ymm3[0,1,2,3],ymm0[4,5,6,7]
1586 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm5[1],ymm7[1],ymm5[3],ymm7[3]
1587 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
1588 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm4 = ymm1[0,1,2,3],ymm0[4,5,6,7]
1589 ; AVX1-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm0 # 32-byte Folded Reload
1590 ; AVX1-ONLY-NEXT: # ymm0 = ymm15[1],mem[1],ymm15[3],mem[3]
1591 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm1 = xmm10[1],xmm11[1]
1592 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
1593 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1594 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 16(%rsi)
1595 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1596 ; AVX1-ONLY-NEXT: vmovaps %xmm1, (%rsi)
1597 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1598 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 64(%rsi)
1599 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1600 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 80(%rsi)
1601 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1602 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 112(%rsi)
1603 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1604 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 96(%rsi)
1605 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1606 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 32(%rsi)
1607 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1608 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 48(%rsi)
1609 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1610 ; AVX1-ONLY-NEXT: vmovaps %xmm1, (%rdx)
1611 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1612 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 16(%rdx)
1613 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1614 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 64(%rdx)
1615 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1616 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 80(%rdx)
1617 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1618 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 96(%rdx)
1619 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1620 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 112(%rdx)
1621 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1622 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 32(%rdx)
1623 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1624 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 48(%rdx)
1625 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
1626 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 64(%rcx)
1627 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
1628 ; AVX1-ONLY-NEXT: vmovaps %ymm1, (%rcx)
1629 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
1630 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 96(%rcx)
1631 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
1632 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 32(%rcx)
1633 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
1634 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 64(%r8)
1635 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
1636 ; AVX1-ONLY-NEXT: vmovaps %ymm1, (%r8)
1637 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
1638 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 96(%r8)
1639 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
1640 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 32(%r8)
1641 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1642 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 80(%r9)
1643 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1644 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 64(%r9)
1645 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1646 ; AVX1-ONLY-NEXT: vmovaps %xmm1, (%r9)
1647 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1648 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 16(%r9)
1649 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1650 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 112(%r9)
1651 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1652 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 96(%r9)
1653 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1654 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 32(%r9)
1655 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1656 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 48(%r9)
1657 ; AVX1-ONLY-NEXT: movq {{[0-9]+}}(%rsp), %rax
1658 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1659 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 64(%rax)
1660 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1661 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 80(%rax)
1662 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1663 ; AVX1-ONLY-NEXT: vmovaps %xmm1, (%rax)
1664 ; AVX1-ONLY-NEXT: vmovaps (%rsp), %xmm1 # 16-byte Reload
1665 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 16(%rax)
1666 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1667 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 96(%rax)
1668 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1669 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 112(%rax)
1670 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1671 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 32(%rax)
1672 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1673 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 48(%rax)
1674 ; AVX1-ONLY-NEXT: movq {{[0-9]+}}(%rsp), %rax
1675 ; AVX1-ONLY-NEXT: vmovaps %ymm8, 64(%rax)
1676 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
1677 ; AVX1-ONLY-NEXT: vmovaps %ymm1, (%rax)
1678 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
1679 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 96(%rax)
1680 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
1681 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 32(%rax)
1682 ; AVX1-ONLY-NEXT: movq {{[0-9]+}}(%rsp), %rax
1683 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 96(%rax)
1684 ; AVX1-ONLY-NEXT: vmovaps %ymm4, 64(%rax)
1685 ; AVX1-ONLY-NEXT: vmovaps %ymm6, 32(%rax)
1686 ; AVX1-ONLY-NEXT: vmovaps %ymm9, (%rax)
1687 ; AVX1-ONLY-NEXT: addq $808, %rsp # imm = 0x328
1688 ; AVX1-ONLY-NEXT: vzeroupper
1689 ; AVX1-ONLY-NEXT: retq
1691 ; AVX2-ONLY-LABEL: load_i64_stride8_vf16:
1692 ; AVX2-ONLY: # %bb.0:
1693 ; AVX2-ONLY-NEXT: subq $808, %rsp # imm = 0x328
1694 ; AVX2-ONLY-NEXT: vmovaps 832(%rdi), %ymm1
1695 ; AVX2-ONLY-NEXT: vmovaps 768(%rdi), %ymm2
1696 ; AVX2-ONLY-NEXT: vmovaps 320(%rdi), %ymm3
1697 ; AVX2-ONLY-NEXT: vmovaps 256(%rdi), %ymm4
1698 ; AVX2-ONLY-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1699 ; AVX2-ONLY-NEXT: vmovaps 448(%rdi), %ymm5
1700 ; AVX2-ONLY-NEXT: vmovaps 384(%rdi), %ymm13
1701 ; AVX2-ONLY-NEXT: vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1702 ; AVX2-ONLY-NEXT: vmovaps 320(%rdi), %xmm6
1703 ; AVX2-ONLY-NEXT: vinsertf128 $1, 448(%rdi), %ymm6, %ymm6
1704 ; AVX2-ONLY-NEXT: vmovaps 256(%rdi), %xmm7
1705 ; AVX2-ONLY-NEXT: vinsertf128 $1, 384(%rdi), %ymm7, %ymm7
1706 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm7[0],ymm6[0],ymm7[2],ymm6[2]
1707 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1708 ; AVX2-ONLY-NEXT: vmovaps 832(%rdi), %xmm8
1709 ; AVX2-ONLY-NEXT: vinsertf128 $1, 960(%rdi), %ymm8, %ymm8
1710 ; AVX2-ONLY-NEXT: vmovaps 768(%rdi), %xmm9
1711 ; AVX2-ONLY-NEXT: vinsertf128 $1, 896(%rdi), %ymm9, %ymm9
1712 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm9[0],ymm8[0],ymm9[2],ymm8[2]
1713 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1714 ; AVX2-ONLY-NEXT: vmovaps (%rdi), %xmm10
1715 ; AVX2-ONLY-NEXT: vmovaps 64(%rdi), %xmm11
1716 ; AVX2-ONLY-NEXT: vinsertf128 $1, 192(%rdi), %ymm11, %ymm11
1717 ; AVX2-ONLY-NEXT: vinsertf128 $1, 128(%rdi), %ymm10, %ymm10
1718 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm10[0],ymm11[0],ymm10[2],ymm11[2]
1719 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1720 ; AVX2-ONLY-NEXT: vmovaps 576(%rdi), %xmm12
1721 ; AVX2-ONLY-NEXT: vinsertf128 $1, 704(%rdi), %ymm12, %ymm12
1722 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm7[1],ymm6[1],ymm7[3],ymm6[3]
1723 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1724 ; AVX2-ONLY-NEXT: vmovaps 512(%rdi), %xmm6
1725 ; AVX2-ONLY-NEXT: vinsertf128 $1, 640(%rdi), %ymm6, %ymm6
1726 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm9[1],ymm8[1],ymm9[3],ymm8[3]
1727 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1728 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm6[0],ymm12[0],ymm6[2],ymm12[2]
1729 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1730 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm10[1],ymm11[1],ymm10[3],ymm11[3]
1731 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1732 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm6[1],ymm12[1],ymm6[3],ymm12[3]
1733 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1734 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm6 = ymm13[0],ymm5[0],ymm13[2],ymm5[2]
1735 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm7 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
1736 ; AVX2-ONLY-NEXT: vmovaps %ymm3, %ymm4
1737 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm7[2,3],ymm6[2,3]
1738 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1739 ; AVX2-ONLY-NEXT: vmovaps 960(%rdi), %ymm6
1740 ; AVX2-ONLY-NEXT: vmovaps 896(%rdi), %ymm7
1741 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm8 = ymm7[0],ymm6[0],ymm7[2],ymm6[2]
1742 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm9 = ymm2[0],ymm1[0],ymm2[2],ymm1[2]
1743 ; AVX2-ONLY-NEXT: vmovaps %ymm2, %ymm3
1744 ; AVX2-ONLY-NEXT: vmovaps %ymm1, %ymm2
1745 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm9[2,3],ymm8[2,3]
1746 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1747 ; AVX2-ONLY-NEXT: vmovaps 64(%rdi), %ymm8
1748 ; AVX2-ONLY-NEXT: vmovaps (%rdi), %ymm9
1749 ; AVX2-ONLY-NEXT: vmovaps 192(%rdi), %ymm10
1750 ; AVX2-ONLY-NEXT: vmovaps 128(%rdi), %ymm11
1751 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm12 = ymm11[0],ymm10[0],ymm11[2],ymm10[2]
1752 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm13 = ymm9[0],ymm8[0],ymm9[2],ymm8[2]
1753 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm13[2,3],ymm12[2,3]
1754 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1755 ; AVX2-ONLY-NEXT: vmovaps 576(%rdi), %ymm12
1756 ; AVX2-ONLY-NEXT: vmovaps 512(%rdi), %ymm13
1757 ; AVX2-ONLY-NEXT: vmovaps 704(%rdi), %ymm14
1758 ; AVX2-ONLY-NEXT: vmovaps 640(%rdi), %ymm15
1759 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm15[0],ymm14[0],ymm15[2],ymm14[2]
1760 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm13[0],ymm12[0],ymm13[2],ymm12[2]
1761 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
1762 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1763 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1764 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm5[1],ymm0[3],ymm5[3]
1765 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
1766 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm4[1],ymm1[3],ymm4[3]
1767 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
1768 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1769 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm7[1],ymm6[1],ymm7[3],ymm6[3]
1770 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm3[1],ymm2[1],ymm3[3],ymm2[3]
1771 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
1772 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1773 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm11[1],ymm10[1],ymm11[3],ymm10[3]
1774 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm9[1],ymm8[1],ymm9[3],ymm8[3]
1775 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
1776 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1777 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm15[1],ymm14[1],ymm15[3],ymm14[3]
1778 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm13[1],ymm12[1],ymm13[3],ymm12[3]
1779 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
1780 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1781 ; AVX2-ONLY-NEXT: vmovaps 352(%rdi), %xmm0
1782 ; AVX2-ONLY-NEXT: vinsertf128 $1, 480(%rdi), %ymm0, %ymm0
1783 ; AVX2-ONLY-NEXT: vmovaps 288(%rdi), %xmm1
1784 ; AVX2-ONLY-NEXT: vinsertf128 $1, 416(%rdi), %ymm1, %ymm1
1785 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
1786 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1787 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
1788 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1789 ; AVX2-ONLY-NEXT: vmovaps 864(%rdi), %xmm0
1790 ; AVX2-ONLY-NEXT: vinsertf128 $1, 992(%rdi), %ymm0, %ymm0
1791 ; AVX2-ONLY-NEXT: vmovaps 800(%rdi), %xmm1
1792 ; AVX2-ONLY-NEXT: vinsertf128 $1, 928(%rdi), %ymm1, %ymm1
1793 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
1794 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1795 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
1796 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1797 ; AVX2-ONLY-NEXT: vmovaps 96(%rdi), %xmm0
1798 ; AVX2-ONLY-NEXT: vinsertf128 $1, 224(%rdi), %ymm0, %ymm0
1799 ; AVX2-ONLY-NEXT: vmovaps 32(%rdi), %xmm1
1800 ; AVX2-ONLY-NEXT: vinsertf128 $1, 160(%rdi), %ymm1, %ymm1
1801 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
1802 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1803 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
1804 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1805 ; AVX2-ONLY-NEXT: vmovaps 608(%rdi), %xmm0
1806 ; AVX2-ONLY-NEXT: vinsertf128 $1, 736(%rdi), %ymm0, %ymm0
1807 ; AVX2-ONLY-NEXT: vmovaps 544(%rdi), %xmm1
1808 ; AVX2-ONLY-NEXT: vinsertf128 $1, 672(%rdi), %ymm1, %ymm1
1809 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
1810 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1811 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
1812 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1813 ; AVX2-ONLY-NEXT: vmovaps 352(%rdi), %ymm0
1814 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1815 ; AVX2-ONLY-NEXT: vmovaps 288(%rdi), %ymm15
1816 ; AVX2-ONLY-NEXT: vmovaps 480(%rdi), %ymm12
1817 ; AVX2-ONLY-NEXT: vmovaps 416(%rdi), %ymm10
1818 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm10[0],ymm12[0],ymm10[2],ymm12[2]
1819 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm15[0],ymm0[0],ymm15[2],ymm0[2]
1820 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm5[2,3],ymm4[2,3]
1821 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1822 ; AVX2-ONLY-NEXT: vmovaps 864(%rdi), %ymm0
1823 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1824 ; AVX2-ONLY-NEXT: vmovaps 800(%rdi), %ymm14
1825 ; AVX2-ONLY-NEXT: vmovaps 992(%rdi), %ymm11
1826 ; AVX2-ONLY-NEXT: vmovaps 928(%rdi), %ymm7
1827 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm8 = ymm7[0],ymm11[0],ymm7[2],ymm11[2]
1828 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm9 = ymm14[0],ymm0[0],ymm14[2],ymm0[2]
1829 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm9[2,3],ymm8[2,3]
1830 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1831 ; AVX2-ONLY-NEXT: vmovaps 96(%rdi), %ymm9
1832 ; AVX2-ONLY-NEXT: vmovaps 32(%rdi), %ymm6
1833 ; AVX2-ONLY-NEXT: vmovaps 224(%rdi), %ymm3
1834 ; AVX2-ONLY-NEXT: vmovaps 160(%rdi), %ymm2
1835 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm8 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
1836 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm13 = ymm6[0],ymm9[0],ymm6[2],ymm9[2]
1837 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm13[2,3],ymm8[2,3]
1838 ; AVX2-ONLY-NEXT: vmovups %ymm0, (%rsp) # 32-byte Spill
1839 ; AVX2-ONLY-NEXT: vmovaps 608(%rdi), %ymm5
1840 ; AVX2-ONLY-NEXT: vmovaps 544(%rdi), %ymm4
1841 ; AVX2-ONLY-NEXT: vmovaps 736(%rdi), %ymm1
1842 ; AVX2-ONLY-NEXT: vmovaps 672(%rdi), %ymm0
1843 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm8 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
1844 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm13 = ymm4[0],ymm5[0],ymm4[2],ymm5[2]
1845 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm8 = ymm13[2,3],ymm8[2,3]
1846 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
1847 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm3 = ymm6[1],ymm9[1],ymm6[3],ymm9[3]
1848 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm9 = ymm3[2,3],ymm2[2,3]
1849 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm10[1],ymm12[1],ymm10[3],ymm12[3]
1850 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm3 # 32-byte Folded Reload
1851 ; AVX2-ONLY-NEXT: # ymm3 = ymm15[1],mem[1],ymm15[3],mem[3]
1852 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm2 = ymm3[2,3],ymm2[2,3]
1853 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
1854 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm4[1],ymm5[1],ymm4[3],ymm5[3]
1855 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
1856 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm7[1],ymm11[1],ymm7[3],ymm11[3]
1857 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm3 # 32-byte Folded Reload
1858 ; AVX2-ONLY-NEXT: # ymm3 = ymm14[1],mem[1],ymm14[3],mem[3]
1859 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm1 = ymm3[2,3],ymm1[2,3]
1860 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1861 ; AVX2-ONLY-NEXT: vmovaps %ymm3, 64(%rsi)
1862 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1863 ; AVX2-ONLY-NEXT: vmovaps %ymm3, (%rsi)
1864 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1865 ; AVX2-ONLY-NEXT: vmovaps %ymm3, 96(%rsi)
1866 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1867 ; AVX2-ONLY-NEXT: vmovaps %ymm3, 32(%rsi)
1868 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1869 ; AVX2-ONLY-NEXT: vmovaps %ymm3, 64(%rdx)
1870 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1871 ; AVX2-ONLY-NEXT: vmovaps %ymm3, (%rdx)
1872 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1873 ; AVX2-ONLY-NEXT: vmovaps %ymm3, 96(%rdx)
1874 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1875 ; AVX2-ONLY-NEXT: vmovaps %ymm3, 32(%rdx)
1876 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1877 ; AVX2-ONLY-NEXT: vmovaps %ymm3, 64(%rcx)
1878 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1879 ; AVX2-ONLY-NEXT: vmovaps %ymm3, (%rcx)
1880 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1881 ; AVX2-ONLY-NEXT: vmovaps %ymm3, 96(%rcx)
1882 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1883 ; AVX2-ONLY-NEXT: vmovaps %ymm3, 32(%rcx)
1884 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1885 ; AVX2-ONLY-NEXT: vmovaps %ymm3, 64(%r8)
1886 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1887 ; AVX2-ONLY-NEXT: vmovaps %ymm3, (%r8)
1888 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1889 ; AVX2-ONLY-NEXT: vmovaps %ymm3, 96(%r8)
1890 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1891 ; AVX2-ONLY-NEXT: vmovaps %ymm3, 32(%r8)
1892 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1893 ; AVX2-ONLY-NEXT: vmovaps %ymm3, 64(%r9)
1894 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1895 ; AVX2-ONLY-NEXT: vmovaps %ymm3, (%r9)
1896 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1897 ; AVX2-ONLY-NEXT: vmovaps %ymm3, 96(%r9)
1898 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1899 ; AVX2-ONLY-NEXT: vmovaps %ymm3, 32(%r9)
1900 ; AVX2-ONLY-NEXT: movq {{[0-9]+}}(%rsp), %rax
1901 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1902 ; AVX2-ONLY-NEXT: vmovaps %ymm3, 64(%rax)
1903 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1904 ; AVX2-ONLY-NEXT: vmovaps %ymm3, (%rax)
1905 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1906 ; AVX2-ONLY-NEXT: vmovaps %ymm3, 96(%rax)
1907 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1908 ; AVX2-ONLY-NEXT: vmovaps %ymm3, 32(%rax)
1909 ; AVX2-ONLY-NEXT: movq {{[0-9]+}}(%rsp), %rax
1910 ; AVX2-ONLY-NEXT: vmovaps %ymm8, 64(%rax)
1911 ; AVX2-ONLY-NEXT: vmovups (%rsp), %ymm3 # 32-byte Reload
1912 ; AVX2-ONLY-NEXT: vmovaps %ymm3, (%rax)
1913 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1914 ; AVX2-ONLY-NEXT: vmovaps %ymm3, 96(%rax)
1915 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1916 ; AVX2-ONLY-NEXT: vmovaps %ymm3, 32(%rax)
1917 ; AVX2-ONLY-NEXT: movq {{[0-9]+}}(%rsp), %rax
1918 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 96(%rax)
1919 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 64(%rax)
1920 ; AVX2-ONLY-NEXT: vmovaps %ymm2, 32(%rax)
1921 ; AVX2-ONLY-NEXT: vmovaps %ymm9, (%rax)
1922 ; AVX2-ONLY-NEXT: addq $808, %rsp # imm = 0x328
1923 ; AVX2-ONLY-NEXT: vzeroupper
1924 ; AVX2-ONLY-NEXT: retq
1926 ; AVX512F-LABEL: load_i64_stride8_vf16:
1928 ; AVX512F-NEXT: subq $264, %rsp # imm = 0x108
1929 ; AVX512F-NEXT: vmovdqa64 704(%rdi), %zmm18
1930 ; AVX512F-NEXT: vmovaps 640(%rdi), %zmm0
1931 ; AVX512F-NEXT: vmovups %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
1932 ; AVX512F-NEXT: vmovdqa64 576(%rdi), %zmm31
1933 ; AVX512F-NEXT: vmovdqa64 512(%rdi), %zmm3
1934 ; AVX512F-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
1935 ; AVX512F-NEXT: vmovdqa64 192(%rdi), %zmm17
1936 ; AVX512F-NEXT: vmovdqa64 128(%rdi), %zmm4
1937 ; AVX512F-NEXT: vmovdqa64 832(%rdi), %zmm11
1938 ; AVX512F-NEXT: vmovdqa64 768(%rdi), %zmm28
1939 ; AVX512F-NEXT: vmovdqa64 960(%rdi), %zmm9
1940 ; AVX512F-NEXT: vmovdqa64 896(%rdi), %zmm10
1941 ; AVX512F-NEXT: vmovdqa64 320(%rdi), %zmm14
1942 ; AVX512F-NEXT: vmovdqa64 256(%rdi), %zmm24
1943 ; AVX512F-NEXT: vmovdqa64 448(%rdi), %zmm12
1944 ; AVX512F-NEXT: vmovdqa64 384(%rdi), %zmm13
1945 ; AVX512F-NEXT: vbroadcasti32x4 {{.*#+}} zmm19 = [0,8,0,8,0,8,0,8]
1946 ; AVX512F-NEXT: # zmm19 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1947 ; AVX512F-NEXT: vmovdqa64 %zmm13, %zmm5
1948 ; AVX512F-NEXT: vmovdqa64 %zmm13, %zmm7
1949 ; AVX512F-NEXT: vmovdqa64 %zmm13, %zmm6
1950 ; AVX512F-NEXT: vmovdqa64 %zmm13, %zmm0
1951 ; AVX512F-NEXT: vpermt2q %zmm12, %zmm19, %zmm0
1952 ; AVX512F-NEXT: vmovdqa64 %zmm24, %zmm15
1953 ; AVX512F-NEXT: vpermt2q %zmm14, %zmm19, %zmm15
1954 ; AVX512F-NEXT: movb $-64, %al
1955 ; AVX512F-NEXT: kmovw %eax, %k1
1956 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm15 {%k1}
1957 ; AVX512F-NEXT: vmovdqa (%rdi), %xmm0
1958 ; AVX512F-NEXT: vmovdqa64 64(%rdi), %xmm16
1959 ; AVX512F-NEXT: vinserti32x4 $1, 192(%rdi), %ymm16, %ymm21
1960 ; AVX512F-NEXT: vinserti32x4 $1, 128(%rdi), %ymm0, %ymm16
1961 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} ymm0 = ymm16[0],ymm21[0],ymm16[2],ymm21[2]
1962 ; AVX512F-NEXT: vinserti64x4 $0, %ymm0, %zmm15, %zmm0
1963 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
1964 ; AVX512F-NEXT: vmovdqa64 %zmm10, %zmm0
1965 ; AVX512F-NEXT: vpermt2q %zmm9, %zmm19, %zmm0
1966 ; AVX512F-NEXT: vpermi2q %zmm11, %zmm28, %zmm19
1967 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm19 {%k1}
1968 ; AVX512F-NEXT: vbroadcasti32x4 {{.*#+}} zmm0 = [2,10,2,10,2,10,2,10]
1969 ; AVX512F-NEXT: # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1970 ; AVX512F-NEXT: vpermt2q %zmm12, %zmm0, %zmm5
1971 ; AVX512F-NEXT: vmovdqa64 %zmm24, %zmm15
1972 ; AVX512F-NEXT: vpermt2q %zmm14, %zmm0, %zmm15
1973 ; AVX512F-NEXT: vmovdqa64 %zmm5, %zmm15 {%k1}
1974 ; AVX512F-NEXT: vmovdqa 192(%rdi), %ymm5
1975 ; AVX512F-NEXT: vmovdqa64 128(%rdi), %ymm20
1976 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} ymm1 = ymm20[0],ymm5[0],ymm20[2],ymm5[2]
1977 ; AVX512F-NEXT: vmovdqa64 64(%rdi), %ymm22
1978 ; AVX512F-NEXT: vmovdqa64 (%rdi), %ymm23
1979 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} ymm2 = ymm23[0],ymm22[0],ymm23[2],ymm22[2]
1980 ; AVX512F-NEXT: vperm2i128 {{.*#+}} ymm1 = ymm2[2,3],ymm1[2,3]
1981 ; AVX512F-NEXT: vinserti64x4 $0, %ymm1, %zmm15, %zmm1
1982 ; AVX512F-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
1983 ; AVX512F-NEXT: vmovdqa64 %zmm10, %zmm1
1984 ; AVX512F-NEXT: vpermt2q %zmm9, %zmm0, %zmm1
1985 ; AVX512F-NEXT: vpermi2q %zmm11, %zmm28, %zmm0
1986 ; AVX512F-NEXT: vmovdqa64 %zmm1, %zmm0 {%k1}
1987 ; AVX512F-NEXT: vmovdqa 704(%rdi), %ymm1
1988 ; AVX512F-NEXT: vmovdqa 640(%rdi), %ymm2
1989 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} ymm15 = ymm2[0],ymm1[0],ymm2[2],ymm1[2]
1990 ; AVX512F-NEXT: vmovdqa64 576(%rdi), %ymm25
1991 ; AVX512F-NEXT: vmovdqa64 512(%rdi), %ymm27
1992 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} ymm8 = ymm27[0],ymm25[0],ymm27[2],ymm25[2]
1993 ; AVX512F-NEXT: vperm2i128 {{.*#+}} ymm8 = ymm8[2,3],ymm15[2,3]
1994 ; AVX512F-NEXT: vinserti64x4 $0, %ymm8, %zmm0, %zmm0
1995 ; AVX512F-NEXT: vmovdqu64 %zmm0, (%rsp) # 64-byte Spill
1996 ; AVX512F-NEXT: vbroadcasti32x4 {{.*#+}} zmm0 = [3,11,3,11,3,11,3,11]
1997 ; AVX512F-NEXT: # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1998 ; AVX512F-NEXT: vpermt2q %zmm12, %zmm0, %zmm7
1999 ; AVX512F-NEXT: vmovdqa64 %zmm24, %zmm30
2000 ; AVX512F-NEXT: vpermt2q %zmm14, %zmm0, %zmm30
2001 ; AVX512F-NEXT: vmovdqa64 %zmm7, %zmm30 {%k1}
2002 ; AVX512F-NEXT: vmovdqa64 64(%rdi), %zmm26
2003 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} ymm5 = ymm20[1],ymm5[1],ymm20[3],ymm5[3]
2004 ; AVX512F-NEXT: vmovdqa64 (%rdi), %zmm15
2005 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} ymm7 = ymm23[1],ymm22[1],ymm23[3],ymm22[3]
2006 ; AVX512F-NEXT: vbroadcasti32x4 {{.*#+}} zmm23 = [1,9,1,9,1,9,1,9]
2007 ; AVX512F-NEXT: # zmm23 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2008 ; AVX512F-NEXT: vperm2i128 {{.*#+}} ymm5 = ymm7[2,3],ymm5[2,3]
2009 ; AVX512F-NEXT: vmovdqa64 %zmm24, %zmm29
2010 ; AVX512F-NEXT: vpermt2q %zmm14, %zmm23, %zmm29
2011 ; AVX512F-NEXT: vinserti64x4 $0, %ymm5, %zmm30, %zmm5
2012 ; AVX512F-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
2013 ; AVX512F-NEXT: vmovdqa64 %zmm10, %zmm5
2014 ; AVX512F-NEXT: vpermt2q %zmm9, %zmm0, %zmm5
2015 ; AVX512F-NEXT: vpermi2q %zmm11, %zmm28, %zmm0
2016 ; AVX512F-NEXT: vmovdqa64 %zmm5, %zmm0 {%k1}
2017 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} ymm1 = ymm2[1],ymm1[1],ymm2[3],ymm1[3]
2018 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} ymm2 = ymm27[1],ymm25[1],ymm27[3],ymm25[3]
2019 ; AVX512F-NEXT: vperm2i128 {{.*#+}} ymm1 = ymm2[2,3],ymm1[2,3]
2020 ; AVX512F-NEXT: vinserti64x4 $0, %ymm1, %zmm0, %zmm22
2021 ; AVX512F-NEXT: vbroadcasti32x4 {{.*#+}} zmm0 = [4,12,4,12,4,12,4,12]
2022 ; AVX512F-NEXT: # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2023 ; AVX512F-NEXT: vpermt2q %zmm12, %zmm0, %zmm6
2024 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} zmm1 = zmm24[0],zmm14[0],zmm24[2],zmm14[2],zmm24[4],zmm14[4],zmm24[6],zmm14[6]
2025 ; AVX512F-NEXT: vmovdqa64 %zmm6, %zmm1 {%k1}
2026 ; AVX512F-NEXT: vmovdqa64 %zmm15, %zmm2
2027 ; AVX512F-NEXT: vpermt2q %zmm26, %zmm0, %zmm2
2028 ; AVX512F-NEXT: vbroadcasti128 {{.*#+}} ymm5 = [4,12,4,12]
2029 ; AVX512F-NEXT: # ymm5 = mem[0,1,0,1]
2030 ; AVX512F-NEXT: vmovdqa64 %zmm4, %zmm6
2031 ; AVX512F-NEXT: vpermt2q %zmm17, %zmm5, %zmm6
2032 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm6[4,5,6,7]
2033 ; AVX512F-NEXT: vinserti64x4 $0, %ymm2, %zmm1, %zmm25
2034 ; AVX512F-NEXT: vmovdqa64 %zmm10, %zmm1
2035 ; AVX512F-NEXT: vpermt2q %zmm9, %zmm0, %zmm1
2036 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} zmm2 = zmm28[0],zmm11[0],zmm28[2],zmm11[2],zmm28[4],zmm11[4],zmm28[6],zmm11[6]
2037 ; AVX512F-NEXT: vmovdqa64 %zmm1, %zmm2 {%k1}
2038 ; AVX512F-NEXT: vpermi2q %zmm31, %zmm3, %zmm0
2039 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
2040 ; AVX512F-NEXT: vpermi2q %zmm18, %zmm8, %zmm5
2041 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm5[4,5,6,7]
2042 ; AVX512F-NEXT: vinserti64x4 $0, %ymm0, %zmm2, %zmm27
2043 ; AVX512F-NEXT: vbroadcasti32x4 {{.*#+}} zmm6 = [5,13,5,13,5,13,5,13]
2044 ; AVX512F-NEXT: # zmm6 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2045 ; AVX512F-NEXT: vmovdqa64 %zmm15, %zmm0
2046 ; AVX512F-NEXT: vpermt2q %zmm26, %zmm6, %zmm0
2047 ; AVX512F-NEXT: vbroadcasti128 {{.*#+}} ymm7 = [5,13,5,13]
2048 ; AVX512F-NEXT: # ymm7 = mem[0,1,0,1]
2049 ; AVX512F-NEXT: vmovdqa64 %zmm4, %zmm1
2050 ; AVX512F-NEXT: vpermt2q %zmm17, %zmm7, %zmm1
2051 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2052 ; AVX512F-NEXT: vbroadcasti32x4 {{.*#+}} zmm5 = [6,14,6,14,6,14,6,14]
2053 ; AVX512F-NEXT: # zmm5 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2054 ; AVX512F-NEXT: vmovdqa64 %zmm24, %zmm30
2055 ; AVX512F-NEXT: vpermt2q %zmm14, %zmm5, %zmm30
2056 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} zmm1 = zmm24[1],zmm14[1],zmm24[3],zmm14[3],zmm24[5],zmm14[5],zmm24[7],zmm14[7]
2057 ; AVX512F-NEXT: vbroadcasti32x4 {{.*#+}} zmm2 = [7,15,7,15,7,15,7,15]
2058 ; AVX512F-NEXT: # zmm2 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2059 ; AVX512F-NEXT: vpermt2q %zmm14, %zmm2, %zmm24
2060 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} zmm30 {%k1} = zmm13[0],zmm12[0],zmm13[2],zmm12[2],zmm13[4],zmm12[4],zmm13[6],zmm12[6]
2061 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} zmm24 {%k1} = zmm13[1],zmm12[1],zmm13[3],zmm12[3],zmm13[5],zmm12[5],zmm13[7],zmm12[7]
2062 ; AVX512F-NEXT: vmovdqa64 %zmm13, %zmm14
2063 ; AVX512F-NEXT: vpermt2q %zmm12, %zmm23, %zmm14
2064 ; AVX512F-NEXT: vpermt2q %zmm12, %zmm6, %zmm13
2065 ; AVX512F-NEXT: vmovdqa64 %zmm13, %zmm1 {%k1}
2066 ; AVX512F-NEXT: vinserti64x4 $0, %ymm0, %zmm1, %zmm20
2067 ; AVX512F-NEXT: vmovdqa64 %zmm10, %zmm3
2068 ; AVX512F-NEXT: vpermt2q %zmm9, %zmm23, %zmm3
2069 ; AVX512F-NEXT: vpermi2q %zmm11, %zmm28, %zmm23
2070 ; AVX512F-NEXT: vmovdqa64 %zmm28, %zmm1
2071 ; AVX512F-NEXT: vpermt2q %zmm11, %zmm5, %zmm1
2072 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} zmm13 = zmm28[1],zmm11[1],zmm28[3],zmm11[3],zmm28[5],zmm11[5],zmm28[7],zmm11[7]
2073 ; AVX512F-NEXT: vpermt2q %zmm11, %zmm2, %zmm28
2074 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} zmm1 {%k1} = zmm10[0],zmm9[0],zmm10[2],zmm9[2],zmm10[4],zmm9[4],zmm10[6],zmm9[6]
2075 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} zmm28 {%k1} = zmm10[1],zmm9[1],zmm10[3],zmm9[3],zmm10[5],zmm9[5],zmm10[7],zmm9[7]
2076 ; AVX512F-NEXT: vpermt2q %zmm9, %zmm6, %zmm10
2077 ; AVX512F-NEXT: vmovdqa64 %zmm10, %zmm13 {%k1}
2078 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
2079 ; AVX512F-NEXT: vpermi2q %zmm31, %zmm10, %zmm6
2080 ; AVX512F-NEXT: vmovdqa64 %zmm8, %zmm0
2081 ; AVX512F-NEXT: vpermi2q %zmm18, %zmm8, %zmm7
2082 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
2083 ; AVX512F-NEXT: vinserti64x4 $0, %ymm6, %zmm13, %zmm12
2084 ; AVX512F-NEXT: vmovdqa64 %zmm15, %zmm7
2085 ; AVX512F-NEXT: vpermt2q %zmm26, %zmm5, %zmm7
2086 ; AVX512F-NEXT: vpermt2q %zmm26, %zmm2, %zmm15
2087 ; AVX512F-NEXT: vbroadcasti128 {{.*#+}} ymm9 = [6,14,6,14]
2088 ; AVX512F-NEXT: # ymm9 = mem[0,1,0,1]
2089 ; AVX512F-NEXT: vpermi2q %zmm31, %zmm10, %zmm5
2090 ; AVX512F-NEXT: vpermt2q %zmm31, %zmm2, %zmm10
2091 ; AVX512F-NEXT: vmovdqa64 %zmm10, %zmm8
2092 ; AVX512F-NEXT: vmovdqa64 %zmm4, %zmm2
2093 ; AVX512F-NEXT: vpermt2q %zmm17, %zmm9, %zmm2
2094 ; AVX512F-NEXT: vbroadcasti128 {{.*#+}} ymm10 = [7,15,7,15]
2095 ; AVX512F-NEXT: # ymm10 = mem[0,1,0,1]
2096 ; AVX512F-NEXT: vpermt2q %zmm17, %zmm10, %zmm4
2097 ; AVX512F-NEXT: vmovdqa64 %zmm4, %zmm6
2098 ; AVX512F-NEXT: vmovdqa 576(%rdi), %xmm11
2099 ; AVX512F-NEXT: vinserti128 $1, 704(%rdi), %ymm11, %ymm11
2100 ; AVX512F-NEXT: vpermi2q %zmm18, %zmm0, %zmm9
2101 ; AVX512F-NEXT: vpermt2q %zmm18, %zmm10, %zmm0
2102 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm4
2103 ; AVX512F-NEXT: vmovdqa 512(%rdi), %xmm10
2104 ; AVX512F-NEXT: vinserti128 $1, 640(%rdi), %ymm10, %ymm10
2105 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} ymm13 = ymm10[0],ymm11[0],ymm10[2],ymm11[2]
2106 ; AVX512F-NEXT: vinserti64x4 $0, %ymm13, %zmm19, %zmm13
2107 ; AVX512F-NEXT: vmovdqa64 %zmm14, %zmm29 {%k1}
2108 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} ymm14 = ymm16[1],ymm21[1],ymm16[3],ymm21[3]
2109 ; AVX512F-NEXT: vinserti64x4 $0, %ymm14, %zmm29, %zmm14
2110 ; AVX512F-NEXT: vmovdqa64 %zmm3, %zmm23 {%k1}
2111 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} ymm0 = ymm10[1],ymm11[1],ymm10[3],ymm11[3]
2112 ; AVX512F-NEXT: vinserti64x4 $0, %ymm0, %zmm23, %zmm0
2113 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm2 = ymm7[0,1,2,3],ymm2[4,5,6,7]
2114 ; AVX512F-NEXT: vinserti64x4 $0, %ymm2, %zmm30, %zmm2
2115 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm9[4,5,6,7]
2116 ; AVX512F-NEXT: vinserti64x4 $0, %ymm5, %zmm1, %zmm1
2117 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm5 = ymm15[0,1,2,3],ymm6[4,5,6,7]
2118 ; AVX512F-NEXT: vinserti64x4 $0, %ymm5, %zmm24, %zmm6
2119 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm5 = ymm8[0,1,2,3],ymm4[4,5,6,7]
2120 ; AVX512F-NEXT: vinserti64x4 $0, %ymm5, %zmm28, %zmm3
2121 ; AVX512F-NEXT: vmovdqa64 %zmm13, 64(%rsi)
2122 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
2123 ; AVX512F-NEXT: vmovaps %zmm4, (%rsi)
2124 ; AVX512F-NEXT: vmovdqa64 %zmm0, 64(%rdx)
2125 ; AVX512F-NEXT: vmovdqa64 %zmm14, (%rdx)
2126 ; AVX512F-NEXT: vmovups (%rsp), %zmm0 # 64-byte Reload
2127 ; AVX512F-NEXT: vmovaps %zmm0, 64(%rcx)
2128 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
2129 ; AVX512F-NEXT: vmovaps %zmm0, (%rcx)
2130 ; AVX512F-NEXT: vmovdqa64 %zmm22, 64(%r8)
2131 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
2132 ; AVX512F-NEXT: vmovaps %zmm0, (%r8)
2133 ; AVX512F-NEXT: vmovdqa64 %zmm27, 64(%r9)
2134 ; AVX512F-NEXT: vmovdqa64 %zmm25, (%r9)
2135 ; AVX512F-NEXT: movq {{[0-9]+}}(%rsp), %rax
2136 ; AVX512F-NEXT: vmovdqa64 %zmm12, 64(%rax)
2137 ; AVX512F-NEXT: vmovdqa64 %zmm20, (%rax)
2138 ; AVX512F-NEXT: movq {{[0-9]+}}(%rsp), %rax
2139 ; AVX512F-NEXT: vmovdqa64 %zmm1, 64(%rax)
2140 ; AVX512F-NEXT: vmovdqa64 %zmm2, (%rax)
2141 ; AVX512F-NEXT: movq {{[0-9]+}}(%rsp), %rax
2142 ; AVX512F-NEXT: vmovdqa64 %zmm3, 64(%rax)
2143 ; AVX512F-NEXT: vmovdqa64 %zmm6, (%rax)
2144 ; AVX512F-NEXT: addq $264, %rsp # imm = 0x108
2145 ; AVX512F-NEXT: vzeroupper
2146 ; AVX512F-NEXT: retq
2148 ; AVX512BW-LABEL: load_i64_stride8_vf16:
2149 ; AVX512BW: # %bb.0:
2150 ; AVX512BW-NEXT: subq $264, %rsp # imm = 0x108
2151 ; AVX512BW-NEXT: vmovdqa64 704(%rdi), %zmm18
2152 ; AVX512BW-NEXT: vmovaps 640(%rdi), %zmm0
2153 ; AVX512BW-NEXT: vmovups %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
2154 ; AVX512BW-NEXT: vmovdqa64 576(%rdi), %zmm31
2155 ; AVX512BW-NEXT: vmovdqa64 512(%rdi), %zmm3
2156 ; AVX512BW-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
2157 ; AVX512BW-NEXT: vmovdqa64 192(%rdi), %zmm17
2158 ; AVX512BW-NEXT: vmovdqa64 128(%rdi), %zmm4
2159 ; AVX512BW-NEXT: vmovdqa64 832(%rdi), %zmm11
2160 ; AVX512BW-NEXT: vmovdqa64 768(%rdi), %zmm28
2161 ; AVX512BW-NEXT: vmovdqa64 960(%rdi), %zmm9
2162 ; AVX512BW-NEXT: vmovdqa64 896(%rdi), %zmm10
2163 ; AVX512BW-NEXT: vmovdqa64 320(%rdi), %zmm14
2164 ; AVX512BW-NEXT: vmovdqa64 256(%rdi), %zmm24
2165 ; AVX512BW-NEXT: vmovdqa64 448(%rdi), %zmm12
2166 ; AVX512BW-NEXT: vmovdqa64 384(%rdi), %zmm13
2167 ; AVX512BW-NEXT: vbroadcasti32x4 {{.*#+}} zmm19 = [0,8,0,8,0,8,0,8]
2168 ; AVX512BW-NEXT: # zmm19 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2169 ; AVX512BW-NEXT: vmovdqa64 %zmm13, %zmm5
2170 ; AVX512BW-NEXT: vmovdqa64 %zmm13, %zmm7
2171 ; AVX512BW-NEXT: vmovdqa64 %zmm13, %zmm6
2172 ; AVX512BW-NEXT: vmovdqa64 %zmm13, %zmm0
2173 ; AVX512BW-NEXT: vpermt2q %zmm12, %zmm19, %zmm0
2174 ; AVX512BW-NEXT: vmovdqa64 %zmm24, %zmm15
2175 ; AVX512BW-NEXT: vpermt2q %zmm14, %zmm19, %zmm15
2176 ; AVX512BW-NEXT: movb $-64, %al
2177 ; AVX512BW-NEXT: kmovd %eax, %k1
2178 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm15 {%k1}
2179 ; AVX512BW-NEXT: vmovdqa (%rdi), %xmm0
2180 ; AVX512BW-NEXT: vmovdqa64 64(%rdi), %xmm16
2181 ; AVX512BW-NEXT: vinserti32x4 $1, 192(%rdi), %ymm16, %ymm21
2182 ; AVX512BW-NEXT: vinserti32x4 $1, 128(%rdi), %ymm0, %ymm16
2183 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} ymm0 = ymm16[0],ymm21[0],ymm16[2],ymm21[2]
2184 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm0, %zmm15, %zmm0
2185 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
2186 ; AVX512BW-NEXT: vmovdqa64 %zmm10, %zmm0
2187 ; AVX512BW-NEXT: vpermt2q %zmm9, %zmm19, %zmm0
2188 ; AVX512BW-NEXT: vpermi2q %zmm11, %zmm28, %zmm19
2189 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm19 {%k1}
2190 ; AVX512BW-NEXT: vbroadcasti32x4 {{.*#+}} zmm0 = [2,10,2,10,2,10,2,10]
2191 ; AVX512BW-NEXT: # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2192 ; AVX512BW-NEXT: vpermt2q %zmm12, %zmm0, %zmm5
2193 ; AVX512BW-NEXT: vmovdqa64 %zmm24, %zmm15
2194 ; AVX512BW-NEXT: vpermt2q %zmm14, %zmm0, %zmm15
2195 ; AVX512BW-NEXT: vmovdqa64 %zmm5, %zmm15 {%k1}
2196 ; AVX512BW-NEXT: vmovdqa 192(%rdi), %ymm5
2197 ; AVX512BW-NEXT: vmovdqa64 128(%rdi), %ymm20
2198 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} ymm1 = ymm20[0],ymm5[0],ymm20[2],ymm5[2]
2199 ; AVX512BW-NEXT: vmovdqa64 64(%rdi), %ymm22
2200 ; AVX512BW-NEXT: vmovdqa64 (%rdi), %ymm23
2201 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} ymm2 = ymm23[0],ymm22[0],ymm23[2],ymm22[2]
2202 ; AVX512BW-NEXT: vperm2i128 {{.*#+}} ymm1 = ymm2[2,3],ymm1[2,3]
2203 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm1, %zmm15, %zmm1
2204 ; AVX512BW-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
2205 ; AVX512BW-NEXT: vmovdqa64 %zmm10, %zmm1
2206 ; AVX512BW-NEXT: vpermt2q %zmm9, %zmm0, %zmm1
2207 ; AVX512BW-NEXT: vpermi2q %zmm11, %zmm28, %zmm0
2208 ; AVX512BW-NEXT: vmovdqa64 %zmm1, %zmm0 {%k1}
2209 ; AVX512BW-NEXT: vmovdqa 704(%rdi), %ymm1
2210 ; AVX512BW-NEXT: vmovdqa 640(%rdi), %ymm2
2211 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} ymm15 = ymm2[0],ymm1[0],ymm2[2],ymm1[2]
2212 ; AVX512BW-NEXT: vmovdqa64 576(%rdi), %ymm25
2213 ; AVX512BW-NEXT: vmovdqa64 512(%rdi), %ymm27
2214 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} ymm8 = ymm27[0],ymm25[0],ymm27[2],ymm25[2]
2215 ; AVX512BW-NEXT: vperm2i128 {{.*#+}} ymm8 = ymm8[2,3],ymm15[2,3]
2216 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm8, %zmm0, %zmm0
2217 ; AVX512BW-NEXT: vmovdqu64 %zmm0, (%rsp) # 64-byte Spill
2218 ; AVX512BW-NEXT: vbroadcasti32x4 {{.*#+}} zmm0 = [3,11,3,11,3,11,3,11]
2219 ; AVX512BW-NEXT: # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2220 ; AVX512BW-NEXT: vpermt2q %zmm12, %zmm0, %zmm7
2221 ; AVX512BW-NEXT: vmovdqa64 %zmm24, %zmm30
2222 ; AVX512BW-NEXT: vpermt2q %zmm14, %zmm0, %zmm30
2223 ; AVX512BW-NEXT: vmovdqa64 %zmm7, %zmm30 {%k1}
2224 ; AVX512BW-NEXT: vmovdqa64 64(%rdi), %zmm26
2225 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} ymm5 = ymm20[1],ymm5[1],ymm20[3],ymm5[3]
2226 ; AVX512BW-NEXT: vmovdqa64 (%rdi), %zmm15
2227 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} ymm7 = ymm23[1],ymm22[1],ymm23[3],ymm22[3]
2228 ; AVX512BW-NEXT: vbroadcasti32x4 {{.*#+}} zmm23 = [1,9,1,9,1,9,1,9]
2229 ; AVX512BW-NEXT: # zmm23 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2230 ; AVX512BW-NEXT: vperm2i128 {{.*#+}} ymm5 = ymm7[2,3],ymm5[2,3]
2231 ; AVX512BW-NEXT: vmovdqa64 %zmm24, %zmm29
2232 ; AVX512BW-NEXT: vpermt2q %zmm14, %zmm23, %zmm29
2233 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm5, %zmm30, %zmm5
2234 ; AVX512BW-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
2235 ; AVX512BW-NEXT: vmovdqa64 %zmm10, %zmm5
2236 ; AVX512BW-NEXT: vpermt2q %zmm9, %zmm0, %zmm5
2237 ; AVX512BW-NEXT: vpermi2q %zmm11, %zmm28, %zmm0
2238 ; AVX512BW-NEXT: vmovdqa64 %zmm5, %zmm0 {%k1}
2239 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} ymm1 = ymm2[1],ymm1[1],ymm2[3],ymm1[3]
2240 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} ymm2 = ymm27[1],ymm25[1],ymm27[3],ymm25[3]
2241 ; AVX512BW-NEXT: vperm2i128 {{.*#+}} ymm1 = ymm2[2,3],ymm1[2,3]
2242 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm1, %zmm0, %zmm22
2243 ; AVX512BW-NEXT: vbroadcasti32x4 {{.*#+}} zmm0 = [4,12,4,12,4,12,4,12]
2244 ; AVX512BW-NEXT: # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2245 ; AVX512BW-NEXT: vpermt2q %zmm12, %zmm0, %zmm6
2246 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} zmm1 = zmm24[0],zmm14[0],zmm24[2],zmm14[2],zmm24[4],zmm14[4],zmm24[6],zmm14[6]
2247 ; AVX512BW-NEXT: vmovdqa64 %zmm6, %zmm1 {%k1}
2248 ; AVX512BW-NEXT: vmovdqa64 %zmm15, %zmm2
2249 ; AVX512BW-NEXT: vpermt2q %zmm26, %zmm0, %zmm2
2250 ; AVX512BW-NEXT: vbroadcasti128 {{.*#+}} ymm5 = [4,12,4,12]
2251 ; AVX512BW-NEXT: # ymm5 = mem[0,1,0,1]
2252 ; AVX512BW-NEXT: vmovdqa64 %zmm4, %zmm6
2253 ; AVX512BW-NEXT: vpermt2q %zmm17, %zmm5, %zmm6
2254 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm6[4,5,6,7]
2255 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm2, %zmm1, %zmm25
2256 ; AVX512BW-NEXT: vmovdqa64 %zmm10, %zmm1
2257 ; AVX512BW-NEXT: vpermt2q %zmm9, %zmm0, %zmm1
2258 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} zmm2 = zmm28[0],zmm11[0],zmm28[2],zmm11[2],zmm28[4],zmm11[4],zmm28[6],zmm11[6]
2259 ; AVX512BW-NEXT: vmovdqa64 %zmm1, %zmm2 {%k1}
2260 ; AVX512BW-NEXT: vpermi2q %zmm31, %zmm3, %zmm0
2261 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
2262 ; AVX512BW-NEXT: vpermi2q %zmm18, %zmm8, %zmm5
2263 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm5[4,5,6,7]
2264 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm0, %zmm2, %zmm27
2265 ; AVX512BW-NEXT: vbroadcasti32x4 {{.*#+}} zmm6 = [5,13,5,13,5,13,5,13]
2266 ; AVX512BW-NEXT: # zmm6 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2267 ; AVX512BW-NEXT: vmovdqa64 %zmm15, %zmm0
2268 ; AVX512BW-NEXT: vpermt2q %zmm26, %zmm6, %zmm0
2269 ; AVX512BW-NEXT: vbroadcasti128 {{.*#+}} ymm7 = [5,13,5,13]
2270 ; AVX512BW-NEXT: # ymm7 = mem[0,1,0,1]
2271 ; AVX512BW-NEXT: vmovdqa64 %zmm4, %zmm1
2272 ; AVX512BW-NEXT: vpermt2q %zmm17, %zmm7, %zmm1
2273 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2274 ; AVX512BW-NEXT: vbroadcasti32x4 {{.*#+}} zmm5 = [6,14,6,14,6,14,6,14]
2275 ; AVX512BW-NEXT: # zmm5 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2276 ; AVX512BW-NEXT: vmovdqa64 %zmm24, %zmm30
2277 ; AVX512BW-NEXT: vpermt2q %zmm14, %zmm5, %zmm30
2278 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} zmm1 = zmm24[1],zmm14[1],zmm24[3],zmm14[3],zmm24[5],zmm14[5],zmm24[7],zmm14[7]
2279 ; AVX512BW-NEXT: vbroadcasti32x4 {{.*#+}} zmm2 = [7,15,7,15,7,15,7,15]
2280 ; AVX512BW-NEXT: # zmm2 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2281 ; AVX512BW-NEXT: vpermt2q %zmm14, %zmm2, %zmm24
2282 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} zmm30 {%k1} = zmm13[0],zmm12[0],zmm13[2],zmm12[2],zmm13[4],zmm12[4],zmm13[6],zmm12[6]
2283 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} zmm24 {%k1} = zmm13[1],zmm12[1],zmm13[3],zmm12[3],zmm13[5],zmm12[5],zmm13[7],zmm12[7]
2284 ; AVX512BW-NEXT: vmovdqa64 %zmm13, %zmm14
2285 ; AVX512BW-NEXT: vpermt2q %zmm12, %zmm23, %zmm14
2286 ; AVX512BW-NEXT: vpermt2q %zmm12, %zmm6, %zmm13
2287 ; AVX512BW-NEXT: vmovdqa64 %zmm13, %zmm1 {%k1}
2288 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm0, %zmm1, %zmm20
2289 ; AVX512BW-NEXT: vmovdqa64 %zmm10, %zmm3
2290 ; AVX512BW-NEXT: vpermt2q %zmm9, %zmm23, %zmm3
2291 ; AVX512BW-NEXT: vpermi2q %zmm11, %zmm28, %zmm23
2292 ; AVX512BW-NEXT: vmovdqa64 %zmm28, %zmm1
2293 ; AVX512BW-NEXT: vpermt2q %zmm11, %zmm5, %zmm1
2294 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} zmm13 = zmm28[1],zmm11[1],zmm28[3],zmm11[3],zmm28[5],zmm11[5],zmm28[7],zmm11[7]
2295 ; AVX512BW-NEXT: vpermt2q %zmm11, %zmm2, %zmm28
2296 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} zmm1 {%k1} = zmm10[0],zmm9[0],zmm10[2],zmm9[2],zmm10[4],zmm9[4],zmm10[6],zmm9[6]
2297 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} zmm28 {%k1} = zmm10[1],zmm9[1],zmm10[3],zmm9[3],zmm10[5],zmm9[5],zmm10[7],zmm9[7]
2298 ; AVX512BW-NEXT: vpermt2q %zmm9, %zmm6, %zmm10
2299 ; AVX512BW-NEXT: vmovdqa64 %zmm10, %zmm13 {%k1}
2300 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
2301 ; AVX512BW-NEXT: vpermi2q %zmm31, %zmm10, %zmm6
2302 ; AVX512BW-NEXT: vmovdqa64 %zmm8, %zmm0
2303 ; AVX512BW-NEXT: vpermi2q %zmm18, %zmm8, %zmm7
2304 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
2305 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm6, %zmm13, %zmm12
2306 ; AVX512BW-NEXT: vmovdqa64 %zmm15, %zmm7
2307 ; AVX512BW-NEXT: vpermt2q %zmm26, %zmm5, %zmm7
2308 ; AVX512BW-NEXT: vpermt2q %zmm26, %zmm2, %zmm15
2309 ; AVX512BW-NEXT: vbroadcasti128 {{.*#+}} ymm9 = [6,14,6,14]
2310 ; AVX512BW-NEXT: # ymm9 = mem[0,1,0,1]
2311 ; AVX512BW-NEXT: vpermi2q %zmm31, %zmm10, %zmm5
2312 ; AVX512BW-NEXT: vpermt2q %zmm31, %zmm2, %zmm10
2313 ; AVX512BW-NEXT: vmovdqa64 %zmm10, %zmm8
2314 ; AVX512BW-NEXT: vmovdqa64 %zmm4, %zmm2
2315 ; AVX512BW-NEXT: vpermt2q %zmm17, %zmm9, %zmm2
2316 ; AVX512BW-NEXT: vbroadcasti128 {{.*#+}} ymm10 = [7,15,7,15]
2317 ; AVX512BW-NEXT: # ymm10 = mem[0,1,0,1]
2318 ; AVX512BW-NEXT: vpermt2q %zmm17, %zmm10, %zmm4
2319 ; AVX512BW-NEXT: vmovdqa64 %zmm4, %zmm6
2320 ; AVX512BW-NEXT: vmovdqa 576(%rdi), %xmm11
2321 ; AVX512BW-NEXT: vinserti128 $1, 704(%rdi), %ymm11, %ymm11
2322 ; AVX512BW-NEXT: vpermi2q %zmm18, %zmm0, %zmm9
2323 ; AVX512BW-NEXT: vpermt2q %zmm18, %zmm10, %zmm0
2324 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm4
2325 ; AVX512BW-NEXT: vmovdqa 512(%rdi), %xmm10
2326 ; AVX512BW-NEXT: vinserti128 $1, 640(%rdi), %ymm10, %ymm10
2327 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} ymm13 = ymm10[0],ymm11[0],ymm10[2],ymm11[2]
2328 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm13, %zmm19, %zmm13
2329 ; AVX512BW-NEXT: vmovdqa64 %zmm14, %zmm29 {%k1}
2330 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} ymm14 = ymm16[1],ymm21[1],ymm16[3],ymm21[3]
2331 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm14, %zmm29, %zmm14
2332 ; AVX512BW-NEXT: vmovdqa64 %zmm3, %zmm23 {%k1}
2333 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} ymm0 = ymm10[1],ymm11[1],ymm10[3],ymm11[3]
2334 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm0, %zmm23, %zmm0
2335 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm2 = ymm7[0,1,2,3],ymm2[4,5,6,7]
2336 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm2, %zmm30, %zmm2
2337 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm9[4,5,6,7]
2338 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm5, %zmm1, %zmm1
2339 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm5 = ymm15[0,1,2,3],ymm6[4,5,6,7]
2340 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm5, %zmm24, %zmm6
2341 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm5 = ymm8[0,1,2,3],ymm4[4,5,6,7]
2342 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm5, %zmm28, %zmm3
2343 ; AVX512BW-NEXT: vmovdqa64 %zmm13, 64(%rsi)
2344 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
2345 ; AVX512BW-NEXT: vmovaps %zmm4, (%rsi)
2346 ; AVX512BW-NEXT: vmovdqa64 %zmm0, 64(%rdx)
2347 ; AVX512BW-NEXT: vmovdqa64 %zmm14, (%rdx)
2348 ; AVX512BW-NEXT: vmovups (%rsp), %zmm0 # 64-byte Reload
2349 ; AVX512BW-NEXT: vmovaps %zmm0, 64(%rcx)
2350 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
2351 ; AVX512BW-NEXT: vmovaps %zmm0, (%rcx)
2352 ; AVX512BW-NEXT: vmovdqa64 %zmm22, 64(%r8)
2353 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
2354 ; AVX512BW-NEXT: vmovaps %zmm0, (%r8)
2355 ; AVX512BW-NEXT: vmovdqa64 %zmm27, 64(%r9)
2356 ; AVX512BW-NEXT: vmovdqa64 %zmm25, (%r9)
2357 ; AVX512BW-NEXT: movq {{[0-9]+}}(%rsp), %rax
2358 ; AVX512BW-NEXT: vmovdqa64 %zmm12, 64(%rax)
2359 ; AVX512BW-NEXT: vmovdqa64 %zmm20, (%rax)
2360 ; AVX512BW-NEXT: movq {{[0-9]+}}(%rsp), %rax
2361 ; AVX512BW-NEXT: vmovdqa64 %zmm1, 64(%rax)
2362 ; AVX512BW-NEXT: vmovdqa64 %zmm2, (%rax)
2363 ; AVX512BW-NEXT: movq {{[0-9]+}}(%rsp), %rax
2364 ; AVX512BW-NEXT: vmovdqa64 %zmm3, 64(%rax)
2365 ; AVX512BW-NEXT: vmovdqa64 %zmm6, (%rax)
2366 ; AVX512BW-NEXT: addq $264, %rsp # imm = 0x108
2367 ; AVX512BW-NEXT: vzeroupper
2368 ; AVX512BW-NEXT: retq
2369 %wide.vec = load <128 x i64>, ptr %in.vec, align 64
2370 %strided.vec0 = shufflevector <128 x i64> %wide.vec, <128 x i64> poison, <16 x i32> <i32 0, i32 8, i32 16, i32 24, i32 32, i32 40, i32 48, i32 56, i32 64, i32 72, i32 80, i32 88, i32 96, i32 104, i32 112, i32 120>
2371 %strided.vec1 = shufflevector <128 x i64> %wide.vec, <128 x i64> poison, <16 x i32> <i32 1, i32 9, i32 17, i32 25, i32 33, i32 41, i32 49, i32 57, i32 65, i32 73, i32 81, i32 89, i32 97, i32 105, i32 113, i32 121>
2372 %strided.vec2 = shufflevector <128 x i64> %wide.vec, <128 x i64> poison, <16 x i32> <i32 2, i32 10, i32 18, i32 26, i32 34, i32 42, i32 50, i32 58, i32 66, i32 74, i32 82, i32 90, i32 98, i32 106, i32 114, i32 122>
2373 %strided.vec3 = shufflevector <128 x i64> %wide.vec, <128 x i64> poison, <16 x i32> <i32 3, i32 11, i32 19, i32 27, i32 35, i32 43, i32 51, i32 59, i32 67, i32 75, i32 83, i32 91, i32 99, i32 107, i32 115, i32 123>
2374 %strided.vec4 = shufflevector <128 x i64> %wide.vec, <128 x i64> poison, <16 x i32> <i32 4, i32 12, i32 20, i32 28, i32 36, i32 44, i32 52, i32 60, i32 68, i32 76, i32 84, i32 92, i32 100, i32 108, i32 116, i32 124>
2375 %strided.vec5 = shufflevector <128 x i64> %wide.vec, <128 x i64> poison, <16 x i32> <i32 5, i32 13, i32 21, i32 29, i32 37, i32 45, i32 53, i32 61, i32 69, i32 77, i32 85, i32 93, i32 101, i32 109, i32 117, i32 125>
2376 %strided.vec6 = shufflevector <128 x i64> %wide.vec, <128 x i64> poison, <16 x i32> <i32 6, i32 14, i32 22, i32 30, i32 38, i32 46, i32 54, i32 62, i32 70, i32 78, i32 86, i32 94, i32 102, i32 110, i32 118, i32 126>
2377 %strided.vec7 = shufflevector <128 x i64> %wide.vec, <128 x i64> poison, <16 x i32> <i32 7, i32 15, i32 23, i32 31, i32 39, i32 47, i32 55, i32 63, i32 71, i32 79, i32 87, i32 95, i32 103, i32 111, i32 119, i32 127>
2378 store <16 x i64> %strided.vec0, ptr %out.vec0, align 64
2379 store <16 x i64> %strided.vec1, ptr %out.vec1, align 64
2380 store <16 x i64> %strided.vec2, ptr %out.vec2, align 64
2381 store <16 x i64> %strided.vec3, ptr %out.vec3, align 64
2382 store <16 x i64> %strided.vec4, ptr %out.vec4, align 64
2383 store <16 x i64> %strided.vec5, ptr %out.vec5, align 64
2384 store <16 x i64> %strided.vec6, ptr %out.vec6, align 64
2385 store <16 x i64> %strided.vec7, ptr %out.vec7, align 64
2389 define void @load_i64_stride8_vf32(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4, ptr %out.vec5, ptr %out.vec6, ptr %out.vec7) nounwind {
2390 ; SSE-LABEL: load_i64_stride8_vf32:
2392 ; SSE-NEXT: subq $1688, %rsp # imm = 0x698
2393 ; SSE-NEXT: movaps 832(%rdi), %xmm0
2394 ; SSE-NEXT: movaps 320(%rdi), %xmm2
2395 ; SSE-NEXT: movaps 256(%rdi), %xmm8
2396 ; SSE-NEXT: movaps 960(%rdi), %xmm1
2397 ; SSE-NEXT: movaps 896(%rdi), %xmm10
2398 ; SSE-NEXT: movaps 448(%rdi), %xmm4
2399 ; SSE-NEXT: movaps 384(%rdi), %xmm9
2400 ; SSE-NEXT: movaps 576(%rdi), %xmm3
2401 ; SSE-NEXT: movaps 512(%rdi), %xmm12
2402 ; SSE-NEXT: movaps 64(%rdi), %xmm6
2403 ; SSE-NEXT: movaps (%rdi), %xmm11
2404 ; SSE-NEXT: movaps 704(%rdi), %xmm5
2405 ; SSE-NEXT: movaps 640(%rdi), %xmm14
2406 ; SSE-NEXT: movaps 192(%rdi), %xmm7
2407 ; SSE-NEXT: movaps 128(%rdi), %xmm13
2408 ; SSE-NEXT: movaps %xmm13, %xmm15
2409 ; SSE-NEXT: movlhps {{.*#+}} xmm15 = xmm15[0],xmm7[0]
2410 ; SSE-NEXT: movaps %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2411 ; SSE-NEXT: unpckhpd {{.*#+}} xmm13 = xmm13[1],xmm7[1]
2412 ; SSE-NEXT: movaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2413 ; SSE-NEXT: movaps %xmm11, %xmm7
2414 ; SSE-NEXT: movlhps {{.*#+}} xmm7 = xmm7[0],xmm6[0]
2415 ; SSE-NEXT: movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2416 ; SSE-NEXT: unpckhpd {{.*#+}} xmm11 = xmm11[1],xmm6[1]
2417 ; SSE-NEXT: movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2418 ; SSE-NEXT: movaps %xmm9, %xmm6
2419 ; SSE-NEXT: movlhps {{.*#+}} xmm6 = xmm6[0],xmm4[0]
2420 ; SSE-NEXT: movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2421 ; SSE-NEXT: unpckhpd {{.*#+}} xmm9 = xmm9[1],xmm4[1]
2422 ; SSE-NEXT: movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2423 ; SSE-NEXT: movaps %xmm8, %xmm4
2424 ; SSE-NEXT: movlhps {{.*#+}} xmm4 = xmm4[0],xmm2[0]
2425 ; SSE-NEXT: movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2426 ; SSE-NEXT: unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm2[1]
2427 ; SSE-NEXT: movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2428 ; SSE-NEXT: movaps %xmm14, %xmm2
2429 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm5[0]
2430 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2431 ; SSE-NEXT: unpckhpd {{.*#+}} xmm14 = xmm14[1],xmm5[1]
2432 ; SSE-NEXT: movaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2433 ; SSE-NEXT: movaps %xmm12, %xmm2
2434 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm3[0]
2435 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2436 ; SSE-NEXT: unpckhpd {{.*#+}} xmm12 = xmm12[1],xmm3[1]
2437 ; SSE-NEXT: movaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2438 ; SSE-NEXT: movaps %xmm10, %xmm2
2439 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm1[0]
2440 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2441 ; SSE-NEXT: unpckhpd {{.*#+}} xmm10 = xmm10[1],xmm1[1]
2442 ; SSE-NEXT: movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2443 ; SSE-NEXT: movaps 768(%rdi), %xmm1
2444 ; SSE-NEXT: movaps %xmm1, %xmm2
2445 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2446 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2447 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2448 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2449 ; SSE-NEXT: movaps 1216(%rdi), %xmm0
2450 ; SSE-NEXT: movaps 1152(%rdi), %xmm1
2451 ; SSE-NEXT: movaps %xmm1, %xmm2
2452 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2453 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2454 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2455 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2456 ; SSE-NEXT: movaps 1088(%rdi), %xmm0
2457 ; SSE-NEXT: movaps 1024(%rdi), %xmm1
2458 ; SSE-NEXT: movaps %xmm1, %xmm2
2459 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2460 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2461 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2462 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2463 ; SSE-NEXT: movaps 1472(%rdi), %xmm0
2464 ; SSE-NEXT: movaps 1408(%rdi), %xmm1
2465 ; SSE-NEXT: movaps %xmm1, %xmm2
2466 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2467 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2468 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2469 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2470 ; SSE-NEXT: movaps 1344(%rdi), %xmm0
2471 ; SSE-NEXT: movaps 1280(%rdi), %xmm1
2472 ; SSE-NEXT: movaps %xmm1, %xmm2
2473 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2474 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2475 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2476 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2477 ; SSE-NEXT: movaps 1728(%rdi), %xmm0
2478 ; SSE-NEXT: movaps 1664(%rdi), %xmm1
2479 ; SSE-NEXT: movaps %xmm1, %xmm2
2480 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2481 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2482 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2483 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2484 ; SSE-NEXT: movaps 1600(%rdi), %xmm0
2485 ; SSE-NEXT: movaps 1536(%rdi), %xmm1
2486 ; SSE-NEXT: movaps %xmm1, %xmm2
2487 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2488 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2489 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2490 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2491 ; SSE-NEXT: movaps 1984(%rdi), %xmm0
2492 ; SSE-NEXT: movaps 1920(%rdi), %xmm1
2493 ; SSE-NEXT: movaps %xmm1, %xmm2
2494 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2495 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2496 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2497 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2498 ; SSE-NEXT: movaps 1856(%rdi), %xmm0
2499 ; SSE-NEXT: movaps 1792(%rdi), %xmm1
2500 ; SSE-NEXT: movaps %xmm1, %xmm2
2501 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2502 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2503 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2504 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2505 ; SSE-NEXT: movaps 80(%rdi), %xmm0
2506 ; SSE-NEXT: movaps 16(%rdi), %xmm1
2507 ; SSE-NEXT: movaps %xmm1, %xmm2
2508 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2509 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2510 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2511 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2512 ; SSE-NEXT: movaps 208(%rdi), %xmm0
2513 ; SSE-NEXT: movaps 144(%rdi), %xmm1
2514 ; SSE-NEXT: movaps %xmm1, %xmm2
2515 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2516 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2517 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2518 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2519 ; SSE-NEXT: movaps 336(%rdi), %xmm0
2520 ; SSE-NEXT: movaps 272(%rdi), %xmm1
2521 ; SSE-NEXT: movaps %xmm1, %xmm2
2522 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2523 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2524 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2525 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2526 ; SSE-NEXT: movaps 464(%rdi), %xmm0
2527 ; SSE-NEXT: movaps 400(%rdi), %xmm1
2528 ; SSE-NEXT: movaps %xmm1, %xmm2
2529 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2530 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2531 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2532 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2533 ; SSE-NEXT: movaps 592(%rdi), %xmm0
2534 ; SSE-NEXT: movaps 528(%rdi), %xmm1
2535 ; SSE-NEXT: movaps %xmm1, %xmm2
2536 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2537 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2538 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2539 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2540 ; SSE-NEXT: movaps 720(%rdi), %xmm0
2541 ; SSE-NEXT: movaps 656(%rdi), %xmm1
2542 ; SSE-NEXT: movaps %xmm1, %xmm2
2543 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2544 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2545 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2546 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2547 ; SSE-NEXT: movaps 848(%rdi), %xmm0
2548 ; SSE-NEXT: movaps 784(%rdi), %xmm1
2549 ; SSE-NEXT: movaps %xmm1, %xmm2
2550 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2551 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2552 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2553 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2554 ; SSE-NEXT: movaps 976(%rdi), %xmm0
2555 ; SSE-NEXT: movaps 912(%rdi), %xmm1
2556 ; SSE-NEXT: movaps %xmm1, %xmm2
2557 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2558 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2559 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2560 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2561 ; SSE-NEXT: movaps 1104(%rdi), %xmm0
2562 ; SSE-NEXT: movaps 1040(%rdi), %xmm1
2563 ; SSE-NEXT: movaps %xmm1, %xmm2
2564 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2565 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2566 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2567 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2568 ; SSE-NEXT: movaps 1232(%rdi), %xmm0
2569 ; SSE-NEXT: movaps 1168(%rdi), %xmm1
2570 ; SSE-NEXT: movaps %xmm1, %xmm2
2571 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2572 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2573 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2574 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2575 ; SSE-NEXT: movaps 1360(%rdi), %xmm0
2576 ; SSE-NEXT: movaps 1296(%rdi), %xmm1
2577 ; SSE-NEXT: movaps %xmm1, %xmm2
2578 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2579 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2580 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2581 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2582 ; SSE-NEXT: movaps 1488(%rdi), %xmm0
2583 ; SSE-NEXT: movaps 1424(%rdi), %xmm1
2584 ; SSE-NEXT: movaps %xmm1, %xmm2
2585 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2586 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2587 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2588 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2589 ; SSE-NEXT: movaps 1616(%rdi), %xmm0
2590 ; SSE-NEXT: movaps 1552(%rdi), %xmm1
2591 ; SSE-NEXT: movaps %xmm1, %xmm2
2592 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2593 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2594 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2595 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2596 ; SSE-NEXT: movaps 1744(%rdi), %xmm0
2597 ; SSE-NEXT: movaps 1680(%rdi), %xmm1
2598 ; SSE-NEXT: movaps %xmm1, %xmm2
2599 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2600 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2601 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2602 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2603 ; SSE-NEXT: movaps 1872(%rdi), %xmm0
2604 ; SSE-NEXT: movaps 1808(%rdi), %xmm1
2605 ; SSE-NEXT: movaps %xmm1, %xmm2
2606 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2607 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2608 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2609 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2610 ; SSE-NEXT: movaps 2000(%rdi), %xmm0
2611 ; SSE-NEXT: movaps 1936(%rdi), %xmm1
2612 ; SSE-NEXT: movaps %xmm1, %xmm2
2613 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2614 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2615 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2616 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2617 ; SSE-NEXT: movaps 96(%rdi), %xmm0
2618 ; SSE-NEXT: movaps 32(%rdi), %xmm1
2619 ; SSE-NEXT: movaps %xmm1, %xmm2
2620 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2621 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2622 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2623 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2624 ; SSE-NEXT: movaps 224(%rdi), %xmm0
2625 ; SSE-NEXT: movaps 160(%rdi), %xmm1
2626 ; SSE-NEXT: movaps %xmm1, %xmm2
2627 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2628 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2629 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2630 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2631 ; SSE-NEXT: movaps 352(%rdi), %xmm0
2632 ; SSE-NEXT: movaps 288(%rdi), %xmm1
2633 ; SSE-NEXT: movaps %xmm1, %xmm2
2634 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2635 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2636 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2637 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2638 ; SSE-NEXT: movaps 480(%rdi), %xmm0
2639 ; SSE-NEXT: movaps 416(%rdi), %xmm1
2640 ; SSE-NEXT: movaps %xmm1, %xmm2
2641 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2642 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2643 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2644 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2645 ; SSE-NEXT: movaps 608(%rdi), %xmm0
2646 ; SSE-NEXT: movaps 544(%rdi), %xmm1
2647 ; SSE-NEXT: movaps %xmm1, %xmm2
2648 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2649 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2650 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2651 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2652 ; SSE-NEXT: movaps 736(%rdi), %xmm0
2653 ; SSE-NEXT: movaps 672(%rdi), %xmm1
2654 ; SSE-NEXT: movaps %xmm1, %xmm2
2655 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2656 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2657 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2658 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2659 ; SSE-NEXT: movaps 864(%rdi), %xmm0
2660 ; SSE-NEXT: movaps 800(%rdi), %xmm1
2661 ; SSE-NEXT: movaps %xmm1, %xmm2
2662 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2663 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2664 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2665 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2666 ; SSE-NEXT: movaps 992(%rdi), %xmm0
2667 ; SSE-NEXT: movaps 928(%rdi), %xmm1
2668 ; SSE-NEXT: movaps %xmm1, %xmm2
2669 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2670 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2671 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2672 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2673 ; SSE-NEXT: movaps 1120(%rdi), %xmm0
2674 ; SSE-NEXT: movaps 1056(%rdi), %xmm1
2675 ; SSE-NEXT: movaps %xmm1, %xmm2
2676 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2677 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2678 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2679 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2680 ; SSE-NEXT: movaps 1248(%rdi), %xmm0
2681 ; SSE-NEXT: movaps 1184(%rdi), %xmm1
2682 ; SSE-NEXT: movaps %xmm1, %xmm2
2683 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2684 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2685 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2686 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2687 ; SSE-NEXT: movaps 1376(%rdi), %xmm0
2688 ; SSE-NEXT: movaps 1312(%rdi), %xmm1
2689 ; SSE-NEXT: movaps %xmm1, %xmm2
2690 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2691 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2692 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2693 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2694 ; SSE-NEXT: movaps 1504(%rdi), %xmm0
2695 ; SSE-NEXT: movaps 1440(%rdi), %xmm1
2696 ; SSE-NEXT: movaps %xmm1, %xmm2
2697 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2698 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2699 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2700 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2701 ; SSE-NEXT: movaps 1632(%rdi), %xmm0
2702 ; SSE-NEXT: movaps 1568(%rdi), %xmm1
2703 ; SSE-NEXT: movaps %xmm1, %xmm2
2704 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2705 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2706 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2707 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2708 ; SSE-NEXT: movaps 1760(%rdi), %xmm0
2709 ; SSE-NEXT: movaps 1696(%rdi), %xmm1
2710 ; SSE-NEXT: movaps %xmm1, %xmm2
2711 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2712 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2713 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2714 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2715 ; SSE-NEXT: movaps 1888(%rdi), %xmm0
2716 ; SSE-NEXT: movaps 1824(%rdi), %xmm1
2717 ; SSE-NEXT: movaps %xmm1, %xmm2
2718 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2719 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2720 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2721 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2722 ; SSE-NEXT: movaps 2016(%rdi), %xmm0
2723 ; SSE-NEXT: movaps 1952(%rdi), %xmm1
2724 ; SSE-NEXT: movaps %xmm1, %xmm2
2725 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2726 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2727 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2728 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2729 ; SSE-NEXT: movaps 112(%rdi), %xmm0
2730 ; SSE-NEXT: movaps 48(%rdi), %xmm1
2731 ; SSE-NEXT: movaps %xmm1, %xmm2
2732 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2733 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2734 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2735 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2736 ; SSE-NEXT: movaps 240(%rdi), %xmm0
2737 ; SSE-NEXT: movaps 176(%rdi), %xmm1
2738 ; SSE-NEXT: movaps %xmm1, %xmm2
2739 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2740 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2741 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2742 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2743 ; SSE-NEXT: movaps 368(%rdi), %xmm0
2744 ; SSE-NEXT: movaps 304(%rdi), %xmm1
2745 ; SSE-NEXT: movaps %xmm1, %xmm2
2746 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2747 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2748 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2749 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2750 ; SSE-NEXT: movaps 496(%rdi), %xmm0
2751 ; SSE-NEXT: movaps 432(%rdi), %xmm1
2752 ; SSE-NEXT: movaps %xmm1, %xmm2
2753 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2754 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2755 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2756 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2757 ; SSE-NEXT: movaps 624(%rdi), %xmm0
2758 ; SSE-NEXT: movaps 560(%rdi), %xmm1
2759 ; SSE-NEXT: movaps %xmm1, %xmm2
2760 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2761 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2762 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2763 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2764 ; SSE-NEXT: movaps 752(%rdi), %xmm0
2765 ; SSE-NEXT: movaps 688(%rdi), %xmm1
2766 ; SSE-NEXT: movaps %xmm1, %xmm2
2767 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2768 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2769 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2770 ; SSE-NEXT: movaps %xmm1, (%rsp) # 16-byte Spill
2771 ; SSE-NEXT: movaps 880(%rdi), %xmm0
2772 ; SSE-NEXT: movaps 816(%rdi), %xmm1
2773 ; SSE-NEXT: movaps %xmm1, %xmm2
2774 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2775 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2776 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2777 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2778 ; SSE-NEXT: movaps 1008(%rdi), %xmm0
2779 ; SSE-NEXT: movaps 944(%rdi), %xmm12
2780 ; SSE-NEXT: movaps %xmm12, %xmm1
2781 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2782 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2783 ; SSE-NEXT: unpckhpd {{.*#+}} xmm12 = xmm12[1],xmm0[1]
2784 ; SSE-NEXT: movaps 1136(%rdi), %xmm0
2785 ; SSE-NEXT: movaps 1072(%rdi), %xmm11
2786 ; SSE-NEXT: movaps %xmm11, %xmm1
2787 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2788 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2789 ; SSE-NEXT: unpckhpd {{.*#+}} xmm11 = xmm11[1],xmm0[1]
2790 ; SSE-NEXT: movaps 1264(%rdi), %xmm0
2791 ; SSE-NEXT: movaps 1200(%rdi), %xmm14
2792 ; SSE-NEXT: movaps %xmm14, %xmm1
2793 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2794 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2795 ; SSE-NEXT: unpckhpd {{.*#+}} xmm14 = xmm14[1],xmm0[1]
2796 ; SSE-NEXT: movaps 1392(%rdi), %xmm0
2797 ; SSE-NEXT: movaps 1328(%rdi), %xmm13
2798 ; SSE-NEXT: movaps %xmm13, %xmm15
2799 ; SSE-NEXT: movlhps {{.*#+}} xmm15 = xmm15[0],xmm0[0]
2800 ; SSE-NEXT: unpckhpd {{.*#+}} xmm13 = xmm13[1],xmm0[1]
2801 ; SSE-NEXT: movaps 1520(%rdi), %xmm0
2802 ; SSE-NEXT: movaps 1456(%rdi), %xmm7
2803 ; SSE-NEXT: movaps %xmm7, %xmm10
2804 ; SSE-NEXT: movlhps {{.*#+}} xmm10 = xmm10[0],xmm0[0]
2805 ; SSE-NEXT: unpckhpd {{.*#+}} xmm7 = xmm7[1],xmm0[1]
2806 ; SSE-NEXT: movaps 1648(%rdi), %xmm0
2807 ; SSE-NEXT: movaps 1584(%rdi), %xmm5
2808 ; SSE-NEXT: movaps %xmm5, %xmm9
2809 ; SSE-NEXT: movlhps {{.*#+}} xmm9 = xmm9[0],xmm0[0]
2810 ; SSE-NEXT: unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm0[1]
2811 ; SSE-NEXT: movaps 1776(%rdi), %xmm0
2812 ; SSE-NEXT: movaps 1712(%rdi), %xmm4
2813 ; SSE-NEXT: movaps %xmm4, %xmm8
2814 ; SSE-NEXT: movlhps {{.*#+}} xmm8 = xmm8[0],xmm0[0]
2815 ; SSE-NEXT: unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm0[1]
2816 ; SSE-NEXT: movaps 1904(%rdi), %xmm0
2817 ; SSE-NEXT: movaps 1840(%rdi), %xmm1
2818 ; SSE-NEXT: movaps %xmm1, %xmm6
2819 ; SSE-NEXT: movlhps {{.*#+}} xmm6 = xmm6[0],xmm0[0]
2820 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2821 ; SSE-NEXT: movaps 2032(%rdi), %xmm0
2822 ; SSE-NEXT: movaps 1968(%rdi), %xmm2
2823 ; SSE-NEXT: movaps %xmm2, %xmm3
2824 ; SSE-NEXT: movlhps {{.*#+}} xmm3 = xmm3[0],xmm0[0]
2825 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2826 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2827 ; SSE-NEXT: movaps %xmm0, 224(%rsi)
2828 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2829 ; SSE-NEXT: movaps %xmm0, 160(%rsi)
2830 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2831 ; SSE-NEXT: movaps %xmm0, 96(%rsi)
2832 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2833 ; SSE-NEXT: movaps %xmm0, 32(%rsi)
2834 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2835 ; SSE-NEXT: movaps %xmm0, 240(%rsi)
2836 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2837 ; SSE-NEXT: movaps %xmm0, 176(%rsi)
2838 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2839 ; SSE-NEXT: movaps %xmm0, 112(%rsi)
2840 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2841 ; SSE-NEXT: movaps %xmm0, 48(%rsi)
2842 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2843 ; SSE-NEXT: movaps %xmm0, 192(%rsi)
2844 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2845 ; SSE-NEXT: movaps %xmm0, 128(%rsi)
2846 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2847 ; SSE-NEXT: movaps %xmm0, 64(%rsi)
2848 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2849 ; SSE-NEXT: movaps %xmm0, (%rsi)
2850 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2851 ; SSE-NEXT: movaps %xmm0, 208(%rsi)
2852 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2853 ; SSE-NEXT: movaps %xmm0, 144(%rsi)
2854 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2855 ; SSE-NEXT: movaps %xmm0, 80(%rsi)
2856 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2857 ; SSE-NEXT: movaps %xmm0, 16(%rsi)
2858 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2859 ; SSE-NEXT: movaps %xmm0, 224(%rdx)
2860 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2861 ; SSE-NEXT: movaps %xmm0, 240(%rdx)
2862 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2863 ; SSE-NEXT: movaps %xmm0, 192(%rdx)
2864 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2865 ; SSE-NEXT: movaps %xmm0, 208(%rdx)
2866 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2867 ; SSE-NEXT: movaps %xmm0, 160(%rdx)
2868 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2869 ; SSE-NEXT: movaps %xmm0, 176(%rdx)
2870 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2871 ; SSE-NEXT: movaps %xmm0, 128(%rdx)
2872 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2873 ; SSE-NEXT: movaps %xmm0, 144(%rdx)
2874 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2875 ; SSE-NEXT: movaps %xmm0, 96(%rdx)
2876 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2877 ; SSE-NEXT: movaps %xmm0, 112(%rdx)
2878 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2879 ; SSE-NEXT: movaps %xmm0, 64(%rdx)
2880 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2881 ; SSE-NEXT: movaps %xmm0, 80(%rdx)
2882 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2883 ; SSE-NEXT: movaps %xmm0, 32(%rdx)
2884 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2885 ; SSE-NEXT: movaps %xmm0, 48(%rdx)
2886 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2887 ; SSE-NEXT: movaps %xmm0, (%rdx)
2888 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2889 ; SSE-NEXT: movaps %xmm0, 16(%rdx)
2890 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2891 ; SSE-NEXT: movaps %xmm0, 240(%rcx)
2892 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2893 ; SSE-NEXT: movaps %xmm0, 224(%rcx)
2894 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2895 ; SSE-NEXT: movaps %xmm0, 208(%rcx)
2896 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2897 ; SSE-NEXT: movaps %xmm0, 192(%rcx)
2898 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2899 ; SSE-NEXT: movaps %xmm0, 176(%rcx)
2900 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2901 ; SSE-NEXT: movaps %xmm0, 160(%rcx)
2902 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2903 ; SSE-NEXT: movaps %xmm0, 144(%rcx)
2904 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2905 ; SSE-NEXT: movaps %xmm0, 128(%rcx)
2906 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2907 ; SSE-NEXT: movaps %xmm0, 112(%rcx)
2908 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2909 ; SSE-NEXT: movaps %xmm0, 96(%rcx)
2910 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2911 ; SSE-NEXT: movaps %xmm0, 80(%rcx)
2912 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2913 ; SSE-NEXT: movaps %xmm0, 64(%rcx)
2914 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2915 ; SSE-NEXT: movaps %xmm0, 48(%rcx)
2916 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2917 ; SSE-NEXT: movaps %xmm0, 32(%rcx)
2918 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2919 ; SSE-NEXT: movaps %xmm0, 16(%rcx)
2920 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2921 ; SSE-NEXT: movaps %xmm0, (%rcx)
2922 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2923 ; SSE-NEXT: movaps %xmm0, 240(%r8)
2924 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2925 ; SSE-NEXT: movaps %xmm0, 224(%r8)
2926 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2927 ; SSE-NEXT: movaps %xmm0, 208(%r8)
2928 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2929 ; SSE-NEXT: movaps %xmm0, 192(%r8)
2930 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2931 ; SSE-NEXT: movaps %xmm0, 176(%r8)
2932 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2933 ; SSE-NEXT: movaps %xmm0, 160(%r8)
2934 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2935 ; SSE-NEXT: movaps %xmm0, 144(%r8)
2936 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2937 ; SSE-NEXT: movaps %xmm0, 128(%r8)
2938 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2939 ; SSE-NEXT: movaps %xmm0, 112(%r8)
2940 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2941 ; SSE-NEXT: movaps %xmm0, 96(%r8)
2942 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2943 ; SSE-NEXT: movaps %xmm0, 80(%r8)
2944 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2945 ; SSE-NEXT: movaps %xmm0, 64(%r8)
2946 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2947 ; SSE-NEXT: movaps %xmm0, 48(%r8)
2948 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2949 ; SSE-NEXT: movaps %xmm0, 32(%r8)
2950 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2951 ; SSE-NEXT: movaps %xmm0, 16(%r8)
2952 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2953 ; SSE-NEXT: movaps %xmm0, (%r8)
2954 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2955 ; SSE-NEXT: movaps %xmm0, 240(%r9)
2956 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2957 ; SSE-NEXT: movaps %xmm0, 224(%r9)
2958 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2959 ; SSE-NEXT: movaps %xmm0, 208(%r9)
2960 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2961 ; SSE-NEXT: movaps %xmm0, 192(%r9)
2962 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2963 ; SSE-NEXT: movaps %xmm0, 176(%r9)
2964 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2965 ; SSE-NEXT: movaps %xmm0, 160(%r9)
2966 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2967 ; SSE-NEXT: movaps %xmm0, 144(%r9)
2968 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2969 ; SSE-NEXT: movaps %xmm0, 128(%r9)
2970 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2971 ; SSE-NEXT: movaps %xmm0, 112(%r9)
2972 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2973 ; SSE-NEXT: movaps %xmm0, 96(%r9)
2974 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2975 ; SSE-NEXT: movaps %xmm0, 80(%r9)
2976 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2977 ; SSE-NEXT: movaps %xmm0, 64(%r9)
2978 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2979 ; SSE-NEXT: movaps %xmm0, 48(%r9)
2980 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2981 ; SSE-NEXT: movaps %xmm0, 32(%r9)
2982 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2983 ; SSE-NEXT: movaps %xmm0, 16(%r9)
2984 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2985 ; SSE-NEXT: movaps %xmm0, (%r9)
2986 ; SSE-NEXT: movq {{[0-9]+}}(%rsp), %rax
2987 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2988 ; SSE-NEXT: movaps %xmm0, 240(%rax)
2989 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2990 ; SSE-NEXT: movaps %xmm0, 224(%rax)
2991 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2992 ; SSE-NEXT: movaps %xmm0, 208(%rax)
2993 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2994 ; SSE-NEXT: movaps %xmm0, 192(%rax)
2995 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2996 ; SSE-NEXT: movaps %xmm0, 176(%rax)
2997 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2998 ; SSE-NEXT: movaps %xmm0, 160(%rax)
2999 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3000 ; SSE-NEXT: movaps %xmm0, 144(%rax)
3001 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3002 ; SSE-NEXT: movaps %xmm0, 128(%rax)
3003 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3004 ; SSE-NEXT: movaps %xmm0, 112(%rax)
3005 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3006 ; SSE-NEXT: movaps %xmm0, 96(%rax)
3007 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3008 ; SSE-NEXT: movaps %xmm0, 80(%rax)
3009 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3010 ; SSE-NEXT: movaps %xmm0, 64(%rax)
3011 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3012 ; SSE-NEXT: movaps %xmm0, 48(%rax)
3013 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3014 ; SSE-NEXT: movaps %xmm0, 32(%rax)
3015 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3016 ; SSE-NEXT: movaps %xmm0, 16(%rax)
3017 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3018 ; SSE-NEXT: movaps %xmm0, (%rax)
3019 ; SSE-NEXT: movq {{[0-9]+}}(%rsp), %rax
3020 ; SSE-NEXT: movaps %xmm3, 240(%rax)
3021 ; SSE-NEXT: movaps %xmm6, 224(%rax)
3022 ; SSE-NEXT: movaps %xmm8, 208(%rax)
3023 ; SSE-NEXT: movaps %xmm9, 192(%rax)
3024 ; SSE-NEXT: movaps %xmm10, 176(%rax)
3025 ; SSE-NEXT: movaps %xmm15, 160(%rax)
3026 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3027 ; SSE-NEXT: movaps %xmm0, 144(%rax)
3028 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3029 ; SSE-NEXT: movaps %xmm0, 128(%rax)
3030 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3031 ; SSE-NEXT: movaps %xmm0, 112(%rax)
3032 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3033 ; SSE-NEXT: movaps %xmm0, 96(%rax)
3034 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3035 ; SSE-NEXT: movaps %xmm0, 80(%rax)
3036 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3037 ; SSE-NEXT: movaps %xmm0, 64(%rax)
3038 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3039 ; SSE-NEXT: movaps %xmm0, 48(%rax)
3040 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3041 ; SSE-NEXT: movaps %xmm0, 32(%rax)
3042 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3043 ; SSE-NEXT: movaps %xmm0, 16(%rax)
3044 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3045 ; SSE-NEXT: movaps %xmm0, (%rax)
3046 ; SSE-NEXT: movq {{[0-9]+}}(%rsp), %rax
3047 ; SSE-NEXT: movaps %xmm2, 240(%rax)
3048 ; SSE-NEXT: movaps %xmm1, 224(%rax)
3049 ; SSE-NEXT: movaps %xmm4, 208(%rax)
3050 ; SSE-NEXT: movaps %xmm5, 192(%rax)
3051 ; SSE-NEXT: movaps %xmm7, 176(%rax)
3052 ; SSE-NEXT: movaps %xmm13, 160(%rax)
3053 ; SSE-NEXT: movaps %xmm14, 144(%rax)
3054 ; SSE-NEXT: movaps %xmm11, 128(%rax)
3055 ; SSE-NEXT: movaps %xmm12, 112(%rax)
3056 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3057 ; SSE-NEXT: movaps %xmm0, 96(%rax)
3058 ; SSE-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload
3059 ; SSE-NEXT: movaps %xmm0, 80(%rax)
3060 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3061 ; SSE-NEXT: movaps %xmm0, 64(%rax)
3062 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3063 ; SSE-NEXT: movaps %xmm0, 48(%rax)
3064 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3065 ; SSE-NEXT: movaps %xmm0, 32(%rax)
3066 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3067 ; SSE-NEXT: movaps %xmm0, 16(%rax)
3068 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3069 ; SSE-NEXT: movaps %xmm0, (%rax)
3070 ; SSE-NEXT: addq $1688, %rsp # imm = 0x698
3073 ; AVX1-ONLY-LABEL: load_i64_stride8_vf32:
3074 ; AVX1-ONLY: # %bb.0:
3075 ; AVX1-ONLY-NEXT: subq $2216, %rsp # imm = 0x8A8
3076 ; AVX1-ONLY-NEXT: vmovaps 192(%rdi), %xmm2
3077 ; AVX1-ONLY-NEXT: vmovaps 128(%rdi), %xmm3
3078 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm0 = xmm3[0],xmm2[0]
3079 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3080 ; AVX1-ONLY-NEXT: vmovaps 704(%rdi), %xmm0
3081 ; AVX1-ONLY-NEXT: vmovaps 640(%rdi), %xmm1
3082 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm4 = xmm1[0],xmm0[0]
3083 ; AVX1-ONLY-NEXT: vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3084 ; AVX1-ONLY-NEXT: vmovaps 1216(%rdi), %xmm4
3085 ; AVX1-ONLY-NEXT: vmovaps 1152(%rdi), %xmm6
3086 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm5 = xmm6[0],xmm4[0]
3087 ; AVX1-ONLY-NEXT: vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3088 ; AVX1-ONLY-NEXT: vmovaps 64(%rdi), %xmm8
3089 ; AVX1-ONLY-NEXT: vmovaps (%rdi), %xmm9
3090 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm5 = xmm9[0],xmm8[0]
3091 ; AVX1-ONLY-NEXT: vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3092 ; AVX1-ONLY-NEXT: vmovaps 576(%rdi), %xmm5
3093 ; AVX1-ONLY-NEXT: vmovaps 512(%rdi), %xmm7
3094 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm10 = xmm7[0],xmm5[0]
3095 ; AVX1-ONLY-NEXT: vmovaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3096 ; AVX1-ONLY-NEXT: vmovaps 1088(%rdi), %xmm10
3097 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm2 = xmm3[1],xmm2[1]
3098 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3099 ; AVX1-ONLY-NEXT: vmovaps 1024(%rdi), %xmm2
3100 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm3 = xmm9[1],xmm8[1]
3101 ; AVX1-ONLY-NEXT: vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3102 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm3 = xmm2[0],xmm10[0]
3103 ; AVX1-ONLY-NEXT: vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3104 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm3 = xmm6[1],xmm4[1]
3105 ; AVX1-ONLY-NEXT: vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3106 ; AVX1-ONLY-NEXT: vmovaps 1600(%rdi), %xmm3
3107 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm2 = xmm2[1],xmm10[1]
3108 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3109 ; AVX1-ONLY-NEXT: vmovaps 1728(%rdi), %xmm2
3110 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
3111 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3112 ; AVX1-ONLY-NEXT: vmovaps 1664(%rdi), %xmm0
3113 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm1 = xmm7[1],xmm5[1]
3114 ; AVX1-ONLY-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3115 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm1 = xmm0[0],xmm2[0]
3116 ; AVX1-ONLY-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3117 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
3118 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3119 ; AVX1-ONLY-NEXT: vmovaps 1536(%rdi), %xmm0
3120 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm1 = xmm0[0],xmm3[0]
3121 ; AVX1-ONLY-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3122 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm3[1]
3123 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3124 ; AVX1-ONLY-NEXT: vmovaps 448(%rdi), %xmm0
3125 ; AVX1-ONLY-NEXT: vmovaps 384(%rdi), %xmm1
3126 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
3127 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3128 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
3129 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3130 ; AVX1-ONLY-NEXT: vmovaps 320(%rdi), %xmm0
3131 ; AVX1-ONLY-NEXT: vmovaps 256(%rdi), %xmm1
3132 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
3133 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3134 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
3135 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3136 ; AVX1-ONLY-NEXT: vmovaps 1472(%rdi), %xmm0
3137 ; AVX1-ONLY-NEXT: vmovaps 1408(%rdi), %xmm1
3138 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
3139 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3140 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
3141 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3142 ; AVX1-ONLY-NEXT: vmovaps 1344(%rdi), %xmm0
3143 ; AVX1-ONLY-NEXT: vmovaps 1280(%rdi), %xmm1
3144 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
3145 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3146 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
3147 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3148 ; AVX1-ONLY-NEXT: vmovaps 960(%rdi), %xmm0
3149 ; AVX1-ONLY-NEXT: vmovaps 896(%rdi), %xmm1
3150 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
3151 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3152 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
3153 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3154 ; AVX1-ONLY-NEXT: vmovaps 832(%rdi), %xmm0
3155 ; AVX1-ONLY-NEXT: vmovaps 768(%rdi), %xmm1
3156 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
3157 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3158 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
3159 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3160 ; AVX1-ONLY-NEXT: vmovaps 1984(%rdi), %xmm0
3161 ; AVX1-ONLY-NEXT: vmovaps 1920(%rdi), %xmm1
3162 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
3163 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3164 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
3165 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3166 ; AVX1-ONLY-NEXT: vmovaps 1856(%rdi), %xmm0
3167 ; AVX1-ONLY-NEXT: vmovaps 1792(%rdi), %xmm1
3168 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
3169 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3170 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
3171 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3172 ; AVX1-ONLY-NEXT: vmovaps 192(%rdi), %ymm1
3173 ; AVX1-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3174 ; AVX1-ONLY-NEXT: vmovaps 128(%rdi), %ymm0
3175 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3176 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
3177 ; AVX1-ONLY-NEXT: vmovaps 80(%rdi), %xmm2
3178 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3179 ; AVX1-ONLY-NEXT: vmovaps 16(%rdi), %xmm1
3180 ; AVX1-ONLY-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3181 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]
3182 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3183 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3184 ; AVX1-ONLY-NEXT: vmovaps 704(%rdi), %ymm1
3185 ; AVX1-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3186 ; AVX1-ONLY-NEXT: vmovaps 640(%rdi), %ymm0
3187 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3188 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
3189 ; AVX1-ONLY-NEXT: vmovaps 592(%rdi), %xmm2
3190 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3191 ; AVX1-ONLY-NEXT: vmovaps 528(%rdi), %xmm1
3192 ; AVX1-ONLY-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3193 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]
3194 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3195 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3196 ; AVX1-ONLY-NEXT: vmovaps 1216(%rdi), %ymm1
3197 ; AVX1-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3198 ; AVX1-ONLY-NEXT: vmovaps 1152(%rdi), %ymm0
3199 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3200 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
3201 ; AVX1-ONLY-NEXT: vmovaps 1104(%rdi), %xmm2
3202 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3203 ; AVX1-ONLY-NEXT: vmovaps 1040(%rdi), %xmm1
3204 ; AVX1-ONLY-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3205 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]
3206 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3207 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3208 ; AVX1-ONLY-NEXT: vmovaps 1728(%rdi), %ymm1
3209 ; AVX1-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3210 ; AVX1-ONLY-NEXT: vmovaps 1664(%rdi), %ymm0
3211 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3212 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
3213 ; AVX1-ONLY-NEXT: vmovaps 1616(%rdi), %xmm14
3214 ; AVX1-ONLY-NEXT: vmovaps 1552(%rdi), %xmm12
3215 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm1 = xmm12[0],xmm14[0]
3216 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3217 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3218 ; AVX1-ONLY-NEXT: vmovaps 1984(%rdi), %ymm1
3219 ; AVX1-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3220 ; AVX1-ONLY-NEXT: vmovaps 1920(%rdi), %ymm0
3221 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3222 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
3223 ; AVX1-ONLY-NEXT: vmovaps 1872(%rdi), %xmm2
3224 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3225 ; AVX1-ONLY-NEXT: vmovaps 1808(%rdi), %xmm1
3226 ; AVX1-ONLY-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3227 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]
3228 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3229 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3230 ; AVX1-ONLY-NEXT: vmovaps 1472(%rdi), %ymm11
3231 ; AVX1-ONLY-NEXT: vmovaps 1408(%rdi), %ymm10
3232 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm10[0],ymm11[0],ymm10[2],ymm11[2]
3233 ; AVX1-ONLY-NEXT: vmovaps 1360(%rdi), %xmm9
3234 ; AVX1-ONLY-NEXT: vmovaps 1296(%rdi), %xmm8
3235 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm1 = xmm8[0],xmm9[0]
3236 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3237 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3238 ; AVX1-ONLY-NEXT: vmovaps 960(%rdi), %ymm7
3239 ; AVX1-ONLY-NEXT: vmovaps 896(%rdi), %ymm6
3240 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm6[0],ymm7[0],ymm6[2],ymm7[2]
3241 ; AVX1-ONLY-NEXT: vmovaps 848(%rdi), %xmm5
3242 ; AVX1-ONLY-NEXT: vmovaps 784(%rdi), %xmm4
3243 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm13 = xmm4[0],xmm5[0]
3244 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm13[0,1,2,3],ymm0[4,5,6,7]
3245 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3246 ; AVX1-ONLY-NEXT: vmovaps 448(%rdi), %ymm3
3247 ; AVX1-ONLY-NEXT: vmovaps 384(%rdi), %ymm13
3248 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm13[0],ymm3[0],ymm13[2],ymm3[2]
3249 ; AVX1-ONLY-NEXT: vmovaps 336(%rdi), %xmm2
3250 ; AVX1-ONLY-NEXT: vmovaps 272(%rdi), %xmm1
3251 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm15 = xmm1[0],xmm2[0]
3252 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm15[0,1,2,3],ymm0[4,5,6,7]
3253 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3254 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3255 ; AVX1-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
3256 ; AVX1-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
3257 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
3258 ; AVX1-ONLY-NEXT: vmovlps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload
3259 ; AVX1-ONLY-NEXT: # xmm15 = mem[0,1],xmm15[2,3]
3260 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm15[0,1,2,3],ymm0[4,5,6,7]
3261 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3262 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3263 ; AVX1-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
3264 ; AVX1-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
3265 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
3266 ; AVX1-ONLY-NEXT: vmovlps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload
3267 ; AVX1-ONLY-NEXT: # xmm15 = mem[0,1],xmm15[2,3]
3268 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm15[0,1,2,3],ymm0[4,5,6,7]
3269 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3270 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3271 ; AVX1-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
3272 ; AVX1-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
3273 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
3274 ; AVX1-ONLY-NEXT: vmovlps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload
3275 ; AVX1-ONLY-NEXT: # xmm15 = mem[0,1],xmm15[2,3]
3276 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm15[0,1,2,3],ymm0[4,5,6,7]
3277 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3278 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3279 ; AVX1-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
3280 ; AVX1-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
3281 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm12 = xmm12[1],xmm14[1]
3282 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm12[0,1,2,3],ymm0[4,5,6,7]
3283 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3284 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm13[1],ymm3[1],ymm13[3],ymm3[3]
3285 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
3286 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3287 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3288 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm6[1],ymm7[1],ymm6[3],ymm7[3]
3289 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm1 = xmm4[1],xmm5[1]
3290 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3291 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3292 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm10[1],ymm11[1],ymm10[3],ymm11[3]
3293 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm1 = xmm8[1],xmm9[1]
3294 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3295 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3296 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3297 ; AVX1-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
3298 ; AVX1-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
3299 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3300 ; AVX1-ONLY-NEXT: vmovlps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
3301 ; AVX1-ONLY-NEXT: # xmm1 = mem[0,1],xmm1[2,3]
3302 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3303 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3304 ; AVX1-ONLY-NEXT: vmovaps 480(%rdi), %xmm0
3305 ; AVX1-ONLY-NEXT: vmovaps 416(%rdi), %xmm1
3306 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
3307 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3308 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
3309 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3310 ; AVX1-ONLY-NEXT: vmovaps 352(%rdi), %xmm0
3311 ; AVX1-ONLY-NEXT: vmovaps 288(%rdi), %xmm1
3312 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
3313 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3314 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
3315 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3316 ; AVX1-ONLY-NEXT: vmovaps 992(%rdi), %xmm0
3317 ; AVX1-ONLY-NEXT: vmovaps 928(%rdi), %xmm1
3318 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
3319 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3320 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
3321 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3322 ; AVX1-ONLY-NEXT: vmovaps 864(%rdi), %xmm0
3323 ; AVX1-ONLY-NEXT: vmovaps 800(%rdi), %xmm1
3324 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
3325 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3326 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
3327 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3328 ; AVX1-ONLY-NEXT: vmovaps 1120(%rdi), %xmm0
3329 ; AVX1-ONLY-NEXT: vmovaps 1056(%rdi), %xmm1
3330 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
3331 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3332 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
3333 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3334 ; AVX1-ONLY-NEXT: vmovaps 1248(%rdi), %xmm0
3335 ; AVX1-ONLY-NEXT: vmovaps 1184(%rdi), %xmm1
3336 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
3337 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3338 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
3339 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3340 ; AVX1-ONLY-NEXT: vmovaps 1504(%rdi), %xmm0
3341 ; AVX1-ONLY-NEXT: vmovaps 1440(%rdi), %xmm1
3342 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
3343 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3344 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
3345 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3346 ; AVX1-ONLY-NEXT: vmovaps 1376(%rdi), %xmm0
3347 ; AVX1-ONLY-NEXT: vmovaps 1312(%rdi), %xmm1
3348 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
3349 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3350 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
3351 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3352 ; AVX1-ONLY-NEXT: vmovaps 736(%rdi), %xmm0
3353 ; AVX1-ONLY-NEXT: vmovaps 672(%rdi), %xmm1
3354 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
3355 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3356 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
3357 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3358 ; AVX1-ONLY-NEXT: vmovaps 608(%rdi), %xmm0
3359 ; AVX1-ONLY-NEXT: vmovaps 544(%rdi), %xmm1
3360 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
3361 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3362 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
3363 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3364 ; AVX1-ONLY-NEXT: vmovaps 224(%rdi), %xmm0
3365 ; AVX1-ONLY-NEXT: vmovaps 160(%rdi), %xmm1
3366 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
3367 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3368 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
3369 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3370 ; AVX1-ONLY-NEXT: vmovaps 96(%rdi), %xmm0
3371 ; AVX1-ONLY-NEXT: vmovaps 32(%rdi), %xmm1
3372 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
3373 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3374 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
3375 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3376 ; AVX1-ONLY-NEXT: vmovaps 1632(%rdi), %xmm0
3377 ; AVX1-ONLY-NEXT: vmovaps 1568(%rdi), %xmm1
3378 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
3379 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3380 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
3381 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3382 ; AVX1-ONLY-NEXT: vmovaps 1760(%rdi), %xmm0
3383 ; AVX1-ONLY-NEXT: vmovaps 1696(%rdi), %xmm1
3384 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
3385 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3386 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
3387 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3388 ; AVX1-ONLY-NEXT: vmovaps 1888(%rdi), %xmm0
3389 ; AVX1-ONLY-NEXT: vmovaps 1824(%rdi), %xmm1
3390 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
3391 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3392 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
3393 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3394 ; AVX1-ONLY-NEXT: vmovaps 2016(%rdi), %xmm0
3395 ; AVX1-ONLY-NEXT: vmovaps 1952(%rdi), %xmm1
3396 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
3397 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3398 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
3399 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3400 ; AVX1-ONLY-NEXT: vmovaps 224(%rdi), %ymm1
3401 ; AVX1-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3402 ; AVX1-ONLY-NEXT: vmovaps 160(%rdi), %ymm0
3403 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3404 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
3405 ; AVX1-ONLY-NEXT: vmovaps 112(%rdi), %xmm2
3406 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3407 ; AVX1-ONLY-NEXT: vmovaps 48(%rdi), %xmm1
3408 ; AVX1-ONLY-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3409 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]
3410 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3411 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3412 ; AVX1-ONLY-NEXT: vmovaps 480(%rdi), %ymm1
3413 ; AVX1-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3414 ; AVX1-ONLY-NEXT: vmovaps 416(%rdi), %ymm0
3415 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3416 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
3417 ; AVX1-ONLY-NEXT: vmovaps 368(%rdi), %xmm2
3418 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3419 ; AVX1-ONLY-NEXT: vmovaps 304(%rdi), %xmm1
3420 ; AVX1-ONLY-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3421 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]
3422 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3423 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3424 ; AVX1-ONLY-NEXT: vmovaps 736(%rdi), %ymm1
3425 ; AVX1-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3426 ; AVX1-ONLY-NEXT: vmovaps 672(%rdi), %ymm0
3427 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3428 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
3429 ; AVX1-ONLY-NEXT: vmovaps 624(%rdi), %xmm2
3430 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3431 ; AVX1-ONLY-NEXT: vmovaps 560(%rdi), %xmm1
3432 ; AVX1-ONLY-NEXT: vmovaps %xmm1, (%rsp) # 16-byte Spill
3433 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]
3434 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3435 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3436 ; AVX1-ONLY-NEXT: vmovaps 992(%rdi), %ymm1
3437 ; AVX1-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3438 ; AVX1-ONLY-NEXT: vmovaps 928(%rdi), %ymm0
3439 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3440 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
3441 ; AVX1-ONLY-NEXT: vmovaps 880(%rdi), %xmm2
3442 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3443 ; AVX1-ONLY-NEXT: vmovaps 816(%rdi), %xmm1
3444 ; AVX1-ONLY-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3445 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]
3446 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3447 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3448 ; AVX1-ONLY-NEXT: vmovaps 1248(%rdi), %ymm1
3449 ; AVX1-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3450 ; AVX1-ONLY-NEXT: vmovaps 1184(%rdi), %ymm0
3451 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3452 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
3453 ; AVX1-ONLY-NEXT: vmovaps 1136(%rdi), %xmm14
3454 ; AVX1-ONLY-NEXT: vmovaps 1072(%rdi), %xmm13
3455 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm1 = xmm13[0],xmm14[0]
3456 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3457 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3458 ; AVX1-ONLY-NEXT: vmovaps 1504(%rdi), %ymm12
3459 ; AVX1-ONLY-NEXT: vmovaps 1440(%rdi), %ymm11
3460 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm11[0],ymm12[0],ymm11[2],ymm12[2]
3461 ; AVX1-ONLY-NEXT: vmovaps 1392(%rdi), %xmm10
3462 ; AVX1-ONLY-NEXT: vmovaps 1328(%rdi), %xmm9
3463 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm1 = xmm9[0],xmm10[0]
3464 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3465 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3466 ; AVX1-ONLY-NEXT: vmovaps 1760(%rdi), %ymm8
3467 ; AVX1-ONLY-NEXT: vmovaps 1696(%rdi), %ymm7
3468 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm7[0],ymm8[0],ymm7[2],ymm8[2]
3469 ; AVX1-ONLY-NEXT: vmovaps 1648(%rdi), %xmm6
3470 ; AVX1-ONLY-NEXT: vmovaps 1584(%rdi), %xmm5
3471 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm1 = xmm5[0],xmm6[0]
3472 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3473 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3474 ; AVX1-ONLY-NEXT: vmovaps 2016(%rdi), %ymm4
3475 ; AVX1-ONLY-NEXT: vmovaps 1952(%rdi), %ymm3
3476 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm3[0],ymm4[0],ymm3[2],ymm4[2]
3477 ; AVX1-ONLY-NEXT: vmovaps 1904(%rdi), %xmm2
3478 ; AVX1-ONLY-NEXT: vmovaps 1840(%rdi), %xmm1
3479 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm15 = xmm1[0],xmm2[0]
3480 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm15[0,1,2,3],ymm0[4,5,6,7]
3481 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3482 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3483 ; AVX1-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
3484 ; AVX1-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
3485 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
3486 ; AVX1-ONLY-NEXT: vmovlps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload
3487 ; AVX1-ONLY-NEXT: # xmm15 = mem[0,1],xmm15[2,3]
3488 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm15[0,1,2,3],ymm0[4,5,6,7]
3489 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3490 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3491 ; AVX1-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
3492 ; AVX1-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
3493 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
3494 ; AVX1-ONLY-NEXT: vmovlps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload
3495 ; AVX1-ONLY-NEXT: # xmm15 = mem[0,1],xmm15[2,3]
3496 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm15[0,1,2,3],ymm0[4,5,6,7]
3497 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3498 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3499 ; AVX1-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
3500 ; AVX1-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
3501 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
3502 ; AVX1-ONLY-NEXT: vmovlps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload
3503 ; AVX1-ONLY-NEXT: # xmm15 = mem[0,1],xmm15[2,3]
3504 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm15[0,1,2,3],ymm0[4,5,6,7]
3505 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3506 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3507 ; AVX1-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
3508 ; AVX1-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
3509 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
3510 ; AVX1-ONLY-NEXT: vmovlps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload
3511 ; AVX1-ONLY-NEXT: # xmm15 = mem[0,1],xmm15[2,3]
3512 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm15 = ymm15[0,1,2,3],ymm0[4,5,6,7]
3513 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3514 ; AVX1-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
3515 ; AVX1-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
3516 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm13 = xmm13[1],xmm14[1]
3517 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm13 = ymm13[0,1,2,3],ymm0[4,5,6,7]
3518 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm11[1],ymm12[1],ymm11[3],ymm12[3]
3519 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm9 = xmm9[1],xmm10[1]
3520 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3],ymm0[4,5,6,7]
3521 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm7[1],ymm8[1],ymm7[3],ymm8[3]
3522 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm5 = xmm5[1],xmm6[1]
3523 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm0[4,5,6,7]
3524 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm3[1],ymm4[1],ymm3[3],ymm4[3]
3525 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
3526 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3527 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3528 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 240(%rsi)
3529 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3530 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 224(%rsi)
3531 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3532 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 32(%rsi)
3533 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3534 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 160(%rsi)
3535 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3536 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 96(%rsi)
3537 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3538 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 48(%rsi)
3539 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3540 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 176(%rsi)
3541 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3542 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 112(%rsi)
3543 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3544 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 208(%rsi)
3545 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3546 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 192(%rsi)
3547 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3548 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 128(%rsi)
3549 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3550 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 64(%rsi)
3551 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3552 ; AVX1-ONLY-NEXT: vmovaps %xmm1, (%rsi)
3553 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3554 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 144(%rsi)
3555 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3556 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 80(%rsi)
3557 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3558 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 16(%rsi)
3559 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3560 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 224(%rdx)
3561 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3562 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 240(%rdx)
3563 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3564 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 96(%rdx)
3565 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3566 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 112(%rdx)
3567 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3568 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 160(%rdx)
3569 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3570 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 176(%rdx)
3571 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3572 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 32(%rdx)
3573 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3574 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 48(%rdx)
3575 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3576 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 192(%rdx)
3577 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3578 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 208(%rdx)
3579 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3580 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 64(%rdx)
3581 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3582 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 80(%rdx)
3583 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3584 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 128(%rdx)
3585 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3586 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 144(%rdx)
3587 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3588 ; AVX1-ONLY-NEXT: vmovaps %xmm1, (%rdx)
3589 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3590 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 16(%rdx)
3591 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3592 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 32(%rcx)
3593 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3594 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 96(%rcx)
3595 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3596 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 160(%rcx)
3597 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3598 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 224(%rcx)
3599 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3600 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 192(%rcx)
3601 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3602 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 128(%rcx)
3603 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3604 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 64(%rcx)
3605 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3606 ; AVX1-ONLY-NEXT: vmovaps %ymm1, (%rcx)
3607 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3608 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 224(%r8)
3609 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3610 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 160(%r8)
3611 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3612 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 96(%r8)
3613 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3614 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 32(%r8)
3615 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3616 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 192(%r8)
3617 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3618 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 128(%r8)
3619 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3620 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 64(%r8)
3621 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3622 ; AVX1-ONLY-NEXT: vmovaps %ymm1, (%r8)
3623 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3624 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 240(%r9)
3625 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3626 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 224(%r9)
3627 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3628 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 48(%r9)
3629 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3630 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 160(%r9)
3631 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3632 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 176(%r9)
3633 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3634 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 96(%r9)
3635 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3636 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 112(%r9)
3637 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3638 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 32(%r9)
3639 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3640 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 16(%r9)
3641 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3642 ; AVX1-ONLY-NEXT: vmovaps %xmm1, (%r9)
3643 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3644 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 192(%r9)
3645 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3646 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 208(%r9)
3647 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3648 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 128(%r9)
3649 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3650 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 144(%r9)
3651 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3652 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 64(%r9)
3653 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3654 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 80(%r9)
3655 ; AVX1-ONLY-NEXT: movq {{[0-9]+}}(%rsp), %rax
3656 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3657 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 240(%rax)
3658 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3659 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 224(%rax)
3660 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3661 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 208(%rax)
3662 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3663 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 192(%rax)
3664 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3665 ; AVX1-ONLY-NEXT: vmovaps %xmm1, (%rax)
3666 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3667 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 16(%rax)
3668 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3669 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 64(%rax)
3670 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3671 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 80(%rax)
3672 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3673 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 160(%rax)
3674 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3675 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 176(%rax)
3676 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3677 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 144(%rax)
3678 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3679 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 128(%rax)
3680 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3681 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 96(%rax)
3682 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3683 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 112(%rax)
3684 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3685 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 32(%rax)
3686 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3687 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 48(%rax)
3688 ; AVX1-ONLY-NEXT: movq {{[0-9]+}}(%rsp), %rax
3689 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3690 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 224(%rax)
3691 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3692 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 192(%rax)
3693 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3694 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 160(%rax)
3695 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3696 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 128(%rax)
3697 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3698 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 96(%rax)
3699 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3700 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 64(%rax)
3701 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3702 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 32(%rax)
3703 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3704 ; AVX1-ONLY-NEXT: vmovaps %ymm1, (%rax)
3705 ; AVX1-ONLY-NEXT: movq {{[0-9]+}}(%rsp), %rax
3706 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 224(%rax)
3707 ; AVX1-ONLY-NEXT: vmovaps %ymm5, 192(%rax)
3708 ; AVX1-ONLY-NEXT: vmovaps %ymm9, 160(%rax)
3709 ; AVX1-ONLY-NEXT: vmovaps %ymm13, 128(%rax)
3710 ; AVX1-ONLY-NEXT: vmovaps %ymm15, 96(%rax)
3711 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3712 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 64(%rax)
3713 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3714 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 32(%rax)
3715 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3716 ; AVX1-ONLY-NEXT: vmovaps %ymm0, (%rax)
3717 ; AVX1-ONLY-NEXT: addq $2216, %rsp # imm = 0x8A8
3718 ; AVX1-ONLY-NEXT: vzeroupper
3719 ; AVX1-ONLY-NEXT: retq
3721 ; AVX2-ONLY-LABEL: load_i64_stride8_vf32:
3722 ; AVX2-ONLY: # %bb.0:
3723 ; AVX2-ONLY-NEXT: subq $2248, %rsp # imm = 0x8C8
3724 ; AVX2-ONLY-NEXT: vmovaps 320(%rdi), %xmm0
3725 ; AVX2-ONLY-NEXT: vinsertf128 $1, 448(%rdi), %ymm0, %ymm0
3726 ; AVX2-ONLY-NEXT: vmovaps 256(%rdi), %xmm1
3727 ; AVX2-ONLY-NEXT: vinsertf128 $1, 384(%rdi), %ymm1, %ymm1
3728 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
3729 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3730 ; AVX2-ONLY-NEXT: vmovaps 832(%rdi), %xmm2
3731 ; AVX2-ONLY-NEXT: vinsertf128 $1, 960(%rdi), %ymm2, %ymm2
3732 ; AVX2-ONLY-NEXT: vmovaps 768(%rdi), %xmm3
3733 ; AVX2-ONLY-NEXT: vinsertf128 $1, 896(%rdi), %ymm3, %ymm3
3734 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
3735 ; AVX2-ONLY-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3736 ; AVX2-ONLY-NEXT: vmovaps 1344(%rdi), %xmm4
3737 ; AVX2-ONLY-NEXT: vinsertf128 $1, 1472(%rdi), %ymm4, %ymm4
3738 ; AVX2-ONLY-NEXT: vmovaps 1280(%rdi), %xmm5
3739 ; AVX2-ONLY-NEXT: vinsertf128 $1, 1408(%rdi), %ymm5, %ymm5
3740 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm6 = ymm5[0],ymm4[0],ymm5[2],ymm4[2]
3741 ; AVX2-ONLY-NEXT: vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3742 ; AVX2-ONLY-NEXT: vmovaps 1856(%rdi), %xmm6
3743 ; AVX2-ONLY-NEXT: vinsertf128 $1, 1984(%rdi), %ymm6, %ymm6
3744 ; AVX2-ONLY-NEXT: vmovaps 1792(%rdi), %xmm7
3745 ; AVX2-ONLY-NEXT: vinsertf128 $1, 1920(%rdi), %ymm7, %ymm7
3746 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm8 = ymm7[0],ymm6[0],ymm7[2],ymm6[2]
3747 ; AVX2-ONLY-NEXT: vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3748 ; AVX2-ONLY-NEXT: vmovaps (%rdi), %xmm9
3749 ; AVX2-ONLY-NEXT: vmovaps 64(%rdi), %xmm8
3750 ; AVX2-ONLY-NEXT: vinsertf128 $1, 192(%rdi), %ymm8, %ymm8
3751 ; AVX2-ONLY-NEXT: vinsertf128 $1, 128(%rdi), %ymm9, %ymm9
3752 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm10 = ymm9[0],ymm8[0],ymm9[2],ymm8[2]
3753 ; AVX2-ONLY-NEXT: vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3754 ; AVX2-ONLY-NEXT: vmovaps 576(%rdi), %xmm10
3755 ; AVX2-ONLY-NEXT: vinsertf128 $1, 704(%rdi), %ymm10, %ymm10
3756 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
3757 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3758 ; AVX2-ONLY-NEXT: vmovaps 512(%rdi), %xmm0
3759 ; AVX2-ONLY-NEXT: vinsertf128 $1, 640(%rdi), %ymm0, %ymm0
3760 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm3[1],ymm2[1],ymm3[3],ymm2[3]
3761 ; AVX2-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3762 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm0[0],ymm10[0],ymm0[2],ymm10[2]
3763 ; AVX2-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3764 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm5[1],ymm4[1],ymm5[3],ymm4[3]
3765 ; AVX2-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3766 ; AVX2-ONLY-NEXT: vmovaps 1088(%rdi), %xmm1
3767 ; AVX2-ONLY-NEXT: vinsertf128 $1, 1216(%rdi), %ymm1, %ymm1
3768 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm7[1],ymm6[1],ymm7[3],ymm6[3]
3769 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3770 ; AVX2-ONLY-NEXT: vmovaps 1024(%rdi), %xmm2
3771 ; AVX2-ONLY-NEXT: vinsertf128 $1, 1152(%rdi), %ymm2, %ymm2
3772 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm3 = ymm9[1],ymm8[1],ymm9[3],ymm8[3]
3773 ; AVX2-ONLY-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3774 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm3 = ymm2[0],ymm1[0],ymm2[2],ymm1[2]
3775 ; AVX2-ONLY-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3776 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm10[1],ymm0[3],ymm10[3]
3777 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3778 ; AVX2-ONLY-NEXT: vmovaps 1600(%rdi), %xmm0
3779 ; AVX2-ONLY-NEXT: vinsertf128 $1, 1728(%rdi), %ymm0, %ymm0
3780 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm1[1],ymm2[3],ymm1[3]
3781 ; AVX2-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3782 ; AVX2-ONLY-NEXT: vmovaps 1536(%rdi), %xmm1
3783 ; AVX2-ONLY-NEXT: vinsertf128 $1, 1664(%rdi), %ymm1, %ymm1
3784 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
3785 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3786 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
3787 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3788 ; AVX2-ONLY-NEXT: vmovaps 320(%rdi), %ymm2
3789 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3790 ; AVX2-ONLY-NEXT: vmovaps 256(%rdi), %ymm3
3791 ; AVX2-ONLY-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3792 ; AVX2-ONLY-NEXT: vmovaps 448(%rdi), %ymm1
3793 ; AVX2-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3794 ; AVX2-ONLY-NEXT: vmovaps 384(%rdi), %ymm0
3795 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3796 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
3797 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
3798 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
3799 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3800 ; AVX2-ONLY-NEXT: vmovaps 832(%rdi), %ymm2
3801 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3802 ; AVX2-ONLY-NEXT: vmovaps 768(%rdi), %ymm3
3803 ; AVX2-ONLY-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3804 ; AVX2-ONLY-NEXT: vmovaps 960(%rdi), %ymm1
3805 ; AVX2-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3806 ; AVX2-ONLY-NEXT: vmovaps 896(%rdi), %ymm0
3807 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3808 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
3809 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
3810 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
3811 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3812 ; AVX2-ONLY-NEXT: vmovaps 1344(%rdi), %ymm2
3813 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3814 ; AVX2-ONLY-NEXT: vmovaps 1280(%rdi), %ymm3
3815 ; AVX2-ONLY-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3816 ; AVX2-ONLY-NEXT: vmovaps 1472(%rdi), %ymm1
3817 ; AVX2-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3818 ; AVX2-ONLY-NEXT: vmovaps 1408(%rdi), %ymm0
3819 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3820 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
3821 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
3822 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
3823 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3824 ; AVX2-ONLY-NEXT: vmovaps 1856(%rdi), %ymm2
3825 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3826 ; AVX2-ONLY-NEXT: vmovaps 1792(%rdi), %ymm3
3827 ; AVX2-ONLY-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3828 ; AVX2-ONLY-NEXT: vmovaps 1984(%rdi), %ymm1
3829 ; AVX2-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3830 ; AVX2-ONLY-NEXT: vmovaps 1920(%rdi), %ymm0
3831 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3832 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
3833 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
3834 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
3835 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3836 ; AVX2-ONLY-NEXT: vmovaps 64(%rdi), %ymm2
3837 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3838 ; AVX2-ONLY-NEXT: vmovaps (%rdi), %ymm1
3839 ; AVX2-ONLY-NEXT: vmovups %ymm1, (%rsp) # 32-byte Spill
3840 ; AVX2-ONLY-NEXT: vmovaps 192(%rdi), %ymm14
3841 ; AVX2-ONLY-NEXT: vmovaps 128(%rdi), %ymm12
3842 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm12[0],ymm14[0],ymm12[2],ymm14[2]
3843 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
3844 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
3845 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3846 ; AVX2-ONLY-NEXT: vmovaps 576(%rdi), %ymm11
3847 ; AVX2-ONLY-NEXT: vmovaps 512(%rdi), %ymm10
3848 ; AVX2-ONLY-NEXT: vmovaps 704(%rdi), %ymm8
3849 ; AVX2-ONLY-NEXT: vmovaps 640(%rdi), %ymm7
3850 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm7[0],ymm8[0],ymm7[2],ymm8[2]
3851 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm9 = ymm10[0],ymm11[0],ymm10[2],ymm11[2]
3852 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm9[2,3],ymm0[2,3]
3853 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3854 ; AVX2-ONLY-NEXT: vmovaps 1088(%rdi), %ymm6
3855 ; AVX2-ONLY-NEXT: vmovaps 1024(%rdi), %ymm9
3856 ; AVX2-ONLY-NEXT: vmovaps 1216(%rdi), %ymm5
3857 ; AVX2-ONLY-NEXT: vmovaps 1152(%rdi), %ymm3
3858 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm3[0],ymm5[0],ymm3[2],ymm5[2]
3859 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm13 = ymm9[0],ymm6[0],ymm9[2],ymm6[2]
3860 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm13[2,3],ymm0[2,3]
3861 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3862 ; AVX2-ONLY-NEXT: vmovaps 1600(%rdi), %ymm4
3863 ; AVX2-ONLY-NEXT: vmovaps 1536(%rdi), %ymm13
3864 ; AVX2-ONLY-NEXT: vmovaps 1728(%rdi), %ymm2
3865 ; AVX2-ONLY-NEXT: vmovaps 1664(%rdi), %ymm1
3866 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
3867 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm15 = ymm13[0],ymm4[0],ymm13[2],ymm4[2]
3868 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm15[2,3],ymm0[2,3]
3869 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3870 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3871 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
3872 ; AVX2-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
3873 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload
3874 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm15 # 32-byte Folded Reload
3875 ; AVX2-ONLY-NEXT: # ymm15 = ymm15[1],mem[1],ymm15[3],mem[3]
3876 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm15[2,3],ymm0[2,3]
3877 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3878 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3879 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
3880 ; AVX2-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
3881 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload
3882 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm15 # 32-byte Folded Reload
3883 ; AVX2-ONLY-NEXT: # ymm15 = ymm15[1],mem[1],ymm15[3],mem[3]
3884 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm15[2,3],ymm0[2,3]
3885 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3886 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3887 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
3888 ; AVX2-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
3889 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload
3890 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm15 # 32-byte Folded Reload
3891 ; AVX2-ONLY-NEXT: # ymm15 = ymm15[1],mem[1],ymm15[3],mem[3]
3892 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm15[2,3],ymm0[2,3]
3893 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3894 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3895 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
3896 ; AVX2-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
3897 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload
3898 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm15 # 32-byte Folded Reload
3899 ; AVX2-ONLY-NEXT: # ymm15 = ymm15[1],mem[1],ymm15[3],mem[3]
3900 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm15[2,3],ymm0[2,3]
3901 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3902 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm12[1],ymm14[1],ymm12[3],ymm14[3]
3903 ; AVX2-ONLY-NEXT: vmovups (%rsp), %ymm12 # 32-byte Reload
3904 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm12 # 32-byte Folded Reload
3905 ; AVX2-ONLY-NEXT: # ymm12 = ymm12[1],mem[1],ymm12[3],mem[3]
3906 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm12[2,3],ymm0[2,3]
3907 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3908 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm7[1],ymm8[1],ymm7[3],ymm8[3]
3909 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm7 = ymm10[1],ymm11[1],ymm10[3],ymm11[3]
3910 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm7[2,3],ymm0[2,3]
3911 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3912 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm3[1],ymm5[1],ymm3[3],ymm5[3]
3913 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm3 = ymm9[1],ymm6[1],ymm9[3],ymm6[3]
3914 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm3[2,3],ymm0[2,3]
3915 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3916 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
3917 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm13[1],ymm4[1],ymm13[3],ymm4[3]
3918 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
3919 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3920 ; AVX2-ONLY-NEXT: vmovaps 96(%rdi), %xmm0
3921 ; AVX2-ONLY-NEXT: vinsertf128 $1, 224(%rdi), %ymm0, %ymm0
3922 ; AVX2-ONLY-NEXT: vmovaps 32(%rdi), %xmm1
3923 ; AVX2-ONLY-NEXT: vinsertf128 $1, 160(%rdi), %ymm1, %ymm1
3924 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
3925 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3926 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
3927 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3928 ; AVX2-ONLY-NEXT: vmovaps 352(%rdi), %xmm0
3929 ; AVX2-ONLY-NEXT: vinsertf128 $1, 480(%rdi), %ymm0, %ymm0
3930 ; AVX2-ONLY-NEXT: vmovaps 288(%rdi), %xmm1
3931 ; AVX2-ONLY-NEXT: vinsertf128 $1, 416(%rdi), %ymm1, %ymm1
3932 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
3933 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3934 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
3935 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3936 ; AVX2-ONLY-NEXT: vmovaps 608(%rdi), %xmm0
3937 ; AVX2-ONLY-NEXT: vinsertf128 $1, 736(%rdi), %ymm0, %ymm0
3938 ; AVX2-ONLY-NEXT: vmovaps 544(%rdi), %xmm1
3939 ; AVX2-ONLY-NEXT: vinsertf128 $1, 672(%rdi), %ymm1, %ymm1
3940 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
3941 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3942 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
3943 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3944 ; AVX2-ONLY-NEXT: vmovaps 864(%rdi), %xmm0
3945 ; AVX2-ONLY-NEXT: vinsertf128 $1, 992(%rdi), %ymm0, %ymm0
3946 ; AVX2-ONLY-NEXT: vmovaps 800(%rdi), %xmm1
3947 ; AVX2-ONLY-NEXT: vinsertf128 $1, 928(%rdi), %ymm1, %ymm1
3948 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
3949 ; AVX2-ONLY-NEXT: vmovups %ymm2, (%rsp) # 32-byte Spill
3950 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
3951 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3952 ; AVX2-ONLY-NEXT: vmovaps 1120(%rdi), %xmm0
3953 ; AVX2-ONLY-NEXT: vinsertf128 $1, 1248(%rdi), %ymm0, %ymm0
3954 ; AVX2-ONLY-NEXT: vmovaps 1056(%rdi), %xmm1
3955 ; AVX2-ONLY-NEXT: vinsertf128 $1, 1184(%rdi), %ymm1, %ymm1
3956 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
3957 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3958 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
3959 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3960 ; AVX2-ONLY-NEXT: vmovaps 1376(%rdi), %xmm0
3961 ; AVX2-ONLY-NEXT: vinsertf128 $1, 1504(%rdi), %ymm0, %ymm0
3962 ; AVX2-ONLY-NEXT: vmovaps 1312(%rdi), %xmm1
3963 ; AVX2-ONLY-NEXT: vinsertf128 $1, 1440(%rdi), %ymm1, %ymm1
3964 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
3965 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3966 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
3967 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3968 ; AVX2-ONLY-NEXT: vmovaps 1632(%rdi), %xmm0
3969 ; AVX2-ONLY-NEXT: vinsertf128 $1, 1760(%rdi), %ymm0, %ymm0
3970 ; AVX2-ONLY-NEXT: vmovaps 1568(%rdi), %xmm1
3971 ; AVX2-ONLY-NEXT: vinsertf128 $1, 1696(%rdi), %ymm1, %ymm1
3972 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
3973 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3974 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
3975 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3976 ; AVX2-ONLY-NEXT: vmovaps 1888(%rdi), %xmm0
3977 ; AVX2-ONLY-NEXT: vinsertf128 $1, 2016(%rdi), %ymm0, %ymm0
3978 ; AVX2-ONLY-NEXT: vmovaps 1824(%rdi), %xmm1
3979 ; AVX2-ONLY-NEXT: vinsertf128 $1, 1952(%rdi), %ymm1, %ymm1
3980 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
3981 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3982 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
3983 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3984 ; AVX2-ONLY-NEXT: vmovaps 96(%rdi), %ymm2
3985 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3986 ; AVX2-ONLY-NEXT: vmovaps 32(%rdi), %ymm3
3987 ; AVX2-ONLY-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3988 ; AVX2-ONLY-NEXT: vmovaps 224(%rdi), %ymm1
3989 ; AVX2-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3990 ; AVX2-ONLY-NEXT: vmovaps 160(%rdi), %ymm0
3991 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3992 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
3993 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
3994 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
3995 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3996 ; AVX2-ONLY-NEXT: vmovaps 352(%rdi), %ymm2
3997 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3998 ; AVX2-ONLY-NEXT: vmovaps 288(%rdi), %ymm3
3999 ; AVX2-ONLY-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4000 ; AVX2-ONLY-NEXT: vmovaps 480(%rdi), %ymm1
4001 ; AVX2-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4002 ; AVX2-ONLY-NEXT: vmovaps 416(%rdi), %ymm0
4003 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4004 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
4005 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
4006 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
4007 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4008 ; AVX2-ONLY-NEXT: vmovaps 608(%rdi), %ymm2
4009 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4010 ; AVX2-ONLY-NEXT: vmovaps 544(%rdi), %ymm3
4011 ; AVX2-ONLY-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4012 ; AVX2-ONLY-NEXT: vmovaps 736(%rdi), %ymm1
4013 ; AVX2-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4014 ; AVX2-ONLY-NEXT: vmovaps 672(%rdi), %ymm0
4015 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4016 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
4017 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
4018 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
4019 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4020 ; AVX2-ONLY-NEXT: vmovaps 864(%rdi), %ymm2
4021 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4022 ; AVX2-ONLY-NEXT: vmovaps 800(%rdi), %ymm3
4023 ; AVX2-ONLY-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4024 ; AVX2-ONLY-NEXT: vmovaps 992(%rdi), %ymm1
4025 ; AVX2-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4026 ; AVX2-ONLY-NEXT: vmovaps 928(%rdi), %ymm0
4027 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4028 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
4029 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
4030 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
4031 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4032 ; AVX2-ONLY-NEXT: vmovaps 1120(%rdi), %ymm2
4033 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4034 ; AVX2-ONLY-NEXT: vmovaps 1056(%rdi), %ymm1
4035 ; AVX2-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4036 ; AVX2-ONLY-NEXT: vmovaps 1248(%rdi), %ymm12
4037 ; AVX2-ONLY-NEXT: vmovaps 1184(%rdi), %ymm11
4038 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm11[0],ymm12[0],ymm11[2],ymm12[2]
4039 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
4040 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
4041 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4042 ; AVX2-ONLY-NEXT: vmovaps 1376(%rdi), %ymm10
4043 ; AVX2-ONLY-NEXT: vmovaps 1312(%rdi), %ymm9
4044 ; AVX2-ONLY-NEXT: vmovaps 1504(%rdi), %ymm8
4045 ; AVX2-ONLY-NEXT: vmovaps 1440(%rdi), %ymm7
4046 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm7[0],ymm8[0],ymm7[2],ymm8[2]
4047 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm15 = ymm9[0],ymm10[0],ymm9[2],ymm10[2]
4048 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm15[2,3],ymm0[2,3]
4049 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4050 ; AVX2-ONLY-NEXT: vmovaps 1632(%rdi), %ymm6
4051 ; AVX2-ONLY-NEXT: vmovaps 1568(%rdi), %ymm15
4052 ; AVX2-ONLY-NEXT: vmovaps 1760(%rdi), %ymm5
4053 ; AVX2-ONLY-NEXT: vmovaps 1696(%rdi), %ymm3
4054 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm3[0],ymm5[0],ymm3[2],ymm5[2]
4055 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm14 = ymm15[0],ymm6[0],ymm15[2],ymm6[2]
4056 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm14[2,3],ymm0[2,3]
4057 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4058 ; AVX2-ONLY-NEXT: vmovaps 1888(%rdi), %ymm4
4059 ; AVX2-ONLY-NEXT: vmovaps 1824(%rdi), %ymm14
4060 ; AVX2-ONLY-NEXT: vmovaps 2016(%rdi), %ymm2
4061 ; AVX2-ONLY-NEXT: vmovaps 1952(%rdi), %ymm1
4062 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
4063 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm13 = ymm14[0],ymm4[0],ymm14[2],ymm4[2]
4064 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm13[2,3],ymm0[2,3]
4065 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4066 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4067 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
4068 ; AVX2-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
4069 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
4070 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm13 # 32-byte Folded Reload
4071 ; AVX2-ONLY-NEXT: # ymm13 = ymm13[1],mem[1],ymm13[3],mem[3]
4072 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm13[2,3],ymm0[2,3]
4073 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4074 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4075 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
4076 ; AVX2-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
4077 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
4078 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm13 # 32-byte Folded Reload
4079 ; AVX2-ONLY-NEXT: # ymm13 = ymm13[1],mem[1],ymm13[3],mem[3]
4080 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm13[2,3],ymm0[2,3]
4081 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4082 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4083 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
4084 ; AVX2-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
4085 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
4086 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm13 # 32-byte Folded Reload
4087 ; AVX2-ONLY-NEXT: # ymm13 = ymm13[1],mem[1],ymm13[3],mem[3]
4088 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm13[2,3],ymm0[2,3]
4089 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4090 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4091 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
4092 ; AVX2-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
4093 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
4094 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm13 # 32-byte Folded Reload
4095 ; AVX2-ONLY-NEXT: # ymm13 = ymm13[1],mem[1],ymm13[3],mem[3]
4096 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm13 = ymm13[2,3],ymm0[2,3]
4097 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm11[1],ymm12[1],ymm11[3],ymm12[3]
4098 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload
4099 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm11 # 32-byte Folded Reload
4100 ; AVX2-ONLY-NEXT: # ymm11 = ymm11[1],mem[1],ymm11[3],mem[3]
4101 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm11 = ymm11[2,3],ymm0[2,3]
4102 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm7[1],ymm8[1],ymm7[3],ymm8[3]
4103 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm7 = ymm9[1],ymm10[1],ymm9[3],ymm10[3]
4104 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm7 = ymm7[2,3],ymm0[2,3]
4105 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm3[1],ymm5[1],ymm3[3],ymm5[3]
4106 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm3 = ymm15[1],ymm6[1],ymm15[3],ymm6[3]
4107 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm3 = ymm3[2,3],ymm0[2,3]
4108 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
4109 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm14[1],ymm4[1],ymm14[3],ymm4[3]
4110 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
4111 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4112 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 192(%rsi)
4113 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4114 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 128(%rsi)
4115 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4116 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 64(%rsi)
4117 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4118 ; AVX2-ONLY-NEXT: vmovaps %ymm1, (%rsi)
4119 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4120 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 224(%rsi)
4121 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4122 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 160(%rsi)
4123 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4124 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 96(%rsi)
4125 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4126 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 32(%rsi)
4127 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4128 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 192(%rdx)
4129 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4130 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 128(%rdx)
4131 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4132 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 64(%rdx)
4133 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4134 ; AVX2-ONLY-NEXT: vmovaps %ymm1, (%rdx)
4135 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4136 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 224(%rdx)
4137 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4138 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 160(%rdx)
4139 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4140 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 96(%rdx)
4141 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4142 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 32(%rdx)
4143 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4144 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 192(%rcx)
4145 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4146 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 128(%rcx)
4147 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4148 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 64(%rcx)
4149 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4150 ; AVX2-ONLY-NEXT: vmovaps %ymm1, (%rcx)
4151 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4152 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 224(%rcx)
4153 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4154 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 160(%rcx)
4155 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4156 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 96(%rcx)
4157 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4158 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 32(%rcx)
4159 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4160 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 192(%r8)
4161 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4162 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 128(%r8)
4163 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4164 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 64(%r8)
4165 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4166 ; AVX2-ONLY-NEXT: vmovaps %ymm1, (%r8)
4167 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4168 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 224(%r8)
4169 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4170 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 160(%r8)
4171 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4172 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 96(%r8)
4173 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4174 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 32(%r8)
4175 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4176 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 224(%r9)
4177 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4178 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 192(%r9)
4179 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4180 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 160(%r9)
4181 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4182 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 128(%r9)
4183 ; AVX2-ONLY-NEXT: vmovups (%rsp), %ymm1 # 32-byte Reload
4184 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 96(%r9)
4185 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4186 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 64(%r9)
4187 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4188 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 32(%r9)
4189 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4190 ; AVX2-ONLY-NEXT: vmovaps %ymm1, (%r9)
4191 ; AVX2-ONLY-NEXT: movq {{[0-9]+}}(%rsp), %rax
4192 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4193 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 224(%rax)
4194 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4195 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 192(%rax)
4196 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4197 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 160(%rax)
4198 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4199 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 128(%rax)
4200 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4201 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 96(%rax)
4202 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4203 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 64(%rax)
4204 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4205 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 32(%rax)
4206 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4207 ; AVX2-ONLY-NEXT: vmovaps %ymm1, (%rax)
4208 ; AVX2-ONLY-NEXT: movq {{[0-9]+}}(%rsp), %rax
4209 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4210 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 224(%rax)
4211 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4212 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 192(%rax)
4213 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4214 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 160(%rax)
4215 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4216 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 128(%rax)
4217 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4218 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 96(%rax)
4219 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4220 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 64(%rax)
4221 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4222 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 32(%rax)
4223 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4224 ; AVX2-ONLY-NEXT: vmovaps %ymm1, (%rax)
4225 ; AVX2-ONLY-NEXT: movq {{[0-9]+}}(%rsp), %rax
4226 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 224(%rax)
4227 ; AVX2-ONLY-NEXT: vmovaps %ymm3, 192(%rax)
4228 ; AVX2-ONLY-NEXT: vmovaps %ymm7, 160(%rax)
4229 ; AVX2-ONLY-NEXT: vmovaps %ymm11, 128(%rax)
4230 ; AVX2-ONLY-NEXT: vmovaps %ymm13, 96(%rax)
4231 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4232 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 64(%rax)
4233 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4234 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 32(%rax)
4235 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4236 ; AVX2-ONLY-NEXT: vmovaps %ymm0, (%rax)
4237 ; AVX2-ONLY-NEXT: addq $2248, %rsp # imm = 0x8C8
4238 ; AVX2-ONLY-NEXT: vzeroupper
4239 ; AVX2-ONLY-NEXT: retq
4241 ; AVX512F-LABEL: load_i64_stride8_vf32:
4243 ; AVX512F-NEXT: subq $2632, %rsp # imm = 0xA48
4244 ; AVX512F-NEXT: vmovdqa64 1856(%rdi), %zmm14
4245 ; AVX512F-NEXT: vmovdqa64 1984(%rdi), %zmm28
4246 ; AVX512F-NEXT: vmovdqa64 1344(%rdi), %zmm21
4247 ; AVX512F-NEXT: vmovdqa64 1280(%rdi), %zmm18
4248 ; AVX512F-NEXT: vmovdqa64 1472(%rdi), %zmm17
4249 ; AVX512F-NEXT: vmovdqa64 1408(%rdi), %zmm22
4250 ; AVX512F-NEXT: vmovdqa64 832(%rdi), %zmm7
4251 ; AVX512F-NEXT: vmovdqa64 768(%rdi), %zmm8
4252 ; AVX512F-NEXT: vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4253 ; AVX512F-NEXT: vmovdqa64 960(%rdi), %zmm10
4254 ; AVX512F-NEXT: vmovdqa64 896(%rdi), %zmm3
4255 ; AVX512F-NEXT: vmovdqa64 320(%rdi), %zmm15
4256 ; AVX512F-NEXT: vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4257 ; AVX512F-NEXT: vmovdqa64 256(%rdi), %zmm30
4258 ; AVX512F-NEXT: vmovdqa64 448(%rdi), %zmm19
4259 ; AVX512F-NEXT: vmovdqa64 384(%rdi), %zmm20
4260 ; AVX512F-NEXT: movb $-64, %al
4261 ; AVX512F-NEXT: kmovw %eax, %k1
4262 ; AVX512F-NEXT: vbroadcasti32x4 {{.*#+}} zmm0 = [2,10,2,10,2,10,2,10]
4263 ; AVX512F-NEXT: # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4264 ; AVX512F-NEXT: vmovdqa64 %zmm22, %zmm1
4265 ; AVX512F-NEXT: vpermt2q %zmm17, %zmm0, %zmm1
4266 ; AVX512F-NEXT: vmovdqa64 %zmm18, %zmm2
4267 ; AVX512F-NEXT: vpermt2q %zmm21, %zmm0, %zmm2
4268 ; AVX512F-NEXT: vmovdqa64 %zmm1, %zmm2 {%k1}
4269 ; AVX512F-NEXT: vmovdqa64 1216(%rdi), %ymm29
4270 ; AVX512F-NEXT: vmovdqa 1152(%rdi), %ymm13
4271 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} ymm5 = ymm13[0],ymm29[0],ymm13[2],ymm29[2]
4272 ; AVX512F-NEXT: vmovdqa 1088(%rdi), %ymm6
4273 ; AVX512F-NEXT: vmovdqa 1024(%rdi), %ymm4
4274 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} ymm9 = ymm4[0],ymm6[0],ymm4[2],ymm6[2]
4275 ; AVX512F-NEXT: vperm2i128 {{.*#+}} ymm5 = ymm9[2,3],ymm5[2,3]
4276 ; AVX512F-NEXT: vinserti64x4 $0, %ymm5, %zmm2, %zmm1
4277 ; AVX512F-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4278 ; AVX512F-NEXT: vmovdqa64 %zmm3, %zmm2
4279 ; AVX512F-NEXT: vpermt2q %zmm10, %zmm0, %zmm2
4280 ; AVX512F-NEXT: vmovdqa64 %zmm10, %zmm24
4281 ; AVX512F-NEXT: vmovdqa64 %zmm8, %zmm5
4282 ; AVX512F-NEXT: vpermt2q %zmm7, %zmm0, %zmm5
4283 ; AVX512F-NEXT: vmovdqa64 %zmm2, %zmm5 {%k1}
4284 ; AVX512F-NEXT: vmovdqa 704(%rdi), %ymm8
4285 ; AVX512F-NEXT: vmovdqa 640(%rdi), %ymm9
4286 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} ymm10 = ymm9[0],ymm8[0],ymm9[2],ymm8[2]
4287 ; AVX512F-NEXT: vmovdqa 576(%rdi), %ymm12
4288 ; AVX512F-NEXT: vmovdqa64 512(%rdi), %ymm16
4289 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} ymm11 = ymm16[0],ymm12[0],ymm16[2],ymm12[2]
4290 ; AVX512F-NEXT: vperm2i128 {{.*#+}} ymm10 = ymm11[2,3],ymm10[2,3]
4291 ; AVX512F-NEXT: vinserti64x4 $0, %ymm10, %zmm5, %zmm1
4292 ; AVX512F-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4293 ; AVX512F-NEXT: vmovdqa64 %zmm20, %zmm5
4294 ; AVX512F-NEXT: vpermt2q %zmm19, %zmm0, %zmm5
4295 ; AVX512F-NEXT: vmovdqa64 %zmm30, %zmm10
4296 ; AVX512F-NEXT: vpermt2q %zmm15, %zmm0, %zmm10
4297 ; AVX512F-NEXT: vmovdqa64 %zmm5, %zmm10 {%k1}
4298 ; AVX512F-NEXT: vmovdqa 192(%rdi), %ymm5
4299 ; AVX512F-NEXT: vmovdqa64 128(%rdi), %ymm25
4300 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} ymm11 = ymm25[0],ymm5[0],ymm25[2],ymm5[2]
4301 ; AVX512F-NEXT: vmovdqa64 64(%rdi), %ymm26
4302 ; AVX512F-NEXT: vmovdqa64 (%rdi), %ymm27
4303 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} ymm15 = ymm27[0],ymm26[0],ymm27[2],ymm26[2]
4304 ; AVX512F-NEXT: vperm2i128 {{.*#+}} ymm15 = ymm15[2,3],ymm11[2,3]
4305 ; AVX512F-NEXT: vmovdqa64 1920(%rdi), %zmm2
4306 ; AVX512F-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4307 ; AVX512F-NEXT: vinserti64x4 $0, %ymm15, %zmm10, %zmm1
4308 ; AVX512F-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4309 ; AVX512F-NEXT: vmovdqa64 %zmm2, %zmm10
4310 ; AVX512F-NEXT: vmovdqa64 %zmm28, %zmm15
4311 ; AVX512F-NEXT: vpermt2q %zmm28, %zmm0, %zmm10
4312 ; AVX512F-NEXT: vmovdqa64 1792(%rdi), %zmm23
4313 ; AVX512F-NEXT: vmovdqa64 %zmm14, %zmm11
4314 ; AVX512F-NEXT: vpermi2q %zmm14, %zmm23, %zmm0
4315 ; AVX512F-NEXT: vmovdqa64 %zmm10, %zmm0 {%k1}
4316 ; AVX512F-NEXT: vmovdqa 1728(%rdi), %ymm10
4317 ; AVX512F-NEXT: vmovdqa64 1664(%rdi), %ymm28
4318 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} ymm1 = ymm28[0],ymm10[0],ymm28[2],ymm10[2]
4319 ; AVX512F-NEXT: vmovdqa64 1600(%rdi), %ymm31
4320 ; AVX512F-NEXT: vmovdqa 1536(%rdi), %ymm2
4321 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} ymm14 = ymm2[0],ymm31[0],ymm2[2],ymm31[2]
4322 ; AVX512F-NEXT: vperm2i128 {{.*#+}} ymm1 = ymm14[2,3],ymm1[2,3]
4323 ; AVX512F-NEXT: vinserti64x4 $0, %ymm1, %zmm0, %zmm0
4324 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4325 ; AVX512F-NEXT: vbroadcasti32x4 {{.*#+}} zmm0 = [3,11,3,11,3,11,3,11]
4326 ; AVX512F-NEXT: # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4327 ; AVX512F-NEXT: vmovdqa64 %zmm22, %zmm1
4328 ; AVX512F-NEXT: vpermt2q %zmm17, %zmm0, %zmm1
4329 ; AVX512F-NEXT: vmovdqa64 %zmm18, %zmm14
4330 ; AVX512F-NEXT: vpermt2q %zmm21, %zmm0, %zmm14
4331 ; AVX512F-NEXT: vmovdqa64 %zmm1, %zmm14 {%k1}
4332 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} ymm1 = ymm13[1],ymm29[1],ymm13[3],ymm29[3]
4333 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} ymm4 = ymm4[1],ymm6[1],ymm4[3],ymm6[3]
4334 ; AVX512F-NEXT: vperm2i128 {{.*#+}} ymm1 = ymm4[2,3],ymm1[2,3]
4335 ; AVX512F-NEXT: vinserti64x4 $0, %ymm1, %zmm14, %zmm1
4336 ; AVX512F-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4337 ; AVX512F-NEXT: vmovdqa64 %zmm3, %zmm1
4338 ; AVX512F-NEXT: vmovdqa64 %zmm3, %zmm13
4339 ; AVX512F-NEXT: vmovdqu64 %zmm3, (%rsp) # 64-byte Spill
4340 ; AVX512F-NEXT: vmovdqu64 %zmm24, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4341 ; AVX512F-NEXT: vpermt2q %zmm24, %zmm0, %zmm1
4342 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
4343 ; AVX512F-NEXT: vmovdqa64 %zmm6, %zmm4
4344 ; AVX512F-NEXT: vpermt2q %zmm7, %zmm0, %zmm4
4345 ; AVX512F-NEXT: vmovdqa64 %zmm7, %zmm29
4346 ; AVX512F-NEXT: vmovdqa64 %zmm1, %zmm4 {%k1}
4347 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} ymm1 = ymm9[1],ymm8[1],ymm9[3],ymm8[3]
4348 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} ymm3 = ymm16[1],ymm12[1],ymm16[3],ymm12[3]
4349 ; AVX512F-NEXT: vperm2i128 {{.*#+}} ymm1 = ymm3[2,3],ymm1[2,3]
4350 ; AVX512F-NEXT: vinserti64x4 $0, %ymm1, %zmm4, %zmm1
4351 ; AVX512F-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4352 ; AVX512F-NEXT: vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4353 ; AVX512F-NEXT: vmovdqa64 %zmm20, %zmm1
4354 ; AVX512F-NEXT: vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4355 ; AVX512F-NEXT: vpermt2q %zmm19, %zmm0, %zmm1
4356 ; AVX512F-NEXT: vmovdqa64 %zmm30, %zmm3
4357 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
4358 ; AVX512F-NEXT: vpermt2q %zmm14, %zmm0, %zmm3
4359 ; AVX512F-NEXT: vmovdqa64 %zmm1, %zmm3 {%k1}
4360 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} ymm1 = ymm25[1],ymm5[1],ymm25[3],ymm5[3]
4361 ; AVX512F-NEXT: vmovdqa64 1216(%rdi), %zmm5
4362 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} ymm4 = ymm27[1],ymm26[1],ymm27[3],ymm26[3]
4363 ; AVX512F-NEXT: vmovdqa64 1152(%rdi), %zmm8
4364 ; AVX512F-NEXT: vperm2i128 {{.*#+}} ymm1 = ymm4[2,3],ymm1[2,3]
4365 ; AVX512F-NEXT: vmovdqa64 1088(%rdi), %zmm9
4366 ; AVX512F-NEXT: vinserti64x4 $0, %ymm1, %zmm3, %zmm1
4367 ; AVX512F-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4368 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
4369 ; AVX512F-NEXT: vmovdqa64 %zmm12, %zmm1
4370 ; AVX512F-NEXT: vpermt2q %zmm15, %zmm0, %zmm1
4371 ; AVX512F-NEXT: vmovdqa64 %zmm23, %zmm7
4372 ; AVX512F-NEXT: vmovdqu64 %zmm23, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4373 ; AVX512F-NEXT: vpermi2q %zmm11, %zmm23, %zmm0
4374 ; AVX512F-NEXT: vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4375 ; AVX512F-NEXT: vmovdqa64 %zmm1, %zmm0 {%k1}
4376 ; AVX512F-NEXT: vmovdqa64 1024(%rdi), %zmm3
4377 ; AVX512F-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4378 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} ymm1 = ymm28[1],ymm10[1],ymm28[3],ymm10[3]
4379 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} ymm2 = ymm2[1],ymm31[1],ymm2[3],ymm31[3]
4380 ; AVX512F-NEXT: vperm2i128 {{.*#+}} ymm1 = ymm2[2,3],ymm1[2,3]
4381 ; AVX512F-NEXT: vinserti64x4 $0, %ymm1, %zmm0, %zmm0
4382 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4383 ; AVX512F-NEXT: vbroadcasti32x4 {{.*#+}} zmm0 = [4,12,4,12,4,12,4,12]
4384 ; AVX512F-NEXT: # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4385 ; AVX512F-NEXT: vmovdqa64 %zmm22, %zmm1
4386 ; AVX512F-NEXT: vmovdqa64 %zmm22, %zmm25
4387 ; AVX512F-NEXT: vpermt2q %zmm17, %zmm0, %zmm1
4388 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} zmm2 = zmm18[0],zmm21[0],zmm18[2],zmm21[2],zmm18[4],zmm21[4],zmm18[6],zmm21[6]
4389 ; AVX512F-NEXT: vmovdqa64 %zmm1, %zmm2 {%k1}
4390 ; AVX512F-NEXT: vpermt2q %zmm9, %zmm0, %zmm3
4391 ; AVX512F-NEXT: vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4392 ; AVX512F-NEXT: vbroadcasti128 {{.*#+}} ymm1 = [4,12,4,12]
4393 ; AVX512F-NEXT: # ymm1 = mem[0,1,0,1]
4394 ; AVX512F-NEXT: vmovdqa64 %zmm8, %zmm4
4395 ; AVX512F-NEXT: vmovdqa64 %zmm8, %zmm10
4396 ; AVX512F-NEXT: vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4397 ; AVX512F-NEXT: vpermt2q %zmm5, %zmm1, %zmm4
4398 ; AVX512F-NEXT: vmovdqa64 %zmm5, %zmm8
4399 ; AVX512F-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4400 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm4[4,5,6,7]
4401 ; AVX512F-NEXT: vinserti64x4 $0, %ymm3, %zmm2, %zmm2
4402 ; AVX512F-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4403 ; AVX512F-NEXT: vpermt2q %zmm24, %zmm0, %zmm13
4404 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} zmm3 = zmm6[0],zmm29[0],zmm6[2],zmm29[2],zmm6[4],zmm29[4],zmm6[6],zmm29[6]
4405 ; AVX512F-NEXT: vmovdqa64 %zmm6, %zmm16
4406 ; AVX512F-NEXT: vmovdqa64 %zmm13, %zmm3 {%k1}
4407 ; AVX512F-NEXT: vmovdqa64 576(%rdi), %zmm4
4408 ; AVX512F-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4409 ; AVX512F-NEXT: vmovdqa64 512(%rdi), %zmm2
4410 ; AVX512F-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4411 ; AVX512F-NEXT: vpermt2q %zmm4, %zmm0, %zmm2
4412 ; AVX512F-NEXT: vmovdqa64 704(%rdi), %zmm22
4413 ; AVX512F-NEXT: vmovdqa64 640(%rdi), %zmm4
4414 ; AVX512F-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4415 ; AVX512F-NEXT: vpermt2q %zmm22, %zmm1, %zmm4
4416 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm4[4,5,6,7]
4417 ; AVX512F-NEXT: vinserti64x4 $0, %ymm2, %zmm3, %zmm2
4418 ; AVX512F-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4419 ; AVX512F-NEXT: vpermt2q %zmm19, %zmm0, %zmm20
4420 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} zmm3 = zmm30[0],zmm14[0],zmm30[2],zmm14[2],zmm30[4],zmm14[4],zmm30[6],zmm14[6]
4421 ; AVX512F-NEXT: vmovdqa64 %zmm14, %zmm6
4422 ; AVX512F-NEXT: vmovdqa64 %zmm20, %zmm3 {%k1}
4423 ; AVX512F-NEXT: vmovdqa64 64(%rdi), %zmm4
4424 ; AVX512F-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4425 ; AVX512F-NEXT: vmovdqa64 (%rdi), %zmm2
4426 ; AVX512F-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4427 ; AVX512F-NEXT: vpermt2q %zmm4, %zmm0, %zmm2
4428 ; AVX512F-NEXT: vmovdqa64 192(%rdi), %zmm5
4429 ; AVX512F-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4430 ; AVX512F-NEXT: vmovdqa64 128(%rdi), %zmm4
4431 ; AVX512F-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4432 ; AVX512F-NEXT: vpermt2q %zmm5, %zmm1, %zmm4
4433 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm4[4,5,6,7]
4434 ; AVX512F-NEXT: vinserti64x4 $0, %ymm2, %zmm3, %zmm2
4435 ; AVX512F-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4436 ; AVX512F-NEXT: vmovdqa64 %zmm12, %zmm2
4437 ; AVX512F-NEXT: vmovdqa64 %zmm12, %zmm23
4438 ; AVX512F-NEXT: vpermt2q %zmm15, %zmm0, %zmm2
4439 ; AVX512F-NEXT: vmovdqa64 %zmm15, %zmm28
4440 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} zmm3 = zmm7[0],zmm11[0],zmm7[2],zmm11[2],zmm7[4],zmm11[4],zmm7[6],zmm11[6]
4441 ; AVX512F-NEXT: vmovdqa64 %zmm2, %zmm3 {%k1}
4442 ; AVX512F-NEXT: vmovdqa64 1600(%rdi), %zmm2
4443 ; AVX512F-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4444 ; AVX512F-NEXT: vmovdqa64 1536(%rdi), %zmm5
4445 ; AVX512F-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4446 ; AVX512F-NEXT: vpermi2q %zmm2, %zmm5, %zmm0
4447 ; AVX512F-NEXT: vmovdqa64 1728(%rdi), %zmm2
4448 ; AVX512F-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4449 ; AVX512F-NEXT: vmovdqa64 1664(%rdi), %zmm5
4450 ; AVX512F-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4451 ; AVX512F-NEXT: vpermi2q %zmm2, %zmm5, %zmm1
4452 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4453 ; AVX512F-NEXT: vinserti64x4 $0, %ymm0, %zmm3, %zmm0
4454 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4455 ; AVX512F-NEXT: vbroadcasti32x4 {{.*#+}} zmm31 = [0,8,0,8,0,8,0,8]
4456 ; AVX512F-NEXT: # zmm31 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4457 ; AVX512F-NEXT: vmovdqa64 %zmm18, %zmm0
4458 ; AVX512F-NEXT: vpermt2q %zmm21, %zmm31, %zmm0
4459 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4460 ; AVX512F-NEXT: vbroadcasti32x4 {{.*#+}} zmm24 = [1,9,1,9,1,9,1,9]
4461 ; AVX512F-NEXT: # zmm24 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4462 ; AVX512F-NEXT: vmovdqa64 %zmm18, %zmm0
4463 ; AVX512F-NEXT: vpermt2q %zmm21, %zmm24, %zmm0
4464 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4465 ; AVX512F-NEXT: vbroadcasti32x4 {{.*#+}} zmm4 = [6,14,6,14,6,14,6,14]
4466 ; AVX512F-NEXT: # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4467 ; AVX512F-NEXT: vmovdqa64 %zmm18, %zmm3
4468 ; AVX512F-NEXT: vpermt2q %zmm21, %zmm4, %zmm3
4469 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} zmm2 = zmm18[1],zmm21[1],zmm18[3],zmm21[3],zmm18[5],zmm21[5],zmm18[7],zmm21[7]
4470 ; AVX512F-NEXT: vbroadcasti32x4 {{.*#+}} zmm11 = [7,15,7,15,7,15,7,15]
4471 ; AVX512F-NEXT: # zmm11 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4472 ; AVX512F-NEXT: vpermt2q %zmm21, %zmm11, %zmm18
4473 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} zmm3 {%k1} = zmm25[0],zmm17[0],zmm25[2],zmm17[2],zmm25[4],zmm17[4],zmm25[6],zmm17[6]
4474 ; AVX512F-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4475 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} zmm18 {%k1} = zmm25[1],zmm17[1],zmm25[3],zmm17[3],zmm25[5],zmm17[5],zmm25[7],zmm17[7]
4476 ; AVX512F-NEXT: vmovdqu64 %zmm18, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4477 ; AVX512F-NEXT: vmovdqa64 %zmm25, %zmm3
4478 ; AVX512F-NEXT: vmovdqa64 %zmm25, %zmm1
4479 ; AVX512F-NEXT: vpermt2q %zmm17, %zmm31, %zmm25
4480 ; AVX512F-NEXT: vmovdqu64 %zmm25, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4481 ; AVX512F-NEXT: vpermt2q %zmm17, %zmm24, %zmm3
4482 ; AVX512F-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4483 ; AVX512F-NEXT: vbroadcasti32x4 {{.*#+}} zmm5 = [5,13,5,13,5,13,5,13]
4484 ; AVX512F-NEXT: # zmm5 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4485 ; AVX512F-NEXT: vpermt2q %zmm17, %zmm5, %zmm1
4486 ; AVX512F-NEXT: vmovdqa64 %zmm1, %zmm2 {%k1}
4487 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
4488 ; AVX512F-NEXT: vpermt2q %zmm9, %zmm5, %zmm3
4489 ; AVX512F-NEXT: vbroadcasti128 {{.*#+}} ymm9 = [5,13,5,13]
4490 ; AVX512F-NEXT: # ymm9 = mem[0,1,0,1]
4491 ; AVX512F-NEXT: vpermt2q %zmm8, %zmm9, %zmm10
4492 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm10[4,5,6,7]
4493 ; AVX512F-NEXT: vinserti64x4 $0, %ymm3, %zmm2, %zmm0
4494 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4495 ; AVX512F-NEXT: vmovdqa64 %zmm16, %zmm2
4496 ; AVX512F-NEXT: vmovdqa64 %zmm16, %zmm18
4497 ; AVX512F-NEXT: vpermt2q %zmm29, %zmm31, %zmm18
4498 ; AVX512F-NEXT: vmovdqa64 %zmm16, %zmm20
4499 ; AVX512F-NEXT: vpermt2q %zmm29, %zmm24, %zmm20
4500 ; AVX512F-NEXT: vpermt2q %zmm29, %zmm4, %zmm16
4501 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} zmm15 = zmm2[1],zmm29[1],zmm2[3],zmm29[3],zmm2[5],zmm29[5],zmm2[7],zmm29[7]
4502 ; AVX512F-NEXT: vpermt2q %zmm29, %zmm11, %zmm2
4503 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4504 ; AVX512F-NEXT: vmovdqu64 (%rsp), %zmm26 # 64-byte Reload
4505 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} zmm16 {%k1} = zmm26[0],zmm0[0],zmm26[2],zmm0[2],zmm26[4],zmm0[4],zmm26[6],zmm0[6]
4506 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} zmm2 {%k1} = zmm26[1],zmm0[1],zmm26[3],zmm0[3],zmm26[5],zmm0[5],zmm26[7],zmm0[7]
4507 ; AVX512F-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4508 ; AVX512F-NEXT: vmovdqa64 %zmm26, %zmm2
4509 ; AVX512F-NEXT: vmovdqa64 %zmm26, %zmm21
4510 ; AVX512F-NEXT: vpermt2q %zmm0, %zmm31, %zmm26
4511 ; AVX512F-NEXT: vpermt2q %zmm0, %zmm24, %zmm2
4512 ; AVX512F-NEXT: vmovdqu64 %zmm2, (%rsp) # 64-byte Spill
4513 ; AVX512F-NEXT: vpermt2q %zmm0, %zmm5, %zmm21
4514 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
4515 ; AVX512F-NEXT: vmovdqa64 %zmm14, %zmm3
4516 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4517 ; AVX512F-NEXT: vpermt2q %zmm0, %zmm5, %zmm3
4518 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
4519 ; AVX512F-NEXT: vmovdqa64 %zmm22, %zmm29
4520 ; AVX512F-NEXT: vpermt2q %zmm22, %zmm9, %zmm10
4521 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm10[4,5,6,7]
4522 ; AVX512F-NEXT: vmovdqa64 %ymm1, %ymm27
4523 ; AVX512F-NEXT: vmovdqa64 %zmm30, %zmm12
4524 ; AVX512F-NEXT: vpermt2q %zmm6, %zmm31, %zmm12
4525 ; AVX512F-NEXT: vmovdqa64 %zmm30, %zmm17
4526 ; AVX512F-NEXT: vpermt2q %zmm6, %zmm24, %zmm17
4527 ; AVX512F-NEXT: vmovdqa64 %zmm30, %zmm19
4528 ; AVX512F-NEXT: vpermt2q %zmm6, %zmm4, %zmm19
4529 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} zmm13 = zmm30[1],zmm6[1],zmm30[3],zmm6[3],zmm30[5],zmm6[5],zmm30[7],zmm6[7]
4530 ; AVX512F-NEXT: vpermt2q %zmm6, %zmm11, %zmm30
4531 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
4532 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
4533 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} zmm19 {%k1} = zmm22[0],zmm1[0],zmm22[2],zmm1[2],zmm22[4],zmm1[4],zmm22[6],zmm1[6]
4534 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} zmm30 {%k1} = zmm22[1],zmm1[1],zmm22[3],zmm1[3],zmm22[5],zmm1[5],zmm22[7],zmm1[7]
4535 ; AVX512F-NEXT: vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4536 ; AVX512F-NEXT: vmovdqa64 %zmm22, %zmm2
4537 ; AVX512F-NEXT: vmovdqa64 %zmm22, %zmm30
4538 ; AVX512F-NEXT: vpermt2q %zmm1, %zmm31, %zmm22
4539 ; AVX512F-NEXT: vpermt2q %zmm1, %zmm24, %zmm2
4540 ; AVX512F-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4541 ; AVX512F-NEXT: vpermt2q %zmm1, %zmm5, %zmm30
4542 ; AVX512F-NEXT: vmovdqa64 %zmm23, %zmm7
4543 ; AVX512F-NEXT: vmovdqa64 %zmm23, %zmm25
4544 ; AVX512F-NEXT: vmovdqa64 %zmm28, %zmm1
4545 ; AVX512F-NEXT: vpermt2q %zmm28, %zmm31, %zmm25
4546 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
4547 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
4548 ; AVX512F-NEXT: vpermi2q %zmm2, %zmm3, %zmm31
4549 ; AVX512F-NEXT: vmovdqa64 %zmm23, %zmm28
4550 ; AVX512F-NEXT: vpermt2q %zmm1, %zmm24, %zmm28
4551 ; AVX512F-NEXT: vpermi2q %zmm2, %zmm3, %zmm24
4552 ; AVX512F-NEXT: vmovdqa64 %zmm3, %zmm23
4553 ; AVX512F-NEXT: vpermt2q %zmm2, %zmm4, %zmm23
4554 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} zmm8 = zmm3[1],zmm2[1],zmm3[3],zmm2[3],zmm3[5],zmm2[5],zmm3[7],zmm2[7]
4555 ; AVX512F-NEXT: vpermt2q %zmm2, %zmm11, %zmm3
4556 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} zmm23 {%k1} = zmm7[0],zmm1[0],zmm7[2],zmm1[2],zmm7[4],zmm1[4],zmm7[6],zmm1[6]
4557 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} zmm3 {%k1} = zmm7[1],zmm1[1],zmm7[3],zmm1[3],zmm7[5],zmm1[5],zmm7[7],zmm1[7]
4558 ; AVX512F-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4559 ; AVX512F-NEXT: vmovdqa64 %zmm7, %zmm3
4560 ; AVX512F-NEXT: vpermt2q %zmm1, %zmm5, %zmm3
4561 ; AVX512F-NEXT: vmovdqa64 %zmm14, %zmm10
4562 ; AVX512F-NEXT: vmovdqa64 %zmm4, %zmm7
4563 ; AVX512F-NEXT: vpermt2q %zmm0, %zmm4, %zmm10
4564 ; AVX512F-NEXT: vpermt2q %zmm0, %zmm11, %zmm14
4565 ; AVX512F-NEXT: vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4566 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
4567 ; AVX512F-NEXT: vmovdqa64 %zmm1, %zmm2
4568 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4569 ; AVX512F-NEXT: vpermt2q %zmm0, %zmm5, %zmm2
4570 ; AVX512F-NEXT: vmovdqa64 %zmm1, %zmm4
4571 ; AVX512F-NEXT: vpermt2q %zmm0, %zmm7, %zmm4
4572 ; AVX512F-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4573 ; AVX512F-NEXT: vmovdqa64 %zmm7, %zmm6
4574 ; AVX512F-NEXT: vpermt2q %zmm0, %zmm11, %zmm1
4575 ; AVX512F-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4576 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4577 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
4578 ; AVX512F-NEXT: vpermi2q %zmm14, %zmm0, %zmm5
4579 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4580 ; AVX512F-NEXT: vmovdqa64 %zmm4, %zmm7
4581 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
4582 ; AVX512F-NEXT: vpermt2q %zmm1, %zmm6, %zmm7
4583 ; AVX512F-NEXT: vpermi2q %zmm14, %zmm0, %zmm6
4584 ; AVX512F-NEXT: vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4585 ; AVX512F-NEXT: vpermt2q %zmm14, %zmm11, %zmm0
4586 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4587 ; AVX512F-NEXT: vpermt2q %zmm1, %zmm11, %zmm4
4588 ; AVX512F-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4589 ; AVX512F-NEXT: vmovdqa64 %zmm21, %zmm15 {%k1}
4590 ; AVX512F-NEXT: vinserti64x4 $0, %ymm27, %zmm15, %zmm0
4591 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4592 ; AVX512F-NEXT: vmovdqa64 %zmm30, %zmm13 {%k1}
4593 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4594 ; AVX512F-NEXT: vmovdqa64 %zmm4, %zmm6
4595 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
4596 ; AVX512F-NEXT: vpermt2q %zmm14, %zmm9, %zmm6
4597 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm6[4,5,6,7]
4598 ; AVX512F-NEXT: vinserti64x4 $0, %ymm1, %zmm13, %zmm0
4599 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4600 ; AVX512F-NEXT: vmovdqa64 %zmm3, %zmm8 {%k1}
4601 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
4602 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
4603 ; AVX512F-NEXT: vpermi2q %zmm15, %zmm6, %zmm9
4604 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm0 = ymm5[0,1,2,3],ymm9[4,5,6,7]
4605 ; AVX512F-NEXT: vinserti64x4 $0, %ymm0, %zmm8, %zmm30
4606 ; AVX512F-NEXT: vbroadcasti128 {{.*#+}} ymm2 = [6,14,6,14]
4607 ; AVX512F-NEXT: # ymm2 = mem[0,1,0,1]
4608 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
4609 ; AVX512F-NEXT: vmovdqa64 %zmm1, %zmm5
4610 ; AVX512F-NEXT: vpermt2q %zmm29, %zmm2, %zmm5
4611 ; AVX512F-NEXT: vbroadcasti128 {{.*#+}} ymm0 = [7,15,7,15]
4612 ; AVX512F-NEXT: # ymm0 = mem[0,1,0,1]
4613 ; AVX512F-NEXT: vpermt2q %zmm29, %zmm0, %zmm1
4614 ; AVX512F-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4615 ; AVX512F-NEXT: vmovdqa64 %zmm4, %zmm9
4616 ; AVX512F-NEXT: vmovdqa64 %zmm4, %zmm1
4617 ; AVX512F-NEXT: vpermt2q %zmm14, %zmm2, %zmm1
4618 ; AVX512F-NEXT: vpermt2q %zmm14, %zmm0, %zmm9
4619 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
4620 ; AVX512F-NEXT: vmovdqa64 %zmm11, %zmm8
4621 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4622 ; AVX512F-NEXT: vpermt2q %zmm4, %zmm2, %zmm8
4623 ; AVX512F-NEXT: vpermi2q %zmm15, %zmm6, %zmm2
4624 ; AVX512F-NEXT: vpermt2q %zmm15, %zmm0, %zmm6
4625 ; AVX512F-NEXT: vmovdqa64 %zmm6, %zmm3
4626 ; AVX512F-NEXT: vpermt2q %zmm4, %zmm0, %zmm11
4627 ; AVX512F-NEXT: vmovdqa64 %zmm11, %zmm6
4628 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm0 = ymm7[0,1,2,3],ymm8[4,5,6,7]
4629 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4630 ; AVX512F-NEXT: vinserti64x4 $0, %ymm0, %zmm4, %zmm21
4631 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm4 = ymm10[0,1,2,3],ymm5[4,5,6,7]
4632 ; AVX512F-NEXT: vinserti64x4 $0, %ymm4, %zmm16, %zmm0
4633 ; AVX512F-NEXT: vmovdqa64 %zmm22, %zmm12 {%k1}
4634 ; AVX512F-NEXT: vmovdqa 64(%rdi), %xmm4
4635 ; AVX512F-NEXT: vinserti128 $1, 192(%rdi), %ymm4, %ymm4
4636 ; AVX512F-NEXT: vmovdqa (%rdi), %xmm5
4637 ; AVX512F-NEXT: vinserti128 $1, 128(%rdi), %ymm5, %ymm5
4638 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} ymm7 = ymm5[0],ymm4[0],ymm5[2],ymm4[2]
4639 ; AVX512F-NEXT: vinserti64x4 $0, %ymm7, %zmm12, %zmm7
4640 ; AVX512F-NEXT: vmovdqa64 %zmm26, %zmm18 {%k1}
4641 ; AVX512F-NEXT: vmovdqa 576(%rdi), %xmm8
4642 ; AVX512F-NEXT: vinserti128 $1, 704(%rdi), %ymm8, %ymm8
4643 ; AVX512F-NEXT: vmovdqa 512(%rdi), %xmm10
4644 ; AVX512F-NEXT: vinserti128 $1, 640(%rdi), %ymm10, %ymm10
4645 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} ymm11 = ymm10[0],ymm8[0],ymm10[2],ymm8[2]
4646 ; AVX512F-NEXT: vinserti64x4 $0, %ymm11, %zmm18, %zmm11
4647 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
4648 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
4649 ; AVX512F-NEXT: vmovdqa64 %zmm12, %zmm13 {%k1}
4650 ; AVX512F-NEXT: vmovdqa 1088(%rdi), %xmm12
4651 ; AVX512F-NEXT: vinserti128 $1, 1216(%rdi), %ymm12, %ymm12
4652 ; AVX512F-NEXT: vmovdqa64 1024(%rdi), %xmm16
4653 ; AVX512F-NEXT: vinserti32x4 $1, 1152(%rdi), %ymm16, %ymm16
4654 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} ymm22 = ymm16[0],ymm12[0],ymm16[2],ymm12[2]
4655 ; AVX512F-NEXT: vinserti64x4 $0, %ymm22, %zmm13, %zmm22
4656 ; AVX512F-NEXT: vmovdqa64 %zmm25, %zmm31 {%k1}
4657 ; AVX512F-NEXT: vmovdqa64 1600(%rdi), %xmm25
4658 ; AVX512F-NEXT: vinserti32x4 $1, 1728(%rdi), %ymm25, %ymm25
4659 ; AVX512F-NEXT: vmovdqa64 1536(%rdi), %xmm26
4660 ; AVX512F-NEXT: vinserti32x4 $1, 1664(%rdi), %ymm26, %ymm26
4661 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} ymm27 = ymm26[0],ymm25[0],ymm26[2],ymm25[2]
4662 ; AVX512F-NEXT: vinserti64x4 $0, %ymm27, %zmm31, %zmm27
4663 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
4664 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
4665 ; AVX512F-NEXT: vmovdqa64 %zmm14, %zmm13 {%k1}
4666 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} ymm12 = ymm16[1],ymm12[1],ymm16[3],ymm12[3]
4667 ; AVX512F-NEXT: vinserti64x4 $0, %ymm12, %zmm13, %zmm12
4668 ; AVX512F-NEXT: vmovdqu64 (%rsp), %zmm13 # 64-byte Reload
4669 ; AVX512F-NEXT: vmovdqa64 %zmm13, %zmm20 {%k1}
4670 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} ymm8 = ymm10[1],ymm8[1],ymm10[3],ymm8[3]
4671 ; AVX512F-NEXT: vinserti64x4 $0, %ymm8, %zmm20, %zmm8
4672 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
4673 ; AVX512F-NEXT: vmovdqa64 %zmm10, %zmm17 {%k1}
4674 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} ymm4 = ymm5[1],ymm4[1],ymm5[3],ymm4[3]
4675 ; AVX512F-NEXT: vinserti64x4 $0, %ymm4, %zmm17, %zmm4
4676 ; AVX512F-NEXT: vmovdqa64 %zmm28, %zmm24 {%k1}
4677 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} ymm5 = ymm26[1],ymm25[1],ymm26[3],ymm25[3]
4678 ; AVX512F-NEXT: vinserti64x4 $0, %ymm5, %zmm24, %zmm5
4679 ; AVX512F-NEXT: vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
4680 ; AVX512F-NEXT: # ymm1 = mem[0,1,2,3],ymm1[4,5,6,7]
4681 ; AVX512F-NEXT: vinserti64x4 $0, %ymm1, %zmm19, %zmm1
4682 ; AVX512F-NEXT: vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
4683 ; AVX512F-NEXT: # ymm2 = mem[0,1,2,3],ymm2[4,5,6,7]
4684 ; AVX512F-NEXT: vinserti64x4 $0, %ymm2, %zmm23, %zmm2
4685 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
4686 ; AVX512F-NEXT: vblendps $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
4687 ; AVX512F-NEXT: # ymm10 = mem[0,1,2,3],ymm10[4,5,6,7]
4688 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
4689 ; AVX512F-NEXT: vinsertf64x4 $0, %ymm10, %zmm13, %zmm10
4690 ; AVX512F-NEXT: vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm13 # 32-byte Folded Reload
4691 ; AVX512F-NEXT: # ymm13 = mem[0,1,2,3],ymm9[4,5,6,7]
4692 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
4693 ; AVX512F-NEXT: vinserti64x4 $0, %ymm13, %zmm9, %zmm13
4694 ; AVX512F-NEXT: vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm14 # 32-byte Folded Reload
4695 ; AVX512F-NEXT: # ymm14 = mem[0,1,2,3],ymm3[4,5,6,7]
4696 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
4697 ; AVX512F-NEXT: vinserti64x4 $0, %ymm14, %zmm3, %zmm14
4698 ; AVX512F-NEXT: vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm15 # 32-byte Folded Reload
4699 ; AVX512F-NEXT: # ymm15 = mem[0,1,2,3],ymm6[4,5,6,7]
4700 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
4701 ; AVX512F-NEXT: vinserti64x4 $0, %ymm15, %zmm3, %zmm15
4702 ; AVX512F-NEXT: vmovdqa64 %zmm27, 192(%rsi)
4703 ; AVX512F-NEXT: vmovdqa64 %zmm22, 128(%rsi)
4704 ; AVX512F-NEXT: vmovdqa64 %zmm11, 64(%rsi)
4705 ; AVX512F-NEXT: vmovdqa64 %zmm7, (%rsi)
4706 ; AVX512F-NEXT: vmovdqa64 %zmm5, 192(%rdx)
4707 ; AVX512F-NEXT: vmovdqa64 %zmm4, (%rdx)
4708 ; AVX512F-NEXT: vmovdqa64 %zmm8, 64(%rdx)
4709 ; AVX512F-NEXT: vmovdqa64 %zmm12, 128(%rdx)
4710 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4711 ; AVX512F-NEXT: vmovaps %zmm4, 192(%rcx)
4712 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4713 ; AVX512F-NEXT: vmovaps %zmm4, (%rcx)
4714 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4715 ; AVX512F-NEXT: vmovaps %zmm4, 64(%rcx)
4716 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4717 ; AVX512F-NEXT: vmovaps %zmm4, 128(%rcx)
4718 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4719 ; AVX512F-NEXT: vmovaps %zmm4, 192(%r8)
4720 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4721 ; AVX512F-NEXT: vmovaps %zmm4, (%r8)
4722 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4723 ; AVX512F-NEXT: vmovaps %zmm4, 64(%r8)
4724 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4725 ; AVX512F-NEXT: vmovaps %zmm4, 128(%r8)
4726 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
4727 ; AVX512F-NEXT: vmovaps %zmm3, 192(%r9)
4728 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4729 ; AVX512F-NEXT: vmovaps %zmm4, (%r9)
4730 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4731 ; AVX512F-NEXT: vmovaps %zmm4, 64(%r9)
4732 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4733 ; AVX512F-NEXT: vmovaps %zmm4, 128(%r9)
4734 ; AVX512F-NEXT: movq {{[0-9]+}}(%rsp), %rax
4735 ; AVX512F-NEXT: vmovdqa64 %zmm30, 192(%rax)
4736 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
4737 ; AVX512F-NEXT: vmovaps %zmm3, (%rax)
4738 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
4739 ; AVX512F-NEXT: vmovaps %zmm3, 64(%rax)
4740 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
4741 ; AVX512F-NEXT: vmovaps %zmm3, 128(%rax)
4742 ; AVX512F-NEXT: movq {{[0-9]+}}(%rsp), %rax
4743 ; AVX512F-NEXT: vmovdqa64 %zmm2, 192(%rax)
4744 ; AVX512F-NEXT: vmovdqa64 %zmm1, (%rax)
4745 ; AVX512F-NEXT: vmovdqa64 %zmm0, 64(%rax)
4746 ; AVX512F-NEXT: vmovdqa64 %zmm21, 128(%rax)
4747 ; AVX512F-NEXT: movq {{[0-9]+}}(%rsp), %rax
4748 ; AVX512F-NEXT: vmovdqa64 %zmm15, 128(%rax)
4749 ; AVX512F-NEXT: vmovdqa64 %zmm14, 192(%rax)
4750 ; AVX512F-NEXT: vmovdqa64 %zmm13, (%rax)
4751 ; AVX512F-NEXT: vmovaps %zmm10, 64(%rax)
4752 ; AVX512F-NEXT: addq $2632, %rsp # imm = 0xA48
4753 ; AVX512F-NEXT: vzeroupper
4754 ; AVX512F-NEXT: retq
4756 ; AVX512BW-LABEL: load_i64_stride8_vf32:
4757 ; AVX512BW: # %bb.0:
4758 ; AVX512BW-NEXT: subq $2632, %rsp # imm = 0xA48
4759 ; AVX512BW-NEXT: vmovdqa64 1856(%rdi), %zmm14
4760 ; AVX512BW-NEXT: vmovdqa64 1984(%rdi), %zmm28
4761 ; AVX512BW-NEXT: vmovdqa64 1344(%rdi), %zmm21
4762 ; AVX512BW-NEXT: vmovdqa64 1280(%rdi), %zmm18
4763 ; AVX512BW-NEXT: vmovdqa64 1472(%rdi), %zmm17
4764 ; AVX512BW-NEXT: vmovdqa64 1408(%rdi), %zmm22
4765 ; AVX512BW-NEXT: vmovdqa64 832(%rdi), %zmm7
4766 ; AVX512BW-NEXT: vmovdqa64 768(%rdi), %zmm8
4767 ; AVX512BW-NEXT: vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4768 ; AVX512BW-NEXT: vmovdqa64 960(%rdi), %zmm10
4769 ; AVX512BW-NEXT: vmovdqa64 896(%rdi), %zmm3
4770 ; AVX512BW-NEXT: vmovdqa64 320(%rdi), %zmm15
4771 ; AVX512BW-NEXT: vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4772 ; AVX512BW-NEXT: vmovdqa64 256(%rdi), %zmm30
4773 ; AVX512BW-NEXT: vmovdqa64 448(%rdi), %zmm19
4774 ; AVX512BW-NEXT: vmovdqa64 384(%rdi), %zmm20
4775 ; AVX512BW-NEXT: movb $-64, %al
4776 ; AVX512BW-NEXT: kmovd %eax, %k1
4777 ; AVX512BW-NEXT: vbroadcasti32x4 {{.*#+}} zmm0 = [2,10,2,10,2,10,2,10]
4778 ; AVX512BW-NEXT: # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4779 ; AVX512BW-NEXT: vmovdqa64 %zmm22, %zmm1
4780 ; AVX512BW-NEXT: vpermt2q %zmm17, %zmm0, %zmm1
4781 ; AVX512BW-NEXT: vmovdqa64 %zmm18, %zmm2
4782 ; AVX512BW-NEXT: vpermt2q %zmm21, %zmm0, %zmm2
4783 ; AVX512BW-NEXT: vmovdqa64 %zmm1, %zmm2 {%k1}
4784 ; AVX512BW-NEXT: vmovdqa64 1216(%rdi), %ymm29
4785 ; AVX512BW-NEXT: vmovdqa 1152(%rdi), %ymm13
4786 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} ymm5 = ymm13[0],ymm29[0],ymm13[2],ymm29[2]
4787 ; AVX512BW-NEXT: vmovdqa 1088(%rdi), %ymm6
4788 ; AVX512BW-NEXT: vmovdqa 1024(%rdi), %ymm4
4789 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} ymm9 = ymm4[0],ymm6[0],ymm4[2],ymm6[2]
4790 ; AVX512BW-NEXT: vperm2i128 {{.*#+}} ymm5 = ymm9[2,3],ymm5[2,3]
4791 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm5, %zmm2, %zmm1
4792 ; AVX512BW-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4793 ; AVX512BW-NEXT: vmovdqa64 %zmm3, %zmm2
4794 ; AVX512BW-NEXT: vpermt2q %zmm10, %zmm0, %zmm2
4795 ; AVX512BW-NEXT: vmovdqa64 %zmm10, %zmm24
4796 ; AVX512BW-NEXT: vmovdqa64 %zmm8, %zmm5
4797 ; AVX512BW-NEXT: vpermt2q %zmm7, %zmm0, %zmm5
4798 ; AVX512BW-NEXT: vmovdqa64 %zmm2, %zmm5 {%k1}
4799 ; AVX512BW-NEXT: vmovdqa 704(%rdi), %ymm8
4800 ; AVX512BW-NEXT: vmovdqa 640(%rdi), %ymm9
4801 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} ymm10 = ymm9[0],ymm8[0],ymm9[2],ymm8[2]
4802 ; AVX512BW-NEXT: vmovdqa 576(%rdi), %ymm12
4803 ; AVX512BW-NEXT: vmovdqa64 512(%rdi), %ymm16
4804 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} ymm11 = ymm16[0],ymm12[0],ymm16[2],ymm12[2]
4805 ; AVX512BW-NEXT: vperm2i128 {{.*#+}} ymm10 = ymm11[2,3],ymm10[2,3]
4806 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm10, %zmm5, %zmm1
4807 ; AVX512BW-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4808 ; AVX512BW-NEXT: vmovdqa64 %zmm20, %zmm5
4809 ; AVX512BW-NEXT: vpermt2q %zmm19, %zmm0, %zmm5
4810 ; AVX512BW-NEXT: vmovdqa64 %zmm30, %zmm10
4811 ; AVX512BW-NEXT: vpermt2q %zmm15, %zmm0, %zmm10
4812 ; AVX512BW-NEXT: vmovdqa64 %zmm5, %zmm10 {%k1}
4813 ; AVX512BW-NEXT: vmovdqa 192(%rdi), %ymm5
4814 ; AVX512BW-NEXT: vmovdqa64 128(%rdi), %ymm25
4815 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} ymm11 = ymm25[0],ymm5[0],ymm25[2],ymm5[2]
4816 ; AVX512BW-NEXT: vmovdqa64 64(%rdi), %ymm26
4817 ; AVX512BW-NEXT: vmovdqa64 (%rdi), %ymm27
4818 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} ymm15 = ymm27[0],ymm26[0],ymm27[2],ymm26[2]
4819 ; AVX512BW-NEXT: vperm2i128 {{.*#+}} ymm15 = ymm15[2,3],ymm11[2,3]
4820 ; AVX512BW-NEXT: vmovdqa64 1920(%rdi), %zmm2
4821 ; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4822 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm15, %zmm10, %zmm1
4823 ; AVX512BW-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4824 ; AVX512BW-NEXT: vmovdqa64 %zmm2, %zmm10
4825 ; AVX512BW-NEXT: vmovdqa64 %zmm28, %zmm15
4826 ; AVX512BW-NEXT: vpermt2q %zmm28, %zmm0, %zmm10
4827 ; AVX512BW-NEXT: vmovdqa64 1792(%rdi), %zmm23
4828 ; AVX512BW-NEXT: vmovdqa64 %zmm14, %zmm11
4829 ; AVX512BW-NEXT: vpermi2q %zmm14, %zmm23, %zmm0
4830 ; AVX512BW-NEXT: vmovdqa64 %zmm10, %zmm0 {%k1}
4831 ; AVX512BW-NEXT: vmovdqa 1728(%rdi), %ymm10
4832 ; AVX512BW-NEXT: vmovdqa64 1664(%rdi), %ymm28
4833 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} ymm1 = ymm28[0],ymm10[0],ymm28[2],ymm10[2]
4834 ; AVX512BW-NEXT: vmovdqa64 1600(%rdi), %ymm31
4835 ; AVX512BW-NEXT: vmovdqa 1536(%rdi), %ymm2
4836 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} ymm14 = ymm2[0],ymm31[0],ymm2[2],ymm31[2]
4837 ; AVX512BW-NEXT: vperm2i128 {{.*#+}} ymm1 = ymm14[2,3],ymm1[2,3]
4838 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm1, %zmm0, %zmm0
4839 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4840 ; AVX512BW-NEXT: vbroadcasti32x4 {{.*#+}} zmm0 = [3,11,3,11,3,11,3,11]
4841 ; AVX512BW-NEXT: # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4842 ; AVX512BW-NEXT: vmovdqa64 %zmm22, %zmm1
4843 ; AVX512BW-NEXT: vpermt2q %zmm17, %zmm0, %zmm1
4844 ; AVX512BW-NEXT: vmovdqa64 %zmm18, %zmm14
4845 ; AVX512BW-NEXT: vpermt2q %zmm21, %zmm0, %zmm14
4846 ; AVX512BW-NEXT: vmovdqa64 %zmm1, %zmm14 {%k1}
4847 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} ymm1 = ymm13[1],ymm29[1],ymm13[3],ymm29[3]
4848 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} ymm4 = ymm4[1],ymm6[1],ymm4[3],ymm6[3]
4849 ; AVX512BW-NEXT: vperm2i128 {{.*#+}} ymm1 = ymm4[2,3],ymm1[2,3]
4850 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm1, %zmm14, %zmm1
4851 ; AVX512BW-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4852 ; AVX512BW-NEXT: vmovdqa64 %zmm3, %zmm1
4853 ; AVX512BW-NEXT: vmovdqa64 %zmm3, %zmm13
4854 ; AVX512BW-NEXT: vmovdqu64 %zmm3, (%rsp) # 64-byte Spill
4855 ; AVX512BW-NEXT: vmovdqu64 %zmm24, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4856 ; AVX512BW-NEXT: vpermt2q %zmm24, %zmm0, %zmm1
4857 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
4858 ; AVX512BW-NEXT: vmovdqa64 %zmm6, %zmm4
4859 ; AVX512BW-NEXT: vpermt2q %zmm7, %zmm0, %zmm4
4860 ; AVX512BW-NEXT: vmovdqa64 %zmm7, %zmm29
4861 ; AVX512BW-NEXT: vmovdqa64 %zmm1, %zmm4 {%k1}
4862 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} ymm1 = ymm9[1],ymm8[1],ymm9[3],ymm8[3]
4863 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} ymm3 = ymm16[1],ymm12[1],ymm16[3],ymm12[3]
4864 ; AVX512BW-NEXT: vperm2i128 {{.*#+}} ymm1 = ymm3[2,3],ymm1[2,3]
4865 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm1, %zmm4, %zmm1
4866 ; AVX512BW-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4867 ; AVX512BW-NEXT: vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4868 ; AVX512BW-NEXT: vmovdqa64 %zmm20, %zmm1
4869 ; AVX512BW-NEXT: vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4870 ; AVX512BW-NEXT: vpermt2q %zmm19, %zmm0, %zmm1
4871 ; AVX512BW-NEXT: vmovdqa64 %zmm30, %zmm3
4872 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
4873 ; AVX512BW-NEXT: vpermt2q %zmm14, %zmm0, %zmm3
4874 ; AVX512BW-NEXT: vmovdqa64 %zmm1, %zmm3 {%k1}
4875 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} ymm1 = ymm25[1],ymm5[1],ymm25[3],ymm5[3]
4876 ; AVX512BW-NEXT: vmovdqa64 1216(%rdi), %zmm5
4877 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} ymm4 = ymm27[1],ymm26[1],ymm27[3],ymm26[3]
4878 ; AVX512BW-NEXT: vmovdqa64 1152(%rdi), %zmm8
4879 ; AVX512BW-NEXT: vperm2i128 {{.*#+}} ymm1 = ymm4[2,3],ymm1[2,3]
4880 ; AVX512BW-NEXT: vmovdqa64 1088(%rdi), %zmm9
4881 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm1, %zmm3, %zmm1
4882 ; AVX512BW-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4883 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
4884 ; AVX512BW-NEXT: vmovdqa64 %zmm12, %zmm1
4885 ; AVX512BW-NEXT: vpermt2q %zmm15, %zmm0, %zmm1
4886 ; AVX512BW-NEXT: vmovdqa64 %zmm23, %zmm7
4887 ; AVX512BW-NEXT: vmovdqu64 %zmm23, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4888 ; AVX512BW-NEXT: vpermi2q %zmm11, %zmm23, %zmm0
4889 ; AVX512BW-NEXT: vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4890 ; AVX512BW-NEXT: vmovdqa64 %zmm1, %zmm0 {%k1}
4891 ; AVX512BW-NEXT: vmovdqa64 1024(%rdi), %zmm3
4892 ; AVX512BW-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4893 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} ymm1 = ymm28[1],ymm10[1],ymm28[3],ymm10[3]
4894 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} ymm2 = ymm2[1],ymm31[1],ymm2[3],ymm31[3]
4895 ; AVX512BW-NEXT: vperm2i128 {{.*#+}} ymm1 = ymm2[2,3],ymm1[2,3]
4896 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm1, %zmm0, %zmm0
4897 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4898 ; AVX512BW-NEXT: vbroadcasti32x4 {{.*#+}} zmm0 = [4,12,4,12,4,12,4,12]
4899 ; AVX512BW-NEXT: # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4900 ; AVX512BW-NEXT: vmovdqa64 %zmm22, %zmm1
4901 ; AVX512BW-NEXT: vmovdqa64 %zmm22, %zmm25
4902 ; AVX512BW-NEXT: vpermt2q %zmm17, %zmm0, %zmm1
4903 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} zmm2 = zmm18[0],zmm21[0],zmm18[2],zmm21[2],zmm18[4],zmm21[4],zmm18[6],zmm21[6]
4904 ; AVX512BW-NEXT: vmovdqa64 %zmm1, %zmm2 {%k1}
4905 ; AVX512BW-NEXT: vpermt2q %zmm9, %zmm0, %zmm3
4906 ; AVX512BW-NEXT: vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4907 ; AVX512BW-NEXT: vbroadcasti128 {{.*#+}} ymm1 = [4,12,4,12]
4908 ; AVX512BW-NEXT: # ymm1 = mem[0,1,0,1]
4909 ; AVX512BW-NEXT: vmovdqa64 %zmm8, %zmm4
4910 ; AVX512BW-NEXT: vmovdqa64 %zmm8, %zmm10
4911 ; AVX512BW-NEXT: vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4912 ; AVX512BW-NEXT: vpermt2q %zmm5, %zmm1, %zmm4
4913 ; AVX512BW-NEXT: vmovdqa64 %zmm5, %zmm8
4914 ; AVX512BW-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4915 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm4[4,5,6,7]
4916 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm3, %zmm2, %zmm2
4917 ; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4918 ; AVX512BW-NEXT: vpermt2q %zmm24, %zmm0, %zmm13
4919 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} zmm3 = zmm6[0],zmm29[0],zmm6[2],zmm29[2],zmm6[4],zmm29[4],zmm6[6],zmm29[6]
4920 ; AVX512BW-NEXT: vmovdqa64 %zmm6, %zmm16
4921 ; AVX512BW-NEXT: vmovdqa64 %zmm13, %zmm3 {%k1}
4922 ; AVX512BW-NEXT: vmovdqa64 576(%rdi), %zmm4
4923 ; AVX512BW-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4924 ; AVX512BW-NEXT: vmovdqa64 512(%rdi), %zmm2
4925 ; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4926 ; AVX512BW-NEXT: vpermt2q %zmm4, %zmm0, %zmm2
4927 ; AVX512BW-NEXT: vmovdqa64 704(%rdi), %zmm22
4928 ; AVX512BW-NEXT: vmovdqa64 640(%rdi), %zmm4
4929 ; AVX512BW-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4930 ; AVX512BW-NEXT: vpermt2q %zmm22, %zmm1, %zmm4
4931 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm4[4,5,6,7]
4932 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm2, %zmm3, %zmm2
4933 ; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4934 ; AVX512BW-NEXT: vpermt2q %zmm19, %zmm0, %zmm20
4935 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} zmm3 = zmm30[0],zmm14[0],zmm30[2],zmm14[2],zmm30[4],zmm14[4],zmm30[6],zmm14[6]
4936 ; AVX512BW-NEXT: vmovdqa64 %zmm14, %zmm6
4937 ; AVX512BW-NEXT: vmovdqa64 %zmm20, %zmm3 {%k1}
4938 ; AVX512BW-NEXT: vmovdqa64 64(%rdi), %zmm4
4939 ; AVX512BW-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4940 ; AVX512BW-NEXT: vmovdqa64 (%rdi), %zmm2
4941 ; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4942 ; AVX512BW-NEXT: vpermt2q %zmm4, %zmm0, %zmm2
4943 ; AVX512BW-NEXT: vmovdqa64 192(%rdi), %zmm5
4944 ; AVX512BW-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4945 ; AVX512BW-NEXT: vmovdqa64 128(%rdi), %zmm4
4946 ; AVX512BW-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4947 ; AVX512BW-NEXT: vpermt2q %zmm5, %zmm1, %zmm4
4948 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm4[4,5,6,7]
4949 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm2, %zmm3, %zmm2
4950 ; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4951 ; AVX512BW-NEXT: vmovdqa64 %zmm12, %zmm2
4952 ; AVX512BW-NEXT: vmovdqa64 %zmm12, %zmm23
4953 ; AVX512BW-NEXT: vpermt2q %zmm15, %zmm0, %zmm2
4954 ; AVX512BW-NEXT: vmovdqa64 %zmm15, %zmm28
4955 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} zmm3 = zmm7[0],zmm11[0],zmm7[2],zmm11[2],zmm7[4],zmm11[4],zmm7[6],zmm11[6]
4956 ; AVX512BW-NEXT: vmovdqa64 %zmm2, %zmm3 {%k1}
4957 ; AVX512BW-NEXT: vmovdqa64 1600(%rdi), %zmm2
4958 ; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4959 ; AVX512BW-NEXT: vmovdqa64 1536(%rdi), %zmm5
4960 ; AVX512BW-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4961 ; AVX512BW-NEXT: vpermi2q %zmm2, %zmm5, %zmm0
4962 ; AVX512BW-NEXT: vmovdqa64 1728(%rdi), %zmm2
4963 ; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4964 ; AVX512BW-NEXT: vmovdqa64 1664(%rdi), %zmm5
4965 ; AVX512BW-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4966 ; AVX512BW-NEXT: vpermi2q %zmm2, %zmm5, %zmm1
4967 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4968 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm0, %zmm3, %zmm0
4969 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4970 ; AVX512BW-NEXT: vbroadcasti32x4 {{.*#+}} zmm31 = [0,8,0,8,0,8,0,8]
4971 ; AVX512BW-NEXT: # zmm31 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4972 ; AVX512BW-NEXT: vmovdqa64 %zmm18, %zmm0
4973 ; AVX512BW-NEXT: vpermt2q %zmm21, %zmm31, %zmm0
4974 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4975 ; AVX512BW-NEXT: vbroadcasti32x4 {{.*#+}} zmm24 = [1,9,1,9,1,9,1,9]
4976 ; AVX512BW-NEXT: # zmm24 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4977 ; AVX512BW-NEXT: vmovdqa64 %zmm18, %zmm0
4978 ; AVX512BW-NEXT: vpermt2q %zmm21, %zmm24, %zmm0
4979 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4980 ; AVX512BW-NEXT: vbroadcasti32x4 {{.*#+}} zmm4 = [6,14,6,14,6,14,6,14]
4981 ; AVX512BW-NEXT: # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4982 ; AVX512BW-NEXT: vmovdqa64 %zmm18, %zmm3
4983 ; AVX512BW-NEXT: vpermt2q %zmm21, %zmm4, %zmm3
4984 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} zmm2 = zmm18[1],zmm21[1],zmm18[3],zmm21[3],zmm18[5],zmm21[5],zmm18[7],zmm21[7]
4985 ; AVX512BW-NEXT: vbroadcasti32x4 {{.*#+}} zmm11 = [7,15,7,15,7,15,7,15]
4986 ; AVX512BW-NEXT: # zmm11 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4987 ; AVX512BW-NEXT: vpermt2q %zmm21, %zmm11, %zmm18
4988 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} zmm3 {%k1} = zmm25[0],zmm17[0],zmm25[2],zmm17[2],zmm25[4],zmm17[4],zmm25[6],zmm17[6]
4989 ; AVX512BW-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4990 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} zmm18 {%k1} = zmm25[1],zmm17[1],zmm25[3],zmm17[3],zmm25[5],zmm17[5],zmm25[7],zmm17[7]
4991 ; AVX512BW-NEXT: vmovdqu64 %zmm18, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4992 ; AVX512BW-NEXT: vmovdqa64 %zmm25, %zmm3
4993 ; AVX512BW-NEXT: vmovdqa64 %zmm25, %zmm1
4994 ; AVX512BW-NEXT: vpermt2q %zmm17, %zmm31, %zmm25
4995 ; AVX512BW-NEXT: vmovdqu64 %zmm25, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4996 ; AVX512BW-NEXT: vpermt2q %zmm17, %zmm24, %zmm3
4997 ; AVX512BW-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4998 ; AVX512BW-NEXT: vbroadcasti32x4 {{.*#+}} zmm5 = [5,13,5,13,5,13,5,13]
4999 ; AVX512BW-NEXT: # zmm5 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5000 ; AVX512BW-NEXT: vpermt2q %zmm17, %zmm5, %zmm1
5001 ; AVX512BW-NEXT: vmovdqa64 %zmm1, %zmm2 {%k1}
5002 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
5003 ; AVX512BW-NEXT: vpermt2q %zmm9, %zmm5, %zmm3
5004 ; AVX512BW-NEXT: vbroadcasti128 {{.*#+}} ymm9 = [5,13,5,13]
5005 ; AVX512BW-NEXT: # ymm9 = mem[0,1,0,1]
5006 ; AVX512BW-NEXT: vpermt2q %zmm8, %zmm9, %zmm10
5007 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm10[4,5,6,7]
5008 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm3, %zmm2, %zmm0
5009 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5010 ; AVX512BW-NEXT: vmovdqa64 %zmm16, %zmm2
5011 ; AVX512BW-NEXT: vmovdqa64 %zmm16, %zmm18
5012 ; AVX512BW-NEXT: vpermt2q %zmm29, %zmm31, %zmm18
5013 ; AVX512BW-NEXT: vmovdqa64 %zmm16, %zmm20
5014 ; AVX512BW-NEXT: vpermt2q %zmm29, %zmm24, %zmm20
5015 ; AVX512BW-NEXT: vpermt2q %zmm29, %zmm4, %zmm16
5016 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} zmm15 = zmm2[1],zmm29[1],zmm2[3],zmm29[3],zmm2[5],zmm29[5],zmm2[7],zmm29[7]
5017 ; AVX512BW-NEXT: vpermt2q %zmm29, %zmm11, %zmm2
5018 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5019 ; AVX512BW-NEXT: vmovdqu64 (%rsp), %zmm26 # 64-byte Reload
5020 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} zmm16 {%k1} = zmm26[0],zmm0[0],zmm26[2],zmm0[2],zmm26[4],zmm0[4],zmm26[6],zmm0[6]
5021 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} zmm2 {%k1} = zmm26[1],zmm0[1],zmm26[3],zmm0[3],zmm26[5],zmm0[5],zmm26[7],zmm0[7]
5022 ; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5023 ; AVX512BW-NEXT: vmovdqa64 %zmm26, %zmm2
5024 ; AVX512BW-NEXT: vmovdqa64 %zmm26, %zmm21
5025 ; AVX512BW-NEXT: vpermt2q %zmm0, %zmm31, %zmm26
5026 ; AVX512BW-NEXT: vpermt2q %zmm0, %zmm24, %zmm2
5027 ; AVX512BW-NEXT: vmovdqu64 %zmm2, (%rsp) # 64-byte Spill
5028 ; AVX512BW-NEXT: vpermt2q %zmm0, %zmm5, %zmm21
5029 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
5030 ; AVX512BW-NEXT: vmovdqa64 %zmm14, %zmm3
5031 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5032 ; AVX512BW-NEXT: vpermt2q %zmm0, %zmm5, %zmm3
5033 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
5034 ; AVX512BW-NEXT: vmovdqa64 %zmm22, %zmm29
5035 ; AVX512BW-NEXT: vpermt2q %zmm22, %zmm9, %zmm10
5036 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm10[4,5,6,7]
5037 ; AVX512BW-NEXT: vmovdqa64 %ymm1, %ymm27
5038 ; AVX512BW-NEXT: vmovdqa64 %zmm30, %zmm12
5039 ; AVX512BW-NEXT: vpermt2q %zmm6, %zmm31, %zmm12
5040 ; AVX512BW-NEXT: vmovdqa64 %zmm30, %zmm17
5041 ; AVX512BW-NEXT: vpermt2q %zmm6, %zmm24, %zmm17
5042 ; AVX512BW-NEXT: vmovdqa64 %zmm30, %zmm19
5043 ; AVX512BW-NEXT: vpermt2q %zmm6, %zmm4, %zmm19
5044 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} zmm13 = zmm30[1],zmm6[1],zmm30[3],zmm6[3],zmm30[5],zmm6[5],zmm30[7],zmm6[7]
5045 ; AVX512BW-NEXT: vpermt2q %zmm6, %zmm11, %zmm30
5046 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
5047 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
5048 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} zmm19 {%k1} = zmm22[0],zmm1[0],zmm22[2],zmm1[2],zmm22[4],zmm1[4],zmm22[6],zmm1[6]
5049 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} zmm30 {%k1} = zmm22[1],zmm1[1],zmm22[3],zmm1[3],zmm22[5],zmm1[5],zmm22[7],zmm1[7]
5050 ; AVX512BW-NEXT: vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5051 ; AVX512BW-NEXT: vmovdqa64 %zmm22, %zmm2
5052 ; AVX512BW-NEXT: vmovdqa64 %zmm22, %zmm30
5053 ; AVX512BW-NEXT: vpermt2q %zmm1, %zmm31, %zmm22
5054 ; AVX512BW-NEXT: vpermt2q %zmm1, %zmm24, %zmm2
5055 ; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5056 ; AVX512BW-NEXT: vpermt2q %zmm1, %zmm5, %zmm30
5057 ; AVX512BW-NEXT: vmovdqa64 %zmm23, %zmm7
5058 ; AVX512BW-NEXT: vmovdqa64 %zmm23, %zmm25
5059 ; AVX512BW-NEXT: vmovdqa64 %zmm28, %zmm1
5060 ; AVX512BW-NEXT: vpermt2q %zmm28, %zmm31, %zmm25
5061 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
5062 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
5063 ; AVX512BW-NEXT: vpermi2q %zmm2, %zmm3, %zmm31
5064 ; AVX512BW-NEXT: vmovdqa64 %zmm23, %zmm28
5065 ; AVX512BW-NEXT: vpermt2q %zmm1, %zmm24, %zmm28
5066 ; AVX512BW-NEXT: vpermi2q %zmm2, %zmm3, %zmm24
5067 ; AVX512BW-NEXT: vmovdqa64 %zmm3, %zmm23
5068 ; AVX512BW-NEXT: vpermt2q %zmm2, %zmm4, %zmm23
5069 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} zmm8 = zmm3[1],zmm2[1],zmm3[3],zmm2[3],zmm3[5],zmm2[5],zmm3[7],zmm2[7]
5070 ; AVX512BW-NEXT: vpermt2q %zmm2, %zmm11, %zmm3
5071 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} zmm23 {%k1} = zmm7[0],zmm1[0],zmm7[2],zmm1[2],zmm7[4],zmm1[4],zmm7[6],zmm1[6]
5072 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} zmm3 {%k1} = zmm7[1],zmm1[1],zmm7[3],zmm1[3],zmm7[5],zmm1[5],zmm7[7],zmm1[7]
5073 ; AVX512BW-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5074 ; AVX512BW-NEXT: vmovdqa64 %zmm7, %zmm3
5075 ; AVX512BW-NEXT: vpermt2q %zmm1, %zmm5, %zmm3
5076 ; AVX512BW-NEXT: vmovdqa64 %zmm14, %zmm10
5077 ; AVX512BW-NEXT: vmovdqa64 %zmm4, %zmm7
5078 ; AVX512BW-NEXT: vpermt2q %zmm0, %zmm4, %zmm10
5079 ; AVX512BW-NEXT: vpermt2q %zmm0, %zmm11, %zmm14
5080 ; AVX512BW-NEXT: vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5081 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
5082 ; AVX512BW-NEXT: vmovdqa64 %zmm1, %zmm2
5083 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5084 ; AVX512BW-NEXT: vpermt2q %zmm0, %zmm5, %zmm2
5085 ; AVX512BW-NEXT: vmovdqa64 %zmm1, %zmm4
5086 ; AVX512BW-NEXT: vpermt2q %zmm0, %zmm7, %zmm4
5087 ; AVX512BW-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5088 ; AVX512BW-NEXT: vmovdqa64 %zmm7, %zmm6
5089 ; AVX512BW-NEXT: vpermt2q %zmm0, %zmm11, %zmm1
5090 ; AVX512BW-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5091 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5092 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
5093 ; AVX512BW-NEXT: vpermi2q %zmm14, %zmm0, %zmm5
5094 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
5095 ; AVX512BW-NEXT: vmovdqa64 %zmm4, %zmm7
5096 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
5097 ; AVX512BW-NEXT: vpermt2q %zmm1, %zmm6, %zmm7
5098 ; AVX512BW-NEXT: vpermi2q %zmm14, %zmm0, %zmm6
5099 ; AVX512BW-NEXT: vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5100 ; AVX512BW-NEXT: vpermt2q %zmm14, %zmm11, %zmm0
5101 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5102 ; AVX512BW-NEXT: vpermt2q %zmm1, %zmm11, %zmm4
5103 ; AVX512BW-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5104 ; AVX512BW-NEXT: vmovdqa64 %zmm21, %zmm15 {%k1}
5105 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm27, %zmm15, %zmm0
5106 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5107 ; AVX512BW-NEXT: vmovdqa64 %zmm30, %zmm13 {%k1}
5108 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
5109 ; AVX512BW-NEXT: vmovdqa64 %zmm4, %zmm6
5110 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
5111 ; AVX512BW-NEXT: vpermt2q %zmm14, %zmm9, %zmm6
5112 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm6[4,5,6,7]
5113 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm1, %zmm13, %zmm0
5114 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5115 ; AVX512BW-NEXT: vmovdqa64 %zmm3, %zmm8 {%k1}
5116 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
5117 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
5118 ; AVX512BW-NEXT: vpermi2q %zmm15, %zmm6, %zmm9
5119 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm0 = ymm5[0,1,2,3],ymm9[4,5,6,7]
5120 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm0, %zmm8, %zmm30
5121 ; AVX512BW-NEXT: vbroadcasti128 {{.*#+}} ymm2 = [6,14,6,14]
5122 ; AVX512BW-NEXT: # ymm2 = mem[0,1,0,1]
5123 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
5124 ; AVX512BW-NEXT: vmovdqa64 %zmm1, %zmm5
5125 ; AVX512BW-NEXT: vpermt2q %zmm29, %zmm2, %zmm5
5126 ; AVX512BW-NEXT: vbroadcasti128 {{.*#+}} ymm0 = [7,15,7,15]
5127 ; AVX512BW-NEXT: # ymm0 = mem[0,1,0,1]
5128 ; AVX512BW-NEXT: vpermt2q %zmm29, %zmm0, %zmm1
5129 ; AVX512BW-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5130 ; AVX512BW-NEXT: vmovdqa64 %zmm4, %zmm9
5131 ; AVX512BW-NEXT: vmovdqa64 %zmm4, %zmm1
5132 ; AVX512BW-NEXT: vpermt2q %zmm14, %zmm2, %zmm1
5133 ; AVX512BW-NEXT: vpermt2q %zmm14, %zmm0, %zmm9
5134 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
5135 ; AVX512BW-NEXT: vmovdqa64 %zmm11, %zmm8
5136 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
5137 ; AVX512BW-NEXT: vpermt2q %zmm4, %zmm2, %zmm8
5138 ; AVX512BW-NEXT: vpermi2q %zmm15, %zmm6, %zmm2
5139 ; AVX512BW-NEXT: vpermt2q %zmm15, %zmm0, %zmm6
5140 ; AVX512BW-NEXT: vmovdqa64 %zmm6, %zmm3
5141 ; AVX512BW-NEXT: vpermt2q %zmm4, %zmm0, %zmm11
5142 ; AVX512BW-NEXT: vmovdqa64 %zmm11, %zmm6
5143 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm0 = ymm7[0,1,2,3],ymm8[4,5,6,7]
5144 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
5145 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm0, %zmm4, %zmm21
5146 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm4 = ymm10[0,1,2,3],ymm5[4,5,6,7]
5147 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm4, %zmm16, %zmm0
5148 ; AVX512BW-NEXT: vmovdqa64 %zmm22, %zmm12 {%k1}
5149 ; AVX512BW-NEXT: vmovdqa 64(%rdi), %xmm4
5150 ; AVX512BW-NEXT: vinserti128 $1, 192(%rdi), %ymm4, %ymm4
5151 ; AVX512BW-NEXT: vmovdqa (%rdi), %xmm5
5152 ; AVX512BW-NEXT: vinserti128 $1, 128(%rdi), %ymm5, %ymm5
5153 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} ymm7 = ymm5[0],ymm4[0],ymm5[2],ymm4[2]
5154 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm7, %zmm12, %zmm7
5155 ; AVX512BW-NEXT: vmovdqa64 %zmm26, %zmm18 {%k1}
5156 ; AVX512BW-NEXT: vmovdqa 576(%rdi), %xmm8
5157 ; AVX512BW-NEXT: vinserti128 $1, 704(%rdi), %ymm8, %ymm8
5158 ; AVX512BW-NEXT: vmovdqa 512(%rdi), %xmm10
5159 ; AVX512BW-NEXT: vinserti128 $1, 640(%rdi), %ymm10, %ymm10
5160 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} ymm11 = ymm10[0],ymm8[0],ymm10[2],ymm8[2]
5161 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm11, %zmm18, %zmm11
5162 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
5163 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
5164 ; AVX512BW-NEXT: vmovdqa64 %zmm12, %zmm13 {%k1}
5165 ; AVX512BW-NEXT: vmovdqa 1088(%rdi), %xmm12
5166 ; AVX512BW-NEXT: vinserti128 $1, 1216(%rdi), %ymm12, %ymm12
5167 ; AVX512BW-NEXT: vmovdqa64 1024(%rdi), %xmm16
5168 ; AVX512BW-NEXT: vinserti32x4 $1, 1152(%rdi), %ymm16, %ymm16
5169 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} ymm22 = ymm16[0],ymm12[0],ymm16[2],ymm12[2]
5170 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm22, %zmm13, %zmm22
5171 ; AVX512BW-NEXT: vmovdqa64 %zmm25, %zmm31 {%k1}
5172 ; AVX512BW-NEXT: vmovdqa64 1600(%rdi), %xmm25
5173 ; AVX512BW-NEXT: vinserti32x4 $1, 1728(%rdi), %ymm25, %ymm25
5174 ; AVX512BW-NEXT: vmovdqa64 1536(%rdi), %xmm26
5175 ; AVX512BW-NEXT: vinserti32x4 $1, 1664(%rdi), %ymm26, %ymm26
5176 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} ymm27 = ymm26[0],ymm25[0],ymm26[2],ymm25[2]
5177 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm27, %zmm31, %zmm27
5178 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
5179 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
5180 ; AVX512BW-NEXT: vmovdqa64 %zmm14, %zmm13 {%k1}
5181 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} ymm12 = ymm16[1],ymm12[1],ymm16[3],ymm12[3]
5182 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm12, %zmm13, %zmm12
5183 ; AVX512BW-NEXT: vmovdqu64 (%rsp), %zmm13 # 64-byte Reload
5184 ; AVX512BW-NEXT: vmovdqa64 %zmm13, %zmm20 {%k1}
5185 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} ymm8 = ymm10[1],ymm8[1],ymm10[3],ymm8[3]
5186 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm8, %zmm20, %zmm8
5187 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
5188 ; AVX512BW-NEXT: vmovdqa64 %zmm10, %zmm17 {%k1}
5189 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} ymm4 = ymm5[1],ymm4[1],ymm5[3],ymm4[3]
5190 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm4, %zmm17, %zmm4
5191 ; AVX512BW-NEXT: vmovdqa64 %zmm28, %zmm24 {%k1}
5192 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} ymm5 = ymm26[1],ymm25[1],ymm26[3],ymm25[3]
5193 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm5, %zmm24, %zmm5
5194 ; AVX512BW-NEXT: vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
5195 ; AVX512BW-NEXT: # ymm1 = mem[0,1,2,3],ymm1[4,5,6,7]
5196 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm1, %zmm19, %zmm1
5197 ; AVX512BW-NEXT: vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
5198 ; AVX512BW-NEXT: # ymm2 = mem[0,1,2,3],ymm2[4,5,6,7]
5199 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm2, %zmm23, %zmm2
5200 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
5201 ; AVX512BW-NEXT: vblendps $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
5202 ; AVX512BW-NEXT: # ymm10 = mem[0,1,2,3],ymm10[4,5,6,7]
5203 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
5204 ; AVX512BW-NEXT: vinsertf64x4 $0, %ymm10, %zmm13, %zmm10
5205 ; AVX512BW-NEXT: vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm13 # 32-byte Folded Reload
5206 ; AVX512BW-NEXT: # ymm13 = mem[0,1,2,3],ymm9[4,5,6,7]
5207 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
5208 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm13, %zmm9, %zmm13
5209 ; AVX512BW-NEXT: vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm14 # 32-byte Folded Reload
5210 ; AVX512BW-NEXT: # ymm14 = mem[0,1,2,3],ymm3[4,5,6,7]
5211 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
5212 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm14, %zmm3, %zmm14
5213 ; AVX512BW-NEXT: vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm15 # 32-byte Folded Reload
5214 ; AVX512BW-NEXT: # ymm15 = mem[0,1,2,3],ymm6[4,5,6,7]
5215 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
5216 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm15, %zmm3, %zmm15
5217 ; AVX512BW-NEXT: vmovdqa64 %zmm27, 192(%rsi)
5218 ; AVX512BW-NEXT: vmovdqa64 %zmm22, 128(%rsi)
5219 ; AVX512BW-NEXT: vmovdqa64 %zmm11, 64(%rsi)
5220 ; AVX512BW-NEXT: vmovdqa64 %zmm7, (%rsi)
5221 ; AVX512BW-NEXT: vmovdqa64 %zmm5, 192(%rdx)
5222 ; AVX512BW-NEXT: vmovdqa64 %zmm4, (%rdx)
5223 ; AVX512BW-NEXT: vmovdqa64 %zmm8, 64(%rdx)
5224 ; AVX512BW-NEXT: vmovdqa64 %zmm12, 128(%rdx)
5225 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
5226 ; AVX512BW-NEXT: vmovaps %zmm4, 192(%rcx)
5227 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
5228 ; AVX512BW-NEXT: vmovaps %zmm4, (%rcx)
5229 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
5230 ; AVX512BW-NEXT: vmovaps %zmm4, 64(%rcx)
5231 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
5232 ; AVX512BW-NEXT: vmovaps %zmm4, 128(%rcx)
5233 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
5234 ; AVX512BW-NEXT: vmovaps %zmm4, 192(%r8)
5235 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
5236 ; AVX512BW-NEXT: vmovaps %zmm4, (%r8)
5237 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
5238 ; AVX512BW-NEXT: vmovaps %zmm4, 64(%r8)
5239 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
5240 ; AVX512BW-NEXT: vmovaps %zmm4, 128(%r8)
5241 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
5242 ; AVX512BW-NEXT: vmovaps %zmm3, 192(%r9)
5243 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
5244 ; AVX512BW-NEXT: vmovaps %zmm4, (%r9)
5245 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
5246 ; AVX512BW-NEXT: vmovaps %zmm4, 64(%r9)
5247 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
5248 ; AVX512BW-NEXT: vmovaps %zmm4, 128(%r9)
5249 ; AVX512BW-NEXT: movq {{[0-9]+}}(%rsp), %rax
5250 ; AVX512BW-NEXT: vmovdqa64 %zmm30, 192(%rax)
5251 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
5252 ; AVX512BW-NEXT: vmovaps %zmm3, (%rax)
5253 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
5254 ; AVX512BW-NEXT: vmovaps %zmm3, 64(%rax)
5255 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
5256 ; AVX512BW-NEXT: vmovaps %zmm3, 128(%rax)
5257 ; AVX512BW-NEXT: movq {{[0-9]+}}(%rsp), %rax
5258 ; AVX512BW-NEXT: vmovdqa64 %zmm2, 192(%rax)
5259 ; AVX512BW-NEXT: vmovdqa64 %zmm1, (%rax)
5260 ; AVX512BW-NEXT: vmovdqa64 %zmm0, 64(%rax)
5261 ; AVX512BW-NEXT: vmovdqa64 %zmm21, 128(%rax)
5262 ; AVX512BW-NEXT: movq {{[0-9]+}}(%rsp), %rax
5263 ; AVX512BW-NEXT: vmovdqa64 %zmm15, 128(%rax)
5264 ; AVX512BW-NEXT: vmovdqa64 %zmm14, 192(%rax)
5265 ; AVX512BW-NEXT: vmovdqa64 %zmm13, (%rax)
5266 ; AVX512BW-NEXT: vmovaps %zmm10, 64(%rax)
5267 ; AVX512BW-NEXT: addq $2632, %rsp # imm = 0xA48
5268 ; AVX512BW-NEXT: vzeroupper
5269 ; AVX512BW-NEXT: retq
5270 %wide.vec = load <256 x i64>, ptr %in.vec, align 64
5271 %strided.vec0 = shufflevector <256 x i64> %wide.vec, <256 x i64> poison, <32 x i32> <i32 0, i32 8, i32 16, i32 24, i32 32, i32 40, i32 48, i32 56, i32 64, i32 72, i32 80, i32 88, i32 96, i32 104, i32 112, i32 120, i32 128, i32 136, i32 144, i32 152, i32 160, i32 168, i32 176, i32 184, i32 192, i32 200, i32 208, i32 216, i32 224, i32 232, i32 240, i32 248>
5272 %strided.vec1 = shufflevector <256 x i64> %wide.vec, <256 x i64> poison, <32 x i32> <i32 1, i32 9, i32 17, i32 25, i32 33, i32 41, i32 49, i32 57, i32 65, i32 73, i32 81, i32 89, i32 97, i32 105, i32 113, i32 121, i32 129, i32 137, i32 145, i32 153, i32 161, i32 169, i32 177, i32 185, i32 193, i32 201, i32 209, i32 217, i32 225, i32 233, i32 241, i32 249>
5273 %strided.vec2 = shufflevector <256 x i64> %wide.vec, <256 x i64> poison, <32 x i32> <i32 2, i32 10, i32 18, i32 26, i32 34, i32 42, i32 50, i32 58, i32 66, i32 74, i32 82, i32 90, i32 98, i32 106, i32 114, i32 122, i32 130, i32 138, i32 146, i32 154, i32 162, i32 170, i32 178, i32 186, i32 194, i32 202, i32 210, i32 218, i32 226, i32 234, i32 242, i32 250>
5274 %strided.vec3 = shufflevector <256 x i64> %wide.vec, <256 x i64> poison, <32 x i32> <i32 3, i32 11, i32 19, i32 27, i32 35, i32 43, i32 51, i32 59, i32 67, i32 75, i32 83, i32 91, i32 99, i32 107, i32 115, i32 123, i32 131, i32 139, i32 147, i32 155, i32 163, i32 171, i32 179, i32 187, i32 195, i32 203, i32 211, i32 219, i32 227, i32 235, i32 243, i32 251>
5275 %strided.vec4 = shufflevector <256 x i64> %wide.vec, <256 x i64> poison, <32 x i32> <i32 4, i32 12, i32 20, i32 28, i32 36, i32 44, i32 52, i32 60, i32 68, i32 76, i32 84, i32 92, i32 100, i32 108, i32 116, i32 124, i32 132, i32 140, i32 148, i32 156, i32 164, i32 172, i32 180, i32 188, i32 196, i32 204, i32 212, i32 220, i32 228, i32 236, i32 244, i32 252>
5276 %strided.vec5 = shufflevector <256 x i64> %wide.vec, <256 x i64> poison, <32 x i32> <i32 5, i32 13, i32 21, i32 29, i32 37, i32 45, i32 53, i32 61, i32 69, i32 77, i32 85, i32 93, i32 101, i32 109, i32 117, i32 125, i32 133, i32 141, i32 149, i32 157, i32 165, i32 173, i32 181, i32 189, i32 197, i32 205, i32 213, i32 221, i32 229, i32 237, i32 245, i32 253>
5277 %strided.vec6 = shufflevector <256 x i64> %wide.vec, <256 x i64> poison, <32 x i32> <i32 6, i32 14, i32 22, i32 30, i32 38, i32 46, i32 54, i32 62, i32 70, i32 78, i32 86, i32 94, i32 102, i32 110, i32 118, i32 126, i32 134, i32 142, i32 150, i32 158, i32 166, i32 174, i32 182, i32 190, i32 198, i32 206, i32 214, i32 222, i32 230, i32 238, i32 246, i32 254>
5278 %strided.vec7 = shufflevector <256 x i64> %wide.vec, <256 x i64> poison, <32 x i32> <i32 7, i32 15, i32 23, i32 31, i32 39, i32 47, i32 55, i32 63, i32 71, i32 79, i32 87, i32 95, i32 103, i32 111, i32 119, i32 127, i32 135, i32 143, i32 151, i32 159, i32 167, i32 175, i32 183, i32 191, i32 199, i32 207, i32 215, i32 223, i32 231, i32 239, i32 247, i32 255>
5279 store <32 x i64> %strided.vec0, ptr %out.vec0, align 64
5280 store <32 x i64> %strided.vec1, ptr %out.vec1, align 64
5281 store <32 x i64> %strided.vec2, ptr %out.vec2, align 64
5282 store <32 x i64> %strided.vec3, ptr %out.vec3, align 64
5283 store <32 x i64> %strided.vec4, ptr %out.vec4, align 64
5284 store <32 x i64> %strided.vec5, ptr %out.vec5, align 64
5285 store <32 x i64> %strided.vec6, ptr %out.vec6, align 64
5286 store <32 x i64> %strided.vec7, ptr %out.vec7, align 64
5290 define void @load_i64_stride8_vf64(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4, ptr %out.vec5, ptr %out.vec6, ptr %out.vec7) nounwind {
5291 ; SSE-LABEL: load_i64_stride8_vf64:
5293 ; SSE-NEXT: subq $3720, %rsp # imm = 0xE88
5294 ; SSE-NEXT: movaps 960(%rdi), %xmm0
5295 ; SSE-NEXT: movaps 832(%rdi), %xmm1
5296 ; SSE-NEXT: movaps 768(%rdi), %xmm8
5297 ; SSE-NEXT: movaps 704(%rdi), %xmm2
5298 ; SSE-NEXT: movaps 640(%rdi), %xmm9
5299 ; SSE-NEXT: movaps 576(%rdi), %xmm3
5300 ; SSE-NEXT: movaps 512(%rdi), %xmm10
5301 ; SSE-NEXT: movaps 448(%rdi), %xmm4
5302 ; SSE-NEXT: movaps 384(%rdi), %xmm11
5303 ; SSE-NEXT: movaps 320(%rdi), %xmm5
5304 ; SSE-NEXT: movaps 256(%rdi), %xmm12
5305 ; SSE-NEXT: movaps 192(%rdi), %xmm6
5306 ; SSE-NEXT: movaps 128(%rdi), %xmm13
5307 ; SSE-NEXT: movaps 64(%rdi), %xmm7
5308 ; SSE-NEXT: movaps (%rdi), %xmm14
5309 ; SSE-NEXT: movaps %xmm14, %xmm15
5310 ; SSE-NEXT: movlhps {{.*#+}} xmm15 = xmm15[0],xmm7[0]
5311 ; SSE-NEXT: movaps %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5312 ; SSE-NEXT: unpckhpd {{.*#+}} xmm14 = xmm14[1],xmm7[1]
5313 ; SSE-NEXT: movaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5314 ; SSE-NEXT: movaps %xmm13, %xmm7
5315 ; SSE-NEXT: movlhps {{.*#+}} xmm7 = xmm7[0],xmm6[0]
5316 ; SSE-NEXT: movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5317 ; SSE-NEXT: unpckhpd {{.*#+}} xmm13 = xmm13[1],xmm6[1]
5318 ; SSE-NEXT: movaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5319 ; SSE-NEXT: movaps %xmm12, %xmm6
5320 ; SSE-NEXT: movlhps {{.*#+}} xmm6 = xmm6[0],xmm5[0]
5321 ; SSE-NEXT: movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5322 ; SSE-NEXT: unpckhpd {{.*#+}} xmm12 = xmm12[1],xmm5[1]
5323 ; SSE-NEXT: movaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5324 ; SSE-NEXT: movaps %xmm11, %xmm5
5325 ; SSE-NEXT: movlhps {{.*#+}} xmm5 = xmm5[0],xmm4[0]
5326 ; SSE-NEXT: movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5327 ; SSE-NEXT: unpckhpd {{.*#+}} xmm11 = xmm11[1],xmm4[1]
5328 ; SSE-NEXT: movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5329 ; SSE-NEXT: movaps %xmm10, %xmm4
5330 ; SSE-NEXT: movlhps {{.*#+}} xmm4 = xmm4[0],xmm3[0]
5331 ; SSE-NEXT: movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5332 ; SSE-NEXT: unpckhpd {{.*#+}} xmm10 = xmm10[1],xmm3[1]
5333 ; SSE-NEXT: movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5334 ; SSE-NEXT: movaps %xmm9, %xmm3
5335 ; SSE-NEXT: movlhps {{.*#+}} xmm3 = xmm3[0],xmm2[0]
5336 ; SSE-NEXT: movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5337 ; SSE-NEXT: unpckhpd {{.*#+}} xmm9 = xmm9[1],xmm2[1]
5338 ; SSE-NEXT: movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5339 ; SSE-NEXT: movaps %xmm8, %xmm2
5340 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm1[0]
5341 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5342 ; SSE-NEXT: unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm1[1]
5343 ; SSE-NEXT: movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5344 ; SSE-NEXT: movaps 896(%rdi), %xmm1
5345 ; SSE-NEXT: movaps %xmm1, %xmm2
5346 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5347 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5348 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5349 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5350 ; SSE-NEXT: movaps 1088(%rdi), %xmm0
5351 ; SSE-NEXT: movaps 1024(%rdi), %xmm1
5352 ; SSE-NEXT: movaps %xmm1, %xmm2
5353 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5354 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5355 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5356 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5357 ; SSE-NEXT: movaps 1216(%rdi), %xmm0
5358 ; SSE-NEXT: movaps 1152(%rdi), %xmm1
5359 ; SSE-NEXT: movaps %xmm1, %xmm2
5360 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5361 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5362 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5363 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5364 ; SSE-NEXT: movaps 1344(%rdi), %xmm0
5365 ; SSE-NEXT: movaps 1280(%rdi), %xmm1
5366 ; SSE-NEXT: movaps %xmm1, %xmm2
5367 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5368 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5369 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5370 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5371 ; SSE-NEXT: movaps 1472(%rdi), %xmm0
5372 ; SSE-NEXT: movaps 1408(%rdi), %xmm1
5373 ; SSE-NEXT: movaps %xmm1, %xmm2
5374 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5375 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5376 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5377 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5378 ; SSE-NEXT: movaps 1600(%rdi), %xmm0
5379 ; SSE-NEXT: movaps 1536(%rdi), %xmm1
5380 ; SSE-NEXT: movaps %xmm1, %xmm2
5381 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5382 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5383 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5384 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5385 ; SSE-NEXT: movaps 1728(%rdi), %xmm0
5386 ; SSE-NEXT: movaps 1664(%rdi), %xmm1
5387 ; SSE-NEXT: movaps %xmm1, %xmm2
5388 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5389 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5390 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5391 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5392 ; SSE-NEXT: movaps 1856(%rdi), %xmm0
5393 ; SSE-NEXT: movaps 1792(%rdi), %xmm1
5394 ; SSE-NEXT: movaps %xmm1, %xmm2
5395 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5396 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5397 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5398 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5399 ; SSE-NEXT: movaps 1984(%rdi), %xmm0
5400 ; SSE-NEXT: movaps 1920(%rdi), %xmm1
5401 ; SSE-NEXT: movaps %xmm1, %xmm2
5402 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5403 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5404 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5405 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5406 ; SSE-NEXT: movaps 2112(%rdi), %xmm0
5407 ; SSE-NEXT: movaps 2048(%rdi), %xmm1
5408 ; SSE-NEXT: movaps %xmm1, %xmm2
5409 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5410 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5411 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5412 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5413 ; SSE-NEXT: movaps 2240(%rdi), %xmm0
5414 ; SSE-NEXT: movaps 2176(%rdi), %xmm1
5415 ; SSE-NEXT: movaps %xmm1, %xmm2
5416 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5417 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5418 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5419 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5420 ; SSE-NEXT: movaps 2368(%rdi), %xmm0
5421 ; SSE-NEXT: movaps 2304(%rdi), %xmm1
5422 ; SSE-NEXT: movaps %xmm1, %xmm2
5423 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5424 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5425 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5426 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5427 ; SSE-NEXT: movaps 2496(%rdi), %xmm0
5428 ; SSE-NEXT: movaps 2432(%rdi), %xmm1
5429 ; SSE-NEXT: movaps %xmm1, %xmm2
5430 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5431 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5432 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5433 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5434 ; SSE-NEXT: movaps 2624(%rdi), %xmm0
5435 ; SSE-NEXT: movaps 2560(%rdi), %xmm1
5436 ; SSE-NEXT: movaps %xmm1, %xmm2
5437 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5438 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5439 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5440 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5441 ; SSE-NEXT: movaps 2752(%rdi), %xmm0
5442 ; SSE-NEXT: movaps 2688(%rdi), %xmm1
5443 ; SSE-NEXT: movaps %xmm1, %xmm2
5444 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5445 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5446 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5447 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5448 ; SSE-NEXT: movaps 2880(%rdi), %xmm0
5449 ; SSE-NEXT: movaps 2816(%rdi), %xmm1
5450 ; SSE-NEXT: movaps %xmm1, %xmm2
5451 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5452 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5453 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5454 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5455 ; SSE-NEXT: movaps 3008(%rdi), %xmm0
5456 ; SSE-NEXT: movaps 2944(%rdi), %xmm1
5457 ; SSE-NEXT: movaps %xmm1, %xmm2
5458 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5459 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5460 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5461 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5462 ; SSE-NEXT: movaps 3136(%rdi), %xmm0
5463 ; SSE-NEXT: movaps 3072(%rdi), %xmm1
5464 ; SSE-NEXT: movaps %xmm1, %xmm2
5465 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5466 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5467 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5468 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5469 ; SSE-NEXT: movaps 3264(%rdi), %xmm0
5470 ; SSE-NEXT: movaps 3200(%rdi), %xmm1
5471 ; SSE-NEXT: movaps %xmm1, %xmm2
5472 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5473 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5474 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5475 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5476 ; SSE-NEXT: movaps 3392(%rdi), %xmm0
5477 ; SSE-NEXT: movaps 3328(%rdi), %xmm1
5478 ; SSE-NEXT: movaps %xmm1, %xmm2
5479 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5480 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5481 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5482 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5483 ; SSE-NEXT: movaps 3520(%rdi), %xmm0
5484 ; SSE-NEXT: movaps 3456(%rdi), %xmm1
5485 ; SSE-NEXT: movaps %xmm1, %xmm2
5486 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5487 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5488 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5489 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5490 ; SSE-NEXT: movaps 3648(%rdi), %xmm0
5491 ; SSE-NEXT: movaps 3584(%rdi), %xmm1
5492 ; SSE-NEXT: movaps %xmm1, %xmm2
5493 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5494 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5495 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5496 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5497 ; SSE-NEXT: movaps 3776(%rdi), %xmm0
5498 ; SSE-NEXT: movaps 3712(%rdi), %xmm1
5499 ; SSE-NEXT: movaps %xmm1, %xmm2
5500 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5501 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5502 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5503 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5504 ; SSE-NEXT: movaps 3904(%rdi), %xmm0
5505 ; SSE-NEXT: movaps 3840(%rdi), %xmm1
5506 ; SSE-NEXT: movaps %xmm1, %xmm2
5507 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5508 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5509 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5510 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5511 ; SSE-NEXT: movaps 4032(%rdi), %xmm0
5512 ; SSE-NEXT: movaps 3968(%rdi), %xmm1
5513 ; SSE-NEXT: movaps %xmm1, %xmm7
5514 ; SSE-NEXT: movlhps {{.*#+}} xmm7 = xmm7[0],xmm0[0]
5515 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5516 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5517 ; SSE-NEXT: movaps 80(%rdi), %xmm0
5518 ; SSE-NEXT: movaps 16(%rdi), %xmm1
5519 ; SSE-NEXT: movaps %xmm1, %xmm2
5520 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5521 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5522 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5523 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5524 ; SSE-NEXT: movaps 208(%rdi), %xmm0
5525 ; SSE-NEXT: movaps 144(%rdi), %xmm1
5526 ; SSE-NEXT: movaps %xmm1, %xmm2
5527 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5528 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5529 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5530 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5531 ; SSE-NEXT: movaps 336(%rdi), %xmm0
5532 ; SSE-NEXT: movaps 272(%rdi), %xmm1
5533 ; SSE-NEXT: movaps %xmm1, %xmm2
5534 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5535 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5536 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5537 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5538 ; SSE-NEXT: movaps 464(%rdi), %xmm0
5539 ; SSE-NEXT: movaps 400(%rdi), %xmm1
5540 ; SSE-NEXT: movaps %xmm1, %xmm2
5541 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5542 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5543 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5544 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5545 ; SSE-NEXT: movaps 592(%rdi), %xmm0
5546 ; SSE-NEXT: movaps 528(%rdi), %xmm1
5547 ; SSE-NEXT: movaps %xmm1, %xmm2
5548 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5549 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5550 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5551 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5552 ; SSE-NEXT: movaps 720(%rdi), %xmm0
5553 ; SSE-NEXT: movaps 656(%rdi), %xmm1
5554 ; SSE-NEXT: movaps %xmm1, %xmm2
5555 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5556 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5557 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5558 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5559 ; SSE-NEXT: movaps 848(%rdi), %xmm0
5560 ; SSE-NEXT: movaps 784(%rdi), %xmm1
5561 ; SSE-NEXT: movaps %xmm1, %xmm2
5562 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5563 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5564 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5565 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5566 ; SSE-NEXT: movaps 976(%rdi), %xmm0
5567 ; SSE-NEXT: movaps 912(%rdi), %xmm1
5568 ; SSE-NEXT: movaps %xmm1, %xmm2
5569 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5570 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5571 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5572 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5573 ; SSE-NEXT: movaps 1104(%rdi), %xmm0
5574 ; SSE-NEXT: movaps 1040(%rdi), %xmm1
5575 ; SSE-NEXT: movaps %xmm1, %xmm2
5576 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5577 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5578 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5579 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5580 ; SSE-NEXT: movaps 1232(%rdi), %xmm0
5581 ; SSE-NEXT: movaps 1168(%rdi), %xmm1
5582 ; SSE-NEXT: movaps %xmm1, %xmm2
5583 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5584 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5585 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5586 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5587 ; SSE-NEXT: movaps 1360(%rdi), %xmm0
5588 ; SSE-NEXT: movaps 1296(%rdi), %xmm1
5589 ; SSE-NEXT: movaps %xmm1, %xmm2
5590 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5591 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5592 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5593 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5594 ; SSE-NEXT: movaps 1488(%rdi), %xmm0
5595 ; SSE-NEXT: movaps 1424(%rdi), %xmm1
5596 ; SSE-NEXT: movaps %xmm1, %xmm2
5597 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5598 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5599 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5600 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5601 ; SSE-NEXT: movaps 1616(%rdi), %xmm0
5602 ; SSE-NEXT: movaps 1552(%rdi), %xmm1
5603 ; SSE-NEXT: movaps %xmm1, %xmm2
5604 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5605 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5606 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5607 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5608 ; SSE-NEXT: movaps 1744(%rdi), %xmm0
5609 ; SSE-NEXT: movaps 1680(%rdi), %xmm1
5610 ; SSE-NEXT: movaps %xmm1, %xmm2
5611 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5612 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5613 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5614 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5615 ; SSE-NEXT: movaps 1872(%rdi), %xmm0
5616 ; SSE-NEXT: movaps 1808(%rdi), %xmm1
5617 ; SSE-NEXT: movaps %xmm1, %xmm2
5618 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5619 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5620 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5621 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5622 ; SSE-NEXT: movaps 2000(%rdi), %xmm0
5623 ; SSE-NEXT: movaps 1936(%rdi), %xmm1
5624 ; SSE-NEXT: movaps %xmm1, %xmm2
5625 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5626 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5627 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5628 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5629 ; SSE-NEXT: movaps 2128(%rdi), %xmm0
5630 ; SSE-NEXT: movaps 2064(%rdi), %xmm1
5631 ; SSE-NEXT: movaps %xmm1, %xmm2
5632 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5633 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5634 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5635 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5636 ; SSE-NEXT: movaps 2256(%rdi), %xmm0
5637 ; SSE-NEXT: movaps 2192(%rdi), %xmm1
5638 ; SSE-NEXT: movaps %xmm1, %xmm2
5639 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5640 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5641 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5642 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5643 ; SSE-NEXT: movaps 2384(%rdi), %xmm0
5644 ; SSE-NEXT: movaps 2320(%rdi), %xmm1
5645 ; SSE-NEXT: movaps %xmm1, %xmm2
5646 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5647 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5648 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5649 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5650 ; SSE-NEXT: movaps 2512(%rdi), %xmm0
5651 ; SSE-NEXT: movaps 2448(%rdi), %xmm1
5652 ; SSE-NEXT: movaps %xmm1, %xmm2
5653 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5654 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5655 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5656 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5657 ; SSE-NEXT: movaps 2640(%rdi), %xmm0
5658 ; SSE-NEXT: movaps 2576(%rdi), %xmm1
5659 ; SSE-NEXT: movaps %xmm1, %xmm2
5660 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5661 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5662 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5663 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5664 ; SSE-NEXT: movaps 2768(%rdi), %xmm0
5665 ; SSE-NEXT: movaps 2704(%rdi), %xmm1
5666 ; SSE-NEXT: movaps %xmm1, %xmm2
5667 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5668 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5669 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5670 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5671 ; SSE-NEXT: movaps 2896(%rdi), %xmm0
5672 ; SSE-NEXT: movaps 2832(%rdi), %xmm1
5673 ; SSE-NEXT: movaps %xmm1, %xmm2
5674 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5675 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5676 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5677 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5678 ; SSE-NEXT: movaps 3024(%rdi), %xmm0
5679 ; SSE-NEXT: movaps 2960(%rdi), %xmm1
5680 ; SSE-NEXT: movaps %xmm1, %xmm2
5681 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5682 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5683 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5684 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5685 ; SSE-NEXT: movaps 3152(%rdi), %xmm0
5686 ; SSE-NEXT: movaps 3088(%rdi), %xmm1
5687 ; SSE-NEXT: movaps %xmm1, %xmm2
5688 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5689 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5690 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5691 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5692 ; SSE-NEXT: movaps 3280(%rdi), %xmm0
5693 ; SSE-NEXT: movaps 3216(%rdi), %xmm1
5694 ; SSE-NEXT: movaps %xmm1, %xmm2
5695 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5696 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5697 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5698 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5699 ; SSE-NEXT: movaps 3408(%rdi), %xmm0
5700 ; SSE-NEXT: movaps 3344(%rdi), %xmm1
5701 ; SSE-NEXT: movaps %xmm1, %xmm2
5702 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5703 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5704 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5705 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5706 ; SSE-NEXT: movaps 3536(%rdi), %xmm0
5707 ; SSE-NEXT: movaps 3472(%rdi), %xmm1
5708 ; SSE-NEXT: movaps %xmm1, %xmm2
5709 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5710 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5711 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5712 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5713 ; SSE-NEXT: movaps 3664(%rdi), %xmm0
5714 ; SSE-NEXT: movaps 3600(%rdi), %xmm1
5715 ; SSE-NEXT: movaps %xmm1, %xmm2
5716 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5717 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5718 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5719 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5720 ; SSE-NEXT: movaps 3792(%rdi), %xmm0
5721 ; SSE-NEXT: movaps 3728(%rdi), %xmm1
5722 ; SSE-NEXT: movaps %xmm1, %xmm2
5723 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5724 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5725 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5726 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5727 ; SSE-NEXT: movaps 3920(%rdi), %xmm0
5728 ; SSE-NEXT: movaps 3856(%rdi), %xmm1
5729 ; SSE-NEXT: movaps %xmm1, %xmm2
5730 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5731 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5732 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5733 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5734 ; SSE-NEXT: movaps 4048(%rdi), %xmm0
5735 ; SSE-NEXT: movaps 3984(%rdi), %xmm1
5736 ; SSE-NEXT: movaps %xmm1, %xmm2
5737 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5738 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5739 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5740 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5741 ; SSE-NEXT: movaps 96(%rdi), %xmm0
5742 ; SSE-NEXT: movaps 32(%rdi), %xmm1
5743 ; SSE-NEXT: movaps %xmm1, %xmm2
5744 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5745 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5746 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5747 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5748 ; SSE-NEXT: movaps 224(%rdi), %xmm0
5749 ; SSE-NEXT: movaps 160(%rdi), %xmm1
5750 ; SSE-NEXT: movaps %xmm1, %xmm2
5751 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5752 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5753 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5754 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5755 ; SSE-NEXT: movaps 352(%rdi), %xmm0
5756 ; SSE-NEXT: movaps 288(%rdi), %xmm1
5757 ; SSE-NEXT: movaps %xmm1, %xmm2
5758 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5759 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5760 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5761 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5762 ; SSE-NEXT: movaps 480(%rdi), %xmm0
5763 ; SSE-NEXT: movaps 416(%rdi), %xmm1
5764 ; SSE-NEXT: movaps %xmm1, %xmm2
5765 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5766 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5767 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5768 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5769 ; SSE-NEXT: movaps 608(%rdi), %xmm0
5770 ; SSE-NEXT: movaps 544(%rdi), %xmm1
5771 ; SSE-NEXT: movaps %xmm1, %xmm2
5772 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5773 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5774 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5775 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5776 ; SSE-NEXT: movaps 736(%rdi), %xmm0
5777 ; SSE-NEXT: movaps 672(%rdi), %xmm1
5778 ; SSE-NEXT: movaps %xmm1, %xmm2
5779 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5780 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5781 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5782 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5783 ; SSE-NEXT: movaps 864(%rdi), %xmm0
5784 ; SSE-NEXT: movaps 800(%rdi), %xmm1
5785 ; SSE-NEXT: movaps %xmm1, %xmm2
5786 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5787 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5788 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5789 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5790 ; SSE-NEXT: movaps 992(%rdi), %xmm0
5791 ; SSE-NEXT: movaps 928(%rdi), %xmm1
5792 ; SSE-NEXT: movaps %xmm1, %xmm2
5793 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5794 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5795 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5796 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5797 ; SSE-NEXT: movaps 1120(%rdi), %xmm0
5798 ; SSE-NEXT: movaps 1056(%rdi), %xmm1
5799 ; SSE-NEXT: movaps %xmm1, %xmm2
5800 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5801 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5802 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5803 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5804 ; SSE-NEXT: movaps 1248(%rdi), %xmm0
5805 ; SSE-NEXT: movaps 1184(%rdi), %xmm1
5806 ; SSE-NEXT: movaps %xmm1, %xmm2
5807 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5808 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5809 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5810 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5811 ; SSE-NEXT: movaps 1376(%rdi), %xmm0
5812 ; SSE-NEXT: movaps 1312(%rdi), %xmm1
5813 ; SSE-NEXT: movaps %xmm1, %xmm2
5814 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5815 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5816 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5817 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5818 ; SSE-NEXT: movaps 1504(%rdi), %xmm0
5819 ; SSE-NEXT: movaps 1440(%rdi), %xmm1
5820 ; SSE-NEXT: movaps %xmm1, %xmm2
5821 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5822 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5823 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5824 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5825 ; SSE-NEXT: movaps 1632(%rdi), %xmm0
5826 ; SSE-NEXT: movaps 1568(%rdi), %xmm1
5827 ; SSE-NEXT: movaps %xmm1, %xmm2
5828 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5829 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5830 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5831 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5832 ; SSE-NEXT: movaps 1760(%rdi), %xmm0
5833 ; SSE-NEXT: movaps 1696(%rdi), %xmm1
5834 ; SSE-NEXT: movaps %xmm1, %xmm2
5835 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5836 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5837 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5838 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5839 ; SSE-NEXT: movaps 1888(%rdi), %xmm0
5840 ; SSE-NEXT: movaps 1824(%rdi), %xmm1
5841 ; SSE-NEXT: movaps %xmm1, %xmm2
5842 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5843 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5844 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5845 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5846 ; SSE-NEXT: movaps 2016(%rdi), %xmm0
5847 ; SSE-NEXT: movaps 1952(%rdi), %xmm1
5848 ; SSE-NEXT: movaps %xmm1, %xmm2
5849 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5850 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5851 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5852 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5853 ; SSE-NEXT: movaps 2144(%rdi), %xmm0
5854 ; SSE-NEXT: movaps 2080(%rdi), %xmm1
5855 ; SSE-NEXT: movaps %xmm1, %xmm2
5856 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5857 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5858 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5859 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5860 ; SSE-NEXT: movaps 2272(%rdi), %xmm0
5861 ; SSE-NEXT: movaps 2208(%rdi), %xmm1
5862 ; SSE-NEXT: movaps %xmm1, %xmm2
5863 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5864 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5865 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5866 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5867 ; SSE-NEXT: movaps 2400(%rdi), %xmm0
5868 ; SSE-NEXT: movaps 2336(%rdi), %xmm1
5869 ; SSE-NEXT: movaps %xmm1, %xmm2
5870 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5871 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5872 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5873 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5874 ; SSE-NEXT: movaps 2528(%rdi), %xmm0
5875 ; SSE-NEXT: movaps 2464(%rdi), %xmm1
5876 ; SSE-NEXT: movaps %xmm1, %xmm2
5877 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5878 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5879 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5880 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5881 ; SSE-NEXT: movaps 2656(%rdi), %xmm0
5882 ; SSE-NEXT: movaps 2592(%rdi), %xmm1
5883 ; SSE-NEXT: movaps %xmm1, %xmm2
5884 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5885 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5886 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5887 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5888 ; SSE-NEXT: movaps 2784(%rdi), %xmm0
5889 ; SSE-NEXT: movaps 2720(%rdi), %xmm1
5890 ; SSE-NEXT: movaps %xmm1, %xmm2
5891 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5892 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5893 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5894 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5895 ; SSE-NEXT: movaps 2912(%rdi), %xmm0
5896 ; SSE-NEXT: movaps 2848(%rdi), %xmm1
5897 ; SSE-NEXT: movaps %xmm1, %xmm2
5898 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5899 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5900 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5901 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5902 ; SSE-NEXT: movaps 3040(%rdi), %xmm0
5903 ; SSE-NEXT: movaps 2976(%rdi), %xmm1
5904 ; SSE-NEXT: movaps %xmm1, %xmm2
5905 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5906 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5907 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5908 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5909 ; SSE-NEXT: movaps 3168(%rdi), %xmm0
5910 ; SSE-NEXT: movaps 3104(%rdi), %xmm1
5911 ; SSE-NEXT: movaps %xmm1, %xmm2
5912 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5913 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5914 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5915 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5916 ; SSE-NEXT: movaps 3296(%rdi), %xmm0
5917 ; SSE-NEXT: movaps 3232(%rdi), %xmm1
5918 ; SSE-NEXT: movaps %xmm1, %xmm2
5919 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5920 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5921 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5922 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5923 ; SSE-NEXT: movaps 3424(%rdi), %xmm0
5924 ; SSE-NEXT: movaps 3360(%rdi), %xmm1
5925 ; SSE-NEXT: movaps %xmm1, %xmm2
5926 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5927 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5928 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5929 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5930 ; SSE-NEXT: movaps 3552(%rdi), %xmm0
5931 ; SSE-NEXT: movaps 3488(%rdi), %xmm1
5932 ; SSE-NEXT: movaps %xmm1, %xmm2
5933 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5934 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5935 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5936 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5937 ; SSE-NEXT: movaps 3680(%rdi), %xmm0
5938 ; SSE-NEXT: movaps 3616(%rdi), %xmm1
5939 ; SSE-NEXT: movaps %xmm1, %xmm2
5940 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5941 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5942 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5943 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5944 ; SSE-NEXT: movaps 3808(%rdi), %xmm0
5945 ; SSE-NEXT: movaps 3744(%rdi), %xmm1
5946 ; SSE-NEXT: movaps %xmm1, %xmm2
5947 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5948 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5949 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5950 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5951 ; SSE-NEXT: movaps 3936(%rdi), %xmm0
5952 ; SSE-NEXT: movaps 3872(%rdi), %xmm1
5953 ; SSE-NEXT: movaps %xmm1, %xmm2
5954 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5955 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5956 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5957 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5958 ; SSE-NEXT: movaps 4064(%rdi), %xmm0
5959 ; SSE-NEXT: movaps 4000(%rdi), %xmm1
5960 ; SSE-NEXT: movaps %xmm1, %xmm2
5961 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5962 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5963 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5964 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5965 ; SSE-NEXT: movaps 112(%rdi), %xmm0
5966 ; SSE-NEXT: movaps 48(%rdi), %xmm1
5967 ; SSE-NEXT: movaps %xmm1, %xmm2
5968 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5969 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5970 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5971 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5972 ; SSE-NEXT: movaps 240(%rdi), %xmm0
5973 ; SSE-NEXT: movaps 176(%rdi), %xmm1
5974 ; SSE-NEXT: movaps %xmm1, %xmm2
5975 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5976 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5977 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5978 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5979 ; SSE-NEXT: movaps 368(%rdi), %xmm0
5980 ; SSE-NEXT: movaps 304(%rdi), %xmm1
5981 ; SSE-NEXT: movaps %xmm1, %xmm2
5982 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5983 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5984 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5985 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5986 ; SSE-NEXT: movaps 496(%rdi), %xmm0
5987 ; SSE-NEXT: movaps 432(%rdi), %xmm1
5988 ; SSE-NEXT: movaps %xmm1, %xmm2
5989 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5990 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5991 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5992 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5993 ; SSE-NEXT: movaps 624(%rdi), %xmm0
5994 ; SSE-NEXT: movaps 560(%rdi), %xmm1
5995 ; SSE-NEXT: movaps %xmm1, %xmm2
5996 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
5997 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5998 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
5999 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6000 ; SSE-NEXT: movaps 752(%rdi), %xmm0
6001 ; SSE-NEXT: movaps 688(%rdi), %xmm1
6002 ; SSE-NEXT: movaps %xmm1, %xmm2
6003 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
6004 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6005 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
6006 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6007 ; SSE-NEXT: movaps 880(%rdi), %xmm0
6008 ; SSE-NEXT: movaps 816(%rdi), %xmm1
6009 ; SSE-NEXT: movaps %xmm1, %xmm2
6010 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
6011 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6012 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
6013 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6014 ; SSE-NEXT: movaps 1008(%rdi), %xmm0
6015 ; SSE-NEXT: movaps 944(%rdi), %xmm1
6016 ; SSE-NEXT: movaps %xmm1, %xmm2
6017 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
6018 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6019 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
6020 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6021 ; SSE-NEXT: movaps 1136(%rdi), %xmm0
6022 ; SSE-NEXT: movaps 1072(%rdi), %xmm1
6023 ; SSE-NEXT: movaps %xmm1, %xmm2
6024 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
6025 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6026 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
6027 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6028 ; SSE-NEXT: movaps 1264(%rdi), %xmm0
6029 ; SSE-NEXT: movaps 1200(%rdi), %xmm1
6030 ; SSE-NEXT: movaps %xmm1, %xmm2
6031 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
6032 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6033 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
6034 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6035 ; SSE-NEXT: movaps 1392(%rdi), %xmm0
6036 ; SSE-NEXT: movaps 1328(%rdi), %xmm1
6037 ; SSE-NEXT: movaps %xmm1, %xmm2
6038 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
6039 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6040 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
6041 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6042 ; SSE-NEXT: movaps 1520(%rdi), %xmm0
6043 ; SSE-NEXT: movaps 1456(%rdi), %xmm1
6044 ; SSE-NEXT: movaps %xmm1, %xmm2
6045 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
6046 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6047 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
6048 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6049 ; SSE-NEXT: movaps 1648(%rdi), %xmm0
6050 ; SSE-NEXT: movaps 1584(%rdi), %xmm1
6051 ; SSE-NEXT: movaps %xmm1, %xmm2
6052 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
6053 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6054 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
6055 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6056 ; SSE-NEXT: movaps 1776(%rdi), %xmm0
6057 ; SSE-NEXT: movaps 1712(%rdi), %xmm1
6058 ; SSE-NEXT: movaps %xmm1, %xmm2
6059 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
6060 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6061 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
6062 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6063 ; SSE-NEXT: movaps 1904(%rdi), %xmm0
6064 ; SSE-NEXT: movaps 1840(%rdi), %xmm1
6065 ; SSE-NEXT: movaps %xmm1, %xmm2
6066 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
6067 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6068 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
6069 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6070 ; SSE-NEXT: movaps 2032(%rdi), %xmm0
6071 ; SSE-NEXT: movaps 1968(%rdi), %xmm1
6072 ; SSE-NEXT: movaps %xmm1, %xmm2
6073 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
6074 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6075 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
6076 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6077 ; SSE-NEXT: movaps 2160(%rdi), %xmm0
6078 ; SSE-NEXT: movaps 2096(%rdi), %xmm1
6079 ; SSE-NEXT: movaps %xmm1, %xmm2
6080 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
6081 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6082 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
6083 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6084 ; SSE-NEXT: movaps 2288(%rdi), %xmm0
6085 ; SSE-NEXT: movaps 2224(%rdi), %xmm1
6086 ; SSE-NEXT: movaps %xmm1, %xmm2
6087 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
6088 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6089 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
6090 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6091 ; SSE-NEXT: movaps 2416(%rdi), %xmm0
6092 ; SSE-NEXT: movaps 2352(%rdi), %xmm1
6093 ; SSE-NEXT: movaps %xmm1, %xmm2
6094 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
6095 ; SSE-NEXT: movaps %xmm2, (%rsp) # 16-byte Spill
6096 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
6097 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6098 ; SSE-NEXT: movaps 2544(%rdi), %xmm0
6099 ; SSE-NEXT: movaps 2480(%rdi), %xmm1
6100 ; SSE-NEXT: movaps %xmm1, %xmm2
6101 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
6102 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6103 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
6104 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6105 ; SSE-NEXT: movaps 2672(%rdi), %xmm0
6106 ; SSE-NEXT: movaps 2608(%rdi), %xmm1
6107 ; SSE-NEXT: movaps %xmm1, %xmm2
6108 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
6109 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6110 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
6111 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6112 ; SSE-NEXT: movaps 2800(%rdi), %xmm0
6113 ; SSE-NEXT: movaps 2736(%rdi), %xmm1
6114 ; SSE-NEXT: movaps %xmm1, %xmm2
6115 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
6116 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6117 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
6118 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6119 ; SSE-NEXT: movaps 2928(%rdi), %xmm0
6120 ; SSE-NEXT: movaps 2864(%rdi), %xmm14
6121 ; SSE-NEXT: movaps %xmm14, %xmm1
6122 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
6123 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6124 ; SSE-NEXT: unpckhpd {{.*#+}} xmm14 = xmm14[1],xmm0[1]
6125 ; SSE-NEXT: movaps 3056(%rdi), %xmm0
6126 ; SSE-NEXT: movaps 2992(%rdi), %xmm11
6127 ; SSE-NEXT: movaps %xmm11, %xmm1
6128 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
6129 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6130 ; SSE-NEXT: unpckhpd {{.*#+}} xmm11 = xmm11[1],xmm0[1]
6131 ; SSE-NEXT: movaps 3184(%rdi), %xmm0
6132 ; SSE-NEXT: movaps 3120(%rdi), %xmm15
6133 ; SSE-NEXT: movaps %xmm15, %xmm1
6134 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
6135 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6136 ; SSE-NEXT: unpckhpd {{.*#+}} xmm15 = xmm15[1],xmm0[1]
6137 ; SSE-NEXT: movaps 3312(%rdi), %xmm0
6138 ; SSE-NEXT: movaps 3248(%rdi), %xmm9
6139 ; SSE-NEXT: movaps %xmm9, %xmm1
6140 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
6141 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6142 ; SSE-NEXT: unpckhpd {{.*#+}} xmm9 = xmm9[1],xmm0[1]
6143 ; SSE-NEXT: movaps 3440(%rdi), %xmm0
6144 ; SSE-NEXT: movaps 3376(%rdi), %xmm12
6145 ; SSE-NEXT: movaps %xmm12, %xmm1
6146 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
6147 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6148 ; SSE-NEXT: unpckhpd {{.*#+}} xmm12 = xmm12[1],xmm0[1]
6149 ; SSE-NEXT: movaps 3568(%rdi), %xmm0
6150 ; SSE-NEXT: movaps 3504(%rdi), %xmm8
6151 ; SSE-NEXT: movaps %xmm8, %xmm13
6152 ; SSE-NEXT: movlhps {{.*#+}} xmm13 = xmm13[0],xmm0[0]
6153 ; SSE-NEXT: unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm0[1]
6154 ; SSE-NEXT: movaps 4016(%rdi), %xmm4
6155 ; SSE-NEXT: movaps 3952(%rdi), %xmm3
6156 ; SSE-NEXT: movaps 3696(%rdi), %xmm0
6157 ; SSE-NEXT: movaps 3632(%rdi), %xmm2
6158 ; SSE-NEXT: movaps %xmm2, %xmm10
6159 ; SSE-NEXT: movlhps {{.*#+}} xmm10 = xmm10[0],xmm0[0]
6160 ; SSE-NEXT: movaps 4080(%rdi), %xmm1
6161 ; SSE-NEXT: movaps 3888(%rdi), %xmm5
6162 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
6163 ; SSE-NEXT: movaps 3824(%rdi), %xmm6
6164 ; SSE-NEXT: movaps 3760(%rdi), %xmm0
6165 ; SSE-NEXT: movaps %xmm7, 496(%rsi)
6166 ; SSE-NEXT: movaps %xmm0, %xmm7
6167 ; SSE-NEXT: movlhps {{.*#+}} xmm7 = xmm7[0],xmm6[0]
6168 ; SSE-NEXT: unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm6[1]
6169 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
6170 ; SSE-NEXT: movaps %xmm6, 480(%rsi)
6171 ; SSE-NEXT: movaps %xmm5, %xmm6
6172 ; SSE-NEXT: movlhps {{.*#+}} xmm6 = xmm6[0],xmm3[0]
6173 ; SSE-NEXT: unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm3[1]
6174 ; SSE-NEXT: movaps %xmm4, %xmm3
6175 ; SSE-NEXT: movlhps {{.*#+}} xmm3 = xmm3[0],xmm1[0]
6176 ; SSE-NEXT: unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm1[1]
6177 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6178 ; SSE-NEXT: movaps %xmm1, 464(%rsi)
6179 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6180 ; SSE-NEXT: movaps %xmm1, 448(%rsi)
6181 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6182 ; SSE-NEXT: movaps %xmm1, 432(%rsi)
6183 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6184 ; SSE-NEXT: movaps %xmm1, 416(%rsi)
6185 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6186 ; SSE-NEXT: movaps %xmm1, 400(%rsi)
6187 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6188 ; SSE-NEXT: movaps %xmm1, 384(%rsi)
6189 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6190 ; SSE-NEXT: movaps %xmm1, 368(%rsi)
6191 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6192 ; SSE-NEXT: movaps %xmm1, 352(%rsi)
6193 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6194 ; SSE-NEXT: movaps %xmm1, 336(%rsi)
6195 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6196 ; SSE-NEXT: movaps %xmm1, 320(%rsi)
6197 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6198 ; SSE-NEXT: movaps %xmm1, 304(%rsi)
6199 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6200 ; SSE-NEXT: movaps %xmm1, 288(%rsi)
6201 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6202 ; SSE-NEXT: movaps %xmm1, 272(%rsi)
6203 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6204 ; SSE-NEXT: movaps %xmm1, 256(%rsi)
6205 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6206 ; SSE-NEXT: movaps %xmm1, 240(%rsi)
6207 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6208 ; SSE-NEXT: movaps %xmm1, 224(%rsi)
6209 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6210 ; SSE-NEXT: movaps %xmm1, 208(%rsi)
6211 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6212 ; SSE-NEXT: movaps %xmm1, 192(%rsi)
6213 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6214 ; SSE-NEXT: movaps %xmm1, 176(%rsi)
6215 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6216 ; SSE-NEXT: movaps %xmm1, 160(%rsi)
6217 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6218 ; SSE-NEXT: movaps %xmm1, 144(%rsi)
6219 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6220 ; SSE-NEXT: movaps %xmm1, 128(%rsi)
6221 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6222 ; SSE-NEXT: movaps %xmm1, 112(%rsi)
6223 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6224 ; SSE-NEXT: movaps %xmm1, 96(%rsi)
6225 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6226 ; SSE-NEXT: movaps %xmm1, 80(%rsi)
6227 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6228 ; SSE-NEXT: movaps %xmm1, 64(%rsi)
6229 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6230 ; SSE-NEXT: movaps %xmm1, 48(%rsi)
6231 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6232 ; SSE-NEXT: movaps %xmm1, 32(%rsi)
6233 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6234 ; SSE-NEXT: movaps %xmm1, 16(%rsi)
6235 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6236 ; SSE-NEXT: movaps %xmm1, (%rsi)
6237 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6238 ; SSE-NEXT: movaps %xmm1, 496(%rdx)
6239 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6240 ; SSE-NEXT: movaps %xmm1, 480(%rdx)
6241 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6242 ; SSE-NEXT: movaps %xmm1, 464(%rdx)
6243 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6244 ; SSE-NEXT: movaps %xmm1, 448(%rdx)
6245 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6246 ; SSE-NEXT: movaps %xmm1, 432(%rdx)
6247 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6248 ; SSE-NEXT: movaps %xmm1, 416(%rdx)
6249 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6250 ; SSE-NEXT: movaps %xmm1, 400(%rdx)
6251 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6252 ; SSE-NEXT: movaps %xmm1, 384(%rdx)
6253 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6254 ; SSE-NEXT: movaps %xmm1, 368(%rdx)
6255 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6256 ; SSE-NEXT: movaps %xmm1, 352(%rdx)
6257 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6258 ; SSE-NEXT: movaps %xmm1, 336(%rdx)
6259 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6260 ; SSE-NEXT: movaps %xmm1, 320(%rdx)
6261 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6262 ; SSE-NEXT: movaps %xmm1, 304(%rdx)
6263 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6264 ; SSE-NEXT: movaps %xmm1, 288(%rdx)
6265 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6266 ; SSE-NEXT: movaps %xmm1, 272(%rdx)
6267 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6268 ; SSE-NEXT: movaps %xmm1, 256(%rdx)
6269 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6270 ; SSE-NEXT: movaps %xmm1, 240(%rdx)
6271 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6272 ; SSE-NEXT: movaps %xmm1, 224(%rdx)
6273 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6274 ; SSE-NEXT: movaps %xmm1, 208(%rdx)
6275 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6276 ; SSE-NEXT: movaps %xmm1, 192(%rdx)
6277 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6278 ; SSE-NEXT: movaps %xmm1, 176(%rdx)
6279 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6280 ; SSE-NEXT: movaps %xmm1, 160(%rdx)
6281 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6282 ; SSE-NEXT: movaps %xmm1, 144(%rdx)
6283 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6284 ; SSE-NEXT: movaps %xmm1, 128(%rdx)
6285 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6286 ; SSE-NEXT: movaps %xmm1, 112(%rdx)
6287 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6288 ; SSE-NEXT: movaps %xmm1, 96(%rdx)
6289 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6290 ; SSE-NEXT: movaps %xmm1, 80(%rdx)
6291 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6292 ; SSE-NEXT: movaps %xmm1, 64(%rdx)
6293 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6294 ; SSE-NEXT: movaps %xmm1, 48(%rdx)
6295 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6296 ; SSE-NEXT: movaps %xmm1, 32(%rdx)
6297 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6298 ; SSE-NEXT: movaps %xmm1, 16(%rdx)
6299 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6300 ; SSE-NEXT: movaps %xmm1, (%rdx)
6301 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6302 ; SSE-NEXT: movaps %xmm1, 496(%rcx)
6303 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6304 ; SSE-NEXT: movaps %xmm1, 480(%rcx)
6305 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6306 ; SSE-NEXT: movaps %xmm1, 464(%rcx)
6307 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6308 ; SSE-NEXT: movaps %xmm1, 448(%rcx)
6309 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6310 ; SSE-NEXT: movaps %xmm1, 432(%rcx)
6311 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6312 ; SSE-NEXT: movaps %xmm1, 416(%rcx)
6313 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6314 ; SSE-NEXT: movaps %xmm1, 400(%rcx)
6315 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6316 ; SSE-NEXT: movaps %xmm1, 384(%rcx)
6317 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6318 ; SSE-NEXT: movaps %xmm1, 368(%rcx)
6319 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6320 ; SSE-NEXT: movaps %xmm1, 352(%rcx)
6321 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6322 ; SSE-NEXT: movaps %xmm1, 336(%rcx)
6323 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6324 ; SSE-NEXT: movaps %xmm1, 320(%rcx)
6325 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6326 ; SSE-NEXT: movaps %xmm1, 304(%rcx)
6327 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6328 ; SSE-NEXT: movaps %xmm1, 288(%rcx)
6329 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6330 ; SSE-NEXT: movaps %xmm1, 272(%rcx)
6331 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6332 ; SSE-NEXT: movaps %xmm1, 256(%rcx)
6333 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6334 ; SSE-NEXT: movaps %xmm1, 240(%rcx)
6335 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6336 ; SSE-NEXT: movaps %xmm1, 224(%rcx)
6337 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6338 ; SSE-NEXT: movaps %xmm1, 208(%rcx)
6339 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6340 ; SSE-NEXT: movaps %xmm1, 192(%rcx)
6341 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6342 ; SSE-NEXT: movaps %xmm1, 176(%rcx)
6343 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6344 ; SSE-NEXT: movaps %xmm1, 160(%rcx)
6345 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6346 ; SSE-NEXT: movaps %xmm1, 144(%rcx)
6347 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6348 ; SSE-NEXT: movaps %xmm1, 128(%rcx)
6349 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6350 ; SSE-NEXT: movaps %xmm1, 112(%rcx)
6351 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6352 ; SSE-NEXT: movaps %xmm1, 96(%rcx)
6353 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6354 ; SSE-NEXT: movaps %xmm1, 80(%rcx)
6355 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6356 ; SSE-NEXT: movaps %xmm1, 64(%rcx)
6357 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6358 ; SSE-NEXT: movaps %xmm1, 48(%rcx)
6359 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6360 ; SSE-NEXT: movaps %xmm1, 32(%rcx)
6361 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6362 ; SSE-NEXT: movaps %xmm1, 16(%rcx)
6363 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6364 ; SSE-NEXT: movaps %xmm1, (%rcx)
6365 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6366 ; SSE-NEXT: movaps %xmm1, 496(%r8)
6367 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6368 ; SSE-NEXT: movaps %xmm1, 480(%r8)
6369 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6370 ; SSE-NEXT: movaps %xmm1, 464(%r8)
6371 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6372 ; SSE-NEXT: movaps %xmm1, 448(%r8)
6373 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6374 ; SSE-NEXT: movaps %xmm1, 432(%r8)
6375 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6376 ; SSE-NEXT: movaps %xmm1, 416(%r8)
6377 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6378 ; SSE-NEXT: movaps %xmm1, 400(%r8)
6379 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6380 ; SSE-NEXT: movaps %xmm1, 384(%r8)
6381 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6382 ; SSE-NEXT: movaps %xmm1, 368(%r8)
6383 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6384 ; SSE-NEXT: movaps %xmm1, 352(%r8)
6385 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6386 ; SSE-NEXT: movaps %xmm1, 336(%r8)
6387 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6388 ; SSE-NEXT: movaps %xmm1, 320(%r8)
6389 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6390 ; SSE-NEXT: movaps %xmm1, 304(%r8)
6391 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6392 ; SSE-NEXT: movaps %xmm1, 288(%r8)
6393 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6394 ; SSE-NEXT: movaps %xmm1, 272(%r8)
6395 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6396 ; SSE-NEXT: movaps %xmm1, 256(%r8)
6397 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6398 ; SSE-NEXT: movaps %xmm1, 240(%r8)
6399 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6400 ; SSE-NEXT: movaps %xmm1, 224(%r8)
6401 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6402 ; SSE-NEXT: movaps %xmm1, 208(%r8)
6403 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6404 ; SSE-NEXT: movaps %xmm1, 192(%r8)
6405 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6406 ; SSE-NEXT: movaps %xmm1, 176(%r8)
6407 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6408 ; SSE-NEXT: movaps %xmm1, 160(%r8)
6409 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6410 ; SSE-NEXT: movaps %xmm1, 144(%r8)
6411 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6412 ; SSE-NEXT: movaps %xmm1, 128(%r8)
6413 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6414 ; SSE-NEXT: movaps %xmm1, 112(%r8)
6415 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6416 ; SSE-NEXT: movaps %xmm1, 96(%r8)
6417 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6418 ; SSE-NEXT: movaps %xmm1, 80(%r8)
6419 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6420 ; SSE-NEXT: movaps %xmm1, 64(%r8)
6421 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6422 ; SSE-NEXT: movaps %xmm1, 48(%r8)
6423 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6424 ; SSE-NEXT: movaps %xmm1, 32(%r8)
6425 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6426 ; SSE-NEXT: movaps %xmm1, 16(%r8)
6427 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6428 ; SSE-NEXT: movaps %xmm1, (%r8)
6429 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6430 ; SSE-NEXT: movaps %xmm1, 496(%r9)
6431 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6432 ; SSE-NEXT: movaps %xmm1, 480(%r9)
6433 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6434 ; SSE-NEXT: movaps %xmm1, 464(%r9)
6435 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6436 ; SSE-NEXT: movaps %xmm1, 448(%r9)
6437 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6438 ; SSE-NEXT: movaps %xmm1, 432(%r9)
6439 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6440 ; SSE-NEXT: movaps %xmm1, 416(%r9)
6441 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6442 ; SSE-NEXT: movaps %xmm1, 400(%r9)
6443 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6444 ; SSE-NEXT: movaps %xmm1, 384(%r9)
6445 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6446 ; SSE-NEXT: movaps %xmm1, 368(%r9)
6447 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6448 ; SSE-NEXT: movaps %xmm1, 352(%r9)
6449 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6450 ; SSE-NEXT: movaps %xmm1, 336(%r9)
6451 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6452 ; SSE-NEXT: movaps %xmm1, 320(%r9)
6453 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6454 ; SSE-NEXT: movaps %xmm1, 304(%r9)
6455 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6456 ; SSE-NEXT: movaps %xmm1, 288(%r9)
6457 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6458 ; SSE-NEXT: movaps %xmm1, 272(%r9)
6459 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6460 ; SSE-NEXT: movaps %xmm1, 256(%r9)
6461 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6462 ; SSE-NEXT: movaps %xmm1, 240(%r9)
6463 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6464 ; SSE-NEXT: movaps %xmm1, 224(%r9)
6465 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6466 ; SSE-NEXT: movaps %xmm1, 208(%r9)
6467 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6468 ; SSE-NEXT: movaps %xmm1, 192(%r9)
6469 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6470 ; SSE-NEXT: movaps %xmm1, 176(%r9)
6471 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6472 ; SSE-NEXT: movaps %xmm1, 160(%r9)
6473 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6474 ; SSE-NEXT: movaps %xmm1, 144(%r9)
6475 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6476 ; SSE-NEXT: movaps %xmm1, 128(%r9)
6477 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6478 ; SSE-NEXT: movaps %xmm1, 112(%r9)
6479 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6480 ; SSE-NEXT: movaps %xmm1, 96(%r9)
6481 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6482 ; SSE-NEXT: movaps %xmm1, 80(%r9)
6483 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6484 ; SSE-NEXT: movaps %xmm1, 64(%r9)
6485 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6486 ; SSE-NEXT: movaps %xmm1, 48(%r9)
6487 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6488 ; SSE-NEXT: movaps %xmm1, 32(%r9)
6489 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6490 ; SSE-NEXT: movaps %xmm1, 16(%r9)
6491 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6492 ; SSE-NEXT: movaps %xmm1, (%r9)
6493 ; SSE-NEXT: movq {{[0-9]+}}(%rsp), %rax
6494 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6495 ; SSE-NEXT: movaps %xmm1, 496(%rax)
6496 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6497 ; SSE-NEXT: movaps %xmm1, 480(%rax)
6498 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6499 ; SSE-NEXT: movaps %xmm1, 464(%rax)
6500 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6501 ; SSE-NEXT: movaps %xmm1, 448(%rax)
6502 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6503 ; SSE-NEXT: movaps %xmm1, 432(%rax)
6504 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6505 ; SSE-NEXT: movaps %xmm1, 416(%rax)
6506 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6507 ; SSE-NEXT: movaps %xmm1, 400(%rax)
6508 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6509 ; SSE-NEXT: movaps %xmm1, 384(%rax)
6510 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6511 ; SSE-NEXT: movaps %xmm1, 368(%rax)
6512 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6513 ; SSE-NEXT: movaps %xmm1, 352(%rax)
6514 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6515 ; SSE-NEXT: movaps %xmm1, 336(%rax)
6516 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6517 ; SSE-NEXT: movaps %xmm1, 320(%rax)
6518 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6519 ; SSE-NEXT: movaps %xmm1, 304(%rax)
6520 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6521 ; SSE-NEXT: movaps %xmm1, 288(%rax)
6522 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6523 ; SSE-NEXT: movaps %xmm1, 272(%rax)
6524 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6525 ; SSE-NEXT: movaps %xmm1, 256(%rax)
6526 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6527 ; SSE-NEXT: movaps %xmm1, 240(%rax)
6528 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6529 ; SSE-NEXT: movaps %xmm1, 224(%rax)
6530 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6531 ; SSE-NEXT: movaps %xmm1, 208(%rax)
6532 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6533 ; SSE-NEXT: movaps %xmm1, 192(%rax)
6534 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6535 ; SSE-NEXT: movaps %xmm1, 176(%rax)
6536 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6537 ; SSE-NEXT: movaps %xmm1, 160(%rax)
6538 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6539 ; SSE-NEXT: movaps %xmm1, 144(%rax)
6540 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6541 ; SSE-NEXT: movaps %xmm1, 128(%rax)
6542 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6543 ; SSE-NEXT: movaps %xmm1, 112(%rax)
6544 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6545 ; SSE-NEXT: movaps %xmm1, 96(%rax)
6546 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6547 ; SSE-NEXT: movaps %xmm1, 80(%rax)
6548 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6549 ; SSE-NEXT: movaps %xmm1, 64(%rax)
6550 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6551 ; SSE-NEXT: movaps %xmm1, 48(%rax)
6552 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6553 ; SSE-NEXT: movaps %xmm1, 32(%rax)
6554 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6555 ; SSE-NEXT: movaps %xmm1, 16(%rax)
6556 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6557 ; SSE-NEXT: movaps %xmm1, (%rax)
6558 ; SSE-NEXT: movq {{[0-9]+}}(%rsp), %rax
6559 ; SSE-NEXT: movaps %xmm3, 496(%rax)
6560 ; SSE-NEXT: movaps %xmm6, 480(%rax)
6561 ; SSE-NEXT: movaps %xmm7, 464(%rax)
6562 ; SSE-NEXT: movaps %xmm10, 448(%rax)
6563 ; SSE-NEXT: movaps %xmm13, 432(%rax)
6564 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6565 ; SSE-NEXT: movaps %xmm1, 416(%rax)
6566 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6567 ; SSE-NEXT: movaps %xmm1, 400(%rax)
6568 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6569 ; SSE-NEXT: movaps %xmm1, 384(%rax)
6570 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6571 ; SSE-NEXT: movaps %xmm1, 368(%rax)
6572 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6573 ; SSE-NEXT: movaps %xmm1, 352(%rax)
6574 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6575 ; SSE-NEXT: movaps %xmm1, 336(%rax)
6576 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6577 ; SSE-NEXT: movaps %xmm1, 320(%rax)
6578 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6579 ; SSE-NEXT: movaps %xmm1, 304(%rax)
6580 ; SSE-NEXT: movaps (%rsp), %xmm1 # 16-byte Reload
6581 ; SSE-NEXT: movaps %xmm1, 288(%rax)
6582 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6583 ; SSE-NEXT: movaps %xmm1, 272(%rax)
6584 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6585 ; SSE-NEXT: movaps %xmm1, 256(%rax)
6586 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6587 ; SSE-NEXT: movaps %xmm1, 240(%rax)
6588 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6589 ; SSE-NEXT: movaps %xmm1, 224(%rax)
6590 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6591 ; SSE-NEXT: movaps %xmm1, 208(%rax)
6592 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6593 ; SSE-NEXT: movaps %xmm1, 192(%rax)
6594 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6595 ; SSE-NEXT: movaps %xmm1, 176(%rax)
6596 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6597 ; SSE-NEXT: movaps %xmm1, 160(%rax)
6598 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6599 ; SSE-NEXT: movaps %xmm1, 144(%rax)
6600 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6601 ; SSE-NEXT: movaps %xmm1, 128(%rax)
6602 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6603 ; SSE-NEXT: movaps %xmm1, 112(%rax)
6604 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6605 ; SSE-NEXT: movaps %xmm1, 96(%rax)
6606 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6607 ; SSE-NEXT: movaps %xmm1, 80(%rax)
6608 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6609 ; SSE-NEXT: movaps %xmm1, 64(%rax)
6610 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6611 ; SSE-NEXT: movaps %xmm1, 48(%rax)
6612 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6613 ; SSE-NEXT: movaps %xmm1, 32(%rax)
6614 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6615 ; SSE-NEXT: movaps %xmm1, 16(%rax)
6616 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6617 ; SSE-NEXT: movaps %xmm1, (%rax)
6618 ; SSE-NEXT: movq {{[0-9]+}}(%rsp), %rax
6619 ; SSE-NEXT: movaps %xmm4, 496(%rax)
6620 ; SSE-NEXT: movaps %xmm5, 480(%rax)
6621 ; SSE-NEXT: movaps %xmm0, 464(%rax)
6622 ; SSE-NEXT: movaps %xmm2, 448(%rax)
6623 ; SSE-NEXT: movaps %xmm8, 432(%rax)
6624 ; SSE-NEXT: movaps %xmm12, 416(%rax)
6625 ; SSE-NEXT: movaps %xmm9, 400(%rax)
6626 ; SSE-NEXT: movaps %xmm15, 384(%rax)
6627 ; SSE-NEXT: movaps %xmm11, 368(%rax)
6628 ; SSE-NEXT: movaps %xmm14, 352(%rax)
6629 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6630 ; SSE-NEXT: movaps %xmm0, 336(%rax)
6631 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6632 ; SSE-NEXT: movaps %xmm0, 320(%rax)
6633 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6634 ; SSE-NEXT: movaps %xmm0, 304(%rax)
6635 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6636 ; SSE-NEXT: movaps %xmm0, 288(%rax)
6637 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6638 ; SSE-NEXT: movaps %xmm0, 272(%rax)
6639 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6640 ; SSE-NEXT: movaps %xmm0, 256(%rax)
6641 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6642 ; SSE-NEXT: movaps %xmm0, 240(%rax)
6643 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6644 ; SSE-NEXT: movaps %xmm0, 224(%rax)
6645 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6646 ; SSE-NEXT: movaps %xmm0, 208(%rax)
6647 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6648 ; SSE-NEXT: movaps %xmm0, 192(%rax)
6649 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6650 ; SSE-NEXT: movaps %xmm0, 176(%rax)
6651 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6652 ; SSE-NEXT: movaps %xmm0, 160(%rax)
6653 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6654 ; SSE-NEXT: movaps %xmm0, 144(%rax)
6655 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6656 ; SSE-NEXT: movaps %xmm0, 128(%rax)
6657 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6658 ; SSE-NEXT: movaps %xmm0, 112(%rax)
6659 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6660 ; SSE-NEXT: movaps %xmm0, 96(%rax)
6661 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6662 ; SSE-NEXT: movaps %xmm0, 80(%rax)
6663 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6664 ; SSE-NEXT: movaps %xmm0, 64(%rax)
6665 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6666 ; SSE-NEXT: movaps %xmm0, 48(%rax)
6667 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6668 ; SSE-NEXT: movaps %xmm0, 32(%rax)
6669 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6670 ; SSE-NEXT: movaps %xmm0, 16(%rax)
6671 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6672 ; SSE-NEXT: movaps %xmm0, (%rax)
6673 ; SSE-NEXT: addq $3720, %rsp # imm = 0xE88
6676 ; AVX1-ONLY-LABEL: load_i64_stride8_vf64:
6677 ; AVX1-ONLY: # %bb.0:
6678 ; AVX1-ONLY-NEXT: subq $5016, %rsp # imm = 0x1398
6679 ; AVX1-ONLY-NEXT: vmovaps 2496(%rdi), %xmm0
6680 ; AVX1-ONLY-NEXT: vmovaps 2432(%rdi), %xmm1
6681 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
6682 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6683 ; AVX1-ONLY-NEXT: vmovaps 3008(%rdi), %xmm2
6684 ; AVX1-ONLY-NEXT: vmovaps 2944(%rdi), %xmm3
6685 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm4 = xmm3[0],xmm2[0]
6686 ; AVX1-ONLY-NEXT: vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6687 ; AVX1-ONLY-NEXT: vmovaps 3520(%rdi), %xmm4
6688 ; AVX1-ONLY-NEXT: vmovaps 3456(%rdi), %xmm5
6689 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm6 = xmm5[0],xmm4[0]
6690 ; AVX1-ONLY-NEXT: vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6691 ; AVX1-ONLY-NEXT: vmovaps 2880(%rdi), %xmm6
6692 ; AVX1-ONLY-NEXT: vmovaps 3392(%rdi), %xmm7
6693 ; AVX1-ONLY-NEXT: vmovaps 3904(%rdi), %xmm8
6694 ; AVX1-ONLY-NEXT: vmovaps 3840(%rdi), %xmm9
6695 ; AVX1-ONLY-NEXT: vmovaps 4032(%rdi), %xmm10
6696 ; AVX1-ONLY-NEXT: vmovaps 3968(%rdi), %xmm11
6697 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm12 = xmm11[0],xmm10[0]
6698 ; AVX1-ONLY-NEXT: vmovaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6699 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm10 = xmm11[1],xmm10[1]
6700 ; AVX1-ONLY-NEXT: vmovaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6701 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm10 = xmm9[0],xmm8[0]
6702 ; AVX1-ONLY-NEXT: vmovaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6703 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm8 = xmm9[1],xmm8[1]
6704 ; AVX1-ONLY-NEXT: vmovaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6705 ; AVX1-ONLY-NEXT: vmovaps 3328(%rdi), %xmm8
6706 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm4 = xmm5[1],xmm4[1]
6707 ; AVX1-ONLY-NEXT: vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6708 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm4 = xmm8[0],xmm7[0]
6709 ; AVX1-ONLY-NEXT: vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6710 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm4 = xmm8[1],xmm7[1]
6711 ; AVX1-ONLY-NEXT: vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6712 ; AVX1-ONLY-NEXT: vmovaps 2816(%rdi), %xmm4
6713 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm2 = xmm3[1],xmm2[1]
6714 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6715 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm4[0],xmm6[0]
6716 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6717 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm2 = xmm4[1],xmm6[1]
6718 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6719 ; AVX1-ONLY-NEXT: vmovaps 2368(%rdi), %xmm2
6720 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
6721 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6722 ; AVX1-ONLY-NEXT: vmovaps 2304(%rdi), %xmm0
6723 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm1 = xmm0[0],xmm2[0]
6724 ; AVX1-ONLY-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6725 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
6726 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6727 ; AVX1-ONLY-NEXT: vmovaps 1984(%rdi), %xmm0
6728 ; AVX1-ONLY-NEXT: vmovaps 1920(%rdi), %xmm1
6729 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
6730 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6731 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
6732 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6733 ; AVX1-ONLY-NEXT: vmovaps 1856(%rdi), %xmm0
6734 ; AVX1-ONLY-NEXT: vmovaps 1792(%rdi), %xmm1
6735 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
6736 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6737 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
6738 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6739 ; AVX1-ONLY-NEXT: vmovaps 1472(%rdi), %xmm0
6740 ; AVX1-ONLY-NEXT: vmovaps 1408(%rdi), %xmm1
6741 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
6742 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6743 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
6744 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6745 ; AVX1-ONLY-NEXT: vmovaps 1344(%rdi), %xmm0
6746 ; AVX1-ONLY-NEXT: vmovaps 1280(%rdi), %xmm1
6747 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
6748 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6749 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
6750 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6751 ; AVX1-ONLY-NEXT: vmovaps 448(%rdi), %xmm0
6752 ; AVX1-ONLY-NEXT: vmovaps 384(%rdi), %xmm1
6753 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
6754 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6755 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
6756 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6757 ; AVX1-ONLY-NEXT: vmovaps 320(%rdi), %xmm0
6758 ; AVX1-ONLY-NEXT: vmovaps 256(%rdi), %xmm1
6759 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
6760 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6761 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
6762 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6763 ; AVX1-ONLY-NEXT: vmovaps 960(%rdi), %xmm0
6764 ; AVX1-ONLY-NEXT: vmovaps 896(%rdi), %xmm1
6765 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
6766 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6767 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
6768 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6769 ; AVX1-ONLY-NEXT: vmovaps 832(%rdi), %xmm0
6770 ; AVX1-ONLY-NEXT: vmovaps 768(%rdi), %xmm1
6771 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
6772 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6773 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
6774 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6775 ; AVX1-ONLY-NEXT: vmovaps 3776(%rdi), %xmm0
6776 ; AVX1-ONLY-NEXT: vmovaps 3712(%rdi), %xmm1
6777 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
6778 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6779 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
6780 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6781 ; AVX1-ONLY-NEXT: vmovaps 3648(%rdi), %xmm0
6782 ; AVX1-ONLY-NEXT: vmovaps 3584(%rdi), %xmm1
6783 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
6784 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6785 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
6786 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6787 ; AVX1-ONLY-NEXT: vmovaps 3264(%rdi), %xmm0
6788 ; AVX1-ONLY-NEXT: vmovaps 3200(%rdi), %xmm1
6789 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
6790 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6791 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
6792 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6793 ; AVX1-ONLY-NEXT: vmovaps 3136(%rdi), %xmm0
6794 ; AVX1-ONLY-NEXT: vmovaps 3072(%rdi), %xmm1
6795 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
6796 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6797 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
6798 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6799 ; AVX1-ONLY-NEXT: vmovaps 2752(%rdi), %xmm0
6800 ; AVX1-ONLY-NEXT: vmovaps 2688(%rdi), %xmm1
6801 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
6802 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6803 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
6804 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6805 ; AVX1-ONLY-NEXT: vmovaps 2624(%rdi), %xmm0
6806 ; AVX1-ONLY-NEXT: vmovaps 2560(%rdi), %xmm1
6807 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
6808 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6809 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
6810 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6811 ; AVX1-ONLY-NEXT: vmovaps 1728(%rdi), %xmm0
6812 ; AVX1-ONLY-NEXT: vmovaps 1664(%rdi), %xmm1
6813 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
6814 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6815 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
6816 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6817 ; AVX1-ONLY-NEXT: vmovaps 1600(%rdi), %xmm0
6818 ; AVX1-ONLY-NEXT: vmovaps 1536(%rdi), %xmm1
6819 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
6820 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6821 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
6822 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6823 ; AVX1-ONLY-NEXT: vmovaps 192(%rdi), %xmm0
6824 ; AVX1-ONLY-NEXT: vmovaps 128(%rdi), %xmm1
6825 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
6826 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6827 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
6828 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6829 ; AVX1-ONLY-NEXT: vmovaps 64(%rdi), %xmm0
6830 ; AVX1-ONLY-NEXT: vmovaps (%rdi), %xmm1
6831 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
6832 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6833 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
6834 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6835 ; AVX1-ONLY-NEXT: vmovaps 704(%rdi), %xmm0
6836 ; AVX1-ONLY-NEXT: vmovaps 640(%rdi), %xmm1
6837 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
6838 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6839 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
6840 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6841 ; AVX1-ONLY-NEXT: vmovaps 576(%rdi), %xmm0
6842 ; AVX1-ONLY-NEXT: vmovaps 512(%rdi), %xmm1
6843 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
6844 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6845 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
6846 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6847 ; AVX1-ONLY-NEXT: vmovaps 2240(%rdi), %xmm0
6848 ; AVX1-ONLY-NEXT: vmovaps 2176(%rdi), %xmm1
6849 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
6850 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6851 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
6852 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6853 ; AVX1-ONLY-NEXT: vmovaps 2112(%rdi), %xmm0
6854 ; AVX1-ONLY-NEXT: vmovaps 2048(%rdi), %xmm1
6855 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
6856 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6857 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
6858 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6859 ; AVX1-ONLY-NEXT: vmovaps 1216(%rdi), %xmm0
6860 ; AVX1-ONLY-NEXT: vmovaps 1152(%rdi), %xmm1
6861 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
6862 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6863 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
6864 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6865 ; AVX1-ONLY-NEXT: vmovaps 1088(%rdi), %xmm0
6866 ; AVX1-ONLY-NEXT: vmovaps 1024(%rdi), %xmm1
6867 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
6868 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6869 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
6870 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6871 ; AVX1-ONLY-NEXT: vmovaps 448(%rdi), %ymm1
6872 ; AVX1-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6873 ; AVX1-ONLY-NEXT: vmovaps 384(%rdi), %ymm0
6874 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6875 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
6876 ; AVX1-ONLY-NEXT: vmovaps 336(%rdi), %xmm2
6877 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6878 ; AVX1-ONLY-NEXT: vmovaps 272(%rdi), %xmm1
6879 ; AVX1-ONLY-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6880 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]
6881 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
6882 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6883 ; AVX1-ONLY-NEXT: vmovaps 960(%rdi), %ymm1
6884 ; AVX1-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6885 ; AVX1-ONLY-NEXT: vmovaps 896(%rdi), %ymm0
6886 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6887 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
6888 ; AVX1-ONLY-NEXT: vmovaps 848(%rdi), %xmm2
6889 ; AVX1-ONLY-NEXT: vmovaps %xmm2, (%rsp) # 16-byte Spill
6890 ; AVX1-ONLY-NEXT: vmovaps 784(%rdi), %xmm1
6891 ; AVX1-ONLY-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6892 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]
6893 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
6894 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6895 ; AVX1-ONLY-NEXT: vmovaps 1472(%rdi), %ymm1
6896 ; AVX1-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6897 ; AVX1-ONLY-NEXT: vmovaps 1408(%rdi), %ymm0
6898 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6899 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
6900 ; AVX1-ONLY-NEXT: vmovaps 1360(%rdi), %xmm2
6901 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6902 ; AVX1-ONLY-NEXT: vmovaps 1296(%rdi), %xmm1
6903 ; AVX1-ONLY-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6904 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]
6905 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
6906 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6907 ; AVX1-ONLY-NEXT: vmovaps 1984(%rdi), %ymm1
6908 ; AVX1-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6909 ; AVX1-ONLY-NEXT: vmovaps 1920(%rdi), %ymm0
6910 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6911 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
6912 ; AVX1-ONLY-NEXT: vmovaps 1872(%rdi), %xmm2
6913 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6914 ; AVX1-ONLY-NEXT: vmovaps 1808(%rdi), %xmm1
6915 ; AVX1-ONLY-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6916 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]
6917 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
6918 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6919 ; AVX1-ONLY-NEXT: vmovaps 2496(%rdi), %ymm1
6920 ; AVX1-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6921 ; AVX1-ONLY-NEXT: vmovaps 2432(%rdi), %ymm0
6922 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6923 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
6924 ; AVX1-ONLY-NEXT: vmovaps 2384(%rdi), %xmm2
6925 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6926 ; AVX1-ONLY-NEXT: vmovaps 2320(%rdi), %xmm1
6927 ; AVX1-ONLY-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6928 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]
6929 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
6930 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6931 ; AVX1-ONLY-NEXT: vmovaps 3008(%rdi), %ymm1
6932 ; AVX1-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6933 ; AVX1-ONLY-NEXT: vmovaps 2944(%rdi), %ymm0
6934 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6935 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
6936 ; AVX1-ONLY-NEXT: vmovaps 2896(%rdi), %xmm2
6937 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6938 ; AVX1-ONLY-NEXT: vmovaps 2832(%rdi), %xmm1
6939 ; AVX1-ONLY-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6940 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]
6941 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
6942 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6943 ; AVX1-ONLY-NEXT: vmovaps 3520(%rdi), %ymm1
6944 ; AVX1-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6945 ; AVX1-ONLY-NEXT: vmovaps 3456(%rdi), %ymm0
6946 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6947 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
6948 ; AVX1-ONLY-NEXT: vmovaps 3408(%rdi), %xmm2
6949 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6950 ; AVX1-ONLY-NEXT: vmovaps 3344(%rdi), %xmm1
6951 ; AVX1-ONLY-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6952 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]
6953 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
6954 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6955 ; AVX1-ONLY-NEXT: vmovaps 4032(%rdi), %ymm1
6956 ; AVX1-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6957 ; AVX1-ONLY-NEXT: vmovaps 3968(%rdi), %ymm0
6958 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6959 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
6960 ; AVX1-ONLY-NEXT: vmovaps 3920(%rdi), %xmm2
6961 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6962 ; AVX1-ONLY-NEXT: vmovaps 3856(%rdi), %xmm1
6963 ; AVX1-ONLY-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6964 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]
6965 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
6966 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6967 ; AVX1-ONLY-NEXT: vmovaps 192(%rdi), %ymm0
6968 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6969 ; AVX1-ONLY-NEXT: vmovaps 128(%rdi), %ymm1
6970 ; AVX1-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6971 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
6972 ; AVX1-ONLY-NEXT: vmovaps 80(%rdi), %xmm0
6973 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6974 ; AVX1-ONLY-NEXT: vmovaps 16(%rdi), %xmm8
6975 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm8[0],xmm0[0]
6976 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm1[4,5,6,7]
6977 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6978 ; AVX1-ONLY-NEXT: vmovaps 704(%rdi), %ymm0
6979 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6980 ; AVX1-ONLY-NEXT: vmovaps 640(%rdi), %ymm1
6981 ; AVX1-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6982 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
6983 ; AVX1-ONLY-NEXT: vmovaps 592(%rdi), %xmm0
6984 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6985 ; AVX1-ONLY-NEXT: vmovaps 528(%rdi), %xmm1
6986 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm3 = xmm1[0],xmm0[0]
6987 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm2[4,5,6,7]
6988 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6989 ; AVX1-ONLY-NEXT: vmovaps 1216(%rdi), %ymm0
6990 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6991 ; AVX1-ONLY-NEXT: vmovaps 1152(%rdi), %ymm2
6992 ; AVX1-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6993 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm3 = ymm2[0],ymm0[0],ymm2[2],ymm0[2]
6994 ; AVX1-ONLY-NEXT: vmovaps 1104(%rdi), %xmm10
6995 ; AVX1-ONLY-NEXT: vmovaps 1040(%rdi), %xmm2
6996 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm4 = xmm2[0],xmm10[0]
6997 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3],ymm3[4,5,6,7]
6998 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6999 ; AVX1-ONLY-NEXT: vmovaps 1728(%rdi), %ymm0
7000 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7001 ; AVX1-ONLY-NEXT: vmovaps 1664(%rdi), %ymm3
7002 ; AVX1-ONLY-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7003 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm3[0],ymm0[0],ymm3[2],ymm0[2]
7004 ; AVX1-ONLY-NEXT: vmovaps 1616(%rdi), %xmm11
7005 ; AVX1-ONLY-NEXT: vmovaps 1552(%rdi), %xmm3
7006 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm5 = xmm3[0],xmm11[0]
7007 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm5[0,1,2,3],ymm4[4,5,6,7]
7008 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7009 ; AVX1-ONLY-NEXT: vmovaps 2240(%rdi), %ymm0
7010 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7011 ; AVX1-ONLY-NEXT: vmovaps 2176(%rdi), %ymm4
7012 ; AVX1-ONLY-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7013 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm4[0],ymm0[0],ymm4[2],ymm0[2]
7014 ; AVX1-ONLY-NEXT: vmovaps 2128(%rdi), %xmm12
7015 ; AVX1-ONLY-NEXT: vmovaps 2064(%rdi), %xmm4
7016 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm6 = xmm4[0],xmm12[0]
7017 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm6[0,1,2,3],ymm5[4,5,6,7]
7018 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7019 ; AVX1-ONLY-NEXT: vmovaps 2752(%rdi), %ymm0
7020 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7021 ; AVX1-ONLY-NEXT: vmovaps 2688(%rdi), %ymm5
7022 ; AVX1-ONLY-NEXT: vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7023 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm6 = ymm5[0],ymm0[0],ymm5[2],ymm0[2]
7024 ; AVX1-ONLY-NEXT: vmovaps 2640(%rdi), %xmm13
7025 ; AVX1-ONLY-NEXT: vmovaps 2576(%rdi), %xmm5
7026 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm7 = xmm5[0],xmm13[0]
7027 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm7[0,1,2,3],ymm6[4,5,6,7]
7028 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7029 ; AVX1-ONLY-NEXT: vmovaps 3264(%rdi), %ymm0
7030 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7031 ; AVX1-ONLY-NEXT: vmovaps 3200(%rdi), %ymm6
7032 ; AVX1-ONLY-NEXT: vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7033 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm7 = ymm6[0],ymm0[0],ymm6[2],ymm0[2]
7034 ; AVX1-ONLY-NEXT: vmovaps 3152(%rdi), %xmm14
7035 ; AVX1-ONLY-NEXT: vmovaps 3088(%rdi), %xmm6
7036 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm15 = xmm6[0],xmm14[0]
7037 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm15[0,1,2,3],ymm7[4,5,6,7]
7038 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7039 ; AVX1-ONLY-NEXT: vmovaps 3776(%rdi), %ymm7
7040 ; AVX1-ONLY-NEXT: vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7041 ; AVX1-ONLY-NEXT: vmovaps 3712(%rdi), %ymm0
7042 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7043 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm7[0],ymm0[2],ymm7[2]
7044 ; AVX1-ONLY-NEXT: vmovaps 3664(%rdi), %xmm15
7045 ; AVX1-ONLY-NEXT: vmovaps 3600(%rdi), %xmm7
7046 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm9 = xmm7[0],xmm15[0]
7047 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm9[0,1,2,3],ymm0[4,5,6,7]
7048 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7049 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7050 ; AVX1-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
7051 ; AVX1-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
7052 ; AVX1-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm8, %xmm8 # 16-byte Folded Reload
7053 ; AVX1-ONLY-NEXT: # xmm8 = xmm8[1],mem[1]
7054 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm8[0,1,2,3],ymm0[4,5,6,7]
7055 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7056 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7057 ; AVX1-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
7058 ; AVX1-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
7059 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
7060 ; AVX1-ONLY-NEXT: vmovlps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8, %xmm8 # 16-byte Folded Reload
7061 ; AVX1-ONLY-NEXT: # xmm8 = mem[0,1],xmm8[2,3]
7062 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm8[0,1,2,3],ymm0[4,5,6,7]
7063 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7064 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7065 ; AVX1-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
7066 ; AVX1-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
7067 ; AVX1-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
7068 ; AVX1-ONLY-NEXT: # xmm1 = xmm1[1],mem[1]
7069 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7070 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7071 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7072 ; AVX1-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
7073 ; AVX1-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
7074 ; AVX1-ONLY-NEXT: vmovaps (%rsp), %xmm1 # 16-byte Reload
7075 ; AVX1-ONLY-NEXT: vmovlps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
7076 ; AVX1-ONLY-NEXT: # xmm1 = mem[0,1],xmm1[2,3]
7077 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7078 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7079 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7080 ; AVX1-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
7081 ; AVX1-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
7082 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm1 = xmm2[1],xmm10[1]
7083 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7084 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7085 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7086 ; AVX1-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
7087 ; AVX1-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
7088 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7089 ; AVX1-ONLY-NEXT: vmovlps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
7090 ; AVX1-ONLY-NEXT: # xmm1 = mem[0,1],xmm1[2,3]
7091 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7092 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7093 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7094 ; AVX1-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
7095 ; AVX1-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
7096 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm1 = xmm3[1],xmm11[1]
7097 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7098 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7099 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7100 ; AVX1-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
7101 ; AVX1-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
7102 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7103 ; AVX1-ONLY-NEXT: vmovlps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
7104 ; AVX1-ONLY-NEXT: # xmm1 = mem[0,1],xmm1[2,3]
7105 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7106 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7107 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7108 ; AVX1-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
7109 ; AVX1-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
7110 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm1 = xmm4[1],xmm12[1]
7111 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7112 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7113 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7114 ; AVX1-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
7115 ; AVX1-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
7116 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7117 ; AVX1-ONLY-NEXT: vmovlps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
7118 ; AVX1-ONLY-NEXT: # xmm1 = mem[0,1],xmm1[2,3]
7119 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7120 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7121 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7122 ; AVX1-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
7123 ; AVX1-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
7124 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm1 = xmm5[1],xmm13[1]
7125 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7126 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7127 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7128 ; AVX1-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
7129 ; AVX1-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
7130 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7131 ; AVX1-ONLY-NEXT: vmovlps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
7132 ; AVX1-ONLY-NEXT: # xmm1 = mem[0,1],xmm1[2,3]
7133 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7134 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7135 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7136 ; AVX1-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
7137 ; AVX1-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
7138 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm1 = xmm6[1],xmm14[1]
7139 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7140 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7141 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7142 ; AVX1-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
7143 ; AVX1-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
7144 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7145 ; AVX1-ONLY-NEXT: vmovlps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
7146 ; AVX1-ONLY-NEXT: # xmm1 = mem[0,1],xmm1[2,3]
7147 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7148 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7149 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7150 ; AVX1-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
7151 ; AVX1-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
7152 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm1 = xmm7[1],xmm15[1]
7153 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7154 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7155 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7156 ; AVX1-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
7157 ; AVX1-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
7158 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7159 ; AVX1-ONLY-NEXT: vmovlps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
7160 ; AVX1-ONLY-NEXT: # xmm1 = mem[0,1],xmm1[2,3]
7161 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7162 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7163 ; AVX1-ONLY-NEXT: vmovaps 96(%rdi), %xmm0
7164 ; AVX1-ONLY-NEXT: vmovaps 32(%rdi), %xmm1
7165 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
7166 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7167 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
7168 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7169 ; AVX1-ONLY-NEXT: vmovaps 224(%rdi), %xmm0
7170 ; AVX1-ONLY-NEXT: vmovaps 160(%rdi), %xmm1
7171 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
7172 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7173 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
7174 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7175 ; AVX1-ONLY-NEXT: vmovaps 352(%rdi), %xmm0
7176 ; AVX1-ONLY-NEXT: vmovaps 288(%rdi), %xmm1
7177 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
7178 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7179 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
7180 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7181 ; AVX1-ONLY-NEXT: vmovaps 480(%rdi), %xmm0
7182 ; AVX1-ONLY-NEXT: vmovaps 416(%rdi), %xmm1
7183 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
7184 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7185 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
7186 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7187 ; AVX1-ONLY-NEXT: vmovaps 608(%rdi), %xmm0
7188 ; AVX1-ONLY-NEXT: vmovaps 544(%rdi), %xmm1
7189 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
7190 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7191 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
7192 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7193 ; AVX1-ONLY-NEXT: vmovaps 736(%rdi), %xmm0
7194 ; AVX1-ONLY-NEXT: vmovaps 672(%rdi), %xmm1
7195 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
7196 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7197 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
7198 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7199 ; AVX1-ONLY-NEXT: vmovaps 864(%rdi), %xmm0
7200 ; AVX1-ONLY-NEXT: vmovaps 800(%rdi), %xmm1
7201 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
7202 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7203 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
7204 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7205 ; AVX1-ONLY-NEXT: vmovaps 992(%rdi), %xmm0
7206 ; AVX1-ONLY-NEXT: vmovaps 928(%rdi), %xmm1
7207 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
7208 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7209 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
7210 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7211 ; AVX1-ONLY-NEXT: vmovaps 1120(%rdi), %xmm0
7212 ; AVX1-ONLY-NEXT: vmovaps 1056(%rdi), %xmm1
7213 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
7214 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7215 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
7216 ; AVX1-ONLY-NEXT: vmovaps %xmm0, (%rsp) # 16-byte Spill
7217 ; AVX1-ONLY-NEXT: vmovaps 1248(%rdi), %xmm0
7218 ; AVX1-ONLY-NEXT: vmovaps 1184(%rdi), %xmm1
7219 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
7220 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7221 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
7222 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7223 ; AVX1-ONLY-NEXT: vmovaps 1376(%rdi), %xmm0
7224 ; AVX1-ONLY-NEXT: vmovaps 1312(%rdi), %xmm1
7225 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
7226 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7227 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
7228 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7229 ; AVX1-ONLY-NEXT: vmovaps 1504(%rdi), %xmm0
7230 ; AVX1-ONLY-NEXT: vmovaps 1440(%rdi), %xmm1
7231 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
7232 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7233 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
7234 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7235 ; AVX1-ONLY-NEXT: vmovaps 1632(%rdi), %xmm0
7236 ; AVX1-ONLY-NEXT: vmovaps 1568(%rdi), %xmm1
7237 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
7238 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7239 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
7240 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7241 ; AVX1-ONLY-NEXT: vmovaps 1760(%rdi), %xmm0
7242 ; AVX1-ONLY-NEXT: vmovaps 1696(%rdi), %xmm1
7243 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
7244 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7245 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
7246 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7247 ; AVX1-ONLY-NEXT: vmovaps 1888(%rdi), %xmm0
7248 ; AVX1-ONLY-NEXT: vmovaps 1824(%rdi), %xmm1
7249 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
7250 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7251 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
7252 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7253 ; AVX1-ONLY-NEXT: vmovaps 2016(%rdi), %xmm0
7254 ; AVX1-ONLY-NEXT: vmovaps 1952(%rdi), %xmm1
7255 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
7256 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7257 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
7258 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7259 ; AVX1-ONLY-NEXT: vmovaps 2144(%rdi), %xmm0
7260 ; AVX1-ONLY-NEXT: vmovaps 2080(%rdi), %xmm1
7261 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
7262 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7263 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
7264 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7265 ; AVX1-ONLY-NEXT: vmovaps 2272(%rdi), %xmm0
7266 ; AVX1-ONLY-NEXT: vmovaps 2208(%rdi), %xmm1
7267 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
7268 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7269 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
7270 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7271 ; AVX1-ONLY-NEXT: vmovaps 2400(%rdi), %xmm0
7272 ; AVX1-ONLY-NEXT: vmovaps 2336(%rdi), %xmm1
7273 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
7274 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7275 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
7276 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7277 ; AVX1-ONLY-NEXT: vmovaps 2528(%rdi), %xmm0
7278 ; AVX1-ONLY-NEXT: vmovaps 2464(%rdi), %xmm1
7279 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
7280 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7281 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
7282 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7283 ; AVX1-ONLY-NEXT: vmovaps 2656(%rdi), %xmm0
7284 ; AVX1-ONLY-NEXT: vmovaps 2592(%rdi), %xmm1
7285 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
7286 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7287 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
7288 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7289 ; AVX1-ONLY-NEXT: vmovaps 2784(%rdi), %xmm0
7290 ; AVX1-ONLY-NEXT: vmovaps 2720(%rdi), %xmm1
7291 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
7292 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7293 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
7294 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7295 ; AVX1-ONLY-NEXT: vmovaps 2912(%rdi), %xmm0
7296 ; AVX1-ONLY-NEXT: vmovaps 2848(%rdi), %xmm1
7297 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
7298 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7299 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
7300 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7301 ; AVX1-ONLY-NEXT: vmovaps 3040(%rdi), %xmm0
7302 ; AVX1-ONLY-NEXT: vmovaps 2976(%rdi), %xmm1
7303 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
7304 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7305 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
7306 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7307 ; AVX1-ONLY-NEXT: vmovaps 3168(%rdi), %xmm0
7308 ; AVX1-ONLY-NEXT: vmovaps 3104(%rdi), %xmm1
7309 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
7310 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7311 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
7312 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7313 ; AVX1-ONLY-NEXT: vmovaps 3296(%rdi), %xmm0
7314 ; AVX1-ONLY-NEXT: vmovaps 3232(%rdi), %xmm1
7315 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
7316 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7317 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
7318 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7319 ; AVX1-ONLY-NEXT: vmovaps 3424(%rdi), %xmm0
7320 ; AVX1-ONLY-NEXT: vmovaps 3360(%rdi), %xmm1
7321 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
7322 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7323 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
7324 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7325 ; AVX1-ONLY-NEXT: vmovaps 3552(%rdi), %xmm0
7326 ; AVX1-ONLY-NEXT: vmovaps 3488(%rdi), %xmm1
7327 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
7328 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7329 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
7330 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7331 ; AVX1-ONLY-NEXT: vmovaps 3680(%rdi), %xmm0
7332 ; AVX1-ONLY-NEXT: vmovaps 3616(%rdi), %xmm1
7333 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
7334 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7335 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
7336 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7337 ; AVX1-ONLY-NEXT: vmovaps 3808(%rdi), %xmm0
7338 ; AVX1-ONLY-NEXT: vmovaps 3744(%rdi), %xmm1
7339 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
7340 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7341 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
7342 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7343 ; AVX1-ONLY-NEXT: vmovaps 3936(%rdi), %xmm0
7344 ; AVX1-ONLY-NEXT: vmovaps 3872(%rdi), %xmm1
7345 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
7346 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7347 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
7348 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7349 ; AVX1-ONLY-NEXT: vmovaps 4064(%rdi), %xmm0
7350 ; AVX1-ONLY-NEXT: vmovaps 4000(%rdi), %xmm1
7351 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
7352 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7353 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
7354 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7355 ; AVX1-ONLY-NEXT: vmovaps 224(%rdi), %ymm1
7356 ; AVX1-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7357 ; AVX1-ONLY-NEXT: vmovaps 160(%rdi), %ymm0
7358 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7359 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
7360 ; AVX1-ONLY-NEXT: vmovaps 112(%rdi), %xmm2
7361 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7362 ; AVX1-ONLY-NEXT: vmovaps 48(%rdi), %xmm1
7363 ; AVX1-ONLY-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7364 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]
7365 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7366 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7367 ; AVX1-ONLY-NEXT: vmovaps 480(%rdi), %ymm1
7368 ; AVX1-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7369 ; AVX1-ONLY-NEXT: vmovaps 416(%rdi), %ymm0
7370 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7371 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
7372 ; AVX1-ONLY-NEXT: vmovaps 368(%rdi), %xmm2
7373 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7374 ; AVX1-ONLY-NEXT: vmovaps 304(%rdi), %xmm1
7375 ; AVX1-ONLY-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7376 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]
7377 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7378 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7379 ; AVX1-ONLY-NEXT: vmovaps 736(%rdi), %ymm1
7380 ; AVX1-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7381 ; AVX1-ONLY-NEXT: vmovaps 672(%rdi), %ymm0
7382 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7383 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
7384 ; AVX1-ONLY-NEXT: vmovaps 624(%rdi), %xmm2
7385 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7386 ; AVX1-ONLY-NEXT: vmovaps 560(%rdi), %xmm1
7387 ; AVX1-ONLY-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7388 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]
7389 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7390 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7391 ; AVX1-ONLY-NEXT: vmovaps 992(%rdi), %ymm1
7392 ; AVX1-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7393 ; AVX1-ONLY-NEXT: vmovaps 928(%rdi), %ymm0
7394 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7395 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
7396 ; AVX1-ONLY-NEXT: vmovaps 880(%rdi), %xmm2
7397 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7398 ; AVX1-ONLY-NEXT: vmovaps 816(%rdi), %xmm1
7399 ; AVX1-ONLY-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7400 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]
7401 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7402 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7403 ; AVX1-ONLY-NEXT: vmovaps 1248(%rdi), %ymm1
7404 ; AVX1-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7405 ; AVX1-ONLY-NEXT: vmovaps 1184(%rdi), %ymm0
7406 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7407 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
7408 ; AVX1-ONLY-NEXT: vmovaps 1136(%rdi), %xmm2
7409 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7410 ; AVX1-ONLY-NEXT: vmovaps 1072(%rdi), %xmm1
7411 ; AVX1-ONLY-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7412 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]
7413 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7414 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7415 ; AVX1-ONLY-NEXT: vmovaps 1504(%rdi), %ymm1
7416 ; AVX1-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7417 ; AVX1-ONLY-NEXT: vmovaps 1440(%rdi), %ymm0
7418 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7419 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
7420 ; AVX1-ONLY-NEXT: vmovaps 1392(%rdi), %xmm2
7421 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7422 ; AVX1-ONLY-NEXT: vmovaps 1328(%rdi), %xmm1
7423 ; AVX1-ONLY-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7424 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]
7425 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7426 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7427 ; AVX1-ONLY-NEXT: vmovaps 1760(%rdi), %ymm1
7428 ; AVX1-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7429 ; AVX1-ONLY-NEXT: vmovaps 1696(%rdi), %ymm0
7430 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7431 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
7432 ; AVX1-ONLY-NEXT: vmovaps 1648(%rdi), %xmm2
7433 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7434 ; AVX1-ONLY-NEXT: vmovaps 1584(%rdi), %xmm1
7435 ; AVX1-ONLY-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7436 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]
7437 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7438 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7439 ; AVX1-ONLY-NEXT: vmovaps 2016(%rdi), %ymm1
7440 ; AVX1-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7441 ; AVX1-ONLY-NEXT: vmovaps 1952(%rdi), %ymm0
7442 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7443 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
7444 ; AVX1-ONLY-NEXT: vmovaps 1904(%rdi), %xmm2
7445 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7446 ; AVX1-ONLY-NEXT: vmovaps 1840(%rdi), %xmm1
7447 ; AVX1-ONLY-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7448 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]
7449 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7450 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7451 ; AVX1-ONLY-NEXT: vmovaps 2272(%rdi), %ymm1
7452 ; AVX1-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7453 ; AVX1-ONLY-NEXT: vmovaps 2208(%rdi), %ymm0
7454 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7455 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
7456 ; AVX1-ONLY-NEXT: vmovaps 2160(%rdi), %xmm2
7457 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7458 ; AVX1-ONLY-NEXT: vmovaps 2096(%rdi), %xmm1
7459 ; AVX1-ONLY-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7460 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]
7461 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7462 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7463 ; AVX1-ONLY-NEXT: vmovaps 2528(%rdi), %ymm1
7464 ; AVX1-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7465 ; AVX1-ONLY-NEXT: vmovaps 2464(%rdi), %ymm0
7466 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7467 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
7468 ; AVX1-ONLY-NEXT: vmovaps 2416(%rdi), %xmm2
7469 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7470 ; AVX1-ONLY-NEXT: vmovaps 2352(%rdi), %xmm1
7471 ; AVX1-ONLY-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7472 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]
7473 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7474 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7475 ; AVX1-ONLY-NEXT: vmovaps 2784(%rdi), %ymm1
7476 ; AVX1-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7477 ; AVX1-ONLY-NEXT: vmovaps 2720(%rdi), %ymm0
7478 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7479 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
7480 ; AVX1-ONLY-NEXT: vmovaps 2672(%rdi), %xmm2
7481 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7482 ; AVX1-ONLY-NEXT: vmovaps 2608(%rdi), %xmm1
7483 ; AVX1-ONLY-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7484 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]
7485 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7486 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7487 ; AVX1-ONLY-NEXT: vmovaps 3040(%rdi), %ymm1
7488 ; AVX1-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7489 ; AVX1-ONLY-NEXT: vmovaps 2976(%rdi), %ymm0
7490 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7491 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
7492 ; AVX1-ONLY-NEXT: vmovaps 2928(%rdi), %xmm2
7493 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7494 ; AVX1-ONLY-NEXT: vmovaps 2864(%rdi), %xmm1
7495 ; AVX1-ONLY-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7496 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]
7497 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7498 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7499 ; AVX1-ONLY-NEXT: vmovaps 3296(%rdi), %ymm1
7500 ; AVX1-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7501 ; AVX1-ONLY-NEXT: vmovaps 3232(%rdi), %ymm0
7502 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7503 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
7504 ; AVX1-ONLY-NEXT: vmovaps 3184(%rdi), %xmm14
7505 ; AVX1-ONLY-NEXT: vmovaps 3120(%rdi), %xmm13
7506 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm1 = xmm13[0],xmm14[0]
7507 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7508 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7509 ; AVX1-ONLY-NEXT: vmovaps 3552(%rdi), %ymm12
7510 ; AVX1-ONLY-NEXT: vmovaps 3488(%rdi), %ymm11
7511 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm11[0],ymm12[0],ymm11[2],ymm12[2]
7512 ; AVX1-ONLY-NEXT: vmovaps 3440(%rdi), %xmm10
7513 ; AVX1-ONLY-NEXT: vmovaps 3376(%rdi), %xmm9
7514 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm1 = xmm9[0],xmm10[0]
7515 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7516 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7517 ; AVX1-ONLY-NEXT: vmovaps 3808(%rdi), %ymm8
7518 ; AVX1-ONLY-NEXT: vmovaps 3744(%rdi), %ymm7
7519 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm7[0],ymm8[0],ymm7[2],ymm8[2]
7520 ; AVX1-ONLY-NEXT: vmovaps 3696(%rdi), %xmm6
7521 ; AVX1-ONLY-NEXT: vmovaps 3632(%rdi), %xmm5
7522 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm1 = xmm5[0],xmm6[0]
7523 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7524 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7525 ; AVX1-ONLY-NEXT: vmovaps 4064(%rdi), %ymm4
7526 ; AVX1-ONLY-NEXT: vmovaps 4000(%rdi), %ymm3
7527 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm3[0],ymm4[0],ymm3[2],ymm4[2]
7528 ; AVX1-ONLY-NEXT: vmovaps 3952(%rdi), %xmm2
7529 ; AVX1-ONLY-NEXT: vmovaps 3888(%rdi), %xmm1
7530 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm15 = xmm1[0],xmm2[0]
7531 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm15[0,1,2,3],ymm0[4,5,6,7]
7532 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7533 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7534 ; AVX1-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
7535 ; AVX1-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
7536 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
7537 ; AVX1-ONLY-NEXT: vmovlps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload
7538 ; AVX1-ONLY-NEXT: # xmm15 = mem[0,1],xmm15[2,3]
7539 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm15[0,1,2,3],ymm0[4,5,6,7]
7540 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7541 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7542 ; AVX1-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
7543 ; AVX1-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
7544 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
7545 ; AVX1-ONLY-NEXT: vmovlps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload
7546 ; AVX1-ONLY-NEXT: # xmm15 = mem[0,1],xmm15[2,3]
7547 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm15[0,1,2,3],ymm0[4,5,6,7]
7548 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7549 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7550 ; AVX1-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
7551 ; AVX1-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
7552 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
7553 ; AVX1-ONLY-NEXT: vmovlps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload
7554 ; AVX1-ONLY-NEXT: # xmm15 = mem[0,1],xmm15[2,3]
7555 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm15[0,1,2,3],ymm0[4,5,6,7]
7556 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7557 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7558 ; AVX1-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
7559 ; AVX1-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
7560 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
7561 ; AVX1-ONLY-NEXT: vmovlps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload
7562 ; AVX1-ONLY-NEXT: # xmm15 = mem[0,1],xmm15[2,3]
7563 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm15[0,1,2,3],ymm0[4,5,6,7]
7564 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7565 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7566 ; AVX1-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
7567 ; AVX1-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
7568 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
7569 ; AVX1-ONLY-NEXT: vmovlps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload
7570 ; AVX1-ONLY-NEXT: # xmm15 = mem[0,1],xmm15[2,3]
7571 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm15[0,1,2,3],ymm0[4,5,6,7]
7572 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7573 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7574 ; AVX1-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
7575 ; AVX1-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
7576 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
7577 ; AVX1-ONLY-NEXT: vmovlps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload
7578 ; AVX1-ONLY-NEXT: # xmm15 = mem[0,1],xmm15[2,3]
7579 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm15[0,1,2,3],ymm0[4,5,6,7]
7580 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7581 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7582 ; AVX1-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
7583 ; AVX1-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
7584 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
7585 ; AVX1-ONLY-NEXT: vmovlps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload
7586 ; AVX1-ONLY-NEXT: # xmm15 = mem[0,1],xmm15[2,3]
7587 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm15[0,1,2,3],ymm0[4,5,6,7]
7588 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7589 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7590 ; AVX1-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
7591 ; AVX1-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
7592 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
7593 ; AVX1-ONLY-NEXT: vmovlps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload
7594 ; AVX1-ONLY-NEXT: # xmm15 = mem[0,1],xmm15[2,3]
7595 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm15[0,1,2,3],ymm0[4,5,6,7]
7596 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7597 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7598 ; AVX1-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
7599 ; AVX1-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
7600 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
7601 ; AVX1-ONLY-NEXT: vmovlps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload
7602 ; AVX1-ONLY-NEXT: # xmm15 = mem[0,1],xmm15[2,3]
7603 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm15[0,1,2,3],ymm0[4,5,6,7]
7604 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7605 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7606 ; AVX1-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
7607 ; AVX1-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
7608 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
7609 ; AVX1-ONLY-NEXT: vmovlps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload
7610 ; AVX1-ONLY-NEXT: # xmm15 = mem[0,1],xmm15[2,3]
7611 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm15[0,1,2,3],ymm0[4,5,6,7]
7612 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7613 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7614 ; AVX1-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
7615 ; AVX1-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
7616 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
7617 ; AVX1-ONLY-NEXT: vmovlps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload
7618 ; AVX1-ONLY-NEXT: # xmm15 = mem[0,1],xmm15[2,3]
7619 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm15[0,1,2,3],ymm0[4,5,6,7]
7620 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7621 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7622 ; AVX1-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
7623 ; AVX1-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
7624 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
7625 ; AVX1-ONLY-NEXT: vmovlps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload
7626 ; AVX1-ONLY-NEXT: # xmm15 = mem[0,1],xmm15[2,3]
7627 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm15 = ymm15[0,1,2,3],ymm0[4,5,6,7]
7628 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7629 ; AVX1-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
7630 ; AVX1-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
7631 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm13 = xmm13[1],xmm14[1]
7632 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm13 = ymm13[0,1,2,3],ymm0[4,5,6,7]
7633 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm11[1],ymm12[1],ymm11[3],ymm12[3]
7634 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm9 = xmm9[1],xmm10[1]
7635 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3],ymm0[4,5,6,7]
7636 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm7[1],ymm8[1],ymm7[3],ymm8[3]
7637 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm5 = xmm5[1],xmm6[1]
7638 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm0[4,5,6,7]
7639 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm3[1],ymm4[1],ymm3[3],ymm4[3]
7640 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
7641 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7642 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7643 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 464(%rsi)
7644 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7645 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 448(%rsi)
7646 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7647 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 256(%rsi)
7648 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7649 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 384(%rsi)
7650 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7651 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 320(%rsi)
7652 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7653 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 192(%rsi)
7654 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7655 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 128(%rsi)
7656 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7657 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 64(%rsi)
7658 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7659 ; AVX1-ONLY-NEXT: vmovaps %xmm1, (%rsi)
7660 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7661 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 272(%rsi)
7662 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7663 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 400(%rsi)
7664 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7665 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 336(%rsi)
7666 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7667 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 208(%rsi)
7668 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7669 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 144(%rsi)
7670 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7671 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 80(%rsi)
7672 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7673 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 16(%rsi)
7674 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7675 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 496(%rsi)
7676 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7677 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 480(%rsi)
7678 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7679 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 32(%rsi)
7680 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7681 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 416(%rsi)
7682 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7683 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 352(%rsi)
7684 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7685 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 288(%rsi)
7686 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7687 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 224(%rsi)
7688 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7689 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 160(%rsi)
7690 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7691 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 96(%rsi)
7692 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7693 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 48(%rsi)
7694 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7695 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 432(%rsi)
7696 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7697 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 368(%rsi)
7698 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7699 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 304(%rsi)
7700 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7701 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 240(%rsi)
7702 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7703 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 176(%rsi)
7704 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7705 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 112(%rsi)
7706 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7707 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 128(%rdx)
7708 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7709 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 144(%rdx)
7710 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7711 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 256(%rdx)
7712 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7713 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 272(%rdx)
7714 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7715 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 64(%rdx)
7716 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7717 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 80(%rdx)
7718 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7719 ; AVX1-ONLY-NEXT: vmovaps %xmm1, (%rdx)
7720 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7721 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 16(%rdx)
7722 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7723 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 192(%rdx)
7724 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7725 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 208(%rdx)
7726 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7727 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 320(%rdx)
7728 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7729 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 336(%rdx)
7730 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7731 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 384(%rdx)
7732 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7733 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 400(%rdx)
7734 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7735 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 448(%rdx)
7736 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7737 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 464(%rdx)
7738 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7739 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 96(%rdx)
7740 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7741 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 112(%rdx)
7742 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7743 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 32(%rdx)
7744 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7745 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 48(%rdx)
7746 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7747 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 160(%rdx)
7748 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7749 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 176(%rdx)
7750 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7751 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 224(%rdx)
7752 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7753 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 240(%rdx)
7754 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7755 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 288(%rdx)
7756 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7757 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 304(%rdx)
7758 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7759 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 352(%rdx)
7760 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7761 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 368(%rdx)
7762 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7763 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 416(%rdx)
7764 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7765 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 432(%rdx)
7766 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7767 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 480(%rdx)
7768 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7769 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 496(%rdx)
7770 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7771 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 448(%rcx)
7772 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7773 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 384(%rcx)
7774 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7775 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 320(%rcx)
7776 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7777 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 256(%rcx)
7778 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7779 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 192(%rcx)
7780 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7781 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 128(%rcx)
7782 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7783 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 64(%rcx)
7784 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7785 ; AVX1-ONLY-NEXT: vmovaps %ymm1, (%rcx)
7786 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7787 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 480(%rcx)
7788 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7789 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 416(%rcx)
7790 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7791 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 352(%rcx)
7792 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7793 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 288(%rcx)
7794 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7795 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 224(%rcx)
7796 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7797 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 160(%rcx)
7798 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7799 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 96(%rcx)
7800 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7801 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 32(%rcx)
7802 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7803 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 480(%r8)
7804 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7805 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 448(%r8)
7806 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7807 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 416(%r8)
7808 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7809 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 384(%r8)
7810 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7811 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 352(%r8)
7812 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7813 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 320(%r8)
7814 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7815 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 288(%r8)
7816 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7817 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 256(%r8)
7818 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7819 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 224(%r8)
7820 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7821 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 192(%r8)
7822 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7823 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 160(%r8)
7824 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7825 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 128(%r8)
7826 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7827 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 96(%r8)
7828 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7829 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 64(%r8)
7830 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7831 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 32(%r8)
7832 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7833 ; AVX1-ONLY-NEXT: vmovaps %ymm1, (%r8)
7834 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7835 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 496(%r9)
7836 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7837 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 480(%r9)
7838 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7839 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 464(%r9)
7840 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7841 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 448(%r9)
7842 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7843 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 432(%r9)
7844 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7845 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 416(%r9)
7846 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7847 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 400(%r9)
7848 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7849 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 384(%r9)
7850 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7851 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 368(%r9)
7852 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7853 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 352(%r9)
7854 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7855 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 336(%r9)
7856 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7857 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 320(%r9)
7858 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7859 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 304(%r9)
7860 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7861 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 288(%r9)
7862 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7863 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 272(%r9)
7864 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7865 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 256(%r9)
7866 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7867 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 240(%r9)
7868 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7869 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 224(%r9)
7870 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7871 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 208(%r9)
7872 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7873 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 192(%r9)
7874 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7875 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 176(%r9)
7876 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7877 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 160(%r9)
7878 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7879 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 144(%r9)
7880 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7881 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 128(%r9)
7882 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7883 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 112(%r9)
7884 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7885 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 96(%r9)
7886 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7887 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 80(%r9)
7888 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7889 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 64(%r9)
7890 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7891 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 48(%r9)
7892 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7893 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 32(%r9)
7894 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7895 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 16(%r9)
7896 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7897 ; AVX1-ONLY-NEXT: vmovaps %xmm1, (%r9)
7898 ; AVX1-ONLY-NEXT: movq {{[0-9]+}}(%rsp), %rax
7899 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7900 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 496(%rax)
7901 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7902 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 480(%rax)
7903 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7904 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 464(%rax)
7905 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7906 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 448(%rax)
7907 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7908 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 432(%rax)
7909 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7910 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 416(%rax)
7911 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7912 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 400(%rax)
7913 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7914 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 384(%rax)
7915 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7916 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 368(%rax)
7917 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7918 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 352(%rax)
7919 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7920 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 336(%rax)
7921 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7922 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 320(%rax)
7923 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7924 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 304(%rax)
7925 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7926 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 288(%rax)
7927 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7928 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 272(%rax)
7929 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7930 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 256(%rax)
7931 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7932 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 240(%rax)
7933 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7934 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 224(%rax)
7935 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7936 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 208(%rax)
7937 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7938 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 192(%rax)
7939 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7940 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 176(%rax)
7941 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7942 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 160(%rax)
7943 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7944 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 144(%rax)
7945 ; AVX1-ONLY-NEXT: vmovaps (%rsp), %xmm1 # 16-byte Reload
7946 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 128(%rax)
7947 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7948 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 112(%rax)
7949 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7950 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 96(%rax)
7951 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7952 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 80(%rax)
7953 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7954 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 64(%rax)
7955 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7956 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 48(%rax)
7957 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7958 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 32(%rax)
7959 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7960 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 16(%rax)
7961 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7962 ; AVX1-ONLY-NEXT: vmovaps %xmm1, (%rax)
7963 ; AVX1-ONLY-NEXT: movq {{[0-9]+}}(%rsp), %rax
7964 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7965 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 480(%rax)
7966 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7967 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 448(%rax)
7968 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7969 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 416(%rax)
7970 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7971 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 384(%rax)
7972 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7973 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 352(%rax)
7974 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7975 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 320(%rax)
7976 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7977 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 288(%rax)
7978 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7979 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 256(%rax)
7980 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7981 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 224(%rax)
7982 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7983 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 192(%rax)
7984 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7985 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 160(%rax)
7986 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7987 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 128(%rax)
7988 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7989 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 96(%rax)
7990 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7991 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 64(%rax)
7992 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7993 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 32(%rax)
7994 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7995 ; AVX1-ONLY-NEXT: vmovaps %ymm1, (%rax)
7996 ; AVX1-ONLY-NEXT: movq {{[0-9]+}}(%rsp), %rax
7997 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 480(%rax)
7998 ; AVX1-ONLY-NEXT: vmovaps %ymm5, 448(%rax)
7999 ; AVX1-ONLY-NEXT: vmovaps %ymm9, 416(%rax)
8000 ; AVX1-ONLY-NEXT: vmovaps %ymm13, 384(%rax)
8001 ; AVX1-ONLY-NEXT: vmovaps %ymm15, 352(%rax)
8002 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8003 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 320(%rax)
8004 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8005 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 288(%rax)
8006 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8007 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 256(%rax)
8008 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8009 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 224(%rax)
8010 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8011 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 192(%rax)
8012 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8013 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 160(%rax)
8014 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8015 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 128(%rax)
8016 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8017 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 96(%rax)
8018 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8019 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 64(%rax)
8020 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8021 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 32(%rax)
8022 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8023 ; AVX1-ONLY-NEXT: vmovaps %ymm0, (%rax)
8024 ; AVX1-ONLY-NEXT: addq $5016, %rsp # imm = 0x1398
8025 ; AVX1-ONLY-NEXT: vzeroupper
8026 ; AVX1-ONLY-NEXT: retq
8028 ; AVX2-ONLY-LABEL: load_i64_stride8_vf64:
8029 ; AVX2-ONLY: # %bb.0:
8030 ; AVX2-ONLY-NEXT: subq $5064, %rsp # imm = 0x13C8
8031 ; AVX2-ONLY-NEXT: vmovaps 320(%rdi), %xmm0
8032 ; AVX2-ONLY-NEXT: vinsertf128 $1, 448(%rdi), %ymm0, %ymm0
8033 ; AVX2-ONLY-NEXT: vmovaps 256(%rdi), %xmm1
8034 ; AVX2-ONLY-NEXT: vinsertf128 $1, 384(%rdi), %ymm1, %ymm1
8035 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
8036 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8037 ; AVX2-ONLY-NEXT: vmovaps 832(%rdi), %xmm2
8038 ; AVX2-ONLY-NEXT: vinsertf128 $1, 960(%rdi), %ymm2, %ymm2
8039 ; AVX2-ONLY-NEXT: vmovaps 768(%rdi), %xmm3
8040 ; AVX2-ONLY-NEXT: vinsertf128 $1, 896(%rdi), %ymm3, %ymm3
8041 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
8042 ; AVX2-ONLY-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8043 ; AVX2-ONLY-NEXT: vmovaps 1344(%rdi), %xmm4
8044 ; AVX2-ONLY-NEXT: vinsertf128 $1, 1472(%rdi), %ymm4, %ymm4
8045 ; AVX2-ONLY-NEXT: vmovaps 1280(%rdi), %xmm5
8046 ; AVX2-ONLY-NEXT: vinsertf128 $1, 1408(%rdi), %ymm5, %ymm5
8047 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm6 = ymm5[0],ymm4[0],ymm5[2],ymm4[2]
8048 ; AVX2-ONLY-NEXT: vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8049 ; AVX2-ONLY-NEXT: vmovaps 1856(%rdi), %xmm6
8050 ; AVX2-ONLY-NEXT: vinsertf128 $1, 1984(%rdi), %ymm6, %ymm6
8051 ; AVX2-ONLY-NEXT: vmovaps 1792(%rdi), %xmm7
8052 ; AVX2-ONLY-NEXT: vinsertf128 $1, 1920(%rdi), %ymm7, %ymm7
8053 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm8 = ymm7[0],ymm6[0],ymm7[2],ymm6[2]
8054 ; AVX2-ONLY-NEXT: vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8055 ; AVX2-ONLY-NEXT: vmovaps 2368(%rdi), %xmm8
8056 ; AVX2-ONLY-NEXT: vinsertf128 $1, 2496(%rdi), %ymm8, %ymm8
8057 ; AVX2-ONLY-NEXT: vmovaps 2304(%rdi), %xmm9
8058 ; AVX2-ONLY-NEXT: vinsertf128 $1, 2432(%rdi), %ymm9, %ymm9
8059 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm10 = ymm9[0],ymm8[0],ymm9[2],ymm8[2]
8060 ; AVX2-ONLY-NEXT: vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8061 ; AVX2-ONLY-NEXT: vmovaps 2880(%rdi), %xmm10
8062 ; AVX2-ONLY-NEXT: vinsertf128 $1, 3008(%rdi), %ymm10, %ymm10
8063 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
8064 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8065 ; AVX2-ONLY-NEXT: vmovaps 2816(%rdi), %xmm0
8066 ; AVX2-ONLY-NEXT: vinsertf128 $1, 2944(%rdi), %ymm0, %ymm0
8067 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm3[1],ymm2[1],ymm3[3],ymm2[3]
8068 ; AVX2-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8069 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm0[0],ymm10[0],ymm0[2],ymm10[2]
8070 ; AVX2-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8071 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm5[1],ymm4[1],ymm5[3],ymm4[3]
8072 ; AVX2-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8073 ; AVX2-ONLY-NEXT: vmovaps 3392(%rdi), %xmm1
8074 ; AVX2-ONLY-NEXT: vinsertf128 $1, 3520(%rdi), %ymm1, %ymm1
8075 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm7[1],ymm6[1],ymm7[3],ymm6[3]
8076 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8077 ; AVX2-ONLY-NEXT: vmovaps 3328(%rdi), %xmm2
8078 ; AVX2-ONLY-NEXT: vinsertf128 $1, 3456(%rdi), %ymm2, %ymm2
8079 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm3 = ymm9[1],ymm8[1],ymm9[3],ymm8[3]
8080 ; AVX2-ONLY-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8081 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm3 = ymm2[0],ymm1[0],ymm2[2],ymm1[2]
8082 ; AVX2-ONLY-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8083 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm10[1],ymm0[3],ymm10[3]
8084 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8085 ; AVX2-ONLY-NEXT: vmovaps 3904(%rdi), %xmm0
8086 ; AVX2-ONLY-NEXT: vinsertf128 $1, 4032(%rdi), %ymm0, %ymm0
8087 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm1[1],ymm2[3],ymm1[3]
8088 ; AVX2-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8089 ; AVX2-ONLY-NEXT: vmovaps 3840(%rdi), %xmm1
8090 ; AVX2-ONLY-NEXT: vinsertf128 $1, 3968(%rdi), %ymm1, %ymm1
8091 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
8092 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8093 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
8094 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8095 ; AVX2-ONLY-NEXT: vmovaps 64(%rdi), %xmm0
8096 ; AVX2-ONLY-NEXT: vinsertf128 $1, 192(%rdi), %ymm0, %ymm0
8097 ; AVX2-ONLY-NEXT: vmovaps (%rdi), %xmm1
8098 ; AVX2-ONLY-NEXT: vinsertf128 $1, 128(%rdi), %ymm1, %ymm1
8099 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
8100 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8101 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
8102 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8103 ; AVX2-ONLY-NEXT: vmovaps 576(%rdi), %xmm0
8104 ; AVX2-ONLY-NEXT: vinsertf128 $1, 704(%rdi), %ymm0, %ymm0
8105 ; AVX2-ONLY-NEXT: vmovaps 512(%rdi), %xmm1
8106 ; AVX2-ONLY-NEXT: vinsertf128 $1, 640(%rdi), %ymm1, %ymm1
8107 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
8108 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8109 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
8110 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8111 ; AVX2-ONLY-NEXT: vmovaps 1088(%rdi), %xmm0
8112 ; AVX2-ONLY-NEXT: vinsertf128 $1, 1216(%rdi), %ymm0, %ymm0
8113 ; AVX2-ONLY-NEXT: vmovaps 1024(%rdi), %xmm1
8114 ; AVX2-ONLY-NEXT: vinsertf128 $1, 1152(%rdi), %ymm1, %ymm1
8115 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
8116 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8117 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
8118 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8119 ; AVX2-ONLY-NEXT: vmovaps 1600(%rdi), %xmm0
8120 ; AVX2-ONLY-NEXT: vinsertf128 $1, 1728(%rdi), %ymm0, %ymm0
8121 ; AVX2-ONLY-NEXT: vmovaps 1536(%rdi), %xmm1
8122 ; AVX2-ONLY-NEXT: vinsertf128 $1, 1664(%rdi), %ymm1, %ymm1
8123 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
8124 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8125 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
8126 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8127 ; AVX2-ONLY-NEXT: vmovaps 2112(%rdi), %xmm0
8128 ; AVX2-ONLY-NEXT: vinsertf128 $1, 2240(%rdi), %ymm0, %ymm0
8129 ; AVX2-ONLY-NEXT: vmovaps 2048(%rdi), %xmm1
8130 ; AVX2-ONLY-NEXT: vinsertf128 $1, 2176(%rdi), %ymm1, %ymm1
8131 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
8132 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8133 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
8134 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8135 ; AVX2-ONLY-NEXT: vmovaps 2624(%rdi), %xmm0
8136 ; AVX2-ONLY-NEXT: vinsertf128 $1, 2752(%rdi), %ymm0, %ymm0
8137 ; AVX2-ONLY-NEXT: vmovaps 2560(%rdi), %xmm1
8138 ; AVX2-ONLY-NEXT: vinsertf128 $1, 2688(%rdi), %ymm1, %ymm1
8139 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
8140 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8141 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
8142 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8143 ; AVX2-ONLY-NEXT: vmovaps 3136(%rdi), %xmm0
8144 ; AVX2-ONLY-NEXT: vinsertf128 $1, 3264(%rdi), %ymm0, %ymm0
8145 ; AVX2-ONLY-NEXT: vmovaps 3072(%rdi), %xmm1
8146 ; AVX2-ONLY-NEXT: vinsertf128 $1, 3200(%rdi), %ymm1, %ymm1
8147 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
8148 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8149 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
8150 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8151 ; AVX2-ONLY-NEXT: vmovaps 3648(%rdi), %xmm0
8152 ; AVX2-ONLY-NEXT: vinsertf128 $1, 3776(%rdi), %ymm0, %ymm0
8153 ; AVX2-ONLY-NEXT: vmovaps 3584(%rdi), %xmm1
8154 ; AVX2-ONLY-NEXT: vinsertf128 $1, 3712(%rdi), %ymm1, %ymm1
8155 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
8156 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8157 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
8158 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8159 ; AVX2-ONLY-NEXT: vmovaps 320(%rdi), %ymm2
8160 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8161 ; AVX2-ONLY-NEXT: vmovaps 256(%rdi), %ymm3
8162 ; AVX2-ONLY-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8163 ; AVX2-ONLY-NEXT: vmovaps 448(%rdi), %ymm1
8164 ; AVX2-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8165 ; AVX2-ONLY-NEXT: vmovaps 384(%rdi), %ymm0
8166 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8167 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
8168 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
8169 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
8170 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8171 ; AVX2-ONLY-NEXT: vmovaps 832(%rdi), %ymm2
8172 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8173 ; AVX2-ONLY-NEXT: vmovaps 768(%rdi), %ymm3
8174 ; AVX2-ONLY-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8175 ; AVX2-ONLY-NEXT: vmovaps 960(%rdi), %ymm1
8176 ; AVX2-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8177 ; AVX2-ONLY-NEXT: vmovaps 896(%rdi), %ymm0
8178 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8179 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
8180 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
8181 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
8182 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8183 ; AVX2-ONLY-NEXT: vmovaps 1344(%rdi), %ymm2
8184 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8185 ; AVX2-ONLY-NEXT: vmovaps 1280(%rdi), %ymm3
8186 ; AVX2-ONLY-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8187 ; AVX2-ONLY-NEXT: vmovaps 1472(%rdi), %ymm1
8188 ; AVX2-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8189 ; AVX2-ONLY-NEXT: vmovaps 1408(%rdi), %ymm0
8190 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8191 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
8192 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
8193 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
8194 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8195 ; AVX2-ONLY-NEXT: vmovaps 1856(%rdi), %ymm2
8196 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8197 ; AVX2-ONLY-NEXT: vmovaps 1792(%rdi), %ymm3
8198 ; AVX2-ONLY-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8199 ; AVX2-ONLY-NEXT: vmovaps 1984(%rdi), %ymm1
8200 ; AVX2-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8201 ; AVX2-ONLY-NEXT: vmovaps 1920(%rdi), %ymm0
8202 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8203 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
8204 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
8205 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
8206 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8207 ; AVX2-ONLY-NEXT: vmovaps 2368(%rdi), %ymm2
8208 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8209 ; AVX2-ONLY-NEXT: vmovaps 2304(%rdi), %ymm3
8210 ; AVX2-ONLY-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8211 ; AVX2-ONLY-NEXT: vmovaps 2496(%rdi), %ymm1
8212 ; AVX2-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8213 ; AVX2-ONLY-NEXT: vmovaps 2432(%rdi), %ymm0
8214 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8215 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
8216 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
8217 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
8218 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8219 ; AVX2-ONLY-NEXT: vmovaps 2880(%rdi), %ymm2
8220 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8221 ; AVX2-ONLY-NEXT: vmovaps 2816(%rdi), %ymm3
8222 ; AVX2-ONLY-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8223 ; AVX2-ONLY-NEXT: vmovaps 3008(%rdi), %ymm1
8224 ; AVX2-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8225 ; AVX2-ONLY-NEXT: vmovaps 2944(%rdi), %ymm0
8226 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8227 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
8228 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
8229 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
8230 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8231 ; AVX2-ONLY-NEXT: vmovaps 3392(%rdi), %ymm2
8232 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8233 ; AVX2-ONLY-NEXT: vmovaps 3328(%rdi), %ymm3
8234 ; AVX2-ONLY-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8235 ; AVX2-ONLY-NEXT: vmovaps 3520(%rdi), %ymm1
8236 ; AVX2-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8237 ; AVX2-ONLY-NEXT: vmovaps 3456(%rdi), %ymm0
8238 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8239 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
8240 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
8241 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
8242 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8243 ; AVX2-ONLY-NEXT: vmovaps 3904(%rdi), %ymm2
8244 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8245 ; AVX2-ONLY-NEXT: vmovaps 3840(%rdi), %ymm3
8246 ; AVX2-ONLY-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8247 ; AVX2-ONLY-NEXT: vmovaps 4032(%rdi), %ymm1
8248 ; AVX2-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8249 ; AVX2-ONLY-NEXT: vmovaps 3968(%rdi), %ymm0
8250 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8251 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
8252 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
8253 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
8254 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8255 ; AVX2-ONLY-NEXT: vmovaps 64(%rdi), %ymm2
8256 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8257 ; AVX2-ONLY-NEXT: vmovaps (%rdi), %ymm3
8258 ; AVX2-ONLY-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8259 ; AVX2-ONLY-NEXT: vmovaps 192(%rdi), %ymm1
8260 ; AVX2-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8261 ; AVX2-ONLY-NEXT: vmovaps 128(%rdi), %ymm0
8262 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8263 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
8264 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
8265 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
8266 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8267 ; AVX2-ONLY-NEXT: vmovaps 576(%rdi), %ymm2
8268 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8269 ; AVX2-ONLY-NEXT: vmovaps 512(%rdi), %ymm3
8270 ; AVX2-ONLY-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8271 ; AVX2-ONLY-NEXT: vmovaps 704(%rdi), %ymm1
8272 ; AVX2-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8273 ; AVX2-ONLY-NEXT: vmovaps 640(%rdi), %ymm0
8274 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8275 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
8276 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
8277 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
8278 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8279 ; AVX2-ONLY-NEXT: vmovaps 1088(%rdi), %ymm2
8280 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8281 ; AVX2-ONLY-NEXT: vmovaps 1024(%rdi), %ymm3
8282 ; AVX2-ONLY-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8283 ; AVX2-ONLY-NEXT: vmovaps 1216(%rdi), %ymm0
8284 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8285 ; AVX2-ONLY-NEXT: vmovaps 1152(%rdi), %ymm15
8286 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm15[0],ymm0[0],ymm15[2],ymm0[2]
8287 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
8288 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
8289 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8290 ; AVX2-ONLY-NEXT: vmovaps 1600(%rdi), %ymm2
8291 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8292 ; AVX2-ONLY-NEXT: vmovaps 1536(%rdi), %ymm1
8293 ; AVX2-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8294 ; AVX2-ONLY-NEXT: vmovaps 1728(%rdi), %ymm14
8295 ; AVX2-ONLY-NEXT: vmovaps 1664(%rdi), %ymm11
8296 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm11[0],ymm14[0],ymm11[2],ymm14[2]
8297 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
8298 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
8299 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8300 ; AVX2-ONLY-NEXT: vmovaps 2112(%rdi), %ymm2
8301 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8302 ; AVX2-ONLY-NEXT: vmovaps 2048(%rdi), %ymm1
8303 ; AVX2-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8304 ; AVX2-ONLY-NEXT: vmovaps 2240(%rdi), %ymm10
8305 ; AVX2-ONLY-NEXT: vmovaps 2176(%rdi), %ymm8
8306 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm8[0],ymm10[0],ymm8[2],ymm10[2]
8307 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
8308 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
8309 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8310 ; AVX2-ONLY-NEXT: vmovaps 2624(%rdi), %ymm2
8311 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8312 ; AVX2-ONLY-NEXT: vmovaps 2560(%rdi), %ymm1
8313 ; AVX2-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8314 ; AVX2-ONLY-NEXT: vmovaps 2752(%rdi), %ymm7
8315 ; AVX2-ONLY-NEXT: vmovaps 2688(%rdi), %ymm5
8316 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm5[0],ymm7[0],ymm5[2],ymm7[2]
8317 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
8318 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
8319 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8320 ; AVX2-ONLY-NEXT: vmovaps 3136(%rdi), %ymm1
8321 ; AVX2-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8322 ; AVX2-ONLY-NEXT: vmovaps 3072(%rdi), %ymm9
8323 ; AVX2-ONLY-NEXT: vmovaps 3264(%rdi), %ymm4
8324 ; AVX2-ONLY-NEXT: vmovaps 3200(%rdi), %ymm3
8325 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm3[0],ymm4[0],ymm3[2],ymm4[2]
8326 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm9[0],ymm1[0],ymm9[2],ymm1[2]
8327 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm2[2,3],ymm0[2,3]
8328 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8329 ; AVX2-ONLY-NEXT: vmovaps 3648(%rdi), %ymm12
8330 ; AVX2-ONLY-NEXT: vmovaps 3584(%rdi), %ymm6
8331 ; AVX2-ONLY-NEXT: vmovaps 3776(%rdi), %ymm2
8332 ; AVX2-ONLY-NEXT: vmovaps 3712(%rdi), %ymm1
8333 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
8334 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm13 = ymm6[0],ymm12[0],ymm6[2],ymm12[2]
8335 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm13[2,3],ymm0[2,3]
8336 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8337 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8338 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
8339 ; AVX2-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
8340 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
8341 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm13 # 32-byte Folded Reload
8342 ; AVX2-ONLY-NEXT: # ymm13 = ymm13[1],mem[1],ymm13[3],mem[3]
8343 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm13[2,3],ymm0[2,3]
8344 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8345 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8346 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
8347 ; AVX2-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
8348 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
8349 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm13 # 32-byte Folded Reload
8350 ; AVX2-ONLY-NEXT: # ymm13 = ymm13[1],mem[1],ymm13[3],mem[3]
8351 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm13[2,3],ymm0[2,3]
8352 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8353 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8354 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
8355 ; AVX2-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
8356 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
8357 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm13 # 32-byte Folded Reload
8358 ; AVX2-ONLY-NEXT: # ymm13 = ymm13[1],mem[1],ymm13[3],mem[3]
8359 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm13[2,3],ymm0[2,3]
8360 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8361 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8362 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
8363 ; AVX2-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
8364 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
8365 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm13 # 32-byte Folded Reload
8366 ; AVX2-ONLY-NEXT: # ymm13 = ymm13[1],mem[1],ymm13[3],mem[3]
8367 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm13[2,3],ymm0[2,3]
8368 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8369 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm0 # 32-byte Folded Reload
8370 ; AVX2-ONLY-NEXT: # ymm0 = ymm15[1],mem[1],ymm15[3],mem[3]
8371 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
8372 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm13 # 32-byte Folded Reload
8373 ; AVX2-ONLY-NEXT: # ymm13 = ymm13[1],mem[1],ymm13[3],mem[3]
8374 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm13[2,3],ymm0[2,3]
8375 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8376 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8377 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
8378 ; AVX2-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
8379 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
8380 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm13 # 32-byte Folded Reload
8381 ; AVX2-ONLY-NEXT: # ymm13 = ymm13[1],mem[1],ymm13[3],mem[3]
8382 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm13[2,3],ymm0[2,3]
8383 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8384 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm11[1],ymm14[1],ymm11[3],ymm14[3]
8385 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload
8386 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm11 # 32-byte Folded Reload
8387 ; AVX2-ONLY-NEXT: # ymm11 = ymm11[1],mem[1],ymm11[3],mem[3]
8388 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm11[2,3],ymm0[2,3]
8389 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8390 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8391 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
8392 ; AVX2-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
8393 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload
8394 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm11 # 32-byte Folded Reload
8395 ; AVX2-ONLY-NEXT: # ymm11 = ymm11[1],mem[1],ymm11[3],mem[3]
8396 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm11[2,3],ymm0[2,3]
8397 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8398 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm8[1],ymm10[1],ymm8[3],ymm10[3]
8399 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
8400 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
8401 ; AVX2-ONLY-NEXT: # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
8402 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm8[2,3],ymm0[2,3]
8403 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8404 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8405 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
8406 ; AVX2-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
8407 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
8408 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
8409 ; AVX2-ONLY-NEXT: # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
8410 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm8[2,3],ymm0[2,3]
8411 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8412 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm5[1],ymm7[1],ymm5[3],ymm7[3]
8413 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8414 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm5 # 32-byte Folded Reload
8415 ; AVX2-ONLY-NEXT: # ymm5 = ymm5[1],mem[1],ymm5[3],mem[3]
8416 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm5[2,3],ymm0[2,3]
8417 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8418 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8419 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
8420 ; AVX2-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
8421 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8422 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm5 # 32-byte Folded Reload
8423 ; AVX2-ONLY-NEXT: # ymm5 = ymm5[1],mem[1],ymm5[3],mem[3]
8424 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm5[2,3],ymm0[2,3]
8425 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8426 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm3[1],ymm4[1],ymm3[3],ymm4[3]
8427 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm3 # 32-byte Folded Reload
8428 ; AVX2-ONLY-NEXT: # ymm3 = ymm9[1],mem[1],ymm9[3],mem[3]
8429 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm3[2,3],ymm0[2,3]
8430 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8431 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8432 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
8433 ; AVX2-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
8434 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
8435 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
8436 ; AVX2-ONLY-NEXT: # ymm3 = ymm3[1],mem[1],ymm3[3],mem[3]
8437 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm3[2,3],ymm0[2,3]
8438 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8439 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
8440 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm6[1],ymm12[1],ymm6[3],ymm12[3]
8441 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
8442 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8443 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8444 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
8445 ; AVX2-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
8446 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8447 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
8448 ; AVX2-ONLY-NEXT: # ymm1 = ymm1[1],mem[1],ymm1[3],mem[3]
8449 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
8450 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8451 ; AVX2-ONLY-NEXT: vmovaps 96(%rdi), %xmm0
8452 ; AVX2-ONLY-NEXT: vinsertf128 $1, 224(%rdi), %ymm0, %ymm0
8453 ; AVX2-ONLY-NEXT: vmovaps 32(%rdi), %xmm1
8454 ; AVX2-ONLY-NEXT: vinsertf128 $1, 160(%rdi), %ymm1, %ymm1
8455 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
8456 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8457 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
8458 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8459 ; AVX2-ONLY-NEXT: vmovaps 352(%rdi), %xmm0
8460 ; AVX2-ONLY-NEXT: vinsertf128 $1, 480(%rdi), %ymm0, %ymm0
8461 ; AVX2-ONLY-NEXT: vmovaps 288(%rdi), %xmm1
8462 ; AVX2-ONLY-NEXT: vinsertf128 $1, 416(%rdi), %ymm1, %ymm1
8463 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
8464 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8465 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
8466 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8467 ; AVX2-ONLY-NEXT: vmovaps 608(%rdi), %xmm0
8468 ; AVX2-ONLY-NEXT: vinsertf128 $1, 736(%rdi), %ymm0, %ymm0
8469 ; AVX2-ONLY-NEXT: vmovaps 544(%rdi), %xmm1
8470 ; AVX2-ONLY-NEXT: vinsertf128 $1, 672(%rdi), %ymm1, %ymm1
8471 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
8472 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8473 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
8474 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8475 ; AVX2-ONLY-NEXT: vmovaps 864(%rdi), %xmm0
8476 ; AVX2-ONLY-NEXT: vinsertf128 $1, 992(%rdi), %ymm0, %ymm0
8477 ; AVX2-ONLY-NEXT: vmovaps 800(%rdi), %xmm1
8478 ; AVX2-ONLY-NEXT: vinsertf128 $1, 928(%rdi), %ymm1, %ymm1
8479 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
8480 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8481 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
8482 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8483 ; AVX2-ONLY-NEXT: vmovaps 1120(%rdi), %xmm0
8484 ; AVX2-ONLY-NEXT: vinsertf128 $1, 1248(%rdi), %ymm0, %ymm0
8485 ; AVX2-ONLY-NEXT: vmovaps 1056(%rdi), %xmm1
8486 ; AVX2-ONLY-NEXT: vinsertf128 $1, 1184(%rdi), %ymm1, %ymm1
8487 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
8488 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8489 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
8490 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8491 ; AVX2-ONLY-NEXT: vmovaps 1376(%rdi), %xmm0
8492 ; AVX2-ONLY-NEXT: vinsertf128 $1, 1504(%rdi), %ymm0, %ymm0
8493 ; AVX2-ONLY-NEXT: vmovaps 1312(%rdi), %xmm1
8494 ; AVX2-ONLY-NEXT: vinsertf128 $1, 1440(%rdi), %ymm1, %ymm1
8495 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
8496 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8497 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
8498 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8499 ; AVX2-ONLY-NEXT: vmovaps 1632(%rdi), %xmm0
8500 ; AVX2-ONLY-NEXT: vinsertf128 $1, 1760(%rdi), %ymm0, %ymm0
8501 ; AVX2-ONLY-NEXT: vmovaps 1568(%rdi), %xmm1
8502 ; AVX2-ONLY-NEXT: vinsertf128 $1, 1696(%rdi), %ymm1, %ymm1
8503 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
8504 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8505 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
8506 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8507 ; AVX2-ONLY-NEXT: vmovaps 1888(%rdi), %xmm0
8508 ; AVX2-ONLY-NEXT: vinsertf128 $1, 2016(%rdi), %ymm0, %ymm0
8509 ; AVX2-ONLY-NEXT: vmovaps 1824(%rdi), %xmm1
8510 ; AVX2-ONLY-NEXT: vinsertf128 $1, 1952(%rdi), %ymm1, %ymm1
8511 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
8512 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8513 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
8514 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8515 ; AVX2-ONLY-NEXT: vmovaps 2144(%rdi), %xmm0
8516 ; AVX2-ONLY-NEXT: vinsertf128 $1, 2272(%rdi), %ymm0, %ymm0
8517 ; AVX2-ONLY-NEXT: vmovaps 2080(%rdi), %xmm1
8518 ; AVX2-ONLY-NEXT: vinsertf128 $1, 2208(%rdi), %ymm1, %ymm1
8519 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
8520 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8521 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
8522 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8523 ; AVX2-ONLY-NEXT: vmovaps 2400(%rdi), %xmm0
8524 ; AVX2-ONLY-NEXT: vinsertf128 $1, 2528(%rdi), %ymm0, %ymm0
8525 ; AVX2-ONLY-NEXT: vmovaps 2336(%rdi), %xmm1
8526 ; AVX2-ONLY-NEXT: vinsertf128 $1, 2464(%rdi), %ymm1, %ymm1
8527 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
8528 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8529 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
8530 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8531 ; AVX2-ONLY-NEXT: vmovaps 2656(%rdi), %xmm0
8532 ; AVX2-ONLY-NEXT: vinsertf128 $1, 2784(%rdi), %ymm0, %ymm0
8533 ; AVX2-ONLY-NEXT: vmovaps 2592(%rdi), %xmm1
8534 ; AVX2-ONLY-NEXT: vinsertf128 $1, 2720(%rdi), %ymm1, %ymm1
8535 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
8536 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8537 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
8538 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8539 ; AVX2-ONLY-NEXT: vmovaps 2912(%rdi), %xmm0
8540 ; AVX2-ONLY-NEXT: vinsertf128 $1, 3040(%rdi), %ymm0, %ymm0
8541 ; AVX2-ONLY-NEXT: vmovaps 2848(%rdi), %xmm1
8542 ; AVX2-ONLY-NEXT: vinsertf128 $1, 2976(%rdi), %ymm1, %ymm1
8543 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
8544 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8545 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
8546 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8547 ; AVX2-ONLY-NEXT: vmovaps 3168(%rdi), %xmm0
8548 ; AVX2-ONLY-NEXT: vinsertf128 $1, 3296(%rdi), %ymm0, %ymm0
8549 ; AVX2-ONLY-NEXT: vmovaps 3104(%rdi), %xmm1
8550 ; AVX2-ONLY-NEXT: vinsertf128 $1, 3232(%rdi), %ymm1, %ymm1
8551 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
8552 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8553 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
8554 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8555 ; AVX2-ONLY-NEXT: vmovaps 3424(%rdi), %xmm0
8556 ; AVX2-ONLY-NEXT: vinsertf128 $1, 3552(%rdi), %ymm0, %ymm0
8557 ; AVX2-ONLY-NEXT: vmovaps 3360(%rdi), %xmm1
8558 ; AVX2-ONLY-NEXT: vinsertf128 $1, 3488(%rdi), %ymm1, %ymm1
8559 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
8560 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8561 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
8562 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8563 ; AVX2-ONLY-NEXT: vmovaps 3680(%rdi), %xmm0
8564 ; AVX2-ONLY-NEXT: vinsertf128 $1, 3808(%rdi), %ymm0, %ymm0
8565 ; AVX2-ONLY-NEXT: vmovaps 3616(%rdi), %xmm1
8566 ; AVX2-ONLY-NEXT: vinsertf128 $1, 3744(%rdi), %ymm1, %ymm1
8567 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
8568 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8569 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
8570 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8571 ; AVX2-ONLY-NEXT: vmovaps 3936(%rdi), %xmm0
8572 ; AVX2-ONLY-NEXT: vinsertf128 $1, 4064(%rdi), %ymm0, %ymm0
8573 ; AVX2-ONLY-NEXT: vmovaps 3872(%rdi), %xmm1
8574 ; AVX2-ONLY-NEXT: vinsertf128 $1, 4000(%rdi), %ymm1, %ymm1
8575 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
8576 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8577 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
8578 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8579 ; AVX2-ONLY-NEXT: vmovaps 96(%rdi), %ymm2
8580 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8581 ; AVX2-ONLY-NEXT: vmovaps 32(%rdi), %ymm3
8582 ; AVX2-ONLY-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8583 ; AVX2-ONLY-NEXT: vmovaps 224(%rdi), %ymm1
8584 ; AVX2-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8585 ; AVX2-ONLY-NEXT: vmovaps 160(%rdi), %ymm0
8586 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8587 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
8588 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
8589 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
8590 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8591 ; AVX2-ONLY-NEXT: vmovaps 352(%rdi), %ymm2
8592 ; AVX2-ONLY-NEXT: vmovups %ymm2, (%rsp) # 32-byte Spill
8593 ; AVX2-ONLY-NEXT: vmovaps 288(%rdi), %ymm3
8594 ; AVX2-ONLY-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8595 ; AVX2-ONLY-NEXT: vmovaps 480(%rdi), %ymm1
8596 ; AVX2-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8597 ; AVX2-ONLY-NEXT: vmovaps 416(%rdi), %ymm0
8598 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8599 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
8600 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
8601 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
8602 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8603 ; AVX2-ONLY-NEXT: vmovaps 608(%rdi), %ymm2
8604 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8605 ; AVX2-ONLY-NEXT: vmovaps 544(%rdi), %ymm3
8606 ; AVX2-ONLY-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8607 ; AVX2-ONLY-NEXT: vmovaps 736(%rdi), %ymm1
8608 ; AVX2-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8609 ; AVX2-ONLY-NEXT: vmovaps 672(%rdi), %ymm0
8610 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8611 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
8612 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
8613 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
8614 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8615 ; AVX2-ONLY-NEXT: vmovaps 864(%rdi), %ymm2
8616 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8617 ; AVX2-ONLY-NEXT: vmovaps 800(%rdi), %ymm3
8618 ; AVX2-ONLY-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8619 ; AVX2-ONLY-NEXT: vmovaps 992(%rdi), %ymm1
8620 ; AVX2-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8621 ; AVX2-ONLY-NEXT: vmovaps 928(%rdi), %ymm0
8622 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8623 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
8624 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
8625 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
8626 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8627 ; AVX2-ONLY-NEXT: vmovaps 1120(%rdi), %ymm2
8628 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8629 ; AVX2-ONLY-NEXT: vmovaps 1056(%rdi), %ymm3
8630 ; AVX2-ONLY-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8631 ; AVX2-ONLY-NEXT: vmovaps 1248(%rdi), %ymm1
8632 ; AVX2-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8633 ; AVX2-ONLY-NEXT: vmovaps 1184(%rdi), %ymm0
8634 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8635 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
8636 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
8637 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
8638 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8639 ; AVX2-ONLY-NEXT: vmovaps 1376(%rdi), %ymm2
8640 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8641 ; AVX2-ONLY-NEXT: vmovaps 1312(%rdi), %ymm3
8642 ; AVX2-ONLY-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8643 ; AVX2-ONLY-NEXT: vmovaps 1504(%rdi), %ymm1
8644 ; AVX2-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8645 ; AVX2-ONLY-NEXT: vmovaps 1440(%rdi), %ymm0
8646 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8647 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
8648 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
8649 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
8650 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8651 ; AVX2-ONLY-NEXT: vmovaps 1632(%rdi), %ymm2
8652 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8653 ; AVX2-ONLY-NEXT: vmovaps 1568(%rdi), %ymm3
8654 ; AVX2-ONLY-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8655 ; AVX2-ONLY-NEXT: vmovaps 1760(%rdi), %ymm1
8656 ; AVX2-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8657 ; AVX2-ONLY-NEXT: vmovaps 1696(%rdi), %ymm0
8658 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8659 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
8660 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
8661 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
8662 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8663 ; AVX2-ONLY-NEXT: vmovaps 1888(%rdi), %ymm2
8664 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8665 ; AVX2-ONLY-NEXT: vmovaps 1824(%rdi), %ymm3
8666 ; AVX2-ONLY-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8667 ; AVX2-ONLY-NEXT: vmovaps 2016(%rdi), %ymm1
8668 ; AVX2-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8669 ; AVX2-ONLY-NEXT: vmovaps 1952(%rdi), %ymm0
8670 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8671 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
8672 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
8673 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
8674 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8675 ; AVX2-ONLY-NEXT: vmovaps 2144(%rdi), %ymm2
8676 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8677 ; AVX2-ONLY-NEXT: vmovaps 2080(%rdi), %ymm3
8678 ; AVX2-ONLY-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8679 ; AVX2-ONLY-NEXT: vmovaps 2272(%rdi), %ymm1
8680 ; AVX2-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8681 ; AVX2-ONLY-NEXT: vmovaps 2208(%rdi), %ymm0
8682 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8683 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
8684 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
8685 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
8686 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8687 ; AVX2-ONLY-NEXT: vmovaps 2400(%rdi), %ymm2
8688 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8689 ; AVX2-ONLY-NEXT: vmovaps 2336(%rdi), %ymm3
8690 ; AVX2-ONLY-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8691 ; AVX2-ONLY-NEXT: vmovaps 2528(%rdi), %ymm1
8692 ; AVX2-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8693 ; AVX2-ONLY-NEXT: vmovaps 2464(%rdi), %ymm0
8694 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8695 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
8696 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
8697 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
8698 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8699 ; AVX2-ONLY-NEXT: vmovaps 2656(%rdi), %ymm2
8700 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8701 ; AVX2-ONLY-NEXT: vmovaps 2592(%rdi), %ymm3
8702 ; AVX2-ONLY-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8703 ; AVX2-ONLY-NEXT: vmovaps 2784(%rdi), %ymm1
8704 ; AVX2-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8705 ; AVX2-ONLY-NEXT: vmovaps 2720(%rdi), %ymm0
8706 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8707 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
8708 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
8709 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
8710 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8711 ; AVX2-ONLY-NEXT: vmovaps 2912(%rdi), %ymm2
8712 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8713 ; AVX2-ONLY-NEXT: vmovaps 2848(%rdi), %ymm3
8714 ; AVX2-ONLY-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8715 ; AVX2-ONLY-NEXT: vmovaps 3040(%rdi), %ymm1
8716 ; AVX2-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8717 ; AVX2-ONLY-NEXT: vmovaps 2976(%rdi), %ymm0
8718 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8719 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
8720 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
8721 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
8722 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8723 ; AVX2-ONLY-NEXT: vmovaps 3168(%rdi), %ymm2
8724 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8725 ; AVX2-ONLY-NEXT: vmovaps 3104(%rdi), %ymm1
8726 ; AVX2-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8727 ; AVX2-ONLY-NEXT: vmovaps 3296(%rdi), %ymm14
8728 ; AVX2-ONLY-NEXT: vmovaps 3232(%rdi), %ymm13
8729 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm13[0],ymm14[0],ymm13[2],ymm14[2]
8730 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
8731 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
8732 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8733 ; AVX2-ONLY-NEXT: vmovaps 3424(%rdi), %ymm12
8734 ; AVX2-ONLY-NEXT: vmovaps 3360(%rdi), %ymm11
8735 ; AVX2-ONLY-NEXT: vmovaps 3552(%rdi), %ymm10
8736 ; AVX2-ONLY-NEXT: vmovaps 3488(%rdi), %ymm9
8737 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm9[0],ymm10[0],ymm9[2],ymm10[2]
8738 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm11[0],ymm12[0],ymm11[2],ymm12[2]
8739 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
8740 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8741 ; AVX2-ONLY-NEXT: vmovaps 3680(%rdi), %ymm8
8742 ; AVX2-ONLY-NEXT: vmovaps 3616(%rdi), %ymm7
8743 ; AVX2-ONLY-NEXT: vmovaps 3808(%rdi), %ymm6
8744 ; AVX2-ONLY-NEXT: vmovaps 3744(%rdi), %ymm5
8745 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm5[0],ymm6[0],ymm5[2],ymm6[2]
8746 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm7[0],ymm8[0],ymm7[2],ymm8[2]
8747 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
8748 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8749 ; AVX2-ONLY-NEXT: vmovaps 3936(%rdi), %ymm4
8750 ; AVX2-ONLY-NEXT: vmovaps 3872(%rdi), %ymm3
8751 ; AVX2-ONLY-NEXT: vmovaps 4064(%rdi), %ymm2
8752 ; AVX2-ONLY-NEXT: vmovaps 4000(%rdi), %ymm1
8753 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
8754 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm15 = ymm3[0],ymm4[0],ymm3[2],ymm4[2]
8755 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm15[2,3],ymm0[2,3]
8756 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8757 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8758 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
8759 ; AVX2-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
8760 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload
8761 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm15 # 32-byte Folded Reload
8762 ; AVX2-ONLY-NEXT: # ymm15 = ymm15[1],mem[1],ymm15[3],mem[3]
8763 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm15[2,3],ymm0[2,3]
8764 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8765 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8766 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
8767 ; AVX2-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
8768 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload
8769 ; AVX2-ONLY-NEXT: vunpckhpd (%rsp), %ymm15, %ymm15 # 32-byte Folded Reload
8770 ; AVX2-ONLY-NEXT: # ymm15 = ymm15[1],mem[1],ymm15[3],mem[3]
8771 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm15[2,3],ymm0[2,3]
8772 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8773 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8774 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
8775 ; AVX2-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
8776 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload
8777 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm15 # 32-byte Folded Reload
8778 ; AVX2-ONLY-NEXT: # ymm15 = ymm15[1],mem[1],ymm15[3],mem[3]
8779 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm15[2,3],ymm0[2,3]
8780 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8781 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8782 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
8783 ; AVX2-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
8784 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload
8785 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm15 # 32-byte Folded Reload
8786 ; AVX2-ONLY-NEXT: # ymm15 = ymm15[1],mem[1],ymm15[3],mem[3]
8787 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm15[2,3],ymm0[2,3]
8788 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8789 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8790 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
8791 ; AVX2-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
8792 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload
8793 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm15 # 32-byte Folded Reload
8794 ; AVX2-ONLY-NEXT: # ymm15 = ymm15[1],mem[1],ymm15[3],mem[3]
8795 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm15[2,3],ymm0[2,3]
8796 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8797 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8798 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
8799 ; AVX2-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
8800 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload
8801 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm15 # 32-byte Folded Reload
8802 ; AVX2-ONLY-NEXT: # ymm15 = ymm15[1],mem[1],ymm15[3],mem[3]
8803 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm15[2,3],ymm0[2,3]
8804 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8805 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8806 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
8807 ; AVX2-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
8808 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload
8809 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm15 # 32-byte Folded Reload
8810 ; AVX2-ONLY-NEXT: # ymm15 = ymm15[1],mem[1],ymm15[3],mem[3]
8811 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm15[2,3],ymm0[2,3]
8812 ; AVX2-ONLY-NEXT: vmovups %ymm0, (%rsp) # 32-byte Spill
8813 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8814 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
8815 ; AVX2-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
8816 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload
8817 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm15 # 32-byte Folded Reload
8818 ; AVX2-ONLY-NEXT: # ymm15 = ymm15[1],mem[1],ymm15[3],mem[3]
8819 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm15[2,3],ymm0[2,3]
8820 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8821 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8822 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
8823 ; AVX2-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
8824 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload
8825 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm15 # 32-byte Folded Reload
8826 ; AVX2-ONLY-NEXT: # ymm15 = ymm15[1],mem[1],ymm15[3],mem[3]
8827 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm15[2,3],ymm0[2,3]
8828 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8829 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8830 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
8831 ; AVX2-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
8832 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload
8833 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm15 # 32-byte Folded Reload
8834 ; AVX2-ONLY-NEXT: # ymm15 = ymm15[1],mem[1],ymm15[3],mem[3]
8835 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm15[2,3],ymm0[2,3]
8836 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8837 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8838 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
8839 ; AVX2-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
8840 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload
8841 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm15 # 32-byte Folded Reload
8842 ; AVX2-ONLY-NEXT: # ymm15 = ymm15[1],mem[1],ymm15[3],mem[3]
8843 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm15[2,3],ymm0[2,3]
8844 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8845 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8846 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
8847 ; AVX2-ONLY-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
8848 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload
8849 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm15 # 32-byte Folded Reload
8850 ; AVX2-ONLY-NEXT: # ymm15 = ymm15[1],mem[1],ymm15[3],mem[3]
8851 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm15 = ymm15[2,3],ymm0[2,3]
8852 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm13[1],ymm14[1],ymm13[3],ymm14[3]
8853 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
8854 ; AVX2-ONLY-NEXT: vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm13 # 32-byte Folded Reload
8855 ; AVX2-ONLY-NEXT: # ymm13 = ymm13[1],mem[1],ymm13[3],mem[3]
8856 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm13 = ymm13[2,3],ymm0[2,3]
8857 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm9[1],ymm10[1],ymm9[3],ymm10[3]
8858 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm9 = ymm11[1],ymm12[1],ymm11[3],ymm12[3]
8859 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm9 = ymm9[2,3],ymm0[2,3]
8860 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm5[1],ymm6[1],ymm5[3],ymm6[3]
8861 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm5 = ymm7[1],ymm8[1],ymm7[3],ymm8[3]
8862 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm5 = ymm5[2,3],ymm0[2,3]
8863 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
8864 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm3[1],ymm4[1],ymm3[3],ymm4[3]
8865 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
8866 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8867 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 448(%rsi)
8868 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8869 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 384(%rsi)
8870 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8871 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 320(%rsi)
8872 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8873 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 256(%rsi)
8874 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8875 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 192(%rsi)
8876 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8877 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 128(%rsi)
8878 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8879 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 64(%rsi)
8880 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8881 ; AVX2-ONLY-NEXT: vmovaps %ymm1, (%rsi)
8882 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8883 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 480(%rsi)
8884 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8885 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 416(%rsi)
8886 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8887 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 352(%rsi)
8888 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8889 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 288(%rsi)
8890 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8891 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 224(%rsi)
8892 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8893 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 160(%rsi)
8894 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8895 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 96(%rsi)
8896 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8897 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 32(%rsi)
8898 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8899 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 448(%rdx)
8900 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8901 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 384(%rdx)
8902 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8903 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 320(%rdx)
8904 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8905 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 256(%rdx)
8906 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8907 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 192(%rdx)
8908 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8909 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 128(%rdx)
8910 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8911 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 64(%rdx)
8912 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8913 ; AVX2-ONLY-NEXT: vmovaps %ymm1, (%rdx)
8914 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8915 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 480(%rdx)
8916 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8917 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 416(%rdx)
8918 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8919 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 352(%rdx)
8920 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8921 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 288(%rdx)
8922 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8923 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 224(%rdx)
8924 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8925 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 160(%rdx)
8926 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8927 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 96(%rdx)
8928 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8929 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 32(%rdx)
8930 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8931 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 448(%rcx)
8932 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8933 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 384(%rcx)
8934 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8935 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 320(%rcx)
8936 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8937 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 256(%rcx)
8938 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8939 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 192(%rcx)
8940 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8941 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 128(%rcx)
8942 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8943 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 64(%rcx)
8944 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8945 ; AVX2-ONLY-NEXT: vmovaps %ymm1, (%rcx)
8946 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8947 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 480(%rcx)
8948 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8949 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 416(%rcx)
8950 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8951 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 352(%rcx)
8952 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8953 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 288(%rcx)
8954 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8955 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 224(%rcx)
8956 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8957 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 160(%rcx)
8958 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8959 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 96(%rcx)
8960 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8961 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 32(%rcx)
8962 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8963 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 480(%r8)
8964 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8965 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 448(%r8)
8966 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8967 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 416(%r8)
8968 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8969 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 384(%r8)
8970 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8971 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 352(%r8)
8972 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8973 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 320(%r8)
8974 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8975 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 288(%r8)
8976 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8977 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 256(%r8)
8978 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8979 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 224(%r8)
8980 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8981 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 192(%r8)
8982 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8983 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 160(%r8)
8984 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8985 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 128(%r8)
8986 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8987 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 96(%r8)
8988 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8989 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 64(%r8)
8990 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8991 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 32(%r8)
8992 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8993 ; AVX2-ONLY-NEXT: vmovaps %ymm1, (%r8)
8994 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8995 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 480(%r9)
8996 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8997 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 448(%r9)
8998 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8999 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 416(%r9)
9000 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9001 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 384(%r9)
9002 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9003 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 352(%r9)
9004 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9005 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 320(%r9)
9006 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9007 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 288(%r9)
9008 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9009 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 256(%r9)
9010 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9011 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 224(%r9)
9012 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9013 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 192(%r9)
9014 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9015 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 160(%r9)
9016 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9017 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 128(%r9)
9018 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9019 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 96(%r9)
9020 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9021 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 64(%r9)
9022 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9023 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 32(%r9)
9024 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9025 ; AVX2-ONLY-NEXT: vmovaps %ymm1, (%r9)
9026 ; AVX2-ONLY-NEXT: movq {{[0-9]+}}(%rsp), %rax
9027 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9028 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 480(%rax)
9029 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9030 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 448(%rax)
9031 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9032 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 416(%rax)
9033 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9034 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 384(%rax)
9035 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9036 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 352(%rax)
9037 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9038 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 320(%rax)
9039 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9040 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 288(%rax)
9041 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9042 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 256(%rax)
9043 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9044 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 224(%rax)
9045 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9046 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 192(%rax)
9047 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9048 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 160(%rax)
9049 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9050 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 128(%rax)
9051 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9052 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 96(%rax)
9053 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9054 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 64(%rax)
9055 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9056 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 32(%rax)
9057 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9058 ; AVX2-ONLY-NEXT: vmovaps %ymm1, (%rax)
9059 ; AVX2-ONLY-NEXT: movq {{[0-9]+}}(%rsp), %rax
9060 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9061 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 480(%rax)
9062 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9063 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 448(%rax)
9064 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9065 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 416(%rax)
9066 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9067 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 384(%rax)
9068 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9069 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 352(%rax)
9070 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9071 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 320(%rax)
9072 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9073 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 288(%rax)
9074 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9075 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 256(%rax)
9076 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9077 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 224(%rax)
9078 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9079 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 192(%rax)
9080 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9081 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 160(%rax)
9082 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9083 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 128(%rax)
9084 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9085 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 96(%rax)
9086 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9087 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 64(%rax)
9088 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9089 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 32(%rax)
9090 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9091 ; AVX2-ONLY-NEXT: vmovaps %ymm1, (%rax)
9092 ; AVX2-ONLY-NEXT: movq {{[0-9]+}}(%rsp), %rax
9093 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 480(%rax)
9094 ; AVX2-ONLY-NEXT: vmovaps %ymm5, 448(%rax)
9095 ; AVX2-ONLY-NEXT: vmovaps %ymm9, 416(%rax)
9096 ; AVX2-ONLY-NEXT: vmovaps %ymm13, 384(%rax)
9097 ; AVX2-ONLY-NEXT: vmovaps %ymm15, 352(%rax)
9098 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9099 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 320(%rax)
9100 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9101 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 288(%rax)
9102 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9103 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 256(%rax)
9104 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9105 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 224(%rax)
9106 ; AVX2-ONLY-NEXT: vmovups (%rsp), %ymm0 # 32-byte Reload
9107 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 192(%rax)
9108 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9109 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 160(%rax)
9110 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9111 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 128(%rax)
9112 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9113 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 96(%rax)
9114 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9115 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 64(%rax)
9116 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9117 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 32(%rax)
9118 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9119 ; AVX2-ONLY-NEXT: vmovaps %ymm0, (%rax)
9120 ; AVX2-ONLY-NEXT: addq $5064, %rsp # imm = 0x13C8
9121 ; AVX2-ONLY-NEXT: vzeroupper
9122 ; AVX2-ONLY-NEXT: retq
9124 ; AVX512F-LABEL: load_i64_stride8_vf64:
9126 ; AVX512F-NEXT: subq $6600, %rsp # imm = 0x19C8
9127 ; AVX512F-NEXT: vmovdqa64 3392(%rdi), %zmm13
9128 ; AVX512F-NEXT: vmovdqa64 3328(%rdi), %zmm7
9129 ; AVX512F-NEXT: vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9130 ; AVX512F-NEXT: vmovdqa64 3520(%rdi), %zmm1
9131 ; AVX512F-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9132 ; AVX512F-NEXT: vmovdqa64 3456(%rdi), %zmm10
9133 ; AVX512F-NEXT: vmovdqa64 1856(%rdi), %zmm17
9134 ; AVX512F-NEXT: vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9135 ; AVX512F-NEXT: vmovdqa64 1984(%rdi), %zmm12
9136 ; AVX512F-NEXT: vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9137 ; AVX512F-NEXT: vmovdqa64 832(%rdi), %zmm8
9138 ; AVX512F-NEXT: vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9139 ; AVX512F-NEXT: vmovdqa64 768(%rdi), %zmm4
9140 ; AVX512F-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9141 ; AVX512F-NEXT: vmovdqa64 960(%rdi), %zmm9
9142 ; AVX512F-NEXT: vmovdqa64 896(%rdi), %zmm11
9143 ; AVX512F-NEXT: vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9144 ; AVX512F-NEXT: vmovdqa64 320(%rdi), %zmm15
9145 ; AVX512F-NEXT: vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9146 ; AVX512F-NEXT: vmovdqa64 256(%rdi), %zmm5
9147 ; AVX512F-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9148 ; AVX512F-NEXT: vmovdqa64 448(%rdi), %zmm16
9149 ; AVX512F-NEXT: vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9150 ; AVX512F-NEXT: vmovdqa64 384(%rdi), %zmm6
9151 ; AVX512F-NEXT: movb $-64, %al
9152 ; AVX512F-NEXT: kmovw %eax, %k1
9153 ; AVX512F-NEXT: vbroadcasti32x4 {{.*#+}} zmm2 = [2,10,2,10,2,10,2,10]
9154 ; AVX512F-NEXT: # zmm2 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9155 ; AVX512F-NEXT: vmovdqa64 %zmm10, %zmm0
9156 ; AVX512F-NEXT: vmovdqa64 %zmm10, %zmm29
9157 ; AVX512F-NEXT: vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9158 ; AVX512F-NEXT: vpermt2q %zmm1, %zmm2, %zmm0
9159 ; AVX512F-NEXT: vmovdqa64 %zmm7, %zmm1
9160 ; AVX512F-NEXT: vpermt2q %zmm13, %zmm2, %zmm1
9161 ; AVX512F-NEXT: vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9162 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm1 {%k1}
9163 ; AVX512F-NEXT: vmovdqa 3264(%rdi), %ymm3
9164 ; AVX512F-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9165 ; AVX512F-NEXT: vmovdqa 3200(%rdi), %ymm0
9166 ; AVX512F-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9167 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[2],ymm3[2]
9168 ; AVX512F-NEXT: vmovdqa 3136(%rdi), %ymm3
9169 ; AVX512F-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9170 ; AVX512F-NEXT: vmovdqa 3072(%rdi), %ymm14
9171 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} ymm3 = ymm14[0],ymm3[0],ymm14[2],ymm3[2]
9172 ; AVX512F-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm3[2,3],ymm0[2,3]
9173 ; AVX512F-NEXT: vinserti64x4 $0, %ymm0, %zmm1, %zmm0
9174 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9175 ; AVX512F-NEXT: vmovdqa64 %zmm11, %zmm0
9176 ; AVX512F-NEXT: vpermt2q %zmm9, %zmm2, %zmm0
9177 ; AVX512F-NEXT: vmovdqa64 %zmm9, %zmm7
9178 ; AVX512F-NEXT: vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9179 ; AVX512F-NEXT: vmovdqa64 %zmm4, %zmm1
9180 ; AVX512F-NEXT: vpermt2q %zmm8, %zmm2, %zmm1
9181 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm1 {%k1}
9182 ; AVX512F-NEXT: vmovdqa 704(%rdi), %ymm3
9183 ; AVX512F-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9184 ; AVX512F-NEXT: vmovdqa 640(%rdi), %ymm0
9185 ; AVX512F-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9186 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[2],ymm3[2]
9187 ; AVX512F-NEXT: vmovdqa64 576(%rdi), %ymm26
9188 ; AVX512F-NEXT: vmovdqa64 512(%rdi), %ymm23
9189 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} ymm3 = ymm23[0],ymm26[0],ymm23[2],ymm26[2]
9190 ; AVX512F-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm3[2,3],ymm0[2,3]
9191 ; AVX512F-NEXT: vinserti64x4 $0, %ymm0, %zmm1, %zmm0
9192 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9193 ; AVX512F-NEXT: vmovdqa64 %zmm6, %zmm0
9194 ; AVX512F-NEXT: vmovdqa64 %zmm6, %zmm8
9195 ; AVX512F-NEXT: vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9196 ; AVX512F-NEXT: vpermt2q %zmm16, %zmm2, %zmm0
9197 ; AVX512F-NEXT: vmovdqa64 %zmm5, %zmm1
9198 ; AVX512F-NEXT: vpermt2q %zmm15, %zmm2, %zmm1
9199 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm1 {%k1}
9200 ; AVX512F-NEXT: vmovdqa 192(%rdi), %ymm0
9201 ; AVX512F-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9202 ; AVX512F-NEXT: vmovdqa64 128(%rdi), %ymm30
9203 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} ymm0 = ymm30[0],ymm0[0],ymm30[2],ymm0[2]
9204 ; AVX512F-NEXT: vmovdqa64 64(%rdi), %ymm20
9205 ; AVX512F-NEXT: vmovdqa64 (%rdi), %ymm16
9206 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} ymm3 = ymm16[0],ymm20[0],ymm16[2],ymm20[2]
9207 ; AVX512F-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm3[2,3],ymm0[2,3]
9208 ; AVX512F-NEXT: vmovdqa64 1920(%rdi), %zmm3
9209 ; AVX512F-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9210 ; AVX512F-NEXT: vinserti64x4 $0, %ymm0, %zmm1, %zmm0
9211 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9212 ; AVX512F-NEXT: vmovdqa64 %zmm3, %zmm0
9213 ; AVX512F-NEXT: vpermt2q %zmm12, %zmm2, %zmm0
9214 ; AVX512F-NEXT: vmovdqa64 1792(%rdi), %zmm1
9215 ; AVX512F-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9216 ; AVX512F-NEXT: vpermt2q %zmm17, %zmm2, %zmm1
9217 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm1 {%k1}
9218 ; AVX512F-NEXT: vmovdqa 1728(%rdi), %ymm3
9219 ; AVX512F-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9220 ; AVX512F-NEXT: vmovdqa 1664(%rdi), %ymm0
9221 ; AVX512F-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9222 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[2],ymm3[2]
9223 ; AVX512F-NEXT: vmovdqa64 1600(%rdi), %ymm21
9224 ; AVX512F-NEXT: vmovdqa64 1536(%rdi), %ymm17
9225 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} ymm3 = ymm17[0],ymm21[0],ymm17[2],ymm21[2]
9226 ; AVX512F-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm3[2,3],ymm0[2,3]
9227 ; AVX512F-NEXT: vinserti64x4 $0, %ymm0, %zmm1, %zmm0
9228 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9229 ; AVX512F-NEXT: vmovdqa64 1472(%rdi), %zmm1
9230 ; AVX512F-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9231 ; AVX512F-NEXT: vmovdqa64 1408(%rdi), %zmm0
9232 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9233 ; AVX512F-NEXT: vpermt2q %zmm1, %zmm2, %zmm0
9234 ; AVX512F-NEXT: vmovdqa64 1344(%rdi), %zmm3
9235 ; AVX512F-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9236 ; AVX512F-NEXT: vmovdqa64 1280(%rdi), %zmm11
9237 ; AVX512F-NEXT: vmovdqa64 %zmm11, %zmm1
9238 ; AVX512F-NEXT: vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9239 ; AVX512F-NEXT: vpermt2q %zmm3, %zmm2, %zmm1
9240 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm1 {%k1}
9241 ; AVX512F-NEXT: vmovdqa 1216(%rdi), %ymm0
9242 ; AVX512F-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9243 ; AVX512F-NEXT: vmovdqa64 1152(%rdi), %ymm25
9244 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} ymm0 = ymm25[0],ymm0[0],ymm25[2],ymm0[2]
9245 ; AVX512F-NEXT: vmovdqa64 1088(%rdi), %ymm24
9246 ; AVX512F-NEXT: vmovdqa64 1024(%rdi), %ymm22
9247 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} ymm3 = ymm22[0],ymm24[0],ymm22[2],ymm24[2]
9248 ; AVX512F-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm3[2,3],ymm0[2,3]
9249 ; AVX512F-NEXT: vinserti64x4 $0, %ymm0, %zmm1, %zmm0
9250 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9251 ; AVX512F-NEXT: vmovdqa64 3008(%rdi), %zmm1
9252 ; AVX512F-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9253 ; AVX512F-NEXT: vmovdqa64 2944(%rdi), %zmm0
9254 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9255 ; AVX512F-NEXT: vpermt2q %zmm1, %zmm2, %zmm0
9256 ; AVX512F-NEXT: vmovdqa64 2880(%rdi), %zmm3
9257 ; AVX512F-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9258 ; AVX512F-NEXT: vmovdqa64 2816(%rdi), %zmm1
9259 ; AVX512F-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9260 ; AVX512F-NEXT: vpermt2q %zmm3, %zmm2, %zmm1
9261 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm1 {%k1}
9262 ; AVX512F-NEXT: vmovdqa 2752(%rdi), %ymm3
9263 ; AVX512F-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9264 ; AVX512F-NEXT: vmovdqa 2688(%rdi), %ymm0
9265 ; AVX512F-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9266 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[2],ymm3[2]
9267 ; AVX512F-NEXT: vmovdqa64 2624(%rdi), %ymm31
9268 ; AVX512F-NEXT: vmovdqa 2560(%rdi), %ymm10
9269 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} ymm3 = ymm10[0],ymm31[0],ymm10[2],ymm31[2]
9270 ; AVX512F-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm3[2,3],ymm0[2,3]
9271 ; AVX512F-NEXT: vinserti64x4 $0, %ymm0, %zmm1, %zmm0
9272 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9273 ; AVX512F-NEXT: vmovdqa64 2496(%rdi), %zmm1
9274 ; AVX512F-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9275 ; AVX512F-NEXT: vmovdqa64 2432(%rdi), %zmm0
9276 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9277 ; AVX512F-NEXT: vpermt2q %zmm1, %zmm2, %zmm0
9278 ; AVX512F-NEXT: vmovdqa64 2368(%rdi), %zmm18
9279 ; AVX512F-NEXT: vmovdqa64 2304(%rdi), %zmm1
9280 ; AVX512F-NEXT: vmovdqu64 %zmm1, (%rsp) # 64-byte Spill
9281 ; AVX512F-NEXT: vpermt2q %zmm18, %zmm2, %zmm1
9282 ; AVX512F-NEXT: vmovdqu64 %zmm18, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9283 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm1 {%k1}
9284 ; AVX512F-NEXT: vmovdqa64 2240(%rdi), %ymm28
9285 ; AVX512F-NEXT: vmovdqa64 2176(%rdi), %ymm19
9286 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} ymm0 = ymm19[0],ymm28[0],ymm19[2],ymm28[2]
9287 ; AVX512F-NEXT: vmovdqa64 2112(%rdi), %ymm27
9288 ; AVX512F-NEXT: vmovdqa 2048(%rdi), %ymm6
9289 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} ymm3 = ymm6[0],ymm27[0],ymm6[2],ymm27[2]
9290 ; AVX512F-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm3[2,3],ymm0[2,3]
9291 ; AVX512F-NEXT: vinserti64x4 $0, %ymm0, %zmm1, %zmm0
9292 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9293 ; AVX512F-NEXT: vmovdqa64 4032(%rdi), %zmm1
9294 ; AVX512F-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9295 ; AVX512F-NEXT: vmovdqa64 3968(%rdi), %zmm0
9296 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9297 ; AVX512F-NEXT: vpermt2q %zmm1, %zmm2, %zmm0
9298 ; AVX512F-NEXT: vmovdqa64 3904(%rdi), %zmm5
9299 ; AVX512F-NEXT: vmovdqa64 3840(%rdi), %zmm3
9300 ; AVX512F-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9301 ; AVX512F-NEXT: vpermi2q %zmm5, %zmm3, %zmm2
9302 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm2 {%k1}
9303 ; AVX512F-NEXT: vmovdqa 3776(%rdi), %ymm12
9304 ; AVX512F-NEXT: vmovdqa 3712(%rdi), %ymm9
9305 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} ymm0 = ymm9[0],ymm12[0],ymm9[2],ymm12[2]
9306 ; AVX512F-NEXT: vmovdqa 3648(%rdi), %ymm4
9307 ; AVX512F-NEXT: vmovdqa 3584(%rdi), %ymm1
9308 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} ymm15 = ymm1[0],ymm4[0],ymm1[2],ymm4[2]
9309 ; AVX512F-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm15[2,3],ymm0[2,3]
9310 ; AVX512F-NEXT: vinserti64x4 $0, %ymm0, %zmm2, %zmm0
9311 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9312 ; AVX512F-NEXT: vbroadcasti32x4 {{.*#+}} zmm2 = [3,11,3,11,3,11,3,11]
9313 ; AVX512F-NEXT: # zmm2 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9314 ; AVX512F-NEXT: vmovdqa64 %zmm29, %zmm0
9315 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9316 ; AVX512F-NEXT: vpermt2q %zmm3, %zmm2, %zmm0
9317 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
9318 ; AVX512F-NEXT: vpermt2q %zmm13, %zmm2, %zmm15
9319 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm15 {%k1}
9320 ; AVX512F-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9321 ; AVX512F-NEXT: vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
9322 ; AVX512F-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
9323 ; AVX512F-NEXT: vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
9324 ; AVX512F-NEXT: # ymm14 = ymm14[1],mem[1],ymm14[3],mem[3]
9325 ; AVX512F-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm14[2,3],ymm0[2,3]
9326 ; AVX512F-NEXT: vinserti64x4 $0, %ymm0, %zmm15, %zmm0
9327 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9328 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
9329 ; AVX512F-NEXT: vmovdqa64 %zmm13, %zmm0
9330 ; AVX512F-NEXT: vpermt2q %zmm7, %zmm2, %zmm0
9331 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
9332 ; AVX512F-NEXT: vmovdqa64 %zmm7, %zmm14
9333 ; AVX512F-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm2, %zmm14 # 64-byte Folded Reload
9334 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm14 {%k1}
9335 ; AVX512F-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9336 ; AVX512F-NEXT: vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
9337 ; AVX512F-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
9338 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} ymm15 = ymm23[1],ymm26[1],ymm23[3],ymm26[3]
9339 ; AVX512F-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm15[2,3],ymm0[2,3]
9340 ; AVX512F-NEXT: vinserti64x4 $0, %ymm0, %zmm14, %zmm0
9341 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9342 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm23 # 64-byte Reload
9343 ; AVX512F-NEXT: vpermt2q %zmm23, %zmm2, %zmm8
9344 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm29 # 64-byte Reload
9345 ; AVX512F-NEXT: vmovdqa64 %zmm29, %zmm14
9346 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm26 # 64-byte Reload
9347 ; AVX512F-NEXT: vpermt2q %zmm26, %zmm2, %zmm14
9348 ; AVX512F-NEXT: vmovdqa64 %zmm8, %zmm14 {%k1}
9349 ; AVX512F-NEXT: vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm30, %ymm0 # 32-byte Folded Reload
9350 ; AVX512F-NEXT: # ymm0 = ymm30[1],mem[1],ymm30[3],mem[3]
9351 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} ymm15 = ymm16[1],ymm20[1],ymm16[3],ymm20[3]
9352 ; AVX512F-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm15[2,3],ymm0[2,3]
9353 ; AVX512F-NEXT: vinserti64x4 $0, %ymm0, %zmm14, %zmm0
9354 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9355 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm30 # 64-byte Reload
9356 ; AVX512F-NEXT: vmovdqa64 %zmm30, %zmm0
9357 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
9358 ; AVX512F-NEXT: vpermt2q %zmm20, %zmm2, %zmm0
9359 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
9360 ; AVX512F-NEXT: vmovdqa64 %zmm8, %zmm14
9361 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
9362 ; AVX512F-NEXT: vpermt2q %zmm16, %zmm2, %zmm14
9363 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm14 {%k1}
9364 ; AVX512F-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9365 ; AVX512F-NEXT: vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
9366 ; AVX512F-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
9367 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} ymm15 = ymm17[1],ymm21[1],ymm17[3],ymm21[3]
9368 ; AVX512F-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm15[2,3],ymm0[2,3]
9369 ; AVX512F-NEXT: vinserti64x4 $0, %ymm0, %zmm14, %zmm0
9370 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9371 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm21 # 64-byte Reload
9372 ; AVX512F-NEXT: vmovdqa64 %zmm21, %zmm0
9373 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
9374 ; AVX512F-NEXT: vpermt2q %zmm17, %zmm2, %zmm0
9375 ; AVX512F-NEXT: vmovdqa64 %zmm11, %zmm14
9376 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
9377 ; AVX512F-NEXT: vpermt2q %zmm11, %zmm2, %zmm14
9378 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm14 {%k1}
9379 ; AVX512F-NEXT: vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm25, %ymm0 # 32-byte Folded Reload
9380 ; AVX512F-NEXT: # ymm0 = ymm25[1],mem[1],ymm25[3],mem[3]
9381 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} ymm15 = ymm22[1],ymm24[1],ymm22[3],ymm24[3]
9382 ; AVX512F-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm15[2,3],ymm0[2,3]
9383 ; AVX512F-NEXT: vinserti64x4 $0, %ymm0, %zmm14, %zmm0
9384 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9385 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
9386 ; AVX512F-NEXT: vmovdqa64 %zmm22, %zmm0
9387 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm25 # 64-byte Reload
9388 ; AVX512F-NEXT: vpermt2q %zmm25, %zmm2, %zmm0
9389 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm24 # 64-byte Reload
9390 ; AVX512F-NEXT: vmovdqa64 %zmm24, %zmm14
9391 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
9392 ; AVX512F-NEXT: vpermt2q %zmm15, %zmm2, %zmm14
9393 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm14 {%k1}
9394 ; AVX512F-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9395 ; AVX512F-NEXT: vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
9396 ; AVX512F-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
9397 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} ymm10 = ymm10[1],ymm31[1],ymm10[3],ymm31[3]
9398 ; AVX512F-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm10[2,3],ymm0[2,3]
9399 ; AVX512F-NEXT: vinserti64x4 $0, %ymm0, %zmm14, %zmm0
9400 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9401 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
9402 ; AVX512F-NEXT: vmovdqa64 %zmm31, %zmm0
9403 ; AVX512F-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm2, %zmm0 # 64-byte Folded Reload
9404 ; AVX512F-NEXT: vmovdqu64 (%rsp), %zmm10 # 64-byte Reload
9405 ; AVX512F-NEXT: vpermt2q %zmm18, %zmm2, %zmm10
9406 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm10 {%k1}
9407 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} ymm0 = ymm19[1],ymm28[1],ymm19[3],ymm28[3]
9408 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} ymm6 = ymm6[1],ymm27[1],ymm6[3],ymm27[3]
9409 ; AVX512F-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm6[2,3],ymm0[2,3]
9410 ; AVX512F-NEXT: vinserti64x4 $0, %ymm0, %zmm10, %zmm0
9411 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9412 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
9413 ; AVX512F-NEXT: vmovdqa64 %zmm10, %zmm0
9414 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm18 # 64-byte Reload
9415 ; AVX512F-NEXT: vpermt2q %zmm18, %zmm2, %zmm0
9416 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
9417 ; AVX512F-NEXT: vpermi2q %zmm5, %zmm19, %zmm2
9418 ; AVX512F-NEXT: vmovdqa64 %zmm5, %zmm28
9419 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm2 {%k1}
9420 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} ymm0 = ymm9[1],ymm12[1],ymm9[3],ymm12[3]
9421 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} ymm1 = ymm1[1],ymm4[1],ymm1[3],ymm4[3]
9422 ; AVX512F-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
9423 ; AVX512F-NEXT: vinserti64x4 $0, %ymm0, %zmm2, %zmm0
9424 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9425 ; AVX512F-NEXT: vbroadcasti32x4 {{.*#+}} zmm0 = [4,12,4,12,4,12,4,12]
9426 ; AVX512F-NEXT: # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9427 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
9428 ; AVX512F-NEXT: vpermt2q %zmm3, %zmm0, %zmm1
9429 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
9430 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm27 # 64-byte Reload
9431 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} zmm2 = zmm27[0],zmm12[0],zmm27[2],zmm12[2],zmm27[4],zmm12[4],zmm27[6],zmm12[6]
9432 ; AVX512F-NEXT: vmovdqa64 %zmm1, %zmm2 {%k1}
9433 ; AVX512F-NEXT: vmovdqa64 3136(%rdi), %zmm1
9434 ; AVX512F-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9435 ; AVX512F-NEXT: vmovdqa64 3072(%rdi), %zmm3
9436 ; AVX512F-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9437 ; AVX512F-NEXT: vpermt2q %zmm1, %zmm0, %zmm3
9438 ; AVX512F-NEXT: vmovdqa64 3264(%rdi), %zmm5
9439 ; AVX512F-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9440 ; AVX512F-NEXT: vmovdqa64 3200(%rdi), %zmm4
9441 ; AVX512F-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9442 ; AVX512F-NEXT: vbroadcasti128 {{.*#+}} ymm1 = [4,12,4,12]
9443 ; AVX512F-NEXT: # ymm1 = mem[0,1,0,1]
9444 ; AVX512F-NEXT: vpermt2q %zmm5, %zmm1, %zmm4
9445 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm4[4,5,6,7]
9446 ; AVX512F-NEXT: vinserti64x4 $0, %ymm3, %zmm2, %zmm2
9447 ; AVX512F-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9448 ; AVX512F-NEXT: vmovdqa64 %zmm13, %zmm6
9449 ; AVX512F-NEXT: vmovdqa64 %zmm13, %zmm2
9450 ; AVX512F-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm2 # 64-byte Folded Reload
9451 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
9452 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} zmm3 = zmm7[0],zmm13[0],zmm7[2],zmm13[2],zmm7[4],zmm13[4],zmm7[6],zmm13[6]
9453 ; AVX512F-NEXT: vmovdqa64 %zmm2, %zmm3 {%k1}
9454 ; AVX512F-NEXT: vmovdqa64 576(%rdi), %zmm5
9455 ; AVX512F-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9456 ; AVX512F-NEXT: vmovdqa64 512(%rdi), %zmm2
9457 ; AVX512F-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9458 ; AVX512F-NEXT: vpermt2q %zmm5, %zmm0, %zmm2
9459 ; AVX512F-NEXT: vmovdqa64 704(%rdi), %zmm5
9460 ; AVX512F-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9461 ; AVX512F-NEXT: vmovdqa64 640(%rdi), %zmm4
9462 ; AVX512F-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9463 ; AVX512F-NEXT: vpermt2q %zmm5, %zmm1, %zmm4
9464 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm4[4,5,6,7]
9465 ; AVX512F-NEXT: vinserti64x4 $0, %ymm2, %zmm3, %zmm2
9466 ; AVX512F-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9467 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9468 ; AVX512F-NEXT: vpermt2q %zmm23, %zmm0, %zmm2
9469 ; AVX512F-NEXT: vmovdqa64 %zmm23, %zmm7
9470 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} zmm3 = zmm29[0],zmm26[0],zmm29[2],zmm26[2],zmm29[4],zmm26[4],zmm29[6],zmm26[6]
9471 ; AVX512F-NEXT: vmovdqa64 %zmm2, %zmm3 {%k1}
9472 ; AVX512F-NEXT: vmovdqa64 64(%rdi), %zmm4
9473 ; AVX512F-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9474 ; AVX512F-NEXT: vmovdqa64 (%rdi), %zmm2
9475 ; AVX512F-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9476 ; AVX512F-NEXT: vpermt2q %zmm4, %zmm0, %zmm2
9477 ; AVX512F-NEXT: vmovdqa64 192(%rdi), %zmm23
9478 ; AVX512F-NEXT: vmovdqa64 128(%rdi), %zmm5
9479 ; AVX512F-NEXT: vmovdqa64 %zmm5, %zmm4
9480 ; AVX512F-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9481 ; AVX512F-NEXT: vpermt2q %zmm23, %zmm1, %zmm4
9482 ; AVX512F-NEXT: vmovdqa64 %zmm23, %zmm26
9483 ; AVX512F-NEXT: vmovdqu64 %zmm23, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9484 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm4[4,5,6,7]
9485 ; AVX512F-NEXT: vinserti64x4 $0, %ymm2, %zmm3, %zmm2
9486 ; AVX512F-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9487 ; AVX512F-NEXT: vmovdqa64 %zmm30, %zmm2
9488 ; AVX512F-NEXT: vpermt2q %zmm20, %zmm0, %zmm2
9489 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} zmm3 = zmm8[0],zmm16[0],zmm8[2],zmm16[2],zmm8[4],zmm16[4],zmm8[6],zmm16[6]
9490 ; AVX512F-NEXT: vmovdqa64 %zmm2, %zmm3 {%k1}
9491 ; AVX512F-NEXT: vmovdqa64 1600(%rdi), %zmm30
9492 ; AVX512F-NEXT: vmovdqa64 1536(%rdi), %zmm2
9493 ; AVX512F-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9494 ; AVX512F-NEXT: vpermt2q %zmm30, %zmm0, %zmm2
9495 ; AVX512F-NEXT: vmovdqa64 1728(%rdi), %zmm20
9496 ; AVX512F-NEXT: vmovdqa64 1664(%rdi), %zmm4
9497 ; AVX512F-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9498 ; AVX512F-NEXT: vpermt2q %zmm20, %zmm1, %zmm4
9499 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm4[4,5,6,7]
9500 ; AVX512F-NEXT: vinserti64x4 $0, %ymm2, %zmm3, %zmm2
9501 ; AVX512F-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9502 ; AVX512F-NEXT: vmovdqa64 %zmm21, %zmm2
9503 ; AVX512F-NEXT: vpermt2q %zmm17, %zmm0, %zmm2
9504 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
9505 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} zmm3 = zmm9[0],zmm11[0],zmm9[2],zmm11[2],zmm9[4],zmm11[4],zmm9[6],zmm11[6]
9506 ; AVX512F-NEXT: vmovdqa64 %zmm2, %zmm3 {%k1}
9507 ; AVX512F-NEXT: vmovdqa64 1088(%rdi), %zmm4
9508 ; AVX512F-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9509 ; AVX512F-NEXT: vmovdqa64 1024(%rdi), %zmm2
9510 ; AVX512F-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9511 ; AVX512F-NEXT: vpermt2q %zmm4, %zmm0, %zmm2
9512 ; AVX512F-NEXT: vmovdqa64 1216(%rdi), %zmm16
9513 ; AVX512F-NEXT: vmovdqa64 1152(%rdi), %zmm4
9514 ; AVX512F-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9515 ; AVX512F-NEXT: vpermt2q %zmm16, %zmm1, %zmm4
9516 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm4[4,5,6,7]
9517 ; AVX512F-NEXT: vinserti64x4 $0, %ymm2, %zmm3, %zmm2
9518 ; AVX512F-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9519 ; AVX512F-NEXT: vmovdqa64 %zmm22, %zmm2
9520 ; AVX512F-NEXT: vpermt2q %zmm25, %zmm0, %zmm2
9521 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} zmm3 = zmm24[0],zmm15[0],zmm24[2],zmm15[2],zmm24[4],zmm15[4],zmm24[6],zmm15[6]
9522 ; AVX512F-NEXT: vmovdqa64 %zmm2, %zmm3 {%k1}
9523 ; AVX512F-NEXT: vmovdqa64 2624(%rdi), %zmm4
9524 ; AVX512F-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9525 ; AVX512F-NEXT: vmovdqa64 2560(%rdi), %zmm2
9526 ; AVX512F-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9527 ; AVX512F-NEXT: vpermt2q %zmm4, %zmm0, %zmm2
9528 ; AVX512F-NEXT: vmovdqa64 2752(%rdi), %zmm14
9529 ; AVX512F-NEXT: vmovdqa64 2688(%rdi), %zmm4
9530 ; AVX512F-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9531 ; AVX512F-NEXT: vpermt2q %zmm14, %zmm1, %zmm4
9532 ; AVX512F-NEXT: vmovdqa64 %zmm14, %zmm25
9533 ; AVX512F-NEXT: vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9534 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm4[4,5,6,7]
9535 ; AVX512F-NEXT: vinserti64x4 $0, %ymm2, %zmm3, %zmm2
9536 ; AVX512F-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9537 ; AVX512F-NEXT: vmovdqa64 2112(%rdi), %zmm3
9538 ; AVX512F-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9539 ; AVX512F-NEXT: vmovdqa64 2048(%rdi), %zmm2
9540 ; AVX512F-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9541 ; AVX512F-NEXT: vpermt2q %zmm3, %zmm0, %zmm2
9542 ; AVX512F-NEXT: vmovdqa64 2240(%rdi), %zmm4
9543 ; AVX512F-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9544 ; AVX512F-NEXT: vmovdqa64 2176(%rdi), %zmm3
9545 ; AVX512F-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9546 ; AVX512F-NEXT: vpermt2q %zmm4, %zmm1, %zmm3
9547 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
9548 ; AVX512F-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm31 # 64-byte Folded Reload
9549 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
9550 ; AVX512F-NEXT: vmovdqu64 (%rsp), %zmm4 # 64-byte Reload
9551 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} zmm4 = zmm4[0],zmm8[0],zmm4[2],zmm8[2],zmm4[4],zmm8[4],zmm4[6],zmm8[6]
9552 ; AVX512F-NEXT: vmovdqa64 %zmm31, %zmm4 {%k1}
9553 ; AVX512F-NEXT: vinserti64x4 $0, %ymm2, %zmm4, %zmm2
9554 ; AVX512F-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9555 ; AVX512F-NEXT: vpermt2q %zmm18, %zmm0, %zmm10
9556 ; AVX512F-NEXT: vmovdqa64 3648(%rdi), %zmm4
9557 ; AVX512F-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9558 ; AVX512F-NEXT: vmovdqa64 3584(%rdi), %zmm3
9559 ; AVX512F-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9560 ; AVX512F-NEXT: vpermi2q %zmm4, %zmm3, %zmm0
9561 ; AVX512F-NEXT: vmovdqa64 3776(%rdi), %zmm4
9562 ; AVX512F-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9563 ; AVX512F-NEXT: vmovdqa64 3712(%rdi), %zmm3
9564 ; AVX512F-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9565 ; AVX512F-NEXT: vpermi2q %zmm4, %zmm3, %zmm1
9566 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
9567 ; AVX512F-NEXT: vmovdqa64 %zmm28, %zmm18
9568 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} zmm1 = zmm19[0],zmm28[0],zmm19[2],zmm28[2],zmm19[4],zmm28[4],zmm19[6],zmm28[6]
9569 ; AVX512F-NEXT: vmovdqa64 %zmm10, %zmm1 {%k1}
9570 ; AVX512F-NEXT: vinserti64x4 $0, %ymm0, %zmm1, %zmm0
9571 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9572 ; AVX512F-NEXT: vbroadcasti32x4 {{.*#+}} zmm0 = [5,13,5,13,5,13,5,13]
9573 ; AVX512F-NEXT: # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9574 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9575 ; AVX512F-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm2 # 64-byte Folded Reload
9576 ; AVX512F-NEXT: vbroadcasti128 {{.*#+}} ymm1 = [5,13,5,13]
9577 ; AVX512F-NEXT: # ymm1 = mem[0,1,0,1]
9578 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9579 ; AVX512F-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm1, %zmm3 # 64-byte Folded Reload
9580 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
9581 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9582 ; AVX512F-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm3 # 64-byte Folded Reload
9583 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} zmm4 = zmm27[1],zmm12[1],zmm27[3],zmm12[3],zmm27[5],zmm12[5],zmm27[7],zmm12[7]
9584 ; AVX512F-NEXT: vmovdqa64 %zmm3, %zmm4 {%k1}
9585 ; AVX512F-NEXT: vinserti64x4 $0, %ymm2, %zmm4, %zmm2
9586 ; AVX512F-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9587 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9588 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm24 # 64-byte Reload
9589 ; AVX512F-NEXT: vpermt2q %zmm24, %zmm0, %zmm2
9590 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9591 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
9592 ; AVX512F-NEXT: vpermt2q %zmm28, %zmm1, %zmm3
9593 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
9594 ; AVX512F-NEXT: vmovdqa64 %zmm6, %zmm3
9595 ; AVX512F-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm3 # 64-byte Folded Reload
9596 ; AVX512F-NEXT: vmovdqa64 %zmm13, %zmm23
9597 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
9598 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} zmm4 = zmm31[1],zmm13[1],zmm31[3],zmm13[3],zmm31[5],zmm13[5],zmm31[7],zmm13[7]
9599 ; AVX512F-NEXT: vmovdqa64 %zmm3, %zmm4 {%k1}
9600 ; AVX512F-NEXT: vinserti64x4 $0, %ymm2, %zmm4, %zmm2
9601 ; AVX512F-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9602 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9603 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
9604 ; AVX512F-NEXT: vpermt2q %zmm22, %zmm0, %zmm2
9605 ; AVX512F-NEXT: vpermt2q %zmm26, %zmm1, %zmm5
9606 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm5[4,5,6,7]
9607 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9608 ; AVX512F-NEXT: vpermt2q %zmm7, %zmm0, %zmm3
9609 ; AVX512F-NEXT: vmovdqa64 %zmm29, %zmm14
9610 ; AVX512F-NEXT: vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %zmm29, %zmm4 # 64-byte Folded Reload
9611 ; AVX512F-NEXT: # zmm4 = zmm29[1],mem[1],zmm29[3],mem[3],zmm29[5],mem[5],zmm29[7],mem[7]
9612 ; AVX512F-NEXT: vmovdqa64 %zmm3, %zmm4 {%k1}
9613 ; AVX512F-NEXT: vinserti64x4 $0, %ymm2, %zmm4, %zmm2
9614 ; AVX512F-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9615 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9616 ; AVX512F-NEXT: vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9617 ; AVX512F-NEXT: vpermt2q %zmm30, %zmm0, %zmm2
9618 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9619 ; AVX512F-NEXT: vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9620 ; AVX512F-NEXT: vpermt2q %zmm20, %zmm1, %zmm3
9621 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
9622 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9623 ; AVX512F-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm3 # 64-byte Folded Reload
9624 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
9625 ; AVX512F-NEXT: vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %zmm17, %zmm4 # 64-byte Folded Reload
9626 ; AVX512F-NEXT: # zmm4 = zmm17[1],mem[1],zmm17[3],mem[3],zmm17[5],mem[5],zmm17[7],mem[7]
9627 ; AVX512F-NEXT: vmovdqa64 %zmm3, %zmm4 {%k1}
9628 ; AVX512F-NEXT: vinserti64x4 $0, %ymm2, %zmm4, %zmm2
9629 ; AVX512F-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9630 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9631 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
9632 ; AVX512F-NEXT: vpermt2q %zmm19, %zmm0, %zmm2
9633 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
9634 ; AVX512F-NEXT: vmovdqa64 %zmm15, %zmm3
9635 ; AVX512F-NEXT: vmovdqa64 %zmm16, %zmm29
9636 ; AVX512F-NEXT: vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9637 ; AVX512F-NEXT: vpermt2q %zmm16, %zmm1, %zmm3
9638 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
9639 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9640 ; AVX512F-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm3 # 64-byte Folded Reload
9641 ; AVX512F-NEXT: vmovdqa64 %zmm11, %zmm16
9642 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} zmm4 = zmm9[1],zmm11[1],zmm9[3],zmm11[3],zmm9[5],zmm11[5],zmm9[7],zmm11[7]
9643 ; AVX512F-NEXT: vmovdqa64 %zmm3, %zmm4 {%k1}
9644 ; AVX512F-NEXT: vinserti64x4 $0, %ymm2, %zmm4, %zmm2
9645 ; AVX512F-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9646 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
9647 ; AVX512F-NEXT: vmovdqa64 %zmm11, %zmm2
9648 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
9649 ; AVX512F-NEXT: vpermt2q %zmm12, %zmm0, %zmm2
9650 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
9651 ; AVX512F-NEXT: vmovdqa64 %zmm13, %zmm3
9652 ; AVX512F-NEXT: vpermt2q %zmm25, %zmm1, %zmm3
9653 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
9654 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9655 ; AVX512F-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm3 # 64-byte Folded Reload
9656 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
9657 ; AVX512F-NEXT: vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %zmm4, %zmm4 # 64-byte Folded Reload
9658 ; AVX512F-NEXT: # zmm4 = zmm4[1],mem[1],zmm4[3],mem[3],zmm4[5],mem[5],zmm4[7],mem[7]
9659 ; AVX512F-NEXT: vmovdqa64 %zmm3, %zmm4 {%k1}
9660 ; AVX512F-NEXT: vinserti64x4 $0, %ymm2, %zmm4, %zmm2
9661 ; AVX512F-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9662 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9663 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
9664 ; AVX512F-NEXT: vpermt2q %zmm7, %zmm0, %zmm2
9665 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
9666 ; AVX512F-NEXT: vmovdqa64 %zmm9, %zmm3
9667 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
9668 ; AVX512F-NEXT: vpermt2q %zmm10, %zmm1, %zmm3
9669 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
9670 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm26 # 64-byte Reload
9671 ; AVX512F-NEXT: vmovdqa64 %zmm26, %zmm3
9672 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm21 # 64-byte Reload
9673 ; AVX512F-NEXT: vpermt2q %zmm21, %zmm0, %zmm3
9674 ; AVX512F-NEXT: vmovdqu64 (%rsp), %zmm4 # 64-byte Reload
9675 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} zmm4 = zmm4[1],zmm8[1],zmm4[3],zmm8[3],zmm4[5],zmm8[5],zmm4[7],zmm8[7]
9676 ; AVX512F-NEXT: vmovdqa64 %zmm3, %zmm4 {%k1}
9677 ; AVX512F-NEXT: vinserti64x4 $0, %ymm2, %zmm4, %zmm2
9678 ; AVX512F-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9679 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9680 ; AVX512F-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm2 # 64-byte Folded Reload
9681 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
9682 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9683 ; AVX512F-NEXT: vpermi2q %zmm6, %zmm3, %zmm0
9684 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
9685 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
9686 ; AVX512F-NEXT: vpermi2q %zmm4, %zmm5, %zmm1
9687 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
9688 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm25 # 64-byte Reload
9689 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} zmm1 = zmm25[1],zmm18[1],zmm25[3],zmm18[3],zmm25[5],zmm18[5],zmm25[7],zmm18[7]
9690 ; AVX512F-NEXT: vmovdqa64 %zmm2, %zmm1 {%k1}
9691 ; AVX512F-NEXT: vinserti64x4 $0, %ymm0, %zmm1, %zmm0
9692 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9693 ; AVX512F-NEXT: vbroadcasti32x4 {{.*#+}} zmm0 = [6,14,6,14,6,14,6,14]
9694 ; AVX512F-NEXT: # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9695 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9696 ; AVX512F-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm2 # 64-byte Folded Reload
9697 ; AVX512F-NEXT: vbroadcasti128 {{.*#+}} ymm1 = [6,14,6,14]
9698 ; AVX512F-NEXT: # ymm1 = mem[0,1,0,1]
9699 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9700 ; AVX512F-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm1, %zmm3 # 64-byte Folded Reload
9701 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
9702 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9703 ; AVX512F-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm3 # 64-byte Folded Reload
9704 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm27 # 64-byte Reload
9705 ; AVX512F-NEXT: vpunpcklqdq {{[-0-9]+}}(%r{{[sb]}}p), %zmm27, %zmm3 {%k1} # 64-byte Folded Reload
9706 ; AVX512F-NEXT: # zmm3 {%k1} = zmm27[0],mem[0],zmm27[2],mem[2],zmm27[4],mem[4],zmm27[6],mem[6]
9707 ; AVX512F-NEXT: vinserti64x4 $0, %ymm2, %zmm3, %zmm2
9708 ; AVX512F-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9709 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9710 ; AVX512F-NEXT: vpermt2q %zmm24, %zmm0, %zmm2
9711 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9712 ; AVX512F-NEXT: vpermt2q %zmm28, %zmm1, %zmm3
9713 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
9714 ; AVX512F-NEXT: vpermt2q %zmm23, %zmm0, %zmm31
9715 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm24 # 64-byte Reload
9716 ; AVX512F-NEXT: vpunpcklqdq {{[-0-9]+}}(%r{{[sb]}}p), %zmm24, %zmm31 {%k1} # 64-byte Folded Reload
9717 ; AVX512F-NEXT: # zmm31 {%k1} = zmm24[0],mem[0],zmm24[2],mem[2],zmm24[4],mem[4],zmm24[6],mem[6]
9718 ; AVX512F-NEXT: vinserti64x4 $0, %ymm2, %zmm31, %zmm2
9719 ; AVX512F-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9720 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9721 ; AVX512F-NEXT: vpermt2q %zmm22, %zmm0, %zmm2
9722 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9723 ; AVX512F-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm1, %zmm3 # 64-byte Folded Reload
9724 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
9725 ; AVX512F-NEXT: vmovdqa64 %zmm14, %zmm3
9726 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
9727 ; AVX512F-NEXT: vpermt2q %zmm22, %zmm0, %zmm3
9728 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
9729 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
9730 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} zmm3 {%k1} = zmm14[0],zmm28[0],zmm14[2],zmm28[2],zmm14[4],zmm28[4],zmm14[6],zmm28[6]
9731 ; AVX512F-NEXT: vinserti64x4 $0, %ymm2, %zmm3, %zmm2
9732 ; AVX512F-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9733 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9734 ; AVX512F-NEXT: vpermt2q %zmm30, %zmm0, %zmm2
9735 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9736 ; AVX512F-NEXT: vpermt2q %zmm20, %zmm1, %zmm3
9737 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
9738 ; AVX512F-NEXT: vmovdqa64 %zmm17, %zmm3
9739 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
9740 ; AVX512F-NEXT: vpermt2q %zmm17, %zmm0, %zmm3
9741 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm30 # 64-byte Reload
9742 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm27 # 64-byte Reload
9743 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} zmm3 {%k1} = zmm30[0],zmm27[0],zmm30[2],zmm27[2],zmm30[4],zmm27[4],zmm30[6],zmm27[6]
9744 ; AVX512F-NEXT: vinserti64x4 $0, %ymm2, %zmm3, %zmm2
9745 ; AVX512F-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9746 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9747 ; AVX512F-NEXT: vpermt2q %zmm19, %zmm0, %zmm2
9748 ; AVX512F-NEXT: vpermt2q %zmm29, %zmm1, %zmm15
9749 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm15[4,5,6,7]
9750 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
9751 ; AVX512F-NEXT: vmovdqa64 %zmm20, %zmm3
9752 ; AVX512F-NEXT: vpermt2q %zmm16, %zmm0, %zmm3
9753 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
9754 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
9755 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} zmm3 {%k1} = zmm31[0],zmm16[0],zmm31[2],zmm16[2],zmm31[4],zmm16[4],zmm31[6],zmm16[6]
9756 ; AVX512F-NEXT: vinserti64x4 $0, %ymm2, %zmm3, %zmm2
9757 ; AVX512F-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9758 ; AVX512F-NEXT: vpermt2q %zmm12, %zmm0, %zmm11
9759 ; AVX512F-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm1, %zmm13 # 64-byte Folded Reload
9760 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm2 = ymm11[0,1,2,3],ymm13[4,5,6,7]
9761 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
9762 ; AVX512F-NEXT: vmovdqa64 %zmm11, %zmm3
9763 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
9764 ; AVX512F-NEXT: vpermt2q %zmm13, %zmm0, %zmm3
9765 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
9766 ; AVX512F-NEXT: vpunpcklqdq {{[-0-9]+}}(%r{{[sb]}}p), %zmm12, %zmm3 {%k1} # 64-byte Folded Reload
9767 ; AVX512F-NEXT: # zmm3 {%k1} = zmm12[0],mem[0],zmm12[2],mem[2],zmm12[4],mem[4],zmm12[6],mem[6]
9768 ; AVX512F-NEXT: vinserti64x4 $0, %ymm2, %zmm3, %zmm2
9769 ; AVX512F-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9770 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9771 ; AVX512F-NEXT: vpermt2q %zmm7, %zmm0, %zmm2
9772 ; AVX512F-NEXT: vpermt2q %zmm10, %zmm1, %zmm9
9773 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm9[4,5,6,7]
9774 ; AVX512F-NEXT: vmovdqu64 (%rsp), %zmm10 # 64-byte Reload
9775 ; AVX512F-NEXT: vmovdqa64 %zmm10, %zmm3
9776 ; AVX512F-NEXT: vpermt2q %zmm8, %zmm0, %zmm3
9777 ; AVX512F-NEXT: vmovdqa64 %zmm8, %zmm7
9778 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} zmm3 {%k1} = zmm26[0],zmm21[0],zmm26[2],zmm21[2],zmm26[4],zmm21[4],zmm26[6],zmm21[6]
9779 ; AVX512F-NEXT: vmovdqa64 %zmm21, %zmm8
9780 ; AVX512F-NEXT: vinserti64x4 $0, %ymm2, %zmm3, %zmm2
9781 ; AVX512F-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9782 ; AVX512F-NEXT: vmovdqa64 %zmm25, %zmm2
9783 ; AVX512F-NEXT: vpermt2q %zmm18, %zmm0, %zmm2
9784 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9785 ; AVX512F-NEXT: vpermi2q %zmm6, %zmm3, %zmm0
9786 ; AVX512F-NEXT: vpermi2q %zmm4, %zmm5, %zmm1
9787 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
9788 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
9789 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
9790 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} zmm2 {%k1} = zmm9[0],zmm5[0],zmm9[2],zmm5[2],zmm9[4],zmm5[4],zmm9[6],zmm5[6]
9791 ; AVX512F-NEXT: vinserti64x4 $0, %ymm0, %zmm2, %zmm0
9792 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9793 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
9794 ; AVX512F-NEXT: vmovdqa64 %zmm1, %zmm6
9795 ; AVX512F-NEXT: vmovdqa64 %zmm1, %zmm0
9796 ; AVX512F-NEXT: vbroadcasti32x4 {{.*#+}} zmm4 = [7,15,7,15,7,15,7,15]
9797 ; AVX512F-NEXT: # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9798 ; AVX512F-NEXT: vmovdqa64 %zmm23, %zmm2
9799 ; AVX512F-NEXT: vpermt2q %zmm23, %zmm4, %zmm1
9800 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9801 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} zmm1 {%k1} = zmm24[1],zmm3[1],zmm24[3],zmm3[3],zmm24[5],zmm3[5],zmm24[7],zmm3[7]
9802 ; AVX512F-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9803 ; AVX512F-NEXT: vmovdqa64 %zmm24, %zmm1
9804 ; AVX512F-NEXT: vbroadcasti32x4 {{.*#+}} zmm14 = [0,8,0,8,0,8,0,8]
9805 ; AVX512F-NEXT: # zmm14 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9806 ; AVX512F-NEXT: vpermt2q %zmm3, %zmm14, %zmm24
9807 ; AVX512F-NEXT: vmovdqu64 %zmm24, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9808 ; AVX512F-NEXT: vbroadcasti32x4 {{.*#+}} zmm23 = [1,9,1,9,1,9,1,9]
9809 ; AVX512F-NEXT: # zmm23 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9810 ; AVX512F-NEXT: vpermt2q %zmm3, %zmm23, %zmm1
9811 ; AVX512F-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9812 ; AVX512F-NEXT: vpermt2q %zmm2, %zmm14, %zmm6
9813 ; AVX512F-NEXT: vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9814 ; AVX512F-NEXT: vpermt2q %zmm2, %zmm23, %zmm0
9815 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9816 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9817 ; AVX512F-NEXT: vmovdqa64 %zmm2, %zmm24
9818 ; AVX512F-NEXT: vmovdqa64 %zmm2, %zmm1
9819 ; AVX512F-NEXT: vpermt2q %zmm22, %zmm4, %zmm2
9820 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
9821 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} zmm2 {%k1} = zmm15[1],zmm28[1],zmm15[3],zmm28[3],zmm15[5],zmm28[5],zmm15[7],zmm28[7]
9822 ; AVX512F-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9823 ; AVX512F-NEXT: vmovdqa64 %zmm15, %zmm6
9824 ; AVX512F-NEXT: vpermt2q %zmm28, %zmm14, %zmm15
9825 ; AVX512F-NEXT: vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9826 ; AVX512F-NEXT: vpermt2q %zmm28, %zmm23, %zmm6
9827 ; AVX512F-NEXT: vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9828 ; AVX512F-NEXT: vpermt2q %zmm22, %zmm14, %zmm24
9829 ; AVX512F-NEXT: vpermt2q %zmm22, %zmm23, %zmm1
9830 ; AVX512F-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9831 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
9832 ; AVX512F-NEXT: vmovdqa64 %zmm19, %zmm29
9833 ; AVX512F-NEXT: vmovdqa64 %zmm19, %zmm0
9834 ; AVX512F-NEXT: vpermt2q %zmm17, %zmm4, %zmm19
9835 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} zmm19 {%k1} = zmm30[1],zmm27[1],zmm30[3],zmm27[3],zmm30[5],zmm27[5],zmm30[7],zmm27[7]
9836 ; AVX512F-NEXT: vmovdqa64 %zmm30, %zmm1
9837 ; AVX512F-NEXT: vpermt2q %zmm27, %zmm14, %zmm30
9838 ; AVX512F-NEXT: vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9839 ; AVX512F-NEXT: vpermt2q %zmm27, %zmm23, %zmm1
9840 ; AVX512F-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9841 ; AVX512F-NEXT: vpermt2q %zmm17, %zmm14, %zmm29
9842 ; AVX512F-NEXT: vpermt2q %zmm17, %zmm23, %zmm0
9843 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9844 ; AVX512F-NEXT: vmovdqa64 %zmm20, %zmm28
9845 ; AVX512F-NEXT: vmovdqa64 %zmm20, %zmm3
9846 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
9847 ; AVX512F-NEXT: vpermt2q %zmm1, %zmm4, %zmm20
9848 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} zmm20 {%k1} = zmm31[1],zmm16[1],zmm31[3],zmm16[3],zmm31[5],zmm16[5],zmm31[7],zmm16[7]
9849 ; AVX512F-NEXT: vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9850 ; AVX512F-NEXT: vmovdqa64 %zmm31, %zmm2
9851 ; AVX512F-NEXT: vmovdqa64 %zmm31, %zmm17
9852 ; AVX512F-NEXT: vpermt2q %zmm16, %zmm14, %zmm17
9853 ; AVX512F-NEXT: vpermt2q %zmm16, %zmm23, %zmm2
9854 ; AVX512F-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9855 ; AVX512F-NEXT: vpermt2q %zmm1, %zmm14, %zmm28
9856 ; AVX512F-NEXT: vpermt2q %zmm1, %zmm23, %zmm3
9857 ; AVX512F-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9858 ; AVX512F-NEXT: vmovdqa64 %zmm11, %zmm21
9859 ; AVX512F-NEXT: vmovdqa64 %zmm11, %zmm31
9860 ; AVX512F-NEXT: vpermt2q %zmm13, %zmm4, %zmm11
9861 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9862 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9863 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} zmm11 {%k1} = zmm3[1],zmm0[1],zmm3[3],zmm0[3],zmm3[5],zmm0[5],zmm3[7],zmm0[7]
9864 ; AVX512F-NEXT: vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9865 ; AVX512F-NEXT: vmovdqa64 %zmm3, %zmm2
9866 ; AVX512F-NEXT: vpermt2q %zmm0, %zmm14, %zmm3
9867 ; AVX512F-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9868 ; AVX512F-NEXT: vpermt2q %zmm0, %zmm23, %zmm2
9869 ; AVX512F-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9870 ; AVX512F-NEXT: vpermt2q %zmm13, %zmm14, %zmm21
9871 ; AVX512F-NEXT: vpermt2q %zmm13, %zmm23, %zmm31
9872 ; AVX512F-NEXT: vmovdqa64 %zmm10, %zmm2
9873 ; AVX512F-NEXT: vmovdqa64 %zmm10, %zmm20
9874 ; AVX512F-NEXT: vmovdqa64 %zmm10, %zmm25
9875 ; AVX512F-NEXT: vpermt2q %zmm7, %zmm4, %zmm2
9876 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} zmm2 {%k1} = zmm26[1],zmm8[1],zmm26[3],zmm8[3],zmm26[5],zmm8[5],zmm26[7],zmm8[7]
9877 ; AVX512F-NEXT: vmovdqu64 %zmm2, (%rsp) # 64-byte Spill
9878 ; AVX512F-NEXT: vmovdqa64 %zmm26, %zmm2
9879 ; AVX512F-NEXT: vpermt2q %zmm8, %zmm14, %zmm26
9880 ; AVX512F-NEXT: vpermt2q %zmm8, %zmm23, %zmm2
9881 ; AVX512F-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9882 ; AVX512F-NEXT: vpermt2q %zmm7, %zmm14, %zmm20
9883 ; AVX512F-NEXT: vpermt2q %zmm7, %zmm23, %zmm25
9884 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
9885 ; AVX512F-NEXT: vmovdqa64 %zmm6, %zmm0
9886 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9887 ; AVX512F-NEXT: vpermt2q %zmm3, %zmm14, %zmm0
9888 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9889 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm30 # 64-byte Reload
9890 ; AVX512F-NEXT: vmovdqa64 %zmm30, %zmm16
9891 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm27 # 64-byte Reload
9892 ; AVX512F-NEXT: vpermt2q %zmm27, %zmm14, %zmm16
9893 ; AVX512F-NEXT: vmovdqa64 %zmm9, %zmm0
9894 ; AVX512F-NEXT: vpermt2q %zmm5, %zmm14, %zmm0
9895 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9896 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9897 ; AVX512F-NEXT: vpermi2q %zmm18, %zmm0, %zmm14
9898 ; AVX512F-NEXT: vmovdqa64 %zmm6, %zmm2
9899 ; AVX512F-NEXT: vpermt2q %zmm3, %zmm23, %zmm2
9900 ; AVX512F-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9901 ; AVX512F-NEXT: vmovdqa64 %zmm30, %zmm22
9902 ; AVX512F-NEXT: vpermt2q %zmm27, %zmm23, %zmm22
9903 ; AVX512F-NEXT: vmovdqa64 %zmm9, %zmm2
9904 ; AVX512F-NEXT: vpermt2q %zmm5, %zmm23, %zmm2
9905 ; AVX512F-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9906 ; AVX512F-NEXT: vpermi2q %zmm18, %zmm0, %zmm23
9907 ; AVX512F-NEXT: vpermt2q %zmm18, %zmm4, %zmm0
9908 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} zmm0 {%k1} = zmm9[1],zmm5[1],zmm9[3],zmm5[3],zmm9[5],zmm5[5],zmm9[7],zmm5[7]
9909 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm18
9910 ; AVX512F-NEXT: vpermt2q %zmm27, %zmm4, %zmm30
9911 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} zmm30 {%k1} = zmm6[1],zmm3[1],zmm6[3],zmm3[3],zmm6[5],zmm3[5],zmm6[7],zmm3[7]
9912 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
9913 ; AVX512F-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm4, %zmm7 # 64-byte Folded Reload
9914 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
9915 ; AVX512F-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm4, %zmm8 # 64-byte Folded Reload
9916 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
9917 ; AVX512F-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm4, %zmm10 # 64-byte Folded Reload
9918 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
9919 ; AVX512F-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm4, %zmm11 # 64-byte Folded Reload
9920 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
9921 ; AVX512F-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm4, %zmm12 # 64-byte Folded Reload
9922 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
9923 ; AVX512F-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm4, %zmm13 # 64-byte Folded Reload
9924 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9925 ; AVX512F-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm4, %zmm0 # 64-byte Folded Reload
9926 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9927 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
9928 ; AVX512F-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm4, %zmm15 # 64-byte Folded Reload
9929 ; AVX512F-NEXT: vbroadcasti128 {{.*#+}} ymm0 = [7,15,7,15]
9930 ; AVX512F-NEXT: # ymm0 = mem[0,1,0,1]
9931 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
9932 ; AVX512F-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm9 # 64-byte Folded Reload
9933 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
9934 ; AVX512F-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm1 # 64-byte Folded Reload
9935 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9936 ; AVX512F-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm2 # 64-byte Folded Reload
9937 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9938 ; AVX512F-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm3 # 64-byte Folded Reload
9939 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
9940 ; AVX512F-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm4 # 64-byte Folded Reload
9941 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
9942 ; AVX512F-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm5 # 64-byte Folded Reload
9943 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
9944 ; AVX512F-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm6 # 64-byte Folded Reload
9945 ; AVX512F-NEXT: vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9946 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
9947 ; AVX512F-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm6 # 64-byte Folded Reload
9948 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm0 = ymm7[0,1,2,3],ymm9[4,5,6,7]
9949 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
9950 ; AVX512F-NEXT: vinserti64x4 $0, %ymm0, %zmm7, %zmm0
9951 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9952 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm0 = ymm8[0,1,2,3],ymm1[4,5,6,7]
9953 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
9954 ; AVX512F-NEXT: vinserti64x4 $0, %ymm0, %zmm1, %zmm0
9955 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9956 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm2[4,5,6,7]
9957 ; AVX512F-NEXT: vinserti64x4 $0, %ymm0, %zmm19, %zmm0
9958 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9959 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm0 = ymm11[0,1,2,3],ymm3[4,5,6,7]
9960 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
9961 ; AVX512F-NEXT: vinserti64x4 $0, %ymm0, %zmm1, %zmm11
9962 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm0 = ymm12[0,1,2,3],ymm4[4,5,6,7]
9963 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
9964 ; AVX512F-NEXT: vinserti64x4 $0, %ymm0, %zmm1, %zmm0
9965 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9966 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm0 = ymm13[0,1,2,3],ymm5[4,5,6,7]
9967 ; AVX512F-NEXT: vmovdqu64 (%rsp), %zmm1 # 64-byte Reload
9968 ; AVX512F-NEXT: vinserti64x4 $0, %ymm0, %zmm1, %zmm0
9969 ; AVX512F-NEXT: vmovdqu64 %zmm0, (%rsp) # 64-byte Spill
9970 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9971 ; AVX512F-NEXT: vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
9972 ; AVX512F-NEXT: # ymm0 = ymm0[0,1,2,3],mem[4,5,6,7]
9973 ; AVX512F-NEXT: vinserti64x4 $0, %ymm0, %zmm18, %zmm0
9974 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9975 ; AVX512F-NEXT: vpblendd {{.*#+}} ymm0 = ymm15[0,1,2,3],ymm6[4,5,6,7]
9976 ; AVX512F-NEXT: vinserti64x4 $0, %ymm0, %zmm30, %zmm0
9977 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9978 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9979 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm24 {%k1}
9980 ; AVX512F-NEXT: vmovdqa 64(%rdi), %xmm0
9981 ; AVX512F-NEXT: vinserti128 $1, 192(%rdi), %ymm0, %ymm0
9982 ; AVX512F-NEXT: vmovdqa (%rdi), %xmm15
9983 ; AVX512F-NEXT: vinserti128 $1, 128(%rdi), %ymm15, %ymm15
9984 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} ymm30 = ymm15[0],ymm0[0],ymm15[2],ymm0[2]
9985 ; AVX512F-NEXT: vinserti64x4 $0, %ymm30, %zmm24, %zmm1
9986 ; AVX512F-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9987 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
9988 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9989 ; AVX512F-NEXT: vmovdqa64 %zmm2, %zmm1 {%k1}
9990 ; AVX512F-NEXT: vmovdqa64 576(%rdi), %xmm24
9991 ; AVX512F-NEXT: vinserti32x4 $1, 704(%rdi), %ymm24, %ymm30
9992 ; AVX512F-NEXT: vmovdqa64 512(%rdi), %xmm24
9993 ; AVX512F-NEXT: vinserti32x4 $1, 640(%rdi), %ymm24, %ymm24
9994 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} ymm27 = ymm24[0],ymm30[0],ymm24[2],ymm30[2]
9995 ; AVX512F-NEXT: vinserti64x4 $0, %ymm27, %zmm1, %zmm1
9996 ; AVX512F-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9997 ; AVX512F-NEXT: vmovdqa64 %zmm17, %zmm28 {%k1}
9998 ; AVX512F-NEXT: vmovdqa 1088(%rdi), %xmm9
9999 ; AVX512F-NEXT: vinserti32x4 $1, 1216(%rdi), %ymm9, %ymm27
10000 ; AVX512F-NEXT: vmovdqa 1024(%rdi), %xmm9
10001 ; AVX512F-NEXT: vinserti128 $1, 1152(%rdi), %ymm9, %ymm9
10002 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} ymm4 = ymm9[0],ymm27[0],ymm9[2],ymm27[2]
10003 ; AVX512F-NEXT: vinserti64x4 $0, %ymm4, %zmm28, %zmm1
10004 ; AVX512F-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10005 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
10006 ; AVX512F-NEXT: vmovdqa64 %zmm1, %zmm29 {%k1}
10007 ; AVX512F-NEXT: vmovdqa 1600(%rdi), %xmm4
10008 ; AVX512F-NEXT: vinserti128 $1, 1728(%rdi), %ymm4, %ymm4
10009 ; AVX512F-NEXT: vmovdqa64 1536(%rdi), %xmm17
10010 ; AVX512F-NEXT: vinserti32x4 $1, 1664(%rdi), %ymm17, %ymm17
10011 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} ymm19 = ymm17[0],ymm4[0],ymm17[2],ymm4[2]
10012 ; AVX512F-NEXT: vinserti64x4 $0, %ymm19, %zmm29, %zmm13
10013 ; AVX512F-NEXT: vmovdqa64 %zmm26, %zmm20 {%k1}
10014 ; AVX512F-NEXT: vmovdqa64 2112(%rdi), %xmm19
10015 ; AVX512F-NEXT: vinserti32x4 $1, 2240(%rdi), %ymm19, %ymm19
10016 ; AVX512F-NEXT: vmovdqa64 2048(%rdi), %xmm26
10017 ; AVX512F-NEXT: vinserti32x4 $1, 2176(%rdi), %ymm26, %ymm26
10018 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} ymm29 = ymm26[0],ymm19[0],ymm26[2],ymm19[2]
10019 ; AVX512F-NEXT: vinserti64x4 $0, %ymm29, %zmm20, %zmm5
10020 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
10021 ; AVX512F-NEXT: vmovdqa64 %zmm1, %zmm21 {%k1}
10022 ; AVX512F-NEXT: vmovdqa 2624(%rdi), %xmm12
10023 ; AVX512F-NEXT: vinserti128 $1, 2752(%rdi), %ymm12, %ymm12
10024 ; AVX512F-NEXT: vmovdqa64 2560(%rdi), %xmm29
10025 ; AVX512F-NEXT: vinserti32x4 $1, 2688(%rdi), %ymm29, %ymm29
10026 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} ymm18 = ymm29[0],ymm12[0],ymm29[2],ymm12[2]
10027 ; AVX512F-NEXT: vinserti64x4 $0, %ymm18, %zmm21, %zmm18
10028 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
10029 ; AVX512F-NEXT: vmovdqa64 %zmm1, %zmm16 {%k1}
10030 ; AVX512F-NEXT: vmovdqa 3136(%rdi), %xmm6
10031 ; AVX512F-NEXT: vinserti128 $1, 3264(%rdi), %ymm6, %ymm6
10032 ; AVX512F-NEXT: vmovdqa64 3072(%rdi), %xmm20
10033 ; AVX512F-NEXT: vinserti32x4 $1, 3200(%rdi), %ymm20, %ymm20
10034 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} ymm21 = ymm20[0],ymm6[0],ymm20[2],ymm6[2]
10035 ; AVX512F-NEXT: vinserti64x4 $0, %ymm21, %zmm16, %zmm2
10036 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
10037 ; AVX512F-NEXT: vmovdqa64 %zmm1, %zmm14 {%k1}
10038 ; AVX512F-NEXT: vmovdqa 3648(%rdi), %xmm7
10039 ; AVX512F-NEXT: vinserti128 $1, 3776(%rdi), %ymm7, %ymm7
10040 ; AVX512F-NEXT: vmovdqa64 3584(%rdi), %xmm21
10041 ; AVX512F-NEXT: vinserti32x4 $1, 3712(%rdi), %ymm21, %ymm21
10042 ; AVX512F-NEXT: vpunpcklqdq {{.*#+}} ymm28 = ymm21[0],ymm7[0],ymm21[2],ymm7[2]
10043 ; AVX512F-NEXT: vinserti64x4 $0, %ymm28, %zmm14, %zmm1
10044 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10045 ; AVX512F-NEXT: vmovdqa64 %zmm3, %zmm22 {%k1}
10046 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} ymm6 = ymm20[1],ymm6[1],ymm20[3],ymm6[3]
10047 ; AVX512F-NEXT: vinserti64x4 $0, %ymm6, %zmm22, %zmm3
10048 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
10049 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
10050 ; AVX512F-NEXT: vmovdqa64 %zmm6, %zmm8 {%k1}
10051 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} ymm6 = ymm24[1],ymm30[1],ymm24[3],ymm30[3]
10052 ; AVX512F-NEXT: vinserti64x4 $0, %ymm6, %zmm8, %zmm6
10053 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
10054 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
10055 ; AVX512F-NEXT: vmovdqa64 %zmm10, %zmm8 {%k1}
10056 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} ymm0 = ymm15[1],ymm0[1],ymm15[3],ymm0[3]
10057 ; AVX512F-NEXT: vinserti64x4 $0, %ymm0, %zmm8, %zmm0
10058 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
10059 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
10060 ; AVX512F-NEXT: vmovdqa64 %zmm10, %zmm8 {%k1}
10061 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} ymm4 = ymm17[1],ymm4[1],ymm17[3],ymm4[3]
10062 ; AVX512F-NEXT: vinserti64x4 $0, %ymm4, %zmm8, %zmm4
10063 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
10064 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
10065 ; AVX512F-NEXT: vmovdqa64 %zmm8, %zmm10 {%k1}
10066 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} ymm8 = ymm9[1],ymm27[1],ymm9[3],ymm27[3]
10067 ; AVX512F-NEXT: vinserti64x4 $0, %ymm8, %zmm10, %zmm8
10068 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
10069 ; AVX512F-NEXT: vmovdqa64 %zmm9, %zmm31 {%k1}
10070 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} ymm9 = ymm29[1],ymm12[1],ymm29[3],ymm12[3]
10071 ; AVX512F-NEXT: vinserti64x4 $0, %ymm9, %zmm31, %zmm9
10072 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
10073 ; AVX512F-NEXT: vmovdqa64 %zmm10, %zmm25 {%k1}
10074 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} ymm10 = ymm26[1],ymm19[1],ymm26[3],ymm19[3]
10075 ; AVX512F-NEXT: vinserti64x4 $0, %ymm10, %zmm25, %zmm10
10076 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
10077 ; AVX512F-NEXT: vmovdqa64 %zmm12, %zmm23 {%k1}
10078 ; AVX512F-NEXT: vpunpckhqdq {{.*#+}} ymm7 = ymm21[1],ymm7[1],ymm21[3],ymm7[3]
10079 ; AVX512F-NEXT: vinserti64x4 $0, %ymm7, %zmm23, %zmm7
10080 ; AVX512F-NEXT: vmovdqa64 %zmm1, 448(%rsi)
10081 ; AVX512F-NEXT: vmovdqa64 %zmm2, 384(%rsi)
10082 ; AVX512F-NEXT: vmovdqa64 %zmm18, 320(%rsi)
10083 ; AVX512F-NEXT: vmovdqa64 %zmm5, 256(%rsi)
10084 ; AVX512F-NEXT: vmovdqa64 %zmm13, 192(%rsi)
10085 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
10086 ; AVX512F-NEXT: vmovaps %zmm1, 128(%rsi)
10087 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
10088 ; AVX512F-NEXT: vmovaps %zmm1, 64(%rsi)
10089 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
10090 ; AVX512F-NEXT: vmovaps %zmm1, (%rsi)
10091 ; AVX512F-NEXT: vmovdqa64 %zmm7, 448(%rdx)
10092 ; AVX512F-NEXT: vmovdqa64 %zmm10, 256(%rdx)
10093 ; AVX512F-NEXT: vmovdqa64 %zmm9, 320(%rdx)
10094 ; AVX512F-NEXT: vmovdqa64 %zmm8, 128(%rdx)
10095 ; AVX512F-NEXT: vmovdqa64 %zmm4, 192(%rdx)
10096 ; AVX512F-NEXT: vmovdqa64 %zmm0, (%rdx)
10097 ; AVX512F-NEXT: vmovdqa64 %zmm6, 64(%rdx)
10098 ; AVX512F-NEXT: vmovdqa64 %zmm3, 384(%rdx)
10099 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10100 ; AVX512F-NEXT: vmovaps %zmm0, 448(%rcx)
10101 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10102 ; AVX512F-NEXT: vmovaps %zmm0, 256(%rcx)
10103 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10104 ; AVX512F-NEXT: vmovaps %zmm0, 320(%rcx)
10105 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10106 ; AVX512F-NEXT: vmovaps %zmm0, 128(%rcx)
10107 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10108 ; AVX512F-NEXT: vmovaps %zmm0, 192(%rcx)
10109 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10110 ; AVX512F-NEXT: vmovaps %zmm0, (%rcx)
10111 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10112 ; AVX512F-NEXT: vmovaps %zmm0, 64(%rcx)
10113 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10114 ; AVX512F-NEXT: vmovaps %zmm0, 384(%rcx)
10115 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10116 ; AVX512F-NEXT: vmovaps %zmm0, 448(%r8)
10117 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10118 ; AVX512F-NEXT: vmovaps %zmm0, 256(%r8)
10119 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10120 ; AVX512F-NEXT: vmovaps %zmm0, 320(%r8)
10121 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10122 ; AVX512F-NEXT: vmovaps %zmm0, 128(%r8)
10123 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10124 ; AVX512F-NEXT: vmovaps %zmm0, 192(%r8)
10125 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10126 ; AVX512F-NEXT: vmovaps %zmm0, (%r8)
10127 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10128 ; AVX512F-NEXT: vmovaps %zmm0, 64(%r8)
10129 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10130 ; AVX512F-NEXT: vmovaps %zmm0, 384(%r8)
10131 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10132 ; AVX512F-NEXT: vmovaps %zmm0, 448(%r9)
10133 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10134 ; AVX512F-NEXT: vmovaps %zmm0, 256(%r9)
10135 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10136 ; AVX512F-NEXT: vmovaps %zmm0, 320(%r9)
10137 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10138 ; AVX512F-NEXT: vmovaps %zmm0, 128(%r9)
10139 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10140 ; AVX512F-NEXT: vmovaps %zmm0, 192(%r9)
10141 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10142 ; AVX512F-NEXT: vmovaps %zmm0, (%r9)
10143 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10144 ; AVX512F-NEXT: vmovaps %zmm0, 64(%r9)
10145 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10146 ; AVX512F-NEXT: vmovaps %zmm0, 384(%r9)
10147 ; AVX512F-NEXT: movq {{[0-9]+}}(%rsp), %rax
10148 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10149 ; AVX512F-NEXT: vmovaps %zmm0, 448(%rax)
10150 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10151 ; AVX512F-NEXT: vmovaps %zmm0, 256(%rax)
10152 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10153 ; AVX512F-NEXT: vmovaps %zmm0, 320(%rax)
10154 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10155 ; AVX512F-NEXT: vmovaps %zmm0, 128(%rax)
10156 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10157 ; AVX512F-NEXT: vmovaps %zmm0, 192(%rax)
10158 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10159 ; AVX512F-NEXT: vmovaps %zmm0, (%rax)
10160 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10161 ; AVX512F-NEXT: vmovaps %zmm0, 64(%rax)
10162 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10163 ; AVX512F-NEXT: vmovaps %zmm0, 384(%rax)
10164 ; AVX512F-NEXT: movq {{[0-9]+}}(%rsp), %rax
10165 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10166 ; AVX512F-NEXT: vmovaps %zmm0, 448(%rax)
10167 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10168 ; AVX512F-NEXT: vmovaps %zmm0, 256(%rax)
10169 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10170 ; AVX512F-NEXT: vmovaps %zmm0, 320(%rax)
10171 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10172 ; AVX512F-NEXT: vmovaps %zmm0, 128(%rax)
10173 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10174 ; AVX512F-NEXT: vmovaps %zmm0, 192(%rax)
10175 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10176 ; AVX512F-NEXT: vmovaps %zmm0, (%rax)
10177 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10178 ; AVX512F-NEXT: vmovaps %zmm0, 64(%rax)
10179 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10180 ; AVX512F-NEXT: vmovaps %zmm0, 384(%rax)
10181 ; AVX512F-NEXT: movq {{[0-9]+}}(%rsp), %rax
10182 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10183 ; AVX512F-NEXT: vmovaps %zmm0, 384(%rax)
10184 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10185 ; AVX512F-NEXT: vmovaps %zmm0, 448(%rax)
10186 ; AVX512F-NEXT: vmovups (%rsp), %zmm0 # 64-byte Reload
10187 ; AVX512F-NEXT: vmovaps %zmm0, 256(%rax)
10188 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10189 ; AVX512F-NEXT: vmovaps %zmm0, 320(%rax)
10190 ; AVX512F-NEXT: vmovdqa64 %zmm11, 128(%rax)
10191 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10192 ; AVX512F-NEXT: vmovaps %zmm0, 192(%rax)
10193 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10194 ; AVX512F-NEXT: vmovaps %zmm0, (%rax)
10195 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10196 ; AVX512F-NEXT: vmovaps %zmm0, 64(%rax)
10197 ; AVX512F-NEXT: addq $6600, %rsp # imm = 0x19C8
10198 ; AVX512F-NEXT: vzeroupper
10199 ; AVX512F-NEXT: retq
10201 ; AVX512BW-LABEL: load_i64_stride8_vf64:
10202 ; AVX512BW: # %bb.0:
10203 ; AVX512BW-NEXT: subq $6600, %rsp # imm = 0x19C8
10204 ; AVX512BW-NEXT: vmovdqa64 3392(%rdi), %zmm13
10205 ; AVX512BW-NEXT: vmovdqa64 3328(%rdi), %zmm7
10206 ; AVX512BW-NEXT: vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10207 ; AVX512BW-NEXT: vmovdqa64 3520(%rdi), %zmm1
10208 ; AVX512BW-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10209 ; AVX512BW-NEXT: vmovdqa64 3456(%rdi), %zmm10
10210 ; AVX512BW-NEXT: vmovdqa64 1856(%rdi), %zmm17
10211 ; AVX512BW-NEXT: vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10212 ; AVX512BW-NEXT: vmovdqa64 1984(%rdi), %zmm12
10213 ; AVX512BW-NEXT: vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10214 ; AVX512BW-NEXT: vmovdqa64 832(%rdi), %zmm8
10215 ; AVX512BW-NEXT: vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10216 ; AVX512BW-NEXT: vmovdqa64 768(%rdi), %zmm4
10217 ; AVX512BW-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10218 ; AVX512BW-NEXT: vmovdqa64 960(%rdi), %zmm9
10219 ; AVX512BW-NEXT: vmovdqa64 896(%rdi), %zmm11
10220 ; AVX512BW-NEXT: vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10221 ; AVX512BW-NEXT: vmovdqa64 320(%rdi), %zmm15
10222 ; AVX512BW-NEXT: vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10223 ; AVX512BW-NEXT: vmovdqa64 256(%rdi), %zmm5
10224 ; AVX512BW-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10225 ; AVX512BW-NEXT: vmovdqa64 448(%rdi), %zmm16
10226 ; AVX512BW-NEXT: vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10227 ; AVX512BW-NEXT: vmovdqa64 384(%rdi), %zmm6
10228 ; AVX512BW-NEXT: movb $-64, %al
10229 ; AVX512BW-NEXT: kmovd %eax, %k1
10230 ; AVX512BW-NEXT: vbroadcasti32x4 {{.*#+}} zmm2 = [2,10,2,10,2,10,2,10]
10231 ; AVX512BW-NEXT: # zmm2 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10232 ; AVX512BW-NEXT: vmovdqa64 %zmm10, %zmm0
10233 ; AVX512BW-NEXT: vmovdqa64 %zmm10, %zmm29
10234 ; AVX512BW-NEXT: vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10235 ; AVX512BW-NEXT: vpermt2q %zmm1, %zmm2, %zmm0
10236 ; AVX512BW-NEXT: vmovdqa64 %zmm7, %zmm1
10237 ; AVX512BW-NEXT: vpermt2q %zmm13, %zmm2, %zmm1
10238 ; AVX512BW-NEXT: vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10239 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm1 {%k1}
10240 ; AVX512BW-NEXT: vmovdqa 3264(%rdi), %ymm3
10241 ; AVX512BW-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10242 ; AVX512BW-NEXT: vmovdqa 3200(%rdi), %ymm0
10243 ; AVX512BW-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10244 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[2],ymm3[2]
10245 ; AVX512BW-NEXT: vmovdqa 3136(%rdi), %ymm3
10246 ; AVX512BW-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10247 ; AVX512BW-NEXT: vmovdqa 3072(%rdi), %ymm14
10248 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} ymm3 = ymm14[0],ymm3[0],ymm14[2],ymm3[2]
10249 ; AVX512BW-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm3[2,3],ymm0[2,3]
10250 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm0, %zmm1, %zmm0
10251 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10252 ; AVX512BW-NEXT: vmovdqa64 %zmm11, %zmm0
10253 ; AVX512BW-NEXT: vpermt2q %zmm9, %zmm2, %zmm0
10254 ; AVX512BW-NEXT: vmovdqa64 %zmm9, %zmm7
10255 ; AVX512BW-NEXT: vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10256 ; AVX512BW-NEXT: vmovdqa64 %zmm4, %zmm1
10257 ; AVX512BW-NEXT: vpermt2q %zmm8, %zmm2, %zmm1
10258 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm1 {%k1}
10259 ; AVX512BW-NEXT: vmovdqa 704(%rdi), %ymm3
10260 ; AVX512BW-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10261 ; AVX512BW-NEXT: vmovdqa 640(%rdi), %ymm0
10262 ; AVX512BW-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10263 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[2],ymm3[2]
10264 ; AVX512BW-NEXT: vmovdqa64 576(%rdi), %ymm26
10265 ; AVX512BW-NEXT: vmovdqa64 512(%rdi), %ymm23
10266 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} ymm3 = ymm23[0],ymm26[0],ymm23[2],ymm26[2]
10267 ; AVX512BW-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm3[2,3],ymm0[2,3]
10268 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm0, %zmm1, %zmm0
10269 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10270 ; AVX512BW-NEXT: vmovdqa64 %zmm6, %zmm0
10271 ; AVX512BW-NEXT: vmovdqa64 %zmm6, %zmm8
10272 ; AVX512BW-NEXT: vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10273 ; AVX512BW-NEXT: vpermt2q %zmm16, %zmm2, %zmm0
10274 ; AVX512BW-NEXT: vmovdqa64 %zmm5, %zmm1
10275 ; AVX512BW-NEXT: vpermt2q %zmm15, %zmm2, %zmm1
10276 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm1 {%k1}
10277 ; AVX512BW-NEXT: vmovdqa 192(%rdi), %ymm0
10278 ; AVX512BW-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10279 ; AVX512BW-NEXT: vmovdqa64 128(%rdi), %ymm30
10280 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} ymm0 = ymm30[0],ymm0[0],ymm30[2],ymm0[2]
10281 ; AVX512BW-NEXT: vmovdqa64 64(%rdi), %ymm20
10282 ; AVX512BW-NEXT: vmovdqa64 (%rdi), %ymm16
10283 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} ymm3 = ymm16[0],ymm20[0],ymm16[2],ymm20[2]
10284 ; AVX512BW-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm3[2,3],ymm0[2,3]
10285 ; AVX512BW-NEXT: vmovdqa64 1920(%rdi), %zmm3
10286 ; AVX512BW-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10287 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm0, %zmm1, %zmm0
10288 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10289 ; AVX512BW-NEXT: vmovdqa64 %zmm3, %zmm0
10290 ; AVX512BW-NEXT: vpermt2q %zmm12, %zmm2, %zmm0
10291 ; AVX512BW-NEXT: vmovdqa64 1792(%rdi), %zmm1
10292 ; AVX512BW-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10293 ; AVX512BW-NEXT: vpermt2q %zmm17, %zmm2, %zmm1
10294 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm1 {%k1}
10295 ; AVX512BW-NEXT: vmovdqa 1728(%rdi), %ymm3
10296 ; AVX512BW-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10297 ; AVX512BW-NEXT: vmovdqa 1664(%rdi), %ymm0
10298 ; AVX512BW-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10299 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[2],ymm3[2]
10300 ; AVX512BW-NEXT: vmovdqa64 1600(%rdi), %ymm21
10301 ; AVX512BW-NEXT: vmovdqa64 1536(%rdi), %ymm17
10302 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} ymm3 = ymm17[0],ymm21[0],ymm17[2],ymm21[2]
10303 ; AVX512BW-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm3[2,3],ymm0[2,3]
10304 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm0, %zmm1, %zmm0
10305 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10306 ; AVX512BW-NEXT: vmovdqa64 1472(%rdi), %zmm1
10307 ; AVX512BW-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10308 ; AVX512BW-NEXT: vmovdqa64 1408(%rdi), %zmm0
10309 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10310 ; AVX512BW-NEXT: vpermt2q %zmm1, %zmm2, %zmm0
10311 ; AVX512BW-NEXT: vmovdqa64 1344(%rdi), %zmm3
10312 ; AVX512BW-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10313 ; AVX512BW-NEXT: vmovdqa64 1280(%rdi), %zmm11
10314 ; AVX512BW-NEXT: vmovdqa64 %zmm11, %zmm1
10315 ; AVX512BW-NEXT: vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10316 ; AVX512BW-NEXT: vpermt2q %zmm3, %zmm2, %zmm1
10317 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm1 {%k1}
10318 ; AVX512BW-NEXT: vmovdqa 1216(%rdi), %ymm0
10319 ; AVX512BW-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10320 ; AVX512BW-NEXT: vmovdqa64 1152(%rdi), %ymm25
10321 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} ymm0 = ymm25[0],ymm0[0],ymm25[2],ymm0[2]
10322 ; AVX512BW-NEXT: vmovdqa64 1088(%rdi), %ymm24
10323 ; AVX512BW-NEXT: vmovdqa64 1024(%rdi), %ymm22
10324 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} ymm3 = ymm22[0],ymm24[0],ymm22[2],ymm24[2]
10325 ; AVX512BW-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm3[2,3],ymm0[2,3]
10326 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm0, %zmm1, %zmm0
10327 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10328 ; AVX512BW-NEXT: vmovdqa64 3008(%rdi), %zmm1
10329 ; AVX512BW-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10330 ; AVX512BW-NEXT: vmovdqa64 2944(%rdi), %zmm0
10331 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10332 ; AVX512BW-NEXT: vpermt2q %zmm1, %zmm2, %zmm0
10333 ; AVX512BW-NEXT: vmovdqa64 2880(%rdi), %zmm3
10334 ; AVX512BW-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10335 ; AVX512BW-NEXT: vmovdqa64 2816(%rdi), %zmm1
10336 ; AVX512BW-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10337 ; AVX512BW-NEXT: vpermt2q %zmm3, %zmm2, %zmm1
10338 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm1 {%k1}
10339 ; AVX512BW-NEXT: vmovdqa 2752(%rdi), %ymm3
10340 ; AVX512BW-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10341 ; AVX512BW-NEXT: vmovdqa 2688(%rdi), %ymm0
10342 ; AVX512BW-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10343 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm3[0],ymm0[2],ymm3[2]
10344 ; AVX512BW-NEXT: vmovdqa64 2624(%rdi), %ymm31
10345 ; AVX512BW-NEXT: vmovdqa 2560(%rdi), %ymm10
10346 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} ymm3 = ymm10[0],ymm31[0],ymm10[2],ymm31[2]
10347 ; AVX512BW-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm3[2,3],ymm0[2,3]
10348 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm0, %zmm1, %zmm0
10349 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10350 ; AVX512BW-NEXT: vmovdqa64 2496(%rdi), %zmm1
10351 ; AVX512BW-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10352 ; AVX512BW-NEXT: vmovdqa64 2432(%rdi), %zmm0
10353 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10354 ; AVX512BW-NEXT: vpermt2q %zmm1, %zmm2, %zmm0
10355 ; AVX512BW-NEXT: vmovdqa64 2368(%rdi), %zmm18
10356 ; AVX512BW-NEXT: vmovdqa64 2304(%rdi), %zmm1
10357 ; AVX512BW-NEXT: vmovdqu64 %zmm1, (%rsp) # 64-byte Spill
10358 ; AVX512BW-NEXT: vpermt2q %zmm18, %zmm2, %zmm1
10359 ; AVX512BW-NEXT: vmovdqu64 %zmm18, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10360 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm1 {%k1}
10361 ; AVX512BW-NEXT: vmovdqa64 2240(%rdi), %ymm28
10362 ; AVX512BW-NEXT: vmovdqa64 2176(%rdi), %ymm19
10363 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} ymm0 = ymm19[0],ymm28[0],ymm19[2],ymm28[2]
10364 ; AVX512BW-NEXT: vmovdqa64 2112(%rdi), %ymm27
10365 ; AVX512BW-NEXT: vmovdqa 2048(%rdi), %ymm6
10366 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} ymm3 = ymm6[0],ymm27[0],ymm6[2],ymm27[2]
10367 ; AVX512BW-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm3[2,3],ymm0[2,3]
10368 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm0, %zmm1, %zmm0
10369 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10370 ; AVX512BW-NEXT: vmovdqa64 4032(%rdi), %zmm1
10371 ; AVX512BW-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10372 ; AVX512BW-NEXT: vmovdqa64 3968(%rdi), %zmm0
10373 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10374 ; AVX512BW-NEXT: vpermt2q %zmm1, %zmm2, %zmm0
10375 ; AVX512BW-NEXT: vmovdqa64 3904(%rdi), %zmm5
10376 ; AVX512BW-NEXT: vmovdqa64 3840(%rdi), %zmm3
10377 ; AVX512BW-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10378 ; AVX512BW-NEXT: vpermi2q %zmm5, %zmm3, %zmm2
10379 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm2 {%k1}
10380 ; AVX512BW-NEXT: vmovdqa 3776(%rdi), %ymm12
10381 ; AVX512BW-NEXT: vmovdqa 3712(%rdi), %ymm9
10382 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} ymm0 = ymm9[0],ymm12[0],ymm9[2],ymm12[2]
10383 ; AVX512BW-NEXT: vmovdqa 3648(%rdi), %ymm4
10384 ; AVX512BW-NEXT: vmovdqa 3584(%rdi), %ymm1
10385 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} ymm15 = ymm1[0],ymm4[0],ymm1[2],ymm4[2]
10386 ; AVX512BW-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm15[2,3],ymm0[2,3]
10387 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm0, %zmm2, %zmm0
10388 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10389 ; AVX512BW-NEXT: vbroadcasti32x4 {{.*#+}} zmm2 = [3,11,3,11,3,11,3,11]
10390 ; AVX512BW-NEXT: # zmm2 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10391 ; AVX512BW-NEXT: vmovdqa64 %zmm29, %zmm0
10392 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10393 ; AVX512BW-NEXT: vpermt2q %zmm3, %zmm2, %zmm0
10394 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
10395 ; AVX512BW-NEXT: vpermt2q %zmm13, %zmm2, %zmm15
10396 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm15 {%k1}
10397 ; AVX512BW-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10398 ; AVX512BW-NEXT: vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
10399 ; AVX512BW-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
10400 ; AVX512BW-NEXT: vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
10401 ; AVX512BW-NEXT: # ymm14 = ymm14[1],mem[1],ymm14[3],mem[3]
10402 ; AVX512BW-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm14[2,3],ymm0[2,3]
10403 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm0, %zmm15, %zmm0
10404 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10405 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
10406 ; AVX512BW-NEXT: vmovdqa64 %zmm13, %zmm0
10407 ; AVX512BW-NEXT: vpermt2q %zmm7, %zmm2, %zmm0
10408 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
10409 ; AVX512BW-NEXT: vmovdqa64 %zmm7, %zmm14
10410 ; AVX512BW-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm2, %zmm14 # 64-byte Folded Reload
10411 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm14 {%k1}
10412 ; AVX512BW-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10413 ; AVX512BW-NEXT: vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
10414 ; AVX512BW-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
10415 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} ymm15 = ymm23[1],ymm26[1],ymm23[3],ymm26[3]
10416 ; AVX512BW-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm15[2,3],ymm0[2,3]
10417 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm0, %zmm14, %zmm0
10418 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10419 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm23 # 64-byte Reload
10420 ; AVX512BW-NEXT: vpermt2q %zmm23, %zmm2, %zmm8
10421 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm29 # 64-byte Reload
10422 ; AVX512BW-NEXT: vmovdqa64 %zmm29, %zmm14
10423 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm26 # 64-byte Reload
10424 ; AVX512BW-NEXT: vpermt2q %zmm26, %zmm2, %zmm14
10425 ; AVX512BW-NEXT: vmovdqa64 %zmm8, %zmm14 {%k1}
10426 ; AVX512BW-NEXT: vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm30, %ymm0 # 32-byte Folded Reload
10427 ; AVX512BW-NEXT: # ymm0 = ymm30[1],mem[1],ymm30[3],mem[3]
10428 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} ymm15 = ymm16[1],ymm20[1],ymm16[3],ymm20[3]
10429 ; AVX512BW-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm15[2,3],ymm0[2,3]
10430 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm0, %zmm14, %zmm0
10431 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10432 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm30 # 64-byte Reload
10433 ; AVX512BW-NEXT: vmovdqa64 %zmm30, %zmm0
10434 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
10435 ; AVX512BW-NEXT: vpermt2q %zmm20, %zmm2, %zmm0
10436 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
10437 ; AVX512BW-NEXT: vmovdqa64 %zmm8, %zmm14
10438 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
10439 ; AVX512BW-NEXT: vpermt2q %zmm16, %zmm2, %zmm14
10440 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm14 {%k1}
10441 ; AVX512BW-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10442 ; AVX512BW-NEXT: vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
10443 ; AVX512BW-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
10444 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} ymm15 = ymm17[1],ymm21[1],ymm17[3],ymm21[3]
10445 ; AVX512BW-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm15[2,3],ymm0[2,3]
10446 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm0, %zmm14, %zmm0
10447 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10448 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm21 # 64-byte Reload
10449 ; AVX512BW-NEXT: vmovdqa64 %zmm21, %zmm0
10450 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
10451 ; AVX512BW-NEXT: vpermt2q %zmm17, %zmm2, %zmm0
10452 ; AVX512BW-NEXT: vmovdqa64 %zmm11, %zmm14
10453 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
10454 ; AVX512BW-NEXT: vpermt2q %zmm11, %zmm2, %zmm14
10455 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm14 {%k1}
10456 ; AVX512BW-NEXT: vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm25, %ymm0 # 32-byte Folded Reload
10457 ; AVX512BW-NEXT: # ymm0 = ymm25[1],mem[1],ymm25[3],mem[3]
10458 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} ymm15 = ymm22[1],ymm24[1],ymm22[3],ymm24[3]
10459 ; AVX512BW-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm15[2,3],ymm0[2,3]
10460 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm0, %zmm14, %zmm0
10461 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10462 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
10463 ; AVX512BW-NEXT: vmovdqa64 %zmm22, %zmm0
10464 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm25 # 64-byte Reload
10465 ; AVX512BW-NEXT: vpermt2q %zmm25, %zmm2, %zmm0
10466 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm24 # 64-byte Reload
10467 ; AVX512BW-NEXT: vmovdqa64 %zmm24, %zmm14
10468 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
10469 ; AVX512BW-NEXT: vpermt2q %zmm15, %zmm2, %zmm14
10470 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm14 {%k1}
10471 ; AVX512BW-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10472 ; AVX512BW-NEXT: vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
10473 ; AVX512BW-NEXT: # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
10474 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} ymm10 = ymm10[1],ymm31[1],ymm10[3],ymm31[3]
10475 ; AVX512BW-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm10[2,3],ymm0[2,3]
10476 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm0, %zmm14, %zmm0
10477 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10478 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
10479 ; AVX512BW-NEXT: vmovdqa64 %zmm31, %zmm0
10480 ; AVX512BW-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm2, %zmm0 # 64-byte Folded Reload
10481 ; AVX512BW-NEXT: vmovdqu64 (%rsp), %zmm10 # 64-byte Reload
10482 ; AVX512BW-NEXT: vpermt2q %zmm18, %zmm2, %zmm10
10483 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm10 {%k1}
10484 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} ymm0 = ymm19[1],ymm28[1],ymm19[3],ymm28[3]
10485 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} ymm6 = ymm6[1],ymm27[1],ymm6[3],ymm27[3]
10486 ; AVX512BW-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm6[2,3],ymm0[2,3]
10487 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm0, %zmm10, %zmm0
10488 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10489 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
10490 ; AVX512BW-NEXT: vmovdqa64 %zmm10, %zmm0
10491 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm18 # 64-byte Reload
10492 ; AVX512BW-NEXT: vpermt2q %zmm18, %zmm2, %zmm0
10493 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
10494 ; AVX512BW-NEXT: vpermi2q %zmm5, %zmm19, %zmm2
10495 ; AVX512BW-NEXT: vmovdqa64 %zmm5, %zmm28
10496 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm2 {%k1}
10497 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} ymm0 = ymm9[1],ymm12[1],ymm9[3],ymm12[3]
10498 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} ymm1 = ymm1[1],ymm4[1],ymm1[3],ymm4[3]
10499 ; AVX512BW-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
10500 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm0, %zmm2, %zmm0
10501 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10502 ; AVX512BW-NEXT: vbroadcasti32x4 {{.*#+}} zmm0 = [4,12,4,12,4,12,4,12]
10503 ; AVX512BW-NEXT: # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10504 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
10505 ; AVX512BW-NEXT: vpermt2q %zmm3, %zmm0, %zmm1
10506 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
10507 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm27 # 64-byte Reload
10508 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} zmm2 = zmm27[0],zmm12[0],zmm27[2],zmm12[2],zmm27[4],zmm12[4],zmm27[6],zmm12[6]
10509 ; AVX512BW-NEXT: vmovdqa64 %zmm1, %zmm2 {%k1}
10510 ; AVX512BW-NEXT: vmovdqa64 3136(%rdi), %zmm1
10511 ; AVX512BW-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10512 ; AVX512BW-NEXT: vmovdqa64 3072(%rdi), %zmm3
10513 ; AVX512BW-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10514 ; AVX512BW-NEXT: vpermt2q %zmm1, %zmm0, %zmm3
10515 ; AVX512BW-NEXT: vmovdqa64 3264(%rdi), %zmm5
10516 ; AVX512BW-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10517 ; AVX512BW-NEXT: vmovdqa64 3200(%rdi), %zmm4
10518 ; AVX512BW-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10519 ; AVX512BW-NEXT: vbroadcasti128 {{.*#+}} ymm1 = [4,12,4,12]
10520 ; AVX512BW-NEXT: # ymm1 = mem[0,1,0,1]
10521 ; AVX512BW-NEXT: vpermt2q %zmm5, %zmm1, %zmm4
10522 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm4[4,5,6,7]
10523 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm3, %zmm2, %zmm2
10524 ; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10525 ; AVX512BW-NEXT: vmovdqa64 %zmm13, %zmm6
10526 ; AVX512BW-NEXT: vmovdqa64 %zmm13, %zmm2
10527 ; AVX512BW-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm2 # 64-byte Folded Reload
10528 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
10529 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} zmm3 = zmm7[0],zmm13[0],zmm7[2],zmm13[2],zmm7[4],zmm13[4],zmm7[6],zmm13[6]
10530 ; AVX512BW-NEXT: vmovdqa64 %zmm2, %zmm3 {%k1}
10531 ; AVX512BW-NEXT: vmovdqa64 576(%rdi), %zmm5
10532 ; AVX512BW-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10533 ; AVX512BW-NEXT: vmovdqa64 512(%rdi), %zmm2
10534 ; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10535 ; AVX512BW-NEXT: vpermt2q %zmm5, %zmm0, %zmm2
10536 ; AVX512BW-NEXT: vmovdqa64 704(%rdi), %zmm5
10537 ; AVX512BW-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10538 ; AVX512BW-NEXT: vmovdqa64 640(%rdi), %zmm4
10539 ; AVX512BW-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10540 ; AVX512BW-NEXT: vpermt2q %zmm5, %zmm1, %zmm4
10541 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm4[4,5,6,7]
10542 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm2, %zmm3, %zmm2
10543 ; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10544 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10545 ; AVX512BW-NEXT: vpermt2q %zmm23, %zmm0, %zmm2
10546 ; AVX512BW-NEXT: vmovdqa64 %zmm23, %zmm7
10547 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} zmm3 = zmm29[0],zmm26[0],zmm29[2],zmm26[2],zmm29[4],zmm26[4],zmm29[6],zmm26[6]
10548 ; AVX512BW-NEXT: vmovdqa64 %zmm2, %zmm3 {%k1}
10549 ; AVX512BW-NEXT: vmovdqa64 64(%rdi), %zmm4
10550 ; AVX512BW-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10551 ; AVX512BW-NEXT: vmovdqa64 (%rdi), %zmm2
10552 ; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10553 ; AVX512BW-NEXT: vpermt2q %zmm4, %zmm0, %zmm2
10554 ; AVX512BW-NEXT: vmovdqa64 192(%rdi), %zmm23
10555 ; AVX512BW-NEXT: vmovdqa64 128(%rdi), %zmm5
10556 ; AVX512BW-NEXT: vmovdqa64 %zmm5, %zmm4
10557 ; AVX512BW-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10558 ; AVX512BW-NEXT: vpermt2q %zmm23, %zmm1, %zmm4
10559 ; AVX512BW-NEXT: vmovdqa64 %zmm23, %zmm26
10560 ; AVX512BW-NEXT: vmovdqu64 %zmm23, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10561 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm4[4,5,6,7]
10562 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm2, %zmm3, %zmm2
10563 ; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10564 ; AVX512BW-NEXT: vmovdqa64 %zmm30, %zmm2
10565 ; AVX512BW-NEXT: vpermt2q %zmm20, %zmm0, %zmm2
10566 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} zmm3 = zmm8[0],zmm16[0],zmm8[2],zmm16[2],zmm8[4],zmm16[4],zmm8[6],zmm16[6]
10567 ; AVX512BW-NEXT: vmovdqa64 %zmm2, %zmm3 {%k1}
10568 ; AVX512BW-NEXT: vmovdqa64 1600(%rdi), %zmm30
10569 ; AVX512BW-NEXT: vmovdqa64 1536(%rdi), %zmm2
10570 ; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10571 ; AVX512BW-NEXT: vpermt2q %zmm30, %zmm0, %zmm2
10572 ; AVX512BW-NEXT: vmovdqa64 1728(%rdi), %zmm20
10573 ; AVX512BW-NEXT: vmovdqa64 1664(%rdi), %zmm4
10574 ; AVX512BW-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10575 ; AVX512BW-NEXT: vpermt2q %zmm20, %zmm1, %zmm4
10576 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm4[4,5,6,7]
10577 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm2, %zmm3, %zmm2
10578 ; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10579 ; AVX512BW-NEXT: vmovdqa64 %zmm21, %zmm2
10580 ; AVX512BW-NEXT: vpermt2q %zmm17, %zmm0, %zmm2
10581 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
10582 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} zmm3 = zmm9[0],zmm11[0],zmm9[2],zmm11[2],zmm9[4],zmm11[4],zmm9[6],zmm11[6]
10583 ; AVX512BW-NEXT: vmovdqa64 %zmm2, %zmm3 {%k1}
10584 ; AVX512BW-NEXT: vmovdqa64 1088(%rdi), %zmm4
10585 ; AVX512BW-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10586 ; AVX512BW-NEXT: vmovdqa64 1024(%rdi), %zmm2
10587 ; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10588 ; AVX512BW-NEXT: vpermt2q %zmm4, %zmm0, %zmm2
10589 ; AVX512BW-NEXT: vmovdqa64 1216(%rdi), %zmm16
10590 ; AVX512BW-NEXT: vmovdqa64 1152(%rdi), %zmm4
10591 ; AVX512BW-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10592 ; AVX512BW-NEXT: vpermt2q %zmm16, %zmm1, %zmm4
10593 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm4[4,5,6,7]
10594 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm2, %zmm3, %zmm2
10595 ; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10596 ; AVX512BW-NEXT: vmovdqa64 %zmm22, %zmm2
10597 ; AVX512BW-NEXT: vpermt2q %zmm25, %zmm0, %zmm2
10598 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} zmm3 = zmm24[0],zmm15[0],zmm24[2],zmm15[2],zmm24[4],zmm15[4],zmm24[6],zmm15[6]
10599 ; AVX512BW-NEXT: vmovdqa64 %zmm2, %zmm3 {%k1}
10600 ; AVX512BW-NEXT: vmovdqa64 2624(%rdi), %zmm4
10601 ; AVX512BW-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10602 ; AVX512BW-NEXT: vmovdqa64 2560(%rdi), %zmm2
10603 ; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10604 ; AVX512BW-NEXT: vpermt2q %zmm4, %zmm0, %zmm2
10605 ; AVX512BW-NEXT: vmovdqa64 2752(%rdi), %zmm14
10606 ; AVX512BW-NEXT: vmovdqa64 2688(%rdi), %zmm4
10607 ; AVX512BW-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10608 ; AVX512BW-NEXT: vpermt2q %zmm14, %zmm1, %zmm4
10609 ; AVX512BW-NEXT: vmovdqa64 %zmm14, %zmm25
10610 ; AVX512BW-NEXT: vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10611 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm4[4,5,6,7]
10612 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm2, %zmm3, %zmm2
10613 ; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10614 ; AVX512BW-NEXT: vmovdqa64 2112(%rdi), %zmm3
10615 ; AVX512BW-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10616 ; AVX512BW-NEXT: vmovdqa64 2048(%rdi), %zmm2
10617 ; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10618 ; AVX512BW-NEXT: vpermt2q %zmm3, %zmm0, %zmm2
10619 ; AVX512BW-NEXT: vmovdqa64 2240(%rdi), %zmm4
10620 ; AVX512BW-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10621 ; AVX512BW-NEXT: vmovdqa64 2176(%rdi), %zmm3
10622 ; AVX512BW-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10623 ; AVX512BW-NEXT: vpermt2q %zmm4, %zmm1, %zmm3
10624 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
10625 ; AVX512BW-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm31 # 64-byte Folded Reload
10626 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
10627 ; AVX512BW-NEXT: vmovdqu64 (%rsp), %zmm4 # 64-byte Reload
10628 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} zmm4 = zmm4[0],zmm8[0],zmm4[2],zmm8[2],zmm4[4],zmm8[4],zmm4[6],zmm8[6]
10629 ; AVX512BW-NEXT: vmovdqa64 %zmm31, %zmm4 {%k1}
10630 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm2, %zmm4, %zmm2
10631 ; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10632 ; AVX512BW-NEXT: vpermt2q %zmm18, %zmm0, %zmm10
10633 ; AVX512BW-NEXT: vmovdqa64 3648(%rdi), %zmm4
10634 ; AVX512BW-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10635 ; AVX512BW-NEXT: vmovdqa64 3584(%rdi), %zmm3
10636 ; AVX512BW-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10637 ; AVX512BW-NEXT: vpermi2q %zmm4, %zmm3, %zmm0
10638 ; AVX512BW-NEXT: vmovdqa64 3776(%rdi), %zmm4
10639 ; AVX512BW-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10640 ; AVX512BW-NEXT: vmovdqa64 3712(%rdi), %zmm3
10641 ; AVX512BW-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10642 ; AVX512BW-NEXT: vpermi2q %zmm4, %zmm3, %zmm1
10643 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
10644 ; AVX512BW-NEXT: vmovdqa64 %zmm28, %zmm18
10645 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} zmm1 = zmm19[0],zmm28[0],zmm19[2],zmm28[2],zmm19[4],zmm28[4],zmm19[6],zmm28[6]
10646 ; AVX512BW-NEXT: vmovdqa64 %zmm10, %zmm1 {%k1}
10647 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm0, %zmm1, %zmm0
10648 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10649 ; AVX512BW-NEXT: vbroadcasti32x4 {{.*#+}} zmm0 = [5,13,5,13,5,13,5,13]
10650 ; AVX512BW-NEXT: # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10651 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10652 ; AVX512BW-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm2 # 64-byte Folded Reload
10653 ; AVX512BW-NEXT: vbroadcasti128 {{.*#+}} ymm1 = [5,13,5,13]
10654 ; AVX512BW-NEXT: # ymm1 = mem[0,1,0,1]
10655 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10656 ; AVX512BW-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm1, %zmm3 # 64-byte Folded Reload
10657 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
10658 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10659 ; AVX512BW-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm3 # 64-byte Folded Reload
10660 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} zmm4 = zmm27[1],zmm12[1],zmm27[3],zmm12[3],zmm27[5],zmm12[5],zmm27[7],zmm12[7]
10661 ; AVX512BW-NEXT: vmovdqa64 %zmm3, %zmm4 {%k1}
10662 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm2, %zmm4, %zmm2
10663 ; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10664 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10665 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm24 # 64-byte Reload
10666 ; AVX512BW-NEXT: vpermt2q %zmm24, %zmm0, %zmm2
10667 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10668 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
10669 ; AVX512BW-NEXT: vpermt2q %zmm28, %zmm1, %zmm3
10670 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
10671 ; AVX512BW-NEXT: vmovdqa64 %zmm6, %zmm3
10672 ; AVX512BW-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm3 # 64-byte Folded Reload
10673 ; AVX512BW-NEXT: vmovdqa64 %zmm13, %zmm23
10674 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
10675 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} zmm4 = zmm31[1],zmm13[1],zmm31[3],zmm13[3],zmm31[5],zmm13[5],zmm31[7],zmm13[7]
10676 ; AVX512BW-NEXT: vmovdqa64 %zmm3, %zmm4 {%k1}
10677 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm2, %zmm4, %zmm2
10678 ; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10679 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10680 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
10681 ; AVX512BW-NEXT: vpermt2q %zmm22, %zmm0, %zmm2
10682 ; AVX512BW-NEXT: vpermt2q %zmm26, %zmm1, %zmm5
10683 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm5[4,5,6,7]
10684 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10685 ; AVX512BW-NEXT: vpermt2q %zmm7, %zmm0, %zmm3
10686 ; AVX512BW-NEXT: vmovdqa64 %zmm29, %zmm14
10687 ; AVX512BW-NEXT: vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %zmm29, %zmm4 # 64-byte Folded Reload
10688 ; AVX512BW-NEXT: # zmm4 = zmm29[1],mem[1],zmm29[3],mem[3],zmm29[5],mem[5],zmm29[7],mem[7]
10689 ; AVX512BW-NEXT: vmovdqa64 %zmm3, %zmm4 {%k1}
10690 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm2, %zmm4, %zmm2
10691 ; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10692 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10693 ; AVX512BW-NEXT: vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10694 ; AVX512BW-NEXT: vpermt2q %zmm30, %zmm0, %zmm2
10695 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10696 ; AVX512BW-NEXT: vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10697 ; AVX512BW-NEXT: vpermt2q %zmm20, %zmm1, %zmm3
10698 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
10699 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10700 ; AVX512BW-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm3 # 64-byte Folded Reload
10701 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
10702 ; AVX512BW-NEXT: vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %zmm17, %zmm4 # 64-byte Folded Reload
10703 ; AVX512BW-NEXT: # zmm4 = zmm17[1],mem[1],zmm17[3],mem[3],zmm17[5],mem[5],zmm17[7],mem[7]
10704 ; AVX512BW-NEXT: vmovdqa64 %zmm3, %zmm4 {%k1}
10705 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm2, %zmm4, %zmm2
10706 ; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10707 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10708 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
10709 ; AVX512BW-NEXT: vpermt2q %zmm19, %zmm0, %zmm2
10710 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
10711 ; AVX512BW-NEXT: vmovdqa64 %zmm15, %zmm3
10712 ; AVX512BW-NEXT: vmovdqa64 %zmm16, %zmm29
10713 ; AVX512BW-NEXT: vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10714 ; AVX512BW-NEXT: vpermt2q %zmm16, %zmm1, %zmm3
10715 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
10716 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10717 ; AVX512BW-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm3 # 64-byte Folded Reload
10718 ; AVX512BW-NEXT: vmovdqa64 %zmm11, %zmm16
10719 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} zmm4 = zmm9[1],zmm11[1],zmm9[3],zmm11[3],zmm9[5],zmm11[5],zmm9[7],zmm11[7]
10720 ; AVX512BW-NEXT: vmovdqa64 %zmm3, %zmm4 {%k1}
10721 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm2, %zmm4, %zmm2
10722 ; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10723 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
10724 ; AVX512BW-NEXT: vmovdqa64 %zmm11, %zmm2
10725 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
10726 ; AVX512BW-NEXT: vpermt2q %zmm12, %zmm0, %zmm2
10727 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
10728 ; AVX512BW-NEXT: vmovdqa64 %zmm13, %zmm3
10729 ; AVX512BW-NEXT: vpermt2q %zmm25, %zmm1, %zmm3
10730 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
10731 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10732 ; AVX512BW-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm3 # 64-byte Folded Reload
10733 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
10734 ; AVX512BW-NEXT: vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %zmm4, %zmm4 # 64-byte Folded Reload
10735 ; AVX512BW-NEXT: # zmm4 = zmm4[1],mem[1],zmm4[3],mem[3],zmm4[5],mem[5],zmm4[7],mem[7]
10736 ; AVX512BW-NEXT: vmovdqa64 %zmm3, %zmm4 {%k1}
10737 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm2, %zmm4, %zmm2
10738 ; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10739 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10740 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
10741 ; AVX512BW-NEXT: vpermt2q %zmm7, %zmm0, %zmm2
10742 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
10743 ; AVX512BW-NEXT: vmovdqa64 %zmm9, %zmm3
10744 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
10745 ; AVX512BW-NEXT: vpermt2q %zmm10, %zmm1, %zmm3
10746 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
10747 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm26 # 64-byte Reload
10748 ; AVX512BW-NEXT: vmovdqa64 %zmm26, %zmm3
10749 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm21 # 64-byte Reload
10750 ; AVX512BW-NEXT: vpermt2q %zmm21, %zmm0, %zmm3
10751 ; AVX512BW-NEXT: vmovdqu64 (%rsp), %zmm4 # 64-byte Reload
10752 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} zmm4 = zmm4[1],zmm8[1],zmm4[3],zmm8[3],zmm4[5],zmm8[5],zmm4[7],zmm8[7]
10753 ; AVX512BW-NEXT: vmovdqa64 %zmm3, %zmm4 {%k1}
10754 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm2, %zmm4, %zmm2
10755 ; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10756 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10757 ; AVX512BW-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm2 # 64-byte Folded Reload
10758 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
10759 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10760 ; AVX512BW-NEXT: vpermi2q %zmm6, %zmm3, %zmm0
10761 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
10762 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
10763 ; AVX512BW-NEXT: vpermi2q %zmm4, %zmm5, %zmm1
10764 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
10765 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm25 # 64-byte Reload
10766 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} zmm1 = zmm25[1],zmm18[1],zmm25[3],zmm18[3],zmm25[5],zmm18[5],zmm25[7],zmm18[7]
10767 ; AVX512BW-NEXT: vmovdqa64 %zmm2, %zmm1 {%k1}
10768 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm0, %zmm1, %zmm0
10769 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10770 ; AVX512BW-NEXT: vbroadcasti32x4 {{.*#+}} zmm0 = [6,14,6,14,6,14,6,14]
10771 ; AVX512BW-NEXT: # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10772 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10773 ; AVX512BW-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm2 # 64-byte Folded Reload
10774 ; AVX512BW-NEXT: vbroadcasti128 {{.*#+}} ymm1 = [6,14,6,14]
10775 ; AVX512BW-NEXT: # ymm1 = mem[0,1,0,1]
10776 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10777 ; AVX512BW-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm1, %zmm3 # 64-byte Folded Reload
10778 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
10779 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10780 ; AVX512BW-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm3 # 64-byte Folded Reload
10781 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm27 # 64-byte Reload
10782 ; AVX512BW-NEXT: vpunpcklqdq {{[-0-9]+}}(%r{{[sb]}}p), %zmm27, %zmm3 {%k1} # 64-byte Folded Reload
10783 ; AVX512BW-NEXT: # zmm3 {%k1} = zmm27[0],mem[0],zmm27[2],mem[2],zmm27[4],mem[4],zmm27[6],mem[6]
10784 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm2, %zmm3, %zmm2
10785 ; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10786 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10787 ; AVX512BW-NEXT: vpermt2q %zmm24, %zmm0, %zmm2
10788 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10789 ; AVX512BW-NEXT: vpermt2q %zmm28, %zmm1, %zmm3
10790 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
10791 ; AVX512BW-NEXT: vpermt2q %zmm23, %zmm0, %zmm31
10792 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm24 # 64-byte Reload
10793 ; AVX512BW-NEXT: vpunpcklqdq {{[-0-9]+}}(%r{{[sb]}}p), %zmm24, %zmm31 {%k1} # 64-byte Folded Reload
10794 ; AVX512BW-NEXT: # zmm31 {%k1} = zmm24[0],mem[0],zmm24[2],mem[2],zmm24[4],mem[4],zmm24[6],mem[6]
10795 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm2, %zmm31, %zmm2
10796 ; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10797 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10798 ; AVX512BW-NEXT: vpermt2q %zmm22, %zmm0, %zmm2
10799 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10800 ; AVX512BW-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm1, %zmm3 # 64-byte Folded Reload
10801 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
10802 ; AVX512BW-NEXT: vmovdqa64 %zmm14, %zmm3
10803 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
10804 ; AVX512BW-NEXT: vpermt2q %zmm22, %zmm0, %zmm3
10805 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
10806 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
10807 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} zmm3 {%k1} = zmm14[0],zmm28[0],zmm14[2],zmm28[2],zmm14[4],zmm28[4],zmm14[6],zmm28[6]
10808 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm2, %zmm3, %zmm2
10809 ; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10810 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10811 ; AVX512BW-NEXT: vpermt2q %zmm30, %zmm0, %zmm2
10812 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10813 ; AVX512BW-NEXT: vpermt2q %zmm20, %zmm1, %zmm3
10814 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
10815 ; AVX512BW-NEXT: vmovdqa64 %zmm17, %zmm3
10816 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
10817 ; AVX512BW-NEXT: vpermt2q %zmm17, %zmm0, %zmm3
10818 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm30 # 64-byte Reload
10819 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm27 # 64-byte Reload
10820 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} zmm3 {%k1} = zmm30[0],zmm27[0],zmm30[2],zmm27[2],zmm30[4],zmm27[4],zmm30[6],zmm27[6]
10821 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm2, %zmm3, %zmm2
10822 ; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10823 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10824 ; AVX512BW-NEXT: vpermt2q %zmm19, %zmm0, %zmm2
10825 ; AVX512BW-NEXT: vpermt2q %zmm29, %zmm1, %zmm15
10826 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm15[4,5,6,7]
10827 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
10828 ; AVX512BW-NEXT: vmovdqa64 %zmm20, %zmm3
10829 ; AVX512BW-NEXT: vpermt2q %zmm16, %zmm0, %zmm3
10830 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
10831 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
10832 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} zmm3 {%k1} = zmm31[0],zmm16[0],zmm31[2],zmm16[2],zmm31[4],zmm16[4],zmm31[6],zmm16[6]
10833 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm2, %zmm3, %zmm2
10834 ; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10835 ; AVX512BW-NEXT: vpermt2q %zmm12, %zmm0, %zmm11
10836 ; AVX512BW-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm1, %zmm13 # 64-byte Folded Reload
10837 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm2 = ymm11[0,1,2,3],ymm13[4,5,6,7]
10838 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
10839 ; AVX512BW-NEXT: vmovdqa64 %zmm11, %zmm3
10840 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
10841 ; AVX512BW-NEXT: vpermt2q %zmm13, %zmm0, %zmm3
10842 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
10843 ; AVX512BW-NEXT: vpunpcklqdq {{[-0-9]+}}(%r{{[sb]}}p), %zmm12, %zmm3 {%k1} # 64-byte Folded Reload
10844 ; AVX512BW-NEXT: # zmm3 {%k1} = zmm12[0],mem[0],zmm12[2],mem[2],zmm12[4],mem[4],zmm12[6],mem[6]
10845 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm2, %zmm3, %zmm2
10846 ; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10847 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10848 ; AVX512BW-NEXT: vpermt2q %zmm7, %zmm0, %zmm2
10849 ; AVX512BW-NEXT: vpermt2q %zmm10, %zmm1, %zmm9
10850 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm9[4,5,6,7]
10851 ; AVX512BW-NEXT: vmovdqu64 (%rsp), %zmm10 # 64-byte Reload
10852 ; AVX512BW-NEXT: vmovdqa64 %zmm10, %zmm3
10853 ; AVX512BW-NEXT: vpermt2q %zmm8, %zmm0, %zmm3
10854 ; AVX512BW-NEXT: vmovdqa64 %zmm8, %zmm7
10855 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} zmm3 {%k1} = zmm26[0],zmm21[0],zmm26[2],zmm21[2],zmm26[4],zmm21[4],zmm26[6],zmm21[6]
10856 ; AVX512BW-NEXT: vmovdqa64 %zmm21, %zmm8
10857 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm2, %zmm3, %zmm2
10858 ; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10859 ; AVX512BW-NEXT: vmovdqa64 %zmm25, %zmm2
10860 ; AVX512BW-NEXT: vpermt2q %zmm18, %zmm0, %zmm2
10861 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10862 ; AVX512BW-NEXT: vpermi2q %zmm6, %zmm3, %zmm0
10863 ; AVX512BW-NEXT: vpermi2q %zmm4, %zmm5, %zmm1
10864 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
10865 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
10866 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
10867 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} zmm2 {%k1} = zmm9[0],zmm5[0],zmm9[2],zmm5[2],zmm9[4],zmm5[4],zmm9[6],zmm5[6]
10868 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm0, %zmm2, %zmm0
10869 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10870 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
10871 ; AVX512BW-NEXT: vmovdqa64 %zmm1, %zmm6
10872 ; AVX512BW-NEXT: vmovdqa64 %zmm1, %zmm0
10873 ; AVX512BW-NEXT: vbroadcasti32x4 {{.*#+}} zmm4 = [7,15,7,15,7,15,7,15]
10874 ; AVX512BW-NEXT: # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10875 ; AVX512BW-NEXT: vmovdqa64 %zmm23, %zmm2
10876 ; AVX512BW-NEXT: vpermt2q %zmm23, %zmm4, %zmm1
10877 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10878 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} zmm1 {%k1} = zmm24[1],zmm3[1],zmm24[3],zmm3[3],zmm24[5],zmm3[5],zmm24[7],zmm3[7]
10879 ; AVX512BW-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10880 ; AVX512BW-NEXT: vmovdqa64 %zmm24, %zmm1
10881 ; AVX512BW-NEXT: vbroadcasti32x4 {{.*#+}} zmm14 = [0,8,0,8,0,8,0,8]
10882 ; AVX512BW-NEXT: # zmm14 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10883 ; AVX512BW-NEXT: vpermt2q %zmm3, %zmm14, %zmm24
10884 ; AVX512BW-NEXT: vmovdqu64 %zmm24, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10885 ; AVX512BW-NEXT: vbroadcasti32x4 {{.*#+}} zmm23 = [1,9,1,9,1,9,1,9]
10886 ; AVX512BW-NEXT: # zmm23 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10887 ; AVX512BW-NEXT: vpermt2q %zmm3, %zmm23, %zmm1
10888 ; AVX512BW-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10889 ; AVX512BW-NEXT: vpermt2q %zmm2, %zmm14, %zmm6
10890 ; AVX512BW-NEXT: vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10891 ; AVX512BW-NEXT: vpermt2q %zmm2, %zmm23, %zmm0
10892 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10893 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10894 ; AVX512BW-NEXT: vmovdqa64 %zmm2, %zmm24
10895 ; AVX512BW-NEXT: vmovdqa64 %zmm2, %zmm1
10896 ; AVX512BW-NEXT: vpermt2q %zmm22, %zmm4, %zmm2
10897 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
10898 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} zmm2 {%k1} = zmm15[1],zmm28[1],zmm15[3],zmm28[3],zmm15[5],zmm28[5],zmm15[7],zmm28[7]
10899 ; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10900 ; AVX512BW-NEXT: vmovdqa64 %zmm15, %zmm6
10901 ; AVX512BW-NEXT: vpermt2q %zmm28, %zmm14, %zmm15
10902 ; AVX512BW-NEXT: vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10903 ; AVX512BW-NEXT: vpermt2q %zmm28, %zmm23, %zmm6
10904 ; AVX512BW-NEXT: vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10905 ; AVX512BW-NEXT: vpermt2q %zmm22, %zmm14, %zmm24
10906 ; AVX512BW-NEXT: vpermt2q %zmm22, %zmm23, %zmm1
10907 ; AVX512BW-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10908 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
10909 ; AVX512BW-NEXT: vmovdqa64 %zmm19, %zmm29
10910 ; AVX512BW-NEXT: vmovdqa64 %zmm19, %zmm0
10911 ; AVX512BW-NEXT: vpermt2q %zmm17, %zmm4, %zmm19
10912 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} zmm19 {%k1} = zmm30[1],zmm27[1],zmm30[3],zmm27[3],zmm30[5],zmm27[5],zmm30[7],zmm27[7]
10913 ; AVX512BW-NEXT: vmovdqa64 %zmm30, %zmm1
10914 ; AVX512BW-NEXT: vpermt2q %zmm27, %zmm14, %zmm30
10915 ; AVX512BW-NEXT: vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10916 ; AVX512BW-NEXT: vpermt2q %zmm27, %zmm23, %zmm1
10917 ; AVX512BW-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10918 ; AVX512BW-NEXT: vpermt2q %zmm17, %zmm14, %zmm29
10919 ; AVX512BW-NEXT: vpermt2q %zmm17, %zmm23, %zmm0
10920 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10921 ; AVX512BW-NEXT: vmovdqa64 %zmm20, %zmm28
10922 ; AVX512BW-NEXT: vmovdqa64 %zmm20, %zmm3
10923 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
10924 ; AVX512BW-NEXT: vpermt2q %zmm1, %zmm4, %zmm20
10925 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} zmm20 {%k1} = zmm31[1],zmm16[1],zmm31[3],zmm16[3],zmm31[5],zmm16[5],zmm31[7],zmm16[7]
10926 ; AVX512BW-NEXT: vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10927 ; AVX512BW-NEXT: vmovdqa64 %zmm31, %zmm2
10928 ; AVX512BW-NEXT: vmovdqa64 %zmm31, %zmm17
10929 ; AVX512BW-NEXT: vpermt2q %zmm16, %zmm14, %zmm17
10930 ; AVX512BW-NEXT: vpermt2q %zmm16, %zmm23, %zmm2
10931 ; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10932 ; AVX512BW-NEXT: vpermt2q %zmm1, %zmm14, %zmm28
10933 ; AVX512BW-NEXT: vpermt2q %zmm1, %zmm23, %zmm3
10934 ; AVX512BW-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10935 ; AVX512BW-NEXT: vmovdqa64 %zmm11, %zmm21
10936 ; AVX512BW-NEXT: vmovdqa64 %zmm11, %zmm31
10937 ; AVX512BW-NEXT: vpermt2q %zmm13, %zmm4, %zmm11
10938 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10939 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10940 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} zmm11 {%k1} = zmm3[1],zmm0[1],zmm3[3],zmm0[3],zmm3[5],zmm0[5],zmm3[7],zmm0[7]
10941 ; AVX512BW-NEXT: vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10942 ; AVX512BW-NEXT: vmovdqa64 %zmm3, %zmm2
10943 ; AVX512BW-NEXT: vpermt2q %zmm0, %zmm14, %zmm3
10944 ; AVX512BW-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10945 ; AVX512BW-NEXT: vpermt2q %zmm0, %zmm23, %zmm2
10946 ; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10947 ; AVX512BW-NEXT: vpermt2q %zmm13, %zmm14, %zmm21
10948 ; AVX512BW-NEXT: vpermt2q %zmm13, %zmm23, %zmm31
10949 ; AVX512BW-NEXT: vmovdqa64 %zmm10, %zmm2
10950 ; AVX512BW-NEXT: vmovdqa64 %zmm10, %zmm20
10951 ; AVX512BW-NEXT: vmovdqa64 %zmm10, %zmm25
10952 ; AVX512BW-NEXT: vpermt2q %zmm7, %zmm4, %zmm2
10953 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} zmm2 {%k1} = zmm26[1],zmm8[1],zmm26[3],zmm8[3],zmm26[5],zmm8[5],zmm26[7],zmm8[7]
10954 ; AVX512BW-NEXT: vmovdqu64 %zmm2, (%rsp) # 64-byte Spill
10955 ; AVX512BW-NEXT: vmovdqa64 %zmm26, %zmm2
10956 ; AVX512BW-NEXT: vpermt2q %zmm8, %zmm14, %zmm26
10957 ; AVX512BW-NEXT: vpermt2q %zmm8, %zmm23, %zmm2
10958 ; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10959 ; AVX512BW-NEXT: vpermt2q %zmm7, %zmm14, %zmm20
10960 ; AVX512BW-NEXT: vpermt2q %zmm7, %zmm23, %zmm25
10961 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
10962 ; AVX512BW-NEXT: vmovdqa64 %zmm6, %zmm0
10963 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10964 ; AVX512BW-NEXT: vpermt2q %zmm3, %zmm14, %zmm0
10965 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10966 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm30 # 64-byte Reload
10967 ; AVX512BW-NEXT: vmovdqa64 %zmm30, %zmm16
10968 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm27 # 64-byte Reload
10969 ; AVX512BW-NEXT: vpermt2q %zmm27, %zmm14, %zmm16
10970 ; AVX512BW-NEXT: vmovdqa64 %zmm9, %zmm0
10971 ; AVX512BW-NEXT: vpermt2q %zmm5, %zmm14, %zmm0
10972 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10973 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10974 ; AVX512BW-NEXT: vpermi2q %zmm18, %zmm0, %zmm14
10975 ; AVX512BW-NEXT: vmovdqa64 %zmm6, %zmm2
10976 ; AVX512BW-NEXT: vpermt2q %zmm3, %zmm23, %zmm2
10977 ; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10978 ; AVX512BW-NEXT: vmovdqa64 %zmm30, %zmm22
10979 ; AVX512BW-NEXT: vpermt2q %zmm27, %zmm23, %zmm22
10980 ; AVX512BW-NEXT: vmovdqa64 %zmm9, %zmm2
10981 ; AVX512BW-NEXT: vpermt2q %zmm5, %zmm23, %zmm2
10982 ; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10983 ; AVX512BW-NEXT: vpermi2q %zmm18, %zmm0, %zmm23
10984 ; AVX512BW-NEXT: vpermt2q %zmm18, %zmm4, %zmm0
10985 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} zmm0 {%k1} = zmm9[1],zmm5[1],zmm9[3],zmm5[3],zmm9[5],zmm5[5],zmm9[7],zmm5[7]
10986 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm18
10987 ; AVX512BW-NEXT: vpermt2q %zmm27, %zmm4, %zmm30
10988 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} zmm30 {%k1} = zmm6[1],zmm3[1],zmm6[3],zmm3[3],zmm6[5],zmm3[5],zmm6[7],zmm3[7]
10989 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
10990 ; AVX512BW-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm4, %zmm7 # 64-byte Folded Reload
10991 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
10992 ; AVX512BW-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm4, %zmm8 # 64-byte Folded Reload
10993 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
10994 ; AVX512BW-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm4, %zmm10 # 64-byte Folded Reload
10995 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
10996 ; AVX512BW-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm4, %zmm11 # 64-byte Folded Reload
10997 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
10998 ; AVX512BW-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm4, %zmm12 # 64-byte Folded Reload
10999 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
11000 ; AVX512BW-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm4, %zmm13 # 64-byte Folded Reload
11001 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11002 ; AVX512BW-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm4, %zmm0 # 64-byte Folded Reload
11003 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11004 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
11005 ; AVX512BW-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm4, %zmm15 # 64-byte Folded Reload
11006 ; AVX512BW-NEXT: vbroadcasti128 {{.*#+}} ymm0 = [7,15,7,15]
11007 ; AVX512BW-NEXT: # ymm0 = mem[0,1,0,1]
11008 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
11009 ; AVX512BW-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm9 # 64-byte Folded Reload
11010 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
11011 ; AVX512BW-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm1 # 64-byte Folded Reload
11012 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11013 ; AVX512BW-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm2 # 64-byte Folded Reload
11014 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
11015 ; AVX512BW-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm3 # 64-byte Folded Reload
11016 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
11017 ; AVX512BW-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm4 # 64-byte Folded Reload
11018 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
11019 ; AVX512BW-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm5 # 64-byte Folded Reload
11020 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
11021 ; AVX512BW-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm6 # 64-byte Folded Reload
11022 ; AVX512BW-NEXT: vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11023 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
11024 ; AVX512BW-NEXT: vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm6 # 64-byte Folded Reload
11025 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm0 = ymm7[0,1,2,3],ymm9[4,5,6,7]
11026 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
11027 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm0, %zmm7, %zmm0
11028 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11029 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm0 = ymm8[0,1,2,3],ymm1[4,5,6,7]
11030 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
11031 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm0, %zmm1, %zmm0
11032 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11033 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm2[4,5,6,7]
11034 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm0, %zmm19, %zmm0
11035 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11036 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm0 = ymm11[0,1,2,3],ymm3[4,5,6,7]
11037 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
11038 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm0, %zmm1, %zmm11
11039 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm0 = ymm12[0,1,2,3],ymm4[4,5,6,7]
11040 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
11041 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm0, %zmm1, %zmm0
11042 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11043 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm0 = ymm13[0,1,2,3],ymm5[4,5,6,7]
11044 ; AVX512BW-NEXT: vmovdqu64 (%rsp), %zmm1 # 64-byte Reload
11045 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm0, %zmm1, %zmm0
11046 ; AVX512BW-NEXT: vmovdqu64 %zmm0, (%rsp) # 64-byte Spill
11047 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11048 ; AVX512BW-NEXT: vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
11049 ; AVX512BW-NEXT: # ymm0 = ymm0[0,1,2,3],mem[4,5,6,7]
11050 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm0, %zmm18, %zmm0
11051 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11052 ; AVX512BW-NEXT: vpblendd {{.*#+}} ymm0 = ymm15[0,1,2,3],ymm6[4,5,6,7]
11053 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm0, %zmm30, %zmm0
11054 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11055 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11056 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm24 {%k1}
11057 ; AVX512BW-NEXT: vmovdqa 64(%rdi), %xmm0
11058 ; AVX512BW-NEXT: vinserti128 $1, 192(%rdi), %ymm0, %ymm0
11059 ; AVX512BW-NEXT: vmovdqa (%rdi), %xmm15
11060 ; AVX512BW-NEXT: vinserti128 $1, 128(%rdi), %ymm15, %ymm15
11061 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} ymm30 = ymm15[0],ymm0[0],ymm15[2],ymm0[2]
11062 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm30, %zmm24, %zmm1
11063 ; AVX512BW-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11064 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
11065 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11066 ; AVX512BW-NEXT: vmovdqa64 %zmm2, %zmm1 {%k1}
11067 ; AVX512BW-NEXT: vmovdqa64 576(%rdi), %xmm24
11068 ; AVX512BW-NEXT: vinserti32x4 $1, 704(%rdi), %ymm24, %ymm30
11069 ; AVX512BW-NEXT: vmovdqa64 512(%rdi), %xmm24
11070 ; AVX512BW-NEXT: vinserti32x4 $1, 640(%rdi), %ymm24, %ymm24
11071 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} ymm27 = ymm24[0],ymm30[0],ymm24[2],ymm30[2]
11072 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm27, %zmm1, %zmm1
11073 ; AVX512BW-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11074 ; AVX512BW-NEXT: vmovdqa64 %zmm17, %zmm28 {%k1}
11075 ; AVX512BW-NEXT: vmovdqa 1088(%rdi), %xmm9
11076 ; AVX512BW-NEXT: vinserti32x4 $1, 1216(%rdi), %ymm9, %ymm27
11077 ; AVX512BW-NEXT: vmovdqa 1024(%rdi), %xmm9
11078 ; AVX512BW-NEXT: vinserti128 $1, 1152(%rdi), %ymm9, %ymm9
11079 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} ymm4 = ymm9[0],ymm27[0],ymm9[2],ymm27[2]
11080 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm4, %zmm28, %zmm1
11081 ; AVX512BW-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11082 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
11083 ; AVX512BW-NEXT: vmovdqa64 %zmm1, %zmm29 {%k1}
11084 ; AVX512BW-NEXT: vmovdqa 1600(%rdi), %xmm4
11085 ; AVX512BW-NEXT: vinserti128 $1, 1728(%rdi), %ymm4, %ymm4
11086 ; AVX512BW-NEXT: vmovdqa64 1536(%rdi), %xmm17
11087 ; AVX512BW-NEXT: vinserti32x4 $1, 1664(%rdi), %ymm17, %ymm17
11088 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} ymm19 = ymm17[0],ymm4[0],ymm17[2],ymm4[2]
11089 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm19, %zmm29, %zmm13
11090 ; AVX512BW-NEXT: vmovdqa64 %zmm26, %zmm20 {%k1}
11091 ; AVX512BW-NEXT: vmovdqa64 2112(%rdi), %xmm19
11092 ; AVX512BW-NEXT: vinserti32x4 $1, 2240(%rdi), %ymm19, %ymm19
11093 ; AVX512BW-NEXT: vmovdqa64 2048(%rdi), %xmm26
11094 ; AVX512BW-NEXT: vinserti32x4 $1, 2176(%rdi), %ymm26, %ymm26
11095 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} ymm29 = ymm26[0],ymm19[0],ymm26[2],ymm19[2]
11096 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm29, %zmm20, %zmm5
11097 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
11098 ; AVX512BW-NEXT: vmovdqa64 %zmm1, %zmm21 {%k1}
11099 ; AVX512BW-NEXT: vmovdqa 2624(%rdi), %xmm12
11100 ; AVX512BW-NEXT: vinserti128 $1, 2752(%rdi), %ymm12, %ymm12
11101 ; AVX512BW-NEXT: vmovdqa64 2560(%rdi), %xmm29
11102 ; AVX512BW-NEXT: vinserti32x4 $1, 2688(%rdi), %ymm29, %ymm29
11103 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} ymm18 = ymm29[0],ymm12[0],ymm29[2],ymm12[2]
11104 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm18, %zmm21, %zmm18
11105 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
11106 ; AVX512BW-NEXT: vmovdqa64 %zmm1, %zmm16 {%k1}
11107 ; AVX512BW-NEXT: vmovdqa 3136(%rdi), %xmm6
11108 ; AVX512BW-NEXT: vinserti128 $1, 3264(%rdi), %ymm6, %ymm6
11109 ; AVX512BW-NEXT: vmovdqa64 3072(%rdi), %xmm20
11110 ; AVX512BW-NEXT: vinserti32x4 $1, 3200(%rdi), %ymm20, %ymm20
11111 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} ymm21 = ymm20[0],ymm6[0],ymm20[2],ymm6[2]
11112 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm21, %zmm16, %zmm2
11113 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
11114 ; AVX512BW-NEXT: vmovdqa64 %zmm1, %zmm14 {%k1}
11115 ; AVX512BW-NEXT: vmovdqa 3648(%rdi), %xmm7
11116 ; AVX512BW-NEXT: vinserti128 $1, 3776(%rdi), %ymm7, %ymm7
11117 ; AVX512BW-NEXT: vmovdqa64 3584(%rdi), %xmm21
11118 ; AVX512BW-NEXT: vinserti32x4 $1, 3712(%rdi), %ymm21, %ymm21
11119 ; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} ymm28 = ymm21[0],ymm7[0],ymm21[2],ymm7[2]
11120 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm28, %zmm14, %zmm1
11121 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
11122 ; AVX512BW-NEXT: vmovdqa64 %zmm3, %zmm22 {%k1}
11123 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} ymm6 = ymm20[1],ymm6[1],ymm20[3],ymm6[3]
11124 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm6, %zmm22, %zmm3
11125 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
11126 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
11127 ; AVX512BW-NEXT: vmovdqa64 %zmm6, %zmm8 {%k1}
11128 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} ymm6 = ymm24[1],ymm30[1],ymm24[3],ymm30[3]
11129 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm6, %zmm8, %zmm6
11130 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
11131 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
11132 ; AVX512BW-NEXT: vmovdqa64 %zmm10, %zmm8 {%k1}
11133 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} ymm0 = ymm15[1],ymm0[1],ymm15[3],ymm0[3]
11134 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm0, %zmm8, %zmm0
11135 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
11136 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
11137 ; AVX512BW-NEXT: vmovdqa64 %zmm10, %zmm8 {%k1}
11138 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} ymm4 = ymm17[1],ymm4[1],ymm17[3],ymm4[3]
11139 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm4, %zmm8, %zmm4
11140 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
11141 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
11142 ; AVX512BW-NEXT: vmovdqa64 %zmm8, %zmm10 {%k1}
11143 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} ymm8 = ymm9[1],ymm27[1],ymm9[3],ymm27[3]
11144 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm8, %zmm10, %zmm8
11145 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
11146 ; AVX512BW-NEXT: vmovdqa64 %zmm9, %zmm31 {%k1}
11147 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} ymm9 = ymm29[1],ymm12[1],ymm29[3],ymm12[3]
11148 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm9, %zmm31, %zmm9
11149 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
11150 ; AVX512BW-NEXT: vmovdqa64 %zmm10, %zmm25 {%k1}
11151 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} ymm10 = ymm26[1],ymm19[1],ymm26[3],ymm19[3]
11152 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm10, %zmm25, %zmm10
11153 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
11154 ; AVX512BW-NEXT: vmovdqa64 %zmm12, %zmm23 {%k1}
11155 ; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} ymm7 = ymm21[1],ymm7[1],ymm21[3],ymm7[3]
11156 ; AVX512BW-NEXT: vinserti64x4 $0, %ymm7, %zmm23, %zmm7
11157 ; AVX512BW-NEXT: vmovdqa64 %zmm1, 448(%rsi)
11158 ; AVX512BW-NEXT: vmovdqa64 %zmm2, 384(%rsi)
11159 ; AVX512BW-NEXT: vmovdqa64 %zmm18, 320(%rsi)
11160 ; AVX512BW-NEXT: vmovdqa64 %zmm5, 256(%rsi)
11161 ; AVX512BW-NEXT: vmovdqa64 %zmm13, 192(%rsi)
11162 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
11163 ; AVX512BW-NEXT: vmovaps %zmm1, 128(%rsi)
11164 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
11165 ; AVX512BW-NEXT: vmovaps %zmm1, 64(%rsi)
11166 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
11167 ; AVX512BW-NEXT: vmovaps %zmm1, (%rsi)
11168 ; AVX512BW-NEXT: vmovdqa64 %zmm7, 448(%rdx)
11169 ; AVX512BW-NEXT: vmovdqa64 %zmm10, 256(%rdx)
11170 ; AVX512BW-NEXT: vmovdqa64 %zmm9, 320(%rdx)
11171 ; AVX512BW-NEXT: vmovdqa64 %zmm8, 128(%rdx)
11172 ; AVX512BW-NEXT: vmovdqa64 %zmm4, 192(%rdx)
11173 ; AVX512BW-NEXT: vmovdqa64 %zmm0, (%rdx)
11174 ; AVX512BW-NEXT: vmovdqa64 %zmm6, 64(%rdx)
11175 ; AVX512BW-NEXT: vmovdqa64 %zmm3, 384(%rdx)
11176 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11177 ; AVX512BW-NEXT: vmovaps %zmm0, 448(%rcx)
11178 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11179 ; AVX512BW-NEXT: vmovaps %zmm0, 256(%rcx)
11180 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11181 ; AVX512BW-NEXT: vmovaps %zmm0, 320(%rcx)
11182 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11183 ; AVX512BW-NEXT: vmovaps %zmm0, 128(%rcx)
11184 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11185 ; AVX512BW-NEXT: vmovaps %zmm0, 192(%rcx)
11186 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11187 ; AVX512BW-NEXT: vmovaps %zmm0, (%rcx)
11188 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11189 ; AVX512BW-NEXT: vmovaps %zmm0, 64(%rcx)
11190 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11191 ; AVX512BW-NEXT: vmovaps %zmm0, 384(%rcx)
11192 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11193 ; AVX512BW-NEXT: vmovaps %zmm0, 448(%r8)
11194 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11195 ; AVX512BW-NEXT: vmovaps %zmm0, 256(%r8)
11196 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11197 ; AVX512BW-NEXT: vmovaps %zmm0, 320(%r8)
11198 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11199 ; AVX512BW-NEXT: vmovaps %zmm0, 128(%r8)
11200 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11201 ; AVX512BW-NEXT: vmovaps %zmm0, 192(%r8)
11202 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11203 ; AVX512BW-NEXT: vmovaps %zmm0, (%r8)
11204 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11205 ; AVX512BW-NEXT: vmovaps %zmm0, 64(%r8)
11206 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11207 ; AVX512BW-NEXT: vmovaps %zmm0, 384(%r8)
11208 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11209 ; AVX512BW-NEXT: vmovaps %zmm0, 448(%r9)
11210 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11211 ; AVX512BW-NEXT: vmovaps %zmm0, 256(%r9)
11212 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11213 ; AVX512BW-NEXT: vmovaps %zmm0, 320(%r9)
11214 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11215 ; AVX512BW-NEXT: vmovaps %zmm0, 128(%r9)
11216 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11217 ; AVX512BW-NEXT: vmovaps %zmm0, 192(%r9)
11218 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11219 ; AVX512BW-NEXT: vmovaps %zmm0, (%r9)
11220 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11221 ; AVX512BW-NEXT: vmovaps %zmm0, 64(%r9)
11222 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11223 ; AVX512BW-NEXT: vmovaps %zmm0, 384(%r9)
11224 ; AVX512BW-NEXT: movq {{[0-9]+}}(%rsp), %rax
11225 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11226 ; AVX512BW-NEXT: vmovaps %zmm0, 448(%rax)
11227 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11228 ; AVX512BW-NEXT: vmovaps %zmm0, 256(%rax)
11229 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11230 ; AVX512BW-NEXT: vmovaps %zmm0, 320(%rax)
11231 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11232 ; AVX512BW-NEXT: vmovaps %zmm0, 128(%rax)
11233 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11234 ; AVX512BW-NEXT: vmovaps %zmm0, 192(%rax)
11235 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11236 ; AVX512BW-NEXT: vmovaps %zmm0, (%rax)
11237 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11238 ; AVX512BW-NEXT: vmovaps %zmm0, 64(%rax)
11239 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11240 ; AVX512BW-NEXT: vmovaps %zmm0, 384(%rax)
11241 ; AVX512BW-NEXT: movq {{[0-9]+}}(%rsp), %rax
11242 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11243 ; AVX512BW-NEXT: vmovaps %zmm0, 448(%rax)
11244 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11245 ; AVX512BW-NEXT: vmovaps %zmm0, 256(%rax)
11246 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11247 ; AVX512BW-NEXT: vmovaps %zmm0, 320(%rax)
11248 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11249 ; AVX512BW-NEXT: vmovaps %zmm0, 128(%rax)
11250 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11251 ; AVX512BW-NEXT: vmovaps %zmm0, 192(%rax)
11252 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11253 ; AVX512BW-NEXT: vmovaps %zmm0, (%rax)
11254 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11255 ; AVX512BW-NEXT: vmovaps %zmm0, 64(%rax)
11256 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11257 ; AVX512BW-NEXT: vmovaps %zmm0, 384(%rax)
11258 ; AVX512BW-NEXT: movq {{[0-9]+}}(%rsp), %rax
11259 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11260 ; AVX512BW-NEXT: vmovaps %zmm0, 384(%rax)
11261 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11262 ; AVX512BW-NEXT: vmovaps %zmm0, 448(%rax)
11263 ; AVX512BW-NEXT: vmovups (%rsp), %zmm0 # 64-byte Reload
11264 ; AVX512BW-NEXT: vmovaps %zmm0, 256(%rax)
11265 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11266 ; AVX512BW-NEXT: vmovaps %zmm0, 320(%rax)
11267 ; AVX512BW-NEXT: vmovdqa64 %zmm11, 128(%rax)
11268 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11269 ; AVX512BW-NEXT: vmovaps %zmm0, 192(%rax)
11270 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11271 ; AVX512BW-NEXT: vmovaps %zmm0, (%rax)
11272 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11273 ; AVX512BW-NEXT: vmovaps %zmm0, 64(%rax)
11274 ; AVX512BW-NEXT: addq $6600, %rsp # imm = 0x19C8
11275 ; AVX512BW-NEXT: vzeroupper
11276 ; AVX512BW-NEXT: retq
11277 %wide.vec = load <512 x i64>, ptr %in.vec, align 64
11278 %strided.vec0 = shufflevector <512 x i64> %wide.vec, <512 x i64> poison, <64 x i32> <i32 0, i32 8, i32 16, i32 24, i32 32, i32 40, i32 48, i32 56, i32 64, i32 72, i32 80, i32 88, i32 96, i32 104, i32 112, i32 120, i32 128, i32 136, i32 144, i32 152, i32 160, i32 168, i32 176, i32 184, i32 192, i32 200, i32 208, i32 216, i32 224, i32 232, i32 240, i32 248, i32 256, i32 264, i32 272, i32 280, i32 288, i32 296, i32 304, i32 312, i32 320, i32 328, i32 336, i32 344, i32 352, i32 360, i32 368, i32 376, i32 384, i32 392, i32 400, i32 408, i32 416, i32 424, i32 432, i32 440, i32 448, i32 456, i32 464, i32 472, i32 480, i32 488, i32 496, i32 504>
11279 %strided.vec1 = shufflevector <512 x i64> %wide.vec, <512 x i64> poison, <64 x i32> <i32 1, i32 9, i32 17, i32 25, i32 33, i32 41, i32 49, i32 57, i32 65, i32 73, i32 81, i32 89, i32 97, i32 105, i32 113, i32 121, i32 129, i32 137, i32 145, i32 153, i32 161, i32 169, i32 177, i32 185, i32 193, i32 201, i32 209, i32 217, i32 225, i32 233, i32 241, i32 249, i32 257, i32 265, i32 273, i32 281, i32 289, i32 297, i32 305, i32 313, i32 321, i32 329, i32 337, i32 345, i32 353, i32 361, i32 369, i32 377, i32 385, i32 393, i32 401, i32 409, i32 417, i32 425, i32 433, i32 441, i32 449, i32 457, i32 465, i32 473, i32 481, i32 489, i32 497, i32 505>
11280 %strided.vec2 = shufflevector <512 x i64> %wide.vec, <512 x i64> poison, <64 x i32> <i32 2, i32 10, i32 18, i32 26, i32 34, i32 42, i32 50, i32 58, i32 66, i32 74, i32 82, i32 90, i32 98, i32 106, i32 114, i32 122, i32 130, i32 138, i32 146, i32 154, i32 162, i32 170, i32 178, i32 186, i32 194, i32 202, i32 210, i32 218, i32 226, i32 234, i32 242, i32 250, i32 258, i32 266, i32 274, i32 282, i32 290, i32 298, i32 306, i32 314, i32 322, i32 330, i32 338, i32 346, i32 354, i32 362, i32 370, i32 378, i32 386, i32 394, i32 402, i32 410, i32 418, i32 426, i32 434, i32 442, i32 450, i32 458, i32 466, i32 474, i32 482, i32 490, i32 498, i32 506>
11281 %strided.vec3 = shufflevector <512 x i64> %wide.vec, <512 x i64> poison, <64 x i32> <i32 3, i32 11, i32 19, i32 27, i32 35, i32 43, i32 51, i32 59, i32 67, i32 75, i32 83, i32 91, i32 99, i32 107, i32 115, i32 123, i32 131, i32 139, i32 147, i32 155, i32 163, i32 171, i32 179, i32 187, i32 195, i32 203, i32 211, i32 219, i32 227, i32 235, i32 243, i32 251, i32 259, i32 267, i32 275, i32 283, i32 291, i32 299, i32 307, i32 315, i32 323, i32 331, i32 339, i32 347, i32 355, i32 363, i32 371, i32 379, i32 387, i32 395, i32 403, i32 411, i32 419, i32 427, i32 435, i32 443, i32 451, i32 459, i32 467, i32 475, i32 483, i32 491, i32 499, i32 507>
11282 %strided.vec4 = shufflevector <512 x i64> %wide.vec, <512 x i64> poison, <64 x i32> <i32 4, i32 12, i32 20, i32 28, i32 36, i32 44, i32 52, i32 60, i32 68, i32 76, i32 84, i32 92, i32 100, i32 108, i32 116, i32 124, i32 132, i32 140, i32 148, i32 156, i32 164, i32 172, i32 180, i32 188, i32 196, i32 204, i32 212, i32 220, i32 228, i32 236, i32 244, i32 252, i32 260, i32 268, i32 276, i32 284, i32 292, i32 300, i32 308, i32 316, i32 324, i32 332, i32 340, i32 348, i32 356, i32 364, i32 372, i32 380, i32 388, i32 396, i32 404, i32 412, i32 420, i32 428, i32 436, i32 444, i32 452, i32 460, i32 468, i32 476, i32 484, i32 492, i32 500, i32 508>
11283 %strided.vec5 = shufflevector <512 x i64> %wide.vec, <512 x i64> poison, <64 x i32> <i32 5, i32 13, i32 21, i32 29, i32 37, i32 45, i32 53, i32 61, i32 69, i32 77, i32 85, i32 93, i32 101, i32 109, i32 117, i32 125, i32 133, i32 141, i32 149, i32 157, i32 165, i32 173, i32 181, i32 189, i32 197, i32 205, i32 213, i32 221, i32 229, i32 237, i32 245, i32 253, i32 261, i32 269, i32 277, i32 285, i32 293, i32 301, i32 309, i32 317, i32 325, i32 333, i32 341, i32 349, i32 357, i32 365, i32 373, i32 381, i32 389, i32 397, i32 405, i32 413, i32 421, i32 429, i32 437, i32 445, i32 453, i32 461, i32 469, i32 477, i32 485, i32 493, i32 501, i32 509>
11284 %strided.vec6 = shufflevector <512 x i64> %wide.vec, <512 x i64> poison, <64 x i32> <i32 6, i32 14, i32 22, i32 30, i32 38, i32 46, i32 54, i32 62, i32 70, i32 78, i32 86, i32 94, i32 102, i32 110, i32 118, i32 126, i32 134, i32 142, i32 150, i32 158, i32 166, i32 174, i32 182, i32 190, i32 198, i32 206, i32 214, i32 222, i32 230, i32 238, i32 246, i32 254, i32 262, i32 270, i32 278, i32 286, i32 294, i32 302, i32 310, i32 318, i32 326, i32 334, i32 342, i32 350, i32 358, i32 366, i32 374, i32 382, i32 390, i32 398, i32 406, i32 414, i32 422, i32 430, i32 438, i32 446, i32 454, i32 462, i32 470, i32 478, i32 486, i32 494, i32 502, i32 510>
11285 %strided.vec7 = shufflevector <512 x i64> %wide.vec, <512 x i64> poison, <64 x i32> <i32 7, i32 15, i32 23, i32 31, i32 39, i32 47, i32 55, i32 63, i32 71, i32 79, i32 87, i32 95, i32 103, i32 111, i32 119, i32 127, i32 135, i32 143, i32 151, i32 159, i32 167, i32 175, i32 183, i32 191, i32 199, i32 207, i32 215, i32 223, i32 231, i32 239, i32 247, i32 255, i32 263, i32 271, i32 279, i32 287, i32 295, i32 303, i32 311, i32 319, i32 327, i32 335, i32 343, i32 351, i32 359, i32 367, i32 375, i32 383, i32 391, i32 399, i32 407, i32 415, i32 423, i32 431, i32 439, i32 447, i32 455, i32 463, i32 471, i32 479, i32 487, i32 495, i32 503, i32 511>
11286 store <64 x i64> %strided.vec0, ptr %out.vec0, align 64
11287 store <64 x i64> %strided.vec1, ptr %out.vec1, align 64
11288 store <64 x i64> %strided.vec2, ptr %out.vec2, align 64
11289 store <64 x i64> %strided.vec3, ptr %out.vec3, align 64
11290 store <64 x i64> %strided.vec4, ptr %out.vec4, align 64
11291 store <64 x i64> %strided.vec5, ptr %out.vec5, align 64
11292 store <64 x i64> %strided.vec6, ptr %out.vec6, align 64
11293 store <64 x i64> %strided.vec7, ptr %out.vec7, align 64
11296 ;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
11300 ; AVX2-FAST: {{.*}}
11301 ; AVX2-FAST-PERLANE: {{.*}}
11302 ; AVX2-SLOW: {{.*}}
11303 ; AVX512-FAST: {{.*}}
11304 ; AVX512-SLOW: {{.*}}
11305 ; AVX512BW-FAST: {{.*}}
11306 ; AVX512BW-ONLY-FAST: {{.*}}
11307 ; AVX512BW-ONLY-SLOW: {{.*}}
11308 ; AVX512BW-SLOW: {{.*}}
11309 ; AVX512DQ-FAST: {{.*}}
11310 ; AVX512DQ-SLOW: {{.*}}
11311 ; AVX512DQBW-FAST: {{.*}}
11312 ; AVX512DQBW-SLOW: {{.*}}
11313 ; AVX512F-FAST: {{.*}}
11314 ; AVX512F-ONLY-FAST: {{.*}}
11315 ; AVX512F-ONLY-SLOW: {{.*}}
11316 ; AVX512F-SLOW: {{.*}}
11317 ; FALLBACK0: {{.*}}
11318 ; FALLBACK1: {{.*}}
11319 ; FALLBACK10: {{.*}}
11320 ; FALLBACK11: {{.*}}
11321 ; FALLBACK12: {{.*}}
11322 ; FALLBACK2: {{.*}}
11323 ; FALLBACK3: {{.*}}
11324 ; FALLBACK4: {{.*}}
11325 ; FALLBACK5: {{.*}}
11326 ; FALLBACK6: {{.*}}
11327 ; FALLBACK7: {{.*}}
11328 ; FALLBACK8: {{.*}}
11329 ; FALLBACK9: {{.*}}