Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / CodeGen / X86 / vector-interleaved-load-i64-stride-4.ll
blobe2bf6ef15fdea78b84f62861dd2b5cba83068886
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+sse2 | FileCheck %s --check-prefixes=SSE,FALLBACK0
3 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx  | FileCheck %s --check-prefixes=AVX,AVX1,AVX1-ONLY,FALLBACK1
4 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx2 | FileCheck %s --check-prefixes=AVX,AVX1,AVX2,AVX2-ONLY,AVX2-SLOW,FALLBACK2
5 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx2,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX,AVX1,AVX2,AVX2-ONLY,AVX2-FAST,FALLBACK3
6 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx2,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX,AVX1,AVX2,AVX2-ONLY,AVX2-FAST-PERLANE,FALLBACK4
7 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512F,AVX512-SLOW,AVX512F-SLOW,AVX512F-ONLY-SLOW,FALLBACK5
8 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512F,AVX512-FAST,AVX512F-FAST,AVX512F-ONLY-FAST,FALLBACK6
9 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512F,AVX512-SLOW,AVX512F-SLOW,AVX512DQ-SLOW,FALLBACK7
10 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512F,AVX512-FAST,AVX512F-FAST,AVX512DQ-FAST,FALLBACK8
11 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512bw | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512BW,AVX512-SLOW,AVX512BW-SLOW,AVX512BW-ONLY-SLOW,FALLBACK9
12 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512bw,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512BW,AVX512-FAST,AVX512BW-FAST,AVX512BW-ONLY-FAST,FALLBACK10
13 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq,+avx512bw | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512BW,AVX512-SLOW,AVX512BW-SLOW,AVX512DQBW-SLOW,FALLBACK11
14 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq,+avx512bw,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512BW,AVX512-FAST,AVX512BW-FAST,AVX512DQBW-FAST,FALLBACK12
16 ; These patterns are produced by LoopVectorizer for interleaved loads.
18 define void @load_i64_stride4_vf2(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3) nounwind {
19 ; SSE-LABEL: load_i64_stride4_vf2:
20 ; SSE:       # %bb.0:
21 ; SSE-NEXT:    movaps (%rdi), %xmm0
22 ; SSE-NEXT:    movaps 16(%rdi), %xmm1
23 ; SSE-NEXT:    movaps 32(%rdi), %xmm2
24 ; SSE-NEXT:    movaps 48(%rdi), %xmm3
25 ; SSE-NEXT:    movaps %xmm0, %xmm4
26 ; SSE-NEXT:    movlhps {{.*#+}} xmm4 = xmm4[0],xmm2[0]
27 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
28 ; SSE-NEXT:    movaps %xmm1, %xmm2
29 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm3[0]
30 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm3[1]
31 ; SSE-NEXT:    movaps %xmm4, (%rsi)
32 ; SSE-NEXT:    movaps %xmm0, (%rdx)
33 ; SSE-NEXT:    movaps %xmm2, (%rcx)
34 ; SSE-NEXT:    movaps %xmm1, (%r8)
35 ; SSE-NEXT:    retq
37 ; AVX1-ONLY-LABEL: load_i64_stride4_vf2:
38 ; AVX1-ONLY:       # %bb.0:
39 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %xmm0
40 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %xmm1
41 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
42 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
43 ; AVX1-ONLY-NEXT:    vmovaps 48(%rdi), %xmm1
44 ; AVX1-ONLY-NEXT:    vmovaps 16(%rdi), %xmm3
45 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm4 = xmm3[0],xmm1[0]
46 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm3[1],xmm1[1]
47 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, (%rsi)
48 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, (%rdx)
49 ; AVX1-ONLY-NEXT:    vmovaps %xmm4, (%rcx)
50 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, (%r8)
51 ; AVX1-ONLY-NEXT:    retq
53 ; AVX2-ONLY-LABEL: load_i64_stride4_vf2:
54 ; AVX2-ONLY:       # %bb.0:
55 ; AVX2-ONLY-NEXT:    vmovaps (%rdi), %xmm0
56 ; AVX2-ONLY-NEXT:    vmovaps 32(%rdi), %xmm1
57 ; AVX2-ONLY-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm0[0],xmm1[0]
58 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]
59 ; AVX2-ONLY-NEXT:    vmovaps 32(%rdi), %ymm1
60 ; AVX2-ONLY-NEXT:    vmovaps (%rdi), %ymm3
61 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm3[0],ymm1[0],ymm3[2],ymm1[2]
62 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm3[1],ymm1[1],ymm3[3],ymm1[3]
63 ; AVX2-ONLY-NEXT:    vmovaps %xmm2, (%rsi)
64 ; AVX2-ONLY-NEXT:    vmovaps %xmm0, (%rdx)
65 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm4, (%rcx)
66 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm1, (%r8)
67 ; AVX2-ONLY-NEXT:    vzeroupper
68 ; AVX2-ONLY-NEXT:    retq
70 ; AVX512-SLOW-LABEL: load_i64_stride4_vf2:
71 ; AVX512-SLOW:       # %bb.0:
72 ; AVX512-SLOW-NEXT:    vmovaps (%rdi), %xmm0
73 ; AVX512-SLOW-NEXT:    vmovaps 32(%rdi), %xmm1
74 ; AVX512-SLOW-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm0[0],xmm1[0]
75 ; AVX512-SLOW-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]
76 ; AVX512-SLOW-NEXT:    vmovaps 32(%rdi), %ymm1
77 ; AVX512-SLOW-NEXT:    vmovaps (%rdi), %ymm3
78 ; AVX512-SLOW-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm3[0],ymm1[0],ymm3[2],ymm1[2]
79 ; AVX512-SLOW-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm3[1],ymm1[1],ymm3[3],ymm1[3]
80 ; AVX512-SLOW-NEXT:    vmovaps %xmm2, (%rsi)
81 ; AVX512-SLOW-NEXT:    vmovaps %xmm0, (%rdx)
82 ; AVX512-SLOW-NEXT:    vextractf128 $1, %ymm4, (%rcx)
83 ; AVX512-SLOW-NEXT:    vextractf128 $1, %ymm1, (%r8)
84 ; AVX512-SLOW-NEXT:    vzeroupper
85 ; AVX512-SLOW-NEXT:    retq
87 ; AVX512-FAST-LABEL: load_i64_stride4_vf2:
88 ; AVX512-FAST:       # %bb.0:
89 ; AVX512-FAST-NEXT:    vmovaps {{.*#+}} xmm0 = [0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0]
90 ; AVX512-FAST-NEXT:    vpermpd (%rdi), %zmm0, %zmm0
91 ; AVX512-FAST-NEXT:    vmovaps (%rdi), %xmm1
92 ; AVX512-FAST-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],mem[1]
93 ; AVX512-FAST-NEXT:    vmovaps (%rdi), %ymm2
94 ; AVX512-FAST-NEXT:    vmovaps 32(%rdi), %ymm3
95 ; AVX512-FAST-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
96 ; AVX512-FAST-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
97 ; AVX512-FAST-NEXT:    vmovaps %xmm0, (%rsi)
98 ; AVX512-FAST-NEXT:    vmovaps %xmm1, (%rdx)
99 ; AVX512-FAST-NEXT:    vextractf128 $1, %ymm4, (%rcx)
100 ; AVX512-FAST-NEXT:    vextractf128 $1, %ymm2, (%r8)
101 ; AVX512-FAST-NEXT:    vzeroupper
102 ; AVX512-FAST-NEXT:    retq
103   %wide.vec = load <8 x i64>, ptr %in.vec, align 64
104   %strided.vec0 = shufflevector <8 x i64> %wide.vec, <8 x i64> poison, <2 x i32> <i32 0, i32 4>
105   %strided.vec1 = shufflevector <8 x i64> %wide.vec, <8 x i64> poison, <2 x i32> <i32 1, i32 5>
106   %strided.vec2 = shufflevector <8 x i64> %wide.vec, <8 x i64> poison, <2 x i32> <i32 2, i32 6>
107   %strided.vec3 = shufflevector <8 x i64> %wide.vec, <8 x i64> poison, <2 x i32> <i32 3, i32 7>
108   store <2 x i64> %strided.vec0, ptr %out.vec0, align 64
109   store <2 x i64> %strided.vec1, ptr %out.vec1, align 64
110   store <2 x i64> %strided.vec2, ptr %out.vec2, align 64
111   store <2 x i64> %strided.vec3, ptr %out.vec3, align 64
112   ret void
115 define void @load_i64_stride4_vf4(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3) nounwind {
116 ; SSE-LABEL: load_i64_stride4_vf4:
117 ; SSE:       # %bb.0:
118 ; SSE-NEXT:    movaps 112(%rdi), %xmm0
119 ; SSE-NEXT:    movaps 80(%rdi), %xmm1
120 ; SSE-NEXT:    movaps (%rdi), %xmm2
121 ; SSE-NEXT:    movaps 16(%rdi), %xmm3
122 ; SSE-NEXT:    movaps 32(%rdi), %xmm4
123 ; SSE-NEXT:    movaps 48(%rdi), %xmm5
124 ; SSE-NEXT:    movaps 96(%rdi), %xmm6
125 ; SSE-NEXT:    movaps 64(%rdi), %xmm7
126 ; SSE-NEXT:    movaps %xmm7, %xmm8
127 ; SSE-NEXT:    movlhps {{.*#+}} xmm8 = xmm8[0],xmm6[0]
128 ; SSE-NEXT:    movaps %xmm2, %xmm9
129 ; SSE-NEXT:    movlhps {{.*#+}} xmm9 = xmm9[0],xmm4[0]
130 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm7 = xmm7[1],xmm6[1]
131 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm4[1]
132 ; SSE-NEXT:    movaps %xmm1, %xmm4
133 ; SSE-NEXT:    movlhps {{.*#+}} xmm4 = xmm4[0],xmm0[0]
134 ; SSE-NEXT:    movaps %xmm3, %xmm6
135 ; SSE-NEXT:    movlhps {{.*#+}} xmm6 = xmm6[0],xmm5[0]
136 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
137 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm3 = xmm3[1],xmm5[1]
138 ; SSE-NEXT:    movaps %xmm8, 16(%rsi)
139 ; SSE-NEXT:    movaps %xmm9, (%rsi)
140 ; SSE-NEXT:    movaps %xmm7, 16(%rdx)
141 ; SSE-NEXT:    movaps %xmm2, (%rdx)
142 ; SSE-NEXT:    movaps %xmm4, 16(%rcx)
143 ; SSE-NEXT:    movaps %xmm6, (%rcx)
144 ; SSE-NEXT:    movaps %xmm1, 16(%r8)
145 ; SSE-NEXT:    movaps %xmm3, (%r8)
146 ; SSE-NEXT:    retq
148 ; AVX1-ONLY-LABEL: load_i64_stride4_vf4:
149 ; AVX1-ONLY:       # %bb.0:
150 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %ymm0
151 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %ymm1
152 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 64(%rdi), %ymm0, %ymm2
153 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 96(%rdi), %ymm1, %ymm3
154 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],mem[2,3]
155 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm1[2,3],mem[2,3]
156 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
157 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
158 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
159 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
160 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, (%rsi)
161 ; AVX1-ONLY-NEXT:    vmovaps %ymm2, (%rdx)
162 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, (%rcx)
163 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, (%r8)
164 ; AVX1-ONLY-NEXT:    vzeroupper
165 ; AVX1-ONLY-NEXT:    retq
167 ; AVX2-ONLY-LABEL: load_i64_stride4_vf4:
168 ; AVX2-ONLY:       # %bb.0:
169 ; AVX2-ONLY-NEXT:    vmovaps (%rdi), %ymm0
170 ; AVX2-ONLY-NEXT:    vmovaps 32(%rdi), %ymm1
171 ; AVX2-ONLY-NEXT:    vmovaps 64(%rdi), %ymm2
172 ; AVX2-ONLY-NEXT:    vmovaps 96(%rdi), %ymm3
173 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm4 = ymm0[0,1],ymm2[0,1]
174 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm5 = ymm1[0,1],ymm3[0,1]
175 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]
176 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm1[2,3],ymm3[2,3]
177 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm4[0],ymm5[0],ymm4[2],ymm5[2]
178 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
179 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm4 = ymm4[1],ymm5[1],ymm4[3],ymm5[3]
180 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
181 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, (%rsi)
182 ; AVX2-ONLY-NEXT:    vmovaps %ymm4, (%rdx)
183 ; AVX2-ONLY-NEXT:    vmovaps %ymm3, (%rcx)
184 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, (%r8)
185 ; AVX2-ONLY-NEXT:    vzeroupper
186 ; AVX2-ONLY-NEXT:    retq
188 ; AVX512-LABEL: load_i64_stride4_vf4:
189 ; AVX512:       # %bb.0:
190 ; AVX512-NEXT:    vmovdqa (%rdi), %ymm0
191 ; AVX512-NEXT:    vmovdqa 32(%rdi), %ymm1
192 ; AVX512-NEXT:    vmovdqa 64(%rdi), %ymm2
193 ; AVX512-NEXT:    vmovdqa 96(%rdi), %ymm3
194 ; AVX512-NEXT:    vperm2i128 {{.*#+}} ymm4 = ymm0[0,1],ymm2[0,1]
195 ; AVX512-NEXT:    vperm2i128 {{.*#+}} ymm5 = ymm1[0,1],ymm3[0,1]
196 ; AVX512-NEXT:    vperm2i128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]
197 ; AVX512-NEXT:    vperm2i128 {{.*#+}} ymm1 = ymm1[2,3],ymm3[2,3]
198 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} ymm2 = ymm4[0],ymm5[0],ymm4[2],ymm5[2]
199 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} ymm3 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
200 ; AVX512-NEXT:    vpunpckhqdq {{.*#+}} ymm4 = ymm4[1],ymm5[1],ymm4[3],ymm5[3]
201 ; AVX512-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
202 ; AVX512-NEXT:    vmovdqa %ymm2, (%rsi)
203 ; AVX512-NEXT:    vmovdqa %ymm4, (%rdx)
204 ; AVX512-NEXT:    vmovdqa %ymm3, (%rcx)
205 ; AVX512-NEXT:    vmovdqa %ymm0, (%r8)
206 ; AVX512-NEXT:    vzeroupper
207 ; AVX512-NEXT:    retq
208   %wide.vec = load <16 x i64>, ptr %in.vec, align 64
209   %strided.vec0 = shufflevector <16 x i64> %wide.vec, <16 x i64> poison, <4 x i32> <i32 0, i32 4, i32 8, i32 12>
210   %strided.vec1 = shufflevector <16 x i64> %wide.vec, <16 x i64> poison, <4 x i32> <i32 1, i32 5, i32 9, i32 13>
211   %strided.vec2 = shufflevector <16 x i64> %wide.vec, <16 x i64> poison, <4 x i32> <i32 2, i32 6, i32 10, i32 14>
212   %strided.vec3 = shufflevector <16 x i64> %wide.vec, <16 x i64> poison, <4 x i32> <i32 3, i32 7, i32 11, i32 15>
213   store <4 x i64> %strided.vec0, ptr %out.vec0, align 64
214   store <4 x i64> %strided.vec1, ptr %out.vec1, align 64
215   store <4 x i64> %strided.vec2, ptr %out.vec2, align 64
216   store <4 x i64> %strided.vec3, ptr %out.vec3, align 64
217   ret void
220 define void @load_i64_stride4_vf8(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3) nounwind {
221 ; SSE-LABEL: load_i64_stride4_vf8:
222 ; SSE:       # %bb.0:
223 ; SSE-NEXT:    movaps 240(%rdi), %xmm5
224 ; SSE-NEXT:    movaps 208(%rdi), %xmm3
225 ; SSE-NEXT:    movaps 176(%rdi), %xmm9
226 ; SSE-NEXT:    movaps 144(%rdi), %xmm1
227 ; SSE-NEXT:    movaps 112(%rdi), %xmm11
228 ; SSE-NEXT:    movaps 80(%rdi), %xmm2
229 ; SSE-NEXT:    movaps (%rdi), %xmm4
230 ; SSE-NEXT:    movaps 16(%rdi), %xmm0
231 ; SSE-NEXT:    movaps 32(%rdi), %xmm13
232 ; SSE-NEXT:    movaps 224(%rdi), %xmm14
233 ; SSE-NEXT:    movaps 192(%rdi), %xmm7
234 ; SSE-NEXT:    movaps 160(%rdi), %xmm15
235 ; SSE-NEXT:    movaps 128(%rdi), %xmm6
236 ; SSE-NEXT:    movaps 96(%rdi), %xmm12
237 ; SSE-NEXT:    movaps 64(%rdi), %xmm8
238 ; SSE-NEXT:    movaps %xmm8, %xmm10
239 ; SSE-NEXT:    movlhps {{.*#+}} xmm10 = xmm10[0],xmm12[0]
240 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm12[1]
241 ; SSE-NEXT:    movaps %xmm6, %xmm12
242 ; SSE-NEXT:    movlhps {{.*#+}} xmm12 = xmm12[0],xmm15[0]
243 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm6 = xmm6[1],xmm15[1]
244 ; SSE-NEXT:    movaps %xmm7, %xmm15
245 ; SSE-NEXT:    movlhps {{.*#+}} xmm15 = xmm15[0],xmm14[0]
246 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm7 = xmm7[1],xmm14[1]
247 ; SSE-NEXT:    movaps %xmm4, %xmm14
248 ; SSE-NEXT:    movlhps {{.*#+}} xmm14 = xmm14[0],xmm13[0]
249 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm13[1]
250 ; SSE-NEXT:    movaps %xmm2, %xmm13
251 ; SSE-NEXT:    movlhps {{.*#+}} xmm13 = xmm13[0],xmm11[0]
252 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm11[1]
253 ; SSE-NEXT:    movaps %xmm1, %xmm11
254 ; SSE-NEXT:    movlhps {{.*#+}} xmm11 = xmm11[0],xmm9[0]
255 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm9[1]
256 ; SSE-NEXT:    movaps %xmm3, %xmm9
257 ; SSE-NEXT:    movlhps {{.*#+}} xmm9 = xmm9[0],xmm5[0]
258 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm3 = xmm3[1],xmm5[1]
259 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
260 ; SSE-NEXT:    movaps 48(%rdi), %xmm5
261 ; SSE-NEXT:    movaps %xmm0, %xmm3
262 ; SSE-NEXT:    movlhps {{.*#+}} xmm3 = xmm3[0],xmm5[0]
263 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm5[1]
264 ; SSE-NEXT:    movaps %xmm15, 48(%rsi)
265 ; SSE-NEXT:    movaps %xmm14, (%rsi)
266 ; SSE-NEXT:    movaps %xmm12, 32(%rsi)
267 ; SSE-NEXT:    movaps %xmm10, 16(%rsi)
268 ; SSE-NEXT:    movaps %xmm7, 48(%rdx)
269 ; SSE-NEXT:    movaps %xmm4, (%rdx)
270 ; SSE-NEXT:    movaps %xmm6, 32(%rdx)
271 ; SSE-NEXT:    movaps %xmm8, 16(%rdx)
272 ; SSE-NEXT:    movaps %xmm9, 48(%rcx)
273 ; SSE-NEXT:    movaps %xmm11, 32(%rcx)
274 ; SSE-NEXT:    movaps %xmm13, 16(%rcx)
275 ; SSE-NEXT:    movaps %xmm3, (%rcx)
276 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
277 ; SSE-NEXT:    movaps %xmm3, 48(%r8)
278 ; SSE-NEXT:    movaps %xmm1, 32(%r8)
279 ; SSE-NEXT:    movaps %xmm2, 16(%r8)
280 ; SSE-NEXT:    movaps %xmm0, (%r8)
281 ; SSE-NEXT:    retq
283 ; AVX1-ONLY-LABEL: load_i64_stride4_vf8:
284 ; AVX1-ONLY:       # %bb.0:
285 ; AVX1-ONLY-NEXT:    vmovaps 224(%rdi), %ymm3
286 ; AVX1-ONLY-NEXT:    vmovaps 192(%rdi), %ymm2
287 ; AVX1-ONLY-NEXT:    vmovaps 96(%rdi), %ymm4
288 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdi), %ymm5
289 ; AVX1-ONLY-NEXT:    vmovaps 96(%rdi), %xmm6
290 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdi), %xmm7
291 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm0 = xmm7[0],xmm6[0]
292 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
293 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %xmm8
294 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %xmm9
295 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm0 = xmm9[0],xmm8[0]
296 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
297 ; AVX1-ONLY-NEXT:    vmovaps 224(%rdi), %xmm10
298 ; AVX1-ONLY-NEXT:    vmovaps 192(%rdi), %xmm11
299 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm12 = xmm11[0],xmm10[0]
300 ; AVX1-ONLY-NEXT:    vmovaps 160(%rdi), %xmm13
301 ; AVX1-ONLY-NEXT:    vmovaps 128(%rdi), %xmm14
302 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm15 = xmm14[0],xmm13[0]
303 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm7[1],xmm6[1]
304 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
305 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm7 = xmm9[1],xmm8[1]
306 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm8 = xmm11[1],xmm10[1]
307 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm9 = xmm14[1],xmm13[1]
308 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm10 = ymm5[0],ymm4[0],ymm5[2],ymm4[2]
309 ; AVX1-ONLY-NEXT:    vmovaps 48(%rdi), %xmm11
310 ; AVX1-ONLY-NEXT:    vmovaps 16(%rdi), %xmm13
311 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm14 = xmm13[0],xmm11[0]
312 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm10 = ymm14[0,1,2,3],ymm10[4,5,6,7]
313 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm14 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
314 ; AVX1-ONLY-NEXT:    vmovaps 176(%rdi), %xmm1
315 ; AVX1-ONLY-NEXT:    vmovaps 144(%rdi), %xmm0
316 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm6 = xmm0[0],xmm1[0]
317 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm14[4,5,6,7]
318 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm4 = ymm5[1],ymm4[1],ymm5[3],ymm4[3]
319 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm5 = xmm13[1],xmm11[1]
320 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1,2,3],ymm4[4,5,6,7]
321 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
322 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]
323 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
324 ; AVX1-ONLY-NEXT:    vmovaps %xmm15, 32(%rsi)
325 ; AVX1-ONLY-NEXT:    vmovaps %xmm12, 48(%rsi)
326 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
327 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, (%rsi)
328 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
329 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 16(%rsi)
330 ; AVX1-ONLY-NEXT:    vmovaps %xmm9, 32(%rdx)
331 ; AVX1-ONLY-NEXT:    vmovaps %xmm8, 48(%rdx)
332 ; AVX1-ONLY-NEXT:    vmovaps %xmm7, (%rdx)
333 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
334 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 16(%rdx)
335 ; AVX1-ONLY-NEXT:    vmovaps %ymm6, 32(%rcx)
336 ; AVX1-ONLY-NEXT:    vmovaps %ymm10, (%rcx)
337 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 32(%r8)
338 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, (%r8)
339 ; AVX1-ONLY-NEXT:    vzeroupper
340 ; AVX1-ONLY-NEXT:    retq
342 ; AVX2-ONLY-LABEL: load_i64_stride4_vf8:
343 ; AVX2-ONLY:       # %bb.0:
344 ; AVX2-ONLY-NEXT:    vmovaps 160(%rdi), %ymm0
345 ; AVX2-ONLY-NEXT:    vmovaps 128(%rdi), %ymm1
346 ; AVX2-ONLY-NEXT:    vmovaps 224(%rdi), %ymm2
347 ; AVX2-ONLY-NEXT:    vmovaps 192(%rdi), %ymm3
348 ; AVX2-ONLY-NEXT:    vmovaps 32(%rdi), %ymm4
349 ; AVX2-ONLY-NEXT:    vmovaps (%rdi), %ymm5
350 ; AVX2-ONLY-NEXT:    vmovaps 96(%rdi), %ymm6
351 ; AVX2-ONLY-NEXT:    vmovaps 64(%rdi), %ymm7
352 ; AVX2-ONLY-NEXT:    vmovaps (%rdi), %xmm8
353 ; AVX2-ONLY-NEXT:    vmovaps 32(%rdi), %xmm9
354 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 96(%rdi), %ymm9, %ymm9
355 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 64(%rdi), %ymm8, %ymm8
356 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm10 = ymm8[0],ymm9[0],ymm8[2],ymm9[2]
357 ; AVX2-ONLY-NEXT:    vmovaps 160(%rdi), %xmm11
358 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 224(%rdi), %ymm11, %ymm11
359 ; AVX2-ONLY-NEXT:    vmovaps 128(%rdi), %xmm12
360 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 192(%rdi), %ymm12, %ymm12
361 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm13 = ymm12[0],ymm11[0],ymm12[2],ymm11[2]
362 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm8 = ymm8[1],ymm9[1],ymm8[3],ymm9[3]
363 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm9 = ymm12[1],ymm11[1],ymm12[3],ymm11[3]
364 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm11 = ymm7[0],ymm6[0],ymm7[2],ymm6[2]
365 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm12 = ymm5[0],ymm4[0],ymm5[2],ymm4[2]
366 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm11 = ymm12[2,3],ymm11[2,3]
367 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm12 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
368 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm14 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
369 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm12 = ymm14[2,3],ymm12[2,3]
370 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm6 = ymm7[1],ymm6[1],ymm7[3],ymm6[3]
371 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm4 = ymm5[1],ymm4[1],ymm5[3],ymm4[3]
372 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm4 = ymm4[2,3],ymm6[2,3]
373 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm3[1],ymm2[1],ymm3[3],ymm2[3]
374 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
375 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]
376 ; AVX2-ONLY-NEXT:    vmovaps %ymm13, 32(%rsi)
377 ; AVX2-ONLY-NEXT:    vmovaps %ymm10, (%rsi)
378 ; AVX2-ONLY-NEXT:    vmovaps %ymm9, 32(%rdx)
379 ; AVX2-ONLY-NEXT:    vmovaps %ymm8, (%rdx)
380 ; AVX2-ONLY-NEXT:    vmovaps %ymm12, 32(%rcx)
381 ; AVX2-ONLY-NEXT:    vmovaps %ymm11, (%rcx)
382 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 32(%r8)
383 ; AVX2-ONLY-NEXT:    vmovaps %ymm4, (%r8)
384 ; AVX2-ONLY-NEXT:    vzeroupper
385 ; AVX2-ONLY-NEXT:    retq
387 ; AVX512-LABEL: load_i64_stride4_vf8:
388 ; AVX512:       # %bb.0:
389 ; AVX512-NEXT:    vmovdqa64 (%rdi), %zmm0
390 ; AVX512-NEXT:    vmovdqa64 64(%rdi), %zmm1
391 ; AVX512-NEXT:    vmovdqa64 128(%rdi), %zmm2
392 ; AVX512-NEXT:    vmovdqa64 192(%rdi), %zmm3
393 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,4,8,12,0,4,8,12]
394 ; AVX512-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
395 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm5
396 ; AVX512-NEXT:    vpermt2q %zmm3, %zmm4, %zmm5
397 ; AVX512-NEXT:    vpermi2q %zmm1, %zmm0, %zmm4
398 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm4 = zmm4[0,1,2,3],zmm5[4,5,6,7]
399 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [1,5,9,13,1,5,9,13]
400 ; AVX512-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
401 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm6
402 ; AVX512-NEXT:    vpermt2q %zmm3, %zmm5, %zmm6
403 ; AVX512-NEXT:    vpermi2q %zmm1, %zmm0, %zmm5
404 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm5 = zmm5[0,1,2,3],zmm6[4,5,6,7]
405 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm6 = [2,6,10,14,2,6,10,14]
406 ; AVX512-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3]
407 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm7
408 ; AVX512-NEXT:    vpermt2q %zmm3, %zmm6, %zmm7
409 ; AVX512-NEXT:    vpermi2q %zmm1, %zmm0, %zmm6
410 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm6 = zmm6[0,1,2,3],zmm7[4,5,6,7]
411 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm7 = [3,7,11,15,3,7,11,15]
412 ; AVX512-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3]
413 ; AVX512-NEXT:    vpermt2q %zmm3, %zmm7, %zmm2
414 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm7, %zmm0
415 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm0[0,1,2,3],zmm2[4,5,6,7]
416 ; AVX512-NEXT:    vmovdqa64 %zmm4, (%rsi)
417 ; AVX512-NEXT:    vmovdqa64 %zmm5, (%rdx)
418 ; AVX512-NEXT:    vmovdqa64 %zmm6, (%rcx)
419 ; AVX512-NEXT:    vmovdqa64 %zmm0, (%r8)
420 ; AVX512-NEXT:    vzeroupper
421 ; AVX512-NEXT:    retq
422   %wide.vec = load <32 x i64>, ptr %in.vec, align 64
423   %strided.vec0 = shufflevector <32 x i64> %wide.vec, <32 x i64> poison, <8 x i32> <i32 0, i32 4, i32 8, i32 12, i32 16, i32 20, i32 24, i32 28>
424   %strided.vec1 = shufflevector <32 x i64> %wide.vec, <32 x i64> poison, <8 x i32> <i32 1, i32 5, i32 9, i32 13, i32 17, i32 21, i32 25, i32 29>
425   %strided.vec2 = shufflevector <32 x i64> %wide.vec, <32 x i64> poison, <8 x i32> <i32 2, i32 6, i32 10, i32 14, i32 18, i32 22, i32 26, i32 30>
426   %strided.vec3 = shufflevector <32 x i64> %wide.vec, <32 x i64> poison, <8 x i32> <i32 3, i32 7, i32 11, i32 15, i32 19, i32 23, i32 27, i32 31>
427   store <8 x i64> %strided.vec0, ptr %out.vec0, align 64
428   store <8 x i64> %strided.vec1, ptr %out.vec1, align 64
429   store <8 x i64> %strided.vec2, ptr %out.vec2, align 64
430   store <8 x i64> %strided.vec3, ptr %out.vec3, align 64
431   ret void
434 define void @load_i64_stride4_vf16(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3) nounwind {
435 ; SSE-LABEL: load_i64_stride4_vf16:
436 ; SSE:       # %bb.0:
437 ; SSE-NEXT:    subq $152, %rsp
438 ; SSE-NEXT:    movaps (%rdi), %xmm7
439 ; SSE-NEXT:    movaps 416(%rdi), %xmm0
440 ; SSE-NEXT:    movaps 384(%rdi), %xmm8
441 ; SSE-NEXT:    movaps 160(%rdi), %xmm1
442 ; SSE-NEXT:    movaps 128(%rdi), %xmm9
443 ; SSE-NEXT:    movaps 480(%rdi), %xmm2
444 ; SSE-NEXT:    movaps 448(%rdi), %xmm10
445 ; SSE-NEXT:    movaps 224(%rdi), %xmm3
446 ; SSE-NEXT:    movaps 192(%rdi), %xmm11
447 ; SSE-NEXT:    movaps 288(%rdi), %xmm4
448 ; SSE-NEXT:    movaps 256(%rdi), %xmm13
449 ; SSE-NEXT:    movaps 352(%rdi), %xmm5
450 ; SSE-NEXT:    movaps 320(%rdi), %xmm12
451 ; SSE-NEXT:    movaps 96(%rdi), %xmm6
452 ; SSE-NEXT:    movaps 64(%rdi), %xmm14
453 ; SSE-NEXT:    movaps %xmm14, %xmm15
454 ; SSE-NEXT:    movlhps {{.*#+}} xmm15 = xmm15[0],xmm6[0]
455 ; SSE-NEXT:    movaps %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
456 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm14 = xmm14[1],xmm6[1]
457 ; SSE-NEXT:    movaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
458 ; SSE-NEXT:    movaps %xmm12, %xmm6
459 ; SSE-NEXT:    movlhps {{.*#+}} xmm6 = xmm6[0],xmm5[0]
460 ; SSE-NEXT:    movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
461 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm12 = xmm12[1],xmm5[1]
462 ; SSE-NEXT:    movaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
463 ; SSE-NEXT:    movaps %xmm13, %xmm5
464 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm4[0]
465 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
466 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm13 = xmm13[1],xmm4[1]
467 ; SSE-NEXT:    movaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
468 ; SSE-NEXT:    movaps %xmm11, %xmm4
469 ; SSE-NEXT:    movlhps {{.*#+}} xmm4 = xmm4[0],xmm3[0]
470 ; SSE-NEXT:    movaps %xmm4, (%rsp) # 16-byte Spill
471 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm11 = xmm11[1],xmm3[1]
472 ; SSE-NEXT:    movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
473 ; SSE-NEXT:    movaps %xmm10, %xmm3
474 ; SSE-NEXT:    movlhps {{.*#+}} xmm3 = xmm3[0],xmm2[0]
475 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
476 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm10 = xmm10[1],xmm2[1]
477 ; SSE-NEXT:    movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
478 ; SSE-NEXT:    movaps %xmm9, %xmm2
479 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm1[0]
480 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
481 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm9 = xmm9[1],xmm1[1]
482 ; SSE-NEXT:    movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
483 ; SSE-NEXT:    movaps %xmm8, %xmm1
484 ; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
485 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
486 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm0[1]
487 ; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
488 ; SSE-NEXT:    movaps 32(%rdi), %xmm0
489 ; SSE-NEXT:    movaps %xmm7, %xmm1
490 ; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
491 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
492 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm7 = xmm7[1],xmm0[1]
493 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
494 ; SSE-NEXT:    movaps 112(%rdi), %xmm0
495 ; SSE-NEXT:    movaps 80(%rdi), %xmm15
496 ; SSE-NEXT:    movaps %xmm15, %xmm1
497 ; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
498 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
499 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm15 = xmm15[1],xmm0[1]
500 ; SSE-NEXT:    movaps 176(%rdi), %xmm0
501 ; SSE-NEXT:    movaps 144(%rdi), %xmm11
502 ; SSE-NEXT:    movaps %xmm11, %xmm14
503 ; SSE-NEXT:    movlhps {{.*#+}} xmm14 = xmm14[0],xmm0[0]
504 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm11 = xmm11[1],xmm0[1]
505 ; SSE-NEXT:    movaps 240(%rdi), %xmm0
506 ; SSE-NEXT:    movaps 208(%rdi), %xmm12
507 ; SSE-NEXT:    movaps %xmm12, %xmm13
508 ; SSE-NEXT:    movlhps {{.*#+}} xmm13 = xmm13[0],xmm0[0]
509 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm12 = xmm12[1],xmm0[1]
510 ; SSE-NEXT:    movaps 304(%rdi), %xmm0
511 ; SSE-NEXT:    movaps 272(%rdi), %xmm7
512 ; SSE-NEXT:    movaps %xmm7, %xmm10
513 ; SSE-NEXT:    movlhps {{.*#+}} xmm10 = xmm10[0],xmm0[0]
514 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm7 = xmm7[1],xmm0[1]
515 ; SSE-NEXT:    movaps 368(%rdi), %xmm0
516 ; SSE-NEXT:    movaps 336(%rdi), %xmm8
517 ; SSE-NEXT:    movaps %xmm8, %xmm9
518 ; SSE-NEXT:    movlhps {{.*#+}} xmm9 = xmm9[0],xmm0[0]
519 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm0[1]
520 ; SSE-NEXT:    movaps 432(%rdi), %xmm0
521 ; SSE-NEXT:    movaps 400(%rdi), %xmm5
522 ; SSE-NEXT:    movaps %xmm5, %xmm6
523 ; SSE-NEXT:    movlhps {{.*#+}} xmm6 = xmm6[0],xmm0[0]
524 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm0[1]
525 ; SSE-NEXT:    movaps 496(%rdi), %xmm1
526 ; SSE-NEXT:    movaps 464(%rdi), %xmm2
527 ; SSE-NEXT:    movaps %xmm2, %xmm4
528 ; SSE-NEXT:    movlhps {{.*#+}} xmm4 = xmm4[0],xmm1[0]
529 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
530 ; SSE-NEXT:    movaps 16(%rdi), %xmm1
531 ; SSE-NEXT:    movaps 48(%rdi), %xmm0
532 ; SSE-NEXT:    movaps %xmm1, %xmm3
533 ; SSE-NEXT:    movlhps {{.*#+}} xmm3 = xmm3[0],xmm0[0]
534 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
535 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
536 ; SSE-NEXT:    movaps %xmm0, 96(%rsi)
537 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
538 ; SSE-NEXT:    movaps %xmm0, 32(%rsi)
539 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
540 ; SSE-NEXT:    movaps %xmm0, 112(%rsi)
541 ; SSE-NEXT:    movaps (%rsp), %xmm0 # 16-byte Reload
542 ; SSE-NEXT:    movaps %xmm0, 48(%rsi)
543 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
544 ; SSE-NEXT:    movaps %xmm0, 64(%rsi)
545 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
546 ; SSE-NEXT:    movaps %xmm0, (%rsi)
547 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
548 ; SSE-NEXT:    movaps %xmm0, 80(%rsi)
549 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
550 ; SSE-NEXT:    movaps %xmm0, 16(%rsi)
551 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
552 ; SSE-NEXT:    movaps %xmm0, 96(%rdx)
553 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
554 ; SSE-NEXT:    movaps %xmm0, 32(%rdx)
555 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
556 ; SSE-NEXT:    movaps %xmm0, 112(%rdx)
557 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
558 ; SSE-NEXT:    movaps %xmm0, 48(%rdx)
559 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
560 ; SSE-NEXT:    movaps %xmm0, 64(%rdx)
561 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
562 ; SSE-NEXT:    movaps %xmm0, (%rdx)
563 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
564 ; SSE-NEXT:    movaps %xmm0, 80(%rdx)
565 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
566 ; SSE-NEXT:    movaps %xmm0, 16(%rdx)
567 ; SSE-NEXT:    movaps %xmm6, 96(%rcx)
568 ; SSE-NEXT:    movaps %xmm14, 32(%rcx)
569 ; SSE-NEXT:    movaps %xmm4, 112(%rcx)
570 ; SSE-NEXT:    movaps %xmm13, 48(%rcx)
571 ; SSE-NEXT:    movaps %xmm10, 64(%rcx)
572 ; SSE-NEXT:    movaps %xmm3, (%rcx)
573 ; SSE-NEXT:    movaps %xmm9, 80(%rcx)
574 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
575 ; SSE-NEXT:    movaps %xmm0, 16(%rcx)
576 ; SSE-NEXT:    movaps %xmm2, 112(%r8)
577 ; SSE-NEXT:    movaps %xmm5, 96(%r8)
578 ; SSE-NEXT:    movaps %xmm8, 80(%r8)
579 ; SSE-NEXT:    movaps %xmm7, 64(%r8)
580 ; SSE-NEXT:    movaps %xmm12, 48(%r8)
581 ; SSE-NEXT:    movaps %xmm11, 32(%r8)
582 ; SSE-NEXT:    movaps %xmm15, 16(%r8)
583 ; SSE-NEXT:    movaps %xmm1, (%r8)
584 ; SSE-NEXT:    addq $152, %rsp
585 ; SSE-NEXT:    retq
587 ; AVX1-ONLY-LABEL: load_i64_stride4_vf16:
588 ; AVX1-ONLY:       # %bb.0:
589 ; AVX1-ONLY-NEXT:    subq $296, %rsp # imm = 0x128
590 ; AVX1-ONLY-NEXT:    vmovaps 224(%rdi), %xmm0
591 ; AVX1-ONLY-NEXT:    vmovaps 192(%rdi), %xmm1
592 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
593 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
594 ; AVX1-ONLY-NEXT:    vmovaps 160(%rdi), %xmm2
595 ; AVX1-ONLY-NEXT:    vmovaps 128(%rdi), %xmm3
596 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm4 = xmm3[0],xmm2[0]
597 ; AVX1-ONLY-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
598 ; AVX1-ONLY-NEXT:    vmovaps 416(%rdi), %xmm4
599 ; AVX1-ONLY-NEXT:    vmovaps 384(%rdi), %xmm8
600 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm5 = xmm8[0],xmm4[0]
601 ; AVX1-ONLY-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
602 ; AVX1-ONLY-NEXT:    vmovaps 480(%rdi), %xmm7
603 ; AVX1-ONLY-NEXT:    vmovaps 448(%rdi), %xmm9
604 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm5 = xmm9[0],xmm7[0]
605 ; AVX1-ONLY-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
606 ; AVX1-ONLY-NEXT:    vmovaps 352(%rdi), %xmm10
607 ; AVX1-ONLY-NEXT:    vmovaps 320(%rdi), %xmm12
608 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm5 = xmm12[0],xmm10[0]
609 ; AVX1-ONLY-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
610 ; AVX1-ONLY-NEXT:    vmovaps 288(%rdi), %xmm13
611 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
612 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
613 ; AVX1-ONLY-NEXT:    vmovaps 256(%rdi), %xmm0
614 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm3[1],xmm2[1]
615 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
616 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm0[0],xmm13[0]
617 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
618 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm9[1],xmm7[1]
619 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, (%rsp) # 16-byte Spill
620 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %xmm1
621 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm2 = xmm8[1],xmm4[1]
622 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
623 ; AVX1-ONLY-NEXT:    vmovaps 96(%rdi), %xmm2
624 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm3 = xmm12[1],xmm10[1]
625 ; AVX1-ONLY-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
626 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdi), %xmm3
627 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm13[1]
628 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
629 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm0 = xmm3[0],xmm2[0]
630 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
631 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm3[1],xmm2[1]
632 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
633 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %xmm0
634 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm0[0],xmm1[0]
635 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
636 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]
637 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
638 ; AVX1-ONLY-NEXT:    vmovaps 224(%rdi), %ymm0
639 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
640 ; AVX1-ONLY-NEXT:    vmovaps 192(%rdi), %ymm1
641 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
642 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
643 ; AVX1-ONLY-NEXT:    vmovaps 176(%rdi), %xmm14
644 ; AVX1-ONLY-NEXT:    vmovaps 144(%rdi), %xmm13
645 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm5 = xmm13[0],xmm14[0]
646 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm5[0,1,2,3],ymm2[4,5,6,7]
647 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
648 ; AVX1-ONLY-NEXT:    vmovaps 480(%rdi), %ymm12
649 ; AVX1-ONLY-NEXT:    vmovaps 448(%rdi), %ymm11
650 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm11[0],ymm12[0],ymm11[2],ymm12[2]
651 ; AVX1-ONLY-NEXT:    vmovaps 432(%rdi), %xmm10
652 ; AVX1-ONLY-NEXT:    vmovaps 400(%rdi), %xmm9
653 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm5 = xmm9[0],xmm10[0]
654 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm5[0,1,2,3],ymm2[4,5,6,7]
655 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
656 ; AVX1-ONLY-NEXT:    vmovaps 96(%rdi), %ymm8
657 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdi), %ymm7
658 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm7[0],ymm8[0],ymm7[2],ymm8[2]
659 ; AVX1-ONLY-NEXT:    vmovaps 48(%rdi), %xmm6
660 ; AVX1-ONLY-NEXT:    vmovaps 16(%rdi), %xmm4
661 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm5 = xmm4[0],xmm6[0]
662 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm5[0,1,2,3],ymm2[4,5,6,7]
663 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
664 ; AVX1-ONLY-NEXT:    vmovaps 352(%rdi), %ymm3
665 ; AVX1-ONLY-NEXT:    vmovaps 320(%rdi), %ymm2
666 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm5 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
667 ; AVX1-ONLY-NEXT:    vmovaps 304(%rdi), %xmm1
668 ; AVX1-ONLY-NEXT:    vmovaps 272(%rdi), %xmm0
669 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm15 = xmm0[0],xmm1[0]
670 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm15[0,1,2,3],ymm5[4,5,6,7]
671 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload
672 ; AVX1-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm15 # 32-byte Folded Reload
673 ; AVX1-ONLY-NEXT:    # ymm15 = ymm15[1],mem[1],ymm15[3],mem[3]
674 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm13 = xmm13[1],xmm14[1]
675 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1,2,3],ymm15[4,5,6,7]
676 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm11 = ymm11[1],ymm12[1],ymm11[3],ymm12[3]
677 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm9 = xmm9[1],xmm10[1]
678 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3],ymm11[4,5,6,7]
679 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm7 = ymm7[1],ymm8[1],ymm7[3],ymm8[3]
680 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm4 = xmm4[1],xmm6[1]
681 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm7[4,5,6,7]
682 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
683 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]
684 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
685 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
686 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 16(%rsi)
687 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
688 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, (%rsi)
689 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
690 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 64(%rsi)
691 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
692 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 80(%rsi)
693 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
694 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 112(%rsi)
695 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
696 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 96(%rsi)
697 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
698 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 32(%rsi)
699 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
700 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 48(%rsi)
701 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
702 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, (%rdx)
703 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
704 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 16(%rdx)
705 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
706 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 64(%rdx)
707 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
708 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 80(%rdx)
709 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
710 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 96(%rdx)
711 ; AVX1-ONLY-NEXT:    vmovaps (%rsp), %xmm1 # 16-byte Reload
712 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 112(%rdx)
713 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
714 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 32(%rdx)
715 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
716 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 48(%rdx)
717 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, 64(%rcx)
718 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
719 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, (%rcx)
720 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
721 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 96(%rcx)
722 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
723 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 32(%rcx)
724 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 64(%r8)
725 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, (%r8)
726 ; AVX1-ONLY-NEXT:    vmovaps %ymm9, 96(%r8)
727 ; AVX1-ONLY-NEXT:    vmovaps %ymm13, 32(%r8)
728 ; AVX1-ONLY-NEXT:    addq $296, %rsp # imm = 0x128
729 ; AVX1-ONLY-NEXT:    vzeroupper
730 ; AVX1-ONLY-NEXT:    retq
732 ; AVX2-ONLY-LABEL: load_i64_stride4_vf16:
733 ; AVX2-ONLY:       # %bb.0:
734 ; AVX2-ONLY-NEXT:    subq $360, %rsp # imm = 0x168
735 ; AVX2-ONLY-NEXT:    vmovaps 416(%rdi), %ymm3
736 ; AVX2-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
737 ; AVX2-ONLY-NEXT:    vmovaps 384(%rdi), %ymm4
738 ; AVX2-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
739 ; AVX2-ONLY-NEXT:    vmovaps 160(%rdi), %ymm0
740 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
741 ; AVX2-ONLY-NEXT:    vmovaps 128(%rdi), %ymm6
742 ; AVX2-ONLY-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
743 ; AVX2-ONLY-NEXT:    vmovaps 224(%rdi), %ymm0
744 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
745 ; AVX2-ONLY-NEXT:    vmovaps 192(%rdi), %ymm5
746 ; AVX2-ONLY-NEXT:    vmovaps 160(%rdi), %xmm2
747 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 224(%rdi), %ymm2, %ymm9
748 ; AVX2-ONLY-NEXT:    vmovaps 128(%rdi), %xmm2
749 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 192(%rdi), %ymm2, %ymm10
750 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm10[0],ymm9[0],ymm10[2],ymm9[2]
751 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
752 ; AVX2-ONLY-NEXT:    vmovaps 416(%rdi), %xmm7
753 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 480(%rdi), %ymm7, %ymm11
754 ; AVX2-ONLY-NEXT:    vmovaps 384(%rdi), %xmm7
755 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 448(%rdi), %ymm7, %ymm12
756 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm12[0],ymm11[0],ymm12[2],ymm11[2]
757 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
758 ; AVX2-ONLY-NEXT:    vmovaps (%rdi), %xmm8
759 ; AVX2-ONLY-NEXT:    vmovaps 32(%rdi), %xmm13
760 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 96(%rdi), %ymm13, %ymm13
761 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 64(%rdi), %ymm8, %ymm15
762 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm15[0],ymm13[0],ymm15[2],ymm13[2]
763 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
764 ; AVX2-ONLY-NEXT:    vmovaps 288(%rdi), %xmm14
765 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 352(%rdi), %ymm14, %ymm1
766 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm10[1],ymm9[1],ymm10[3],ymm9[3]
767 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
768 ; AVX2-ONLY-NEXT:    vmovaps 256(%rdi), %xmm10
769 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 320(%rdi), %ymm10, %ymm0
770 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm12[1],ymm11[1],ymm12[3],ymm11[3]
771 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
772 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
773 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
774 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm15[1],ymm13[1],ymm15[3],ymm13[3]
775 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
776 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
777 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
778 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
779 ; AVX2-ONLY-NEXT:    vmovaps %ymm5, %ymm10
780 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm5[0],ymm14[0],ymm5[2],ymm14[2]
781 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
782 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm6[0],ymm13[0],ymm6[2],ymm13[2]
783 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
784 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
785 ; AVX2-ONLY-NEXT:    vmovaps 480(%rdi), %ymm11
786 ; AVX2-ONLY-NEXT:    vmovaps 448(%rdi), %ymm8
787 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm15 = ymm8[0],ymm11[0],ymm8[2],ymm11[2]
788 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
789 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm2[2,3],ymm15[2,3]
790 ; AVX2-ONLY-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
791 ; AVX2-ONLY-NEXT:    vmovaps 32(%rdi), %ymm9
792 ; AVX2-ONLY-NEXT:    vmovaps (%rdi), %ymm6
793 ; AVX2-ONLY-NEXT:    vmovaps 96(%rdi), %ymm5
794 ; AVX2-ONLY-NEXT:    vmovaps 64(%rdi), %ymm4
795 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm4[0],ymm5[0],ymm4[2],ymm5[2]
796 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm7 = ymm6[0],ymm9[0],ymm6[2],ymm9[2]
797 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm15 = ymm7[2,3],ymm0[2,3]
798 ; AVX2-ONLY-NEXT:    vmovaps 288(%rdi), %ymm7
799 ; AVX2-ONLY-NEXT:    vmovaps 256(%rdi), %ymm3
800 ; AVX2-ONLY-NEXT:    vmovaps 352(%rdi), %ymm1
801 ; AVX2-ONLY-NEXT:    vmovaps 320(%rdi), %ymm0
802 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
803 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm12 = ymm3[0],ymm7[0],ymm3[2],ymm7[2]
804 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm2 = ymm12[2,3],ymm2[2,3]
805 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm12 = ymm10[1],ymm14[1],ymm10[3],ymm14[3]
806 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
807 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm13 = ymm10[1],ymm13[1],ymm10[3],ymm13[3]
808 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm12 = ymm13[2,3],ymm12[2,3]
809 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm8 = ymm8[1],ymm11[1],ymm8[3],ymm11[3]
810 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
811 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
812 ; AVX2-ONLY-NEXT:    # ymm10 = ymm10[1],mem[1],ymm10[3],mem[3]
813 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm8 = ymm10[2,3],ymm8[2,3]
814 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm4 = ymm4[1],ymm5[1],ymm4[3],ymm5[3]
815 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm5 = ymm6[1],ymm9[1],ymm6[3],ymm9[3]
816 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]
817 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
818 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm3[1],ymm7[1],ymm3[3],ymm7[3]
819 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
820 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
821 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 64(%rsi)
822 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
823 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, (%rsi)
824 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
825 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 96(%rsi)
826 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
827 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 32(%rsi)
828 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
829 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 64(%rdx)
830 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
831 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, (%rdx)
832 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
833 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 96(%rdx)
834 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
835 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 32(%rdx)
836 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 64(%rcx)
837 ; AVX2-ONLY-NEXT:    vmovaps %ymm15, (%rcx)
838 ; AVX2-ONLY-NEXT:    vmovups (%rsp), %ymm1 # 32-byte Reload
839 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 96(%rcx)
840 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
841 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 32(%rcx)
842 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 64(%r8)
843 ; AVX2-ONLY-NEXT:    vmovaps %ymm4, (%r8)
844 ; AVX2-ONLY-NEXT:    vmovaps %ymm8, 96(%r8)
845 ; AVX2-ONLY-NEXT:    vmovaps %ymm12, 32(%r8)
846 ; AVX2-ONLY-NEXT:    addq $360, %rsp # imm = 0x168
847 ; AVX2-ONLY-NEXT:    vzeroupper
848 ; AVX2-ONLY-NEXT:    retq
850 ; AVX512-LABEL: load_i64_stride4_vf16:
851 ; AVX512:       # %bb.0:
852 ; AVX512-NEXT:    vmovdqa64 (%rdi), %zmm0
853 ; AVX512-NEXT:    vmovdqa64 64(%rdi), %zmm1
854 ; AVX512-NEXT:    vmovdqa64 128(%rdi), %zmm2
855 ; AVX512-NEXT:    vmovdqa64 192(%rdi), %zmm3
856 ; AVX512-NEXT:    vmovdqa64 320(%rdi), %zmm4
857 ; AVX512-NEXT:    vmovdqa64 256(%rdi), %zmm5
858 ; AVX512-NEXT:    vmovdqa64 448(%rdi), %zmm6
859 ; AVX512-NEXT:    vmovdqa64 384(%rdi), %zmm7
860 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [0,4,8,12,0,4,8,12]
861 ; AVX512-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
862 ; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm9
863 ; AVX512-NEXT:    vpermt2q %zmm6, %zmm8, %zmm9
864 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm10
865 ; AVX512-NEXT:    vpermt2q %zmm4, %zmm8, %zmm10
866 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm9 = zmm10[0,1,2,3],zmm9[4,5,6,7]
867 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm10
868 ; AVX512-NEXT:    vpermt2q %zmm3, %zmm8, %zmm10
869 ; AVX512-NEXT:    vpermi2q %zmm1, %zmm0, %zmm8
870 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm8 = zmm8[0,1,2,3],zmm10[4,5,6,7]
871 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [1,5,9,13,1,5,9,13]
872 ; AVX512-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
873 ; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm11
874 ; AVX512-NEXT:    vpermt2q %zmm6, %zmm10, %zmm11
875 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm12
876 ; AVX512-NEXT:    vpermt2q %zmm4, %zmm10, %zmm12
877 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm11 = zmm12[0,1,2,3],zmm11[4,5,6,7]
878 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm12
879 ; AVX512-NEXT:    vpermt2q %zmm3, %zmm10, %zmm12
880 ; AVX512-NEXT:    vpermi2q %zmm1, %zmm0, %zmm10
881 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm10 = zmm10[0,1,2,3],zmm12[4,5,6,7]
882 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm12 = [2,6,10,14,2,6,10,14]
883 ; AVX512-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3]
884 ; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm13
885 ; AVX512-NEXT:    vpermt2q %zmm6, %zmm12, %zmm13
886 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm14
887 ; AVX512-NEXT:    vpermt2q %zmm4, %zmm12, %zmm14
888 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm13 = zmm14[0,1,2,3],zmm13[4,5,6,7]
889 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm14
890 ; AVX512-NEXT:    vpermt2q %zmm3, %zmm12, %zmm14
891 ; AVX512-NEXT:    vpermi2q %zmm1, %zmm0, %zmm12
892 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm12 = zmm12[0,1,2,3],zmm14[4,5,6,7]
893 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm14 = [3,7,11,15,3,7,11,15]
894 ; AVX512-NEXT:    # zmm14 = mem[0,1,2,3,0,1,2,3]
895 ; AVX512-NEXT:    vpermt2q %zmm6, %zmm14, %zmm7
896 ; AVX512-NEXT:    vpermt2q %zmm4, %zmm14, %zmm5
897 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm4 = zmm5[0,1,2,3],zmm7[4,5,6,7]
898 ; AVX512-NEXT:    vpermt2q %zmm3, %zmm14, %zmm2
899 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm14, %zmm0
900 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm0[0,1,2,3],zmm2[4,5,6,7]
901 ; AVX512-NEXT:    vmovdqa64 %zmm9, 64(%rsi)
902 ; AVX512-NEXT:    vmovdqa64 %zmm8, (%rsi)
903 ; AVX512-NEXT:    vmovdqa64 %zmm11, 64(%rdx)
904 ; AVX512-NEXT:    vmovdqa64 %zmm10, (%rdx)
905 ; AVX512-NEXT:    vmovdqa64 %zmm13, 64(%rcx)
906 ; AVX512-NEXT:    vmovdqa64 %zmm12, (%rcx)
907 ; AVX512-NEXT:    vmovdqa64 %zmm4, 64(%r8)
908 ; AVX512-NEXT:    vmovdqa64 %zmm0, (%r8)
909 ; AVX512-NEXT:    vzeroupper
910 ; AVX512-NEXT:    retq
911   %wide.vec = load <64 x i64>, ptr %in.vec, align 64
912   %strided.vec0 = shufflevector <64 x i64> %wide.vec, <64 x i64> poison, <16 x i32> <i32 0, i32 4, i32 8, i32 12, i32 16, i32 20, i32 24, i32 28, i32 32, i32 36, i32 40, i32 44, i32 48, i32 52, i32 56, i32 60>
913   %strided.vec1 = shufflevector <64 x i64> %wide.vec, <64 x i64> poison, <16 x i32> <i32 1, i32 5, i32 9, i32 13, i32 17, i32 21, i32 25, i32 29, i32 33, i32 37, i32 41, i32 45, i32 49, i32 53, i32 57, i32 61>
914   %strided.vec2 = shufflevector <64 x i64> %wide.vec, <64 x i64> poison, <16 x i32> <i32 2, i32 6, i32 10, i32 14, i32 18, i32 22, i32 26, i32 30, i32 34, i32 38, i32 42, i32 46, i32 50, i32 54, i32 58, i32 62>
915   %strided.vec3 = shufflevector <64 x i64> %wide.vec, <64 x i64> poison, <16 x i32> <i32 3, i32 7, i32 11, i32 15, i32 19, i32 23, i32 27, i32 31, i32 35, i32 39, i32 43, i32 47, i32 51, i32 55, i32 59, i32 63>
916   store <16 x i64> %strided.vec0, ptr %out.vec0, align 64
917   store <16 x i64> %strided.vec1, ptr %out.vec1, align 64
918   store <16 x i64> %strided.vec2, ptr %out.vec2, align 64
919   store <16 x i64> %strided.vec3, ptr %out.vec3, align 64
920   ret void
923 define void @load_i64_stride4_vf32(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3) nounwind {
924 ; SSE-LABEL: load_i64_stride4_vf32:
925 ; SSE:       # %bb.0:
926 ; SSE-NEXT:    subq $664, %rsp # imm = 0x298
927 ; SSE-NEXT:    movaps 416(%rdi), %xmm0
928 ; SSE-NEXT:    movaps 384(%rdi), %xmm9
929 ; SSE-NEXT:    movaps 160(%rdi), %xmm3
930 ; SSE-NEXT:    movaps 128(%rdi), %xmm8
931 ; SSE-NEXT:    movaps 480(%rdi), %xmm1
932 ; SSE-NEXT:    movaps 448(%rdi), %xmm11
933 ; SSE-NEXT:    movaps 224(%rdi), %xmm5
934 ; SSE-NEXT:    movaps 192(%rdi), %xmm10
935 ; SSE-NEXT:    movaps 288(%rdi), %xmm4
936 ; SSE-NEXT:    movaps 256(%rdi), %xmm12
937 ; SSE-NEXT:    movaps 608(%rdi), %xmm2
938 ; SSE-NEXT:    movaps 352(%rdi), %xmm6
939 ; SSE-NEXT:    movaps 320(%rdi), %xmm14
940 ; SSE-NEXT:    movaps 96(%rdi), %xmm7
941 ; SSE-NEXT:    movaps 64(%rdi), %xmm13
942 ; SSE-NEXT:    movaps %xmm13, %xmm15
943 ; SSE-NEXT:    movlhps {{.*#+}} xmm15 = xmm15[0],xmm7[0]
944 ; SSE-NEXT:    movaps %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
945 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm13 = xmm13[1],xmm7[1]
946 ; SSE-NEXT:    movaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
947 ; SSE-NEXT:    movaps %xmm10, %xmm7
948 ; SSE-NEXT:    movlhps {{.*#+}} xmm7 = xmm7[0],xmm5[0]
949 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
950 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm10 = xmm10[1],xmm5[1]
951 ; SSE-NEXT:    movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
952 ; SSE-NEXT:    movaps %xmm8, %xmm5
953 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm3[0]
954 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
955 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm3[1]
956 ; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
957 ; SSE-NEXT:    movaps %xmm14, %xmm3
958 ; SSE-NEXT:    movlhps {{.*#+}} xmm3 = xmm3[0],xmm6[0]
959 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
960 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm14 = xmm14[1],xmm6[1]
961 ; SSE-NEXT:    movaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
962 ; SSE-NEXT:    movaps %xmm12, %xmm3
963 ; SSE-NEXT:    movlhps {{.*#+}} xmm3 = xmm3[0],xmm4[0]
964 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
965 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm12 = xmm12[1],xmm4[1]
966 ; SSE-NEXT:    movaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
967 ; SSE-NEXT:    movaps %xmm11, %xmm3
968 ; SSE-NEXT:    movlhps {{.*#+}} xmm3 = xmm3[0],xmm1[0]
969 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
970 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm11 = xmm11[1],xmm1[1]
971 ; SSE-NEXT:    movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
972 ; SSE-NEXT:    movaps %xmm9, %xmm1
973 ; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
974 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
975 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm9 = xmm9[1],xmm0[1]
976 ; SSE-NEXT:    movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
977 ; SSE-NEXT:    movaps 576(%rdi), %xmm0
978 ; SSE-NEXT:    movaps %xmm0, %xmm1
979 ; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]
980 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
981 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
982 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
983 ; SSE-NEXT:    movaps 544(%rdi), %xmm0
984 ; SSE-NEXT:    movaps 512(%rdi), %xmm1
985 ; SSE-NEXT:    movaps %xmm1, %xmm2
986 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
987 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
988 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
989 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
990 ; SSE-NEXT:    movaps 736(%rdi), %xmm0
991 ; SSE-NEXT:    movaps 704(%rdi), %xmm1
992 ; SSE-NEXT:    movaps %xmm1, %xmm2
993 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
994 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
995 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
996 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
997 ; SSE-NEXT:    movaps 672(%rdi), %xmm0
998 ; SSE-NEXT:    movaps 640(%rdi), %xmm1
999 ; SSE-NEXT:    movaps %xmm1, %xmm2
1000 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
1001 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1002 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1003 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1004 ; SSE-NEXT:    movaps 864(%rdi), %xmm0
1005 ; SSE-NEXT:    movaps 832(%rdi), %xmm1
1006 ; SSE-NEXT:    movaps %xmm1, %xmm2
1007 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
1008 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1009 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1010 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1011 ; SSE-NEXT:    movaps 800(%rdi), %xmm0
1012 ; SSE-NEXT:    movaps 768(%rdi), %xmm1
1013 ; SSE-NEXT:    movaps %xmm1, %xmm2
1014 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
1015 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1016 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1017 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1018 ; SSE-NEXT:    movaps 992(%rdi), %xmm0
1019 ; SSE-NEXT:    movaps 960(%rdi), %xmm1
1020 ; SSE-NEXT:    movaps %xmm1, %xmm2
1021 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
1022 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1023 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1024 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1025 ; SSE-NEXT:    movaps 928(%rdi), %xmm0
1026 ; SSE-NEXT:    movaps 896(%rdi), %xmm1
1027 ; SSE-NEXT:    movaps %xmm1, %xmm2
1028 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
1029 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1030 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1031 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1032 ; SSE-NEXT:    movaps (%rdi), %xmm1
1033 ; SSE-NEXT:    movaps 32(%rdi), %xmm0
1034 ; SSE-NEXT:    movaps %xmm1, %xmm2
1035 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
1036 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1037 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1038 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1039 ; SSE-NEXT:    movaps 112(%rdi), %xmm0
1040 ; SSE-NEXT:    movaps 80(%rdi), %xmm1
1041 ; SSE-NEXT:    movaps %xmm1, %xmm2
1042 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
1043 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1044 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1045 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1046 ; SSE-NEXT:    movaps 176(%rdi), %xmm0
1047 ; SSE-NEXT:    movaps 144(%rdi), %xmm1
1048 ; SSE-NEXT:    movaps %xmm1, %xmm2
1049 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
1050 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1051 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1052 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1053 ; SSE-NEXT:    movaps 240(%rdi), %xmm0
1054 ; SSE-NEXT:    movaps 208(%rdi), %xmm1
1055 ; SSE-NEXT:    movaps %xmm1, %xmm2
1056 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
1057 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1058 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1059 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1060 ; SSE-NEXT:    movaps 304(%rdi), %xmm0
1061 ; SSE-NEXT:    movaps 272(%rdi), %xmm1
1062 ; SSE-NEXT:    movaps %xmm1, %xmm2
1063 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
1064 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1065 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1066 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1067 ; SSE-NEXT:    movaps 368(%rdi), %xmm0
1068 ; SSE-NEXT:    movaps 336(%rdi), %xmm1
1069 ; SSE-NEXT:    movaps %xmm1, %xmm2
1070 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
1071 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1072 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1073 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1074 ; SSE-NEXT:    movaps 432(%rdi), %xmm0
1075 ; SSE-NEXT:    movaps 400(%rdi), %xmm1
1076 ; SSE-NEXT:    movaps %xmm1, %xmm2
1077 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
1078 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1079 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1080 ; SSE-NEXT:    movaps %xmm1, (%rsp) # 16-byte Spill
1081 ; SSE-NEXT:    movaps 496(%rdi), %xmm0
1082 ; SSE-NEXT:    movaps 464(%rdi), %xmm1
1083 ; SSE-NEXT:    movaps %xmm1, %xmm2
1084 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
1085 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1086 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1087 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1088 ; SSE-NEXT:    movaps 560(%rdi), %xmm0
1089 ; SSE-NEXT:    movaps 528(%rdi), %xmm1
1090 ; SSE-NEXT:    movaps %xmm1, %xmm2
1091 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
1092 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1093 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1094 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1095 ; SSE-NEXT:    movaps 624(%rdi), %xmm0
1096 ; SSE-NEXT:    movaps 592(%rdi), %xmm14
1097 ; SSE-NEXT:    movaps %xmm14, %xmm1
1098 ; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
1099 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1100 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm14 = xmm14[1],xmm0[1]
1101 ; SSE-NEXT:    movaps 688(%rdi), %xmm0
1102 ; SSE-NEXT:    movaps 656(%rdi), %xmm13
1103 ; SSE-NEXT:    movaps %xmm13, %xmm15
1104 ; SSE-NEXT:    movlhps {{.*#+}} xmm15 = xmm15[0],xmm0[0]
1105 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm13 = xmm13[1],xmm0[1]
1106 ; SSE-NEXT:    movaps 752(%rdi), %xmm0
1107 ; SSE-NEXT:    movaps 720(%rdi), %xmm11
1108 ; SSE-NEXT:    movaps %xmm11, %xmm12
1109 ; SSE-NEXT:    movlhps {{.*#+}} xmm12 = xmm12[0],xmm0[0]
1110 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm11 = xmm11[1],xmm0[1]
1111 ; SSE-NEXT:    movaps 816(%rdi), %xmm0
1112 ; SSE-NEXT:    movaps 784(%rdi), %xmm9
1113 ; SSE-NEXT:    movaps %xmm9, %xmm10
1114 ; SSE-NEXT:    movlhps {{.*#+}} xmm10 = xmm10[0],xmm0[0]
1115 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm9 = xmm9[1],xmm0[1]
1116 ; SSE-NEXT:    movaps 880(%rdi), %xmm0
1117 ; SSE-NEXT:    movaps 848(%rdi), %xmm7
1118 ; SSE-NEXT:    movaps %xmm7, %xmm8
1119 ; SSE-NEXT:    movlhps {{.*#+}} xmm8 = xmm8[0],xmm0[0]
1120 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm7 = xmm7[1],xmm0[1]
1121 ; SSE-NEXT:    movaps 944(%rdi), %xmm0
1122 ; SSE-NEXT:    movaps 912(%rdi), %xmm3
1123 ; SSE-NEXT:    movaps %xmm3, %xmm5
1124 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm0[0]
1125 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm3 = xmm3[1],xmm0[1]
1126 ; SSE-NEXT:    movaps 1008(%rdi), %xmm4
1127 ; SSE-NEXT:    movaps 976(%rdi), %xmm2
1128 ; SSE-NEXT:    movaps %xmm2, %xmm1
1129 ; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm4[0]
1130 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm4[1]
1131 ; SSE-NEXT:    movaps 16(%rdi), %xmm4
1132 ; SSE-NEXT:    movaps 48(%rdi), %xmm0
1133 ; SSE-NEXT:    movaps %xmm4, %xmm6
1134 ; SSE-NEXT:    movlhps {{.*#+}} xmm6 = xmm6[0],xmm0[0]
1135 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm0[1]
1136 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1137 ; SSE-NEXT:    movaps %xmm0, 224(%rsi)
1138 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1139 ; SSE-NEXT:    movaps %xmm0, 160(%rsi)
1140 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1141 ; SSE-NEXT:    movaps %xmm0, 96(%rsi)
1142 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1143 ; SSE-NEXT:    movaps %xmm0, 32(%rsi)
1144 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1145 ; SSE-NEXT:    movaps %xmm0, 240(%rsi)
1146 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1147 ; SSE-NEXT:    movaps %xmm0, 176(%rsi)
1148 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1149 ; SSE-NEXT:    movaps %xmm0, 112(%rsi)
1150 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1151 ; SSE-NEXT:    movaps %xmm0, 48(%rsi)
1152 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1153 ; SSE-NEXT:    movaps %xmm0, 192(%rsi)
1154 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1155 ; SSE-NEXT:    movaps %xmm0, 128(%rsi)
1156 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1157 ; SSE-NEXT:    movaps %xmm0, 64(%rsi)
1158 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1159 ; SSE-NEXT:    movaps %xmm0, (%rsi)
1160 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1161 ; SSE-NEXT:    movaps %xmm0, 208(%rsi)
1162 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1163 ; SSE-NEXT:    movaps %xmm0, 144(%rsi)
1164 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1165 ; SSE-NEXT:    movaps %xmm0, 80(%rsi)
1166 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1167 ; SSE-NEXT:    movaps %xmm0, 16(%rsi)
1168 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1169 ; SSE-NEXT:    movaps %xmm0, 224(%rdx)
1170 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1171 ; SSE-NEXT:    movaps %xmm0, 240(%rdx)
1172 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1173 ; SSE-NEXT:    movaps %xmm0, 192(%rdx)
1174 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1175 ; SSE-NEXT:    movaps %xmm0, 208(%rdx)
1176 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1177 ; SSE-NEXT:    movaps %xmm0, 160(%rdx)
1178 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1179 ; SSE-NEXT:    movaps %xmm0, 176(%rdx)
1180 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1181 ; SSE-NEXT:    movaps %xmm0, 128(%rdx)
1182 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1183 ; SSE-NEXT:    movaps %xmm0, 144(%rdx)
1184 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1185 ; SSE-NEXT:    movaps %xmm0, 96(%rdx)
1186 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1187 ; SSE-NEXT:    movaps %xmm0, 112(%rdx)
1188 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1189 ; SSE-NEXT:    movaps %xmm0, 64(%rdx)
1190 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1191 ; SSE-NEXT:    movaps %xmm0, 80(%rdx)
1192 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1193 ; SSE-NEXT:    movaps %xmm0, 32(%rdx)
1194 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1195 ; SSE-NEXT:    movaps %xmm0, 48(%rdx)
1196 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1197 ; SSE-NEXT:    movaps %xmm0, (%rdx)
1198 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1199 ; SSE-NEXT:    movaps %xmm0, 16(%rdx)
1200 ; SSE-NEXT:    movaps %xmm1, 240(%rcx)
1201 ; SSE-NEXT:    movaps %xmm5, 224(%rcx)
1202 ; SSE-NEXT:    movaps %xmm8, 208(%rcx)
1203 ; SSE-NEXT:    movaps %xmm10, 192(%rcx)
1204 ; SSE-NEXT:    movaps %xmm12, 176(%rcx)
1205 ; SSE-NEXT:    movaps %xmm15, 160(%rcx)
1206 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1207 ; SSE-NEXT:    movaps %xmm0, 144(%rcx)
1208 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1209 ; SSE-NEXT:    movaps %xmm0, 128(%rcx)
1210 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1211 ; SSE-NEXT:    movaps %xmm0, 112(%rcx)
1212 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1213 ; SSE-NEXT:    movaps %xmm0, 96(%rcx)
1214 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1215 ; SSE-NEXT:    movaps %xmm0, 80(%rcx)
1216 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1217 ; SSE-NEXT:    movaps %xmm0, 64(%rcx)
1218 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1219 ; SSE-NEXT:    movaps %xmm0, 48(%rcx)
1220 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1221 ; SSE-NEXT:    movaps %xmm0, 32(%rcx)
1222 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1223 ; SSE-NEXT:    movaps %xmm0, 16(%rcx)
1224 ; SSE-NEXT:    movaps %xmm6, (%rcx)
1225 ; SSE-NEXT:    movaps %xmm2, 240(%r8)
1226 ; SSE-NEXT:    movaps %xmm3, 224(%r8)
1227 ; SSE-NEXT:    movaps %xmm7, 208(%r8)
1228 ; SSE-NEXT:    movaps %xmm9, 192(%r8)
1229 ; SSE-NEXT:    movaps %xmm11, 176(%r8)
1230 ; SSE-NEXT:    movaps %xmm13, 160(%r8)
1231 ; SSE-NEXT:    movaps %xmm14, 144(%r8)
1232 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1233 ; SSE-NEXT:    movaps %xmm0, 128(%r8)
1234 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1235 ; SSE-NEXT:    movaps %xmm0, 112(%r8)
1236 ; SSE-NEXT:    movaps (%rsp), %xmm0 # 16-byte Reload
1237 ; SSE-NEXT:    movaps %xmm0, 96(%r8)
1238 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1239 ; SSE-NEXT:    movaps %xmm0, 80(%r8)
1240 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1241 ; SSE-NEXT:    movaps %xmm0, 64(%r8)
1242 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1243 ; SSE-NEXT:    movaps %xmm0, 48(%r8)
1244 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1245 ; SSE-NEXT:    movaps %xmm0, 32(%r8)
1246 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1247 ; SSE-NEXT:    movaps %xmm0, 16(%r8)
1248 ; SSE-NEXT:    movaps %xmm4, (%r8)
1249 ; SSE-NEXT:    addq $664, %rsp # imm = 0x298
1250 ; SSE-NEXT:    retq
1252 ; AVX1-ONLY-LABEL: load_i64_stride4_vf32:
1253 ; AVX1-ONLY:       # %bb.0:
1254 ; AVX1-ONLY-NEXT:    subq $1112, %rsp # imm = 0x458
1255 ; AVX1-ONLY-NEXT:    vmovaps 480(%rdi), %xmm0
1256 ; AVX1-ONLY-NEXT:    vmovaps 448(%rdi), %xmm1
1257 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
1258 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1259 ; AVX1-ONLY-NEXT:    vmovaps 736(%rdi), %xmm3
1260 ; AVX1-ONLY-NEXT:    vmovaps 704(%rdi), %xmm5
1261 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm5[0],xmm3[0]
1262 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1263 ; AVX1-ONLY-NEXT:    vmovaps 224(%rdi), %xmm2
1264 ; AVX1-ONLY-NEXT:    vmovaps 192(%rdi), %xmm4
1265 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm6 = xmm4[0],xmm2[0]
1266 ; AVX1-ONLY-NEXT:    vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1267 ; AVX1-ONLY-NEXT:    vmovaps 672(%rdi), %xmm6
1268 ; AVX1-ONLY-NEXT:    vmovaps 640(%rdi), %xmm7
1269 ; AVX1-ONLY-NEXT:    vmovaps 928(%rdi), %xmm8
1270 ; AVX1-ONLY-NEXT:    vmovaps 896(%rdi), %xmm9
1271 ; AVX1-ONLY-NEXT:    vmovaps 992(%rdi), %xmm10
1272 ; AVX1-ONLY-NEXT:    vmovaps 960(%rdi), %xmm11
1273 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm12 = xmm11[0],xmm10[0]
1274 ; AVX1-ONLY-NEXT:    vmovaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1275 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm10 = xmm11[1],xmm10[1]
1276 ; AVX1-ONLY-NEXT:    vmovaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1277 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm10 = xmm9[0],xmm8[0]
1278 ; AVX1-ONLY-NEXT:    vmovaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1279 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm8 = xmm9[1],xmm8[1]
1280 ; AVX1-ONLY-NEXT:    vmovaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1281 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm8 = xmm7[0],xmm6[0]
1282 ; AVX1-ONLY-NEXT:    vmovaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1283 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm3 = xmm5[1],xmm3[1]
1284 ; AVX1-ONLY-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1285 ; AVX1-ONLY-NEXT:    vmovaps 160(%rdi), %xmm3
1286 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm5 = xmm7[1],xmm6[1]
1287 ; AVX1-ONLY-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1288 ; AVX1-ONLY-NEXT:    vmovaps 128(%rdi), %xmm5
1289 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm2 = xmm4[1],xmm2[1]
1290 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1291 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm5[0],xmm3[0]
1292 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1293 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm2 = xmm5[1],xmm3[1]
1294 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1295 ; AVX1-ONLY-NEXT:    vmovaps 416(%rdi), %xmm2
1296 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
1297 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1298 ; AVX1-ONLY-NEXT:    vmovaps 384(%rdi), %xmm0
1299 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm0[0],xmm2[0]
1300 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1301 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
1302 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1303 ; AVX1-ONLY-NEXT:    vmovaps 864(%rdi), %xmm0
1304 ; AVX1-ONLY-NEXT:    vmovaps 832(%rdi), %xmm1
1305 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
1306 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1307 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
1308 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1309 ; AVX1-ONLY-NEXT:    vmovaps 800(%rdi), %xmm0
1310 ; AVX1-ONLY-NEXT:    vmovaps 768(%rdi), %xmm1
1311 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
1312 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1313 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
1314 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1315 ; AVX1-ONLY-NEXT:    vmovaps 96(%rdi), %xmm0
1316 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdi), %xmm1
1317 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
1318 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1319 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
1320 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1321 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %xmm0
1322 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %xmm1
1323 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
1324 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1325 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
1326 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1327 ; AVX1-ONLY-NEXT:    vmovaps 608(%rdi), %xmm0
1328 ; AVX1-ONLY-NEXT:    vmovaps 576(%rdi), %xmm1
1329 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
1330 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1331 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
1332 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1333 ; AVX1-ONLY-NEXT:    vmovaps 544(%rdi), %xmm0
1334 ; AVX1-ONLY-NEXT:    vmovaps 512(%rdi), %xmm1
1335 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
1336 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1337 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
1338 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1339 ; AVX1-ONLY-NEXT:    vmovaps 352(%rdi), %xmm0
1340 ; AVX1-ONLY-NEXT:    vmovaps 320(%rdi), %xmm1
1341 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
1342 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1343 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
1344 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1345 ; AVX1-ONLY-NEXT:    vmovaps 288(%rdi), %xmm0
1346 ; AVX1-ONLY-NEXT:    vmovaps 256(%rdi), %xmm1
1347 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
1348 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1349 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
1350 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1351 ; AVX1-ONLY-NEXT:    vmovaps 224(%rdi), %ymm1
1352 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1353 ; AVX1-ONLY-NEXT:    vmovaps 192(%rdi), %ymm0
1354 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1355 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
1356 ; AVX1-ONLY-NEXT:    vmovaps 176(%rdi), %xmm2
1357 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1358 ; AVX1-ONLY-NEXT:    vmovaps 144(%rdi), %xmm1
1359 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1360 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]
1361 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
1362 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1363 ; AVX1-ONLY-NEXT:    vmovaps 480(%rdi), %ymm1
1364 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1365 ; AVX1-ONLY-NEXT:    vmovaps 448(%rdi), %ymm0
1366 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1367 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
1368 ; AVX1-ONLY-NEXT:    vmovaps 432(%rdi), %xmm2
1369 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1370 ; AVX1-ONLY-NEXT:    vmovaps 400(%rdi), %xmm1
1371 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1372 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]
1373 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
1374 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1375 ; AVX1-ONLY-NEXT:    vmovaps 736(%rdi), %ymm1
1376 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1377 ; AVX1-ONLY-NEXT:    vmovaps 704(%rdi), %ymm0
1378 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1379 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
1380 ; AVX1-ONLY-NEXT:    vmovaps 688(%rdi), %xmm2
1381 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1382 ; AVX1-ONLY-NEXT:    vmovaps 656(%rdi), %xmm1
1383 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1384 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]
1385 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
1386 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1387 ; AVX1-ONLY-NEXT:    vmovaps 992(%rdi), %ymm1
1388 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1389 ; AVX1-ONLY-NEXT:    vmovaps 960(%rdi), %ymm0
1390 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1391 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
1392 ; AVX1-ONLY-NEXT:    vmovaps 944(%rdi), %xmm2
1393 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1394 ; AVX1-ONLY-NEXT:    vmovaps 912(%rdi), %xmm1
1395 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1396 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]
1397 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
1398 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1399 ; AVX1-ONLY-NEXT:    vmovaps 96(%rdi), %ymm1
1400 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1401 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdi), %ymm0
1402 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1403 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
1404 ; AVX1-ONLY-NEXT:    vmovaps 48(%rdi), %xmm14
1405 ; AVX1-ONLY-NEXT:    vmovaps 16(%rdi), %xmm13
1406 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm13[0],xmm14[0]
1407 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
1408 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1409 ; AVX1-ONLY-NEXT:    vmovaps 352(%rdi), %ymm12
1410 ; AVX1-ONLY-NEXT:    vmovaps 320(%rdi), %ymm11
1411 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm11[0],ymm12[0],ymm11[2],ymm12[2]
1412 ; AVX1-ONLY-NEXT:    vmovaps 304(%rdi), %xmm10
1413 ; AVX1-ONLY-NEXT:    vmovaps 272(%rdi), %xmm9
1414 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm9[0],xmm10[0]
1415 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
1416 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1417 ; AVX1-ONLY-NEXT:    vmovaps 608(%rdi), %ymm8
1418 ; AVX1-ONLY-NEXT:    vmovaps 576(%rdi), %ymm7
1419 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm7[0],ymm8[0],ymm7[2],ymm8[2]
1420 ; AVX1-ONLY-NEXT:    vmovaps 560(%rdi), %xmm6
1421 ; AVX1-ONLY-NEXT:    vmovaps 528(%rdi), %xmm5
1422 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm5[0],xmm6[0]
1423 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
1424 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1425 ; AVX1-ONLY-NEXT:    vmovaps 864(%rdi), %ymm4
1426 ; AVX1-ONLY-NEXT:    vmovaps 832(%rdi), %ymm3
1427 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm3[0],ymm4[0],ymm3[2],ymm4[2]
1428 ; AVX1-ONLY-NEXT:    vmovaps 816(%rdi), %xmm2
1429 ; AVX1-ONLY-NEXT:    vmovaps 784(%rdi), %xmm1
1430 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm15 = xmm1[0],xmm2[0]
1431 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm15[0,1,2,3],ymm0[4,5,6,7]
1432 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1433 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1434 ; AVX1-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
1435 ; AVX1-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
1436 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
1437 ; AVX1-ONLY-NEXT:    vmovlps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload
1438 ; AVX1-ONLY-NEXT:    # xmm15 = mem[0,1],xmm15[2,3]
1439 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm15[0,1,2,3],ymm0[4,5,6,7]
1440 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1441 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1442 ; AVX1-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
1443 ; AVX1-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
1444 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
1445 ; AVX1-ONLY-NEXT:    vmovlps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload
1446 ; AVX1-ONLY-NEXT:    # xmm15 = mem[0,1],xmm15[2,3]
1447 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm15[0,1,2,3],ymm0[4,5,6,7]
1448 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1449 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1450 ; AVX1-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
1451 ; AVX1-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
1452 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
1453 ; AVX1-ONLY-NEXT:    vmovlps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload
1454 ; AVX1-ONLY-NEXT:    # xmm15 = mem[0,1],xmm15[2,3]
1455 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm15[0,1,2,3],ymm0[4,5,6,7]
1456 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1457 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1458 ; AVX1-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
1459 ; AVX1-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
1460 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
1461 ; AVX1-ONLY-NEXT:    vmovlps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload
1462 ; AVX1-ONLY-NEXT:    # xmm15 = mem[0,1],xmm15[2,3]
1463 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm15 = ymm15[0,1,2,3],ymm0[4,5,6,7]
1464 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1465 ; AVX1-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
1466 ; AVX1-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
1467 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm13 = xmm13[1],xmm14[1]
1468 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1,2,3],ymm0[4,5,6,7]
1469 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm11[1],ymm12[1],ymm11[3],ymm12[3]
1470 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm9 = xmm9[1],xmm10[1]
1471 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3],ymm0[4,5,6,7]
1472 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm7[1],ymm8[1],ymm7[3],ymm8[3]
1473 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm5 = xmm5[1],xmm6[1]
1474 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm5[0,1,2,3],ymm0[4,5,6,7]
1475 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm3 = ymm3[1],ymm4[1],ymm3[3],ymm4[3]
1476 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
1477 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm3[4,5,6,7]
1478 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1479 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 208(%rsi)
1480 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1481 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 192(%rsi)
1482 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1483 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 128(%rsi)
1484 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1485 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 64(%rsi)
1486 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1487 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, (%rsi)
1488 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1489 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 144(%rsi)
1490 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1491 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 80(%rsi)
1492 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1493 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 16(%rsi)
1494 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1495 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 240(%rsi)
1496 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1497 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 224(%rsi)
1498 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1499 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 32(%rsi)
1500 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1501 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 160(%rsi)
1502 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1503 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 96(%rsi)
1504 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1505 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 48(%rsi)
1506 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1507 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 176(%rsi)
1508 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1509 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 112(%rsi)
1510 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1511 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 64(%rdx)
1512 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1513 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 80(%rdx)
1514 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1515 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 128(%rdx)
1516 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1517 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 144(%rdx)
1518 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1519 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, (%rdx)
1520 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1521 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 16(%rdx)
1522 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1523 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 192(%rdx)
1524 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1525 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 208(%rdx)
1526 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1527 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 96(%rdx)
1528 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1529 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 112(%rdx)
1530 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1531 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 32(%rdx)
1532 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1533 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 48(%rdx)
1534 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1535 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 160(%rdx)
1536 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1537 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 176(%rdx)
1538 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1539 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 224(%rdx)
1540 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1541 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 240(%rdx)
1542 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
1543 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 192(%rcx)
1544 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
1545 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 128(%rcx)
1546 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
1547 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 64(%rcx)
1548 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
1549 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, (%rcx)
1550 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
1551 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 224(%rcx)
1552 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
1553 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 160(%rcx)
1554 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
1555 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 96(%rcx)
1556 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
1557 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 32(%rcx)
1558 ; AVX1-ONLY-NEXT:    vmovaps %ymm2, 192(%r8)
1559 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 128(%r8)
1560 ; AVX1-ONLY-NEXT:    vmovaps %ymm9, 64(%r8)
1561 ; AVX1-ONLY-NEXT:    vmovaps %ymm13, (%r8)
1562 ; AVX1-ONLY-NEXT:    vmovaps %ymm15, 224(%r8)
1563 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1564 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 160(%r8)
1565 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1566 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 96(%r8)
1567 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1568 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 32(%r8)
1569 ; AVX1-ONLY-NEXT:    addq $1112, %rsp # imm = 0x458
1570 ; AVX1-ONLY-NEXT:    vzeroupper
1571 ; AVX1-ONLY-NEXT:    retq
1573 ; AVX2-ONLY-LABEL: load_i64_stride4_vf32:
1574 ; AVX2-ONLY:       # %bb.0:
1575 ; AVX2-ONLY-NEXT:    subq $1224, %rsp # imm = 0x4C8
1576 ; AVX2-ONLY-NEXT:    vmovaps 160(%rdi), %xmm0
1577 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 224(%rdi), %ymm0, %ymm0
1578 ; AVX2-ONLY-NEXT:    vmovaps 128(%rdi), %xmm1
1579 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 192(%rdi), %ymm1, %ymm1
1580 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
1581 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1582 ; AVX2-ONLY-NEXT:    vmovaps 416(%rdi), %xmm2
1583 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 480(%rdi), %ymm2, %ymm2
1584 ; AVX2-ONLY-NEXT:    vmovaps 384(%rdi), %xmm3
1585 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 448(%rdi), %ymm3, %ymm3
1586 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
1587 ; AVX2-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1588 ; AVX2-ONLY-NEXT:    vmovaps 672(%rdi), %xmm4
1589 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 736(%rdi), %ymm4, %ymm4
1590 ; AVX2-ONLY-NEXT:    vmovaps 640(%rdi), %xmm5
1591 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 704(%rdi), %ymm5, %ymm5
1592 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm6 = ymm5[0],ymm4[0],ymm5[2],ymm4[2]
1593 ; AVX2-ONLY-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1594 ; AVX2-ONLY-NEXT:    vmovaps 928(%rdi), %xmm6
1595 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 992(%rdi), %ymm6, %ymm6
1596 ; AVX2-ONLY-NEXT:    vmovaps 896(%rdi), %xmm7
1597 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 960(%rdi), %ymm7, %ymm7
1598 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm8 = ymm7[0],ymm6[0],ymm7[2],ymm6[2]
1599 ; AVX2-ONLY-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1600 ; AVX2-ONLY-NEXT:    vmovaps (%rdi), %xmm9
1601 ; AVX2-ONLY-NEXT:    vmovaps 32(%rdi), %xmm8
1602 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 96(%rdi), %ymm8, %ymm8
1603 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 64(%rdi), %ymm9, %ymm9
1604 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm10 = ymm9[0],ymm8[0],ymm9[2],ymm8[2]
1605 ; AVX2-ONLY-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1606 ; AVX2-ONLY-NEXT:    vmovaps 288(%rdi), %xmm10
1607 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 352(%rdi), %ymm10, %ymm10
1608 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
1609 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1610 ; AVX2-ONLY-NEXT:    vmovaps 256(%rdi), %xmm0
1611 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 320(%rdi), %ymm0, %ymm0
1612 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm3[1],ymm2[1],ymm3[3],ymm2[3]
1613 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1614 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm0[0],ymm10[0],ymm0[2],ymm10[2]
1615 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1616 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm5[1],ymm4[1],ymm5[3],ymm4[3]
1617 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1618 ; AVX2-ONLY-NEXT:    vmovaps 544(%rdi), %xmm1
1619 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 608(%rdi), %ymm1, %ymm1
1620 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm7[1],ymm6[1],ymm7[3],ymm6[3]
1621 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1622 ; AVX2-ONLY-NEXT:    vmovaps 512(%rdi), %xmm2
1623 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 576(%rdi), %ymm2, %ymm2
1624 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm3 = ymm9[1],ymm8[1],ymm9[3],ymm8[3]
1625 ; AVX2-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1626 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm2[0],ymm1[0],ymm2[2],ymm1[2]
1627 ; AVX2-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1628 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm10[1],ymm0[3],ymm10[3]
1629 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1630 ; AVX2-ONLY-NEXT:    vmovaps 800(%rdi), %xmm0
1631 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 864(%rdi), %ymm0, %ymm0
1632 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm1[1],ymm2[3],ymm1[3]
1633 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1634 ; AVX2-ONLY-NEXT:    vmovaps 768(%rdi), %xmm1
1635 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 832(%rdi), %ymm1, %ymm1
1636 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
1637 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1638 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
1639 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1640 ; AVX2-ONLY-NEXT:    vmovaps 160(%rdi), %ymm2
1641 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1642 ; AVX2-ONLY-NEXT:    vmovaps 128(%rdi), %ymm3
1643 ; AVX2-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1644 ; AVX2-ONLY-NEXT:    vmovaps 224(%rdi), %ymm1
1645 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1646 ; AVX2-ONLY-NEXT:    vmovaps 192(%rdi), %ymm0
1647 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1648 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
1649 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
1650 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
1651 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1652 ; AVX2-ONLY-NEXT:    vmovaps 416(%rdi), %ymm2
1653 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1654 ; AVX2-ONLY-NEXT:    vmovaps 384(%rdi), %ymm3
1655 ; AVX2-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1656 ; AVX2-ONLY-NEXT:    vmovaps 480(%rdi), %ymm1
1657 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1658 ; AVX2-ONLY-NEXT:    vmovaps 448(%rdi), %ymm0
1659 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1660 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
1661 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
1662 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
1663 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1664 ; AVX2-ONLY-NEXT:    vmovaps 672(%rdi), %ymm2
1665 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1666 ; AVX2-ONLY-NEXT:    vmovaps 640(%rdi), %ymm3
1667 ; AVX2-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1668 ; AVX2-ONLY-NEXT:    vmovaps 736(%rdi), %ymm1
1669 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1670 ; AVX2-ONLY-NEXT:    vmovaps 704(%rdi), %ymm0
1671 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1672 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
1673 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
1674 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
1675 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1676 ; AVX2-ONLY-NEXT:    vmovaps 928(%rdi), %ymm2
1677 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1678 ; AVX2-ONLY-NEXT:    vmovaps 896(%rdi), %ymm3
1679 ; AVX2-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1680 ; AVX2-ONLY-NEXT:    vmovaps 992(%rdi), %ymm1
1681 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1682 ; AVX2-ONLY-NEXT:    vmovaps 960(%rdi), %ymm0
1683 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1684 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
1685 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
1686 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
1687 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1688 ; AVX2-ONLY-NEXT:    vmovaps 32(%rdi), %ymm2
1689 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1690 ; AVX2-ONLY-NEXT:    vmovaps (%rdi), %ymm1
1691 ; AVX2-ONLY-NEXT:    vmovups %ymm1, (%rsp) # 32-byte Spill
1692 ; AVX2-ONLY-NEXT:    vmovaps 96(%rdi), %ymm12
1693 ; AVX2-ONLY-NEXT:    vmovaps 64(%rdi), %ymm11
1694 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm11[0],ymm12[0],ymm11[2],ymm12[2]
1695 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
1696 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
1697 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1698 ; AVX2-ONLY-NEXT:    vmovaps 288(%rdi), %ymm10
1699 ; AVX2-ONLY-NEXT:    vmovaps 256(%rdi), %ymm9
1700 ; AVX2-ONLY-NEXT:    vmovaps 352(%rdi), %ymm8
1701 ; AVX2-ONLY-NEXT:    vmovaps 320(%rdi), %ymm7
1702 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm7[0],ymm8[0],ymm7[2],ymm8[2]
1703 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm15 = ymm9[0],ymm10[0],ymm9[2],ymm10[2]
1704 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm15[2,3],ymm0[2,3]
1705 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1706 ; AVX2-ONLY-NEXT:    vmovaps 544(%rdi), %ymm6
1707 ; AVX2-ONLY-NEXT:    vmovaps 512(%rdi), %ymm15
1708 ; AVX2-ONLY-NEXT:    vmovaps 608(%rdi), %ymm5
1709 ; AVX2-ONLY-NEXT:    vmovaps 576(%rdi), %ymm3
1710 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm3[0],ymm5[0],ymm3[2],ymm5[2]
1711 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm14 = ymm15[0],ymm6[0],ymm15[2],ymm6[2]
1712 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm14[2,3],ymm0[2,3]
1713 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1714 ; AVX2-ONLY-NEXT:    vmovaps 800(%rdi), %ymm4
1715 ; AVX2-ONLY-NEXT:    vmovaps 768(%rdi), %ymm14
1716 ; AVX2-ONLY-NEXT:    vmovaps 864(%rdi), %ymm2
1717 ; AVX2-ONLY-NEXT:    vmovaps 832(%rdi), %ymm1
1718 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
1719 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm13 = ymm14[0],ymm4[0],ymm14[2],ymm4[2]
1720 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm13[2,3],ymm0[2,3]
1721 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1722 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1723 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
1724 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
1725 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
1726 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm13 # 32-byte Folded Reload
1727 ; AVX2-ONLY-NEXT:    # ymm13 = ymm13[1],mem[1],ymm13[3],mem[3]
1728 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm13[2,3],ymm0[2,3]
1729 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1730 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1731 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
1732 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
1733 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
1734 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm13 # 32-byte Folded Reload
1735 ; AVX2-ONLY-NEXT:    # ymm13 = ymm13[1],mem[1],ymm13[3],mem[3]
1736 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm13[2,3],ymm0[2,3]
1737 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1738 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1739 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
1740 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
1741 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
1742 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm13 # 32-byte Folded Reload
1743 ; AVX2-ONLY-NEXT:    # ymm13 = ymm13[1],mem[1],ymm13[3],mem[3]
1744 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm13[2,3],ymm0[2,3]
1745 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1746 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1747 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
1748 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
1749 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
1750 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm13 # 32-byte Folded Reload
1751 ; AVX2-ONLY-NEXT:    # ymm13 = ymm13[1],mem[1],ymm13[3],mem[3]
1752 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm13[2,3],ymm0[2,3]
1753 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm11 = ymm11[1],ymm12[1],ymm11[3],ymm12[3]
1754 ; AVX2-ONLY-NEXT:    vmovups (%rsp), %ymm12 # 32-byte Reload
1755 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm12 # 32-byte Folded Reload
1756 ; AVX2-ONLY-NEXT:    # ymm12 = ymm12[1],mem[1],ymm12[3],mem[3]
1757 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm11 = ymm12[2,3],ymm11[2,3]
1758 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm7 = ymm7[1],ymm8[1],ymm7[3],ymm8[3]
1759 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm8 = ymm9[1],ymm10[1],ymm9[3],ymm10[3]
1760 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm7 = ymm8[2,3],ymm7[2,3]
1761 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm3 = ymm3[1],ymm5[1],ymm3[3],ymm5[3]
1762 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm5 = ymm15[1],ymm6[1],ymm15[3],ymm6[3]
1763 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm5[2,3],ymm3[2,3]
1764 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
1765 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm14[1],ymm4[1],ymm14[3],ymm4[3]
1766 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm2[2,3],ymm1[2,3]
1767 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1768 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 192(%rsi)
1769 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1770 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 128(%rsi)
1771 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1772 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 64(%rsi)
1773 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1774 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, (%rsi)
1775 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1776 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 224(%rsi)
1777 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1778 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 160(%rsi)
1779 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1780 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 96(%rsi)
1781 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1782 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 32(%rsi)
1783 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1784 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 192(%rdx)
1785 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1786 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 128(%rdx)
1787 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1788 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 64(%rdx)
1789 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1790 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, (%rdx)
1791 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1792 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 224(%rdx)
1793 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1794 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 160(%rdx)
1795 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1796 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 96(%rdx)
1797 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1798 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 32(%rdx)
1799 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1800 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 192(%rcx)
1801 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1802 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 128(%rcx)
1803 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1804 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 64(%rcx)
1805 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1806 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, (%rcx)
1807 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1808 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 224(%rcx)
1809 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1810 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 160(%rcx)
1811 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1812 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 96(%rcx)
1813 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1814 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 32(%rcx)
1815 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 192(%r8)
1816 ; AVX2-ONLY-NEXT:    vmovaps %ymm3, 128(%r8)
1817 ; AVX2-ONLY-NEXT:    vmovaps %ymm7, 64(%r8)
1818 ; AVX2-ONLY-NEXT:    vmovaps %ymm11, (%r8)
1819 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 224(%r8)
1820 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1821 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 160(%r8)
1822 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1823 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 96(%r8)
1824 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1825 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 32(%r8)
1826 ; AVX2-ONLY-NEXT:    addq $1224, %rsp # imm = 0x4C8
1827 ; AVX2-ONLY-NEXT:    vzeroupper
1828 ; AVX2-ONLY-NEXT:    retq
1830 ; AVX512-LABEL: load_i64_stride4_vf32:
1831 ; AVX512:       # %bb.0:
1832 ; AVX512-NEXT:    vmovdqa64 (%rdi), %zmm0
1833 ; AVX512-NEXT:    vmovdqa64 64(%rdi), %zmm1
1834 ; AVX512-NEXT:    vmovdqa64 128(%rdi), %zmm2
1835 ; AVX512-NEXT:    vmovdqa64 192(%rdi), %zmm3
1836 ; AVX512-NEXT:    vmovdqa64 832(%rdi), %zmm4
1837 ; AVX512-NEXT:    vmovdqa64 768(%rdi), %zmm5
1838 ; AVX512-NEXT:    vmovdqa64 960(%rdi), %zmm10
1839 ; AVX512-NEXT:    vmovdqa64 896(%rdi), %zmm7
1840 ; AVX512-NEXT:    vmovdqa64 320(%rdi), %zmm14
1841 ; AVX512-NEXT:    vmovdqa64 256(%rdi), %zmm15
1842 ; AVX512-NEXT:    vmovdqa64 448(%rdi), %zmm17
1843 ; AVX512-NEXT:    vmovdqa64 384(%rdi), %zmm16
1844 ; AVX512-NEXT:    vmovdqa64 576(%rdi), %zmm8
1845 ; AVX512-NEXT:    vmovdqa64 512(%rdi), %zmm9
1846 ; AVX512-NEXT:    vmovdqa64 704(%rdi), %zmm12
1847 ; AVX512-NEXT:    vmovdqa64 640(%rdi), %zmm11
1848 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm19 = [0,4,8,12,0,4,8,12]
1849 ; AVX512-NEXT:    # zmm19 = mem[0,1,2,3,0,1,2,3]
1850 ; AVX512-NEXT:    vmovdqa64 %zmm11, %zmm6
1851 ; AVX512-NEXT:    vpermt2q %zmm12, %zmm19, %zmm6
1852 ; AVX512-NEXT:    vmovdqa64 %zmm9, %zmm13
1853 ; AVX512-NEXT:    vpermt2q %zmm8, %zmm19, %zmm13
1854 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm6 = zmm13[0,1,2,3],zmm6[4,5,6,7]
1855 ; AVX512-NEXT:    vmovdqa64 %zmm16, %zmm13
1856 ; AVX512-NEXT:    vpermt2q %zmm17, %zmm19, %zmm13
1857 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm18
1858 ; AVX512-NEXT:    vpermt2q %zmm14, %zmm19, %zmm18
1859 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm13 = zmm18[0,1,2,3],zmm13[4,5,6,7]
1860 ; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm18
1861 ; AVX512-NEXT:    vpermt2q %zmm10, %zmm19, %zmm18
1862 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm20
1863 ; AVX512-NEXT:    vpermt2q %zmm4, %zmm19, %zmm20
1864 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm18 = zmm20[0,1,2,3],zmm18[4,5,6,7]
1865 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm20
1866 ; AVX512-NEXT:    vpermt2q %zmm3, %zmm19, %zmm20
1867 ; AVX512-NEXT:    vpermi2q %zmm1, %zmm0, %zmm19
1868 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm19 = zmm19[0,1,2,3],zmm20[4,5,6,7]
1869 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm21 = [1,5,9,13,1,5,9,13]
1870 ; AVX512-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3]
1871 ; AVX512-NEXT:    vmovdqa64 %zmm11, %zmm20
1872 ; AVX512-NEXT:    vpermt2q %zmm12, %zmm21, %zmm20
1873 ; AVX512-NEXT:    vmovdqa64 %zmm9, %zmm22
1874 ; AVX512-NEXT:    vpermt2q %zmm8, %zmm21, %zmm22
1875 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm20 = zmm22[0,1,2,3],zmm20[4,5,6,7]
1876 ; AVX512-NEXT:    vmovdqa64 %zmm16, %zmm22
1877 ; AVX512-NEXT:    vpermt2q %zmm17, %zmm21, %zmm22
1878 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm23
1879 ; AVX512-NEXT:    vpermt2q %zmm14, %zmm21, %zmm23
1880 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm22 = zmm23[0,1,2,3],zmm22[4,5,6,7]
1881 ; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm23
1882 ; AVX512-NEXT:    vpermt2q %zmm10, %zmm21, %zmm23
1883 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm24
1884 ; AVX512-NEXT:    vpermt2q %zmm4, %zmm21, %zmm24
1885 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm23 = zmm24[0,1,2,3],zmm23[4,5,6,7]
1886 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm24
1887 ; AVX512-NEXT:    vpermt2q %zmm3, %zmm21, %zmm24
1888 ; AVX512-NEXT:    vpermi2q %zmm1, %zmm0, %zmm21
1889 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm21 = zmm21[0,1,2,3],zmm24[4,5,6,7]
1890 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm24 = [2,6,10,14,2,6,10,14]
1891 ; AVX512-NEXT:    # zmm24 = mem[0,1,2,3,0,1,2,3]
1892 ; AVX512-NEXT:    vmovdqa64 %zmm11, %zmm25
1893 ; AVX512-NEXT:    vpermt2q %zmm12, %zmm24, %zmm25
1894 ; AVX512-NEXT:    vmovdqa64 %zmm9, %zmm26
1895 ; AVX512-NEXT:    vpermt2q %zmm8, %zmm24, %zmm26
1896 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm25 = zmm26[0,1,2,3],zmm25[4,5,6,7]
1897 ; AVX512-NEXT:    vmovdqa64 %zmm16, %zmm26
1898 ; AVX512-NEXT:    vpermt2q %zmm17, %zmm24, %zmm26
1899 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm27
1900 ; AVX512-NEXT:    vpermt2q %zmm14, %zmm24, %zmm27
1901 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm26 = zmm27[0,1,2,3],zmm26[4,5,6,7]
1902 ; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm27
1903 ; AVX512-NEXT:    vpermt2q %zmm10, %zmm24, %zmm27
1904 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm28
1905 ; AVX512-NEXT:    vpermt2q %zmm4, %zmm24, %zmm28
1906 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm27 = zmm28[0,1,2,3],zmm27[4,5,6,7]
1907 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm28
1908 ; AVX512-NEXT:    vpermt2q %zmm3, %zmm24, %zmm28
1909 ; AVX512-NEXT:    vpermi2q %zmm1, %zmm0, %zmm24
1910 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm24 = zmm24[0,1,2,3],zmm28[4,5,6,7]
1911 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm28 = [3,7,11,15,3,7,11,15]
1912 ; AVX512-NEXT:    # zmm28 = mem[0,1,2,3,0,1,2,3]
1913 ; AVX512-NEXT:    vpermt2q %zmm17, %zmm28, %zmm16
1914 ; AVX512-NEXT:    vpermt2q %zmm14, %zmm28, %zmm15
1915 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm14 = zmm15[0,1,2,3],zmm16[4,5,6,7]
1916 ; AVX512-NEXT:    vpermt2q %zmm10, %zmm28, %zmm7
1917 ; AVX512-NEXT:    vpermt2q %zmm4, %zmm28, %zmm5
1918 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm4 = zmm5[0,1,2,3],zmm7[4,5,6,7]
1919 ; AVX512-NEXT:    vpermt2q %zmm12, %zmm28, %zmm11
1920 ; AVX512-NEXT:    vpermt2q %zmm8, %zmm28, %zmm9
1921 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm5 = zmm9[0,1,2,3],zmm11[4,5,6,7]
1922 ; AVX512-NEXT:    vpermt2q %zmm3, %zmm28, %zmm2
1923 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm28, %zmm0
1924 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm0[0,1,2,3],zmm2[4,5,6,7]
1925 ; AVX512-NEXT:    vmovdqa64 %zmm18, 192(%rsi)
1926 ; AVX512-NEXT:    vmovdqa64 %zmm19, (%rsi)
1927 ; AVX512-NEXT:    vmovdqa64 %zmm13, 64(%rsi)
1928 ; AVX512-NEXT:    vmovdqa64 %zmm6, 128(%rsi)
1929 ; AVX512-NEXT:    vmovdqa64 %zmm23, 192(%rdx)
1930 ; AVX512-NEXT:    vmovdqa64 %zmm21, (%rdx)
1931 ; AVX512-NEXT:    vmovdqa64 %zmm22, 64(%rdx)
1932 ; AVX512-NEXT:    vmovdqa64 %zmm20, 128(%rdx)
1933 ; AVX512-NEXT:    vmovdqa64 %zmm27, 192(%rcx)
1934 ; AVX512-NEXT:    vmovdqa64 %zmm24, (%rcx)
1935 ; AVX512-NEXT:    vmovdqa64 %zmm26, 64(%rcx)
1936 ; AVX512-NEXT:    vmovdqa64 %zmm25, 128(%rcx)
1937 ; AVX512-NEXT:    vmovdqa64 %zmm5, 128(%r8)
1938 ; AVX512-NEXT:    vmovdqa64 %zmm4, 192(%r8)
1939 ; AVX512-NEXT:    vmovdqa64 %zmm0, (%r8)
1940 ; AVX512-NEXT:    vmovdqa64 %zmm14, 64(%r8)
1941 ; AVX512-NEXT:    vzeroupper
1942 ; AVX512-NEXT:    retq
1943   %wide.vec = load <128 x i64>, ptr %in.vec, align 64
1944   %strided.vec0 = shufflevector <128 x i64> %wide.vec, <128 x i64> poison, <32 x i32> <i32 0, i32 4, i32 8, i32 12, i32 16, i32 20, i32 24, i32 28, i32 32, i32 36, i32 40, i32 44, i32 48, i32 52, i32 56, i32 60, i32 64, i32 68, i32 72, i32 76, i32 80, i32 84, i32 88, i32 92, i32 96, i32 100, i32 104, i32 108, i32 112, i32 116, i32 120, i32 124>
1945   %strided.vec1 = shufflevector <128 x i64> %wide.vec, <128 x i64> poison, <32 x i32> <i32 1, i32 5, i32 9, i32 13, i32 17, i32 21, i32 25, i32 29, i32 33, i32 37, i32 41, i32 45, i32 49, i32 53, i32 57, i32 61, i32 65, i32 69, i32 73, i32 77, i32 81, i32 85, i32 89, i32 93, i32 97, i32 101, i32 105, i32 109, i32 113, i32 117, i32 121, i32 125>
1946   %strided.vec2 = shufflevector <128 x i64> %wide.vec, <128 x i64> poison, <32 x i32> <i32 2, i32 6, i32 10, i32 14, i32 18, i32 22, i32 26, i32 30, i32 34, i32 38, i32 42, i32 46, i32 50, i32 54, i32 58, i32 62, i32 66, i32 70, i32 74, i32 78, i32 82, i32 86, i32 90, i32 94, i32 98, i32 102, i32 106, i32 110, i32 114, i32 118, i32 122, i32 126>
1947   %strided.vec3 = shufflevector <128 x i64> %wide.vec, <128 x i64> poison, <32 x i32> <i32 3, i32 7, i32 11, i32 15, i32 19, i32 23, i32 27, i32 31, i32 35, i32 39, i32 43, i32 47, i32 51, i32 55, i32 59, i32 63, i32 67, i32 71, i32 75, i32 79, i32 83, i32 87, i32 91, i32 95, i32 99, i32 103, i32 107, i32 111, i32 115, i32 119, i32 123, i32 127>
1948   store <32 x i64> %strided.vec0, ptr %out.vec0, align 64
1949   store <32 x i64> %strided.vec1, ptr %out.vec1, align 64
1950   store <32 x i64> %strided.vec2, ptr %out.vec2, align 64
1951   store <32 x i64> %strided.vec3, ptr %out.vec3, align 64
1952   ret void
1955 define void @load_i64_stride4_vf64(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3) nounwind {
1956 ; SSE-LABEL: load_i64_stride4_vf64:
1957 ; SSE:       # %bb.0:
1958 ; SSE-NEXT:    subq $1688, %rsp # imm = 0x698
1959 ; SSE-NEXT:    movaps 544(%rdi), %xmm0
1960 ; SSE-NEXT:    movaps 480(%rdi), %xmm1
1961 ; SSE-NEXT:    movaps 448(%rdi), %xmm8
1962 ; SSE-NEXT:    movaps 416(%rdi), %xmm2
1963 ; SSE-NEXT:    movaps 384(%rdi), %xmm9
1964 ; SSE-NEXT:    movaps 352(%rdi), %xmm3
1965 ; SSE-NEXT:    movaps 320(%rdi), %xmm10
1966 ; SSE-NEXT:    movaps 288(%rdi), %xmm4
1967 ; SSE-NEXT:    movaps 256(%rdi), %xmm11
1968 ; SSE-NEXT:    movaps 224(%rdi), %xmm5
1969 ; SSE-NEXT:    movaps 192(%rdi), %xmm12
1970 ; SSE-NEXT:    movaps 160(%rdi), %xmm6
1971 ; SSE-NEXT:    movaps 128(%rdi), %xmm13
1972 ; SSE-NEXT:    movaps 96(%rdi), %xmm7
1973 ; SSE-NEXT:    movaps 64(%rdi), %xmm14
1974 ; SSE-NEXT:    movaps %xmm14, %xmm15
1975 ; SSE-NEXT:    movlhps {{.*#+}} xmm15 = xmm15[0],xmm7[0]
1976 ; SSE-NEXT:    movaps %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1977 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm14 = xmm14[1],xmm7[1]
1978 ; SSE-NEXT:    movaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1979 ; SSE-NEXT:    movaps %xmm13, %xmm7
1980 ; SSE-NEXT:    movlhps {{.*#+}} xmm7 = xmm7[0],xmm6[0]
1981 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1982 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm13 = xmm13[1],xmm6[1]
1983 ; SSE-NEXT:    movaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1984 ; SSE-NEXT:    movaps %xmm12, %xmm6
1985 ; SSE-NEXT:    movlhps {{.*#+}} xmm6 = xmm6[0],xmm5[0]
1986 ; SSE-NEXT:    movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1987 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm12 = xmm12[1],xmm5[1]
1988 ; SSE-NEXT:    movaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1989 ; SSE-NEXT:    movaps %xmm11, %xmm5
1990 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm4[0]
1991 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1992 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm11 = xmm11[1],xmm4[1]
1993 ; SSE-NEXT:    movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1994 ; SSE-NEXT:    movaps %xmm10, %xmm4
1995 ; SSE-NEXT:    movlhps {{.*#+}} xmm4 = xmm4[0],xmm3[0]
1996 ; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1997 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm10 = xmm10[1],xmm3[1]
1998 ; SSE-NEXT:    movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1999 ; SSE-NEXT:    movaps %xmm9, %xmm3
2000 ; SSE-NEXT:    movlhps {{.*#+}} xmm3 = xmm3[0],xmm2[0]
2001 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2002 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm9 = xmm9[1],xmm2[1]
2003 ; SSE-NEXT:    movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2004 ; SSE-NEXT:    movaps %xmm8, %xmm2
2005 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm1[0]
2006 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2007 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm1[1]
2008 ; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2009 ; SSE-NEXT:    movaps 512(%rdi), %xmm1
2010 ; SSE-NEXT:    movaps %xmm1, %xmm2
2011 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2012 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2013 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2014 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2015 ; SSE-NEXT:    movaps 608(%rdi), %xmm0
2016 ; SSE-NEXT:    movaps 576(%rdi), %xmm1
2017 ; SSE-NEXT:    movaps %xmm1, %xmm2
2018 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2019 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2020 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2021 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2022 ; SSE-NEXT:    movaps 672(%rdi), %xmm0
2023 ; SSE-NEXT:    movaps 640(%rdi), %xmm1
2024 ; SSE-NEXT:    movaps %xmm1, %xmm2
2025 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2026 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2027 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2028 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2029 ; SSE-NEXT:    movaps 736(%rdi), %xmm0
2030 ; SSE-NEXT:    movaps 704(%rdi), %xmm1
2031 ; SSE-NEXT:    movaps %xmm1, %xmm2
2032 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2033 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2034 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2035 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2036 ; SSE-NEXT:    movaps 800(%rdi), %xmm0
2037 ; SSE-NEXT:    movaps 768(%rdi), %xmm1
2038 ; SSE-NEXT:    movaps %xmm1, %xmm2
2039 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2040 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2041 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2042 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2043 ; SSE-NEXT:    movaps 864(%rdi), %xmm0
2044 ; SSE-NEXT:    movaps 832(%rdi), %xmm1
2045 ; SSE-NEXT:    movaps %xmm1, %xmm2
2046 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2047 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2048 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2049 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2050 ; SSE-NEXT:    movaps 928(%rdi), %xmm0
2051 ; SSE-NEXT:    movaps 896(%rdi), %xmm1
2052 ; SSE-NEXT:    movaps %xmm1, %xmm2
2053 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2054 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2055 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2056 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2057 ; SSE-NEXT:    movaps 992(%rdi), %xmm0
2058 ; SSE-NEXT:    movaps 960(%rdi), %xmm1
2059 ; SSE-NEXT:    movaps %xmm1, %xmm2
2060 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2061 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2062 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2063 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2064 ; SSE-NEXT:    movaps 1056(%rdi), %xmm0
2065 ; SSE-NEXT:    movaps 1024(%rdi), %xmm1
2066 ; SSE-NEXT:    movaps %xmm1, %xmm2
2067 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2068 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2069 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2070 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2071 ; SSE-NEXT:    movaps 1120(%rdi), %xmm0
2072 ; SSE-NEXT:    movaps 1088(%rdi), %xmm1
2073 ; SSE-NEXT:    movaps %xmm1, %xmm2
2074 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2075 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2076 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2077 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2078 ; SSE-NEXT:    movaps 1184(%rdi), %xmm0
2079 ; SSE-NEXT:    movaps 1152(%rdi), %xmm1
2080 ; SSE-NEXT:    movaps %xmm1, %xmm2
2081 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2082 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2083 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2084 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2085 ; SSE-NEXT:    movaps 1248(%rdi), %xmm0
2086 ; SSE-NEXT:    movaps 1216(%rdi), %xmm1
2087 ; SSE-NEXT:    movaps %xmm1, %xmm2
2088 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2089 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2090 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2091 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2092 ; SSE-NEXT:    movaps 1312(%rdi), %xmm0
2093 ; SSE-NEXT:    movaps 1280(%rdi), %xmm1
2094 ; SSE-NEXT:    movaps %xmm1, %xmm2
2095 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2096 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2097 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2098 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2099 ; SSE-NEXT:    movaps 1376(%rdi), %xmm0
2100 ; SSE-NEXT:    movaps 1344(%rdi), %xmm1
2101 ; SSE-NEXT:    movaps %xmm1, %xmm2
2102 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2103 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2104 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2105 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2106 ; SSE-NEXT:    movaps 1440(%rdi), %xmm0
2107 ; SSE-NEXT:    movaps 1408(%rdi), %xmm1
2108 ; SSE-NEXT:    movaps %xmm1, %xmm2
2109 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2110 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2111 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2112 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2113 ; SSE-NEXT:    movaps 1504(%rdi), %xmm0
2114 ; SSE-NEXT:    movaps 1472(%rdi), %xmm1
2115 ; SSE-NEXT:    movaps %xmm1, %xmm2
2116 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2117 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2118 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2119 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2120 ; SSE-NEXT:    movaps 1568(%rdi), %xmm0
2121 ; SSE-NEXT:    movaps 1536(%rdi), %xmm1
2122 ; SSE-NEXT:    movaps %xmm1, %xmm2
2123 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2124 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2125 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2126 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2127 ; SSE-NEXT:    movaps 1632(%rdi), %xmm0
2128 ; SSE-NEXT:    movaps 1600(%rdi), %xmm1
2129 ; SSE-NEXT:    movaps %xmm1, %xmm2
2130 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2131 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2132 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2133 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2134 ; SSE-NEXT:    movaps 1696(%rdi), %xmm0
2135 ; SSE-NEXT:    movaps 1664(%rdi), %xmm1
2136 ; SSE-NEXT:    movaps %xmm1, %xmm2
2137 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2138 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2139 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2140 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2141 ; SSE-NEXT:    movaps 1760(%rdi), %xmm0
2142 ; SSE-NEXT:    movaps 1728(%rdi), %xmm1
2143 ; SSE-NEXT:    movaps %xmm1, %xmm2
2144 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2145 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2146 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2147 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2148 ; SSE-NEXT:    movaps 1824(%rdi), %xmm0
2149 ; SSE-NEXT:    movaps 1792(%rdi), %xmm1
2150 ; SSE-NEXT:    movaps %xmm1, %xmm2
2151 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2152 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2153 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2154 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2155 ; SSE-NEXT:    movaps 1888(%rdi), %xmm0
2156 ; SSE-NEXT:    movaps 1856(%rdi), %xmm1
2157 ; SSE-NEXT:    movaps %xmm1, %xmm2
2158 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2159 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2160 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2161 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2162 ; SSE-NEXT:    movaps 1952(%rdi), %xmm0
2163 ; SSE-NEXT:    movaps 1920(%rdi), %xmm1
2164 ; SSE-NEXT:    movaps %xmm1, %xmm2
2165 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2166 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2167 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2168 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2169 ; SSE-NEXT:    movaps 2016(%rdi), %xmm0
2170 ; SSE-NEXT:    movaps 1984(%rdi), %xmm1
2171 ; SSE-NEXT:    movaps %xmm1, %xmm2
2172 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2173 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2174 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2175 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2176 ; SSE-NEXT:    movaps (%rdi), %xmm1
2177 ; SSE-NEXT:    movaps 32(%rdi), %xmm0
2178 ; SSE-NEXT:    movaps %xmm1, %xmm2
2179 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2180 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2181 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2182 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2183 ; SSE-NEXT:    movaps 112(%rdi), %xmm0
2184 ; SSE-NEXT:    movaps 80(%rdi), %xmm1
2185 ; SSE-NEXT:    movaps %xmm1, %xmm2
2186 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2187 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2188 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2189 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2190 ; SSE-NEXT:    movaps 176(%rdi), %xmm0
2191 ; SSE-NEXT:    movaps 144(%rdi), %xmm1
2192 ; SSE-NEXT:    movaps %xmm1, %xmm2
2193 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2194 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2195 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2196 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2197 ; SSE-NEXT:    movaps 240(%rdi), %xmm0
2198 ; SSE-NEXT:    movaps 208(%rdi), %xmm1
2199 ; SSE-NEXT:    movaps %xmm1, %xmm2
2200 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2201 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2202 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2203 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2204 ; SSE-NEXT:    movaps 304(%rdi), %xmm0
2205 ; SSE-NEXT:    movaps 272(%rdi), %xmm1
2206 ; SSE-NEXT:    movaps %xmm1, %xmm2
2207 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2208 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2209 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2210 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2211 ; SSE-NEXT:    movaps 368(%rdi), %xmm0
2212 ; SSE-NEXT:    movaps 336(%rdi), %xmm1
2213 ; SSE-NEXT:    movaps %xmm1, %xmm2
2214 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2215 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2216 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2217 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2218 ; SSE-NEXT:    movaps 432(%rdi), %xmm0
2219 ; SSE-NEXT:    movaps 400(%rdi), %xmm1
2220 ; SSE-NEXT:    movaps %xmm1, %xmm2
2221 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2222 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2223 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2224 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2225 ; SSE-NEXT:    movaps 496(%rdi), %xmm0
2226 ; SSE-NEXT:    movaps 464(%rdi), %xmm1
2227 ; SSE-NEXT:    movaps %xmm1, %xmm2
2228 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2229 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2230 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2231 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2232 ; SSE-NEXT:    movaps 560(%rdi), %xmm0
2233 ; SSE-NEXT:    movaps 528(%rdi), %xmm1
2234 ; SSE-NEXT:    movaps %xmm1, %xmm2
2235 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2236 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2237 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2238 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2239 ; SSE-NEXT:    movaps 624(%rdi), %xmm0
2240 ; SSE-NEXT:    movaps 592(%rdi), %xmm1
2241 ; SSE-NEXT:    movaps %xmm1, %xmm2
2242 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2243 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2244 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2245 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2246 ; SSE-NEXT:    movaps 688(%rdi), %xmm0
2247 ; SSE-NEXT:    movaps 656(%rdi), %xmm1
2248 ; SSE-NEXT:    movaps %xmm1, %xmm2
2249 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2250 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2251 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2252 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2253 ; SSE-NEXT:    movaps 752(%rdi), %xmm0
2254 ; SSE-NEXT:    movaps 720(%rdi), %xmm1
2255 ; SSE-NEXT:    movaps %xmm1, %xmm2
2256 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2257 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2258 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2259 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2260 ; SSE-NEXT:    movaps 816(%rdi), %xmm0
2261 ; SSE-NEXT:    movaps 784(%rdi), %xmm1
2262 ; SSE-NEXT:    movaps %xmm1, %xmm2
2263 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2264 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2265 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2266 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2267 ; SSE-NEXT:    movaps 880(%rdi), %xmm0
2268 ; SSE-NEXT:    movaps 848(%rdi), %xmm1
2269 ; SSE-NEXT:    movaps %xmm1, %xmm2
2270 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2271 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2272 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2273 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2274 ; SSE-NEXT:    movaps 944(%rdi), %xmm0
2275 ; SSE-NEXT:    movaps 912(%rdi), %xmm1
2276 ; SSE-NEXT:    movaps %xmm1, %xmm2
2277 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2278 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2279 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2280 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2281 ; SSE-NEXT:    movaps 1008(%rdi), %xmm0
2282 ; SSE-NEXT:    movaps 976(%rdi), %xmm1
2283 ; SSE-NEXT:    movaps %xmm1, %xmm2
2284 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2285 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2286 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2287 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2288 ; SSE-NEXT:    movaps 1072(%rdi), %xmm0
2289 ; SSE-NEXT:    movaps 1040(%rdi), %xmm1
2290 ; SSE-NEXT:    movaps %xmm1, %xmm2
2291 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2292 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2293 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2294 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2295 ; SSE-NEXT:    movaps 1136(%rdi), %xmm0
2296 ; SSE-NEXT:    movaps 1104(%rdi), %xmm1
2297 ; SSE-NEXT:    movaps %xmm1, %xmm2
2298 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2299 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2300 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2301 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2302 ; SSE-NEXT:    movaps 1200(%rdi), %xmm0
2303 ; SSE-NEXT:    movaps 1168(%rdi), %xmm1
2304 ; SSE-NEXT:    movaps %xmm1, %xmm2
2305 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2306 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2307 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2308 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2309 ; SSE-NEXT:    movaps 1264(%rdi), %xmm0
2310 ; SSE-NEXT:    movaps 1232(%rdi), %xmm1
2311 ; SSE-NEXT:    movaps %xmm1, %xmm2
2312 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2313 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2314 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2315 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2316 ; SSE-NEXT:    movaps 1328(%rdi), %xmm0
2317 ; SSE-NEXT:    movaps 1296(%rdi), %xmm1
2318 ; SSE-NEXT:    movaps %xmm1, %xmm2
2319 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2320 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2321 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2322 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2323 ; SSE-NEXT:    movaps 1392(%rdi), %xmm0
2324 ; SSE-NEXT:    movaps 1360(%rdi), %xmm1
2325 ; SSE-NEXT:    movaps %xmm1, %xmm2
2326 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2327 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2328 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2329 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2330 ; SSE-NEXT:    movaps 1456(%rdi), %xmm0
2331 ; SSE-NEXT:    movaps 1424(%rdi), %xmm1
2332 ; SSE-NEXT:    movaps %xmm1, %xmm2
2333 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2334 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2335 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2336 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2337 ; SSE-NEXT:    movaps 1520(%rdi), %xmm0
2338 ; SSE-NEXT:    movaps 1488(%rdi), %xmm1
2339 ; SSE-NEXT:    movaps %xmm1, %xmm2
2340 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2341 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2342 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2343 ; SSE-NEXT:    movaps %xmm1, (%rsp) # 16-byte Spill
2344 ; SSE-NEXT:    movaps 1584(%rdi), %xmm0
2345 ; SSE-NEXT:    movaps 1552(%rdi), %xmm1
2346 ; SSE-NEXT:    movaps %xmm1, %xmm2
2347 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2348 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2349 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2350 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2351 ; SSE-NEXT:    movaps 1648(%rdi), %xmm0
2352 ; SSE-NEXT:    movaps 1616(%rdi), %xmm15
2353 ; SSE-NEXT:    movaps %xmm15, %xmm1
2354 ; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2355 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2356 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm15 = xmm15[1],xmm0[1]
2357 ; SSE-NEXT:    movaps 1712(%rdi), %xmm0
2358 ; SSE-NEXT:    movaps 1680(%rdi), %xmm13
2359 ; SSE-NEXT:    movaps %xmm13, %xmm14
2360 ; SSE-NEXT:    movlhps {{.*#+}} xmm14 = xmm14[0],xmm0[0]
2361 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm13 = xmm13[1],xmm0[1]
2362 ; SSE-NEXT:    movaps 1776(%rdi), %xmm0
2363 ; SSE-NEXT:    movaps 1744(%rdi), %xmm12
2364 ; SSE-NEXT:    movaps %xmm12, %xmm11
2365 ; SSE-NEXT:    movlhps {{.*#+}} xmm11 = xmm11[0],xmm0[0]
2366 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm12 = xmm12[1],xmm0[1]
2367 ; SSE-NEXT:    movaps 1840(%rdi), %xmm0
2368 ; SSE-NEXT:    movaps 1808(%rdi), %xmm9
2369 ; SSE-NEXT:    movaps %xmm9, %xmm7
2370 ; SSE-NEXT:    movlhps {{.*#+}} xmm7 = xmm7[0],xmm0[0]
2371 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm9 = xmm9[1],xmm0[1]
2372 ; SSE-NEXT:    movaps 1904(%rdi), %xmm0
2373 ; SSE-NEXT:    movaps 1872(%rdi), %xmm6
2374 ; SSE-NEXT:    movaps %xmm6, %xmm5
2375 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm0[0]
2376 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm6 = xmm6[1],xmm0[1]
2377 ; SSE-NEXT:    movaps 1968(%rdi), %xmm0
2378 ; SSE-NEXT:    movaps 1936(%rdi), %xmm4
2379 ; SSE-NEXT:    movaps %xmm4, %xmm3
2380 ; SSE-NEXT:    movlhps {{.*#+}} xmm3 = xmm3[0],xmm0[0]
2381 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm0[1]
2382 ; SSE-NEXT:    movaps 2032(%rdi), %xmm8
2383 ; SSE-NEXT:    movaps 2000(%rdi), %xmm2
2384 ; SSE-NEXT:    movaps %xmm2, %xmm1
2385 ; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm8[0]
2386 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm8[1]
2387 ; SSE-NEXT:    movaps 16(%rdi), %xmm10
2388 ; SSE-NEXT:    movaps 48(%rdi), %xmm0
2389 ; SSE-NEXT:    movaps %xmm10, %xmm8
2390 ; SSE-NEXT:    movlhps {{.*#+}} xmm8 = xmm8[0],xmm0[0]
2391 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm10 = xmm10[1],xmm0[1]
2392 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2393 ; SSE-NEXT:    movaps %xmm0, 496(%rsi)
2394 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2395 ; SSE-NEXT:    movaps %xmm0, 480(%rsi)
2396 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2397 ; SSE-NEXT:    movaps %xmm0, 464(%rsi)
2398 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2399 ; SSE-NEXT:    movaps %xmm0, 448(%rsi)
2400 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2401 ; SSE-NEXT:    movaps %xmm0, 432(%rsi)
2402 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2403 ; SSE-NEXT:    movaps %xmm0, 416(%rsi)
2404 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2405 ; SSE-NEXT:    movaps %xmm0, 400(%rsi)
2406 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2407 ; SSE-NEXT:    movaps %xmm0, 384(%rsi)
2408 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2409 ; SSE-NEXT:    movaps %xmm0, 368(%rsi)
2410 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2411 ; SSE-NEXT:    movaps %xmm0, 352(%rsi)
2412 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2413 ; SSE-NEXT:    movaps %xmm0, 336(%rsi)
2414 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2415 ; SSE-NEXT:    movaps %xmm0, 320(%rsi)
2416 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2417 ; SSE-NEXT:    movaps %xmm0, 304(%rsi)
2418 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2419 ; SSE-NEXT:    movaps %xmm0, 288(%rsi)
2420 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2421 ; SSE-NEXT:    movaps %xmm0, 272(%rsi)
2422 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2423 ; SSE-NEXT:    movaps %xmm0, 256(%rsi)
2424 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2425 ; SSE-NEXT:    movaps %xmm0, 240(%rsi)
2426 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2427 ; SSE-NEXT:    movaps %xmm0, 224(%rsi)
2428 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2429 ; SSE-NEXT:    movaps %xmm0, 208(%rsi)
2430 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2431 ; SSE-NEXT:    movaps %xmm0, 192(%rsi)
2432 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2433 ; SSE-NEXT:    movaps %xmm0, 176(%rsi)
2434 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2435 ; SSE-NEXT:    movaps %xmm0, 160(%rsi)
2436 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2437 ; SSE-NEXT:    movaps %xmm0, 144(%rsi)
2438 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2439 ; SSE-NEXT:    movaps %xmm0, 128(%rsi)
2440 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2441 ; SSE-NEXT:    movaps %xmm0, 112(%rsi)
2442 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2443 ; SSE-NEXT:    movaps %xmm0, 96(%rsi)
2444 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2445 ; SSE-NEXT:    movaps %xmm0, 80(%rsi)
2446 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2447 ; SSE-NEXT:    movaps %xmm0, 64(%rsi)
2448 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2449 ; SSE-NEXT:    movaps %xmm0, 48(%rsi)
2450 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2451 ; SSE-NEXT:    movaps %xmm0, 32(%rsi)
2452 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2453 ; SSE-NEXT:    movaps %xmm0, 16(%rsi)
2454 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2455 ; SSE-NEXT:    movaps %xmm0, (%rsi)
2456 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2457 ; SSE-NEXT:    movaps %xmm0, 496(%rdx)
2458 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2459 ; SSE-NEXT:    movaps %xmm0, 480(%rdx)
2460 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2461 ; SSE-NEXT:    movaps %xmm0, 464(%rdx)
2462 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2463 ; SSE-NEXT:    movaps %xmm0, 448(%rdx)
2464 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2465 ; SSE-NEXT:    movaps %xmm0, 432(%rdx)
2466 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2467 ; SSE-NEXT:    movaps %xmm0, 416(%rdx)
2468 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2469 ; SSE-NEXT:    movaps %xmm0, 400(%rdx)
2470 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2471 ; SSE-NEXT:    movaps %xmm0, 384(%rdx)
2472 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2473 ; SSE-NEXT:    movaps %xmm0, 368(%rdx)
2474 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2475 ; SSE-NEXT:    movaps %xmm0, 352(%rdx)
2476 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2477 ; SSE-NEXT:    movaps %xmm0, 336(%rdx)
2478 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2479 ; SSE-NEXT:    movaps %xmm0, 320(%rdx)
2480 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2481 ; SSE-NEXT:    movaps %xmm0, 304(%rdx)
2482 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2483 ; SSE-NEXT:    movaps %xmm0, 288(%rdx)
2484 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2485 ; SSE-NEXT:    movaps %xmm0, 272(%rdx)
2486 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2487 ; SSE-NEXT:    movaps %xmm0, 256(%rdx)
2488 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2489 ; SSE-NEXT:    movaps %xmm0, 240(%rdx)
2490 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2491 ; SSE-NEXT:    movaps %xmm0, 224(%rdx)
2492 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2493 ; SSE-NEXT:    movaps %xmm0, 208(%rdx)
2494 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2495 ; SSE-NEXT:    movaps %xmm0, 192(%rdx)
2496 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2497 ; SSE-NEXT:    movaps %xmm0, 176(%rdx)
2498 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2499 ; SSE-NEXT:    movaps %xmm0, 160(%rdx)
2500 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2501 ; SSE-NEXT:    movaps %xmm0, 144(%rdx)
2502 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2503 ; SSE-NEXT:    movaps %xmm0, 128(%rdx)
2504 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2505 ; SSE-NEXT:    movaps %xmm0, 112(%rdx)
2506 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2507 ; SSE-NEXT:    movaps %xmm0, 96(%rdx)
2508 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2509 ; SSE-NEXT:    movaps %xmm0, 80(%rdx)
2510 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2511 ; SSE-NEXT:    movaps %xmm0, 64(%rdx)
2512 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2513 ; SSE-NEXT:    movaps %xmm0, 48(%rdx)
2514 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2515 ; SSE-NEXT:    movaps %xmm0, 32(%rdx)
2516 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2517 ; SSE-NEXT:    movaps %xmm0, 16(%rdx)
2518 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2519 ; SSE-NEXT:    movaps %xmm0, (%rdx)
2520 ; SSE-NEXT:    movaps %xmm1, 496(%rcx)
2521 ; SSE-NEXT:    movaps %xmm3, 480(%rcx)
2522 ; SSE-NEXT:    movaps %xmm5, 464(%rcx)
2523 ; SSE-NEXT:    movaps %xmm7, 448(%rcx)
2524 ; SSE-NEXT:    movaps %xmm11, 432(%rcx)
2525 ; SSE-NEXT:    movaps %xmm14, 416(%rcx)
2526 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2527 ; SSE-NEXT:    movaps %xmm0, 400(%rcx)
2528 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2529 ; SSE-NEXT:    movaps %xmm0, 384(%rcx)
2530 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2531 ; SSE-NEXT:    movaps %xmm0, 368(%rcx)
2532 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2533 ; SSE-NEXT:    movaps %xmm0, 352(%rcx)
2534 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2535 ; SSE-NEXT:    movaps %xmm0, 336(%rcx)
2536 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2537 ; SSE-NEXT:    movaps %xmm0, 320(%rcx)
2538 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2539 ; SSE-NEXT:    movaps %xmm0, 304(%rcx)
2540 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2541 ; SSE-NEXT:    movaps %xmm0, 288(%rcx)
2542 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2543 ; SSE-NEXT:    movaps %xmm0, 272(%rcx)
2544 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2545 ; SSE-NEXT:    movaps %xmm0, 256(%rcx)
2546 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2547 ; SSE-NEXT:    movaps %xmm0, 240(%rcx)
2548 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2549 ; SSE-NEXT:    movaps %xmm0, 224(%rcx)
2550 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2551 ; SSE-NEXT:    movaps %xmm0, 208(%rcx)
2552 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2553 ; SSE-NEXT:    movaps %xmm0, 192(%rcx)
2554 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2555 ; SSE-NEXT:    movaps %xmm0, 176(%rcx)
2556 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2557 ; SSE-NEXT:    movaps %xmm0, 160(%rcx)
2558 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2559 ; SSE-NEXT:    movaps %xmm0, 144(%rcx)
2560 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2561 ; SSE-NEXT:    movaps %xmm0, 128(%rcx)
2562 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2563 ; SSE-NEXT:    movaps %xmm0, 112(%rcx)
2564 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2565 ; SSE-NEXT:    movaps %xmm0, 96(%rcx)
2566 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2567 ; SSE-NEXT:    movaps %xmm0, 80(%rcx)
2568 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2569 ; SSE-NEXT:    movaps %xmm0, 64(%rcx)
2570 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2571 ; SSE-NEXT:    movaps %xmm0, 48(%rcx)
2572 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2573 ; SSE-NEXT:    movaps %xmm0, 32(%rcx)
2574 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2575 ; SSE-NEXT:    movaps %xmm0, 16(%rcx)
2576 ; SSE-NEXT:    movaps %xmm8, (%rcx)
2577 ; SSE-NEXT:    movaps %xmm2, 496(%r8)
2578 ; SSE-NEXT:    movaps %xmm4, 480(%r8)
2579 ; SSE-NEXT:    movaps %xmm6, 464(%r8)
2580 ; SSE-NEXT:    movaps %xmm9, 448(%r8)
2581 ; SSE-NEXT:    movaps %xmm12, 432(%r8)
2582 ; SSE-NEXT:    movaps %xmm13, 416(%r8)
2583 ; SSE-NEXT:    movaps %xmm15, 400(%r8)
2584 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2585 ; SSE-NEXT:    movaps %xmm0, 384(%r8)
2586 ; SSE-NEXT:    movaps (%rsp), %xmm0 # 16-byte Reload
2587 ; SSE-NEXT:    movaps %xmm0, 368(%r8)
2588 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2589 ; SSE-NEXT:    movaps %xmm0, 352(%r8)
2590 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2591 ; SSE-NEXT:    movaps %xmm0, 336(%r8)
2592 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2593 ; SSE-NEXT:    movaps %xmm0, 320(%r8)
2594 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2595 ; SSE-NEXT:    movaps %xmm0, 304(%r8)
2596 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2597 ; SSE-NEXT:    movaps %xmm0, 288(%r8)
2598 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2599 ; SSE-NEXT:    movaps %xmm0, 272(%r8)
2600 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2601 ; SSE-NEXT:    movaps %xmm0, 256(%r8)
2602 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2603 ; SSE-NEXT:    movaps %xmm0, 240(%r8)
2604 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2605 ; SSE-NEXT:    movaps %xmm0, 224(%r8)
2606 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2607 ; SSE-NEXT:    movaps %xmm0, 208(%r8)
2608 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2609 ; SSE-NEXT:    movaps %xmm0, 192(%r8)
2610 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2611 ; SSE-NEXT:    movaps %xmm0, 176(%r8)
2612 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2613 ; SSE-NEXT:    movaps %xmm0, 160(%r8)
2614 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2615 ; SSE-NEXT:    movaps %xmm0, 144(%r8)
2616 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2617 ; SSE-NEXT:    movaps %xmm0, 128(%r8)
2618 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2619 ; SSE-NEXT:    movaps %xmm0, 112(%r8)
2620 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2621 ; SSE-NEXT:    movaps %xmm0, 96(%r8)
2622 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2623 ; SSE-NEXT:    movaps %xmm0, 80(%r8)
2624 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2625 ; SSE-NEXT:    movaps %xmm0, 64(%r8)
2626 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2627 ; SSE-NEXT:    movaps %xmm0, 48(%r8)
2628 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2629 ; SSE-NEXT:    movaps %xmm0, 32(%r8)
2630 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2631 ; SSE-NEXT:    movaps %xmm0, 16(%r8)
2632 ; SSE-NEXT:    movaps %xmm10, (%r8)
2633 ; SSE-NEXT:    addq $1688, %rsp # imm = 0x698
2634 ; SSE-NEXT:    retq
2636 ; AVX1-ONLY-LABEL: load_i64_stride4_vf64:
2637 ; AVX1-ONLY:       # %bb.0:
2638 ; AVX1-ONLY-NEXT:    subq $2728, %rsp # imm = 0xAA8
2639 ; AVX1-ONLY-NEXT:    vmovaps 1248(%rdi), %xmm0
2640 ; AVX1-ONLY-NEXT:    vmovaps 1216(%rdi), %xmm1
2641 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
2642 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2643 ; AVX1-ONLY-NEXT:    vmovaps 1504(%rdi), %xmm2
2644 ; AVX1-ONLY-NEXT:    vmovaps 1472(%rdi), %xmm3
2645 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm4 = xmm3[0],xmm2[0]
2646 ; AVX1-ONLY-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2647 ; AVX1-ONLY-NEXT:    vmovaps 1760(%rdi), %xmm4
2648 ; AVX1-ONLY-NEXT:    vmovaps 1728(%rdi), %xmm5
2649 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm6 = xmm5[0],xmm4[0]
2650 ; AVX1-ONLY-NEXT:    vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2651 ; AVX1-ONLY-NEXT:    vmovaps 1440(%rdi), %xmm6
2652 ; AVX1-ONLY-NEXT:    vmovaps 1696(%rdi), %xmm7
2653 ; AVX1-ONLY-NEXT:    vmovaps 1952(%rdi), %xmm8
2654 ; AVX1-ONLY-NEXT:    vmovaps 1920(%rdi), %xmm9
2655 ; AVX1-ONLY-NEXT:    vmovaps 2016(%rdi), %xmm10
2656 ; AVX1-ONLY-NEXT:    vmovaps 1984(%rdi), %xmm11
2657 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm12 = xmm11[0],xmm10[0]
2658 ; AVX1-ONLY-NEXT:    vmovaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2659 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm10 = xmm11[1],xmm10[1]
2660 ; AVX1-ONLY-NEXT:    vmovaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2661 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm10 = xmm9[0],xmm8[0]
2662 ; AVX1-ONLY-NEXT:    vmovaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2663 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm8 = xmm9[1],xmm8[1]
2664 ; AVX1-ONLY-NEXT:    vmovaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2665 ; AVX1-ONLY-NEXT:    vmovaps 1664(%rdi), %xmm8
2666 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm4 = xmm5[1],xmm4[1]
2667 ; AVX1-ONLY-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2668 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm4 = xmm8[0],xmm7[0]
2669 ; AVX1-ONLY-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2670 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm4 = xmm8[1],xmm7[1]
2671 ; AVX1-ONLY-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2672 ; AVX1-ONLY-NEXT:    vmovaps 1408(%rdi), %xmm4
2673 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm2 = xmm3[1],xmm2[1]
2674 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2675 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm4[0],xmm6[0]
2676 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2677 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm2 = xmm4[1],xmm6[1]
2678 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2679 ; AVX1-ONLY-NEXT:    vmovaps 1184(%rdi), %xmm2
2680 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
2681 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2682 ; AVX1-ONLY-NEXT:    vmovaps 1152(%rdi), %xmm0
2683 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm0[0],xmm2[0]
2684 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2685 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
2686 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2687 ; AVX1-ONLY-NEXT:    vmovaps 992(%rdi), %xmm0
2688 ; AVX1-ONLY-NEXT:    vmovaps 960(%rdi), %xmm1
2689 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
2690 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2691 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
2692 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2693 ; AVX1-ONLY-NEXT:    vmovaps 928(%rdi), %xmm0
2694 ; AVX1-ONLY-NEXT:    vmovaps 896(%rdi), %xmm1
2695 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
2696 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2697 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
2698 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2699 ; AVX1-ONLY-NEXT:    vmovaps 736(%rdi), %xmm0
2700 ; AVX1-ONLY-NEXT:    vmovaps 704(%rdi), %xmm1
2701 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
2702 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2703 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
2704 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2705 ; AVX1-ONLY-NEXT:    vmovaps 672(%rdi), %xmm0
2706 ; AVX1-ONLY-NEXT:    vmovaps 640(%rdi), %xmm1
2707 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
2708 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2709 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
2710 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2711 ; AVX1-ONLY-NEXT:    vmovaps 224(%rdi), %xmm0
2712 ; AVX1-ONLY-NEXT:    vmovaps 192(%rdi), %xmm1
2713 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
2714 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2715 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
2716 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2717 ; AVX1-ONLY-NEXT:    vmovaps 160(%rdi), %xmm0
2718 ; AVX1-ONLY-NEXT:    vmovaps 128(%rdi), %xmm1
2719 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
2720 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2721 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
2722 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2723 ; AVX1-ONLY-NEXT:    vmovaps 480(%rdi), %xmm0
2724 ; AVX1-ONLY-NEXT:    vmovaps 448(%rdi), %xmm1
2725 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
2726 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2727 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
2728 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2729 ; AVX1-ONLY-NEXT:    vmovaps 416(%rdi), %xmm0
2730 ; AVX1-ONLY-NEXT:    vmovaps 384(%rdi), %xmm1
2731 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
2732 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2733 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
2734 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2735 ; AVX1-ONLY-NEXT:    vmovaps 1888(%rdi), %xmm0
2736 ; AVX1-ONLY-NEXT:    vmovaps 1856(%rdi), %xmm1
2737 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
2738 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2739 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
2740 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2741 ; AVX1-ONLY-NEXT:    vmovaps 1824(%rdi), %xmm0
2742 ; AVX1-ONLY-NEXT:    vmovaps 1792(%rdi), %xmm1
2743 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
2744 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2745 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
2746 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2747 ; AVX1-ONLY-NEXT:    vmovaps 1632(%rdi), %xmm0
2748 ; AVX1-ONLY-NEXT:    vmovaps 1600(%rdi), %xmm1
2749 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
2750 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2751 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
2752 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2753 ; AVX1-ONLY-NEXT:    vmovaps 1568(%rdi), %xmm0
2754 ; AVX1-ONLY-NEXT:    vmovaps 1536(%rdi), %xmm1
2755 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
2756 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2757 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
2758 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2759 ; AVX1-ONLY-NEXT:    vmovaps 1376(%rdi), %xmm0
2760 ; AVX1-ONLY-NEXT:    vmovaps 1344(%rdi), %xmm1
2761 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
2762 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2763 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
2764 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2765 ; AVX1-ONLY-NEXT:    vmovaps 1312(%rdi), %xmm0
2766 ; AVX1-ONLY-NEXT:    vmovaps 1280(%rdi), %xmm1
2767 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
2768 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2769 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
2770 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2771 ; AVX1-ONLY-NEXT:    vmovaps 864(%rdi), %xmm0
2772 ; AVX1-ONLY-NEXT:    vmovaps 832(%rdi), %xmm1
2773 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
2774 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2775 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
2776 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2777 ; AVX1-ONLY-NEXT:    vmovaps 800(%rdi), %xmm0
2778 ; AVX1-ONLY-NEXT:    vmovaps 768(%rdi), %xmm1
2779 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
2780 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2781 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
2782 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2783 ; AVX1-ONLY-NEXT:    vmovaps 96(%rdi), %xmm0
2784 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdi), %xmm1
2785 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
2786 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2787 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
2788 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2789 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %xmm0
2790 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %xmm1
2791 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
2792 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2793 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
2794 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2795 ; AVX1-ONLY-NEXT:    vmovaps 352(%rdi), %xmm0
2796 ; AVX1-ONLY-NEXT:    vmovaps 320(%rdi), %xmm1
2797 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
2798 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2799 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
2800 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2801 ; AVX1-ONLY-NEXT:    vmovaps 288(%rdi), %xmm0
2802 ; AVX1-ONLY-NEXT:    vmovaps 256(%rdi), %xmm1
2803 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
2804 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2805 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
2806 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2807 ; AVX1-ONLY-NEXT:    vmovaps 1120(%rdi), %xmm0
2808 ; AVX1-ONLY-NEXT:    vmovaps 1088(%rdi), %xmm1
2809 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
2810 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2811 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
2812 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2813 ; AVX1-ONLY-NEXT:    vmovaps 1056(%rdi), %xmm0
2814 ; AVX1-ONLY-NEXT:    vmovaps 1024(%rdi), %xmm1
2815 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
2816 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2817 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
2818 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2819 ; AVX1-ONLY-NEXT:    vmovaps 608(%rdi), %xmm0
2820 ; AVX1-ONLY-NEXT:    vmovaps 576(%rdi), %xmm1
2821 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
2822 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2823 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
2824 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2825 ; AVX1-ONLY-NEXT:    vmovaps 544(%rdi), %xmm0
2826 ; AVX1-ONLY-NEXT:    vmovaps 512(%rdi), %xmm1
2827 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
2828 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2829 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
2830 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2831 ; AVX1-ONLY-NEXT:    vmovaps 224(%rdi), %ymm1
2832 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2833 ; AVX1-ONLY-NEXT:    vmovaps 192(%rdi), %ymm0
2834 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2835 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
2836 ; AVX1-ONLY-NEXT:    vmovaps 176(%rdi), %xmm2
2837 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2838 ; AVX1-ONLY-NEXT:    vmovaps 144(%rdi), %xmm1
2839 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2840 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]
2841 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
2842 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2843 ; AVX1-ONLY-NEXT:    vmovaps 480(%rdi), %ymm1
2844 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2845 ; AVX1-ONLY-NEXT:    vmovaps 448(%rdi), %ymm0
2846 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2847 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
2848 ; AVX1-ONLY-NEXT:    vmovaps 432(%rdi), %xmm2
2849 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, (%rsp) # 16-byte Spill
2850 ; AVX1-ONLY-NEXT:    vmovaps 400(%rdi), %xmm1
2851 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2852 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]
2853 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
2854 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2855 ; AVX1-ONLY-NEXT:    vmovaps 736(%rdi), %ymm1
2856 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2857 ; AVX1-ONLY-NEXT:    vmovaps 704(%rdi), %ymm0
2858 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2859 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
2860 ; AVX1-ONLY-NEXT:    vmovaps 688(%rdi), %xmm2
2861 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2862 ; AVX1-ONLY-NEXT:    vmovaps 656(%rdi), %xmm1
2863 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2864 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]
2865 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
2866 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2867 ; AVX1-ONLY-NEXT:    vmovaps 992(%rdi), %ymm1
2868 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2869 ; AVX1-ONLY-NEXT:    vmovaps 960(%rdi), %ymm0
2870 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2871 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
2872 ; AVX1-ONLY-NEXT:    vmovaps 944(%rdi), %xmm2
2873 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2874 ; AVX1-ONLY-NEXT:    vmovaps 912(%rdi), %xmm1
2875 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2876 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]
2877 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
2878 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2879 ; AVX1-ONLY-NEXT:    vmovaps 1248(%rdi), %ymm1
2880 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2881 ; AVX1-ONLY-NEXT:    vmovaps 1216(%rdi), %ymm0
2882 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2883 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
2884 ; AVX1-ONLY-NEXT:    vmovaps 1200(%rdi), %xmm2
2885 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2886 ; AVX1-ONLY-NEXT:    vmovaps 1168(%rdi), %xmm1
2887 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2888 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]
2889 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
2890 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2891 ; AVX1-ONLY-NEXT:    vmovaps 1504(%rdi), %ymm1
2892 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2893 ; AVX1-ONLY-NEXT:    vmovaps 1472(%rdi), %ymm0
2894 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2895 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
2896 ; AVX1-ONLY-NEXT:    vmovaps 1456(%rdi), %xmm2
2897 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2898 ; AVX1-ONLY-NEXT:    vmovaps 1424(%rdi), %xmm1
2899 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2900 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]
2901 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
2902 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2903 ; AVX1-ONLY-NEXT:    vmovaps 1760(%rdi), %ymm1
2904 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2905 ; AVX1-ONLY-NEXT:    vmovaps 1728(%rdi), %ymm0
2906 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2907 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
2908 ; AVX1-ONLY-NEXT:    vmovaps 1712(%rdi), %xmm2
2909 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2910 ; AVX1-ONLY-NEXT:    vmovaps 1680(%rdi), %xmm1
2911 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2912 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]
2913 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
2914 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2915 ; AVX1-ONLY-NEXT:    vmovaps 2016(%rdi), %ymm1
2916 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2917 ; AVX1-ONLY-NEXT:    vmovaps 1984(%rdi), %ymm0
2918 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2919 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
2920 ; AVX1-ONLY-NEXT:    vmovaps 1968(%rdi), %xmm2
2921 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2922 ; AVX1-ONLY-NEXT:    vmovaps 1936(%rdi), %xmm1
2923 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2924 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]
2925 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
2926 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2927 ; AVX1-ONLY-NEXT:    vmovaps 96(%rdi), %ymm0
2928 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2929 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdi), %ymm1
2930 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2931 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
2932 ; AVX1-ONLY-NEXT:    vmovaps 48(%rdi), %xmm0
2933 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2934 ; AVX1-ONLY-NEXT:    vmovaps 16(%rdi), %xmm8
2935 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm8[0],xmm0[0]
2936 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm1[4,5,6,7]
2937 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2938 ; AVX1-ONLY-NEXT:    vmovaps 352(%rdi), %ymm0
2939 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2940 ; AVX1-ONLY-NEXT:    vmovaps 320(%rdi), %ymm1
2941 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2942 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
2943 ; AVX1-ONLY-NEXT:    vmovaps 304(%rdi), %xmm0
2944 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2945 ; AVX1-ONLY-NEXT:    vmovaps 272(%rdi), %xmm1
2946 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm3 = xmm1[0],xmm0[0]
2947 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm2[4,5,6,7]
2948 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2949 ; AVX1-ONLY-NEXT:    vmovaps 608(%rdi), %ymm0
2950 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2951 ; AVX1-ONLY-NEXT:    vmovaps 576(%rdi), %ymm2
2952 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2953 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm2[0],ymm0[0],ymm2[2],ymm0[2]
2954 ; AVX1-ONLY-NEXT:    vmovaps 560(%rdi), %xmm10
2955 ; AVX1-ONLY-NEXT:    vmovaps 528(%rdi), %xmm2
2956 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm4 = xmm2[0],xmm10[0]
2957 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3],ymm3[4,5,6,7]
2958 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2959 ; AVX1-ONLY-NEXT:    vmovaps 864(%rdi), %ymm0
2960 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2961 ; AVX1-ONLY-NEXT:    vmovaps 832(%rdi), %ymm3
2962 ; AVX1-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2963 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm3[0],ymm0[0],ymm3[2],ymm0[2]
2964 ; AVX1-ONLY-NEXT:    vmovaps 816(%rdi), %xmm11
2965 ; AVX1-ONLY-NEXT:    vmovaps 784(%rdi), %xmm3
2966 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm5 = xmm3[0],xmm11[0]
2967 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm5[0,1,2,3],ymm4[4,5,6,7]
2968 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2969 ; AVX1-ONLY-NEXT:    vmovaps 1120(%rdi), %ymm0
2970 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2971 ; AVX1-ONLY-NEXT:    vmovaps 1088(%rdi), %ymm4
2972 ; AVX1-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2973 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm5 = ymm4[0],ymm0[0],ymm4[2],ymm0[2]
2974 ; AVX1-ONLY-NEXT:    vmovaps 1072(%rdi), %xmm12
2975 ; AVX1-ONLY-NEXT:    vmovaps 1040(%rdi), %xmm4
2976 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm6 = xmm4[0],xmm12[0]
2977 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm6[0,1,2,3],ymm5[4,5,6,7]
2978 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2979 ; AVX1-ONLY-NEXT:    vmovaps 1376(%rdi), %ymm0
2980 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2981 ; AVX1-ONLY-NEXT:    vmovaps 1344(%rdi), %ymm5
2982 ; AVX1-ONLY-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2983 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm6 = ymm5[0],ymm0[0],ymm5[2],ymm0[2]
2984 ; AVX1-ONLY-NEXT:    vmovaps 1328(%rdi), %xmm13
2985 ; AVX1-ONLY-NEXT:    vmovaps 1296(%rdi), %xmm5
2986 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm7 = xmm5[0],xmm13[0]
2987 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm7[0,1,2,3],ymm6[4,5,6,7]
2988 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2989 ; AVX1-ONLY-NEXT:    vmovaps 1632(%rdi), %ymm0
2990 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2991 ; AVX1-ONLY-NEXT:    vmovaps 1600(%rdi), %ymm6
2992 ; AVX1-ONLY-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2993 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm7 = ymm6[0],ymm0[0],ymm6[2],ymm0[2]
2994 ; AVX1-ONLY-NEXT:    vmovaps 1584(%rdi), %xmm14
2995 ; AVX1-ONLY-NEXT:    vmovaps 1552(%rdi), %xmm6
2996 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm15 = xmm6[0],xmm14[0]
2997 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm15[0,1,2,3],ymm7[4,5,6,7]
2998 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2999 ; AVX1-ONLY-NEXT:    vmovaps 1888(%rdi), %ymm7
3000 ; AVX1-ONLY-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3001 ; AVX1-ONLY-NEXT:    vmovaps 1856(%rdi), %ymm0
3002 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3003 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm7[0],ymm0[2],ymm7[2]
3004 ; AVX1-ONLY-NEXT:    vmovaps 1840(%rdi), %xmm15
3005 ; AVX1-ONLY-NEXT:    vmovaps 1808(%rdi), %xmm7
3006 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm9 = xmm7[0],xmm15[0]
3007 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm9[0,1,2,3],ymm0[4,5,6,7]
3008 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3009 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3010 ; AVX1-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
3011 ; AVX1-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
3012 ; AVX1-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm8, %xmm8 # 16-byte Folded Reload
3013 ; AVX1-ONLY-NEXT:    # xmm8 = xmm8[1],mem[1]
3014 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm9 = ymm8[0,1,2,3],ymm0[4,5,6,7]
3015 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3016 ; AVX1-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
3017 ; AVX1-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
3018 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
3019 ; AVX1-ONLY-NEXT:    vmovlps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8, %xmm8 # 16-byte Folded Reload
3020 ; AVX1-ONLY-NEXT:    # xmm8 = mem[0,1],xmm8[2,3]
3021 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm0[4,5,6,7]
3022 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3023 ; AVX1-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
3024 ; AVX1-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
3025 ; AVX1-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
3026 ; AVX1-ONLY-NEXT:    # xmm1 = xmm1[1],mem[1]
3027 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3028 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3029 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3030 ; AVX1-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
3031 ; AVX1-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
3032 ; AVX1-ONLY-NEXT:    vmovaps (%rsp), %xmm1 # 16-byte Reload
3033 ; AVX1-ONLY-NEXT:    vmovlps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
3034 ; AVX1-ONLY-NEXT:    # xmm1 = mem[0,1],xmm1[2,3]
3035 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3036 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3037 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3038 ; AVX1-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
3039 ; AVX1-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
3040 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm2[1],xmm10[1]
3041 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3042 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3043 ; AVX1-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
3044 ; AVX1-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
3045 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3046 ; AVX1-ONLY-NEXT:    vmovlps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
3047 ; AVX1-ONLY-NEXT:    # xmm1 = mem[0,1],xmm1[2,3]
3048 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3049 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3050 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3051 ; AVX1-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
3052 ; AVX1-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
3053 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm3[1],xmm11[1]
3054 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3055 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3056 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3057 ; AVX1-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
3058 ; AVX1-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
3059 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3060 ; AVX1-ONLY-NEXT:    vmovlps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
3061 ; AVX1-ONLY-NEXT:    # xmm1 = mem[0,1],xmm1[2,3]
3062 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3063 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3064 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3065 ; AVX1-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
3066 ; AVX1-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
3067 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm4[1],xmm12[1]
3068 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm3 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3069 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3070 ; AVX1-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
3071 ; AVX1-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
3072 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3073 ; AVX1-ONLY-NEXT:    vmovlps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
3074 ; AVX1-ONLY-NEXT:    # xmm1 = mem[0,1],xmm1[2,3]
3075 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3076 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3077 ; AVX1-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
3078 ; AVX1-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
3079 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm5[1],xmm13[1]
3080 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm10 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3081 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3082 ; AVX1-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
3083 ; AVX1-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
3084 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3085 ; AVX1-ONLY-NEXT:    vmovlps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
3086 ; AVX1-ONLY-NEXT:    # xmm1 = mem[0,1],xmm1[2,3]
3087 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3088 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3089 ; AVX1-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
3090 ; AVX1-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
3091 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm6[1],xmm14[1]
3092 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm11 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3093 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3094 ; AVX1-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
3095 ; AVX1-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
3096 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3097 ; AVX1-ONLY-NEXT:    vmovlps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
3098 ; AVX1-ONLY-NEXT:    # xmm1 = mem[0,1],xmm1[2,3]
3099 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm6 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3100 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3101 ; AVX1-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
3102 ; AVX1-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
3103 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm7[1],xmm15[1]
3104 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm12 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3105 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3106 ; AVX1-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
3107 ; AVX1-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
3108 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3109 ; AVX1-ONLY-NEXT:    vmovlps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
3110 ; AVX1-ONLY-NEXT:    # xmm1 = mem[0,1],xmm1[2,3]
3111 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm7 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3112 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3113 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 464(%rsi)
3114 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3115 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 448(%rsi)
3116 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3117 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 256(%rsi)
3118 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3119 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 384(%rsi)
3120 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3121 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 320(%rsi)
3122 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3123 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 192(%rsi)
3124 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3125 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 128(%rsi)
3126 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3127 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 64(%rsi)
3128 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3129 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, (%rsi)
3130 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3131 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 272(%rsi)
3132 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3133 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 400(%rsi)
3134 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3135 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 336(%rsi)
3136 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3137 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 208(%rsi)
3138 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3139 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 144(%rsi)
3140 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3141 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 80(%rsi)
3142 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3143 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 16(%rsi)
3144 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3145 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 496(%rsi)
3146 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3147 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 480(%rsi)
3148 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3149 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 32(%rsi)
3150 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3151 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 416(%rsi)
3152 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3153 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 352(%rsi)
3154 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3155 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 288(%rsi)
3156 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3157 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 224(%rsi)
3158 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3159 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 160(%rsi)
3160 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3161 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 96(%rsi)
3162 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3163 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 48(%rsi)
3164 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3165 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 432(%rsi)
3166 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3167 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 368(%rsi)
3168 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3169 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 304(%rsi)
3170 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3171 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 240(%rsi)
3172 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3173 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 176(%rsi)
3174 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3175 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 112(%rsi)
3176 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3177 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 128(%rdx)
3178 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3179 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 144(%rdx)
3180 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3181 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 256(%rdx)
3182 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3183 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 272(%rdx)
3184 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3185 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 64(%rdx)
3186 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3187 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 80(%rdx)
3188 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3189 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, (%rdx)
3190 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3191 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 16(%rdx)
3192 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3193 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 192(%rdx)
3194 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3195 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 208(%rdx)
3196 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3197 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 320(%rdx)
3198 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3199 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 336(%rdx)
3200 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3201 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 384(%rdx)
3202 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3203 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 400(%rdx)
3204 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3205 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 448(%rdx)
3206 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3207 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 464(%rdx)
3208 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3209 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 96(%rdx)
3210 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3211 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 112(%rdx)
3212 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3213 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 32(%rdx)
3214 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3215 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 48(%rdx)
3216 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3217 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 160(%rdx)
3218 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3219 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 176(%rdx)
3220 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3221 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 224(%rdx)
3222 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3223 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 240(%rdx)
3224 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3225 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 288(%rdx)
3226 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3227 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 304(%rdx)
3228 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3229 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 352(%rdx)
3230 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3231 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 368(%rdx)
3232 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3233 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 416(%rdx)
3234 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3235 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 432(%rdx)
3236 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3237 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 480(%rdx)
3238 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3239 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 496(%rdx)
3240 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3241 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 448(%rcx)
3242 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3243 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 384(%rcx)
3244 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3245 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 320(%rcx)
3246 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3247 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 256(%rcx)
3248 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3249 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 192(%rcx)
3250 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3251 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 128(%rcx)
3252 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3253 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 64(%rcx)
3254 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3255 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, (%rcx)
3256 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3257 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 480(%rcx)
3258 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3259 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 416(%rcx)
3260 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3261 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 352(%rcx)
3262 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3263 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 288(%rcx)
3264 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3265 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 224(%rcx)
3266 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3267 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 160(%rcx)
3268 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3269 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 96(%rcx)
3270 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3271 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 32(%rcx)
3272 ; AVX1-ONLY-NEXT:    vmovaps %ymm7, 480(%r8)
3273 ; AVX1-ONLY-NEXT:    vmovaps %ymm12, 448(%r8)
3274 ; AVX1-ONLY-NEXT:    vmovaps %ymm6, 416(%r8)
3275 ; AVX1-ONLY-NEXT:    vmovaps %ymm11, 384(%r8)
3276 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, 352(%r8)
3277 ; AVX1-ONLY-NEXT:    vmovaps %ymm10, 320(%r8)
3278 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, 288(%r8)
3279 ; AVX1-ONLY-NEXT:    vmovaps %ymm3, 256(%r8)
3280 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3281 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 224(%r8)
3282 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3283 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 192(%r8)
3284 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3285 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 160(%r8)
3286 ; AVX1-ONLY-NEXT:    vmovaps %ymm2, 128(%r8)
3287 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3288 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 96(%r8)
3289 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3290 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 64(%r8)
3291 ; AVX1-ONLY-NEXT:    vmovaps %ymm8, 32(%r8)
3292 ; AVX1-ONLY-NEXT:    vmovaps %ymm9, (%r8)
3293 ; AVX1-ONLY-NEXT:    addq $2728, %rsp # imm = 0xAA8
3294 ; AVX1-ONLY-NEXT:    vzeroupper
3295 ; AVX1-ONLY-NEXT:    retq
3297 ; AVX2-ONLY-LABEL: load_i64_stride4_vf64:
3298 ; AVX2-ONLY:       # %bb.0:
3299 ; AVX2-ONLY-NEXT:    subq $3016, %rsp # imm = 0xBC8
3300 ; AVX2-ONLY-NEXT:    vmovaps 160(%rdi), %xmm0
3301 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 224(%rdi), %ymm0, %ymm0
3302 ; AVX2-ONLY-NEXT:    vmovaps 128(%rdi), %xmm1
3303 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 192(%rdi), %ymm1, %ymm1
3304 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
3305 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3306 ; AVX2-ONLY-NEXT:    vmovaps 416(%rdi), %xmm2
3307 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 480(%rdi), %ymm2, %ymm2
3308 ; AVX2-ONLY-NEXT:    vmovaps 384(%rdi), %xmm3
3309 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 448(%rdi), %ymm3, %ymm3
3310 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
3311 ; AVX2-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3312 ; AVX2-ONLY-NEXT:    vmovaps 672(%rdi), %xmm4
3313 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 736(%rdi), %ymm4, %ymm4
3314 ; AVX2-ONLY-NEXT:    vmovaps 640(%rdi), %xmm5
3315 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 704(%rdi), %ymm5, %ymm5
3316 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm6 = ymm5[0],ymm4[0],ymm5[2],ymm4[2]
3317 ; AVX2-ONLY-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3318 ; AVX2-ONLY-NEXT:    vmovaps 928(%rdi), %xmm6
3319 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 992(%rdi), %ymm6, %ymm6
3320 ; AVX2-ONLY-NEXT:    vmovaps 896(%rdi), %xmm7
3321 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 960(%rdi), %ymm7, %ymm7
3322 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm8 = ymm7[0],ymm6[0],ymm7[2],ymm6[2]
3323 ; AVX2-ONLY-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3324 ; AVX2-ONLY-NEXT:    vmovaps 1184(%rdi), %xmm8
3325 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 1248(%rdi), %ymm8, %ymm8
3326 ; AVX2-ONLY-NEXT:    vmovaps 1152(%rdi), %xmm9
3327 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 1216(%rdi), %ymm9, %ymm9
3328 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm10 = ymm9[0],ymm8[0],ymm9[2],ymm8[2]
3329 ; AVX2-ONLY-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3330 ; AVX2-ONLY-NEXT:    vmovaps 1440(%rdi), %xmm10
3331 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 1504(%rdi), %ymm10, %ymm10
3332 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
3333 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3334 ; AVX2-ONLY-NEXT:    vmovaps 1408(%rdi), %xmm0
3335 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 1472(%rdi), %ymm0, %ymm0
3336 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm3[1],ymm2[1],ymm3[3],ymm2[3]
3337 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3338 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm0[0],ymm10[0],ymm0[2],ymm10[2]
3339 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3340 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm5[1],ymm4[1],ymm5[3],ymm4[3]
3341 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3342 ; AVX2-ONLY-NEXT:    vmovaps 1696(%rdi), %xmm1
3343 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 1760(%rdi), %ymm1, %ymm1
3344 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm7[1],ymm6[1],ymm7[3],ymm6[3]
3345 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3346 ; AVX2-ONLY-NEXT:    vmovaps 1664(%rdi), %xmm2
3347 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 1728(%rdi), %ymm2, %ymm2
3348 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm3 = ymm9[1],ymm8[1],ymm9[3],ymm8[3]
3349 ; AVX2-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3350 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm2[0],ymm1[0],ymm2[2],ymm1[2]
3351 ; AVX2-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3352 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm10[1],ymm0[3],ymm10[3]
3353 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3354 ; AVX2-ONLY-NEXT:    vmovaps 1952(%rdi), %xmm0
3355 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 2016(%rdi), %ymm0, %ymm0
3356 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm1[1],ymm2[3],ymm1[3]
3357 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3358 ; AVX2-ONLY-NEXT:    vmovaps 1920(%rdi), %xmm1
3359 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 1984(%rdi), %ymm1, %ymm1
3360 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
3361 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3362 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
3363 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3364 ; AVX2-ONLY-NEXT:    vmovaps 32(%rdi), %xmm0
3365 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 96(%rdi), %ymm0, %ymm0
3366 ; AVX2-ONLY-NEXT:    vmovaps (%rdi), %xmm1
3367 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 64(%rdi), %ymm1, %ymm1
3368 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
3369 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3370 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
3371 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3372 ; AVX2-ONLY-NEXT:    vmovaps 288(%rdi), %xmm0
3373 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 352(%rdi), %ymm0, %ymm0
3374 ; AVX2-ONLY-NEXT:    vmovaps 256(%rdi), %xmm1
3375 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 320(%rdi), %ymm1, %ymm1
3376 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
3377 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3378 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
3379 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3380 ; AVX2-ONLY-NEXT:    vmovaps 544(%rdi), %xmm0
3381 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 608(%rdi), %ymm0, %ymm0
3382 ; AVX2-ONLY-NEXT:    vmovaps 512(%rdi), %xmm1
3383 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 576(%rdi), %ymm1, %ymm1
3384 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
3385 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3386 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
3387 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3388 ; AVX2-ONLY-NEXT:    vmovaps 800(%rdi), %xmm0
3389 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 864(%rdi), %ymm0, %ymm0
3390 ; AVX2-ONLY-NEXT:    vmovaps 768(%rdi), %xmm1
3391 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 832(%rdi), %ymm1, %ymm1
3392 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
3393 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3394 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
3395 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3396 ; AVX2-ONLY-NEXT:    vmovaps 1056(%rdi), %xmm0
3397 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 1120(%rdi), %ymm0, %ymm0
3398 ; AVX2-ONLY-NEXT:    vmovaps 1024(%rdi), %xmm1
3399 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 1088(%rdi), %ymm1, %ymm1
3400 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
3401 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3402 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
3403 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3404 ; AVX2-ONLY-NEXT:    vmovaps 1312(%rdi), %xmm0
3405 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 1376(%rdi), %ymm0, %ymm0
3406 ; AVX2-ONLY-NEXT:    vmovaps 1280(%rdi), %xmm1
3407 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 1344(%rdi), %ymm1, %ymm1
3408 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
3409 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3410 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
3411 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3412 ; AVX2-ONLY-NEXT:    vmovaps 1568(%rdi), %xmm0
3413 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 1632(%rdi), %ymm0, %ymm0
3414 ; AVX2-ONLY-NEXT:    vmovaps 1536(%rdi), %xmm1
3415 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 1600(%rdi), %ymm1, %ymm1
3416 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
3417 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3418 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
3419 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3420 ; AVX2-ONLY-NEXT:    vmovaps 1824(%rdi), %xmm0
3421 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 1888(%rdi), %ymm0, %ymm0
3422 ; AVX2-ONLY-NEXT:    vmovaps 1792(%rdi), %xmm1
3423 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 1856(%rdi), %ymm1, %ymm1
3424 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
3425 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3426 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
3427 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3428 ; AVX2-ONLY-NEXT:    vmovaps 160(%rdi), %ymm2
3429 ; AVX2-ONLY-NEXT:    vmovups %ymm2, (%rsp) # 32-byte Spill
3430 ; AVX2-ONLY-NEXT:    vmovaps 128(%rdi), %ymm3
3431 ; AVX2-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3432 ; AVX2-ONLY-NEXT:    vmovaps 224(%rdi), %ymm1
3433 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3434 ; AVX2-ONLY-NEXT:    vmovaps 192(%rdi), %ymm0
3435 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3436 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
3437 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
3438 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
3439 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3440 ; AVX2-ONLY-NEXT:    vmovaps 416(%rdi), %ymm2
3441 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3442 ; AVX2-ONLY-NEXT:    vmovaps 384(%rdi), %ymm3
3443 ; AVX2-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3444 ; AVX2-ONLY-NEXT:    vmovaps 480(%rdi), %ymm1
3445 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3446 ; AVX2-ONLY-NEXT:    vmovaps 448(%rdi), %ymm0
3447 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3448 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
3449 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
3450 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
3451 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3452 ; AVX2-ONLY-NEXT:    vmovaps 672(%rdi), %ymm2
3453 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3454 ; AVX2-ONLY-NEXT:    vmovaps 640(%rdi), %ymm3
3455 ; AVX2-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3456 ; AVX2-ONLY-NEXT:    vmovaps 736(%rdi), %ymm1
3457 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3458 ; AVX2-ONLY-NEXT:    vmovaps 704(%rdi), %ymm0
3459 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3460 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
3461 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
3462 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
3463 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3464 ; AVX2-ONLY-NEXT:    vmovaps 928(%rdi), %ymm2
3465 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3466 ; AVX2-ONLY-NEXT:    vmovaps 896(%rdi), %ymm3
3467 ; AVX2-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3468 ; AVX2-ONLY-NEXT:    vmovaps 992(%rdi), %ymm1
3469 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3470 ; AVX2-ONLY-NEXT:    vmovaps 960(%rdi), %ymm0
3471 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3472 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
3473 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
3474 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
3475 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3476 ; AVX2-ONLY-NEXT:    vmovaps 1184(%rdi), %ymm2
3477 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3478 ; AVX2-ONLY-NEXT:    vmovaps 1152(%rdi), %ymm3
3479 ; AVX2-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3480 ; AVX2-ONLY-NEXT:    vmovaps 1248(%rdi), %ymm1
3481 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3482 ; AVX2-ONLY-NEXT:    vmovaps 1216(%rdi), %ymm0
3483 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3484 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
3485 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
3486 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
3487 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3488 ; AVX2-ONLY-NEXT:    vmovaps 1440(%rdi), %ymm2
3489 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3490 ; AVX2-ONLY-NEXT:    vmovaps 1408(%rdi), %ymm3
3491 ; AVX2-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3492 ; AVX2-ONLY-NEXT:    vmovaps 1504(%rdi), %ymm1
3493 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3494 ; AVX2-ONLY-NEXT:    vmovaps 1472(%rdi), %ymm0
3495 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3496 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
3497 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
3498 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
3499 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3500 ; AVX2-ONLY-NEXT:    vmovaps 1696(%rdi), %ymm2
3501 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3502 ; AVX2-ONLY-NEXT:    vmovaps 1664(%rdi), %ymm3
3503 ; AVX2-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3504 ; AVX2-ONLY-NEXT:    vmovaps 1760(%rdi), %ymm1
3505 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3506 ; AVX2-ONLY-NEXT:    vmovaps 1728(%rdi), %ymm0
3507 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3508 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
3509 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
3510 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
3511 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3512 ; AVX2-ONLY-NEXT:    vmovaps 1952(%rdi), %ymm2
3513 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3514 ; AVX2-ONLY-NEXT:    vmovaps 1920(%rdi), %ymm3
3515 ; AVX2-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3516 ; AVX2-ONLY-NEXT:    vmovaps 2016(%rdi), %ymm1
3517 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3518 ; AVX2-ONLY-NEXT:    vmovaps 1984(%rdi), %ymm0
3519 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3520 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
3521 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
3522 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
3523 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3524 ; AVX2-ONLY-NEXT:    vmovaps 32(%rdi), %ymm2
3525 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3526 ; AVX2-ONLY-NEXT:    vmovaps (%rdi), %ymm3
3527 ; AVX2-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3528 ; AVX2-ONLY-NEXT:    vmovaps 96(%rdi), %ymm1
3529 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3530 ; AVX2-ONLY-NEXT:    vmovaps 64(%rdi), %ymm0
3531 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3532 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
3533 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
3534 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
3535 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3536 ; AVX2-ONLY-NEXT:    vmovaps 288(%rdi), %ymm2
3537 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3538 ; AVX2-ONLY-NEXT:    vmovaps 256(%rdi), %ymm3
3539 ; AVX2-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3540 ; AVX2-ONLY-NEXT:    vmovaps 352(%rdi), %ymm1
3541 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3542 ; AVX2-ONLY-NEXT:    vmovaps 320(%rdi), %ymm0
3543 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3544 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
3545 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
3546 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
3547 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3548 ; AVX2-ONLY-NEXT:    vmovaps 544(%rdi), %ymm2
3549 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3550 ; AVX2-ONLY-NEXT:    vmovaps 512(%rdi), %ymm3
3551 ; AVX2-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3552 ; AVX2-ONLY-NEXT:    vmovaps 608(%rdi), %ymm0
3553 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3554 ; AVX2-ONLY-NEXT:    vmovaps 576(%rdi), %ymm15
3555 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm15[0],ymm0[0],ymm15[2],ymm0[2]
3556 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
3557 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
3558 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3559 ; AVX2-ONLY-NEXT:    vmovaps 800(%rdi), %ymm2
3560 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3561 ; AVX2-ONLY-NEXT:    vmovaps 768(%rdi), %ymm1
3562 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3563 ; AVX2-ONLY-NEXT:    vmovaps 864(%rdi), %ymm14
3564 ; AVX2-ONLY-NEXT:    vmovaps 832(%rdi), %ymm11
3565 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm11[0],ymm14[0],ymm11[2],ymm14[2]
3566 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
3567 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
3568 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3569 ; AVX2-ONLY-NEXT:    vmovaps 1056(%rdi), %ymm2
3570 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3571 ; AVX2-ONLY-NEXT:    vmovaps 1024(%rdi), %ymm1
3572 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3573 ; AVX2-ONLY-NEXT:    vmovaps 1120(%rdi), %ymm10
3574 ; AVX2-ONLY-NEXT:    vmovaps 1088(%rdi), %ymm8
3575 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm8[0],ymm10[0],ymm8[2],ymm10[2]
3576 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
3577 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
3578 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3579 ; AVX2-ONLY-NEXT:    vmovaps 1312(%rdi), %ymm2
3580 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3581 ; AVX2-ONLY-NEXT:    vmovaps 1280(%rdi), %ymm1
3582 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3583 ; AVX2-ONLY-NEXT:    vmovaps 1376(%rdi), %ymm7
3584 ; AVX2-ONLY-NEXT:    vmovaps 1344(%rdi), %ymm5
3585 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm5[0],ymm7[0],ymm5[2],ymm7[2]
3586 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
3587 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
3588 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3589 ; AVX2-ONLY-NEXT:    vmovaps 1568(%rdi), %ymm1
3590 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3591 ; AVX2-ONLY-NEXT:    vmovaps 1536(%rdi), %ymm9
3592 ; AVX2-ONLY-NEXT:    vmovaps 1632(%rdi), %ymm4
3593 ; AVX2-ONLY-NEXT:    vmovaps 1600(%rdi), %ymm3
3594 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm3[0],ymm4[0],ymm3[2],ymm4[2]
3595 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm9[0],ymm1[0],ymm9[2],ymm1[2]
3596 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm2[2,3],ymm0[2,3]
3597 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3598 ; AVX2-ONLY-NEXT:    vmovaps 1824(%rdi), %ymm12
3599 ; AVX2-ONLY-NEXT:    vmovaps 1792(%rdi), %ymm6
3600 ; AVX2-ONLY-NEXT:    vmovaps 1888(%rdi), %ymm2
3601 ; AVX2-ONLY-NEXT:    vmovaps 1856(%rdi), %ymm1
3602 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
3603 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm13 = ymm6[0],ymm12[0],ymm6[2],ymm12[2]
3604 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm13[2,3],ymm0[2,3]
3605 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3606 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3607 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
3608 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
3609 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
3610 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm13 # 32-byte Folded Reload
3611 ; AVX2-ONLY-NEXT:    # ymm13 = ymm13[1],mem[1],ymm13[3],mem[3]
3612 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm13[2,3],ymm0[2,3]
3613 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3614 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3615 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
3616 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
3617 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
3618 ; AVX2-ONLY-NEXT:    vunpckhpd (%rsp), %ymm13, %ymm13 # 32-byte Folded Reload
3619 ; AVX2-ONLY-NEXT:    # ymm13 = ymm13[1],mem[1],ymm13[3],mem[3]
3620 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm13[2,3],ymm0[2,3]
3621 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3622 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3623 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
3624 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
3625 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
3626 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm13 # 32-byte Folded Reload
3627 ; AVX2-ONLY-NEXT:    # ymm13 = ymm13[1],mem[1],ymm13[3],mem[3]
3628 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm13[2,3],ymm0[2,3]
3629 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3630 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3631 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
3632 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
3633 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
3634 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm13 # 32-byte Folded Reload
3635 ; AVX2-ONLY-NEXT:    # ymm13 = ymm13[1],mem[1],ymm13[3],mem[3]
3636 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm13[2,3],ymm0[2,3]
3637 ; AVX2-ONLY-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
3638 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm0 # 32-byte Folded Reload
3639 ; AVX2-ONLY-NEXT:    # ymm0 = ymm15[1],mem[1],ymm15[3],mem[3]
3640 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
3641 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm13 # 32-byte Folded Reload
3642 ; AVX2-ONLY-NEXT:    # ymm13 = ymm13[1],mem[1],ymm13[3],mem[3]
3643 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm13[2,3],ymm0[2,3]
3644 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3645 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3646 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
3647 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
3648 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
3649 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm13 # 32-byte Folded Reload
3650 ; AVX2-ONLY-NEXT:    # ymm13 = ymm13[1],mem[1],ymm13[3],mem[3]
3651 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm13[2,3],ymm0[2,3]
3652 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3653 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm11[1],ymm14[1],ymm11[3],ymm14[3]
3654 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload
3655 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm11 # 32-byte Folded Reload
3656 ; AVX2-ONLY-NEXT:    # ymm11 = ymm11[1],mem[1],ymm11[3],mem[3]
3657 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm11[2,3],ymm0[2,3]
3658 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3659 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3660 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
3661 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
3662 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload
3663 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm11 # 32-byte Folded Reload
3664 ; AVX2-ONLY-NEXT:    # ymm11 = ymm11[1],mem[1],ymm11[3],mem[3]
3665 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm15 = ymm11[2,3],ymm0[2,3]
3666 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm8[1],ymm10[1],ymm8[3],ymm10[3]
3667 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
3668 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
3669 ; AVX2-ONLY-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
3670 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm14 = ymm8[2,3],ymm0[2,3]
3671 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3672 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
3673 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
3674 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
3675 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
3676 ; AVX2-ONLY-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
3677 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm11 = ymm8[2,3],ymm0[2,3]
3678 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm5[1],ymm7[1],ymm5[3],ymm7[3]
3679 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
3680 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm5 # 32-byte Folded Reload
3681 ; AVX2-ONLY-NEXT:    # ymm5 = ymm5[1],mem[1],ymm5[3],mem[3]
3682 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm10 = ymm5[2,3],ymm0[2,3]
3683 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3684 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
3685 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
3686 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
3687 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm5 # 32-byte Folded Reload
3688 ; AVX2-ONLY-NEXT:    # ymm5 = ymm5[1],mem[1],ymm5[3],mem[3]
3689 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm13 = ymm5[2,3],ymm0[2,3]
3690 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm3[1],ymm4[1],ymm3[3],ymm4[3]
3691 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm3 # 32-byte Folded Reload
3692 ; AVX2-ONLY-NEXT:    # ymm3 = ymm9[1],mem[1],ymm9[3],mem[3]
3693 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm7 = ymm3[2,3],ymm0[2,3]
3694 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3695 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
3696 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
3697 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3698 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
3699 ; AVX2-ONLY-NEXT:    # ymm3 = ymm3[1],mem[1],ymm3[3],mem[3]
3700 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm5 = ymm3[2,3],ymm0[2,3]
3701 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
3702 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm6[1],ymm12[1],ymm6[3],ymm12[3]
3703 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm6 = ymm1[2,3],ymm0[2,3]
3704 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3705 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
3706 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
3707 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3708 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
3709 ; AVX2-ONLY-NEXT:    # ymm1 = ymm1[1],mem[1],ymm1[3],mem[3]
3710 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
3711 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3712 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 448(%rsi)
3713 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3714 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 384(%rsi)
3715 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3716 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 320(%rsi)
3717 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3718 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 256(%rsi)
3719 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3720 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 192(%rsi)
3721 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3722 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 128(%rsi)
3723 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3724 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 64(%rsi)
3725 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3726 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, (%rsi)
3727 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3728 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 480(%rsi)
3729 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3730 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 416(%rsi)
3731 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3732 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 352(%rsi)
3733 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3734 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 288(%rsi)
3735 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3736 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 224(%rsi)
3737 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3738 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 160(%rsi)
3739 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3740 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 96(%rsi)
3741 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3742 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 32(%rsi)
3743 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3744 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 448(%rdx)
3745 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3746 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 384(%rdx)
3747 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3748 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 320(%rdx)
3749 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3750 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 256(%rdx)
3751 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3752 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 192(%rdx)
3753 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3754 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 128(%rdx)
3755 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3756 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 64(%rdx)
3757 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3758 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, (%rdx)
3759 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3760 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 480(%rdx)
3761 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3762 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 416(%rdx)
3763 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3764 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 352(%rdx)
3765 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3766 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 288(%rdx)
3767 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3768 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 224(%rdx)
3769 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3770 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 160(%rdx)
3771 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3772 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 96(%rdx)
3773 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3774 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 32(%rdx)
3775 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3776 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 448(%rcx)
3777 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3778 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 384(%rcx)
3779 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3780 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 320(%rcx)
3781 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3782 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 256(%rcx)
3783 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3784 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 192(%rcx)
3785 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3786 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 128(%rcx)
3787 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3788 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 64(%rcx)
3789 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3790 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, (%rcx)
3791 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3792 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 480(%rcx)
3793 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3794 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 416(%rcx)
3795 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3796 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 352(%rcx)
3797 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3798 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 288(%rcx)
3799 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3800 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 224(%rcx)
3801 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3802 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 160(%rcx)
3803 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3804 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 96(%rcx)
3805 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3806 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 32(%rcx)
3807 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 480(%r8)
3808 ; AVX2-ONLY-NEXT:    vmovaps %ymm6, 448(%r8)
3809 ; AVX2-ONLY-NEXT:    vmovaps %ymm5, 416(%r8)
3810 ; AVX2-ONLY-NEXT:    vmovaps %ymm7, 384(%r8)
3811 ; AVX2-ONLY-NEXT:    vmovaps %ymm13, 352(%r8)
3812 ; AVX2-ONLY-NEXT:    vmovaps %ymm10, 320(%r8)
3813 ; AVX2-ONLY-NEXT:    vmovaps %ymm11, 288(%r8)
3814 ; AVX2-ONLY-NEXT:    vmovaps %ymm14, 256(%r8)
3815 ; AVX2-ONLY-NEXT:    vmovaps %ymm15, 224(%r8)
3816 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3817 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 192(%r8)
3818 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3819 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 160(%r8)
3820 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3821 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 128(%r8)
3822 ; AVX2-ONLY-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
3823 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 96(%r8)
3824 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3825 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 64(%r8)
3826 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3827 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 32(%r8)
3828 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3829 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, (%r8)
3830 ; AVX2-ONLY-NEXT:    addq $3016, %rsp # imm = 0xBC8
3831 ; AVX2-ONLY-NEXT:    vzeroupper
3832 ; AVX2-ONLY-NEXT:    retq
3834 ; AVX512-LABEL: load_i64_stride4_vf64:
3835 ; AVX512:       # %bb.0:
3836 ; AVX512-NEXT:    subq $2056, %rsp # imm = 0x808
3837 ; AVX512-NEXT:    vmovdqa64 1472(%rdi), %zmm24
3838 ; AVX512-NEXT:    vmovdqa64 1408(%rdi), %zmm0
3839 ; AVX512-NEXT:    vmovdqa64 832(%rdi), %zmm26
3840 ; AVX512-NEXT:    vmovdqa64 768(%rdi), %zmm1
3841 ; AVX512-NEXT:    vmovdqa64 960(%rdi), %zmm28
3842 ; AVX512-NEXT:    vmovdqa64 896(%rdi), %zmm2
3843 ; AVX512-NEXT:    vmovdqa64 576(%rdi), %zmm25
3844 ; AVX512-NEXT:    vmovdqa64 512(%rdi), %zmm3
3845 ; AVX512-NEXT:    vmovdqa64 704(%rdi), %zmm27
3846 ; AVX512-NEXT:    vmovdqa64 640(%rdi), %zmm4
3847 ; AVX512-NEXT:    vmovdqa64 320(%rdi), %zmm30
3848 ; AVX512-NEXT:    vmovdqa64 256(%rdi), %zmm5
3849 ; AVX512-NEXT:    vmovdqa64 448(%rdi), %zmm29
3850 ; AVX512-NEXT:    vmovdqa64 384(%rdi), %zmm6
3851 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm9 = [0,4,8,12,0,4,8,12]
3852 ; AVX512-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3]
3853 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm7
3854 ; AVX512-NEXT:    vpermt2q %zmm29, %zmm9, %zmm7
3855 ; AVX512-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3856 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm7
3857 ; AVX512-NEXT:    vpermt2q %zmm30, %zmm9, %zmm7
3858 ; AVX512-NEXT:    vmovdqu64 %zmm7, (%rsp) # 64-byte Spill
3859 ; AVX512-NEXT:    vmovdqa64 %zmm4, %zmm7
3860 ; AVX512-NEXT:    vpermt2q %zmm27, %zmm9, %zmm7
3861 ; AVX512-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3862 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm7
3863 ; AVX512-NEXT:    vpermt2q %zmm25, %zmm9, %zmm7
3864 ; AVX512-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3865 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm7
3866 ; AVX512-NEXT:    vpermt2q %zmm28, %zmm9, %zmm7
3867 ; AVX512-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3868 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm7
3869 ; AVX512-NEXT:    vpermt2q %zmm26, %zmm9, %zmm7
3870 ; AVX512-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3871 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm7
3872 ; AVX512-NEXT:    vpermt2q %zmm24, %zmm9, %zmm7
3873 ; AVX512-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3874 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm15 = [1,5,9,13,1,5,9,13]
3875 ; AVX512-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3]
3876 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm7
3877 ; AVX512-NEXT:    vpermt2q %zmm29, %zmm15, %zmm7
3878 ; AVX512-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3879 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm7
3880 ; AVX512-NEXT:    vpermt2q %zmm30, %zmm15, %zmm7
3881 ; AVX512-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3882 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm7
3883 ; AVX512-NEXT:    vpermt2q %zmm28, %zmm15, %zmm7
3884 ; AVX512-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3885 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm7
3886 ; AVX512-NEXT:    vpermt2q %zmm26, %zmm15, %zmm7
3887 ; AVX512-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3888 ; AVX512-NEXT:    vmovdqa64 %zmm4, %zmm7
3889 ; AVX512-NEXT:    vpermt2q %zmm27, %zmm15, %zmm7
3890 ; AVX512-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3891 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm7
3892 ; AVX512-NEXT:    vpermt2q %zmm25, %zmm15, %zmm7
3893 ; AVX512-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3894 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm22 = [2,6,10,14,2,6,10,14]
3895 ; AVX512-NEXT:    # zmm22 = mem[0,1,2,3,0,1,2,3]
3896 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm7
3897 ; AVX512-NEXT:    vpermt2q %zmm29, %zmm22, %zmm7
3898 ; AVX512-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3899 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm31 = [3,7,11,15,3,7,11,15]
3900 ; AVX512-NEXT:    # zmm31 = mem[0,1,2,3,0,1,2,3]
3901 ; AVX512-NEXT:    vpermt2q %zmm29, %zmm31, %zmm6
3902 ; AVX512-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3903 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm6
3904 ; AVX512-NEXT:    vpermt2q %zmm30, %zmm22, %zmm6
3905 ; AVX512-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3906 ; AVX512-NEXT:    vpermt2q %zmm30, %zmm31, %zmm5
3907 ; AVX512-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3908 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm5
3909 ; AVX512-NEXT:    vpermt2q %zmm28, %zmm22, %zmm5
3910 ; AVX512-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3911 ; AVX512-NEXT:    vpermt2q %zmm28, %zmm31, %zmm2
3912 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3913 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm2
3914 ; AVX512-NEXT:    vpermt2q %zmm26, %zmm22, %zmm2
3915 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3916 ; AVX512-NEXT:    vpermt2q %zmm26, %zmm31, %zmm1
3917 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3918 ; AVX512-NEXT:    vmovdqa64 %zmm4, %zmm1
3919 ; AVX512-NEXT:    vpermt2q %zmm27, %zmm22, %zmm1
3920 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3921 ; AVX512-NEXT:    vpermt2q %zmm27, %zmm31, %zmm4
3922 ; AVX512-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3923 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm1
3924 ; AVX512-NEXT:    vpermt2q %zmm25, %zmm22, %zmm1
3925 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3926 ; AVX512-NEXT:    vpermt2q %zmm25, %zmm31, %zmm3
3927 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3928 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm1
3929 ; AVX512-NEXT:    vpermt2q %zmm24, %zmm15, %zmm1
3930 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3931 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm1
3932 ; AVX512-NEXT:    vpermt2q %zmm24, %zmm22, %zmm1
3933 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3934 ; AVX512-NEXT:    vpermt2q %zmm24, %zmm31, %zmm0
3935 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3936 ; AVX512-NEXT:    vmovdqa64 1344(%rdi), %zmm0
3937 ; AVX512-NEXT:    vmovdqa64 1280(%rdi), %zmm24
3938 ; AVX512-NEXT:    vmovdqa64 %zmm24, %zmm1
3939 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm9, %zmm1
3940 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3941 ; AVX512-NEXT:    vmovdqa64 %zmm24, %zmm1
3942 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm15, %zmm1
3943 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3944 ; AVX512-NEXT:    vmovdqa64 %zmm24, %zmm1
3945 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm22, %zmm1
3946 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3947 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm31, %zmm24
3948 ; AVX512-NEXT:    vmovdqa64 1216(%rdi), %zmm0
3949 ; AVX512-NEXT:    vmovdqa64 1152(%rdi), %zmm28
3950 ; AVX512-NEXT:    vmovdqa64 %zmm28, %zmm30
3951 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm9, %zmm30
3952 ; AVX512-NEXT:    vmovdqa64 %zmm28, %zmm1
3953 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm15, %zmm1
3954 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3955 ; AVX512-NEXT:    vmovdqa64 %zmm28, %zmm1
3956 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm22, %zmm1
3957 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3958 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm31, %zmm28
3959 ; AVX512-NEXT:    vmovdqa64 1088(%rdi), %zmm0
3960 ; AVX512-NEXT:    vmovdqa64 1024(%rdi), %zmm23
3961 ; AVX512-NEXT:    vmovdqa64 %zmm23, %zmm26
3962 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm9, %zmm26
3963 ; AVX512-NEXT:    vmovdqa64 %zmm23, %zmm29
3964 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm15, %zmm29
3965 ; AVX512-NEXT:    vmovdqa64 %zmm23, %zmm1
3966 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm22, %zmm1
3967 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3968 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm31, %zmm23
3969 ; AVX512-NEXT:    vmovdqa64 1984(%rdi), %zmm0
3970 ; AVX512-NEXT:    vmovdqa64 1920(%rdi), %zmm13
3971 ; AVX512-NEXT:    vmovdqa64 %zmm13, %zmm20
3972 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm9, %zmm20
3973 ; AVX512-NEXT:    vmovdqa64 %zmm13, %zmm25
3974 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm15, %zmm25
3975 ; AVX512-NEXT:    vmovdqa64 %zmm13, %zmm27
3976 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm22, %zmm27
3977 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm31, %zmm13
3978 ; AVX512-NEXT:    vmovdqa64 1856(%rdi), %zmm0
3979 ; AVX512-NEXT:    vmovdqa64 1792(%rdi), %zmm11
3980 ; AVX512-NEXT:    vmovdqa64 %zmm11, %zmm18
3981 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm9, %zmm18
3982 ; AVX512-NEXT:    vmovdqa64 %zmm11, %zmm19
3983 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm15, %zmm19
3984 ; AVX512-NEXT:    vmovdqa64 %zmm11, %zmm21
3985 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm22, %zmm21
3986 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm31, %zmm11
3987 ; AVX512-NEXT:    vmovdqa64 1728(%rdi), %zmm0
3988 ; AVX512-NEXT:    vmovdqa64 1664(%rdi), %zmm8
3989 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm14
3990 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm9, %zmm14
3991 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm16
3992 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm15, %zmm16
3993 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm17
3994 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm22, %zmm17
3995 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm31, %zmm8
3996 ; AVX512-NEXT:    vmovdqa64 1600(%rdi), %zmm0
3997 ; AVX512-NEXT:    vmovdqa64 1536(%rdi), %zmm3
3998 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm6
3999 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm9, %zmm6
4000 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm7
4001 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm15, %zmm7
4002 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm12
4003 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm22, %zmm12
4004 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm31, %zmm3
4005 ; AVX512-NEXT:    vmovdqa64 128(%rdi), %zmm2
4006 ; AVX512-NEXT:    vmovdqa64 192(%rdi), %zmm0
4007 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm4
4008 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm9, %zmm4
4009 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm5
4010 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm15, %zmm5
4011 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm10
4012 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm22, %zmm10
4013 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm31, %zmm2
4014 ; AVX512-NEXT:    vmovdqa64 (%rdi), %zmm1
4015 ; AVX512-NEXT:    vmovdqa64 64(%rdi), %zmm0
4016 ; AVX512-NEXT:    vpermi2q %zmm0, %zmm1, %zmm9
4017 ; AVX512-NEXT:    vpermi2q %zmm0, %zmm1, %zmm15
4018 ; AVX512-NEXT:    vpermi2q %zmm0, %zmm1, %zmm22
4019 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm31, %zmm1
4020 ; AVX512-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
4021 ; AVX512-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm0 # 64-byte Folded Reload
4022 ; AVX512-NEXT:    # zmm0 = zmm0[0,1,2,3],mem[4,5,6,7]
4023 ; AVX512-NEXT:    vmovdqu64 %zmm0, (%rsp) # 64-byte Spill
4024 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4025 ; AVX512-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm0 # 64-byte Folded Reload
4026 ; AVX512-NEXT:    # zmm0 = zmm0[0,1,2,3],mem[4,5,6,7]
4027 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4028 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4029 ; AVX512-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm31 # 64-byte Folded Reload
4030 ; AVX512-NEXT:    # zmm31 = zmm0[0,1,2,3],mem[4,5,6,7]
4031 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm26 = zmm26[0,1,2,3],zmm30[4,5,6,7]
4032 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4033 ; AVX512-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm30 # 64-byte Folded Reload
4034 ; AVX512-NEXT:    # zmm30 = zmm0[0,1,2,3],mem[4,5,6,7]
4035 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm6 = zmm6[0,1,2,3],zmm14[4,5,6,7]
4036 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm14 = zmm18[0,1,2,3],zmm20[4,5,6,7]
4037 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm9 = zmm9[0,1,2,3],zmm4[4,5,6,7]
4038 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm7[0,1,2,3],zmm16[4,5,6,7]
4039 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4040 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4041 ; AVX512-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm0 # 64-byte Folded Reload
4042 ; AVX512-NEXT:    # zmm0 = zmm0[0,1,2,3],mem[4,5,6,7]
4043 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4044 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4045 ; AVX512-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm16 # 64-byte Folded Reload
4046 ; AVX512-NEXT:    # zmm16 = zmm0[0,1,2,3],mem[4,5,6,7]
4047 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4048 ; AVX512-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm18 # 64-byte Folded Reload
4049 ; AVX512-NEXT:    # zmm18 = zmm0[0,1,2,3],mem[4,5,6,7]
4050 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4051 ; AVX512-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm20 # 64-byte Folded Reload
4052 ; AVX512-NEXT:    # zmm20 = zmm0[0,1,2,3],mem[4,5,6,7]
4053 ; AVX512-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm29, %zmm29 # 64-byte Folded Reload
4054 ; AVX512-NEXT:    # zmm29 = zmm29[0,1,2,3],mem[4,5,6,7]
4055 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm19 = zmm19[0,1,2,3],zmm25[4,5,6,7]
4056 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm5 = zmm15[0,1,2,3],zmm5[4,5,6,7]
4057 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm12 = zmm12[0,1,2,3],zmm17[4,5,6,7]
4058 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4059 ; AVX512-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm15 # 64-byte Folded Reload
4060 ; AVX512-NEXT:    # zmm15 = zmm0[0,1,2,3],mem[4,5,6,7]
4061 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4062 ; AVX512-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm17 # 64-byte Folded Reload
4063 ; AVX512-NEXT:    # zmm17 = zmm0[0,1,2,3],mem[4,5,6,7]
4064 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4065 ; AVX512-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm25 # 64-byte Folded Reload
4066 ; AVX512-NEXT:    # zmm25 = zmm0[0,1,2,3],mem[4,5,6,7]
4067 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4068 ; AVX512-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm4 # 64-byte Folded Reload
4069 ; AVX512-NEXT:    # zmm4 = zmm0[0,1,2,3],mem[4,5,6,7]
4070 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4071 ; AVX512-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm0 # 64-byte Folded Reload
4072 ; AVX512-NEXT:    # zmm0 = zmm0[0,1,2,3],mem[4,5,6,7]
4073 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm21 = zmm21[0,1,2,3],zmm27[4,5,6,7]
4074 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm10 = zmm22[0,1,2,3],zmm10[4,5,6,7]
4075 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
4076 ; AVX512-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm7, %zmm22 # 64-byte Folded Reload
4077 ; AVX512-NEXT:    # zmm22 = zmm7[0,1,2,3],mem[4,5,6,7]
4078 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
4079 ; AVX512-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm7, %zmm27 # 64-byte Folded Reload
4080 ; AVX512-NEXT:    # zmm27 = zmm7[0,1,2,3],mem[4,5,6,7]
4081 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
4082 ; AVX512-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm7, %zmm7 # 64-byte Folded Reload
4083 ; AVX512-NEXT:    # zmm7 = zmm7[0,1,2,3],mem[4,5,6,7]
4084 ; AVX512-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm24, %zmm24 # 64-byte Folded Reload
4085 ; AVX512-NEXT:    # zmm24 = zmm24[0,1,2,3],mem[4,5,6,7]
4086 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm23 = zmm23[0,1,2,3],zmm28[4,5,6,7]
4087 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm11 = zmm11[0,1,2,3],zmm13[4,5,6,7]
4088 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm3 = zmm3[0,1,2,3],zmm8[4,5,6,7]
4089 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm1 = zmm1[0,1,2,3],zmm2[4,5,6,7]
4090 ; AVX512-NEXT:    vmovdqa64 %zmm14, 448(%rsi)
4091 ; AVX512-NEXT:    vmovdqa64 %zmm6, 384(%rsi)
4092 ; AVX512-NEXT:    vmovdqa64 %zmm30, 320(%rsi)
4093 ; AVX512-NEXT:    vmovdqa64 %zmm26, 256(%rsi)
4094 ; AVX512-NEXT:    vmovdqa64 %zmm31, 192(%rsi)
4095 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
4096 ; AVX512-NEXT:    vmovaps %zmm2, 128(%rsi)
4097 ; AVX512-NEXT:    vmovups (%rsp), %zmm2 # 64-byte Reload
4098 ; AVX512-NEXT:    vmovaps %zmm2, 64(%rsi)
4099 ; AVX512-NEXT:    vmovdqa64 %zmm9, (%rsi)
4100 ; AVX512-NEXT:    vmovdqa64 %zmm19, 448(%rdx)
4101 ; AVX512-NEXT:    vmovdqa64 %zmm29, 256(%rdx)
4102 ; AVX512-NEXT:    vmovdqa64 %zmm20, 320(%rdx)
4103 ; AVX512-NEXT:    vmovdqa64 %zmm18, 128(%rdx)
4104 ; AVX512-NEXT:    vmovdqa64 %zmm16, 192(%rdx)
4105 ; AVX512-NEXT:    vmovdqa64 %zmm5, (%rdx)
4106 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
4107 ; AVX512-NEXT:    vmovaps %zmm2, 64(%rdx)
4108 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
4109 ; AVX512-NEXT:    vmovaps %zmm2, 384(%rdx)
4110 ; AVX512-NEXT:    vmovdqa64 %zmm21, 448(%rcx)
4111 ; AVX512-NEXT:    vmovdqa64 %zmm0, 256(%rcx)
4112 ; AVX512-NEXT:    vmovdqa64 %zmm4, 320(%rcx)
4113 ; AVX512-NEXT:    vmovdqa64 %zmm25, 128(%rcx)
4114 ; AVX512-NEXT:    vmovdqa64 %zmm17, 192(%rcx)
4115 ; AVX512-NEXT:    vmovdqa64 %zmm10, (%rcx)
4116 ; AVX512-NEXT:    vmovdqa64 %zmm15, 64(%rcx)
4117 ; AVX512-NEXT:    vmovdqa64 %zmm12, 384(%rcx)
4118 ; AVX512-NEXT:    vmovdqa64 %zmm3, 384(%r8)
4119 ; AVX512-NEXT:    vmovdqa64 %zmm11, 448(%r8)
4120 ; AVX512-NEXT:    vmovdqa64 %zmm23, 256(%r8)
4121 ; AVX512-NEXT:    vmovdqa64 %zmm24, 320(%r8)
4122 ; AVX512-NEXT:    vmovdqa64 %zmm7, 128(%r8)
4123 ; AVX512-NEXT:    vmovdqa64 %zmm27, 192(%r8)
4124 ; AVX512-NEXT:    vmovdqa64 %zmm1, (%r8)
4125 ; AVX512-NEXT:    vmovdqa64 %zmm22, 64(%r8)
4126 ; AVX512-NEXT:    addq $2056, %rsp # imm = 0x808
4127 ; AVX512-NEXT:    vzeroupper
4128 ; AVX512-NEXT:    retq
4129   %wide.vec = load <256 x i64>, ptr %in.vec, align 64
4130   %strided.vec0 = shufflevector <256 x i64> %wide.vec, <256 x i64> poison, <64 x i32> <i32 0, i32 4, i32 8, i32 12, i32 16, i32 20, i32 24, i32 28, i32 32, i32 36, i32 40, i32 44, i32 48, i32 52, i32 56, i32 60, i32 64, i32 68, i32 72, i32 76, i32 80, i32 84, i32 88, i32 92, i32 96, i32 100, i32 104, i32 108, i32 112, i32 116, i32 120, i32 124, i32 128, i32 132, i32 136, i32 140, i32 144, i32 148, i32 152, i32 156, i32 160, i32 164, i32 168, i32 172, i32 176, i32 180, i32 184, i32 188, i32 192, i32 196, i32 200, i32 204, i32 208, i32 212, i32 216, i32 220, i32 224, i32 228, i32 232, i32 236, i32 240, i32 244, i32 248, i32 252>
4131   %strided.vec1 = shufflevector <256 x i64> %wide.vec, <256 x i64> poison, <64 x i32> <i32 1, i32 5, i32 9, i32 13, i32 17, i32 21, i32 25, i32 29, i32 33, i32 37, i32 41, i32 45, i32 49, i32 53, i32 57, i32 61, i32 65, i32 69, i32 73, i32 77, i32 81, i32 85, i32 89, i32 93, i32 97, i32 101, i32 105, i32 109, i32 113, i32 117, i32 121, i32 125, i32 129, i32 133, i32 137, i32 141, i32 145, i32 149, i32 153, i32 157, i32 161, i32 165, i32 169, i32 173, i32 177, i32 181, i32 185, i32 189, i32 193, i32 197, i32 201, i32 205, i32 209, i32 213, i32 217, i32 221, i32 225, i32 229, i32 233, i32 237, i32 241, i32 245, i32 249, i32 253>
4132   %strided.vec2 = shufflevector <256 x i64> %wide.vec, <256 x i64> poison, <64 x i32> <i32 2, i32 6, i32 10, i32 14, i32 18, i32 22, i32 26, i32 30, i32 34, i32 38, i32 42, i32 46, i32 50, i32 54, i32 58, i32 62, i32 66, i32 70, i32 74, i32 78, i32 82, i32 86, i32 90, i32 94, i32 98, i32 102, i32 106, i32 110, i32 114, i32 118, i32 122, i32 126, i32 130, i32 134, i32 138, i32 142, i32 146, i32 150, i32 154, i32 158, i32 162, i32 166, i32 170, i32 174, i32 178, i32 182, i32 186, i32 190, i32 194, i32 198, i32 202, i32 206, i32 210, i32 214, i32 218, i32 222, i32 226, i32 230, i32 234, i32 238, i32 242, i32 246, i32 250, i32 254>
4133   %strided.vec3 = shufflevector <256 x i64> %wide.vec, <256 x i64> poison, <64 x i32> <i32 3, i32 7, i32 11, i32 15, i32 19, i32 23, i32 27, i32 31, i32 35, i32 39, i32 43, i32 47, i32 51, i32 55, i32 59, i32 63, i32 67, i32 71, i32 75, i32 79, i32 83, i32 87, i32 91, i32 95, i32 99, i32 103, i32 107, i32 111, i32 115, i32 119, i32 123, i32 127, i32 131, i32 135, i32 139, i32 143, i32 147, i32 151, i32 155, i32 159, i32 163, i32 167, i32 171, i32 175, i32 179, i32 183, i32 187, i32 191, i32 195, i32 199, i32 203, i32 207, i32 211, i32 215, i32 219, i32 223, i32 227, i32 231, i32 235, i32 239, i32 243, i32 247, i32 251, i32 255>
4134   store <64 x i64> %strided.vec0, ptr %out.vec0, align 64
4135   store <64 x i64> %strided.vec1, ptr %out.vec1, align 64
4136   store <64 x i64> %strided.vec2, ptr %out.vec2, align 64
4137   store <64 x i64> %strided.vec3, ptr %out.vec3, align 64
4138   ret void
4140 ;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
4141 ; AVX: {{.*}}
4142 ; AVX1: {{.*}}
4143 ; AVX2: {{.*}}
4144 ; AVX2-FAST: {{.*}}
4145 ; AVX2-FAST-PERLANE: {{.*}}
4146 ; AVX2-SLOW: {{.*}}
4147 ; AVX512BW: {{.*}}
4148 ; AVX512BW-FAST: {{.*}}
4149 ; AVX512BW-ONLY-FAST: {{.*}}
4150 ; AVX512BW-ONLY-SLOW: {{.*}}
4151 ; AVX512BW-SLOW: {{.*}}
4152 ; AVX512DQ-FAST: {{.*}}
4153 ; AVX512DQ-SLOW: {{.*}}
4154 ; AVX512DQBW-FAST: {{.*}}
4155 ; AVX512DQBW-SLOW: {{.*}}
4156 ; AVX512F: {{.*}}
4157 ; AVX512F-FAST: {{.*}}
4158 ; AVX512F-ONLY-FAST: {{.*}}
4159 ; AVX512F-ONLY-SLOW: {{.*}}
4160 ; AVX512F-SLOW: {{.*}}
4161 ; FALLBACK0: {{.*}}
4162 ; FALLBACK1: {{.*}}
4163 ; FALLBACK10: {{.*}}
4164 ; FALLBACK11: {{.*}}
4165 ; FALLBACK12: {{.*}}
4166 ; FALLBACK2: {{.*}}
4167 ; FALLBACK3: {{.*}}
4168 ; FALLBACK4: {{.*}}
4169 ; FALLBACK5: {{.*}}
4170 ; FALLBACK6: {{.*}}
4171 ; FALLBACK7: {{.*}}
4172 ; FALLBACK8: {{.*}}
4173 ; FALLBACK9: {{.*}}