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 stores.
18 define void @store_i64_stride4_vf2(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %out.vec) nounwind {
19 ; SSE-LABEL: store_i64_stride4_vf2:
21 ; SSE-NEXT: movaps (%rdi), %xmm0
22 ; SSE-NEXT: movaps (%rsi), %xmm1
23 ; SSE-NEXT: movaps (%rdx), %xmm2
24 ; SSE-NEXT: movaps (%rcx), %xmm3
25 ; SSE-NEXT: movaps %xmm0, %xmm4
26 ; SSE-NEXT: movlhps {{.*#+}} xmm4 = xmm4[0],xmm1[0]
27 ; SSE-NEXT: movaps %xmm2, %xmm5
28 ; SSE-NEXT: movlhps {{.*#+}} xmm5 = xmm5[0],xmm3[0]
29 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm3[1]
30 ; SSE-NEXT: unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]
31 ; SSE-NEXT: movaps %xmm0, 32(%r8)
32 ; SSE-NEXT: movaps %xmm2, 48(%r8)
33 ; SSE-NEXT: movaps %xmm5, 16(%r8)
34 ; SSE-NEXT: movaps %xmm4, (%r8)
37 ; AVX1-ONLY-LABEL: store_i64_stride4_vf2:
39 ; AVX1-ONLY-NEXT: vmovaps (%rdi), %xmm0
40 ; AVX1-ONLY-NEXT: vmovaps (%rsi), %xmm1
41 ; AVX1-ONLY-NEXT: vinsertf128 $1, (%rcx), %ymm1, %ymm1
42 ; AVX1-ONLY-NEXT: vinsertf128 $1, (%rdx), %ymm0, %ymm0
43 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
44 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
45 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 32(%r8)
46 ; AVX1-ONLY-NEXT: vmovaps %ymm2, (%r8)
47 ; AVX1-ONLY-NEXT: vzeroupper
48 ; AVX1-ONLY-NEXT: retq
50 ; AVX2-ONLY-LABEL: store_i64_stride4_vf2:
52 ; AVX2-ONLY-NEXT: vmovaps (%rdi), %xmm0
53 ; AVX2-ONLY-NEXT: vmovaps (%rdx), %xmm1
54 ; AVX2-ONLY-NEXT: vinsertf128 $1, (%rsi), %ymm0, %ymm0
55 ; AVX2-ONLY-NEXT: vinsertf128 $1, (%rcx), %ymm1, %ymm1
56 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
57 ; AVX2-ONLY-NEXT: vpermpd {{.*#+}} ymm2 = ymm2[0,2,1,3]
58 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
59 ; AVX2-ONLY-NEXT: vpermpd {{.*#+}} ymm0 = ymm0[0,2,1,3]
60 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 32(%r8)
61 ; AVX2-ONLY-NEXT: vmovaps %ymm2, (%r8)
62 ; AVX2-ONLY-NEXT: vzeroupper
63 ; AVX2-ONLY-NEXT: retq
65 ; AVX512-LABEL: store_i64_stride4_vf2:
67 ; AVX512-NEXT: vmovaps (%rdi), %xmm0
68 ; AVX512-NEXT: vmovaps (%rdx), %xmm1
69 ; AVX512-NEXT: vinsertf128 $1, (%rcx), %ymm1, %ymm1
70 ; AVX512-NEXT: vinsertf128 $1, (%rsi), %ymm0, %ymm0
71 ; AVX512-NEXT: vinsertf64x4 $1, %ymm1, %zmm0, %zmm0
72 ; AVX512-NEXT: vmovaps {{.*#+}} zmm1 = [0,2,4,6,1,3,5,7]
73 ; AVX512-NEXT: vpermpd %zmm0, %zmm1, %zmm0
74 ; AVX512-NEXT: vmovaps %zmm0, (%r8)
75 ; AVX512-NEXT: vzeroupper
77 %in.vec0 = load <2 x i64>, ptr %in.vecptr0, align 64
78 %in.vec1 = load <2 x i64>, ptr %in.vecptr1, align 64
79 %in.vec2 = load <2 x i64>, ptr %in.vecptr2, align 64
80 %in.vec3 = load <2 x i64>, ptr %in.vecptr3, align 64
81 %1 = shufflevector <2 x i64> %in.vec0, <2 x i64> %in.vec1, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
82 %2 = shufflevector <2 x i64> %in.vec2, <2 x i64> %in.vec3, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
83 %3 = shufflevector <4 x i64> %1, <4 x i64> %2, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
84 %interleaved.vec = shufflevector <8 x i64> %3, <8 x i64> poison, <8 x i32> <i32 0, i32 2, i32 4, i32 6, i32 1, i32 3, i32 5, i32 7>
85 store <8 x i64> %interleaved.vec, ptr %out.vec, align 64
89 define void @store_i64_stride4_vf4(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %out.vec) nounwind {
90 ; SSE-LABEL: store_i64_stride4_vf4:
92 ; SSE-NEXT: movaps (%rdi), %xmm0
93 ; SSE-NEXT: movaps 16(%rdi), %xmm1
94 ; SSE-NEXT: movaps (%rsi), %xmm2
95 ; SSE-NEXT: movaps 16(%rsi), %xmm3
96 ; SSE-NEXT: movaps (%rdx), %xmm4
97 ; SSE-NEXT: movaps 16(%rdx), %xmm5
98 ; SSE-NEXT: movaps (%rcx), %xmm6
99 ; SSE-NEXT: movaps 16(%rcx), %xmm7
100 ; SSE-NEXT: movaps %xmm4, %xmm8
101 ; SSE-NEXT: movlhps {{.*#+}} xmm8 = xmm8[0],xmm6[0]
102 ; SSE-NEXT: movaps %xmm0, %xmm9
103 ; SSE-NEXT: movlhps {{.*#+}} xmm9 = xmm9[0],xmm2[0]
104 ; SSE-NEXT: unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm6[1]
105 ; SSE-NEXT: unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
106 ; SSE-NEXT: movaps %xmm5, %xmm2
107 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm7[0]
108 ; SSE-NEXT: movaps %xmm1, %xmm6
109 ; SSE-NEXT: movlhps {{.*#+}} xmm6 = xmm6[0],xmm3[0]
110 ; SSE-NEXT: unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm7[1]
111 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm3[1]
112 ; SSE-NEXT: movaps %xmm1, 96(%r8)
113 ; SSE-NEXT: movaps %xmm5, 112(%r8)
114 ; SSE-NEXT: movaps %xmm6, 64(%r8)
115 ; SSE-NEXT: movaps %xmm2, 80(%r8)
116 ; SSE-NEXT: movaps %xmm0, 32(%r8)
117 ; SSE-NEXT: movaps %xmm4, 48(%r8)
118 ; SSE-NEXT: movaps %xmm9, (%r8)
119 ; SSE-NEXT: movaps %xmm8, 16(%r8)
122 ; AVX1-ONLY-LABEL: store_i64_stride4_vf4:
123 ; AVX1-ONLY: # %bb.0:
124 ; AVX1-ONLY-NEXT: vmovaps (%rdi), %ymm0
125 ; AVX1-ONLY-NEXT: vmovaps (%rsi), %ymm1
126 ; AVX1-ONLY-NEXT: vinsertf128 $1, (%rdx), %ymm0, %ymm2
127 ; AVX1-ONLY-NEXT: vinsertf128 $1, (%rcx), %ymm1, %ymm3
128 ; AVX1-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],mem[2,3]
129 ; AVX1-ONLY-NEXT: vperm2f128 {{.*#+}} ymm1 = ymm1[2,3],mem[2,3]
130 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
131 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
132 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
133 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
134 ; AVX1-ONLY-NEXT: vmovaps %ymm5, 64(%r8)
135 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 96(%r8)
136 ; AVX1-ONLY-NEXT: vmovaps %ymm2, 32(%r8)
137 ; AVX1-ONLY-NEXT: vmovaps %ymm4, (%r8)
138 ; AVX1-ONLY-NEXT: vzeroupper
139 ; AVX1-ONLY-NEXT: retq
141 ; AVX2-ONLY-LABEL: store_i64_stride4_vf4:
142 ; AVX2-ONLY: # %bb.0:
143 ; AVX2-ONLY-NEXT: vmovaps (%rdi), %ymm0
144 ; AVX2-ONLY-NEXT: vmovaps (%rsi), %ymm1
145 ; AVX2-ONLY-NEXT: vmovaps (%rdx), %ymm2
146 ; AVX2-ONLY-NEXT: vmovaps (%rcx), %ymm3
147 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm0[0,1],ymm2[0,1]
148 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm5 = ymm1[0,1],ymm3[0,1]
149 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]
150 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm1 = ymm1[2,3],ymm3[2,3]
151 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm4[0],ymm5[0],ymm4[2],ymm5[2]
152 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm3 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
153 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm4 = ymm4[1],ymm5[1],ymm4[3],ymm5[3]
154 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
155 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 96(%r8)
156 ; AVX2-ONLY-NEXT: vmovaps %ymm3, 64(%r8)
157 ; AVX2-ONLY-NEXT: vmovaps %ymm4, 32(%r8)
158 ; AVX2-ONLY-NEXT: vmovaps %ymm2, (%r8)
159 ; AVX2-ONLY-NEXT: vzeroupper
160 ; AVX2-ONLY-NEXT: retq
162 ; AVX512-SLOW-LABEL: store_i64_stride4_vf4:
163 ; AVX512-SLOW: # %bb.0:
164 ; AVX512-SLOW-NEXT: vmovdqa (%rdi), %ymm0
165 ; AVX512-SLOW-NEXT: vmovdqa (%rsi), %ymm1
166 ; AVX512-SLOW-NEXT: vmovdqa (%rdx), %ymm2
167 ; AVX512-SLOW-NEXT: vmovdqa (%rcx), %ymm3
168 ; AVX512-SLOW-NEXT: vperm2i128 {{.*#+}} ymm4 = ymm0[0,1],ymm2[0,1]
169 ; AVX512-SLOW-NEXT: vperm2i128 {{.*#+}} ymm5 = ymm1[0,1],ymm3[0,1]
170 ; AVX512-SLOW-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]
171 ; AVX512-SLOW-NEXT: vperm2i128 {{.*#+}} ymm1 = ymm1[2,3],ymm3[2,3]
172 ; AVX512-SLOW-NEXT: vpunpcklqdq {{.*#+}} ymm2 = ymm4[0],ymm5[0],ymm4[2],ymm5[2]
173 ; AVX512-SLOW-NEXT: vpunpcklqdq {{.*#+}} ymm3 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
174 ; AVX512-SLOW-NEXT: vpunpckhqdq {{.*#+}} ymm4 = ymm4[1],ymm5[1],ymm4[3],ymm5[3]
175 ; AVX512-SLOW-NEXT: vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
176 ; AVX512-SLOW-NEXT: vinserti64x4 $1, %ymm4, %zmm2, %zmm1
177 ; AVX512-SLOW-NEXT: vinserti64x4 $1, %ymm0, %zmm3, %zmm0
178 ; AVX512-SLOW-NEXT: vmovdqa64 %zmm0, 64(%r8)
179 ; AVX512-SLOW-NEXT: vmovdqa64 %zmm1, (%r8)
180 ; AVX512-SLOW-NEXT: vzeroupper
181 ; AVX512-SLOW-NEXT: retq
183 ; AVX512-FAST-LABEL: store_i64_stride4_vf4:
184 ; AVX512-FAST: # %bb.0:
185 ; AVX512-FAST-NEXT: vmovdqa (%rdi), %ymm0
186 ; AVX512-FAST-NEXT: vmovdqa (%rsi), %ymm1
187 ; AVX512-FAST-NEXT: vmovdqa (%rdx), %ymm2
188 ; AVX512-FAST-NEXT: vmovdqa (%rcx), %ymm3
189 ; AVX512-FAST-NEXT: vperm2i128 {{.*#+}} ymm4 = ymm0[0,1],ymm2[0,1]
190 ; AVX512-FAST-NEXT: vperm2i128 {{.*#+}} ymm5 = ymm1[0,1],ymm3[0,1]
191 ; AVX512-FAST-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]
192 ; AVX512-FAST-NEXT: vperm2i128 {{.*#+}} ymm1 = ymm1[2,3],ymm3[2,3]
193 ; AVX512-FAST-NEXT: vmovdqa64 {{.*#+}} zmm2 = [0,8,2,10,1,9,3,11]
194 ; AVX512-FAST-NEXT: vpermt2q %zmm5, %zmm2, %zmm4
195 ; AVX512-FAST-NEXT: vpermt2q %zmm1, %zmm2, %zmm0
196 ; AVX512-FAST-NEXT: vmovdqa64 %zmm0, 64(%r8)
197 ; AVX512-FAST-NEXT: vmovdqa64 %zmm4, (%r8)
198 ; AVX512-FAST-NEXT: vzeroupper
199 ; AVX512-FAST-NEXT: retq
200 %in.vec0 = load <4 x i64>, ptr %in.vecptr0, align 64
201 %in.vec1 = load <4 x i64>, ptr %in.vecptr1, align 64
202 %in.vec2 = load <4 x i64>, ptr %in.vecptr2, align 64
203 %in.vec3 = load <4 x i64>, ptr %in.vecptr3, align 64
204 %1 = shufflevector <4 x i64> %in.vec0, <4 x i64> %in.vec1, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
205 %2 = shufflevector <4 x i64> %in.vec2, <4 x i64> %in.vec3, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
206 %3 = shufflevector <8 x i64> %1, <8 x i64> %2, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
207 %interleaved.vec = shufflevector <16 x i64> %3, <16 x i64> poison, <16 x i32> <i32 0, i32 4, i32 8, i32 12, i32 1, i32 5, i32 9, i32 13, i32 2, i32 6, i32 10, i32 14, i32 3, i32 7, i32 11, i32 15>
208 store <16 x i64> %interleaved.vec, ptr %out.vec, align 64
212 define void @store_i64_stride4_vf8(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %out.vec) nounwind {
213 ; SSE-LABEL: store_i64_stride4_vf8:
215 ; SSE-NEXT: movaps (%rdi), %xmm5
216 ; SSE-NEXT: movaps 16(%rdi), %xmm1
217 ; SSE-NEXT: movaps 32(%rdi), %xmm3
218 ; SSE-NEXT: movaps 48(%rdi), %xmm0
219 ; SSE-NEXT: movaps (%rsi), %xmm10
220 ; SSE-NEXT: movaps 16(%rsi), %xmm14
221 ; SSE-NEXT: movaps 32(%rsi), %xmm11
222 ; SSE-NEXT: movaps (%rdx), %xmm2
223 ; SSE-NEXT: movaps 16(%rdx), %xmm4
224 ; SSE-NEXT: movaps 32(%rdx), %xmm7
225 ; SSE-NEXT: movaps 48(%rdx), %xmm9
226 ; SSE-NEXT: movaps (%rcx), %xmm8
227 ; SSE-NEXT: movaps 16(%rcx), %xmm13
228 ; SSE-NEXT: movaps 32(%rcx), %xmm15
229 ; SSE-NEXT: movaps 48(%rcx), %xmm12
230 ; SSE-NEXT: movaps %xmm2, %xmm6
231 ; SSE-NEXT: movlhps {{.*#+}} xmm6 = xmm6[0],xmm8[0]
232 ; SSE-NEXT: movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
233 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm8[1]
234 ; SSE-NEXT: movaps %xmm5, %xmm8
235 ; SSE-NEXT: movlhps {{.*#+}} xmm8 = xmm8[0],xmm10[0]
236 ; SSE-NEXT: unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm10[1]
237 ; SSE-NEXT: movaps %xmm4, %xmm10
238 ; SSE-NEXT: movlhps {{.*#+}} xmm10 = xmm10[0],xmm13[0]
239 ; SSE-NEXT: unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm13[1]
240 ; SSE-NEXT: movaps %xmm1, %xmm13
241 ; SSE-NEXT: movlhps {{.*#+}} xmm13 = xmm13[0],xmm14[0]
242 ; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm14[1]
243 ; SSE-NEXT: movaps %xmm7, %xmm14
244 ; SSE-NEXT: movlhps {{.*#+}} xmm14 = xmm14[0],xmm15[0]
245 ; SSE-NEXT: unpckhpd {{.*#+}} xmm7 = xmm7[1],xmm15[1]
246 ; SSE-NEXT: movaps %xmm3, %xmm15
247 ; SSE-NEXT: movlhps {{.*#+}} xmm15 = xmm15[0],xmm11[0]
248 ; SSE-NEXT: unpckhpd {{.*#+}} xmm3 = xmm3[1],xmm11[1]
249 ; SSE-NEXT: movaps %xmm9, %xmm11
250 ; SSE-NEXT: movlhps {{.*#+}} xmm11 = xmm11[0],xmm12[0]
251 ; SSE-NEXT: unpckhpd {{.*#+}} xmm9 = xmm9[1],xmm12[1]
252 ; SSE-NEXT: movaps 48(%rsi), %xmm12
253 ; SSE-NEXT: movaps %xmm0, %xmm6
254 ; SSE-NEXT: movlhps {{.*#+}} xmm6 = xmm6[0],xmm12[0]
255 ; SSE-NEXT: unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm12[1]
256 ; SSE-NEXT: movaps %xmm0, 224(%r8)
257 ; SSE-NEXT: movaps %xmm9, 240(%r8)
258 ; SSE-NEXT: movaps %xmm6, 192(%r8)
259 ; SSE-NEXT: movaps %xmm11, 208(%r8)
260 ; SSE-NEXT: movaps %xmm3, 160(%r8)
261 ; SSE-NEXT: movaps %xmm7, 176(%r8)
262 ; SSE-NEXT: movaps %xmm15, 128(%r8)
263 ; SSE-NEXT: movaps %xmm14, 144(%r8)
264 ; SSE-NEXT: movaps %xmm1, 96(%r8)
265 ; SSE-NEXT: movaps %xmm4, 112(%r8)
266 ; SSE-NEXT: movaps %xmm13, 64(%r8)
267 ; SSE-NEXT: movaps %xmm10, 80(%r8)
268 ; SSE-NEXT: movaps %xmm5, 32(%r8)
269 ; SSE-NEXT: movaps %xmm2, 48(%r8)
270 ; SSE-NEXT: movaps %xmm8, (%r8)
271 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
272 ; SSE-NEXT: movaps %xmm0, 16(%r8)
275 ; AVX1-ONLY-LABEL: store_i64_stride4_vf8:
276 ; AVX1-ONLY: # %bb.0:
277 ; AVX1-ONLY-NEXT: vmovaps (%rdx), %ymm2
278 ; AVX1-ONLY-NEXT: vmovaps 32(%rdx), %ymm1
279 ; AVX1-ONLY-NEXT: vmovaps (%rcx), %ymm3
280 ; AVX1-ONLY-NEXT: vmovaps 32(%rcx), %ymm4
281 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm4[0],ymm1[2],ymm4[2]
282 ; AVX1-ONLY-NEXT: vmovaps 48(%rsi), %xmm5
283 ; AVX1-ONLY-NEXT: vmovaps 48(%rdi), %xmm6
284 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm7 = xmm6[0],xmm5[0]
285 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm7[0,1,2,3],ymm0[4,5,6,7]
286 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm4[1],ymm1[3],ymm4[3]
287 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm4 = xmm6[1],xmm5[1]
288 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm1 = ymm4[0,1,2,3],ymm1[4,5,6,7]
289 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
290 ; AVX1-ONLY-NEXT: vmovaps 16(%rsi), %xmm5
291 ; AVX1-ONLY-NEXT: vmovaps 16(%rdi), %xmm6
292 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm7 = xmm6[0],xmm5[0]
293 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm4 = ymm7[0,1,2,3],ymm4[4,5,6,7]
294 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
295 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm3 = xmm6[1],xmm5[1]
296 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
297 ; AVX1-ONLY-NEXT: vmovaps 32(%rsi), %xmm3
298 ; AVX1-ONLY-NEXT: vmovaps 32(%rdi), %xmm5
299 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm6 = xmm5[0],xmm3[0]
300 ; AVX1-ONLY-NEXT: vmovaps 32(%rcx), %xmm7
301 ; AVX1-ONLY-NEXT: vmovaps 32(%rdx), %xmm8
302 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm9 = xmm8[0],xmm7[0]
303 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm3 = xmm5[1],xmm3[1]
304 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm5 = xmm8[1],xmm7[1]
305 ; AVX1-ONLY-NEXT: vmovaps (%rsi), %xmm7
306 ; AVX1-ONLY-NEXT: vmovaps (%rdi), %xmm8
307 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm10 = xmm8[0],xmm7[0]
308 ; AVX1-ONLY-NEXT: vmovaps (%rcx), %xmm11
309 ; AVX1-ONLY-NEXT: vmovaps (%rdx), %xmm12
310 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm13 = xmm12[0],xmm11[0]
311 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm7 = xmm8[1],xmm7[1]
312 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm8 = xmm12[1],xmm11[1]
313 ; AVX1-ONLY-NEXT: vmovaps %xmm8, 48(%r8)
314 ; AVX1-ONLY-NEXT: vmovaps %xmm7, 32(%r8)
315 ; AVX1-ONLY-NEXT: vmovaps %xmm13, 16(%r8)
316 ; AVX1-ONLY-NEXT: vmovaps %xmm10, (%r8)
317 ; AVX1-ONLY-NEXT: vmovaps %xmm5, 176(%r8)
318 ; AVX1-ONLY-NEXT: vmovaps %xmm3, 160(%r8)
319 ; AVX1-ONLY-NEXT: vmovaps %xmm9, 144(%r8)
320 ; AVX1-ONLY-NEXT: vmovaps %xmm6, 128(%r8)
321 ; AVX1-ONLY-NEXT: vmovaps %ymm2, 96(%r8)
322 ; AVX1-ONLY-NEXT: vmovaps %ymm4, 64(%r8)
323 ; AVX1-ONLY-NEXT: vmovaps %ymm1, 224(%r8)
324 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 192(%r8)
325 ; AVX1-ONLY-NEXT: vzeroupper
326 ; AVX1-ONLY-NEXT: retq
328 ; AVX2-ONLY-LABEL: store_i64_stride4_vf8:
329 ; AVX2-ONLY: # %bb.0:
330 ; AVX2-ONLY-NEXT: vmovaps (%rdi), %ymm0
331 ; AVX2-ONLY-NEXT: vmovaps 32(%rdi), %ymm1
332 ; AVX2-ONLY-NEXT: vmovaps (%rsi), %ymm2
333 ; AVX2-ONLY-NEXT: vmovaps 32(%rsi), %ymm3
334 ; AVX2-ONLY-NEXT: vmovaps (%rdx), %ymm4
335 ; AVX2-ONLY-NEXT: vmovaps 32(%rdx), %ymm5
336 ; AVX2-ONLY-NEXT: vmovaps (%rcx), %ymm6
337 ; AVX2-ONLY-NEXT: vmovaps 32(%rcx), %ymm7
338 ; AVX2-ONLY-NEXT: vmovaps (%rsi), %xmm8
339 ; AVX2-ONLY-NEXT: vmovaps 32(%rsi), %xmm9
340 ; AVX2-ONLY-NEXT: vinsertf128 $1, (%rcx), %ymm8, %ymm8
341 ; AVX2-ONLY-NEXT: vmovaps (%rdi), %xmm10
342 ; AVX2-ONLY-NEXT: vmovaps 32(%rdi), %xmm11
343 ; AVX2-ONLY-NEXT: vinsertf128 $1, (%rdx), %ymm10, %ymm10
344 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm12 = ymm10[1],ymm8[1],ymm10[3],ymm8[3]
345 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm8 = ymm10[0],ymm8[0],ymm10[2],ymm8[2]
346 ; AVX2-ONLY-NEXT: vinsertf128 $1, 32(%rcx), %ymm9, %ymm9
347 ; AVX2-ONLY-NEXT: vinsertf128 $1, 32(%rdx), %ymm11, %ymm10
348 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm11 = ymm10[0],ymm9[0],ymm10[2],ymm9[2]
349 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm9 = ymm10[1],ymm9[1],ymm10[3],ymm9[3]
350 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm10 = ymm5[0],ymm7[0],ymm5[2],ymm7[2]
351 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm13 = ymm1[0],ymm3[0],ymm1[2],ymm3[2]
352 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm10 = ymm13[2,3],ymm10[2,3]
353 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm5 = ymm5[1],ymm7[1],ymm5[3],ymm7[3]
354 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm3[1],ymm1[3],ymm3[3]
355 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm1 = ymm1[2,3],ymm5[2,3]
356 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm6[0],ymm4[2],ymm6[2]
357 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm2[0],ymm0[2],ymm2[2]
358 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm3 = ymm5[2,3],ymm3[2,3]
359 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm4 = ymm4[1],ymm6[1],ymm4[3],ymm6[3]
360 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm2[1],ymm0[3],ymm2[3]
361 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm4[2,3]
362 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 96(%r8)
363 ; AVX2-ONLY-NEXT: vmovaps %ymm3, 64(%r8)
364 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 224(%r8)
365 ; AVX2-ONLY-NEXT: vmovaps %ymm10, 192(%r8)
366 ; AVX2-ONLY-NEXT: vmovaps %ymm9, 160(%r8)
367 ; AVX2-ONLY-NEXT: vmovaps %ymm11, 128(%r8)
368 ; AVX2-ONLY-NEXT: vmovaps %ymm8, (%r8)
369 ; AVX2-ONLY-NEXT: vmovaps %ymm12, 32(%r8)
370 ; AVX2-ONLY-NEXT: vzeroupper
371 ; AVX2-ONLY-NEXT: retq
373 ; AVX512F-LABEL: store_i64_stride4_vf8:
375 ; AVX512F-NEXT: vmovdqa64 (%rdi), %zmm0
376 ; AVX512F-NEXT: vmovdqa64 (%rsi), %zmm1
377 ; AVX512F-NEXT: vmovdqa64 (%rdx), %zmm2
378 ; AVX512F-NEXT: vmovdqa64 (%rcx), %zmm3
379 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm4 = <u,u,0,8,u,u,1,9>
380 ; AVX512F-NEXT: vpermi2q %zmm3, %zmm2, %zmm4
381 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm5 = <0,8,u,u,1,9,u,u>
382 ; AVX512F-NEXT: vpermi2q %zmm1, %zmm0, %zmm5
383 ; AVX512F-NEXT: movb $-52, %al
384 ; AVX512F-NEXT: kmovw %eax, %k1
385 ; AVX512F-NEXT: vmovdqa64 %zmm4, %zmm5 {%k1}
386 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm4 = <u,u,2,10,u,u,3,11>
387 ; AVX512F-NEXT: vpermi2q %zmm3, %zmm2, %zmm4
388 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm6 = <2,10,u,u,3,11,u,u>
389 ; AVX512F-NEXT: vpermi2q %zmm1, %zmm0, %zmm6
390 ; AVX512F-NEXT: vmovdqa64 %zmm4, %zmm6 {%k1}
391 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm4 = <u,u,4,12,u,u,5,13>
392 ; AVX512F-NEXT: vpermi2q %zmm3, %zmm2, %zmm4
393 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm7 = <4,12,u,u,5,13,u,u>
394 ; AVX512F-NEXT: vpermi2q %zmm1, %zmm0, %zmm7
395 ; AVX512F-NEXT: vmovdqa64 %zmm4, %zmm7 {%k1}
396 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm4 = <u,u,6,14,u,u,7,15>
397 ; AVX512F-NEXT: vpermi2q %zmm3, %zmm2, %zmm4
398 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm2 = <6,14,u,u,7,15,u,u>
399 ; AVX512F-NEXT: vpermi2q %zmm1, %zmm0, %zmm2
400 ; AVX512F-NEXT: vmovdqa64 %zmm4, %zmm2 {%k1}
401 ; AVX512F-NEXT: vmovdqa64 %zmm2, 192(%r8)
402 ; AVX512F-NEXT: vmovdqa64 %zmm7, 128(%r8)
403 ; AVX512F-NEXT: vmovdqa64 %zmm6, 64(%r8)
404 ; AVX512F-NEXT: vmovdqa64 %zmm5, (%r8)
405 ; AVX512F-NEXT: vzeroupper
408 ; AVX512BW-LABEL: store_i64_stride4_vf8:
410 ; AVX512BW-NEXT: vmovdqa64 (%rdi), %zmm0
411 ; AVX512BW-NEXT: vmovdqa64 (%rsi), %zmm1
412 ; AVX512BW-NEXT: vmovdqa64 (%rdx), %zmm2
413 ; AVX512BW-NEXT: vmovdqa64 (%rcx), %zmm3
414 ; AVX512BW-NEXT: vmovdqa64 {{.*#+}} zmm4 = <u,u,0,8,u,u,1,9>
415 ; AVX512BW-NEXT: vpermi2q %zmm3, %zmm2, %zmm4
416 ; AVX512BW-NEXT: vmovdqa64 {{.*#+}} zmm5 = <0,8,u,u,1,9,u,u>
417 ; AVX512BW-NEXT: vpermi2q %zmm1, %zmm0, %zmm5
418 ; AVX512BW-NEXT: movb $-52, %al
419 ; AVX512BW-NEXT: kmovd %eax, %k1
420 ; AVX512BW-NEXT: vmovdqa64 %zmm4, %zmm5 {%k1}
421 ; AVX512BW-NEXT: vmovdqa64 {{.*#+}} zmm4 = <u,u,2,10,u,u,3,11>
422 ; AVX512BW-NEXT: vpermi2q %zmm3, %zmm2, %zmm4
423 ; AVX512BW-NEXT: vmovdqa64 {{.*#+}} zmm6 = <2,10,u,u,3,11,u,u>
424 ; AVX512BW-NEXT: vpermi2q %zmm1, %zmm0, %zmm6
425 ; AVX512BW-NEXT: vmovdqa64 %zmm4, %zmm6 {%k1}
426 ; AVX512BW-NEXT: vmovdqa64 {{.*#+}} zmm4 = <u,u,4,12,u,u,5,13>
427 ; AVX512BW-NEXT: vpermi2q %zmm3, %zmm2, %zmm4
428 ; AVX512BW-NEXT: vmovdqa64 {{.*#+}} zmm7 = <4,12,u,u,5,13,u,u>
429 ; AVX512BW-NEXT: vpermi2q %zmm1, %zmm0, %zmm7
430 ; AVX512BW-NEXT: vmovdqa64 %zmm4, %zmm7 {%k1}
431 ; AVX512BW-NEXT: vmovdqa64 {{.*#+}} zmm4 = <u,u,6,14,u,u,7,15>
432 ; AVX512BW-NEXT: vpermi2q %zmm3, %zmm2, %zmm4
433 ; AVX512BW-NEXT: vmovdqa64 {{.*#+}} zmm2 = <6,14,u,u,7,15,u,u>
434 ; AVX512BW-NEXT: vpermi2q %zmm1, %zmm0, %zmm2
435 ; AVX512BW-NEXT: vmovdqa64 %zmm4, %zmm2 {%k1}
436 ; AVX512BW-NEXT: vmovdqa64 %zmm2, 192(%r8)
437 ; AVX512BW-NEXT: vmovdqa64 %zmm7, 128(%r8)
438 ; AVX512BW-NEXT: vmovdqa64 %zmm6, 64(%r8)
439 ; AVX512BW-NEXT: vmovdqa64 %zmm5, (%r8)
440 ; AVX512BW-NEXT: vzeroupper
441 ; AVX512BW-NEXT: retq
442 %in.vec0 = load <8 x i64>, ptr %in.vecptr0, align 64
443 %in.vec1 = load <8 x i64>, ptr %in.vecptr1, align 64
444 %in.vec2 = load <8 x i64>, ptr %in.vecptr2, align 64
445 %in.vec3 = load <8 x i64>, ptr %in.vecptr3, align 64
446 %1 = shufflevector <8 x i64> %in.vec0, <8 x i64> %in.vec1, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
447 %2 = shufflevector <8 x i64> %in.vec2, <8 x i64> %in.vec3, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
448 %3 = shufflevector <16 x i64> %1, <16 x i64> %2, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31>
449 %interleaved.vec = shufflevector <32 x i64> %3, <32 x i64> poison, <32 x i32> <i32 0, i32 8, i32 16, i32 24, i32 1, i32 9, i32 17, i32 25, i32 2, i32 10, i32 18, i32 26, i32 3, i32 11, i32 19, i32 27, i32 4, i32 12, i32 20, i32 28, i32 5, i32 13, i32 21, i32 29, i32 6, i32 14, i32 22, i32 30, i32 7, i32 15, i32 23, i32 31>
450 store <32 x i64> %interleaved.vec, ptr %out.vec, align 64
454 define void @store_i64_stride4_vf16(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %out.vec) nounwind {
455 ; SSE-LABEL: store_i64_stride4_vf16:
457 ; SSE-NEXT: subq $152, %rsp
458 ; SSE-NEXT: movaps (%rdi), %xmm7
459 ; SSE-NEXT: movaps 16(%rdi), %xmm8
460 ; SSE-NEXT: movaps 32(%rdi), %xmm9
461 ; SSE-NEXT: movaps 48(%rdi), %xmm10
462 ; SSE-NEXT: movaps (%rsi), %xmm3
463 ; SSE-NEXT: movaps 16(%rsi), %xmm2
464 ; SSE-NEXT: movaps 32(%rsi), %xmm1
465 ; SSE-NEXT: movaps 48(%rsi), %xmm0
466 ; SSE-NEXT: movaps (%rdx), %xmm11
467 ; SSE-NEXT: movaps 16(%rdx), %xmm12
468 ; SSE-NEXT: movaps 32(%rdx), %xmm14
469 ; SSE-NEXT: movaps 48(%rdx), %xmm15
470 ; SSE-NEXT: movaps (%rcx), %xmm4
471 ; SSE-NEXT: movaps 16(%rcx), %xmm5
472 ; SSE-NEXT: movaps 32(%rcx), %xmm6
473 ; SSE-NEXT: movaps %xmm7, %xmm13
474 ; SSE-NEXT: movlhps {{.*#+}} xmm13 = xmm13[0],xmm3[0]
475 ; SSE-NEXT: movaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
476 ; SSE-NEXT: unpckhpd {{.*#+}} xmm7 = xmm7[1],xmm3[1]
477 ; SSE-NEXT: movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
478 ; SSE-NEXT: movaps %xmm11, %xmm7
479 ; SSE-NEXT: movlhps {{.*#+}} xmm7 = xmm7[0],xmm4[0]
480 ; SSE-NEXT: movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
481 ; SSE-NEXT: unpckhpd {{.*#+}} xmm11 = xmm11[1],xmm4[1]
482 ; SSE-NEXT: movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
483 ; SSE-NEXT: movaps %xmm8, %xmm3
484 ; SSE-NEXT: movlhps {{.*#+}} xmm3 = xmm3[0],xmm2[0]
485 ; SSE-NEXT: movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
486 ; SSE-NEXT: unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm2[1]
487 ; SSE-NEXT: movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
488 ; SSE-NEXT: movaps %xmm12, %xmm3
489 ; SSE-NEXT: movlhps {{.*#+}} xmm3 = xmm3[0],xmm5[0]
490 ; SSE-NEXT: movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
491 ; SSE-NEXT: unpckhpd {{.*#+}} xmm12 = xmm12[1],xmm5[1]
492 ; SSE-NEXT: movaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
493 ; SSE-NEXT: movaps %xmm9, %xmm2
494 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm1[0]
495 ; SSE-NEXT: movaps %xmm2, (%rsp) # 16-byte Spill
496 ; SSE-NEXT: unpckhpd {{.*#+}} xmm9 = xmm9[1],xmm1[1]
497 ; SSE-NEXT: movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
498 ; SSE-NEXT: movaps %xmm14, %xmm1
499 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm6[0]
500 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
501 ; SSE-NEXT: unpckhpd {{.*#+}} xmm14 = xmm14[1],xmm6[1]
502 ; SSE-NEXT: movaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
503 ; SSE-NEXT: movaps %xmm10, %xmm1
504 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
505 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
506 ; SSE-NEXT: unpckhpd {{.*#+}} xmm10 = xmm10[1],xmm0[1]
507 ; SSE-NEXT: movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
508 ; SSE-NEXT: movaps 48(%rcx), %xmm0
509 ; SSE-NEXT: movaps %xmm15, %xmm1
510 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
511 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
512 ; SSE-NEXT: unpckhpd {{.*#+}} xmm15 = xmm15[1],xmm0[1]
513 ; SSE-NEXT: movaps %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
514 ; SSE-NEXT: movaps 64(%rdi), %xmm14
515 ; SSE-NEXT: movaps 64(%rsi), %xmm0
516 ; SSE-NEXT: movaps %xmm14, %xmm1
517 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
518 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
519 ; SSE-NEXT: unpckhpd {{.*#+}} xmm14 = xmm14[1],xmm0[1]
520 ; SSE-NEXT: movaps 64(%rdx), %xmm12
521 ; SSE-NEXT: movaps 64(%rcx), %xmm0
522 ; SSE-NEXT: movaps %xmm12, %xmm15
523 ; SSE-NEXT: movlhps {{.*#+}} xmm15 = xmm15[0],xmm0[0]
524 ; SSE-NEXT: unpckhpd {{.*#+}} xmm12 = xmm12[1],xmm0[1]
525 ; SSE-NEXT: movaps 80(%rdi), %xmm11
526 ; SSE-NEXT: movaps 80(%rsi), %xmm0
527 ; SSE-NEXT: movaps %xmm11, %xmm13
528 ; SSE-NEXT: movlhps {{.*#+}} xmm13 = xmm13[0],xmm0[0]
529 ; SSE-NEXT: unpckhpd {{.*#+}} xmm11 = xmm11[1],xmm0[1]
530 ; SSE-NEXT: movaps 80(%rdx), %xmm7
531 ; SSE-NEXT: movaps 80(%rcx), %xmm1
532 ; SSE-NEXT: movaps %xmm7, %xmm10
533 ; SSE-NEXT: movlhps {{.*#+}} xmm10 = xmm10[0],xmm1[0]
534 ; SSE-NEXT: unpckhpd {{.*#+}} xmm7 = xmm7[1],xmm1[1]
535 ; SSE-NEXT: movaps 96(%rdi), %xmm8
536 ; SSE-NEXT: movaps 96(%rsi), %xmm0
537 ; SSE-NEXT: movaps %xmm8, %xmm9
538 ; SSE-NEXT: movlhps {{.*#+}} xmm9 = xmm9[0],xmm0[0]
539 ; SSE-NEXT: unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm0[1]
540 ; SSE-NEXT: movaps 96(%rdx), %xmm5
541 ; SSE-NEXT: movaps 96(%rcx), %xmm0
542 ; SSE-NEXT: movaps %xmm5, %xmm6
543 ; SSE-NEXT: movlhps {{.*#+}} xmm6 = xmm6[0],xmm0[0]
544 ; SSE-NEXT: unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm0[1]
545 ; SSE-NEXT: movaps 112(%rdi), %xmm2
546 ; SSE-NEXT: movaps 112(%rsi), %xmm3
547 ; SSE-NEXT: movaps %xmm2, %xmm4
548 ; SSE-NEXT: movlhps {{.*#+}} xmm4 = xmm4[0],xmm3[0]
549 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm3[1]
550 ; SSE-NEXT: movaps 112(%rdx), %xmm3
551 ; SSE-NEXT: movaps 112(%rcx), %xmm1
552 ; SSE-NEXT: movaps %xmm3, %xmm0
553 ; SSE-NEXT: movlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]
554 ; SSE-NEXT: unpckhpd {{.*#+}} xmm3 = xmm3[1],xmm1[1]
555 ; SSE-NEXT: movaps %xmm3, 496(%r8)
556 ; SSE-NEXT: movaps %xmm2, 480(%r8)
557 ; SSE-NEXT: movaps %xmm0, 464(%r8)
558 ; SSE-NEXT: movaps %xmm4, 448(%r8)
559 ; SSE-NEXT: movaps %xmm5, 432(%r8)
560 ; SSE-NEXT: movaps %xmm8, 416(%r8)
561 ; SSE-NEXT: movaps %xmm6, 400(%r8)
562 ; SSE-NEXT: movaps %xmm9, 384(%r8)
563 ; SSE-NEXT: movaps %xmm7, 368(%r8)
564 ; SSE-NEXT: movaps %xmm11, 352(%r8)
565 ; SSE-NEXT: movaps %xmm10, 336(%r8)
566 ; SSE-NEXT: movaps %xmm13, 320(%r8)
567 ; SSE-NEXT: movaps %xmm12, 304(%r8)
568 ; SSE-NEXT: movaps %xmm14, 288(%r8)
569 ; SSE-NEXT: movaps %xmm15, 272(%r8)
570 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
571 ; SSE-NEXT: movaps %xmm0, 256(%r8)
572 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
573 ; SSE-NEXT: movaps %xmm0, 240(%r8)
574 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
575 ; SSE-NEXT: movaps %xmm0, 224(%r8)
576 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
577 ; SSE-NEXT: movaps %xmm0, 208(%r8)
578 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
579 ; SSE-NEXT: movaps %xmm0, 192(%r8)
580 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
581 ; SSE-NEXT: movaps %xmm0, 176(%r8)
582 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
583 ; SSE-NEXT: movaps %xmm0, 160(%r8)
584 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
585 ; SSE-NEXT: movaps %xmm0, 144(%r8)
586 ; SSE-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload
587 ; SSE-NEXT: movaps %xmm0, 128(%r8)
588 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
589 ; SSE-NEXT: movaps %xmm0, 112(%r8)
590 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
591 ; SSE-NEXT: movaps %xmm0, 96(%r8)
592 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
593 ; SSE-NEXT: movaps %xmm0, 80(%r8)
594 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
595 ; SSE-NEXT: movaps %xmm0, 64(%r8)
596 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
597 ; SSE-NEXT: movaps %xmm0, 48(%r8)
598 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
599 ; SSE-NEXT: movaps %xmm0, 32(%r8)
600 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
601 ; SSE-NEXT: movaps %xmm0, 16(%r8)
602 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
603 ; SSE-NEXT: movaps %xmm0, (%r8)
604 ; SSE-NEXT: addq $152, %rsp
607 ; AVX1-ONLY-LABEL: store_i64_stride4_vf16:
608 ; AVX1-ONLY: # %bb.0:
609 ; AVX1-ONLY-NEXT: subq $152, %rsp
610 ; AVX1-ONLY-NEXT: vmovaps 96(%rdx), %ymm7
611 ; AVX1-ONLY-NEXT: vmovaps 64(%rdx), %ymm5
612 ; AVX1-ONLY-NEXT: vmovaps 32(%rdx), %ymm3
613 ; AVX1-ONLY-NEXT: vmovaps (%rdx), %ymm1
614 ; AVX1-ONLY-NEXT: vmovaps 96(%rcx), %ymm8
615 ; AVX1-ONLY-NEXT: vmovaps 64(%rcx), %ymm6
616 ; AVX1-ONLY-NEXT: vmovaps 32(%rcx), %ymm4
617 ; AVX1-ONLY-NEXT: vmovaps (%rcx), %ymm2
618 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
619 ; AVX1-ONLY-NEXT: vmovaps 16(%rsi), %xmm9
620 ; AVX1-ONLY-NEXT: vmovaps 16(%rdi), %xmm10
621 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm11 = xmm10[0],xmm9[0]
622 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm11[0,1,2,3],ymm0[4,5,6,7]
623 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
624 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
625 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm2 = xmm10[1],xmm9[1]
626 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm1[4,5,6,7]
627 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
628 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm3[0],ymm4[0],ymm3[2],ymm4[2]
629 ; AVX1-ONLY-NEXT: vmovaps 48(%rsi), %xmm9
630 ; AVX1-ONLY-NEXT: vmovaps 48(%rdi), %xmm10
631 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm11 = xmm10[0],xmm9[0]
632 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm11[0,1,2,3],ymm2[4,5,6,7]
633 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
634 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm3 = ymm3[1],ymm4[1],ymm3[3],ymm4[3]
635 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm4 = xmm10[1],xmm9[1]
636 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3],ymm3[4,5,6,7]
637 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
638 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm5[0],ymm6[0],ymm5[2],ymm6[2]
639 ; AVX1-ONLY-NEXT: vmovaps 80(%rsi), %xmm9
640 ; AVX1-ONLY-NEXT: vmovaps 80(%rdi), %xmm10
641 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm11 = xmm10[0],xmm9[0]
642 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm11[0,1,2,3],ymm4[4,5,6,7]
643 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
644 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm5 = ymm5[1],ymm6[1],ymm5[3],ymm6[3]
645 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm6 = xmm10[1],xmm9[1]
646 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm6[0,1,2,3],ymm5[4,5,6,7]
647 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
648 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm6 = ymm7[0],ymm8[0],ymm7[2],ymm8[2]
649 ; AVX1-ONLY-NEXT: vmovaps 112(%rsi), %xmm9
650 ; AVX1-ONLY-NEXT: vmovaps 112(%rdi), %xmm10
651 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm11 = xmm10[0],xmm9[0]
652 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm11[0,1,2,3],ymm6[4,5,6,7]
653 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
654 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm7 = ymm7[1],ymm8[1],ymm7[3],ymm8[3]
655 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm8 = xmm10[1],xmm9[1]
656 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm8[0,1,2,3],ymm7[4,5,6,7]
657 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
658 ; AVX1-ONLY-NEXT: vmovaps 64(%rsi), %xmm10
659 ; AVX1-ONLY-NEXT: vmovaps 64(%rdi), %xmm11
660 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm0 = xmm11[0],xmm10[0]
661 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
662 ; AVX1-ONLY-NEXT: vmovaps 32(%rcx), %xmm14
663 ; AVX1-ONLY-NEXT: vmovaps 64(%rcx), %xmm12
664 ; AVX1-ONLY-NEXT: vmovaps 64(%rdx), %xmm13
665 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm9 = xmm13[0],xmm12[0]
666 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm10 = xmm11[1],xmm10[1]
667 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm11 = xmm13[1],xmm12[1]
668 ; AVX1-ONLY-NEXT: vmovaps 32(%rsi), %xmm13
669 ; AVX1-ONLY-NEXT: vmovaps 32(%rdi), %xmm15
670 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm12 = xmm15[0],xmm13[0]
671 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm13 = xmm15[1],xmm13[1]
672 ; AVX1-ONLY-NEXT: vmovaps 32(%rdx), %xmm15
673 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm8 = xmm15[0],xmm14[0]
674 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm14 = xmm15[1],xmm14[1]
675 ; AVX1-ONLY-NEXT: vmovaps 96(%rsi), %xmm15
676 ; AVX1-ONLY-NEXT: vmovaps 96(%rdi), %xmm0
677 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm7 = xmm0[0],xmm15[0]
678 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm6 = xmm0[1],xmm15[1]
679 ; AVX1-ONLY-NEXT: vmovaps 96(%rcx), %xmm15
680 ; AVX1-ONLY-NEXT: vmovaps 96(%rdx), %xmm0
681 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm5 = xmm0[0],xmm15[0]
682 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm4 = xmm0[1],xmm15[1]
683 ; AVX1-ONLY-NEXT: vmovaps (%rsi), %xmm15
684 ; AVX1-ONLY-NEXT: vmovaps (%rdi), %xmm0
685 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm3 = xmm0[0],xmm15[0]
686 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm2 = xmm0[1],xmm15[1]
687 ; AVX1-ONLY-NEXT: vmovaps (%rcx), %xmm15
688 ; AVX1-ONLY-NEXT: vmovaps (%rdx), %xmm0
689 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm1 = xmm0[0],xmm15[0]
690 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm15[1]
691 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 48(%r8)
692 ; AVX1-ONLY-NEXT: vmovaps %xmm2, 32(%r8)
693 ; AVX1-ONLY-NEXT: vmovaps %xmm1, 16(%r8)
694 ; AVX1-ONLY-NEXT: vmovaps %xmm3, (%r8)
695 ; AVX1-ONLY-NEXT: vmovaps %xmm4, 432(%r8)
696 ; AVX1-ONLY-NEXT: vmovaps %xmm6, 416(%r8)
697 ; AVX1-ONLY-NEXT: vmovaps %xmm5, 400(%r8)
698 ; AVX1-ONLY-NEXT: vmovaps %xmm7, 384(%r8)
699 ; AVX1-ONLY-NEXT: vmovaps %xmm14, 176(%r8)
700 ; AVX1-ONLY-NEXT: vmovaps %xmm13, 160(%r8)
701 ; AVX1-ONLY-NEXT: vmovaps %xmm8, 144(%r8)
702 ; AVX1-ONLY-NEXT: vmovaps %xmm12, 128(%r8)
703 ; AVX1-ONLY-NEXT: vmovaps %xmm11, 304(%r8)
704 ; AVX1-ONLY-NEXT: vmovaps %xmm10, 288(%r8)
705 ; AVX1-ONLY-NEXT: vmovaps %xmm9, 272(%r8)
706 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
707 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 256(%r8)
708 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
709 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 480(%r8)
710 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
711 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 448(%r8)
712 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
713 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 352(%r8)
714 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
715 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 320(%r8)
716 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
717 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 224(%r8)
718 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
719 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 192(%r8)
720 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
721 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 96(%r8)
722 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
723 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 64(%r8)
724 ; AVX1-ONLY-NEXT: addq $152, %rsp
725 ; AVX1-ONLY-NEXT: vzeroupper
726 ; AVX1-ONLY-NEXT: retq
728 ; AVX2-ONLY-LABEL: store_i64_stride4_vf16:
729 ; AVX2-ONLY: # %bb.0:
730 ; AVX2-ONLY-NEXT: pushq %rax
731 ; AVX2-ONLY-NEXT: vmovaps 32(%rdi), %ymm4
732 ; AVX2-ONLY-NEXT: vmovaps (%rdi), %ymm8
733 ; AVX2-ONLY-NEXT: vmovaps 32(%rsi), %ymm5
734 ; AVX2-ONLY-NEXT: vmovaps (%rsi), %ymm9
735 ; AVX2-ONLY-NEXT: vmovaps (%rdx), %ymm11
736 ; AVX2-ONLY-NEXT: vmovaps (%rcx), %ymm13
737 ; AVX2-ONLY-NEXT: vmovaps (%rsi), %xmm0
738 ; AVX2-ONLY-NEXT: vmovaps 32(%rsi), %xmm2
739 ; AVX2-ONLY-NEXT: vmovaps 64(%rsi), %xmm6
740 ; AVX2-ONLY-NEXT: vinsertf128 $1, (%rcx), %ymm0, %ymm1
741 ; AVX2-ONLY-NEXT: vmovaps (%rdi), %xmm0
742 ; AVX2-ONLY-NEXT: vmovaps 32(%rdi), %xmm3
743 ; AVX2-ONLY-NEXT: vmovaps 64(%rdi), %xmm7
744 ; AVX2-ONLY-NEXT: vinsertf128 $1, (%rdx), %ymm0, %ymm10
745 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm10[0],ymm1[0],ymm10[2],ymm1[2]
746 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
747 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm10[1],ymm1[1],ymm10[3],ymm1[3]
748 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
749 ; AVX2-ONLY-NEXT: vinsertf128 $1, 32(%rcx), %ymm2, %ymm10
750 ; AVX2-ONLY-NEXT: vinsertf128 $1, 32(%rdx), %ymm3, %ymm3
751 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm3[0],ymm10[0],ymm3[2],ymm10[2]
752 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
753 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm3[1],ymm10[1],ymm3[3],ymm10[3]
754 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
755 ; AVX2-ONLY-NEXT: vinsertf128 $1, 64(%rcx), %ymm6, %ymm10
756 ; AVX2-ONLY-NEXT: vinsertf128 $1, 64(%rdx), %ymm7, %ymm7
757 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm6 = ymm7[0],ymm10[0],ymm7[2],ymm10[2]
758 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm7 = ymm7[1],ymm10[1],ymm7[3],ymm10[3]
759 ; AVX2-ONLY-NEXT: vmovaps 96(%rsi), %xmm10
760 ; AVX2-ONLY-NEXT: vinsertf128 $1, 96(%rcx), %ymm10, %ymm12
761 ; AVX2-ONLY-NEXT: vmovaps 96(%rdi), %xmm10
762 ; AVX2-ONLY-NEXT: vinsertf128 $1, 96(%rdx), %ymm10, %ymm14
763 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm10 = ymm14[0],ymm12[0],ymm14[2],ymm12[2]
764 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm12 = ymm14[1],ymm12[1],ymm14[3],ymm12[3]
765 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm14 = ymm11[0],ymm13[0],ymm11[2],ymm13[2]
766 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm15 = ymm8[0],ymm9[0],ymm8[2],ymm9[2]
767 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm14 = ymm15[2,3],ymm14[2,3]
768 ; AVX2-ONLY-NEXT: vmovaps 32(%rdx), %ymm15
769 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm11 = ymm11[1],ymm13[1],ymm11[3],ymm13[3]
770 ; AVX2-ONLY-NEXT: vmovaps 32(%rcx), %ymm13
771 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm8 = ymm8[1],ymm9[1],ymm8[3],ymm9[3]
772 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm8 = ymm8[2,3],ymm11[2,3]
773 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm9 = ymm15[0],ymm13[0],ymm15[2],ymm13[2]
774 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm11 = ymm4[0],ymm5[0],ymm4[2],ymm5[2]
775 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm9 = ymm11[2,3],ymm9[2,3]
776 ; AVX2-ONLY-NEXT: vmovaps 64(%rdi), %ymm11
777 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm13 = ymm15[1],ymm13[1],ymm15[3],ymm13[3]
778 ; AVX2-ONLY-NEXT: vmovaps 64(%rsi), %ymm15
779 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm4 = ymm4[1],ymm5[1],ymm4[3],ymm5[3]
780 ; AVX2-ONLY-NEXT: vmovaps 64(%rdx), %ymm5
781 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm4[2,3],ymm13[2,3]
782 ; AVX2-ONLY-NEXT: vmovaps 64(%rcx), %ymm13
783 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm5[0],ymm13[0],ymm5[2],ymm13[2]
784 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm11[0],ymm15[0],ymm11[2],ymm15[2]
785 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm2 = ymm1[2,3],ymm0[2,3]
786 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm5[1],ymm13[1],ymm5[3],ymm13[3]
787 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm5 = ymm11[1],ymm15[1],ymm11[3],ymm15[3]
788 ; AVX2-ONLY-NEXT: vmovaps 96(%rdi), %ymm11
789 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm1 = ymm5[2,3],ymm1[2,3]
790 ; AVX2-ONLY-NEXT: vmovaps 96(%rsi), %ymm5
791 ; AVX2-ONLY-NEXT: vmovaps 96(%rdx), %ymm13
792 ; AVX2-ONLY-NEXT: vmovaps 96(%rcx), %ymm15
793 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm13[0],ymm15[0],ymm13[2],ymm15[2]
794 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm3 = ymm11[0],ymm5[0],ymm11[2],ymm5[2]
795 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm3[2,3],ymm0[2,3]
796 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm3 = ymm13[1],ymm15[1],ymm13[3],ymm15[3]
797 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm5 = ymm11[1],ymm5[1],ymm11[3],ymm5[3]
798 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm3 = ymm5[2,3],ymm3[2,3]
799 ; AVX2-ONLY-NEXT: vmovaps %ymm3, 480(%r8)
800 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 448(%r8)
801 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 352(%r8)
802 ; AVX2-ONLY-NEXT: vmovaps %ymm2, 320(%r8)
803 ; AVX2-ONLY-NEXT: vmovaps %ymm4, 224(%r8)
804 ; AVX2-ONLY-NEXT: vmovaps %ymm9, 192(%r8)
805 ; AVX2-ONLY-NEXT: vmovaps %ymm8, 96(%r8)
806 ; AVX2-ONLY-NEXT: vmovaps %ymm14, 64(%r8)
807 ; AVX2-ONLY-NEXT: vmovaps %ymm12, 416(%r8)
808 ; AVX2-ONLY-NEXT: vmovaps %ymm10, 384(%r8)
809 ; AVX2-ONLY-NEXT: vmovaps %ymm7, 288(%r8)
810 ; AVX2-ONLY-NEXT: vmovaps %ymm6, 256(%r8)
811 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
812 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 160(%r8)
813 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
814 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 128(%r8)
815 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
816 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 32(%r8)
817 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
818 ; AVX2-ONLY-NEXT: vmovaps %ymm0, (%r8)
819 ; AVX2-ONLY-NEXT: popq %rax
820 ; AVX2-ONLY-NEXT: vzeroupper
821 ; AVX2-ONLY-NEXT: retq
823 ; AVX512F-LABEL: store_i64_stride4_vf16:
825 ; AVX512F-NEXT: vmovdqa64 (%rdi), %zmm0
826 ; AVX512F-NEXT: vmovdqa64 64(%rdi), %zmm1
827 ; AVX512F-NEXT: vmovdqa64 (%rsi), %zmm2
828 ; AVX512F-NEXT: vmovdqa64 64(%rsi), %zmm3
829 ; AVX512F-NEXT: vmovdqa64 (%rdx), %zmm4
830 ; AVX512F-NEXT: vmovdqa64 64(%rdx), %zmm5
831 ; AVX512F-NEXT: vmovdqa64 (%rcx), %zmm6
832 ; AVX512F-NEXT: vmovdqa64 64(%rcx), %zmm7
833 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm8 = <u,u,2,10,u,u,3,11>
834 ; AVX512F-NEXT: vmovdqa64 %zmm4, %zmm9
835 ; AVX512F-NEXT: vpermt2q %zmm6, %zmm8, %zmm9
836 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm10 = <2,10,u,u,3,11,u,u>
837 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm11
838 ; AVX512F-NEXT: vpermt2q %zmm2, %zmm10, %zmm11
839 ; AVX512F-NEXT: movb $-52, %al
840 ; AVX512F-NEXT: kmovw %eax, %k1
841 ; AVX512F-NEXT: vmovdqa64 %zmm9, %zmm11 {%k1}
842 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm9 = <u,u,0,8,u,u,1,9>
843 ; AVX512F-NEXT: vmovdqa64 %zmm4, %zmm12
844 ; AVX512F-NEXT: vpermt2q %zmm6, %zmm9, %zmm12
845 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm13 = <0,8,u,u,1,9,u,u>
846 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm14
847 ; AVX512F-NEXT: vpermt2q %zmm2, %zmm13, %zmm14
848 ; AVX512F-NEXT: vmovdqa64 %zmm12, %zmm14 {%k1}
849 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm12 = <u,u,6,14,u,u,7,15>
850 ; AVX512F-NEXT: vmovdqa64 %zmm4, %zmm15
851 ; AVX512F-NEXT: vpermt2q %zmm6, %zmm12, %zmm15
852 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm16 = <6,14,u,u,7,15,u,u>
853 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm17
854 ; AVX512F-NEXT: vpermt2q %zmm2, %zmm16, %zmm17
855 ; AVX512F-NEXT: vmovdqa64 %zmm15, %zmm17 {%k1}
856 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm15 = <u,u,4,12,u,u,5,13>
857 ; AVX512F-NEXT: vpermt2q %zmm6, %zmm15, %zmm4
858 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm6 = <4,12,u,u,5,13,u,u>
859 ; AVX512F-NEXT: vpermt2q %zmm2, %zmm6, %zmm0
860 ; AVX512F-NEXT: vmovdqa64 %zmm4, %zmm0 {%k1}
861 ; AVX512F-NEXT: vpermi2q %zmm7, %zmm5, %zmm8
862 ; AVX512F-NEXT: vpermi2q %zmm3, %zmm1, %zmm10
863 ; AVX512F-NEXT: vmovdqa64 %zmm8, %zmm10 {%k1}
864 ; AVX512F-NEXT: vpermi2q %zmm7, %zmm5, %zmm9
865 ; AVX512F-NEXT: vpermi2q %zmm3, %zmm1, %zmm13
866 ; AVX512F-NEXT: vmovdqa64 %zmm9, %zmm13 {%k1}
867 ; AVX512F-NEXT: vpermi2q %zmm7, %zmm5, %zmm12
868 ; AVX512F-NEXT: vpermi2q %zmm3, %zmm1, %zmm16
869 ; AVX512F-NEXT: vmovdqa64 %zmm12, %zmm16 {%k1}
870 ; AVX512F-NEXT: vpermt2q %zmm7, %zmm15, %zmm5
871 ; AVX512F-NEXT: vpermt2q %zmm3, %zmm6, %zmm1
872 ; AVX512F-NEXT: vmovdqa64 %zmm5, %zmm1 {%k1}
873 ; AVX512F-NEXT: vmovdqa64 %zmm1, 384(%r8)
874 ; AVX512F-NEXT: vmovdqa64 %zmm16, 448(%r8)
875 ; AVX512F-NEXT: vmovdqa64 %zmm13, 256(%r8)
876 ; AVX512F-NEXT: vmovdqa64 %zmm10, 320(%r8)
877 ; AVX512F-NEXT: vmovdqa64 %zmm0, 128(%r8)
878 ; AVX512F-NEXT: vmovdqa64 %zmm17, 192(%r8)
879 ; AVX512F-NEXT: vmovdqa64 %zmm14, (%r8)
880 ; AVX512F-NEXT: vmovdqa64 %zmm11, 64(%r8)
881 ; AVX512F-NEXT: vzeroupper
884 ; AVX512BW-LABEL: store_i64_stride4_vf16:
886 ; AVX512BW-NEXT: vmovdqa64 (%rdi), %zmm0
887 ; AVX512BW-NEXT: vmovdqa64 64(%rdi), %zmm1
888 ; AVX512BW-NEXT: vmovdqa64 (%rsi), %zmm2
889 ; AVX512BW-NEXT: vmovdqa64 64(%rsi), %zmm3
890 ; AVX512BW-NEXT: vmovdqa64 (%rdx), %zmm4
891 ; AVX512BW-NEXT: vmovdqa64 64(%rdx), %zmm5
892 ; AVX512BW-NEXT: vmovdqa64 (%rcx), %zmm6
893 ; AVX512BW-NEXT: vmovdqa64 64(%rcx), %zmm7
894 ; AVX512BW-NEXT: vmovdqa64 {{.*#+}} zmm8 = <u,u,2,10,u,u,3,11>
895 ; AVX512BW-NEXT: vmovdqa64 %zmm4, %zmm9
896 ; AVX512BW-NEXT: vpermt2q %zmm6, %zmm8, %zmm9
897 ; AVX512BW-NEXT: vmovdqa64 {{.*#+}} zmm10 = <2,10,u,u,3,11,u,u>
898 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm11
899 ; AVX512BW-NEXT: vpermt2q %zmm2, %zmm10, %zmm11
900 ; AVX512BW-NEXT: movb $-52, %al
901 ; AVX512BW-NEXT: kmovd %eax, %k1
902 ; AVX512BW-NEXT: vmovdqa64 %zmm9, %zmm11 {%k1}
903 ; AVX512BW-NEXT: vmovdqa64 {{.*#+}} zmm9 = <u,u,0,8,u,u,1,9>
904 ; AVX512BW-NEXT: vmovdqa64 %zmm4, %zmm12
905 ; AVX512BW-NEXT: vpermt2q %zmm6, %zmm9, %zmm12
906 ; AVX512BW-NEXT: vmovdqa64 {{.*#+}} zmm13 = <0,8,u,u,1,9,u,u>
907 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm14
908 ; AVX512BW-NEXT: vpermt2q %zmm2, %zmm13, %zmm14
909 ; AVX512BW-NEXT: vmovdqa64 %zmm12, %zmm14 {%k1}
910 ; AVX512BW-NEXT: vmovdqa64 {{.*#+}} zmm12 = <u,u,6,14,u,u,7,15>
911 ; AVX512BW-NEXT: vmovdqa64 %zmm4, %zmm15
912 ; AVX512BW-NEXT: vpermt2q %zmm6, %zmm12, %zmm15
913 ; AVX512BW-NEXT: vmovdqa64 {{.*#+}} zmm16 = <6,14,u,u,7,15,u,u>
914 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm17
915 ; AVX512BW-NEXT: vpermt2q %zmm2, %zmm16, %zmm17
916 ; AVX512BW-NEXT: vmovdqa64 %zmm15, %zmm17 {%k1}
917 ; AVX512BW-NEXT: vmovdqa64 {{.*#+}} zmm15 = <u,u,4,12,u,u,5,13>
918 ; AVX512BW-NEXT: vpermt2q %zmm6, %zmm15, %zmm4
919 ; AVX512BW-NEXT: vmovdqa64 {{.*#+}} zmm6 = <4,12,u,u,5,13,u,u>
920 ; AVX512BW-NEXT: vpermt2q %zmm2, %zmm6, %zmm0
921 ; AVX512BW-NEXT: vmovdqa64 %zmm4, %zmm0 {%k1}
922 ; AVX512BW-NEXT: vpermi2q %zmm7, %zmm5, %zmm8
923 ; AVX512BW-NEXT: vpermi2q %zmm3, %zmm1, %zmm10
924 ; AVX512BW-NEXT: vmovdqa64 %zmm8, %zmm10 {%k1}
925 ; AVX512BW-NEXT: vpermi2q %zmm7, %zmm5, %zmm9
926 ; AVX512BW-NEXT: vpermi2q %zmm3, %zmm1, %zmm13
927 ; AVX512BW-NEXT: vmovdqa64 %zmm9, %zmm13 {%k1}
928 ; AVX512BW-NEXT: vpermi2q %zmm7, %zmm5, %zmm12
929 ; AVX512BW-NEXT: vpermi2q %zmm3, %zmm1, %zmm16
930 ; AVX512BW-NEXT: vmovdqa64 %zmm12, %zmm16 {%k1}
931 ; AVX512BW-NEXT: vpermt2q %zmm7, %zmm15, %zmm5
932 ; AVX512BW-NEXT: vpermt2q %zmm3, %zmm6, %zmm1
933 ; AVX512BW-NEXT: vmovdqa64 %zmm5, %zmm1 {%k1}
934 ; AVX512BW-NEXT: vmovdqa64 %zmm1, 384(%r8)
935 ; AVX512BW-NEXT: vmovdqa64 %zmm16, 448(%r8)
936 ; AVX512BW-NEXT: vmovdqa64 %zmm13, 256(%r8)
937 ; AVX512BW-NEXT: vmovdqa64 %zmm10, 320(%r8)
938 ; AVX512BW-NEXT: vmovdqa64 %zmm0, 128(%r8)
939 ; AVX512BW-NEXT: vmovdqa64 %zmm17, 192(%r8)
940 ; AVX512BW-NEXT: vmovdqa64 %zmm14, (%r8)
941 ; AVX512BW-NEXT: vmovdqa64 %zmm11, 64(%r8)
942 ; AVX512BW-NEXT: vzeroupper
943 ; AVX512BW-NEXT: retq
944 %in.vec0 = load <16 x i64>, ptr %in.vecptr0, align 64
945 %in.vec1 = load <16 x i64>, ptr %in.vecptr1, align 64
946 %in.vec2 = load <16 x i64>, ptr %in.vecptr2, align 64
947 %in.vec3 = load <16 x i64>, ptr %in.vecptr3, align 64
948 %1 = shufflevector <16 x i64> %in.vec0, <16 x i64> %in.vec1, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31>
949 %2 = shufflevector <16 x i64> %in.vec2, <16 x i64> %in.vec3, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31>
950 %3 = shufflevector <32 x i64> %1, <32 x i64> %2, <64 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63>
951 %interleaved.vec = shufflevector <64 x i64> %3, <64 x i64> poison, <64 x i32> <i32 0, i32 16, i32 32, i32 48, i32 1, i32 17, i32 33, i32 49, i32 2, i32 18, i32 34, i32 50, i32 3, i32 19, i32 35, i32 51, i32 4, i32 20, i32 36, i32 52, i32 5, i32 21, i32 37, i32 53, i32 6, i32 22, i32 38, i32 54, i32 7, i32 23, i32 39, i32 55, i32 8, i32 24, i32 40, i32 56, i32 9, i32 25, i32 41, i32 57, i32 10, i32 26, i32 42, i32 58, i32 11, i32 27, i32 43, i32 59, i32 12, i32 28, i32 44, i32 60, i32 13, i32 29, i32 45, i32 61, i32 14, i32 30, i32 46, i32 62, i32 15, i32 31, i32 47, i32 63>
952 store <64 x i64> %interleaved.vec, ptr %out.vec, align 64
956 define void @store_i64_stride4_vf32(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %out.vec) nounwind {
957 ; SSE-LABEL: store_i64_stride4_vf32:
959 ; SSE-NEXT: subq $664, %rsp # imm = 0x298
960 ; SSE-NEXT: movaps (%rdi), %xmm7
961 ; SSE-NEXT: movaps 16(%rdi), %xmm8
962 ; SSE-NEXT: movaps 32(%rdi), %xmm9
963 ; SSE-NEXT: movaps 48(%rdi), %xmm10
964 ; SSE-NEXT: movaps (%rsi), %xmm3
965 ; SSE-NEXT: movaps 16(%rsi), %xmm2
966 ; SSE-NEXT: movaps 32(%rsi), %xmm1
967 ; SSE-NEXT: movaps 48(%rsi), %xmm0
968 ; SSE-NEXT: movaps (%rdx), %xmm11
969 ; SSE-NEXT: movaps 16(%rdx), %xmm12
970 ; SSE-NEXT: movaps 32(%rdx), %xmm13
971 ; SSE-NEXT: movaps 48(%rdx), %xmm14
972 ; SSE-NEXT: movaps (%rcx), %xmm4
973 ; SSE-NEXT: movaps 16(%rcx), %xmm5
974 ; SSE-NEXT: movaps 32(%rcx), %xmm6
975 ; SSE-NEXT: movaps %xmm7, %xmm15
976 ; SSE-NEXT: movlhps {{.*#+}} xmm15 = xmm15[0],xmm3[0]
977 ; SSE-NEXT: movaps %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
978 ; SSE-NEXT: unpckhpd {{.*#+}} xmm7 = xmm7[1],xmm3[1]
979 ; SSE-NEXT: movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
980 ; SSE-NEXT: movaps %xmm11, %xmm7
981 ; SSE-NEXT: movlhps {{.*#+}} xmm7 = xmm7[0],xmm4[0]
982 ; SSE-NEXT: movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
983 ; SSE-NEXT: unpckhpd {{.*#+}} xmm11 = xmm11[1],xmm4[1]
984 ; SSE-NEXT: movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
985 ; SSE-NEXT: movaps %xmm8, %xmm3
986 ; SSE-NEXT: movlhps {{.*#+}} xmm3 = xmm3[0],xmm2[0]
987 ; SSE-NEXT: movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
988 ; SSE-NEXT: unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm2[1]
989 ; SSE-NEXT: movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
990 ; SSE-NEXT: movaps %xmm12, %xmm2
991 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm5[0]
992 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
993 ; SSE-NEXT: unpckhpd {{.*#+}} xmm12 = xmm12[1],xmm5[1]
994 ; SSE-NEXT: movaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
995 ; SSE-NEXT: movaps %xmm9, %xmm2
996 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm1[0]
997 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
998 ; SSE-NEXT: unpckhpd {{.*#+}} xmm9 = xmm9[1],xmm1[1]
999 ; SSE-NEXT: movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1000 ; SSE-NEXT: movaps %xmm13, %xmm1
1001 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm6[0]
1002 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1003 ; SSE-NEXT: unpckhpd {{.*#+}} xmm13 = xmm13[1],xmm6[1]
1004 ; SSE-NEXT: movaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1005 ; SSE-NEXT: movaps %xmm10, %xmm1
1006 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
1007 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1008 ; SSE-NEXT: unpckhpd {{.*#+}} xmm10 = xmm10[1],xmm0[1]
1009 ; SSE-NEXT: movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1010 ; SSE-NEXT: movaps 48(%rcx), %xmm0
1011 ; SSE-NEXT: movaps %xmm14, %xmm1
1012 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
1013 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1014 ; SSE-NEXT: unpckhpd {{.*#+}} xmm14 = xmm14[1],xmm0[1]
1015 ; SSE-NEXT: movaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1016 ; SSE-NEXT: movaps 64(%rdi), %xmm2
1017 ; SSE-NEXT: movaps 64(%rsi), %xmm0
1018 ; SSE-NEXT: movaps %xmm2, %xmm1
1019 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
1020 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1021 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
1022 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1023 ; SSE-NEXT: movaps 64(%rdx), %xmm2
1024 ; SSE-NEXT: movaps 64(%rcx), %xmm0
1025 ; SSE-NEXT: movaps %xmm2, %xmm1
1026 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
1027 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1028 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
1029 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1030 ; SSE-NEXT: movaps 80(%rdi), %xmm2
1031 ; SSE-NEXT: movaps 80(%rsi), %xmm0
1032 ; SSE-NEXT: movaps %xmm2, %xmm1
1033 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
1034 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1035 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
1036 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1037 ; SSE-NEXT: movaps 80(%rdx), %xmm2
1038 ; SSE-NEXT: movaps 80(%rcx), %xmm0
1039 ; SSE-NEXT: movaps %xmm2, %xmm1
1040 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
1041 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1042 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
1043 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1044 ; SSE-NEXT: movaps 96(%rdi), %xmm2
1045 ; SSE-NEXT: movaps 96(%rsi), %xmm0
1046 ; SSE-NEXT: movaps %xmm2, %xmm1
1047 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
1048 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1049 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
1050 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1051 ; SSE-NEXT: movaps 96(%rdx), %xmm2
1052 ; SSE-NEXT: movaps 96(%rcx), %xmm0
1053 ; SSE-NEXT: movaps %xmm2, %xmm1
1054 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
1055 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1056 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
1057 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1058 ; SSE-NEXT: movaps 112(%rdi), %xmm2
1059 ; SSE-NEXT: movaps 112(%rsi), %xmm0
1060 ; SSE-NEXT: movaps %xmm2, %xmm1
1061 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
1062 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1063 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
1064 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1065 ; SSE-NEXT: movaps 112(%rdx), %xmm2
1066 ; SSE-NEXT: movaps 112(%rcx), %xmm0
1067 ; SSE-NEXT: movaps %xmm2, %xmm1
1068 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
1069 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1070 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
1071 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1072 ; SSE-NEXT: movaps 128(%rdi), %xmm2
1073 ; SSE-NEXT: movaps 128(%rsi), %xmm0
1074 ; SSE-NEXT: movaps %xmm2, %xmm1
1075 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
1076 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1077 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
1078 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1079 ; SSE-NEXT: movaps 128(%rdx), %xmm2
1080 ; SSE-NEXT: movaps 128(%rcx), %xmm0
1081 ; SSE-NEXT: movaps %xmm2, %xmm1
1082 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
1083 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1084 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
1085 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1086 ; SSE-NEXT: movaps 144(%rdi), %xmm2
1087 ; SSE-NEXT: movaps 144(%rsi), %xmm0
1088 ; SSE-NEXT: movaps %xmm2, %xmm1
1089 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
1090 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1091 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
1092 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1093 ; SSE-NEXT: movaps 144(%rdx), %xmm2
1094 ; SSE-NEXT: movaps 144(%rcx), %xmm0
1095 ; SSE-NEXT: movaps %xmm2, %xmm1
1096 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
1097 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1098 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
1099 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1100 ; SSE-NEXT: movaps 160(%rdi), %xmm2
1101 ; SSE-NEXT: movaps 160(%rsi), %xmm0
1102 ; SSE-NEXT: movaps %xmm2, %xmm1
1103 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
1104 ; SSE-NEXT: movaps %xmm1, (%rsp) # 16-byte Spill
1105 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
1106 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1107 ; SSE-NEXT: movaps 160(%rdx), %xmm2
1108 ; SSE-NEXT: movaps 160(%rcx), %xmm0
1109 ; SSE-NEXT: movaps %xmm2, %xmm1
1110 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
1111 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1112 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
1113 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1114 ; SSE-NEXT: movaps 176(%rdi), %xmm2
1115 ; SSE-NEXT: movaps 176(%rsi), %xmm0
1116 ; SSE-NEXT: movaps %xmm2, %xmm1
1117 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
1118 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1119 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
1120 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1121 ; SSE-NEXT: movaps 176(%rdx), %xmm14
1122 ; SSE-NEXT: movaps 176(%rcx), %xmm0
1123 ; SSE-NEXT: movaps %xmm14, %xmm1
1124 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
1125 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1126 ; SSE-NEXT: unpckhpd {{.*#+}} xmm14 = xmm14[1],xmm0[1]
1127 ; SSE-NEXT: movaps 192(%rdi), %xmm12
1128 ; SSE-NEXT: movaps 192(%rsi), %xmm0
1129 ; SSE-NEXT: movaps %xmm12, %xmm1
1130 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
1131 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1132 ; SSE-NEXT: unpckhpd {{.*#+}} xmm12 = xmm12[1],xmm0[1]
1133 ; SSE-NEXT: movaps 192(%rdx), %xmm15
1134 ; SSE-NEXT: movaps 192(%rcx), %xmm0
1135 ; SSE-NEXT: movaps %xmm15, %xmm1
1136 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
1137 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1138 ; SSE-NEXT: unpckhpd {{.*#+}} xmm15 = xmm15[1],xmm0[1]
1139 ; SSE-NEXT: movaps 208(%rdi), %xmm10
1140 ; SSE-NEXT: movaps 208(%rsi), %xmm0
1141 ; SSE-NEXT: movaps %xmm10, %xmm13
1142 ; SSE-NEXT: movlhps {{.*#+}} xmm13 = xmm13[0],xmm0[0]
1143 ; SSE-NEXT: unpckhpd {{.*#+}} xmm10 = xmm10[1],xmm0[1]
1144 ; SSE-NEXT: movaps 208(%rdx), %xmm7
1145 ; SSE-NEXT: movaps 208(%rcx), %xmm0
1146 ; SSE-NEXT: movaps %xmm7, %xmm11
1147 ; SSE-NEXT: movlhps {{.*#+}} xmm11 = xmm11[0],xmm0[0]
1148 ; SSE-NEXT: unpckhpd {{.*#+}} xmm7 = xmm7[1],xmm0[1]
1149 ; SSE-NEXT: movaps 224(%rdi), %xmm8
1150 ; SSE-NEXT: movaps 224(%rsi), %xmm0
1151 ; SSE-NEXT: movaps %xmm8, %xmm9
1152 ; SSE-NEXT: movlhps {{.*#+}} xmm9 = xmm9[0],xmm0[0]
1153 ; SSE-NEXT: unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm0[1]
1154 ; SSE-NEXT: movaps 224(%rdx), %xmm4
1155 ; SSE-NEXT: movaps 224(%rcx), %xmm0
1156 ; SSE-NEXT: movaps %xmm4, %xmm6
1157 ; SSE-NEXT: movlhps {{.*#+}} xmm6 = xmm6[0],xmm0[0]
1158 ; SSE-NEXT: unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm0[1]
1159 ; SSE-NEXT: movaps 240(%rdi), %xmm2
1160 ; SSE-NEXT: movaps 240(%rsi), %xmm3
1161 ; SSE-NEXT: movaps %xmm2, %xmm5
1162 ; SSE-NEXT: movlhps {{.*#+}} xmm5 = xmm5[0],xmm3[0]
1163 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm3[1]
1164 ; SSE-NEXT: movaps 240(%rdx), %xmm3
1165 ; SSE-NEXT: movaps 240(%rcx), %xmm1
1166 ; SSE-NEXT: movaps %xmm3, %xmm0
1167 ; SSE-NEXT: movlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]
1168 ; SSE-NEXT: unpckhpd {{.*#+}} xmm3 = xmm3[1],xmm1[1]
1169 ; SSE-NEXT: movaps %xmm3, 1008(%r8)
1170 ; SSE-NEXT: movaps %xmm2, 992(%r8)
1171 ; SSE-NEXT: movaps %xmm0, 976(%r8)
1172 ; SSE-NEXT: movaps %xmm5, 960(%r8)
1173 ; SSE-NEXT: movaps %xmm4, 944(%r8)
1174 ; SSE-NEXT: movaps %xmm8, 928(%r8)
1175 ; SSE-NEXT: movaps %xmm6, 912(%r8)
1176 ; SSE-NEXT: movaps %xmm9, 896(%r8)
1177 ; SSE-NEXT: movaps %xmm7, 880(%r8)
1178 ; SSE-NEXT: movaps %xmm10, 864(%r8)
1179 ; SSE-NEXT: movaps %xmm11, 848(%r8)
1180 ; SSE-NEXT: movaps %xmm13, 832(%r8)
1181 ; SSE-NEXT: movaps %xmm15, 816(%r8)
1182 ; SSE-NEXT: movaps %xmm12, 800(%r8)
1183 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1184 ; SSE-NEXT: movaps %xmm0, 784(%r8)
1185 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1186 ; SSE-NEXT: movaps %xmm0, 768(%r8)
1187 ; SSE-NEXT: movaps %xmm14, 752(%r8)
1188 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1189 ; SSE-NEXT: movaps %xmm0, 736(%r8)
1190 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1191 ; SSE-NEXT: movaps %xmm0, 720(%r8)
1192 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1193 ; SSE-NEXT: movaps %xmm0, 704(%r8)
1194 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1195 ; SSE-NEXT: movaps %xmm0, 688(%r8)
1196 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1197 ; SSE-NEXT: movaps %xmm0, 672(%r8)
1198 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1199 ; SSE-NEXT: movaps %xmm0, 656(%r8)
1200 ; SSE-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload
1201 ; SSE-NEXT: movaps %xmm0, 640(%r8)
1202 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1203 ; SSE-NEXT: movaps %xmm0, 624(%r8)
1204 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1205 ; SSE-NEXT: movaps %xmm0, 608(%r8)
1206 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1207 ; SSE-NEXT: movaps %xmm0, 592(%r8)
1208 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1209 ; SSE-NEXT: movaps %xmm0, 576(%r8)
1210 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1211 ; SSE-NEXT: movaps %xmm0, 560(%r8)
1212 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1213 ; SSE-NEXT: movaps %xmm0, 544(%r8)
1214 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1215 ; SSE-NEXT: movaps %xmm0, 528(%r8)
1216 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1217 ; SSE-NEXT: movaps %xmm0, 512(%r8)
1218 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1219 ; SSE-NEXT: movaps %xmm0, 496(%r8)
1220 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1221 ; SSE-NEXT: movaps %xmm0, 480(%r8)
1222 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1223 ; SSE-NEXT: movaps %xmm0, 464(%r8)
1224 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1225 ; SSE-NEXT: movaps %xmm0, 448(%r8)
1226 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1227 ; SSE-NEXT: movaps %xmm0, 432(%r8)
1228 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1229 ; SSE-NEXT: movaps %xmm0, 416(%r8)
1230 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1231 ; SSE-NEXT: movaps %xmm0, 400(%r8)
1232 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1233 ; SSE-NEXT: movaps %xmm0, 384(%r8)
1234 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1235 ; SSE-NEXT: movaps %xmm0, 368(%r8)
1236 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1237 ; SSE-NEXT: movaps %xmm0, 352(%r8)
1238 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1239 ; SSE-NEXT: movaps %xmm0, 336(%r8)
1240 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1241 ; SSE-NEXT: movaps %xmm0, 320(%r8)
1242 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1243 ; SSE-NEXT: movaps %xmm0, 304(%r8)
1244 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1245 ; SSE-NEXT: movaps %xmm0, 288(%r8)
1246 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1247 ; SSE-NEXT: movaps %xmm0, 272(%r8)
1248 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1249 ; SSE-NEXT: movaps %xmm0, 256(%r8)
1250 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1251 ; SSE-NEXT: movaps %xmm0, 240(%r8)
1252 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1253 ; SSE-NEXT: movaps %xmm0, 224(%r8)
1254 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1255 ; SSE-NEXT: movaps %xmm0, 208(%r8)
1256 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1257 ; SSE-NEXT: movaps %xmm0, 192(%r8)
1258 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1259 ; SSE-NEXT: movaps %xmm0, 176(%r8)
1260 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1261 ; SSE-NEXT: movaps %xmm0, 160(%r8)
1262 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1263 ; SSE-NEXT: movaps %xmm0, 144(%r8)
1264 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1265 ; SSE-NEXT: movaps %xmm0, 128(%r8)
1266 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1267 ; SSE-NEXT: movaps %xmm0, 112(%r8)
1268 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1269 ; SSE-NEXT: movaps %xmm0, 96(%r8)
1270 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1271 ; SSE-NEXT: movaps %xmm0, 80(%r8)
1272 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1273 ; SSE-NEXT: movaps %xmm0, 64(%r8)
1274 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1275 ; SSE-NEXT: movaps %xmm0, 48(%r8)
1276 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1277 ; SSE-NEXT: movaps %xmm0, 32(%r8)
1278 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1279 ; SSE-NEXT: movaps %xmm0, 16(%r8)
1280 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1281 ; SSE-NEXT: movaps %xmm0, (%r8)
1282 ; SSE-NEXT: addq $664, %rsp # imm = 0x298
1285 ; AVX1-ONLY-LABEL: store_i64_stride4_vf32:
1286 ; AVX1-ONLY: # %bb.0:
1287 ; AVX1-ONLY-NEXT: subq $664, %rsp # imm = 0x298
1288 ; AVX1-ONLY-NEXT: vmovaps 160(%rdx), %ymm0
1289 ; AVX1-ONLY-NEXT: vmovaps 128(%rdx), %ymm2
1290 ; AVX1-ONLY-NEXT: vmovaps 96(%rdx), %ymm4
1291 ; AVX1-ONLY-NEXT: vmovaps 64(%rdx), %ymm6
1292 ; AVX1-ONLY-NEXT: vmovaps 32(%rdx), %ymm7
1293 ; AVX1-ONLY-NEXT: vmovaps (%rdx), %ymm8
1294 ; AVX1-ONLY-NEXT: vmovaps 160(%rcx), %ymm1
1295 ; AVX1-ONLY-NEXT: vmovaps 128(%rcx), %ymm3
1296 ; AVX1-ONLY-NEXT: vmovaps 96(%rcx), %ymm5
1297 ; AVX1-ONLY-NEXT: vmovaps 64(%rcx), %ymm9
1298 ; AVX1-ONLY-NEXT: vmovaps 32(%rcx), %ymm10
1299 ; AVX1-ONLY-NEXT: vmovaps (%rcx), %ymm11
1300 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm12 = ymm8[0],ymm11[0],ymm8[2],ymm11[2]
1301 ; AVX1-ONLY-NEXT: vmovaps 16(%rsi), %xmm13
1302 ; AVX1-ONLY-NEXT: vmovaps 16(%rdi), %xmm14
1303 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm15 = xmm14[0],xmm13[0]
1304 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm12 = ymm15[0,1,2,3],ymm12[4,5,6,7]
1305 ; AVX1-ONLY-NEXT: vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1306 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm8 = ymm8[1],ymm11[1],ymm8[3],ymm11[3]
1307 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm11 = xmm14[1],xmm13[1]
1308 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm8 = ymm11[0,1,2,3],ymm8[4,5,6,7]
1309 ; AVX1-ONLY-NEXT: vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1310 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm8 = ymm7[0],ymm10[0],ymm7[2],ymm10[2]
1311 ; AVX1-ONLY-NEXT: vmovaps 48(%rsi), %xmm11
1312 ; AVX1-ONLY-NEXT: vmovaps 48(%rdi), %xmm12
1313 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm13 = xmm12[0],xmm11[0]
1314 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
1315 ; AVX1-ONLY-NEXT: vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1316 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm7 = ymm7[1],ymm10[1],ymm7[3],ymm10[3]
1317 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm8 = xmm12[1],xmm11[1]
1318 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]
1319 ; AVX1-ONLY-NEXT: vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1320 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm7 = ymm6[0],ymm9[0],ymm6[2],ymm9[2]
1321 ; AVX1-ONLY-NEXT: vmovaps 80(%rsi), %xmm8
1322 ; AVX1-ONLY-NEXT: vmovaps 80(%rdi), %xmm10
1323 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm11 = xmm10[0],xmm8[0]
1324 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm7 = ymm11[0,1,2,3],ymm7[4,5,6,7]
1325 ; AVX1-ONLY-NEXT: vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1326 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm6 = ymm6[1],ymm9[1],ymm6[3],ymm9[3]
1327 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm7 = xmm10[1],xmm8[1]
1328 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]
1329 ; AVX1-ONLY-NEXT: vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1330 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm6 = ymm4[0],ymm5[0],ymm4[2],ymm5[2]
1331 ; AVX1-ONLY-NEXT: vmovaps 112(%rsi), %xmm7
1332 ; AVX1-ONLY-NEXT: vmovaps 112(%rdi), %xmm8
1333 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm9 = xmm8[0],xmm7[0]
1334 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm6 = ymm9[0,1,2,3],ymm6[4,5,6,7]
1335 ; AVX1-ONLY-NEXT: vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1336 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm4 = ymm4[1],ymm5[1],ymm4[3],ymm5[3]
1337 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm5 = xmm8[1],xmm7[1]
1338 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm4 = ymm5[0,1,2,3],ymm4[4,5,6,7]
1339 ; AVX1-ONLY-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1340 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
1341 ; AVX1-ONLY-NEXT: vmovaps 144(%rsi), %xmm5
1342 ; AVX1-ONLY-NEXT: vmovaps 144(%rdi), %xmm6
1343 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm7 = xmm6[0],xmm5[0]
1344 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm4 = ymm7[0,1,2,3],ymm4[4,5,6,7]
1345 ; AVX1-ONLY-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1346 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
1347 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm3 = xmm6[1],xmm5[1]
1348 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
1349 ; AVX1-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1350 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
1351 ; AVX1-ONLY-NEXT: vmovaps 176(%rsi), %xmm3
1352 ; AVX1-ONLY-NEXT: vmovaps 176(%rdi), %xmm4
1353 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm5 = xmm4[0],xmm3[0]
1354 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3],ymm2[4,5,6,7]
1355 ; AVX1-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1356 ; AVX1-ONLY-NEXT: vmovaps 192(%rdx), %ymm2
1357 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
1358 ; AVX1-ONLY-NEXT: vmovaps 192(%rcx), %ymm1
1359 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm3 = xmm4[1],xmm3[1]
1360 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm0[4,5,6,7]
1361 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1362 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm2[0],ymm1[0],ymm2[2],ymm1[2]
1363 ; AVX1-ONLY-NEXT: vmovaps 208(%rsi), %xmm3
1364 ; AVX1-ONLY-NEXT: vmovaps 208(%rdi), %xmm4
1365 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm5 = xmm4[0],xmm3[0]
1366 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm5[0,1,2,3],ymm0[4,5,6,7]
1367 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1368 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm2[1],ymm1[1],ymm2[3],ymm1[3]
1369 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm1 = xmm4[1],xmm3[1]
1370 ; AVX1-ONLY-NEXT: vmovaps 224(%rdx), %ymm2
1371 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
1372 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1373 ; AVX1-ONLY-NEXT: vmovaps 224(%rcx), %ymm0
1374 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm2[0],ymm0[0],ymm2[2],ymm0[2]
1375 ; AVX1-ONLY-NEXT: vmovaps 240(%rsi), %xmm3
1376 ; AVX1-ONLY-NEXT: vmovaps 240(%rdi), %xmm4
1377 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm5 = xmm4[0],xmm3[0]
1378 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm1 = ymm5[0,1,2,3],ymm1[4,5,6,7]
1379 ; AVX1-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1380 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm2[1],ymm0[1],ymm2[3],ymm0[3]
1381 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm1 = xmm4[1],xmm3[1]
1382 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
1383 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1384 ; AVX1-ONLY-NEXT: vmovaps 128(%rsi), %xmm0
1385 ; AVX1-ONLY-NEXT: vmovaps 128(%rdi), %xmm1
1386 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
1387 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1388 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
1389 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1390 ; AVX1-ONLY-NEXT: vmovaps 128(%rcx), %xmm0
1391 ; AVX1-ONLY-NEXT: vmovaps 128(%rdx), %xmm1
1392 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
1393 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1394 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
1395 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1396 ; AVX1-ONLY-NEXT: vmovaps 64(%rsi), %xmm0
1397 ; AVX1-ONLY-NEXT: vmovaps 64(%rdi), %xmm1
1398 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
1399 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1400 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
1401 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1402 ; AVX1-ONLY-NEXT: vmovaps 64(%rcx), %xmm0
1403 ; AVX1-ONLY-NEXT: vmovaps 64(%rdx), %xmm1
1404 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
1405 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1406 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
1407 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1408 ; AVX1-ONLY-NEXT: vmovaps 32(%rsi), %xmm0
1409 ; AVX1-ONLY-NEXT: vmovaps 32(%rdi), %xmm1
1410 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
1411 ; AVX1-ONLY-NEXT: vmovaps %xmm2, (%rsp) # 16-byte Spill
1412 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
1413 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1414 ; AVX1-ONLY-NEXT: vmovaps 32(%rcx), %xmm0
1415 ; AVX1-ONLY-NEXT: vmovaps 32(%rdx), %xmm1
1416 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
1417 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1418 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
1419 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1420 ; AVX1-ONLY-NEXT: vmovaps 96(%rsi), %xmm0
1421 ; AVX1-ONLY-NEXT: vmovaps 96(%rdi), %xmm1
1422 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
1423 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1424 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
1425 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1426 ; AVX1-ONLY-NEXT: vmovaps 96(%rcx), %xmm0
1427 ; AVX1-ONLY-NEXT: vmovaps 96(%rdx), %xmm1
1428 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
1429 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1430 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
1431 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1432 ; AVX1-ONLY-NEXT: vmovaps 160(%rsi), %xmm0
1433 ; AVX1-ONLY-NEXT: vmovaps 160(%rdi), %xmm1
1434 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
1435 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1436 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm15 = xmm1[1],xmm0[1]
1437 ; AVX1-ONLY-NEXT: vmovaps 160(%rcx), %xmm0
1438 ; AVX1-ONLY-NEXT: vmovaps 160(%rdx), %xmm1
1439 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm14 = xmm1[0],xmm0[0]
1440 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm13 = xmm1[1],xmm0[1]
1441 ; AVX1-ONLY-NEXT: vmovaps 224(%rsi), %xmm1
1442 ; AVX1-ONLY-NEXT: vmovaps 224(%rdi), %xmm0
1443 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm12 = xmm0[0],xmm1[0]
1444 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm11 = xmm0[1],xmm1[1]
1445 ; AVX1-ONLY-NEXT: vmovaps 224(%rcx), %xmm1
1446 ; AVX1-ONLY-NEXT: vmovaps 224(%rdx), %xmm0
1447 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm10 = xmm0[0],xmm1[0]
1448 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm9 = xmm0[1],xmm1[1]
1449 ; AVX1-ONLY-NEXT: vmovaps 192(%rsi), %xmm1
1450 ; AVX1-ONLY-NEXT: vmovaps 192(%rdi), %xmm0
1451 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm8 = xmm0[0],xmm1[0]
1452 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm7 = xmm0[1],xmm1[1]
1453 ; AVX1-ONLY-NEXT: vmovaps 192(%rcx), %xmm1
1454 ; AVX1-ONLY-NEXT: vmovaps 192(%rdx), %xmm0
1455 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm6 = xmm0[0],xmm1[0]
1456 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm5 = xmm0[1],xmm1[1]
1457 ; AVX1-ONLY-NEXT: vmovaps (%rsi), %xmm1
1458 ; AVX1-ONLY-NEXT: vmovaps (%rdi), %xmm0
1459 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm4 = xmm0[0],xmm1[0]
1460 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm3 = xmm0[1],xmm1[1]
1461 ; AVX1-ONLY-NEXT: vmovaps (%rcx), %xmm1
1462 ; AVX1-ONLY-NEXT: vmovaps (%rdx), %xmm0
1463 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm0[0],xmm1[0]
1464 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]
1465 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 48(%r8)
1466 ; AVX1-ONLY-NEXT: vmovaps %xmm3, 32(%r8)
1467 ; AVX1-ONLY-NEXT: vmovaps %xmm2, 16(%r8)
1468 ; AVX1-ONLY-NEXT: vmovaps %xmm4, (%r8)
1469 ; AVX1-ONLY-NEXT: vmovaps %xmm5, 816(%r8)
1470 ; AVX1-ONLY-NEXT: vmovaps %xmm7, 800(%r8)
1471 ; AVX1-ONLY-NEXT: vmovaps %xmm6, 784(%r8)
1472 ; AVX1-ONLY-NEXT: vmovaps %xmm8, 768(%r8)
1473 ; AVX1-ONLY-NEXT: vmovaps %xmm9, 944(%r8)
1474 ; AVX1-ONLY-NEXT: vmovaps %xmm11, 928(%r8)
1475 ; AVX1-ONLY-NEXT: vmovaps %xmm10, 912(%r8)
1476 ; AVX1-ONLY-NEXT: vmovaps %xmm12, 896(%r8)
1477 ; AVX1-ONLY-NEXT: vmovaps %xmm13, 688(%r8)
1478 ; AVX1-ONLY-NEXT: vmovaps %xmm15, 672(%r8)
1479 ; AVX1-ONLY-NEXT: vmovaps %xmm14, 656(%r8)
1480 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1481 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 640(%r8)
1482 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1483 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 432(%r8)
1484 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1485 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 416(%r8)
1486 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1487 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 400(%r8)
1488 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1489 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 384(%r8)
1490 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1491 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 176(%r8)
1492 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1493 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 160(%r8)
1494 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1495 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 144(%r8)
1496 ; AVX1-ONLY-NEXT: vmovaps (%rsp), %xmm0 # 16-byte Reload
1497 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 128(%r8)
1498 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1499 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 304(%r8)
1500 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1501 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 288(%r8)
1502 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1503 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 272(%r8)
1504 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1505 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 256(%r8)
1506 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1507 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 560(%r8)
1508 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1509 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 544(%r8)
1510 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1511 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 528(%r8)
1512 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1513 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 512(%r8)
1514 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1515 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 992(%r8)
1516 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1517 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 960(%r8)
1518 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1519 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 864(%r8)
1520 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1521 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 832(%r8)
1522 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1523 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 736(%r8)
1524 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1525 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 704(%r8)
1526 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1527 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 608(%r8)
1528 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1529 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 576(%r8)
1530 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1531 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 480(%r8)
1532 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1533 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 448(%r8)
1534 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1535 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 352(%r8)
1536 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1537 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 320(%r8)
1538 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1539 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 224(%r8)
1540 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1541 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 192(%r8)
1542 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1543 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 96(%r8)
1544 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1545 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 64(%r8)
1546 ; AVX1-ONLY-NEXT: addq $664, %rsp # imm = 0x298
1547 ; AVX1-ONLY-NEXT: vzeroupper
1548 ; AVX1-ONLY-NEXT: retq
1550 ; AVX2-ONLY-LABEL: store_i64_stride4_vf32:
1551 ; AVX2-ONLY: # %bb.0:
1552 ; AVX2-ONLY-NEXT: subq $520, %rsp # imm = 0x208
1553 ; AVX2-ONLY-NEXT: vmovaps (%rsi), %xmm0
1554 ; AVX2-ONLY-NEXT: vmovaps 32(%rsi), %xmm1
1555 ; AVX2-ONLY-NEXT: vmovaps 64(%rsi), %xmm2
1556 ; AVX2-ONLY-NEXT: vinsertf128 $1, (%rcx), %ymm0, %ymm0
1557 ; AVX2-ONLY-NEXT: vmovaps (%rdi), %xmm3
1558 ; AVX2-ONLY-NEXT: vmovaps 32(%rdi), %xmm4
1559 ; AVX2-ONLY-NEXT: vmovaps 64(%rdi), %xmm5
1560 ; AVX2-ONLY-NEXT: vinsertf128 $1, (%rdx), %ymm3, %ymm3
1561 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm6 = ymm3[0],ymm0[0],ymm3[2],ymm0[2]
1562 ; AVX2-ONLY-NEXT: vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1563 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm3[1],ymm0[1],ymm3[3],ymm0[3]
1564 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1565 ; AVX2-ONLY-NEXT: vinsertf128 $1, 32(%rcx), %ymm1, %ymm0
1566 ; AVX2-ONLY-NEXT: vinsertf128 $1, 32(%rdx), %ymm4, %ymm1
1567 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
1568 ; AVX2-ONLY-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1569 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
1570 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1571 ; AVX2-ONLY-NEXT: vinsertf128 $1, 64(%rcx), %ymm2, %ymm0
1572 ; AVX2-ONLY-NEXT: vinsertf128 $1, 64(%rdx), %ymm5, %ymm1
1573 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
1574 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1575 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
1576 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1577 ; AVX2-ONLY-NEXT: vmovaps 96(%rsi), %xmm0
1578 ; AVX2-ONLY-NEXT: vinsertf128 $1, 96(%rcx), %ymm0, %ymm0
1579 ; AVX2-ONLY-NEXT: vmovaps 96(%rdi), %xmm1
1580 ; AVX2-ONLY-NEXT: vinsertf128 $1, 96(%rdx), %ymm1, %ymm1
1581 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
1582 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1583 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
1584 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1585 ; AVX2-ONLY-NEXT: vmovaps 128(%rsi), %xmm0
1586 ; AVX2-ONLY-NEXT: vinsertf128 $1, 128(%rcx), %ymm0, %ymm0
1587 ; AVX2-ONLY-NEXT: vmovaps 128(%rdi), %xmm1
1588 ; AVX2-ONLY-NEXT: vinsertf128 $1, 128(%rdx), %ymm1, %ymm1
1589 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
1590 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1591 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
1592 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1593 ; AVX2-ONLY-NEXT: vmovaps 160(%rsi), %xmm0
1594 ; AVX2-ONLY-NEXT: vinsertf128 $1, 160(%rcx), %ymm0, %ymm0
1595 ; AVX2-ONLY-NEXT: vmovaps 160(%rdi), %xmm1
1596 ; AVX2-ONLY-NEXT: vinsertf128 $1, 160(%rdx), %ymm1, %ymm1
1597 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
1598 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1599 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
1600 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1601 ; AVX2-ONLY-NEXT: vmovaps 192(%rsi), %xmm0
1602 ; AVX2-ONLY-NEXT: vinsertf128 $1, 192(%rcx), %ymm0, %ymm0
1603 ; AVX2-ONLY-NEXT: vmovaps 192(%rdi), %xmm1
1604 ; AVX2-ONLY-NEXT: vinsertf128 $1, 192(%rdx), %ymm1, %ymm1
1605 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
1606 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1607 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
1608 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1609 ; AVX2-ONLY-NEXT: vmovaps 224(%rsi), %xmm0
1610 ; AVX2-ONLY-NEXT: vinsertf128 $1, 224(%rcx), %ymm0, %ymm0
1611 ; AVX2-ONLY-NEXT: vmovaps 224(%rdi), %xmm1
1612 ; AVX2-ONLY-NEXT: vinsertf128 $1, 224(%rdx), %ymm1, %ymm1
1613 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
1614 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1615 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
1616 ; AVX2-ONLY-NEXT: vmovups %ymm0, (%rsp) # 32-byte Spill
1617 ; AVX2-ONLY-NEXT: vmovaps (%rdi), %ymm0
1618 ; AVX2-ONLY-NEXT: vmovaps (%rsi), %ymm1
1619 ; AVX2-ONLY-NEXT: vmovaps (%rdx), %ymm2
1620 ; AVX2-ONLY-NEXT: vmovaps (%rcx), %ymm3
1621 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
1622 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
1623 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]
1624 ; AVX2-ONLY-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1625 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
1626 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
1627 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]
1628 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1629 ; AVX2-ONLY-NEXT: vmovaps 32(%rdi), %ymm0
1630 ; AVX2-ONLY-NEXT: vmovaps 32(%rsi), %ymm1
1631 ; AVX2-ONLY-NEXT: vmovaps 32(%rdx), %ymm2
1632 ; AVX2-ONLY-NEXT: vmovaps 32(%rcx), %ymm3
1633 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
1634 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
1635 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]
1636 ; AVX2-ONLY-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1637 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
1638 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
1639 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]
1640 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1641 ; AVX2-ONLY-NEXT: vmovaps 64(%rdi), %ymm0
1642 ; AVX2-ONLY-NEXT: vmovaps 64(%rsi), %ymm1
1643 ; AVX2-ONLY-NEXT: vmovaps 64(%rdx), %ymm2
1644 ; AVX2-ONLY-NEXT: vmovaps 64(%rcx), %ymm3
1645 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
1646 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
1647 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm10 = ymm5[2,3],ymm4[2,3]
1648 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
1649 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
1650 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm9 = ymm0[2,3],ymm2[2,3]
1651 ; AVX2-ONLY-NEXT: vmovaps 96(%rdi), %ymm3
1652 ; AVX2-ONLY-NEXT: vmovaps 96(%rsi), %ymm1
1653 ; AVX2-ONLY-NEXT: vmovaps 96(%rdx), %ymm2
1654 ; AVX2-ONLY-NEXT: vmovaps 96(%rcx), %ymm0
1655 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm0[0],ymm2[2],ymm0[2]
1656 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm11 = ymm3[0],ymm1[0],ymm3[2],ymm1[2]
1657 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm8 = ymm11[2,3],ymm4[2,3]
1658 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm2[1],ymm0[1],ymm2[3],ymm0[3]
1659 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm3[1],ymm1[1],ymm3[3],ymm1[3]
1660 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm7 = ymm1[2,3],ymm0[2,3]
1661 ; AVX2-ONLY-NEXT: vmovaps 128(%rdi), %ymm1
1662 ; AVX2-ONLY-NEXT: vmovaps 128(%rsi), %ymm3
1663 ; AVX2-ONLY-NEXT: vmovaps 128(%rdx), %ymm11
1664 ; AVX2-ONLY-NEXT: vmovaps 128(%rcx), %ymm0
1665 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm11[0],ymm0[0],ymm11[2],ymm0[2]
1666 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm13 = ymm1[0],ymm3[0],ymm1[2],ymm3[2]
1667 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm6 = ymm13[2,3],ymm2[2,3]
1668 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm11[1],ymm0[1],ymm11[3],ymm0[3]
1669 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm3[1],ymm1[3],ymm3[3]
1670 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm5 = ymm1[2,3],ymm0[2,3]
1671 ; AVX2-ONLY-NEXT: vmovaps 160(%rdi), %ymm1
1672 ; AVX2-ONLY-NEXT: vmovaps 160(%rsi), %ymm3
1673 ; AVX2-ONLY-NEXT: vmovaps 160(%rdx), %ymm11
1674 ; AVX2-ONLY-NEXT: vmovaps 160(%rcx), %ymm13
1675 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm11[0],ymm13[0],ymm11[2],ymm13[2]
1676 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm15 = ymm1[0],ymm3[0],ymm1[2],ymm3[2]
1677 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm15[2,3],ymm0[2,3]
1678 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm11 = ymm11[1],ymm13[1],ymm11[3],ymm13[3]
1679 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm3[1],ymm1[3],ymm3[3]
1680 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm2 = ymm1[2,3],ymm11[2,3]
1681 ; AVX2-ONLY-NEXT: vmovaps 192(%rdi), %ymm3
1682 ; AVX2-ONLY-NEXT: vmovaps 192(%rsi), %ymm11
1683 ; AVX2-ONLY-NEXT: vmovaps 192(%rdx), %ymm13
1684 ; AVX2-ONLY-NEXT: vmovaps 192(%rcx), %ymm15
1685 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm13[0],ymm15[0],ymm13[2],ymm15[2]
1686 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm14 = ymm3[0],ymm11[0],ymm3[2],ymm11[2]
1687 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm1 = ymm14[2,3],ymm0[2,3]
1688 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm13 = ymm13[1],ymm15[1],ymm13[3],ymm15[3]
1689 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm3 = ymm3[1],ymm11[1],ymm3[3],ymm11[3]
1690 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm3 = ymm3[2,3],ymm13[2,3]
1691 ; AVX2-ONLY-NEXT: vmovaps 224(%rdi), %ymm11
1692 ; AVX2-ONLY-NEXT: vmovaps 224(%rsi), %ymm13
1693 ; AVX2-ONLY-NEXT: vmovaps 224(%rdx), %ymm14
1694 ; AVX2-ONLY-NEXT: vmovaps 224(%rcx), %ymm15
1695 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm14[0],ymm15[0],ymm14[2],ymm15[2]
1696 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm12 = ymm11[0],ymm13[0],ymm11[2],ymm13[2]
1697 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm12[2,3],ymm0[2,3]
1698 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm12 = ymm14[1],ymm15[1],ymm14[3],ymm15[3]
1699 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm11 = ymm11[1],ymm13[1],ymm11[3],ymm13[3]
1700 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm11 = ymm11[2,3],ymm12[2,3]
1701 ; AVX2-ONLY-NEXT: vmovaps %ymm11, 992(%r8)
1702 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 960(%r8)
1703 ; AVX2-ONLY-NEXT: vmovaps %ymm3, 864(%r8)
1704 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 832(%r8)
1705 ; AVX2-ONLY-NEXT: vmovaps %ymm2, 736(%r8)
1706 ; AVX2-ONLY-NEXT: vmovaps %ymm4, 704(%r8)
1707 ; AVX2-ONLY-NEXT: vmovaps %ymm5, 608(%r8)
1708 ; AVX2-ONLY-NEXT: vmovaps %ymm6, 576(%r8)
1709 ; AVX2-ONLY-NEXT: vmovaps %ymm7, 480(%r8)
1710 ; AVX2-ONLY-NEXT: vmovaps %ymm8, 448(%r8)
1711 ; AVX2-ONLY-NEXT: vmovaps %ymm9, 352(%r8)
1712 ; AVX2-ONLY-NEXT: vmovaps %ymm10, 320(%r8)
1713 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1714 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 224(%r8)
1715 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1716 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 192(%r8)
1717 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1718 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 96(%r8)
1719 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1720 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 64(%r8)
1721 ; AVX2-ONLY-NEXT: vmovups (%rsp), %ymm0 # 32-byte Reload
1722 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 928(%r8)
1723 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1724 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 896(%r8)
1725 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1726 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 800(%r8)
1727 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1728 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 768(%r8)
1729 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1730 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 672(%r8)
1731 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1732 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 640(%r8)
1733 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1734 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 544(%r8)
1735 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1736 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 512(%r8)
1737 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1738 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 416(%r8)
1739 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1740 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 384(%r8)
1741 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1742 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 288(%r8)
1743 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1744 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 256(%r8)
1745 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1746 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 160(%r8)
1747 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1748 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 128(%r8)
1749 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1750 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 32(%r8)
1751 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1752 ; AVX2-ONLY-NEXT: vmovaps %ymm0, (%r8)
1753 ; AVX2-ONLY-NEXT: addq $520, %rsp # imm = 0x208
1754 ; AVX2-ONLY-NEXT: vzeroupper
1755 ; AVX2-ONLY-NEXT: retq
1757 ; AVX512F-LABEL: store_i64_stride4_vf32:
1759 ; AVX512F-NEXT: vmovdqa64 (%rdi), %zmm0
1760 ; AVX512F-NEXT: vmovdqa64 64(%rdi), %zmm1
1761 ; AVX512F-NEXT: vmovdqa64 128(%rdi), %zmm2
1762 ; AVX512F-NEXT: vmovdqa64 192(%rdi), %zmm3
1763 ; AVX512F-NEXT: vmovdqa64 (%rsi), %zmm17
1764 ; AVX512F-NEXT: vmovdqa64 64(%rsi), %zmm23
1765 ; AVX512F-NEXT: vmovdqa64 128(%rsi), %zmm12
1766 ; AVX512F-NEXT: vmovdqa64 192(%rsi), %zmm5
1767 ; AVX512F-NEXT: vmovdqa64 (%rdx), %zmm22
1768 ; AVX512F-NEXT: vmovdqa64 64(%rdx), %zmm25
1769 ; AVX512F-NEXT: vmovdqa64 128(%rdx), %zmm13
1770 ; AVX512F-NEXT: vmovdqa64 192(%rdx), %zmm6
1771 ; AVX512F-NEXT: vmovdqa64 (%rcx), %zmm21
1772 ; AVX512F-NEXT: vmovdqa64 64(%rcx), %zmm26
1773 ; AVX512F-NEXT: vmovdqa64 128(%rcx), %zmm19
1774 ; AVX512F-NEXT: vmovdqa64 192(%rcx), %zmm9
1775 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm14 = <u,u,2,10,u,u,3,11>
1776 ; AVX512F-NEXT: vmovdqa64 %zmm22, %zmm8
1777 ; AVX512F-NEXT: vpermt2q %zmm21, %zmm14, %zmm8
1778 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm7 = <2,10,u,u,3,11,u,u>
1779 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm4
1780 ; AVX512F-NEXT: vpermt2q %zmm17, %zmm7, %zmm4
1781 ; AVX512F-NEXT: movb $-52, %al
1782 ; AVX512F-NEXT: kmovw %eax, %k1
1783 ; AVX512F-NEXT: vmovdqa64 %zmm8, %zmm4 {%k1}
1784 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm16 = <u,u,0,8,u,u,1,9>
1785 ; AVX512F-NEXT: vmovdqa64 %zmm22, %zmm10
1786 ; AVX512F-NEXT: vpermt2q %zmm21, %zmm16, %zmm10
1787 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm11 = <0,8,u,u,1,9,u,u>
1788 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm8
1789 ; AVX512F-NEXT: vpermt2q %zmm17, %zmm11, %zmm8
1790 ; AVX512F-NEXT: vmovdqa64 %zmm10, %zmm8 {%k1}
1791 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm18 = <u,u,6,14,u,u,7,15>
1792 ; AVX512F-NEXT: vmovdqa64 %zmm22, %zmm20
1793 ; AVX512F-NEXT: vpermt2q %zmm21, %zmm18, %zmm20
1794 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm15 = <6,14,u,u,7,15,u,u>
1795 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm10
1796 ; AVX512F-NEXT: vpermt2q %zmm17, %zmm15, %zmm10
1797 ; AVX512F-NEXT: vmovdqa64 %zmm20, %zmm10 {%k1}
1798 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm20 = <u,u,4,12,u,u,5,13>
1799 ; AVX512F-NEXT: vpermt2q %zmm21, %zmm20, %zmm22
1800 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm21 = <4,12,u,u,5,13,u,u>
1801 ; AVX512F-NEXT: vpermt2q %zmm17, %zmm21, %zmm0
1802 ; AVX512F-NEXT: vmovdqa64 %zmm22, %zmm0 {%k1}
1803 ; AVX512F-NEXT: vmovdqa64 %zmm25, %zmm22
1804 ; AVX512F-NEXT: vpermt2q %zmm26, %zmm14, %zmm22
1805 ; AVX512F-NEXT: vmovdqa64 %zmm1, %zmm17
1806 ; AVX512F-NEXT: vpermt2q %zmm23, %zmm7, %zmm17
1807 ; AVX512F-NEXT: vmovdqa64 %zmm22, %zmm17 {%k1}
1808 ; AVX512F-NEXT: vmovdqa64 %zmm25, %zmm24
1809 ; AVX512F-NEXT: vpermt2q %zmm26, %zmm16, %zmm24
1810 ; AVX512F-NEXT: vmovdqa64 %zmm1, %zmm22
1811 ; AVX512F-NEXT: vpermt2q %zmm23, %zmm11, %zmm22
1812 ; AVX512F-NEXT: vmovdqa64 %zmm24, %zmm22 {%k1}
1813 ; AVX512F-NEXT: vmovdqa64 %zmm25, %zmm27
1814 ; AVX512F-NEXT: vpermt2q %zmm26, %zmm18, %zmm27
1815 ; AVX512F-NEXT: vmovdqa64 %zmm1, %zmm24
1816 ; AVX512F-NEXT: vpermt2q %zmm23, %zmm15, %zmm24
1817 ; AVX512F-NEXT: vmovdqa64 %zmm27, %zmm24 {%k1}
1818 ; AVX512F-NEXT: vpermt2q %zmm26, %zmm20, %zmm25
1819 ; AVX512F-NEXT: vpermt2q %zmm23, %zmm21, %zmm1
1820 ; AVX512F-NEXT: vmovdqa64 %zmm25, %zmm1 {%k1}
1821 ; AVX512F-NEXT: vmovdqa64 %zmm13, %zmm23
1822 ; AVX512F-NEXT: vpermt2q %zmm19, %zmm14, %zmm23
1823 ; AVX512F-NEXT: vmovdqa64 %zmm2, %zmm25
1824 ; AVX512F-NEXT: vpermt2q %zmm12, %zmm7, %zmm25
1825 ; AVX512F-NEXT: vmovdqa64 %zmm23, %zmm25 {%k1}
1826 ; AVX512F-NEXT: vmovdqa64 %zmm13, %zmm23
1827 ; AVX512F-NEXT: vpermt2q %zmm19, %zmm16, %zmm23
1828 ; AVX512F-NEXT: vmovdqa64 %zmm2, %zmm26
1829 ; AVX512F-NEXT: vpermt2q %zmm12, %zmm11, %zmm26
1830 ; AVX512F-NEXT: vmovdqa64 %zmm23, %zmm26 {%k1}
1831 ; AVX512F-NEXT: vmovdqa64 %zmm13, %zmm23
1832 ; AVX512F-NEXT: vpermt2q %zmm19, %zmm18, %zmm23
1833 ; AVX512F-NEXT: vmovdqa64 %zmm2, %zmm27
1834 ; AVX512F-NEXT: vpermt2q %zmm12, %zmm15, %zmm27
1835 ; AVX512F-NEXT: vmovdqa64 %zmm23, %zmm27 {%k1}
1836 ; AVX512F-NEXT: vpermt2q %zmm19, %zmm20, %zmm13
1837 ; AVX512F-NEXT: vpermt2q %zmm12, %zmm21, %zmm2
1838 ; AVX512F-NEXT: vmovdqa64 %zmm13, %zmm2 {%k1}
1839 ; AVX512F-NEXT: vpermi2q %zmm9, %zmm6, %zmm14
1840 ; AVX512F-NEXT: vpermi2q %zmm5, %zmm3, %zmm7
1841 ; AVX512F-NEXT: vmovdqa64 %zmm14, %zmm7 {%k1}
1842 ; AVX512F-NEXT: vpermi2q %zmm9, %zmm6, %zmm16
1843 ; AVX512F-NEXT: vpermi2q %zmm5, %zmm3, %zmm11
1844 ; AVX512F-NEXT: vmovdqa64 %zmm16, %zmm11 {%k1}
1845 ; AVX512F-NEXT: vpermi2q %zmm9, %zmm6, %zmm18
1846 ; AVX512F-NEXT: vpermi2q %zmm5, %zmm3, %zmm15
1847 ; AVX512F-NEXT: vmovdqa64 %zmm18, %zmm15 {%k1}
1848 ; AVX512F-NEXT: vpermt2q %zmm9, %zmm20, %zmm6
1849 ; AVX512F-NEXT: vpermt2q %zmm5, %zmm21, %zmm3
1850 ; AVX512F-NEXT: vmovdqa64 %zmm6, %zmm3 {%k1}
1851 ; AVX512F-NEXT: vmovdqa64 %zmm3, 896(%r8)
1852 ; AVX512F-NEXT: vmovdqa64 %zmm15, 960(%r8)
1853 ; AVX512F-NEXT: vmovdqa64 %zmm11, 768(%r8)
1854 ; AVX512F-NEXT: vmovdqa64 %zmm7, 832(%r8)
1855 ; AVX512F-NEXT: vmovdqa64 %zmm2, 640(%r8)
1856 ; AVX512F-NEXT: vmovdqa64 %zmm27, 704(%r8)
1857 ; AVX512F-NEXT: vmovdqa64 %zmm26, 512(%r8)
1858 ; AVX512F-NEXT: vmovdqa64 %zmm25, 576(%r8)
1859 ; AVX512F-NEXT: vmovdqa64 %zmm1, 384(%r8)
1860 ; AVX512F-NEXT: vmovdqa64 %zmm24, 448(%r8)
1861 ; AVX512F-NEXT: vmovdqa64 %zmm22, 256(%r8)
1862 ; AVX512F-NEXT: vmovdqa64 %zmm17, 320(%r8)
1863 ; AVX512F-NEXT: vmovdqa64 %zmm0, 128(%r8)
1864 ; AVX512F-NEXT: vmovdqa64 %zmm10, 192(%r8)
1865 ; AVX512F-NEXT: vmovdqa64 %zmm8, (%r8)
1866 ; AVX512F-NEXT: vmovdqa64 %zmm4, 64(%r8)
1867 ; AVX512F-NEXT: vzeroupper
1868 ; AVX512F-NEXT: retq
1870 ; AVX512BW-LABEL: store_i64_stride4_vf32:
1871 ; AVX512BW: # %bb.0:
1872 ; AVX512BW-NEXT: vmovdqa64 (%rdi), %zmm0
1873 ; AVX512BW-NEXT: vmovdqa64 64(%rdi), %zmm1
1874 ; AVX512BW-NEXT: vmovdqa64 128(%rdi), %zmm2
1875 ; AVX512BW-NEXT: vmovdqa64 192(%rdi), %zmm3
1876 ; AVX512BW-NEXT: vmovdqa64 (%rsi), %zmm17
1877 ; AVX512BW-NEXT: vmovdqa64 64(%rsi), %zmm23
1878 ; AVX512BW-NEXT: vmovdqa64 128(%rsi), %zmm12
1879 ; AVX512BW-NEXT: vmovdqa64 192(%rsi), %zmm5
1880 ; AVX512BW-NEXT: vmovdqa64 (%rdx), %zmm22
1881 ; AVX512BW-NEXT: vmovdqa64 64(%rdx), %zmm25
1882 ; AVX512BW-NEXT: vmovdqa64 128(%rdx), %zmm13
1883 ; AVX512BW-NEXT: vmovdqa64 192(%rdx), %zmm6
1884 ; AVX512BW-NEXT: vmovdqa64 (%rcx), %zmm21
1885 ; AVX512BW-NEXT: vmovdqa64 64(%rcx), %zmm26
1886 ; AVX512BW-NEXT: vmovdqa64 128(%rcx), %zmm19
1887 ; AVX512BW-NEXT: vmovdqa64 192(%rcx), %zmm9
1888 ; AVX512BW-NEXT: vmovdqa64 {{.*#+}} zmm14 = <u,u,2,10,u,u,3,11>
1889 ; AVX512BW-NEXT: vmovdqa64 %zmm22, %zmm8
1890 ; AVX512BW-NEXT: vpermt2q %zmm21, %zmm14, %zmm8
1891 ; AVX512BW-NEXT: vmovdqa64 {{.*#+}} zmm7 = <2,10,u,u,3,11,u,u>
1892 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm4
1893 ; AVX512BW-NEXT: vpermt2q %zmm17, %zmm7, %zmm4
1894 ; AVX512BW-NEXT: movb $-52, %al
1895 ; AVX512BW-NEXT: kmovd %eax, %k1
1896 ; AVX512BW-NEXT: vmovdqa64 %zmm8, %zmm4 {%k1}
1897 ; AVX512BW-NEXT: vmovdqa64 {{.*#+}} zmm16 = <u,u,0,8,u,u,1,9>
1898 ; AVX512BW-NEXT: vmovdqa64 %zmm22, %zmm10
1899 ; AVX512BW-NEXT: vpermt2q %zmm21, %zmm16, %zmm10
1900 ; AVX512BW-NEXT: vmovdqa64 {{.*#+}} zmm11 = <0,8,u,u,1,9,u,u>
1901 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm8
1902 ; AVX512BW-NEXT: vpermt2q %zmm17, %zmm11, %zmm8
1903 ; AVX512BW-NEXT: vmovdqa64 %zmm10, %zmm8 {%k1}
1904 ; AVX512BW-NEXT: vmovdqa64 {{.*#+}} zmm18 = <u,u,6,14,u,u,7,15>
1905 ; AVX512BW-NEXT: vmovdqa64 %zmm22, %zmm20
1906 ; AVX512BW-NEXT: vpermt2q %zmm21, %zmm18, %zmm20
1907 ; AVX512BW-NEXT: vmovdqa64 {{.*#+}} zmm15 = <6,14,u,u,7,15,u,u>
1908 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm10
1909 ; AVX512BW-NEXT: vpermt2q %zmm17, %zmm15, %zmm10
1910 ; AVX512BW-NEXT: vmovdqa64 %zmm20, %zmm10 {%k1}
1911 ; AVX512BW-NEXT: vmovdqa64 {{.*#+}} zmm20 = <u,u,4,12,u,u,5,13>
1912 ; AVX512BW-NEXT: vpermt2q %zmm21, %zmm20, %zmm22
1913 ; AVX512BW-NEXT: vmovdqa64 {{.*#+}} zmm21 = <4,12,u,u,5,13,u,u>
1914 ; AVX512BW-NEXT: vpermt2q %zmm17, %zmm21, %zmm0
1915 ; AVX512BW-NEXT: vmovdqa64 %zmm22, %zmm0 {%k1}
1916 ; AVX512BW-NEXT: vmovdqa64 %zmm25, %zmm22
1917 ; AVX512BW-NEXT: vpermt2q %zmm26, %zmm14, %zmm22
1918 ; AVX512BW-NEXT: vmovdqa64 %zmm1, %zmm17
1919 ; AVX512BW-NEXT: vpermt2q %zmm23, %zmm7, %zmm17
1920 ; AVX512BW-NEXT: vmovdqa64 %zmm22, %zmm17 {%k1}
1921 ; AVX512BW-NEXT: vmovdqa64 %zmm25, %zmm24
1922 ; AVX512BW-NEXT: vpermt2q %zmm26, %zmm16, %zmm24
1923 ; AVX512BW-NEXT: vmovdqa64 %zmm1, %zmm22
1924 ; AVX512BW-NEXT: vpermt2q %zmm23, %zmm11, %zmm22
1925 ; AVX512BW-NEXT: vmovdqa64 %zmm24, %zmm22 {%k1}
1926 ; AVX512BW-NEXT: vmovdqa64 %zmm25, %zmm27
1927 ; AVX512BW-NEXT: vpermt2q %zmm26, %zmm18, %zmm27
1928 ; AVX512BW-NEXT: vmovdqa64 %zmm1, %zmm24
1929 ; AVX512BW-NEXT: vpermt2q %zmm23, %zmm15, %zmm24
1930 ; AVX512BW-NEXT: vmovdqa64 %zmm27, %zmm24 {%k1}
1931 ; AVX512BW-NEXT: vpermt2q %zmm26, %zmm20, %zmm25
1932 ; AVX512BW-NEXT: vpermt2q %zmm23, %zmm21, %zmm1
1933 ; AVX512BW-NEXT: vmovdqa64 %zmm25, %zmm1 {%k1}
1934 ; AVX512BW-NEXT: vmovdqa64 %zmm13, %zmm23
1935 ; AVX512BW-NEXT: vpermt2q %zmm19, %zmm14, %zmm23
1936 ; AVX512BW-NEXT: vmovdqa64 %zmm2, %zmm25
1937 ; AVX512BW-NEXT: vpermt2q %zmm12, %zmm7, %zmm25
1938 ; AVX512BW-NEXT: vmovdqa64 %zmm23, %zmm25 {%k1}
1939 ; AVX512BW-NEXT: vmovdqa64 %zmm13, %zmm23
1940 ; AVX512BW-NEXT: vpermt2q %zmm19, %zmm16, %zmm23
1941 ; AVX512BW-NEXT: vmovdqa64 %zmm2, %zmm26
1942 ; AVX512BW-NEXT: vpermt2q %zmm12, %zmm11, %zmm26
1943 ; AVX512BW-NEXT: vmovdqa64 %zmm23, %zmm26 {%k1}
1944 ; AVX512BW-NEXT: vmovdqa64 %zmm13, %zmm23
1945 ; AVX512BW-NEXT: vpermt2q %zmm19, %zmm18, %zmm23
1946 ; AVX512BW-NEXT: vmovdqa64 %zmm2, %zmm27
1947 ; AVX512BW-NEXT: vpermt2q %zmm12, %zmm15, %zmm27
1948 ; AVX512BW-NEXT: vmovdqa64 %zmm23, %zmm27 {%k1}
1949 ; AVX512BW-NEXT: vpermt2q %zmm19, %zmm20, %zmm13
1950 ; AVX512BW-NEXT: vpermt2q %zmm12, %zmm21, %zmm2
1951 ; AVX512BW-NEXT: vmovdqa64 %zmm13, %zmm2 {%k1}
1952 ; AVX512BW-NEXT: vpermi2q %zmm9, %zmm6, %zmm14
1953 ; AVX512BW-NEXT: vpermi2q %zmm5, %zmm3, %zmm7
1954 ; AVX512BW-NEXT: vmovdqa64 %zmm14, %zmm7 {%k1}
1955 ; AVX512BW-NEXT: vpermi2q %zmm9, %zmm6, %zmm16
1956 ; AVX512BW-NEXT: vpermi2q %zmm5, %zmm3, %zmm11
1957 ; AVX512BW-NEXT: vmovdqa64 %zmm16, %zmm11 {%k1}
1958 ; AVX512BW-NEXT: vpermi2q %zmm9, %zmm6, %zmm18
1959 ; AVX512BW-NEXT: vpermi2q %zmm5, %zmm3, %zmm15
1960 ; AVX512BW-NEXT: vmovdqa64 %zmm18, %zmm15 {%k1}
1961 ; AVX512BW-NEXT: vpermt2q %zmm9, %zmm20, %zmm6
1962 ; AVX512BW-NEXT: vpermt2q %zmm5, %zmm21, %zmm3
1963 ; AVX512BW-NEXT: vmovdqa64 %zmm6, %zmm3 {%k1}
1964 ; AVX512BW-NEXT: vmovdqa64 %zmm3, 896(%r8)
1965 ; AVX512BW-NEXT: vmovdqa64 %zmm15, 960(%r8)
1966 ; AVX512BW-NEXT: vmovdqa64 %zmm11, 768(%r8)
1967 ; AVX512BW-NEXT: vmovdqa64 %zmm7, 832(%r8)
1968 ; AVX512BW-NEXT: vmovdqa64 %zmm2, 640(%r8)
1969 ; AVX512BW-NEXT: vmovdqa64 %zmm27, 704(%r8)
1970 ; AVX512BW-NEXT: vmovdqa64 %zmm26, 512(%r8)
1971 ; AVX512BW-NEXT: vmovdqa64 %zmm25, 576(%r8)
1972 ; AVX512BW-NEXT: vmovdqa64 %zmm1, 384(%r8)
1973 ; AVX512BW-NEXT: vmovdqa64 %zmm24, 448(%r8)
1974 ; AVX512BW-NEXT: vmovdqa64 %zmm22, 256(%r8)
1975 ; AVX512BW-NEXT: vmovdqa64 %zmm17, 320(%r8)
1976 ; AVX512BW-NEXT: vmovdqa64 %zmm0, 128(%r8)
1977 ; AVX512BW-NEXT: vmovdqa64 %zmm10, 192(%r8)
1978 ; AVX512BW-NEXT: vmovdqa64 %zmm8, (%r8)
1979 ; AVX512BW-NEXT: vmovdqa64 %zmm4, 64(%r8)
1980 ; AVX512BW-NEXT: vzeroupper
1981 ; AVX512BW-NEXT: retq
1982 %in.vec0 = load <32 x i64>, ptr %in.vecptr0, align 64
1983 %in.vec1 = load <32 x i64>, ptr %in.vecptr1, align 64
1984 %in.vec2 = load <32 x i64>, ptr %in.vecptr2, align 64
1985 %in.vec3 = load <32 x i64>, ptr %in.vecptr3, align 64
1986 %1 = shufflevector <32 x i64> %in.vec0, <32 x i64> %in.vec1, <64 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63>
1987 %2 = shufflevector <32 x i64> %in.vec2, <32 x i64> %in.vec3, <64 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63>
1988 %3 = shufflevector <64 x i64> %1, <64 x i64> %2, <128 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127>
1989 %interleaved.vec = shufflevector <128 x i64> %3, <128 x i64> poison, <128 x i32> <i32 0, i32 32, i32 64, i32 96, i32 1, i32 33, i32 65, i32 97, i32 2, i32 34, i32 66, i32 98, i32 3, i32 35, i32 67, i32 99, i32 4, i32 36, i32 68, i32 100, i32 5, i32 37, i32 69, i32 101, i32 6, i32 38, i32 70, i32 102, i32 7, i32 39, i32 71, i32 103, i32 8, i32 40, i32 72, i32 104, i32 9, i32 41, i32 73, i32 105, i32 10, i32 42, i32 74, i32 106, i32 11, i32 43, i32 75, i32 107, i32 12, i32 44, i32 76, i32 108, i32 13, i32 45, i32 77, i32 109, i32 14, i32 46, i32 78, i32 110, i32 15, i32 47, i32 79, i32 111, i32 16, i32 48, i32 80, i32 112, i32 17, i32 49, i32 81, i32 113, i32 18, i32 50, i32 82, i32 114, i32 19, i32 51, i32 83, i32 115, i32 20, i32 52, i32 84, i32 116, i32 21, i32 53, i32 85, i32 117, i32 22, i32 54, i32 86, i32 118, i32 23, i32 55, i32 87, i32 119, i32 24, i32 56, i32 88, i32 120, i32 25, i32 57, i32 89, i32 121, i32 26, i32 58, i32 90, i32 122, i32 27, i32 59, i32 91, i32 123, i32 28, i32 60, i32 92, i32 124, i32 29, i32 61, i32 93, i32 125, i32 30, i32 62, i32 94, i32 126, i32 31, i32 63, i32 95, i32 127>
1990 store <128 x i64> %interleaved.vec, ptr %out.vec, align 64
1994 define void @store_i64_stride4_vf64(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %out.vec) nounwind {
1995 ; SSE-LABEL: store_i64_stride4_vf64:
1997 ; SSE-NEXT: subq $1688, %rsp # imm = 0x698
1998 ; SSE-NEXT: movaps (%rdi), %xmm7
1999 ; SSE-NEXT: movaps 16(%rdi), %xmm8
2000 ; SSE-NEXT: movaps 32(%rdi), %xmm9
2001 ; SSE-NEXT: movaps 48(%rdi), %xmm10
2002 ; SSE-NEXT: movaps (%rsi), %xmm3
2003 ; SSE-NEXT: movaps 16(%rsi), %xmm2
2004 ; SSE-NEXT: movaps 32(%rsi), %xmm1
2005 ; SSE-NEXT: movaps 48(%rsi), %xmm0
2006 ; SSE-NEXT: movaps (%rdx), %xmm11
2007 ; SSE-NEXT: movaps 16(%rdx), %xmm12
2008 ; SSE-NEXT: movaps 32(%rdx), %xmm13
2009 ; SSE-NEXT: movaps 48(%rdx), %xmm14
2010 ; SSE-NEXT: movaps (%rcx), %xmm4
2011 ; SSE-NEXT: movaps 16(%rcx), %xmm5
2012 ; SSE-NEXT: movaps 32(%rcx), %xmm6
2013 ; SSE-NEXT: movaps %xmm7, %xmm15
2014 ; SSE-NEXT: movlhps {{.*#+}} xmm15 = xmm15[0],xmm3[0]
2015 ; SSE-NEXT: movaps %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2016 ; SSE-NEXT: unpckhpd {{.*#+}} xmm7 = xmm7[1],xmm3[1]
2017 ; SSE-NEXT: movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2018 ; SSE-NEXT: movaps %xmm11, %xmm3
2019 ; SSE-NEXT: movlhps {{.*#+}} xmm3 = xmm3[0],xmm4[0]
2020 ; SSE-NEXT: movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2021 ; SSE-NEXT: unpckhpd {{.*#+}} xmm11 = xmm11[1],xmm4[1]
2022 ; SSE-NEXT: movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2023 ; SSE-NEXT: movaps %xmm8, %xmm3
2024 ; SSE-NEXT: movlhps {{.*#+}} xmm3 = xmm3[0],xmm2[0]
2025 ; SSE-NEXT: movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2026 ; SSE-NEXT: unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm2[1]
2027 ; SSE-NEXT: movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2028 ; SSE-NEXT: movaps %xmm12, %xmm2
2029 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm5[0]
2030 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2031 ; SSE-NEXT: unpckhpd {{.*#+}} xmm12 = xmm12[1],xmm5[1]
2032 ; SSE-NEXT: movaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2033 ; SSE-NEXT: movaps %xmm9, %xmm2
2034 ; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm1[0]
2035 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2036 ; SSE-NEXT: unpckhpd {{.*#+}} xmm9 = xmm9[1],xmm1[1]
2037 ; SSE-NEXT: movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2038 ; SSE-NEXT: movaps %xmm13, %xmm1
2039 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm6[0]
2040 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2041 ; SSE-NEXT: unpckhpd {{.*#+}} xmm13 = xmm13[1],xmm6[1]
2042 ; SSE-NEXT: movaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2043 ; SSE-NEXT: movaps %xmm10, %xmm1
2044 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2045 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2046 ; SSE-NEXT: unpckhpd {{.*#+}} xmm10 = xmm10[1],xmm0[1]
2047 ; SSE-NEXT: movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2048 ; SSE-NEXT: movaps 48(%rcx), %xmm0
2049 ; SSE-NEXT: movaps %xmm14, %xmm1
2050 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2051 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2052 ; SSE-NEXT: unpckhpd {{.*#+}} xmm14 = xmm14[1],xmm0[1]
2053 ; SSE-NEXT: movaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2054 ; SSE-NEXT: movaps 64(%rdi), %xmm2
2055 ; SSE-NEXT: movaps 64(%rsi), %xmm0
2056 ; SSE-NEXT: movaps %xmm2, %xmm1
2057 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2058 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2059 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2060 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2061 ; SSE-NEXT: movaps 64(%rdx), %xmm2
2062 ; SSE-NEXT: movaps 64(%rcx), %xmm0
2063 ; SSE-NEXT: movaps %xmm2, %xmm1
2064 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2065 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2066 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2067 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2068 ; SSE-NEXT: movaps 80(%rdi), %xmm2
2069 ; SSE-NEXT: movaps 80(%rsi), %xmm0
2070 ; SSE-NEXT: movaps %xmm2, %xmm1
2071 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2072 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2073 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2074 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2075 ; SSE-NEXT: movaps 80(%rdx), %xmm2
2076 ; SSE-NEXT: movaps 80(%rcx), %xmm0
2077 ; SSE-NEXT: movaps %xmm2, %xmm1
2078 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2079 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2080 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2081 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2082 ; SSE-NEXT: movaps 96(%rdi), %xmm2
2083 ; SSE-NEXT: movaps 96(%rsi), %xmm0
2084 ; SSE-NEXT: movaps %xmm2, %xmm1
2085 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2086 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2087 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2088 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2089 ; SSE-NEXT: movaps 96(%rdx), %xmm2
2090 ; SSE-NEXT: movaps 96(%rcx), %xmm0
2091 ; SSE-NEXT: movaps %xmm2, %xmm1
2092 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2093 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2094 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2095 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2096 ; SSE-NEXT: movaps 112(%rdi), %xmm2
2097 ; SSE-NEXT: movaps 112(%rsi), %xmm0
2098 ; SSE-NEXT: movaps %xmm2, %xmm1
2099 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2100 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2101 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2102 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2103 ; SSE-NEXT: movaps 112(%rdx), %xmm2
2104 ; SSE-NEXT: movaps 112(%rcx), %xmm0
2105 ; SSE-NEXT: movaps %xmm2, %xmm1
2106 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2107 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2108 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2109 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2110 ; SSE-NEXT: movaps 128(%rdi), %xmm2
2111 ; SSE-NEXT: movaps 128(%rsi), %xmm0
2112 ; SSE-NEXT: movaps %xmm2, %xmm1
2113 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2114 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2115 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2116 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2117 ; SSE-NEXT: movaps 128(%rdx), %xmm2
2118 ; SSE-NEXT: movaps 128(%rcx), %xmm0
2119 ; SSE-NEXT: movaps %xmm2, %xmm1
2120 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2121 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2122 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2123 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2124 ; SSE-NEXT: movaps 144(%rdi), %xmm2
2125 ; SSE-NEXT: movaps 144(%rsi), %xmm0
2126 ; SSE-NEXT: movaps %xmm2, %xmm1
2127 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2128 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2129 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2130 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2131 ; SSE-NEXT: movaps 144(%rdx), %xmm2
2132 ; SSE-NEXT: movaps 144(%rcx), %xmm0
2133 ; SSE-NEXT: movaps %xmm2, %xmm1
2134 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2135 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2136 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2137 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2138 ; SSE-NEXT: movaps 160(%rdi), %xmm2
2139 ; SSE-NEXT: movaps 160(%rsi), %xmm0
2140 ; SSE-NEXT: movaps %xmm2, %xmm1
2141 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2142 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2143 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2144 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2145 ; SSE-NEXT: movaps 160(%rdx), %xmm2
2146 ; SSE-NEXT: movaps 160(%rcx), %xmm0
2147 ; SSE-NEXT: movaps %xmm2, %xmm1
2148 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2149 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2150 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2151 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2152 ; SSE-NEXT: movaps 176(%rdi), %xmm2
2153 ; SSE-NEXT: movaps 176(%rsi), %xmm0
2154 ; SSE-NEXT: movaps %xmm2, %xmm1
2155 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2156 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2157 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2158 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2159 ; SSE-NEXT: movaps 176(%rdx), %xmm2
2160 ; SSE-NEXT: movaps 176(%rcx), %xmm0
2161 ; SSE-NEXT: movaps %xmm2, %xmm1
2162 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2163 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2164 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2165 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2166 ; SSE-NEXT: movaps 192(%rdi), %xmm2
2167 ; SSE-NEXT: movaps 192(%rsi), %xmm0
2168 ; SSE-NEXT: movaps %xmm2, %xmm1
2169 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2170 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2171 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2172 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2173 ; SSE-NEXT: movaps 192(%rdx), %xmm2
2174 ; SSE-NEXT: movaps 192(%rcx), %xmm0
2175 ; SSE-NEXT: movaps %xmm2, %xmm1
2176 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2177 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2178 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2179 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2180 ; SSE-NEXT: movaps 208(%rdi), %xmm2
2181 ; SSE-NEXT: movaps 208(%rsi), %xmm0
2182 ; SSE-NEXT: movaps %xmm2, %xmm1
2183 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2184 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2185 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2186 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2187 ; SSE-NEXT: movaps 208(%rdx), %xmm2
2188 ; SSE-NEXT: movaps 208(%rcx), %xmm0
2189 ; SSE-NEXT: movaps %xmm2, %xmm1
2190 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2191 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2192 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2193 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2194 ; SSE-NEXT: movaps 224(%rdi), %xmm2
2195 ; SSE-NEXT: movaps 224(%rsi), %xmm0
2196 ; SSE-NEXT: movaps %xmm2, %xmm1
2197 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2198 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2199 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2200 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2201 ; SSE-NEXT: movaps 224(%rdx), %xmm2
2202 ; SSE-NEXT: movaps 224(%rcx), %xmm0
2203 ; SSE-NEXT: movaps %xmm2, %xmm1
2204 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2205 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2206 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2207 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2208 ; SSE-NEXT: movaps 240(%rdi), %xmm2
2209 ; SSE-NEXT: movaps 240(%rsi), %xmm0
2210 ; SSE-NEXT: movaps %xmm2, %xmm1
2211 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2212 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2213 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2214 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2215 ; SSE-NEXT: movaps 240(%rdx), %xmm2
2216 ; SSE-NEXT: movaps 240(%rcx), %xmm0
2217 ; SSE-NEXT: movaps %xmm2, %xmm1
2218 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2219 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2220 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2221 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2222 ; SSE-NEXT: movaps 256(%rdi), %xmm2
2223 ; SSE-NEXT: movaps 256(%rsi), %xmm0
2224 ; SSE-NEXT: movaps %xmm2, %xmm1
2225 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2226 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2227 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2228 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2229 ; SSE-NEXT: movaps 256(%rdx), %xmm2
2230 ; SSE-NEXT: movaps 256(%rcx), %xmm0
2231 ; SSE-NEXT: movaps %xmm2, %xmm1
2232 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2233 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2234 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2235 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2236 ; SSE-NEXT: movaps 272(%rdi), %xmm2
2237 ; SSE-NEXT: movaps 272(%rsi), %xmm0
2238 ; SSE-NEXT: movaps %xmm2, %xmm1
2239 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2240 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2241 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2242 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2243 ; SSE-NEXT: movaps 272(%rdx), %xmm2
2244 ; SSE-NEXT: movaps 272(%rcx), %xmm0
2245 ; SSE-NEXT: movaps %xmm2, %xmm1
2246 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2247 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2248 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2249 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2250 ; SSE-NEXT: movaps 288(%rdi), %xmm2
2251 ; SSE-NEXT: movaps 288(%rsi), %xmm0
2252 ; SSE-NEXT: movaps %xmm2, %xmm1
2253 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2254 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2255 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2256 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2257 ; SSE-NEXT: movaps 288(%rdx), %xmm2
2258 ; SSE-NEXT: movaps 288(%rcx), %xmm0
2259 ; SSE-NEXT: movaps %xmm2, %xmm1
2260 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2261 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2262 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2263 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2264 ; SSE-NEXT: movaps 304(%rdi), %xmm2
2265 ; SSE-NEXT: movaps 304(%rsi), %xmm0
2266 ; SSE-NEXT: movaps %xmm2, %xmm1
2267 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2268 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2269 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2270 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2271 ; SSE-NEXT: movaps 304(%rdx), %xmm2
2272 ; SSE-NEXT: movaps 304(%rcx), %xmm0
2273 ; SSE-NEXT: movaps %xmm2, %xmm1
2274 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2275 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2276 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2277 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2278 ; SSE-NEXT: movaps 320(%rdi), %xmm2
2279 ; SSE-NEXT: movaps 320(%rsi), %xmm0
2280 ; SSE-NEXT: movaps %xmm2, %xmm1
2281 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2282 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2283 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2284 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2285 ; SSE-NEXT: movaps 320(%rdx), %xmm2
2286 ; SSE-NEXT: movaps 320(%rcx), %xmm0
2287 ; SSE-NEXT: movaps %xmm2, %xmm1
2288 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2289 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2290 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2291 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2292 ; SSE-NEXT: movaps 336(%rdi), %xmm2
2293 ; SSE-NEXT: movaps 336(%rsi), %xmm0
2294 ; SSE-NEXT: movaps %xmm2, %xmm1
2295 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2296 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2297 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2298 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2299 ; SSE-NEXT: movaps 336(%rdx), %xmm2
2300 ; SSE-NEXT: movaps 336(%rcx), %xmm0
2301 ; SSE-NEXT: movaps %xmm2, %xmm1
2302 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2303 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2304 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2305 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2306 ; SSE-NEXT: movaps 352(%rdi), %xmm2
2307 ; SSE-NEXT: movaps 352(%rsi), %xmm0
2308 ; SSE-NEXT: movaps %xmm2, %xmm1
2309 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2310 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2311 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2312 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2313 ; SSE-NEXT: movaps 352(%rdx), %xmm2
2314 ; SSE-NEXT: movaps 352(%rcx), %xmm0
2315 ; SSE-NEXT: movaps %xmm2, %xmm1
2316 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2317 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2318 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2319 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2320 ; SSE-NEXT: movaps 368(%rdi), %xmm2
2321 ; SSE-NEXT: movaps 368(%rsi), %xmm0
2322 ; SSE-NEXT: movaps %xmm2, %xmm1
2323 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2324 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2325 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2326 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2327 ; SSE-NEXT: movaps 368(%rdx), %xmm2
2328 ; SSE-NEXT: movaps 368(%rcx), %xmm0
2329 ; SSE-NEXT: movaps %xmm2, %xmm1
2330 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2331 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2332 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2333 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2334 ; SSE-NEXT: movaps 384(%rdi), %xmm2
2335 ; SSE-NEXT: movaps 384(%rsi), %xmm0
2336 ; SSE-NEXT: movaps %xmm2, %xmm1
2337 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2338 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2339 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2340 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2341 ; SSE-NEXT: movaps 384(%rdx), %xmm2
2342 ; SSE-NEXT: movaps 384(%rcx), %xmm0
2343 ; SSE-NEXT: movaps %xmm2, %xmm1
2344 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2345 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2346 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2347 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2348 ; SSE-NEXT: movaps 400(%rdi), %xmm2
2349 ; SSE-NEXT: movaps 400(%rsi), %xmm0
2350 ; SSE-NEXT: movaps %xmm2, %xmm1
2351 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2352 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2353 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2354 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2355 ; SSE-NEXT: movaps 400(%rdx), %xmm2
2356 ; SSE-NEXT: movaps 400(%rcx), %xmm0
2357 ; SSE-NEXT: movaps %xmm2, %xmm1
2358 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2359 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2360 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2361 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2362 ; SSE-NEXT: movaps 416(%rdi), %xmm2
2363 ; SSE-NEXT: movaps 416(%rsi), %xmm0
2364 ; SSE-NEXT: movaps %xmm2, %xmm1
2365 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2366 ; SSE-NEXT: movaps %xmm1, (%rsp) # 16-byte Spill
2367 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2368 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2369 ; SSE-NEXT: movaps 416(%rdx), %xmm2
2370 ; SSE-NEXT: movaps 416(%rcx), %xmm0
2371 ; SSE-NEXT: movaps %xmm2, %xmm1
2372 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2373 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2374 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2375 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2376 ; SSE-NEXT: movaps 432(%rdi), %xmm2
2377 ; SSE-NEXT: movaps 432(%rsi), %xmm0
2378 ; SSE-NEXT: movaps %xmm2, %xmm1
2379 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2380 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2381 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2382 ; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2383 ; SSE-NEXT: movaps 432(%rdx), %xmm15
2384 ; SSE-NEXT: movaps 432(%rcx), %xmm0
2385 ; SSE-NEXT: movaps %xmm15, %xmm1
2386 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2387 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2388 ; SSE-NEXT: unpckhpd {{.*#+}} xmm15 = xmm15[1],xmm0[1]
2389 ; SSE-NEXT: movaps 448(%rdi), %xmm12
2390 ; SSE-NEXT: movaps 448(%rsi), %xmm0
2391 ; SSE-NEXT: movaps %xmm12, %xmm1
2392 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2393 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2394 ; SSE-NEXT: unpckhpd {{.*#+}} xmm12 = xmm12[1],xmm0[1]
2395 ; SSE-NEXT: movaps 448(%rdx), %xmm11
2396 ; SSE-NEXT: movaps 448(%rcx), %xmm0
2397 ; SSE-NEXT: movaps %xmm11, %xmm1
2398 ; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2399 ; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2400 ; SSE-NEXT: unpckhpd {{.*#+}} xmm11 = xmm11[1],xmm0[1]
2401 ; SSE-NEXT: movaps 464(%rdi), %xmm13
2402 ; SSE-NEXT: movaps 464(%rsi), %xmm0
2403 ; SSE-NEXT: movaps %xmm13, %xmm14
2404 ; SSE-NEXT: movlhps {{.*#+}} xmm14 = xmm14[0],xmm0[0]
2405 ; SSE-NEXT: unpckhpd {{.*#+}} xmm13 = xmm13[1],xmm0[1]
2406 ; SSE-NEXT: movaps 464(%rdx), %xmm7
2407 ; SSE-NEXT: movaps 464(%rcx), %xmm1
2408 ; SSE-NEXT: movaps %xmm7, %xmm10
2409 ; SSE-NEXT: movlhps {{.*#+}} xmm10 = xmm10[0],xmm1[0]
2410 ; SSE-NEXT: unpckhpd {{.*#+}} xmm7 = xmm7[1],xmm1[1]
2411 ; SSE-NEXT: movaps 480(%rdi), %xmm8
2412 ; SSE-NEXT: movaps 480(%rsi), %xmm0
2413 ; SSE-NEXT: movaps %xmm8, %xmm9
2414 ; SSE-NEXT: movlhps {{.*#+}} xmm9 = xmm9[0],xmm0[0]
2415 ; SSE-NEXT: unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm0[1]
2416 ; SSE-NEXT: movaps 480(%rdx), %xmm5
2417 ; SSE-NEXT: movaps 480(%rcx), %xmm0
2418 ; SSE-NEXT: movaps %xmm5, %xmm6
2419 ; SSE-NEXT: movlhps {{.*#+}} xmm6 = xmm6[0],xmm0[0]
2420 ; SSE-NEXT: unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm0[1]
2421 ; SSE-NEXT: movaps 496(%rdi), %xmm2
2422 ; SSE-NEXT: movaps 496(%rsi), %xmm3
2423 ; SSE-NEXT: movaps %xmm2, %xmm4
2424 ; SSE-NEXT: movlhps {{.*#+}} xmm4 = xmm4[0],xmm3[0]
2425 ; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm3[1]
2426 ; SSE-NEXT: movaps 496(%rdx), %xmm3
2427 ; SSE-NEXT: movaps 496(%rcx), %xmm1
2428 ; SSE-NEXT: movaps %xmm3, %xmm0
2429 ; SSE-NEXT: movlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]
2430 ; SSE-NEXT: unpckhpd {{.*#+}} xmm3 = xmm3[1],xmm1[1]
2431 ; SSE-NEXT: movaps %xmm3, 2032(%r8)
2432 ; SSE-NEXT: movaps %xmm2, 2016(%r8)
2433 ; SSE-NEXT: movaps %xmm0, 2000(%r8)
2434 ; SSE-NEXT: movaps %xmm4, 1984(%r8)
2435 ; SSE-NEXT: movaps %xmm5, 1968(%r8)
2436 ; SSE-NEXT: movaps %xmm8, 1952(%r8)
2437 ; SSE-NEXT: movaps %xmm6, 1936(%r8)
2438 ; SSE-NEXT: movaps %xmm9, 1920(%r8)
2439 ; SSE-NEXT: movaps %xmm7, 1904(%r8)
2440 ; SSE-NEXT: movaps %xmm13, 1888(%r8)
2441 ; SSE-NEXT: movaps %xmm10, 1872(%r8)
2442 ; SSE-NEXT: movaps %xmm14, 1856(%r8)
2443 ; SSE-NEXT: movaps %xmm11, 1840(%r8)
2444 ; SSE-NEXT: movaps %xmm12, 1824(%r8)
2445 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2446 ; SSE-NEXT: movaps %xmm0, 1808(%r8)
2447 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2448 ; SSE-NEXT: movaps %xmm0, 1792(%r8)
2449 ; SSE-NEXT: movaps %xmm15, 1776(%r8)
2450 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2451 ; SSE-NEXT: movaps %xmm0, 1760(%r8)
2452 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2453 ; SSE-NEXT: movaps %xmm0, 1744(%r8)
2454 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2455 ; SSE-NEXT: movaps %xmm0, 1728(%r8)
2456 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2457 ; SSE-NEXT: movaps %xmm0, 1712(%r8)
2458 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2459 ; SSE-NEXT: movaps %xmm0, 1696(%r8)
2460 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2461 ; SSE-NEXT: movaps %xmm0, 1680(%r8)
2462 ; SSE-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload
2463 ; SSE-NEXT: movaps %xmm0, 1664(%r8)
2464 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2465 ; SSE-NEXT: movaps %xmm0, 1648(%r8)
2466 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2467 ; SSE-NEXT: movaps %xmm0, 1632(%r8)
2468 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2469 ; SSE-NEXT: movaps %xmm0, 1616(%r8)
2470 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2471 ; SSE-NEXT: movaps %xmm0, 1600(%r8)
2472 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2473 ; SSE-NEXT: movaps %xmm0, 1584(%r8)
2474 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2475 ; SSE-NEXT: movaps %xmm0, 1568(%r8)
2476 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2477 ; SSE-NEXT: movaps %xmm0, 1552(%r8)
2478 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2479 ; SSE-NEXT: movaps %xmm0, 1536(%r8)
2480 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2481 ; SSE-NEXT: movaps %xmm0, 1520(%r8)
2482 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2483 ; SSE-NEXT: movaps %xmm0, 1504(%r8)
2484 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2485 ; SSE-NEXT: movaps %xmm0, 1488(%r8)
2486 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2487 ; SSE-NEXT: movaps %xmm0, 1472(%r8)
2488 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2489 ; SSE-NEXT: movaps %xmm0, 1456(%r8)
2490 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2491 ; SSE-NEXT: movaps %xmm0, 1440(%r8)
2492 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2493 ; SSE-NEXT: movaps %xmm0, 1424(%r8)
2494 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2495 ; SSE-NEXT: movaps %xmm0, 1408(%r8)
2496 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2497 ; SSE-NEXT: movaps %xmm0, 1392(%r8)
2498 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2499 ; SSE-NEXT: movaps %xmm0, 1376(%r8)
2500 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2501 ; SSE-NEXT: movaps %xmm0, 1360(%r8)
2502 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2503 ; SSE-NEXT: movaps %xmm0, 1344(%r8)
2504 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2505 ; SSE-NEXT: movaps %xmm0, 1328(%r8)
2506 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2507 ; SSE-NEXT: movaps %xmm0, 1312(%r8)
2508 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2509 ; SSE-NEXT: movaps %xmm0, 1296(%r8)
2510 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2511 ; SSE-NEXT: movaps %xmm0, 1280(%r8)
2512 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2513 ; SSE-NEXT: movaps %xmm0, 1264(%r8)
2514 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2515 ; SSE-NEXT: movaps %xmm0, 1248(%r8)
2516 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2517 ; SSE-NEXT: movaps %xmm0, 1232(%r8)
2518 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2519 ; SSE-NEXT: movaps %xmm0, 1216(%r8)
2520 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2521 ; SSE-NEXT: movaps %xmm0, 1200(%r8)
2522 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2523 ; SSE-NEXT: movaps %xmm0, 1184(%r8)
2524 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2525 ; SSE-NEXT: movaps %xmm0, 1168(%r8)
2526 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2527 ; SSE-NEXT: movaps %xmm0, 1152(%r8)
2528 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2529 ; SSE-NEXT: movaps %xmm0, 1136(%r8)
2530 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2531 ; SSE-NEXT: movaps %xmm0, 1120(%r8)
2532 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2533 ; SSE-NEXT: movaps %xmm0, 1104(%r8)
2534 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2535 ; SSE-NEXT: movaps %xmm0, 1088(%r8)
2536 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2537 ; SSE-NEXT: movaps %xmm0, 1072(%r8)
2538 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2539 ; SSE-NEXT: movaps %xmm0, 1056(%r8)
2540 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2541 ; SSE-NEXT: movaps %xmm0, 1040(%r8)
2542 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2543 ; SSE-NEXT: movaps %xmm0, 1024(%r8)
2544 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2545 ; SSE-NEXT: movaps %xmm0, 1008(%r8)
2546 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2547 ; SSE-NEXT: movaps %xmm0, 992(%r8)
2548 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2549 ; SSE-NEXT: movaps %xmm0, 976(%r8)
2550 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2551 ; SSE-NEXT: movaps %xmm0, 960(%r8)
2552 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2553 ; SSE-NEXT: movaps %xmm0, 944(%r8)
2554 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2555 ; SSE-NEXT: movaps %xmm0, 928(%r8)
2556 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2557 ; SSE-NEXT: movaps %xmm0, 912(%r8)
2558 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2559 ; SSE-NEXT: movaps %xmm0, 896(%r8)
2560 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2561 ; SSE-NEXT: movaps %xmm0, 880(%r8)
2562 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2563 ; SSE-NEXT: movaps %xmm0, 864(%r8)
2564 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2565 ; SSE-NEXT: movaps %xmm0, 848(%r8)
2566 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2567 ; SSE-NEXT: movaps %xmm0, 832(%r8)
2568 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2569 ; SSE-NEXT: movaps %xmm0, 816(%r8)
2570 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2571 ; SSE-NEXT: movaps %xmm0, 800(%r8)
2572 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2573 ; SSE-NEXT: movaps %xmm0, 784(%r8)
2574 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2575 ; SSE-NEXT: movaps %xmm0, 768(%r8)
2576 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2577 ; SSE-NEXT: movaps %xmm0, 752(%r8)
2578 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2579 ; SSE-NEXT: movaps %xmm0, 736(%r8)
2580 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2581 ; SSE-NEXT: movaps %xmm0, 720(%r8)
2582 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2583 ; SSE-NEXT: movaps %xmm0, 704(%r8)
2584 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2585 ; SSE-NEXT: movaps %xmm0, 688(%r8)
2586 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2587 ; SSE-NEXT: movaps %xmm0, 672(%r8)
2588 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2589 ; SSE-NEXT: movaps %xmm0, 656(%r8)
2590 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2591 ; SSE-NEXT: movaps %xmm0, 640(%r8)
2592 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2593 ; SSE-NEXT: movaps %xmm0, 624(%r8)
2594 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2595 ; SSE-NEXT: movaps %xmm0, 608(%r8)
2596 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2597 ; SSE-NEXT: movaps %xmm0, 592(%r8)
2598 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2599 ; SSE-NEXT: movaps %xmm0, 576(%r8)
2600 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2601 ; SSE-NEXT: movaps %xmm0, 560(%r8)
2602 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2603 ; SSE-NEXT: movaps %xmm0, 544(%r8)
2604 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2605 ; SSE-NEXT: movaps %xmm0, 528(%r8)
2606 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2607 ; SSE-NEXT: movaps %xmm0, 512(%r8)
2608 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2609 ; SSE-NEXT: movaps %xmm0, 496(%r8)
2610 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2611 ; SSE-NEXT: movaps %xmm0, 480(%r8)
2612 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2613 ; SSE-NEXT: movaps %xmm0, 464(%r8)
2614 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2615 ; SSE-NEXT: movaps %xmm0, 448(%r8)
2616 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2617 ; SSE-NEXT: movaps %xmm0, 432(%r8)
2618 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2619 ; SSE-NEXT: movaps %xmm0, 416(%r8)
2620 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2621 ; SSE-NEXT: movaps %xmm0, 400(%r8)
2622 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2623 ; SSE-NEXT: movaps %xmm0, 384(%r8)
2624 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2625 ; SSE-NEXT: movaps %xmm0, 368(%r8)
2626 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2627 ; SSE-NEXT: movaps %xmm0, 352(%r8)
2628 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2629 ; SSE-NEXT: movaps %xmm0, 336(%r8)
2630 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2631 ; SSE-NEXT: movaps %xmm0, 320(%r8)
2632 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2633 ; SSE-NEXT: movaps %xmm0, 304(%r8)
2634 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2635 ; SSE-NEXT: movaps %xmm0, 288(%r8)
2636 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2637 ; SSE-NEXT: movaps %xmm0, 272(%r8)
2638 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2639 ; SSE-NEXT: movaps %xmm0, 256(%r8)
2640 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2641 ; SSE-NEXT: movaps %xmm0, 240(%r8)
2642 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2643 ; SSE-NEXT: movaps %xmm0, 224(%r8)
2644 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2645 ; SSE-NEXT: movaps %xmm0, 208(%r8)
2646 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2647 ; SSE-NEXT: movaps %xmm0, 192(%r8)
2648 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2649 ; SSE-NEXT: movaps %xmm0, 176(%r8)
2650 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2651 ; SSE-NEXT: movaps %xmm0, 160(%r8)
2652 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2653 ; SSE-NEXT: movaps %xmm0, 144(%r8)
2654 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2655 ; SSE-NEXT: movaps %xmm0, 128(%r8)
2656 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2657 ; SSE-NEXT: movaps %xmm0, 112(%r8)
2658 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2659 ; SSE-NEXT: movaps %xmm0, 96(%r8)
2660 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2661 ; SSE-NEXT: movaps %xmm0, 80(%r8)
2662 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2663 ; SSE-NEXT: movaps %xmm0, 64(%r8)
2664 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2665 ; SSE-NEXT: movaps %xmm0, 48(%r8)
2666 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2667 ; SSE-NEXT: movaps %xmm0, 32(%r8)
2668 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2669 ; SSE-NEXT: movaps %xmm0, 16(%r8)
2670 ; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2671 ; SSE-NEXT: movaps %xmm0, (%r8)
2672 ; SSE-NEXT: addq $1688, %rsp # imm = 0x698
2675 ; AVX1-ONLY-LABEL: store_i64_stride4_vf64:
2676 ; AVX1-ONLY: # %bb.0:
2677 ; AVX1-ONLY-NEXT: subq $1688, %rsp # imm = 0x698
2678 ; AVX1-ONLY-NEXT: vmovaps 160(%rdx), %ymm0
2679 ; AVX1-ONLY-NEXT: vmovaps 128(%rdx), %ymm1
2680 ; AVX1-ONLY-NEXT: vmovaps 96(%rdx), %ymm3
2681 ; AVX1-ONLY-NEXT: vmovaps 64(%rdx), %ymm5
2682 ; AVX1-ONLY-NEXT: vmovaps 32(%rdx), %ymm7
2683 ; AVX1-ONLY-NEXT: vmovaps (%rdx), %ymm8
2684 ; AVX1-ONLY-NEXT: vmovaps 160(%rcx), %ymm2
2685 ; AVX1-ONLY-NEXT: vmovaps 128(%rcx), %ymm4
2686 ; AVX1-ONLY-NEXT: vmovaps 96(%rcx), %ymm6
2687 ; AVX1-ONLY-NEXT: vmovaps 64(%rcx), %ymm9
2688 ; AVX1-ONLY-NEXT: vmovaps 32(%rcx), %ymm10
2689 ; AVX1-ONLY-NEXT: vmovaps (%rcx), %ymm11
2690 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm12 = ymm8[0],ymm11[0],ymm8[2],ymm11[2]
2691 ; AVX1-ONLY-NEXT: vmovaps 16(%rsi), %xmm13
2692 ; AVX1-ONLY-NEXT: vmovaps 16(%rdi), %xmm14
2693 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm15 = xmm14[0],xmm13[0]
2694 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm12 = ymm15[0,1,2,3],ymm12[4,5,6,7]
2695 ; AVX1-ONLY-NEXT: vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2696 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm8 = ymm8[1],ymm11[1],ymm8[3],ymm11[3]
2697 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm11 = xmm14[1],xmm13[1]
2698 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm8 = ymm11[0,1,2,3],ymm8[4,5,6,7]
2699 ; AVX1-ONLY-NEXT: vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2700 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm8 = ymm7[0],ymm10[0],ymm7[2],ymm10[2]
2701 ; AVX1-ONLY-NEXT: vmovaps 48(%rsi), %xmm11
2702 ; AVX1-ONLY-NEXT: vmovaps 48(%rdi), %xmm12
2703 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm13 = xmm12[0],xmm11[0]
2704 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
2705 ; AVX1-ONLY-NEXT: vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2706 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm7 = ymm7[1],ymm10[1],ymm7[3],ymm10[3]
2707 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm8 = xmm12[1],xmm11[1]
2708 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]
2709 ; AVX1-ONLY-NEXT: vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2710 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm7 = ymm5[0],ymm9[0],ymm5[2],ymm9[2]
2711 ; AVX1-ONLY-NEXT: vmovaps 80(%rsi), %xmm8
2712 ; AVX1-ONLY-NEXT: vmovaps 80(%rdi), %xmm10
2713 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm11 = xmm10[0],xmm8[0]
2714 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm7 = ymm11[0,1,2,3],ymm7[4,5,6,7]
2715 ; AVX1-ONLY-NEXT: vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2716 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm5 = ymm5[1],ymm9[1],ymm5[3],ymm9[3]
2717 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm7 = xmm10[1],xmm8[1]
2718 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm5 = ymm7[0,1,2,3],ymm5[4,5,6,7]
2719 ; AVX1-ONLY-NEXT: vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2720 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm3[0],ymm6[0],ymm3[2],ymm6[2]
2721 ; AVX1-ONLY-NEXT: vmovaps 112(%rsi), %xmm7
2722 ; AVX1-ONLY-NEXT: vmovaps 112(%rdi), %xmm8
2723 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm9 = xmm8[0],xmm7[0]
2724 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm5 = ymm9[0,1,2,3],ymm5[4,5,6,7]
2725 ; AVX1-ONLY-NEXT: vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2726 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm3 = ymm3[1],ymm6[1],ymm3[3],ymm6[3]
2727 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm5 = xmm8[1],xmm7[1]
2728 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm3 = ymm5[0,1,2,3],ymm3[4,5,6,7]
2729 ; AVX1-ONLY-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2730 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm4[0],ymm1[2],ymm4[2]
2731 ; AVX1-ONLY-NEXT: vmovaps 144(%rsi), %xmm5
2732 ; AVX1-ONLY-NEXT: vmovaps 144(%rdi), %xmm6
2733 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm7 = xmm6[0],xmm5[0]
2734 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm3 = ymm7[0,1,2,3],ymm3[4,5,6,7]
2735 ; AVX1-ONLY-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2736 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm4[1],ymm1[3],ymm4[3]
2737 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm3 = xmm6[1],xmm5[1]
2738 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm1[4,5,6,7]
2739 ; AVX1-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2740 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm0[0],ymm2[0],ymm0[2],ymm2[2]
2741 ; AVX1-ONLY-NEXT: vmovaps 176(%rsi), %xmm3
2742 ; AVX1-ONLY-NEXT: vmovaps 176(%rdi), %xmm4
2743 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm5 = xmm4[0],xmm3[0]
2744 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm1 = ymm5[0,1,2,3],ymm1[4,5,6,7]
2745 ; AVX1-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2746 ; AVX1-ONLY-NEXT: vmovaps 192(%rdx), %ymm1
2747 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm2[1],ymm0[3],ymm2[3]
2748 ; AVX1-ONLY-NEXT: vmovaps 192(%rcx), %ymm2
2749 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm3 = xmm4[1],xmm3[1]
2750 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm0[4,5,6,7]
2751 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2752 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
2753 ; AVX1-ONLY-NEXT: vmovaps 208(%rsi), %xmm3
2754 ; AVX1-ONLY-NEXT: vmovaps 208(%rdi), %xmm4
2755 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm5 = xmm4[0],xmm3[0]
2756 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm5[0,1,2,3],ymm0[4,5,6,7]
2757 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2758 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
2759 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm1 = xmm4[1],xmm3[1]
2760 ; AVX1-ONLY-NEXT: vmovaps 224(%rdx), %ymm2
2761 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
2762 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2763 ; AVX1-ONLY-NEXT: vmovaps 224(%rcx), %ymm0
2764 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm2[0],ymm0[0],ymm2[2],ymm0[2]
2765 ; AVX1-ONLY-NEXT: vmovaps 240(%rsi), %xmm3
2766 ; AVX1-ONLY-NEXT: vmovaps 240(%rdi), %xmm4
2767 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm5 = xmm4[0],xmm3[0]
2768 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm1 = ymm5[0,1,2,3],ymm1[4,5,6,7]
2769 ; AVX1-ONLY-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2770 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm2[1],ymm0[1],ymm2[3],ymm0[3]
2771 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm1 = xmm4[1],xmm3[1]
2772 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
2773 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2774 ; AVX1-ONLY-NEXT: vmovaps 256(%rdx), %ymm0
2775 ; AVX1-ONLY-NEXT: vmovaps 256(%rcx), %ymm1
2776 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
2777 ; AVX1-ONLY-NEXT: vmovaps 272(%rsi), %xmm3
2778 ; AVX1-ONLY-NEXT: vmovaps 272(%rdi), %xmm4
2779 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm5 = xmm4[0],xmm3[0]
2780 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3],ymm2[4,5,6,7]
2781 ; AVX1-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2782 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
2783 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm1 = xmm4[1],xmm3[1]
2784 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
2785 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2786 ; AVX1-ONLY-NEXT: vmovaps 288(%rdx), %ymm0
2787 ; AVX1-ONLY-NEXT: vmovaps 288(%rcx), %ymm1
2788 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
2789 ; AVX1-ONLY-NEXT: vmovaps 304(%rsi), %xmm3
2790 ; AVX1-ONLY-NEXT: vmovaps 304(%rdi), %xmm4
2791 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm5 = xmm4[0],xmm3[0]
2792 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3],ymm2[4,5,6,7]
2793 ; AVX1-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2794 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
2795 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm1 = xmm4[1],xmm3[1]
2796 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
2797 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2798 ; AVX1-ONLY-NEXT: vmovaps 320(%rdx), %ymm0
2799 ; AVX1-ONLY-NEXT: vmovaps 320(%rcx), %ymm1
2800 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
2801 ; AVX1-ONLY-NEXT: vmovaps 336(%rsi), %xmm3
2802 ; AVX1-ONLY-NEXT: vmovaps 336(%rdi), %xmm4
2803 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm5 = xmm4[0],xmm3[0]
2804 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3],ymm2[4,5,6,7]
2805 ; AVX1-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2806 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
2807 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm1 = xmm4[1],xmm3[1]
2808 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
2809 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2810 ; AVX1-ONLY-NEXT: vmovaps 352(%rdx), %ymm0
2811 ; AVX1-ONLY-NEXT: vmovaps 352(%rcx), %ymm1
2812 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
2813 ; AVX1-ONLY-NEXT: vmovaps 368(%rsi), %xmm3
2814 ; AVX1-ONLY-NEXT: vmovaps 368(%rdi), %xmm4
2815 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm5 = xmm4[0],xmm3[0]
2816 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3],ymm2[4,5,6,7]
2817 ; AVX1-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2818 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
2819 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm1 = xmm4[1],xmm3[1]
2820 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
2821 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2822 ; AVX1-ONLY-NEXT: vmovaps 384(%rdx), %ymm0
2823 ; AVX1-ONLY-NEXT: vmovaps 384(%rcx), %ymm1
2824 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
2825 ; AVX1-ONLY-NEXT: vmovaps 400(%rsi), %xmm3
2826 ; AVX1-ONLY-NEXT: vmovaps 400(%rdi), %xmm4
2827 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm5 = xmm4[0],xmm3[0]
2828 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3],ymm2[4,5,6,7]
2829 ; AVX1-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2830 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
2831 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm1 = xmm4[1],xmm3[1]
2832 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
2833 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2834 ; AVX1-ONLY-NEXT: vmovaps 416(%rdx), %ymm0
2835 ; AVX1-ONLY-NEXT: vmovaps 416(%rcx), %ymm1
2836 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
2837 ; AVX1-ONLY-NEXT: vmovaps 432(%rsi), %xmm3
2838 ; AVX1-ONLY-NEXT: vmovaps 432(%rdi), %xmm4
2839 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm5 = xmm4[0],xmm3[0]
2840 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3],ymm2[4,5,6,7]
2841 ; AVX1-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2842 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
2843 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm1 = xmm4[1],xmm3[1]
2844 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
2845 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2846 ; AVX1-ONLY-NEXT: vmovaps 448(%rdx), %ymm0
2847 ; AVX1-ONLY-NEXT: vmovaps 448(%rcx), %ymm1
2848 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
2849 ; AVX1-ONLY-NEXT: vmovaps 464(%rsi), %xmm3
2850 ; AVX1-ONLY-NEXT: vmovaps 464(%rdi), %xmm4
2851 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm5 = xmm4[0],xmm3[0]
2852 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3],ymm2[4,5,6,7]
2853 ; AVX1-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2854 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
2855 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm1 = xmm4[1],xmm3[1]
2856 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
2857 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2858 ; AVX1-ONLY-NEXT: vmovaps 480(%rdx), %ymm0
2859 ; AVX1-ONLY-NEXT: vmovaps 480(%rcx), %ymm1
2860 ; AVX1-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
2861 ; AVX1-ONLY-NEXT: vmovaps 496(%rsi), %xmm3
2862 ; AVX1-ONLY-NEXT: vmovaps 496(%rdi), %xmm4
2863 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm5 = xmm4[0],xmm3[0]
2864 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3],ymm2[4,5,6,7]
2865 ; AVX1-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2866 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
2867 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm1 = xmm4[1],xmm3[1]
2868 ; AVX1-ONLY-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
2869 ; AVX1-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2870 ; AVX1-ONLY-NEXT: vmovaps 256(%rsi), %xmm0
2871 ; AVX1-ONLY-NEXT: vmovaps 256(%rdi), %xmm1
2872 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
2873 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2874 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
2875 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2876 ; AVX1-ONLY-NEXT: vmovaps 256(%rcx), %xmm0
2877 ; AVX1-ONLY-NEXT: vmovaps 256(%rdx), %xmm1
2878 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
2879 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2880 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
2881 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2882 ; AVX1-ONLY-NEXT: vmovaps 128(%rsi), %xmm0
2883 ; AVX1-ONLY-NEXT: vmovaps 128(%rdi), %xmm1
2884 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
2885 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2886 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
2887 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2888 ; AVX1-ONLY-NEXT: vmovaps 128(%rcx), %xmm0
2889 ; AVX1-ONLY-NEXT: vmovaps 128(%rdx), %xmm1
2890 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
2891 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2892 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
2893 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2894 ; AVX1-ONLY-NEXT: vmovaps 64(%rsi), %xmm0
2895 ; AVX1-ONLY-NEXT: vmovaps 64(%rdi), %xmm1
2896 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
2897 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2898 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
2899 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2900 ; AVX1-ONLY-NEXT: vmovaps 64(%rcx), %xmm0
2901 ; AVX1-ONLY-NEXT: vmovaps 64(%rdx), %xmm1
2902 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
2903 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2904 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
2905 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2906 ; AVX1-ONLY-NEXT: vmovaps 32(%rsi), %xmm0
2907 ; AVX1-ONLY-NEXT: vmovaps 32(%rdi), %xmm1
2908 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
2909 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2910 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
2911 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2912 ; AVX1-ONLY-NEXT: vmovaps 32(%rcx), %xmm0
2913 ; AVX1-ONLY-NEXT: vmovaps 32(%rdx), %xmm1
2914 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
2915 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2916 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
2917 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2918 ; AVX1-ONLY-NEXT: vmovaps 96(%rsi), %xmm0
2919 ; AVX1-ONLY-NEXT: vmovaps 96(%rdi), %xmm1
2920 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
2921 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2922 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
2923 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2924 ; AVX1-ONLY-NEXT: vmovaps 96(%rcx), %xmm0
2925 ; AVX1-ONLY-NEXT: vmovaps 96(%rdx), %xmm1
2926 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
2927 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2928 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
2929 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2930 ; AVX1-ONLY-NEXT: vmovaps 160(%rsi), %xmm0
2931 ; AVX1-ONLY-NEXT: vmovaps 160(%rdi), %xmm1
2932 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
2933 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2934 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
2935 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2936 ; AVX1-ONLY-NEXT: vmovaps 160(%rcx), %xmm0
2937 ; AVX1-ONLY-NEXT: vmovaps 160(%rdx), %xmm1
2938 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
2939 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2940 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
2941 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2942 ; AVX1-ONLY-NEXT: vmovaps 224(%rsi), %xmm0
2943 ; AVX1-ONLY-NEXT: vmovaps 224(%rdi), %xmm1
2944 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
2945 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2946 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
2947 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2948 ; AVX1-ONLY-NEXT: vmovaps 224(%rcx), %xmm0
2949 ; AVX1-ONLY-NEXT: vmovaps 224(%rdx), %xmm1
2950 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
2951 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2952 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
2953 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2954 ; AVX1-ONLY-NEXT: vmovaps 192(%rsi), %xmm0
2955 ; AVX1-ONLY-NEXT: vmovaps 192(%rdi), %xmm1
2956 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
2957 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2958 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
2959 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2960 ; AVX1-ONLY-NEXT: vmovaps 192(%rcx), %xmm0
2961 ; AVX1-ONLY-NEXT: vmovaps 192(%rdx), %xmm1
2962 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
2963 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2964 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
2965 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2966 ; AVX1-ONLY-NEXT: vmovaps 288(%rsi), %xmm0
2967 ; AVX1-ONLY-NEXT: vmovaps 288(%rdi), %xmm1
2968 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
2969 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2970 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
2971 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2972 ; AVX1-ONLY-NEXT: vmovaps 288(%rcx), %xmm0
2973 ; AVX1-ONLY-NEXT: vmovaps 288(%rdx), %xmm1
2974 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
2975 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2976 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
2977 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2978 ; AVX1-ONLY-NEXT: vmovaps 352(%rsi), %xmm0
2979 ; AVX1-ONLY-NEXT: vmovaps 352(%rdi), %xmm1
2980 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
2981 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2982 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
2983 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2984 ; AVX1-ONLY-NEXT: vmovaps 352(%rcx), %xmm0
2985 ; AVX1-ONLY-NEXT: vmovaps 352(%rdx), %xmm1
2986 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
2987 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2988 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
2989 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2990 ; AVX1-ONLY-NEXT: vmovaps 320(%rsi), %xmm0
2991 ; AVX1-ONLY-NEXT: vmovaps 320(%rdi), %xmm1
2992 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
2993 ; AVX1-ONLY-NEXT: vmovaps %xmm2, (%rsp) # 16-byte Spill
2994 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
2995 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2996 ; AVX1-ONLY-NEXT: vmovaps 320(%rcx), %xmm0
2997 ; AVX1-ONLY-NEXT: vmovaps 320(%rdx), %xmm1
2998 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
2999 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3000 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
3001 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3002 ; AVX1-ONLY-NEXT: vmovaps 416(%rsi), %xmm0
3003 ; AVX1-ONLY-NEXT: vmovaps 416(%rdi), %xmm1
3004 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
3005 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3006 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
3007 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3008 ; AVX1-ONLY-NEXT: vmovaps 416(%rcx), %xmm0
3009 ; AVX1-ONLY-NEXT: vmovaps 416(%rdx), %xmm1
3010 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
3011 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3012 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
3013 ; AVX1-ONLY-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3014 ; AVX1-ONLY-NEXT: vmovaps 480(%rsi), %xmm0
3015 ; AVX1-ONLY-NEXT: vmovaps 480(%rdi), %xmm1
3016 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
3017 ; AVX1-ONLY-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3018 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm15 = xmm1[1],xmm0[1]
3019 ; AVX1-ONLY-NEXT: vmovaps 480(%rcx), %xmm0
3020 ; AVX1-ONLY-NEXT: vmovaps 480(%rdx), %xmm1
3021 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm14 = xmm1[0],xmm0[0]
3022 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm13 = xmm1[1],xmm0[1]
3023 ; AVX1-ONLY-NEXT: vmovaps 448(%rsi), %xmm1
3024 ; AVX1-ONLY-NEXT: vmovaps 448(%rdi), %xmm0
3025 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm12 = xmm0[0],xmm1[0]
3026 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm11 = xmm0[1],xmm1[1]
3027 ; AVX1-ONLY-NEXT: vmovaps 448(%rcx), %xmm1
3028 ; AVX1-ONLY-NEXT: vmovaps 448(%rdx), %xmm0
3029 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm10 = xmm0[0],xmm1[0]
3030 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm9 = xmm0[1],xmm1[1]
3031 ; AVX1-ONLY-NEXT: vmovaps 384(%rsi), %xmm1
3032 ; AVX1-ONLY-NEXT: vmovaps 384(%rdi), %xmm0
3033 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm8 = xmm0[0],xmm1[0]
3034 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm7 = xmm0[1],xmm1[1]
3035 ; AVX1-ONLY-NEXT: vmovaps 384(%rcx), %xmm1
3036 ; AVX1-ONLY-NEXT: vmovaps 384(%rdx), %xmm0
3037 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm6 = xmm0[0],xmm1[0]
3038 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm5 = xmm0[1],xmm1[1]
3039 ; AVX1-ONLY-NEXT: vmovaps (%rsi), %xmm1
3040 ; AVX1-ONLY-NEXT: vmovaps (%rdi), %xmm0
3041 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm4 = xmm0[0],xmm1[0]
3042 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm3 = xmm0[1],xmm1[1]
3043 ; AVX1-ONLY-NEXT: vmovaps (%rcx), %xmm1
3044 ; AVX1-ONLY-NEXT: vmovaps (%rdx), %xmm0
3045 ; AVX1-ONLY-NEXT: vmovlhps {{.*#+}} xmm2 = xmm0[0],xmm1[0]
3046 ; AVX1-ONLY-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]
3047 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 48(%r8)
3048 ; AVX1-ONLY-NEXT: vmovaps %xmm3, 32(%r8)
3049 ; AVX1-ONLY-NEXT: vmovaps %xmm2, 16(%r8)
3050 ; AVX1-ONLY-NEXT: vmovaps %xmm4, (%r8)
3051 ; AVX1-ONLY-NEXT: vmovaps %xmm5, 1584(%r8)
3052 ; AVX1-ONLY-NEXT: vmovaps %xmm7, 1568(%r8)
3053 ; AVX1-ONLY-NEXT: vmovaps %xmm6, 1552(%r8)
3054 ; AVX1-ONLY-NEXT: vmovaps %xmm8, 1536(%r8)
3055 ; AVX1-ONLY-NEXT: vmovaps %xmm9, 1840(%r8)
3056 ; AVX1-ONLY-NEXT: vmovaps %xmm11, 1824(%r8)
3057 ; AVX1-ONLY-NEXT: vmovaps %xmm10, 1808(%r8)
3058 ; AVX1-ONLY-NEXT: vmovaps %xmm12, 1792(%r8)
3059 ; AVX1-ONLY-NEXT: vmovaps %xmm13, 1968(%r8)
3060 ; AVX1-ONLY-NEXT: vmovaps %xmm15, 1952(%r8)
3061 ; AVX1-ONLY-NEXT: vmovaps %xmm14, 1936(%r8)
3062 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3063 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 1920(%r8)
3064 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3065 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 1712(%r8)
3066 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3067 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 1696(%r8)
3068 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3069 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 1680(%r8)
3070 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3071 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 1664(%r8)
3072 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3073 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 1328(%r8)
3074 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3075 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 1312(%r8)
3076 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3077 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 1296(%r8)
3078 ; AVX1-ONLY-NEXT: vmovaps (%rsp), %xmm0 # 16-byte Reload
3079 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 1280(%r8)
3080 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3081 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 1456(%r8)
3082 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3083 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 1440(%r8)
3084 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3085 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 1424(%r8)
3086 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3087 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 1408(%r8)
3088 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3089 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 1200(%r8)
3090 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3091 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 1184(%r8)
3092 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3093 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 1168(%r8)
3094 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3095 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 1152(%r8)
3096 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3097 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 816(%r8)
3098 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3099 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 800(%r8)
3100 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3101 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 784(%r8)
3102 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3103 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 768(%r8)
3104 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3105 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 944(%r8)
3106 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3107 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 928(%r8)
3108 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3109 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 912(%r8)
3110 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3111 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 896(%r8)
3112 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3113 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 688(%r8)
3114 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3115 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 672(%r8)
3116 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3117 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 656(%r8)
3118 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3119 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 640(%r8)
3120 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3121 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 432(%r8)
3122 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3123 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 416(%r8)
3124 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3125 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 400(%r8)
3126 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3127 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 384(%r8)
3128 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3129 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 176(%r8)
3130 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3131 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 160(%r8)
3132 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3133 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 144(%r8)
3134 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3135 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 128(%r8)
3136 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3137 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 304(%r8)
3138 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3139 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 288(%r8)
3140 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3141 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 272(%r8)
3142 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3143 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 256(%r8)
3144 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3145 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 560(%r8)
3146 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3147 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 544(%r8)
3148 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3149 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 528(%r8)
3150 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3151 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 512(%r8)
3152 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3153 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 1072(%r8)
3154 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3155 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 1056(%r8)
3156 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3157 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 1040(%r8)
3158 ; AVX1-ONLY-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3159 ; AVX1-ONLY-NEXT: vmovaps %xmm0, 1024(%r8)
3160 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3161 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 2016(%r8)
3162 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3163 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 1984(%r8)
3164 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3165 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 1888(%r8)
3166 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3167 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 1856(%r8)
3168 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3169 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 1760(%r8)
3170 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3171 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 1728(%r8)
3172 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3173 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 1632(%r8)
3174 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3175 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 1600(%r8)
3176 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3177 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 1504(%r8)
3178 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3179 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 1472(%r8)
3180 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3181 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 1376(%r8)
3182 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3183 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 1344(%r8)
3184 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3185 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 1248(%r8)
3186 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3187 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 1216(%r8)
3188 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3189 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 1120(%r8)
3190 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3191 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 1088(%r8)
3192 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3193 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 992(%r8)
3194 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3195 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 960(%r8)
3196 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3197 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 864(%r8)
3198 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3199 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 832(%r8)
3200 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3201 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 736(%r8)
3202 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3203 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 704(%r8)
3204 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3205 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 608(%r8)
3206 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3207 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 576(%r8)
3208 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3209 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 480(%r8)
3210 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3211 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 448(%r8)
3212 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3213 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 352(%r8)
3214 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3215 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 320(%r8)
3216 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3217 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 224(%r8)
3218 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3219 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 192(%r8)
3220 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3221 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 96(%r8)
3222 ; AVX1-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3223 ; AVX1-ONLY-NEXT: vmovaps %ymm0, 64(%r8)
3224 ; AVX1-ONLY-NEXT: addq $1688, %rsp # imm = 0x698
3225 ; AVX1-ONLY-NEXT: vzeroupper
3226 ; AVX1-ONLY-NEXT: retq
3228 ; AVX2-ONLY-LABEL: store_i64_stride4_vf64:
3229 ; AVX2-ONLY: # %bb.0:
3230 ; AVX2-ONLY-NEXT: subq $1544, %rsp # imm = 0x608
3231 ; AVX2-ONLY-NEXT: vmovaps (%rsi), %xmm0
3232 ; AVX2-ONLY-NEXT: vmovaps 32(%rsi), %xmm1
3233 ; AVX2-ONLY-NEXT: vmovaps 64(%rsi), %xmm2
3234 ; AVX2-ONLY-NEXT: vinsertf128 $1, (%rcx), %ymm0, %ymm0
3235 ; AVX2-ONLY-NEXT: vmovaps (%rdi), %xmm3
3236 ; AVX2-ONLY-NEXT: vmovaps 32(%rdi), %xmm4
3237 ; AVX2-ONLY-NEXT: vmovaps 64(%rdi), %xmm5
3238 ; AVX2-ONLY-NEXT: vinsertf128 $1, (%rdx), %ymm3, %ymm3
3239 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm6 = ymm3[0],ymm0[0],ymm3[2],ymm0[2]
3240 ; AVX2-ONLY-NEXT: vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3241 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm3[1],ymm0[1],ymm3[3],ymm0[3]
3242 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3243 ; AVX2-ONLY-NEXT: vinsertf128 $1, 32(%rcx), %ymm1, %ymm0
3244 ; AVX2-ONLY-NEXT: vinsertf128 $1, 32(%rdx), %ymm4, %ymm1
3245 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
3246 ; AVX2-ONLY-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3247 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
3248 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3249 ; AVX2-ONLY-NEXT: vinsertf128 $1, 64(%rcx), %ymm2, %ymm0
3250 ; AVX2-ONLY-NEXT: vinsertf128 $1, 64(%rdx), %ymm5, %ymm1
3251 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
3252 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3253 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
3254 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3255 ; AVX2-ONLY-NEXT: vmovaps 96(%rsi), %xmm0
3256 ; AVX2-ONLY-NEXT: vinsertf128 $1, 96(%rcx), %ymm0, %ymm0
3257 ; AVX2-ONLY-NEXT: vmovaps 96(%rdi), %xmm1
3258 ; AVX2-ONLY-NEXT: vinsertf128 $1, 96(%rdx), %ymm1, %ymm1
3259 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
3260 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3261 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
3262 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3263 ; AVX2-ONLY-NEXT: vmovaps 128(%rsi), %xmm0
3264 ; AVX2-ONLY-NEXT: vinsertf128 $1, 128(%rcx), %ymm0, %ymm0
3265 ; AVX2-ONLY-NEXT: vmovaps 128(%rdi), %xmm1
3266 ; AVX2-ONLY-NEXT: vinsertf128 $1, 128(%rdx), %ymm1, %ymm1
3267 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
3268 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3269 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
3270 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3271 ; AVX2-ONLY-NEXT: vmovaps 160(%rsi), %xmm0
3272 ; AVX2-ONLY-NEXT: vinsertf128 $1, 160(%rcx), %ymm0, %ymm0
3273 ; AVX2-ONLY-NEXT: vmovaps 160(%rdi), %xmm1
3274 ; AVX2-ONLY-NEXT: vinsertf128 $1, 160(%rdx), %ymm1, %ymm1
3275 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
3276 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3277 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
3278 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3279 ; AVX2-ONLY-NEXT: vmovaps 192(%rsi), %xmm0
3280 ; AVX2-ONLY-NEXT: vinsertf128 $1, 192(%rcx), %ymm0, %ymm0
3281 ; AVX2-ONLY-NEXT: vmovaps 192(%rdi), %xmm1
3282 ; AVX2-ONLY-NEXT: vinsertf128 $1, 192(%rdx), %ymm1, %ymm1
3283 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
3284 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3285 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
3286 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3287 ; AVX2-ONLY-NEXT: vmovaps 224(%rsi), %xmm0
3288 ; AVX2-ONLY-NEXT: vinsertf128 $1, 224(%rcx), %ymm0, %ymm0
3289 ; AVX2-ONLY-NEXT: vmovaps 224(%rdi), %xmm1
3290 ; AVX2-ONLY-NEXT: vinsertf128 $1, 224(%rdx), %ymm1, %ymm1
3291 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
3292 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3293 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
3294 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3295 ; AVX2-ONLY-NEXT: vmovaps 256(%rsi), %xmm0
3296 ; AVX2-ONLY-NEXT: vinsertf128 $1, 256(%rcx), %ymm0, %ymm0
3297 ; AVX2-ONLY-NEXT: vmovaps 256(%rdi), %xmm1
3298 ; AVX2-ONLY-NEXT: vinsertf128 $1, 256(%rdx), %ymm1, %ymm1
3299 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
3300 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3301 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
3302 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3303 ; AVX2-ONLY-NEXT: vmovaps 288(%rsi), %xmm0
3304 ; AVX2-ONLY-NEXT: vinsertf128 $1, 288(%rcx), %ymm0, %ymm0
3305 ; AVX2-ONLY-NEXT: vmovaps 288(%rdi), %xmm1
3306 ; AVX2-ONLY-NEXT: vinsertf128 $1, 288(%rdx), %ymm1, %ymm1
3307 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
3308 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3309 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
3310 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3311 ; AVX2-ONLY-NEXT: vmovaps 320(%rsi), %xmm0
3312 ; AVX2-ONLY-NEXT: vinsertf128 $1, 320(%rcx), %ymm0, %ymm0
3313 ; AVX2-ONLY-NEXT: vmovaps 320(%rdi), %xmm1
3314 ; AVX2-ONLY-NEXT: vinsertf128 $1, 320(%rdx), %ymm1, %ymm1
3315 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
3316 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3317 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
3318 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3319 ; AVX2-ONLY-NEXT: vmovaps 352(%rsi), %xmm0
3320 ; AVX2-ONLY-NEXT: vinsertf128 $1, 352(%rcx), %ymm0, %ymm0
3321 ; AVX2-ONLY-NEXT: vmovaps 352(%rdi), %xmm1
3322 ; AVX2-ONLY-NEXT: vinsertf128 $1, 352(%rdx), %ymm1, %ymm1
3323 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
3324 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3325 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
3326 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3327 ; AVX2-ONLY-NEXT: vmovaps 384(%rsi), %xmm0
3328 ; AVX2-ONLY-NEXT: vinsertf128 $1, 384(%rcx), %ymm0, %ymm0
3329 ; AVX2-ONLY-NEXT: vmovaps 384(%rdi), %xmm1
3330 ; AVX2-ONLY-NEXT: vinsertf128 $1, 384(%rdx), %ymm1, %ymm1
3331 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
3332 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3333 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
3334 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3335 ; AVX2-ONLY-NEXT: vmovaps 416(%rsi), %xmm0
3336 ; AVX2-ONLY-NEXT: vinsertf128 $1, 416(%rcx), %ymm0, %ymm0
3337 ; AVX2-ONLY-NEXT: vmovaps 416(%rdi), %xmm1
3338 ; AVX2-ONLY-NEXT: vinsertf128 $1, 416(%rdx), %ymm1, %ymm1
3339 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
3340 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3341 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
3342 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3343 ; AVX2-ONLY-NEXT: vmovaps 448(%rsi), %xmm0
3344 ; AVX2-ONLY-NEXT: vinsertf128 $1, 448(%rcx), %ymm0, %ymm0
3345 ; AVX2-ONLY-NEXT: vmovaps 448(%rdi), %xmm1
3346 ; AVX2-ONLY-NEXT: vinsertf128 $1, 448(%rdx), %ymm1, %ymm1
3347 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
3348 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3349 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
3350 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3351 ; AVX2-ONLY-NEXT: vmovaps 480(%rsi), %xmm0
3352 ; AVX2-ONLY-NEXT: vinsertf128 $1, 480(%rcx), %ymm0, %ymm0
3353 ; AVX2-ONLY-NEXT: vmovaps 480(%rdi), %xmm1
3354 ; AVX2-ONLY-NEXT: vinsertf128 $1, 480(%rdx), %ymm1, %ymm1
3355 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
3356 ; AVX2-ONLY-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3357 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
3358 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3359 ; AVX2-ONLY-NEXT: vmovaps (%rdi), %ymm0
3360 ; AVX2-ONLY-NEXT: vmovaps (%rsi), %ymm1
3361 ; AVX2-ONLY-NEXT: vmovaps (%rdx), %ymm2
3362 ; AVX2-ONLY-NEXT: vmovaps (%rcx), %ymm3
3363 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
3364 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
3365 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]
3366 ; AVX2-ONLY-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3367 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
3368 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
3369 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]
3370 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3371 ; AVX2-ONLY-NEXT: vmovaps 32(%rdi), %ymm0
3372 ; AVX2-ONLY-NEXT: vmovaps 32(%rsi), %ymm1
3373 ; AVX2-ONLY-NEXT: vmovaps 32(%rdx), %ymm2
3374 ; AVX2-ONLY-NEXT: vmovaps 32(%rcx), %ymm3
3375 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
3376 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
3377 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]
3378 ; AVX2-ONLY-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3379 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
3380 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
3381 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]
3382 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3383 ; AVX2-ONLY-NEXT: vmovaps 64(%rdi), %ymm0
3384 ; AVX2-ONLY-NEXT: vmovaps 64(%rsi), %ymm1
3385 ; AVX2-ONLY-NEXT: vmovaps 64(%rdx), %ymm2
3386 ; AVX2-ONLY-NEXT: vmovaps 64(%rcx), %ymm3
3387 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
3388 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
3389 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]
3390 ; AVX2-ONLY-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3391 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
3392 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
3393 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]
3394 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3395 ; AVX2-ONLY-NEXT: vmovaps 96(%rdi), %ymm0
3396 ; AVX2-ONLY-NEXT: vmovaps 96(%rsi), %ymm1
3397 ; AVX2-ONLY-NEXT: vmovaps 96(%rdx), %ymm2
3398 ; AVX2-ONLY-NEXT: vmovaps 96(%rcx), %ymm3
3399 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
3400 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
3401 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]
3402 ; AVX2-ONLY-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3403 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
3404 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
3405 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]
3406 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3407 ; AVX2-ONLY-NEXT: vmovaps 128(%rdi), %ymm0
3408 ; AVX2-ONLY-NEXT: vmovaps 128(%rsi), %ymm1
3409 ; AVX2-ONLY-NEXT: vmovaps 128(%rdx), %ymm2
3410 ; AVX2-ONLY-NEXT: vmovaps 128(%rcx), %ymm3
3411 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
3412 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
3413 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]
3414 ; AVX2-ONLY-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3415 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
3416 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
3417 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]
3418 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3419 ; AVX2-ONLY-NEXT: vmovaps 160(%rdi), %ymm0
3420 ; AVX2-ONLY-NEXT: vmovaps 160(%rsi), %ymm1
3421 ; AVX2-ONLY-NEXT: vmovaps 160(%rdx), %ymm2
3422 ; AVX2-ONLY-NEXT: vmovaps 160(%rcx), %ymm3
3423 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
3424 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
3425 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]
3426 ; AVX2-ONLY-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3427 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
3428 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
3429 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]
3430 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3431 ; AVX2-ONLY-NEXT: vmovaps 192(%rdi), %ymm0
3432 ; AVX2-ONLY-NEXT: vmovaps 192(%rsi), %ymm1
3433 ; AVX2-ONLY-NEXT: vmovaps 192(%rdx), %ymm2
3434 ; AVX2-ONLY-NEXT: vmovaps 192(%rcx), %ymm3
3435 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
3436 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
3437 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]
3438 ; AVX2-ONLY-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3439 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
3440 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
3441 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]
3442 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3443 ; AVX2-ONLY-NEXT: vmovaps 224(%rdi), %ymm0
3444 ; AVX2-ONLY-NEXT: vmovaps 224(%rsi), %ymm1
3445 ; AVX2-ONLY-NEXT: vmovaps 224(%rdx), %ymm2
3446 ; AVX2-ONLY-NEXT: vmovaps 224(%rcx), %ymm3
3447 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
3448 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
3449 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]
3450 ; AVX2-ONLY-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3451 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
3452 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
3453 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]
3454 ; AVX2-ONLY-NEXT: vmovups %ymm0, (%rsp) # 32-byte Spill
3455 ; AVX2-ONLY-NEXT: vmovaps 256(%rdi), %ymm0
3456 ; AVX2-ONLY-NEXT: vmovaps 256(%rsi), %ymm1
3457 ; AVX2-ONLY-NEXT: vmovaps 256(%rdx), %ymm2
3458 ; AVX2-ONLY-NEXT: vmovaps 256(%rcx), %ymm3
3459 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
3460 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
3461 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]
3462 ; AVX2-ONLY-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3463 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
3464 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
3465 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]
3466 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3467 ; AVX2-ONLY-NEXT: vmovaps 288(%rdi), %ymm0
3468 ; AVX2-ONLY-NEXT: vmovaps 288(%rsi), %ymm1
3469 ; AVX2-ONLY-NEXT: vmovaps 288(%rdx), %ymm2
3470 ; AVX2-ONLY-NEXT: vmovaps 288(%rcx), %ymm3
3471 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
3472 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
3473 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]
3474 ; AVX2-ONLY-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3475 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
3476 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
3477 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]
3478 ; AVX2-ONLY-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3479 ; AVX2-ONLY-NEXT: vmovaps 320(%rdi), %ymm0
3480 ; AVX2-ONLY-NEXT: vmovaps 320(%rsi), %ymm1
3481 ; AVX2-ONLY-NEXT: vmovaps 320(%rdx), %ymm2
3482 ; AVX2-ONLY-NEXT: vmovaps 320(%rcx), %ymm3
3483 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
3484 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
3485 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm10 = ymm5[2,3],ymm4[2,3]
3486 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
3487 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
3488 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm9 = ymm0[2,3],ymm2[2,3]
3489 ; AVX2-ONLY-NEXT: vmovaps 352(%rdi), %ymm3
3490 ; AVX2-ONLY-NEXT: vmovaps 352(%rsi), %ymm1
3491 ; AVX2-ONLY-NEXT: vmovaps 352(%rdx), %ymm2
3492 ; AVX2-ONLY-NEXT: vmovaps 352(%rcx), %ymm0
3493 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm0[0],ymm2[2],ymm0[2]
3494 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm15 = ymm3[0],ymm1[0],ymm3[2],ymm1[2]
3495 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm8 = ymm15[2,3],ymm4[2,3]
3496 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm2[1],ymm0[1],ymm2[3],ymm0[3]
3497 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm3[1],ymm1[1],ymm3[3],ymm1[3]
3498 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm7 = ymm1[2,3],ymm0[2,3]
3499 ; AVX2-ONLY-NEXT: vmovaps 384(%rdi), %ymm1
3500 ; AVX2-ONLY-NEXT: vmovaps 384(%rsi), %ymm3
3501 ; AVX2-ONLY-NEXT: vmovaps 384(%rdx), %ymm15
3502 ; AVX2-ONLY-NEXT: vmovaps 384(%rcx), %ymm0
3503 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm15[0],ymm0[0],ymm15[2],ymm0[2]
3504 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm14 = ymm1[0],ymm3[0],ymm1[2],ymm3[2]
3505 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm6 = ymm14[2,3],ymm2[2,3]
3506 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm15[1],ymm0[1],ymm15[3],ymm0[3]
3507 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm3[1],ymm1[3],ymm3[3]
3508 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm5 = ymm1[2,3],ymm0[2,3]
3509 ; AVX2-ONLY-NEXT: vmovaps 416(%rdi), %ymm1
3510 ; AVX2-ONLY-NEXT: vmovaps 416(%rsi), %ymm3
3511 ; AVX2-ONLY-NEXT: vmovaps 416(%rdx), %ymm14
3512 ; AVX2-ONLY-NEXT: vmovaps 416(%rcx), %ymm15
3513 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm14[0],ymm15[0],ymm14[2],ymm15[2]
3514 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm13 = ymm1[0],ymm3[0],ymm1[2],ymm3[2]
3515 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm13[2,3],ymm0[2,3]
3516 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm13 = ymm14[1],ymm15[1],ymm14[3],ymm15[3]
3517 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm3[1],ymm1[3],ymm3[3]
3518 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm2 = ymm1[2,3],ymm13[2,3]
3519 ; AVX2-ONLY-NEXT: vmovaps 448(%rdi), %ymm3
3520 ; AVX2-ONLY-NEXT: vmovaps 448(%rsi), %ymm13
3521 ; AVX2-ONLY-NEXT: vmovaps 448(%rdx), %ymm14
3522 ; AVX2-ONLY-NEXT: vmovaps 448(%rcx), %ymm15
3523 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm14[0],ymm15[0],ymm14[2],ymm15[2]
3524 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm12 = ymm3[0],ymm13[0],ymm3[2],ymm13[2]
3525 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm1 = ymm12[2,3],ymm0[2,3]
3526 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm12 = ymm14[1],ymm15[1],ymm14[3],ymm15[3]
3527 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm3 = ymm3[1],ymm13[1],ymm3[3],ymm13[3]
3528 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm3 = ymm3[2,3],ymm12[2,3]
3529 ; AVX2-ONLY-NEXT: vmovaps 480(%rdi), %ymm12
3530 ; AVX2-ONLY-NEXT: vmovaps 480(%rsi), %ymm13
3531 ; AVX2-ONLY-NEXT: vmovaps 480(%rdx), %ymm14
3532 ; AVX2-ONLY-NEXT: vmovaps 480(%rcx), %ymm15
3533 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm14[0],ymm15[0],ymm14[2],ymm15[2]
3534 ; AVX2-ONLY-NEXT: vunpcklpd {{.*#+}} ymm11 = ymm12[0],ymm13[0],ymm12[2],ymm13[2]
3535 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm11[2,3],ymm0[2,3]
3536 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm11 = ymm14[1],ymm15[1],ymm14[3],ymm15[3]
3537 ; AVX2-ONLY-NEXT: vunpckhpd {{.*#+}} ymm12 = ymm12[1],ymm13[1],ymm12[3],ymm13[3]
3538 ; AVX2-ONLY-NEXT: vperm2f128 {{.*#+}} ymm11 = ymm12[2,3],ymm11[2,3]
3539 ; AVX2-ONLY-NEXT: vmovaps %ymm11, 2016(%r8)
3540 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 1984(%r8)
3541 ; AVX2-ONLY-NEXT: vmovaps %ymm3, 1888(%r8)
3542 ; AVX2-ONLY-NEXT: vmovaps %ymm1, 1856(%r8)
3543 ; AVX2-ONLY-NEXT: vmovaps %ymm2, 1760(%r8)
3544 ; AVX2-ONLY-NEXT: vmovaps %ymm4, 1728(%r8)
3545 ; AVX2-ONLY-NEXT: vmovaps %ymm5, 1632(%r8)
3546 ; AVX2-ONLY-NEXT: vmovaps %ymm6, 1600(%r8)
3547 ; AVX2-ONLY-NEXT: vmovaps %ymm7, 1504(%r8)
3548 ; AVX2-ONLY-NEXT: vmovaps %ymm8, 1472(%r8)
3549 ; AVX2-ONLY-NEXT: vmovaps %ymm9, 1376(%r8)
3550 ; AVX2-ONLY-NEXT: vmovaps %ymm10, 1344(%r8)
3551 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3552 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 1248(%r8)
3553 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3554 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 1216(%r8)
3555 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3556 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 1120(%r8)
3557 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3558 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 1088(%r8)
3559 ; AVX2-ONLY-NEXT: vmovups (%rsp), %ymm0 # 32-byte Reload
3560 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 992(%r8)
3561 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3562 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 960(%r8)
3563 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3564 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 864(%r8)
3565 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3566 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 832(%r8)
3567 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3568 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 736(%r8)
3569 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3570 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 704(%r8)
3571 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3572 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 608(%r8)
3573 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3574 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 576(%r8)
3575 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3576 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 480(%r8)
3577 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3578 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 448(%r8)
3579 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3580 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 352(%r8)
3581 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3582 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 320(%r8)
3583 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3584 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 224(%r8)
3585 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3586 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 192(%r8)
3587 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3588 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 96(%r8)
3589 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3590 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 64(%r8)
3591 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3592 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 1952(%r8)
3593 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3594 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 1920(%r8)
3595 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3596 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 1824(%r8)
3597 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3598 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 1792(%r8)
3599 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3600 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 1696(%r8)
3601 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3602 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 1664(%r8)
3603 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3604 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 1568(%r8)
3605 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3606 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 1536(%r8)
3607 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3608 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 1440(%r8)
3609 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3610 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 1408(%r8)
3611 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3612 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 1312(%r8)
3613 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3614 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 1280(%r8)
3615 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3616 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 1184(%r8)
3617 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3618 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 1152(%r8)
3619 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3620 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 1056(%r8)
3621 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3622 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 1024(%r8)
3623 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3624 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 928(%r8)
3625 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3626 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 896(%r8)
3627 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3628 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 800(%r8)
3629 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3630 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 768(%r8)
3631 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3632 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 672(%r8)
3633 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3634 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 640(%r8)
3635 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3636 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 544(%r8)
3637 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3638 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 512(%r8)
3639 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3640 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 416(%r8)
3641 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3642 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 384(%r8)
3643 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3644 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 288(%r8)
3645 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3646 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 256(%r8)
3647 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3648 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 160(%r8)
3649 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3650 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 128(%r8)
3651 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3652 ; AVX2-ONLY-NEXT: vmovaps %ymm0, 32(%r8)
3653 ; AVX2-ONLY-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3654 ; AVX2-ONLY-NEXT: vmovaps %ymm0, (%r8)
3655 ; AVX2-ONLY-NEXT: addq $1544, %rsp # imm = 0x608
3656 ; AVX2-ONLY-NEXT: vzeroupper
3657 ; AVX2-ONLY-NEXT: retq
3659 ; AVX512F-LABEL: store_i64_stride4_vf64:
3661 ; AVX512F-NEXT: subq $2120, %rsp # imm = 0x848
3662 ; AVX512F-NEXT: vmovdqa64 384(%rdx), %zmm6
3663 ; AVX512F-NEXT: vmovdqa64 320(%rdx), %zmm7
3664 ; AVX512F-NEXT: vmovdqa64 256(%rdx), %zmm8
3665 ; AVX512F-NEXT: vmovdqa64 (%rdx), %zmm14
3666 ; AVX512F-NEXT: vmovdqa64 64(%rdx), %zmm12
3667 ; AVX512F-NEXT: vmovdqa64 128(%rdx), %zmm11
3668 ; AVX512F-NEXT: vmovdqa64 192(%rdx), %zmm10
3669 ; AVX512F-NEXT: vmovdqa64 384(%rcx), %zmm23
3670 ; AVX512F-NEXT: vmovdqa64 320(%rcx), %zmm3
3671 ; AVX512F-NEXT: vmovdqa64 256(%rcx), %zmm0
3672 ; AVX512F-NEXT: vmovdqa64 (%rcx), %zmm4
3673 ; AVX512F-NEXT: vmovdqa64 64(%rcx), %zmm5
3674 ; AVX512F-NEXT: vmovdqa64 128(%rcx), %zmm2
3675 ; AVX512F-NEXT: vmovdqa64 192(%rcx), %zmm1
3676 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm9 = <u,u,0,8,u,u,1,9>
3677 ; AVX512F-NEXT: vmovdqa64 %zmm14, %zmm13
3678 ; AVX512F-NEXT: vpermt2q %zmm4, %zmm9, %zmm13
3679 ; AVX512F-NEXT: vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3680 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm13 = <u,u,2,10,u,u,3,11>
3681 ; AVX512F-NEXT: vmovdqa64 %zmm14, %zmm15
3682 ; AVX512F-NEXT: vpermt2q %zmm4, %zmm13, %zmm15
3683 ; AVX512F-NEXT: vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3684 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm15 = <u,u,4,12,u,u,5,13>
3685 ; AVX512F-NEXT: vmovdqa64 %zmm14, %zmm16
3686 ; AVX512F-NEXT: vpermt2q %zmm4, %zmm15, %zmm16
3687 ; AVX512F-NEXT: vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3688 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm26 = <u,u,6,14,u,u,7,15>
3689 ; AVX512F-NEXT: vpermt2q %zmm4, %zmm26, %zmm14
3690 ; AVX512F-NEXT: vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3691 ; AVX512F-NEXT: vmovdqa64 %zmm12, %zmm4
3692 ; AVX512F-NEXT: vpermt2q %zmm5, %zmm9, %zmm12
3693 ; AVX512F-NEXT: vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3694 ; AVX512F-NEXT: vmovdqa64 %zmm4, %zmm12
3695 ; AVX512F-NEXT: vpermt2q %zmm5, %zmm13, %zmm12
3696 ; AVX512F-NEXT: vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3697 ; AVX512F-NEXT: vmovdqa64 %zmm4, %zmm12
3698 ; AVX512F-NEXT: vpermt2q %zmm5, %zmm15, %zmm12
3699 ; AVX512F-NEXT: vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3700 ; AVX512F-NEXT: vpermt2q %zmm5, %zmm26, %zmm4
3701 ; AVX512F-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3702 ; AVX512F-NEXT: vmovdqa64 %zmm11, %zmm4
3703 ; AVX512F-NEXT: vpermt2q %zmm2, %zmm9, %zmm4
3704 ; AVX512F-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3705 ; AVX512F-NEXT: vmovdqa64 %zmm11, %zmm4
3706 ; AVX512F-NEXT: vpermt2q %zmm2, %zmm13, %zmm4
3707 ; AVX512F-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3708 ; AVX512F-NEXT: vmovdqa64 %zmm11, %zmm4
3709 ; AVX512F-NEXT: vpermt2q %zmm2, %zmm15, %zmm4
3710 ; AVX512F-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3711 ; AVX512F-NEXT: vpermt2q %zmm2, %zmm26, %zmm11
3712 ; AVX512F-NEXT: vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3713 ; AVX512F-NEXT: vmovdqa64 %zmm10, %zmm2
3714 ; AVX512F-NEXT: vpermt2q %zmm1, %zmm9, %zmm2
3715 ; AVX512F-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3716 ; AVX512F-NEXT: vmovdqa64 %zmm10, %zmm2
3717 ; AVX512F-NEXT: vpermt2q %zmm1, %zmm13, %zmm2
3718 ; AVX512F-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3719 ; AVX512F-NEXT: vmovdqa64 %zmm10, %zmm2
3720 ; AVX512F-NEXT: vpermt2q %zmm1, %zmm15, %zmm2
3721 ; AVX512F-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3722 ; AVX512F-NEXT: vpermt2q %zmm1, %zmm26, %zmm10
3723 ; AVX512F-NEXT: vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3724 ; AVX512F-NEXT: vmovdqa64 %zmm8, %zmm1
3725 ; AVX512F-NEXT: vpermt2q %zmm0, %zmm9, %zmm1
3726 ; AVX512F-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3727 ; AVX512F-NEXT: vmovdqa64 %zmm8, %zmm1
3728 ; AVX512F-NEXT: vpermt2q %zmm0, %zmm13, %zmm1
3729 ; AVX512F-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3730 ; AVX512F-NEXT: vmovdqa64 %zmm8, %zmm1
3731 ; AVX512F-NEXT: vpermt2q %zmm0, %zmm15, %zmm1
3732 ; AVX512F-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3733 ; AVX512F-NEXT: vpermt2q %zmm0, %zmm26, %zmm8
3734 ; AVX512F-NEXT: vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3735 ; AVX512F-NEXT: vmovdqa64 %zmm7, %zmm0
3736 ; AVX512F-NEXT: vpermt2q %zmm3, %zmm9, %zmm0
3737 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3738 ; AVX512F-NEXT: vmovdqa64 %zmm7, %zmm0
3739 ; AVX512F-NEXT: vpermt2q %zmm3, %zmm13, %zmm0
3740 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3741 ; AVX512F-NEXT: vmovdqa64 %zmm7, %zmm0
3742 ; AVX512F-NEXT: vpermt2q %zmm3, %zmm15, %zmm0
3743 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3744 ; AVX512F-NEXT: vpermt2q %zmm3, %zmm26, %zmm7
3745 ; AVX512F-NEXT: vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3746 ; AVX512F-NEXT: vmovdqa64 %zmm6, %zmm0
3747 ; AVX512F-NEXT: vpermt2q %zmm23, %zmm9, %zmm0
3748 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3749 ; AVX512F-NEXT: vmovdqa64 %zmm6, %zmm0
3750 ; AVX512F-NEXT: vpermt2q %zmm23, %zmm13, %zmm0
3751 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3752 ; AVX512F-NEXT: vmovdqa64 %zmm6, %zmm0
3753 ; AVX512F-NEXT: vpermt2q %zmm23, %zmm15, %zmm0
3754 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3755 ; AVX512F-NEXT: vpermt2q %zmm23, %zmm26, %zmm6
3756 ; AVX512F-NEXT: vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3757 ; AVX512F-NEXT: vmovdqa64 448(%rdx), %zmm28
3758 ; AVX512F-NEXT: vmovdqa64 448(%rcx), %zmm0
3759 ; AVX512F-NEXT: vpermi2q %zmm0, %zmm28, %zmm9
3760 ; AVX512F-NEXT: vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3761 ; AVX512F-NEXT: vpermi2q %zmm0, %zmm28, %zmm13
3762 ; AVX512F-NEXT: vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3763 ; AVX512F-NEXT: vpermi2q %zmm0, %zmm28, %zmm15
3764 ; AVX512F-NEXT: vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3765 ; AVX512F-NEXT: vpermt2q %zmm0, %zmm26, %zmm28
3766 ; AVX512F-NEXT: vmovdqa64 (%rdi), %zmm26
3767 ; AVX512F-NEXT: vmovdqa64 (%rsi), %zmm3
3768 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm7 = <0,8,u,u,1,9,u,u>
3769 ; AVX512F-NEXT: vmovdqa64 %zmm26, %zmm0
3770 ; AVX512F-NEXT: vpermt2q %zmm3, %zmm7, %zmm0
3771 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm30
3772 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm5 = <2,10,u,u,3,11,u,u>
3773 ; AVX512F-NEXT: vmovdqa64 %zmm26, %zmm0
3774 ; AVX512F-NEXT: vpermt2q %zmm3, %zmm5, %zmm0
3775 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3776 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm2 = <4,12,u,u,5,13,u,u>
3777 ; AVX512F-NEXT: vmovdqa64 %zmm26, %zmm0
3778 ; AVX512F-NEXT: vpermt2q %zmm3, %zmm2, %zmm0
3779 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3780 ; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm22 = <6,14,u,u,7,15,u,u>
3781 ; AVX512F-NEXT: vpermt2q %zmm3, %zmm22, %zmm26
3782 ; AVX512F-NEXT: vmovdqa64 64(%rdi), %zmm20
3783 ; AVX512F-NEXT: vmovdqa64 64(%rsi), %zmm3
3784 ; AVX512F-NEXT: vmovdqa64 %zmm20, %zmm0
3785 ; AVX512F-NEXT: vpermt2q %zmm3, %zmm7, %zmm0
3786 ; AVX512F-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3787 ; AVX512F-NEXT: vmovdqa64 %zmm20, %zmm0
3788 ; AVX512F-NEXT: vpermt2q %zmm3, %zmm5, %zmm0
3789 ; AVX512F-NEXT: vmovdqu64 %zmm0, (%rsp) # 64-byte Spill
3790 ; AVX512F-NEXT: vmovdqa64 %zmm20, %zmm29
3791 ; AVX512F-NEXT: vpermt2q %zmm3, %zmm2, %zmm29
3792 ; AVX512F-NEXT: vpermt2q %zmm3, %zmm22, %zmm20
3793 ; AVX512F-NEXT: vmovdqa64 128(%rdi), %zmm18
3794 ; AVX512F-NEXT: vmovdqa64 128(%rsi), %zmm3
3795 ; AVX512F-NEXT: vmovdqa64 %zmm18, %zmm27
3796 ; AVX512F-NEXT: vpermt2q %zmm3, %zmm7, %zmm27
3797 ; AVX512F-NEXT: vmovdqa64 %zmm18, %zmm25
3798 ; AVX512F-NEXT: vpermt2q %zmm3, %zmm5, %zmm25
3799 ; AVX512F-NEXT: vmovdqa64 %zmm18, %zmm24
3800 ; AVX512F-NEXT: vpermt2q %zmm3, %zmm2, %zmm24
3801 ; AVX512F-NEXT: vpermt2q %zmm3, %zmm22, %zmm18
3802 ; AVX512F-NEXT: vmovdqa64 192(%rdi), %zmm19
3803 ; AVX512F-NEXT: vmovdqa64 192(%rsi), %zmm4
3804 ; AVX512F-NEXT: vmovdqa64 %zmm19, %zmm23
3805 ; AVX512F-NEXT: vpermt2q %zmm4, %zmm7, %zmm23
3806 ; AVX512F-NEXT: vmovdqa64 %zmm19, %zmm21
3807 ; AVX512F-NEXT: vpermt2q %zmm4, %zmm5, %zmm21
3808 ; AVX512F-NEXT: vmovdqa64 %zmm19, %zmm17
3809 ; AVX512F-NEXT: vpermt2q %zmm4, %zmm2, %zmm17
3810 ; AVX512F-NEXT: vpermt2q %zmm4, %zmm22, %zmm19
3811 ; AVX512F-NEXT: vmovdqa64 256(%rdi), %zmm4
3812 ; AVX512F-NEXT: vmovdqa64 256(%rsi), %zmm6
3813 ; AVX512F-NEXT: vmovdqa64 %zmm4, %zmm16
3814 ; AVX512F-NEXT: vpermt2q %zmm6, %zmm7, %zmm16
3815 ; AVX512F-NEXT: vmovdqa64 %zmm4, %zmm15
3816 ; AVX512F-NEXT: vpermt2q %zmm6, %zmm5, %zmm15
3817 ; AVX512F-NEXT: vmovdqa64 %zmm4, %zmm14
3818 ; AVX512F-NEXT: vpermt2q %zmm6, %zmm2, %zmm14
3819 ; AVX512F-NEXT: vpermt2q %zmm6, %zmm22, %zmm4
3820 ; AVX512F-NEXT: vmovdqa64 320(%rdi), %zmm6
3821 ; AVX512F-NEXT: vmovdqa64 320(%rsi), %zmm0
3822 ; AVX512F-NEXT: vmovdqa64 %zmm6, %zmm13
3823 ; AVX512F-NEXT: vpermt2q %zmm0, %zmm7, %zmm13
3824 ; AVX512F-NEXT: vmovdqa64 %zmm6, %zmm12
3825 ; AVX512F-NEXT: vpermt2q %zmm0, %zmm5, %zmm12
3826 ; AVX512F-NEXT: vmovdqa64 %zmm6, %zmm11
3827 ; AVX512F-NEXT: vpermt2q %zmm0, %zmm2, %zmm11
3828 ; AVX512F-NEXT: vpermt2q %zmm0, %zmm22, %zmm6
3829 ; AVX512F-NEXT: vmovdqa64 384(%rdi), %zmm9
3830 ; AVX512F-NEXT: vmovdqa64 384(%rsi), %zmm0
3831 ; AVX512F-NEXT: vmovdqa64 %zmm9, %zmm10
3832 ; AVX512F-NEXT: vpermt2q %zmm0, %zmm7, %zmm10
3833 ; AVX512F-NEXT: vmovdqa64 %zmm9, %zmm8
3834 ; AVX512F-NEXT: vpermt2q %zmm0, %zmm5, %zmm8
3835 ; AVX512F-NEXT: vmovdqa64 %zmm9, %zmm3
3836 ; AVX512F-NEXT: vpermt2q %zmm0, %zmm2, %zmm3
3837 ; AVX512F-NEXT: vpermt2q %zmm0, %zmm22, %zmm9
3838 ; AVX512F-NEXT: vmovdqa64 448(%rdi), %zmm1
3839 ; AVX512F-NEXT: vmovdqa64 448(%rsi), %zmm0
3840 ; AVX512F-NEXT: vpermi2q %zmm0, %zmm1, %zmm7
3841 ; AVX512F-NEXT: vpermi2q %zmm0, %zmm1, %zmm5
3842 ; AVX512F-NEXT: vpermi2q %zmm0, %zmm1, %zmm2
3843 ; AVX512F-NEXT: vpermt2q %zmm0, %zmm22, %zmm1
3844 ; AVX512F-NEXT: movb $-52, %al
3845 ; AVX512F-NEXT: kmovw %eax, %k1
3846 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
3847 ; AVX512F-NEXT: vmovdqa64 %zmm30, %zmm22
3848 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm22 {%k1}
3849 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
3850 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
3851 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm31 {%k1}
3852 ; AVX512F-NEXT: vmovdqu64 %zmm31, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3853 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
3854 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
3855 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm31 {%k1}
3856 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
3857 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm26 {%k1}
3858 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
3859 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm30 # 64-byte Reload
3860 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm30 {%k1}
3861 ; AVX512F-NEXT: vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3862 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
3863 ; AVX512F-NEXT: vmovdqu64 (%rsp), %zmm30 # 64-byte Reload
3864 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm30 {%k1}
3865 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
3866 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm29 {%k1}
3867 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
3868 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm20 {%k1}
3869 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
3870 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm27 {%k1}
3871 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
3872 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm25 {%k1}
3873 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
3874 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm24 {%k1}
3875 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
3876 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm18 {%k1}
3877 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
3878 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm23 {%k1}
3879 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
3880 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm21 {%k1}
3881 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
3882 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm17 {%k1}
3883 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
3884 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm19 {%k1}
3885 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
3886 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm16 {%k1}
3887 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
3888 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm15 {%k1}
3889 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
3890 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm14 {%k1}
3891 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
3892 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm4 {%k1}
3893 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
3894 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm13 {%k1}
3895 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
3896 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm12 {%k1}
3897 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
3898 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm11 {%k1}
3899 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
3900 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm6 {%k1}
3901 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
3902 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm10 {%k1}
3903 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
3904 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm8 {%k1}
3905 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
3906 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm3 {%k1}
3907 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
3908 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm9 {%k1}
3909 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
3910 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm7 {%k1}
3911 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
3912 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm5 {%k1}
3913 ; AVX512F-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
3914 ; AVX512F-NEXT: vmovdqa64 %zmm0, %zmm2 {%k1}
3915 ; AVX512F-NEXT: vmovdqa64 %zmm28, %zmm1 {%k1}
3916 ; AVX512F-NEXT: vmovdqa64 %zmm1, 1984(%r8)
3917 ; AVX512F-NEXT: vmovdqa64 %zmm2, 1920(%r8)
3918 ; AVX512F-NEXT: vmovdqa64 %zmm5, 1856(%r8)
3919 ; AVX512F-NEXT: vmovdqa64 %zmm7, 1792(%r8)
3920 ; AVX512F-NEXT: vmovdqa64 %zmm9, 1728(%r8)
3921 ; AVX512F-NEXT: vmovdqa64 %zmm3, 1664(%r8)
3922 ; AVX512F-NEXT: vmovdqa64 %zmm8, 1600(%r8)
3923 ; AVX512F-NEXT: vmovdqa64 %zmm10, 1536(%r8)
3924 ; AVX512F-NEXT: vmovdqa64 %zmm6, 1472(%r8)
3925 ; AVX512F-NEXT: vmovdqa64 %zmm11, 1408(%r8)
3926 ; AVX512F-NEXT: vmovdqa64 %zmm12, 1344(%r8)
3927 ; AVX512F-NEXT: vmovdqa64 %zmm13, 1280(%r8)
3928 ; AVX512F-NEXT: vmovdqa64 %zmm4, 1216(%r8)
3929 ; AVX512F-NEXT: vmovdqa64 %zmm14, 1152(%r8)
3930 ; AVX512F-NEXT: vmovdqa64 %zmm15, 1088(%r8)
3931 ; AVX512F-NEXT: vmovdqa64 %zmm16, 1024(%r8)
3932 ; AVX512F-NEXT: vmovdqa64 %zmm19, 960(%r8)
3933 ; AVX512F-NEXT: vmovdqa64 %zmm17, 896(%r8)
3934 ; AVX512F-NEXT: vmovdqa64 %zmm21, 832(%r8)
3935 ; AVX512F-NEXT: vmovdqa64 %zmm23, 768(%r8)
3936 ; AVX512F-NEXT: vmovdqa64 %zmm18, 704(%r8)
3937 ; AVX512F-NEXT: vmovdqa64 %zmm24, 640(%r8)
3938 ; AVX512F-NEXT: vmovdqa64 %zmm25, 576(%r8)
3939 ; AVX512F-NEXT: vmovdqa64 %zmm27, 512(%r8)
3940 ; AVX512F-NEXT: vmovdqa64 %zmm20, 448(%r8)
3941 ; AVX512F-NEXT: vmovdqa64 %zmm29, 384(%r8)
3942 ; AVX512F-NEXT: vmovdqa64 %zmm30, 320(%r8)
3943 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
3944 ; AVX512F-NEXT: vmovaps %zmm0, 256(%r8)
3945 ; AVX512F-NEXT: vmovdqa64 %zmm26, 192(%r8)
3946 ; AVX512F-NEXT: vmovdqa64 %zmm31, 128(%r8)
3947 ; AVX512F-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
3948 ; AVX512F-NEXT: vmovaps %zmm0, 64(%r8)
3949 ; AVX512F-NEXT: vmovdqa64 %zmm22, (%r8)
3950 ; AVX512F-NEXT: addq $2120, %rsp # imm = 0x848
3951 ; AVX512F-NEXT: vzeroupper
3952 ; AVX512F-NEXT: retq
3954 ; AVX512BW-LABEL: store_i64_stride4_vf64:
3955 ; AVX512BW: # %bb.0:
3956 ; AVX512BW-NEXT: subq $2120, %rsp # imm = 0x848
3957 ; AVX512BW-NEXT: vmovdqa64 384(%rdx), %zmm6
3958 ; AVX512BW-NEXT: vmovdqa64 320(%rdx), %zmm7
3959 ; AVX512BW-NEXT: vmovdqa64 256(%rdx), %zmm8
3960 ; AVX512BW-NEXT: vmovdqa64 (%rdx), %zmm14
3961 ; AVX512BW-NEXT: vmovdqa64 64(%rdx), %zmm12
3962 ; AVX512BW-NEXT: vmovdqa64 128(%rdx), %zmm11
3963 ; AVX512BW-NEXT: vmovdqa64 192(%rdx), %zmm10
3964 ; AVX512BW-NEXT: vmovdqa64 384(%rcx), %zmm23
3965 ; AVX512BW-NEXT: vmovdqa64 320(%rcx), %zmm3
3966 ; AVX512BW-NEXT: vmovdqa64 256(%rcx), %zmm0
3967 ; AVX512BW-NEXT: vmovdqa64 (%rcx), %zmm4
3968 ; AVX512BW-NEXT: vmovdqa64 64(%rcx), %zmm5
3969 ; AVX512BW-NEXT: vmovdqa64 128(%rcx), %zmm2
3970 ; AVX512BW-NEXT: vmovdqa64 192(%rcx), %zmm1
3971 ; AVX512BW-NEXT: vmovdqa64 {{.*#+}} zmm9 = <u,u,0,8,u,u,1,9>
3972 ; AVX512BW-NEXT: vmovdqa64 %zmm14, %zmm13
3973 ; AVX512BW-NEXT: vpermt2q %zmm4, %zmm9, %zmm13
3974 ; AVX512BW-NEXT: vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3975 ; AVX512BW-NEXT: vmovdqa64 {{.*#+}} zmm13 = <u,u,2,10,u,u,3,11>
3976 ; AVX512BW-NEXT: vmovdqa64 %zmm14, %zmm15
3977 ; AVX512BW-NEXT: vpermt2q %zmm4, %zmm13, %zmm15
3978 ; AVX512BW-NEXT: vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3979 ; AVX512BW-NEXT: vmovdqa64 {{.*#+}} zmm15 = <u,u,4,12,u,u,5,13>
3980 ; AVX512BW-NEXT: vmovdqa64 %zmm14, %zmm16
3981 ; AVX512BW-NEXT: vpermt2q %zmm4, %zmm15, %zmm16
3982 ; AVX512BW-NEXT: vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3983 ; AVX512BW-NEXT: vmovdqa64 {{.*#+}} zmm26 = <u,u,6,14,u,u,7,15>
3984 ; AVX512BW-NEXT: vpermt2q %zmm4, %zmm26, %zmm14
3985 ; AVX512BW-NEXT: vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3986 ; AVX512BW-NEXT: vmovdqa64 %zmm12, %zmm4
3987 ; AVX512BW-NEXT: vpermt2q %zmm5, %zmm9, %zmm12
3988 ; AVX512BW-NEXT: vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3989 ; AVX512BW-NEXT: vmovdqa64 %zmm4, %zmm12
3990 ; AVX512BW-NEXT: vpermt2q %zmm5, %zmm13, %zmm12
3991 ; AVX512BW-NEXT: vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3992 ; AVX512BW-NEXT: vmovdqa64 %zmm4, %zmm12
3993 ; AVX512BW-NEXT: vpermt2q %zmm5, %zmm15, %zmm12
3994 ; AVX512BW-NEXT: vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3995 ; AVX512BW-NEXT: vpermt2q %zmm5, %zmm26, %zmm4
3996 ; AVX512BW-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3997 ; AVX512BW-NEXT: vmovdqa64 %zmm11, %zmm4
3998 ; AVX512BW-NEXT: vpermt2q %zmm2, %zmm9, %zmm4
3999 ; AVX512BW-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4000 ; AVX512BW-NEXT: vmovdqa64 %zmm11, %zmm4
4001 ; AVX512BW-NEXT: vpermt2q %zmm2, %zmm13, %zmm4
4002 ; AVX512BW-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4003 ; AVX512BW-NEXT: vmovdqa64 %zmm11, %zmm4
4004 ; AVX512BW-NEXT: vpermt2q %zmm2, %zmm15, %zmm4
4005 ; AVX512BW-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4006 ; AVX512BW-NEXT: vpermt2q %zmm2, %zmm26, %zmm11
4007 ; AVX512BW-NEXT: vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4008 ; AVX512BW-NEXT: vmovdqa64 %zmm10, %zmm2
4009 ; AVX512BW-NEXT: vpermt2q %zmm1, %zmm9, %zmm2
4010 ; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4011 ; AVX512BW-NEXT: vmovdqa64 %zmm10, %zmm2
4012 ; AVX512BW-NEXT: vpermt2q %zmm1, %zmm13, %zmm2
4013 ; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4014 ; AVX512BW-NEXT: vmovdqa64 %zmm10, %zmm2
4015 ; AVX512BW-NEXT: vpermt2q %zmm1, %zmm15, %zmm2
4016 ; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4017 ; AVX512BW-NEXT: vpermt2q %zmm1, %zmm26, %zmm10
4018 ; AVX512BW-NEXT: vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4019 ; AVX512BW-NEXT: vmovdqa64 %zmm8, %zmm1
4020 ; AVX512BW-NEXT: vpermt2q %zmm0, %zmm9, %zmm1
4021 ; AVX512BW-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4022 ; AVX512BW-NEXT: vmovdqa64 %zmm8, %zmm1
4023 ; AVX512BW-NEXT: vpermt2q %zmm0, %zmm13, %zmm1
4024 ; AVX512BW-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4025 ; AVX512BW-NEXT: vmovdqa64 %zmm8, %zmm1
4026 ; AVX512BW-NEXT: vpermt2q %zmm0, %zmm15, %zmm1
4027 ; AVX512BW-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4028 ; AVX512BW-NEXT: vpermt2q %zmm0, %zmm26, %zmm8
4029 ; AVX512BW-NEXT: vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4030 ; AVX512BW-NEXT: vmovdqa64 %zmm7, %zmm0
4031 ; AVX512BW-NEXT: vpermt2q %zmm3, %zmm9, %zmm0
4032 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4033 ; AVX512BW-NEXT: vmovdqa64 %zmm7, %zmm0
4034 ; AVX512BW-NEXT: vpermt2q %zmm3, %zmm13, %zmm0
4035 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4036 ; AVX512BW-NEXT: vmovdqa64 %zmm7, %zmm0
4037 ; AVX512BW-NEXT: vpermt2q %zmm3, %zmm15, %zmm0
4038 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4039 ; AVX512BW-NEXT: vpermt2q %zmm3, %zmm26, %zmm7
4040 ; AVX512BW-NEXT: vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4041 ; AVX512BW-NEXT: vmovdqa64 %zmm6, %zmm0
4042 ; AVX512BW-NEXT: vpermt2q %zmm23, %zmm9, %zmm0
4043 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4044 ; AVX512BW-NEXT: vmovdqa64 %zmm6, %zmm0
4045 ; AVX512BW-NEXT: vpermt2q %zmm23, %zmm13, %zmm0
4046 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4047 ; AVX512BW-NEXT: vmovdqa64 %zmm6, %zmm0
4048 ; AVX512BW-NEXT: vpermt2q %zmm23, %zmm15, %zmm0
4049 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4050 ; AVX512BW-NEXT: vpermt2q %zmm23, %zmm26, %zmm6
4051 ; AVX512BW-NEXT: vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4052 ; AVX512BW-NEXT: vmovdqa64 448(%rdx), %zmm28
4053 ; AVX512BW-NEXT: vmovdqa64 448(%rcx), %zmm0
4054 ; AVX512BW-NEXT: vpermi2q %zmm0, %zmm28, %zmm9
4055 ; AVX512BW-NEXT: vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4056 ; AVX512BW-NEXT: vpermi2q %zmm0, %zmm28, %zmm13
4057 ; AVX512BW-NEXT: vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4058 ; AVX512BW-NEXT: vpermi2q %zmm0, %zmm28, %zmm15
4059 ; AVX512BW-NEXT: vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4060 ; AVX512BW-NEXT: vpermt2q %zmm0, %zmm26, %zmm28
4061 ; AVX512BW-NEXT: vmovdqa64 (%rdi), %zmm26
4062 ; AVX512BW-NEXT: vmovdqa64 (%rsi), %zmm3
4063 ; AVX512BW-NEXT: vmovdqa64 {{.*#+}} zmm7 = <0,8,u,u,1,9,u,u>
4064 ; AVX512BW-NEXT: vmovdqa64 %zmm26, %zmm0
4065 ; AVX512BW-NEXT: vpermt2q %zmm3, %zmm7, %zmm0
4066 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm30
4067 ; AVX512BW-NEXT: vmovdqa64 {{.*#+}} zmm5 = <2,10,u,u,3,11,u,u>
4068 ; AVX512BW-NEXT: vmovdqa64 %zmm26, %zmm0
4069 ; AVX512BW-NEXT: vpermt2q %zmm3, %zmm5, %zmm0
4070 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4071 ; AVX512BW-NEXT: vmovdqa64 {{.*#+}} zmm2 = <4,12,u,u,5,13,u,u>
4072 ; AVX512BW-NEXT: vmovdqa64 %zmm26, %zmm0
4073 ; AVX512BW-NEXT: vpermt2q %zmm3, %zmm2, %zmm0
4074 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4075 ; AVX512BW-NEXT: vmovdqa64 {{.*#+}} zmm22 = <6,14,u,u,7,15,u,u>
4076 ; AVX512BW-NEXT: vpermt2q %zmm3, %zmm22, %zmm26
4077 ; AVX512BW-NEXT: vmovdqa64 64(%rdi), %zmm20
4078 ; AVX512BW-NEXT: vmovdqa64 64(%rsi), %zmm3
4079 ; AVX512BW-NEXT: vmovdqa64 %zmm20, %zmm0
4080 ; AVX512BW-NEXT: vpermt2q %zmm3, %zmm7, %zmm0
4081 ; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4082 ; AVX512BW-NEXT: vmovdqa64 %zmm20, %zmm0
4083 ; AVX512BW-NEXT: vpermt2q %zmm3, %zmm5, %zmm0
4084 ; AVX512BW-NEXT: vmovdqu64 %zmm0, (%rsp) # 64-byte Spill
4085 ; AVX512BW-NEXT: vmovdqa64 %zmm20, %zmm29
4086 ; AVX512BW-NEXT: vpermt2q %zmm3, %zmm2, %zmm29
4087 ; AVX512BW-NEXT: vpermt2q %zmm3, %zmm22, %zmm20
4088 ; AVX512BW-NEXT: vmovdqa64 128(%rdi), %zmm18
4089 ; AVX512BW-NEXT: vmovdqa64 128(%rsi), %zmm3
4090 ; AVX512BW-NEXT: vmovdqa64 %zmm18, %zmm27
4091 ; AVX512BW-NEXT: vpermt2q %zmm3, %zmm7, %zmm27
4092 ; AVX512BW-NEXT: vmovdqa64 %zmm18, %zmm25
4093 ; AVX512BW-NEXT: vpermt2q %zmm3, %zmm5, %zmm25
4094 ; AVX512BW-NEXT: vmovdqa64 %zmm18, %zmm24
4095 ; AVX512BW-NEXT: vpermt2q %zmm3, %zmm2, %zmm24
4096 ; AVX512BW-NEXT: vpermt2q %zmm3, %zmm22, %zmm18
4097 ; AVX512BW-NEXT: vmovdqa64 192(%rdi), %zmm19
4098 ; AVX512BW-NEXT: vmovdqa64 192(%rsi), %zmm4
4099 ; AVX512BW-NEXT: vmovdqa64 %zmm19, %zmm23
4100 ; AVX512BW-NEXT: vpermt2q %zmm4, %zmm7, %zmm23
4101 ; AVX512BW-NEXT: vmovdqa64 %zmm19, %zmm21
4102 ; AVX512BW-NEXT: vpermt2q %zmm4, %zmm5, %zmm21
4103 ; AVX512BW-NEXT: vmovdqa64 %zmm19, %zmm17
4104 ; AVX512BW-NEXT: vpermt2q %zmm4, %zmm2, %zmm17
4105 ; AVX512BW-NEXT: vpermt2q %zmm4, %zmm22, %zmm19
4106 ; AVX512BW-NEXT: vmovdqa64 256(%rdi), %zmm4
4107 ; AVX512BW-NEXT: vmovdqa64 256(%rsi), %zmm6
4108 ; AVX512BW-NEXT: vmovdqa64 %zmm4, %zmm16
4109 ; AVX512BW-NEXT: vpermt2q %zmm6, %zmm7, %zmm16
4110 ; AVX512BW-NEXT: vmovdqa64 %zmm4, %zmm15
4111 ; AVX512BW-NEXT: vpermt2q %zmm6, %zmm5, %zmm15
4112 ; AVX512BW-NEXT: vmovdqa64 %zmm4, %zmm14
4113 ; AVX512BW-NEXT: vpermt2q %zmm6, %zmm2, %zmm14
4114 ; AVX512BW-NEXT: vpermt2q %zmm6, %zmm22, %zmm4
4115 ; AVX512BW-NEXT: vmovdqa64 320(%rdi), %zmm6
4116 ; AVX512BW-NEXT: vmovdqa64 320(%rsi), %zmm0
4117 ; AVX512BW-NEXT: vmovdqa64 %zmm6, %zmm13
4118 ; AVX512BW-NEXT: vpermt2q %zmm0, %zmm7, %zmm13
4119 ; AVX512BW-NEXT: vmovdqa64 %zmm6, %zmm12
4120 ; AVX512BW-NEXT: vpermt2q %zmm0, %zmm5, %zmm12
4121 ; AVX512BW-NEXT: vmovdqa64 %zmm6, %zmm11
4122 ; AVX512BW-NEXT: vpermt2q %zmm0, %zmm2, %zmm11
4123 ; AVX512BW-NEXT: vpermt2q %zmm0, %zmm22, %zmm6
4124 ; AVX512BW-NEXT: vmovdqa64 384(%rdi), %zmm9
4125 ; AVX512BW-NEXT: vmovdqa64 384(%rsi), %zmm0
4126 ; AVX512BW-NEXT: vmovdqa64 %zmm9, %zmm10
4127 ; AVX512BW-NEXT: vpermt2q %zmm0, %zmm7, %zmm10
4128 ; AVX512BW-NEXT: vmovdqa64 %zmm9, %zmm8
4129 ; AVX512BW-NEXT: vpermt2q %zmm0, %zmm5, %zmm8
4130 ; AVX512BW-NEXT: vmovdqa64 %zmm9, %zmm3
4131 ; AVX512BW-NEXT: vpermt2q %zmm0, %zmm2, %zmm3
4132 ; AVX512BW-NEXT: vpermt2q %zmm0, %zmm22, %zmm9
4133 ; AVX512BW-NEXT: vmovdqa64 448(%rdi), %zmm1
4134 ; AVX512BW-NEXT: vmovdqa64 448(%rsi), %zmm0
4135 ; AVX512BW-NEXT: vpermi2q %zmm0, %zmm1, %zmm7
4136 ; AVX512BW-NEXT: vpermi2q %zmm0, %zmm1, %zmm5
4137 ; AVX512BW-NEXT: vpermi2q %zmm0, %zmm1, %zmm2
4138 ; AVX512BW-NEXT: vpermt2q %zmm0, %zmm22, %zmm1
4139 ; AVX512BW-NEXT: movb $-52, %al
4140 ; AVX512BW-NEXT: kmovd %eax, %k1
4141 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4142 ; AVX512BW-NEXT: vmovdqa64 %zmm30, %zmm22
4143 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm22 {%k1}
4144 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4145 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
4146 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm31 {%k1}
4147 ; AVX512BW-NEXT: vmovdqu64 %zmm31, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4148 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4149 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
4150 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm31 {%k1}
4151 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4152 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm26 {%k1}
4153 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4154 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm30 # 64-byte Reload
4155 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm30 {%k1}
4156 ; AVX512BW-NEXT: vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4157 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4158 ; AVX512BW-NEXT: vmovdqu64 (%rsp), %zmm30 # 64-byte Reload
4159 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm30 {%k1}
4160 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4161 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm29 {%k1}
4162 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4163 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm20 {%k1}
4164 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4165 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm27 {%k1}
4166 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4167 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm25 {%k1}
4168 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4169 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm24 {%k1}
4170 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4171 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm18 {%k1}
4172 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4173 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm23 {%k1}
4174 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4175 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm21 {%k1}
4176 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4177 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm17 {%k1}
4178 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4179 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm19 {%k1}
4180 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4181 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm16 {%k1}
4182 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4183 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm15 {%k1}
4184 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4185 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm14 {%k1}
4186 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4187 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm4 {%k1}
4188 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4189 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm13 {%k1}
4190 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4191 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm12 {%k1}
4192 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4193 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm11 {%k1}
4194 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4195 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm6 {%k1}
4196 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4197 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm10 {%k1}
4198 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4199 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm8 {%k1}
4200 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4201 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm3 {%k1}
4202 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4203 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm9 {%k1}
4204 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4205 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm7 {%k1}
4206 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4207 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm5 {%k1}
4208 ; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4209 ; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm2 {%k1}
4210 ; AVX512BW-NEXT: vmovdqa64 %zmm28, %zmm1 {%k1}
4211 ; AVX512BW-NEXT: vmovdqa64 %zmm1, 1984(%r8)
4212 ; AVX512BW-NEXT: vmovdqa64 %zmm2, 1920(%r8)
4213 ; AVX512BW-NEXT: vmovdqa64 %zmm5, 1856(%r8)
4214 ; AVX512BW-NEXT: vmovdqa64 %zmm7, 1792(%r8)
4215 ; AVX512BW-NEXT: vmovdqa64 %zmm9, 1728(%r8)
4216 ; AVX512BW-NEXT: vmovdqa64 %zmm3, 1664(%r8)
4217 ; AVX512BW-NEXT: vmovdqa64 %zmm8, 1600(%r8)
4218 ; AVX512BW-NEXT: vmovdqa64 %zmm10, 1536(%r8)
4219 ; AVX512BW-NEXT: vmovdqa64 %zmm6, 1472(%r8)
4220 ; AVX512BW-NEXT: vmovdqa64 %zmm11, 1408(%r8)
4221 ; AVX512BW-NEXT: vmovdqa64 %zmm12, 1344(%r8)
4222 ; AVX512BW-NEXT: vmovdqa64 %zmm13, 1280(%r8)
4223 ; AVX512BW-NEXT: vmovdqa64 %zmm4, 1216(%r8)
4224 ; AVX512BW-NEXT: vmovdqa64 %zmm14, 1152(%r8)
4225 ; AVX512BW-NEXT: vmovdqa64 %zmm15, 1088(%r8)
4226 ; AVX512BW-NEXT: vmovdqa64 %zmm16, 1024(%r8)
4227 ; AVX512BW-NEXT: vmovdqa64 %zmm19, 960(%r8)
4228 ; AVX512BW-NEXT: vmovdqa64 %zmm17, 896(%r8)
4229 ; AVX512BW-NEXT: vmovdqa64 %zmm21, 832(%r8)
4230 ; AVX512BW-NEXT: vmovdqa64 %zmm23, 768(%r8)
4231 ; AVX512BW-NEXT: vmovdqa64 %zmm18, 704(%r8)
4232 ; AVX512BW-NEXT: vmovdqa64 %zmm24, 640(%r8)
4233 ; AVX512BW-NEXT: vmovdqa64 %zmm25, 576(%r8)
4234 ; AVX512BW-NEXT: vmovdqa64 %zmm27, 512(%r8)
4235 ; AVX512BW-NEXT: vmovdqa64 %zmm20, 448(%r8)
4236 ; AVX512BW-NEXT: vmovdqa64 %zmm29, 384(%r8)
4237 ; AVX512BW-NEXT: vmovdqa64 %zmm30, 320(%r8)
4238 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4239 ; AVX512BW-NEXT: vmovaps %zmm0, 256(%r8)
4240 ; AVX512BW-NEXT: vmovdqa64 %zmm26, 192(%r8)
4241 ; AVX512BW-NEXT: vmovdqa64 %zmm31, 128(%r8)
4242 ; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4243 ; AVX512BW-NEXT: vmovaps %zmm0, 64(%r8)
4244 ; AVX512BW-NEXT: vmovdqa64 %zmm22, (%r8)
4245 ; AVX512BW-NEXT: addq $2120, %rsp # imm = 0x848
4246 ; AVX512BW-NEXT: vzeroupper
4247 ; AVX512BW-NEXT: retq
4248 %in.vec0 = load <64 x i64>, ptr %in.vecptr0, align 64
4249 %in.vec1 = load <64 x i64>, ptr %in.vecptr1, align 64
4250 %in.vec2 = load <64 x i64>, ptr %in.vecptr2, align 64
4251 %in.vec3 = load <64 x i64>, ptr %in.vecptr3, align 64
4252 %1 = shufflevector <64 x i64> %in.vec0, <64 x i64> %in.vec1, <128 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127>
4253 %2 = shufflevector <64 x i64> %in.vec2, <64 x i64> %in.vec3, <128 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127>
4254 %3 = shufflevector <128 x i64> %1, <128 x i64> %2, <256 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127, i32 128, i32 129, i32 130, i32 131, i32 132, i32 133, i32 134, i32 135, i32 136, i32 137, i32 138, i32 139, i32 140, i32 141, i32 142, i32 143, i32 144, i32 145, i32 146, i32 147, i32 148, i32 149, i32 150, i32 151, i32 152, i32 153, i32 154, i32 155, i32 156, i32 157, i32 158, i32 159, i32 160, i32 161, i32 162, i32 163, i32 164, i32 165, i32 166, i32 167, i32 168, i32 169, i32 170, i32 171, i32 172, i32 173, i32 174, i32 175, i32 176, i32 177, i32 178, i32 179, i32 180, i32 181, i32 182, i32 183, i32 184, i32 185, i32 186, i32 187, i32 188, i32 189, i32 190, i32 191, i32 192, i32 193, i32 194, i32 195, i32 196, i32 197, i32 198, i32 199, i32 200, i32 201, i32 202, i32 203, i32 204, i32 205, i32 206, i32 207, i32 208, i32 209, i32 210, i32 211, i32 212, i32 213, i32 214, i32 215, i32 216, i32 217, i32 218, i32 219, i32 220, i32 221, i32 222, i32 223, i32 224, i32 225, i32 226, i32 227, i32 228, i32 229, i32 230, i32 231, i32 232, i32 233, i32 234, i32 235, i32 236, i32 237, i32 238, i32 239, i32 240, i32 241, i32 242, i32 243, i32 244, i32 245, i32 246, i32 247, i32 248, i32 249, i32 250, i32 251, i32 252, i32 253, i32 254, i32 255>
4255 %interleaved.vec = shufflevector <256 x i64> %3, <256 x i64> poison, <256 x i32> <i32 0, i32 64, i32 128, i32 192, i32 1, i32 65, i32 129, i32 193, i32 2, i32 66, i32 130, i32 194, i32 3, i32 67, i32 131, i32 195, i32 4, i32 68, i32 132, i32 196, i32 5, i32 69, i32 133, i32 197, i32 6, i32 70, i32 134, i32 198, i32 7, i32 71, i32 135, i32 199, i32 8, i32 72, i32 136, i32 200, i32 9, i32 73, i32 137, i32 201, i32 10, i32 74, i32 138, i32 202, i32 11, i32 75, i32 139, i32 203, i32 12, i32 76, i32 140, i32 204, i32 13, i32 77, i32 141, i32 205, i32 14, i32 78, i32 142, i32 206, i32 15, i32 79, i32 143, i32 207, i32 16, i32 80, i32 144, i32 208, i32 17, i32 81, i32 145, i32 209, i32 18, i32 82, i32 146, i32 210, i32 19, i32 83, i32 147, i32 211, i32 20, i32 84, i32 148, i32 212, i32 21, i32 85, i32 149, i32 213, i32 22, i32 86, i32 150, i32 214, i32 23, i32 87, i32 151, i32 215, i32 24, i32 88, i32 152, i32 216, i32 25, i32 89, i32 153, i32 217, i32 26, i32 90, i32 154, i32 218, i32 27, i32 91, i32 155, i32 219, i32 28, i32 92, i32 156, i32 220, i32 29, i32 93, i32 157, i32 221, i32 30, i32 94, i32 158, i32 222, i32 31, i32 95, i32 159, i32 223, i32 32, i32 96, i32 160, i32 224, i32 33, i32 97, i32 161, i32 225, i32 34, i32 98, i32 162, i32 226, i32 35, i32 99, i32 163, i32 227, i32 36, i32 100, i32 164, i32 228, i32 37, i32 101, i32 165, i32 229, i32 38, i32 102, i32 166, i32 230, i32 39, i32 103, i32 167, i32 231, i32 40, i32 104, i32 168, i32 232, i32 41, i32 105, i32 169, i32 233, i32 42, i32 106, i32 170, i32 234, i32 43, i32 107, i32 171, i32 235, i32 44, i32 108, i32 172, i32 236, i32 45, i32 109, i32 173, i32 237, i32 46, i32 110, i32 174, i32 238, i32 47, i32 111, i32 175, i32 239, i32 48, i32 112, i32 176, i32 240, i32 49, i32 113, i32 177, i32 241, i32 50, i32 114, i32 178, i32 242, i32 51, i32 115, i32 179, i32 243, i32 52, i32 116, i32 180, i32 244, i32 53, i32 117, i32 181, i32 245, i32 54, i32 118, i32 182, i32 246, i32 55, i32 119, i32 183, i32 247, i32 56, i32 120, i32 184, i32 248, i32 57, i32 121, i32 185, i32 249, i32 58, i32 122, i32 186, i32 250, i32 59, i32 123, i32 187, i32 251, i32 60, i32 124, i32 188, i32 252, i32 61, i32 125, i32 189, i32 253, i32 62, i32 126, i32 190, i32 254, i32 63, i32 127, i32 191, i32 255>
4256 store <256 x i64> %interleaved.vec, ptr %out.vec, align 64
4259 ;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
4264 ; AVX2-FAST-PERLANE: {{.*}}
4266 ; AVX512-FAST: {{.*}}
4267 ; AVX512-SLOW: {{.*}}
4268 ; AVX512BW-FAST: {{.*}}
4269 ; AVX512BW-ONLY-FAST: {{.*}}
4270 ; AVX512BW-ONLY-SLOW: {{.*}}
4271 ; AVX512BW-SLOW: {{.*}}
4272 ; AVX512DQ-FAST: {{.*}}
4273 ; AVX512DQ-SLOW: {{.*}}
4274 ; AVX512DQBW-FAST: {{.*}}
4275 ; AVX512DQBW-SLOW: {{.*}}
4276 ; AVX512F-FAST: {{.*}}
4277 ; AVX512F-ONLY-FAST: {{.*}}
4278 ; AVX512F-ONLY-SLOW: {{.*}}
4279 ; AVX512F-SLOW: {{.*}}
4282 ; FALLBACK10: {{.*}}
4283 ; FALLBACK11: {{.*}}
4284 ; FALLBACK12: {{.*}}