Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / CodeGen / X86 / vector-interleaved-store-i64-stride-5.ll
blobfcc1958a46ed49749b09435b0a2551f49a5b9a70
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+sse2 | FileCheck %s --check-prefixes=SSE,FALLBACK0
3 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx  | FileCheck %s --check-prefixes=AVX,AVX1,AVX1-ONLY,FALLBACK1
4 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx2 | FileCheck %s --check-prefixes=AVX,AVX1,AVX2,AVX2-ONLY,AVX2-SLOW,FALLBACK2
5 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx2,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX,AVX1,AVX2,AVX2-ONLY,AVX2-FAST,FALLBACK3
6 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx2,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX,AVX1,AVX2,AVX2-ONLY,AVX2-FAST-PERLANE,FALLBACK4
7 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512F,AVX512-SLOW,AVX512F-SLOW,AVX512F-ONLY-SLOW,FALLBACK5
8 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512F,AVX512-FAST,AVX512F-FAST,AVX512F-ONLY-FAST,FALLBACK6
9 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512F,AVX512-SLOW,AVX512F-SLOW,AVX512DQ-SLOW,FALLBACK7
10 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512F,AVX512-FAST,AVX512F-FAST,AVX512DQ-FAST,FALLBACK8
11 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512bw | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512BW,AVX512-SLOW,AVX512BW-SLOW,AVX512BW-ONLY-SLOW,FALLBACK9
12 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512bw,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512BW,AVX512-FAST,AVX512BW-FAST,AVX512BW-ONLY-FAST,FALLBACK10
13 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq,+avx512bw | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512BW,AVX512-SLOW,AVX512BW-SLOW,AVX512DQBW-SLOW,FALLBACK11
14 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq,+avx512bw,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512BW,AVX512-FAST,AVX512BW-FAST,AVX512DQBW-FAST,FALLBACK12
16 ; These patterns are produced by LoopVectorizer for interleaved stores.
18 define void @store_i64_stride5_vf2(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %in.vecptr4, ptr %out.vec) nounwind {
19 ; SSE-LABEL: store_i64_stride5_vf2:
20 ; SSE:       # %bb.0:
21 ; SSE-NEXT:    movapd (%rdi), %xmm0
22 ; SSE-NEXT:    movapd (%rsi), %xmm1
23 ; SSE-NEXT:    movapd (%rdx), %xmm2
24 ; SSE-NEXT:    movapd (%rcx), %xmm3
25 ; SSE-NEXT:    movapd (%r8), %xmm4
26 ; SSE-NEXT:    movapd %xmm0, %xmm5
27 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm5 = xmm5[0],xmm1[0]
28 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
29 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm2 = xmm2[0],xmm3[0]
30 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm3 = xmm3[1],xmm4[1]
31 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm4[0],xmm0[1]
32 ; SSE-NEXT:    movapd %xmm2, 16(%r9)
33 ; SSE-NEXT:    movapd %xmm0, 32(%r9)
34 ; SSE-NEXT:    movapd %xmm1, 48(%r9)
35 ; SSE-NEXT:    movapd %xmm3, 64(%r9)
36 ; SSE-NEXT:    movapd %xmm5, (%r9)
37 ; SSE-NEXT:    retq
39 ; AVX1-ONLY-LABEL: store_i64_stride5_vf2:
40 ; AVX1-ONLY:       # %bb.0:
41 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %xmm0
42 ; AVX1-ONLY-NEXT:    vmovaps (%rsi), %xmm1
43 ; AVX1-ONLY-NEXT:    vmovaps (%rcx), %xmm2
44 ; AVX1-ONLY-NEXT:    vmovaps (%r8), %xmm3
45 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm4
46 ; AVX1-ONLY-NEXT:    vinsertf128 $1, (%rdx), %ymm0, %ymm0
47 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm4 = ymm4[1],ymm0[1],ymm4[3],ymm0[3]
48 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm3[0,1],ymm4[2,3,4,5,6,7]
49 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
50 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
51 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm2[1],xmm3[1]
52 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 64(%r9)
53 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, (%r9)
54 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, 32(%r9)
55 ; AVX1-ONLY-NEXT:    vzeroupper
56 ; AVX1-ONLY-NEXT:    retq
58 ; AVX2-ONLY-LABEL: store_i64_stride5_vf2:
59 ; AVX2-ONLY:       # %bb.0:
60 ; AVX2-ONLY-NEXT:    vmovaps (%rdi), %xmm0
61 ; AVX2-ONLY-NEXT:    vmovaps (%rdx), %xmm1
62 ; AVX2-ONLY-NEXT:    vmovaps (%rcx), %xmm2
63 ; AVX2-ONLY-NEXT:    vmovaps (%r8), %xmm3
64 ; AVX2-ONLY-NEXT:    vinsertf128 $1, (%rsi), %ymm0, %ymm0
65 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
66 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm4 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
67 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm4 = ymm4[0,0,2,1]
68 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm3[0,1],ymm4[2,3,4,5,6,7]
69 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
70 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,1,3]
71 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm2[1],xmm3[1]
72 ; AVX2-ONLY-NEXT:    vmovaps %xmm1, 64(%r9)
73 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, (%r9)
74 ; AVX2-ONLY-NEXT:    vmovaps %ymm4, 32(%r9)
75 ; AVX2-ONLY-NEXT:    vzeroupper
76 ; AVX2-ONLY-NEXT:    retq
78 ; AVX512-LABEL: store_i64_stride5_vf2:
79 ; AVX512:       # %bb.0:
80 ; AVX512-NEXT:    vmovdqa (%rdi), %xmm0
81 ; AVX512-NEXT:    vmovdqa (%rdx), %xmm1
82 ; AVX512-NEXT:    vmovdqa (%r8), %xmm2
83 ; AVX512-NEXT:    vinserti128 $1, (%rcx), %ymm1, %ymm1
84 ; AVX512-NEXT:    vinserti128 $1, (%rsi), %ymm0, %ymm0
85 ; AVX512-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm0
86 ; AVX512-NEXT:    vmovdqa {{.*#+}} xmm1 = [7,9]
87 ; AVX512-NEXT:    vpermi2q %zmm2, %zmm0, %zmm1
88 ; AVX512-NEXT:    vmovdqa64 {{.*#+}} zmm3 = [0,2,4,6,8,1,3,5]
89 ; AVX512-NEXT:    vpermi2q %zmm2, %zmm0, %zmm3
90 ; AVX512-NEXT:    vmovdqa64 %zmm3, (%r9)
91 ; AVX512-NEXT:    vmovdqa %xmm1, 64(%r9)
92 ; AVX512-NEXT:    vzeroupper
93 ; AVX512-NEXT:    retq
94   %in.vec0 = load <2 x i64>, ptr %in.vecptr0, align 64
95   %in.vec1 = load <2 x i64>, ptr %in.vecptr1, align 64
96   %in.vec2 = load <2 x i64>, ptr %in.vecptr2, align 64
97   %in.vec3 = load <2 x i64>, ptr %in.vecptr3, align 64
98   %in.vec4 = load <2 x i64>, ptr %in.vecptr4, align 64
99   %1 = shufflevector <2 x i64> %in.vec0, <2 x i64> %in.vec1, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
100   %2 = shufflevector <2 x i64> %in.vec2, <2 x i64> %in.vec3, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
101   %3 = shufflevector <4 x i64> %1, <4 x i64> %2, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
102   %4 = shufflevector <2 x i64> %in.vec4, <2 x i64> poison, <8 x i32> <i32 0, i32 1, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
103   %5 = shufflevector <8 x i64> %3, <8 x i64> %4, <10 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9>
104   %interleaved.vec = shufflevector <10 x i64> %5, <10 x i64> poison, <10 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 1, i32 3, i32 5, i32 7, i32 9>
105   store <10 x i64> %interleaved.vec, ptr %out.vec, align 64
106   ret void
109 define void @store_i64_stride5_vf4(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %in.vecptr4, ptr %out.vec) nounwind {
110 ; SSE-LABEL: store_i64_stride5_vf4:
111 ; SSE:       # %bb.0:
112 ; SSE-NEXT:    movaps (%rdi), %xmm2
113 ; SSE-NEXT:    movaps 16(%rdi), %xmm0
114 ; SSE-NEXT:    movaps (%rsi), %xmm4
115 ; SSE-NEXT:    movaps 16(%rsi), %xmm6
116 ; SSE-NEXT:    movaps (%rdx), %xmm5
117 ; SSE-NEXT:    movaps 16(%rdx), %xmm1
118 ; SSE-NEXT:    movaps (%rcx), %xmm7
119 ; SSE-NEXT:    movaps 16(%rcx), %xmm8
120 ; SSE-NEXT:    movaps (%r8), %xmm9
121 ; SSE-NEXT:    movaps 16(%r8), %xmm3
122 ; SSE-NEXT:    movaps %xmm6, %xmm10
123 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm10 = xmm10[1],xmm1[1]
124 ; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm8[0]
125 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm3[1]
126 ; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[0,1],xmm0[2,3]
127 ; SSE-NEXT:    movlhps {{.*#+}} xmm0 = xmm0[0],xmm6[0]
128 ; SSE-NEXT:    movaps %xmm4, %xmm6
129 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm6 = xmm6[1],xmm5[1]
130 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm7[0]
131 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm7 = xmm7[1],xmm9[1]
132 ; SSE-NEXT:    shufps {{.*#+}} xmm9 = xmm9[0,1],xmm2[2,3]
133 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm4[0]
134 ; SSE-NEXT:    movaps %xmm2, (%r9)
135 ; SSE-NEXT:    movaps %xmm5, 16(%r9)
136 ; SSE-NEXT:    movaps %xmm9, 32(%r9)
137 ; SSE-NEXT:    movaps %xmm6, 48(%r9)
138 ; SSE-NEXT:    movaps %xmm7, 64(%r9)
139 ; SSE-NEXT:    movaps %xmm0, 80(%r9)
140 ; SSE-NEXT:    movaps %xmm1, 96(%r9)
141 ; SSE-NEXT:    movaps %xmm3, 112(%r9)
142 ; SSE-NEXT:    movaps %xmm10, 128(%r9)
143 ; SSE-NEXT:    movaps %xmm8, 144(%r9)
144 ; SSE-NEXT:    retq
146 ; AVX1-ONLY-LABEL: store_i64_stride5_vf4:
147 ; AVX1-ONLY:       # %bb.0:
148 ; AVX1-ONLY-NEXT:    vmovapd (%rdi), %ymm0
149 ; AVX1-ONLY-NEXT:    vmovapd (%r8), %ymm1
150 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm2 = mem[2,3],ymm0[2,3]
151 ; AVX1-ONLY-NEXT:    vmovapd 16(%rdx), %xmm3
152 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm2 = ymm3[0],ymm2[0],ymm3[2],ymm2[3]
153 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm2[0,1],ymm1[2],ymm2[3]
154 ; AVX1-ONLY-NEXT:    vmovddup {{.*#+}} xmm4 = mem[0,0]
155 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm5 = ymm0[0],mem[0],ymm0[2],mem[2]
156 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm4 = ymm4[0,1],ymm5[2,3]
157 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm4 = ymm4[0],ymm1[1],ymm4[2,3]
158 ; AVX1-ONLY-NEXT:    vmovlpd {{.*#+}} xmm3 = mem[0],xmm3[1]
159 ; AVX1-ONLY-NEXT:    vbroadcastsd 24(%rcx), %ymm5
160 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm3 = ymm3[0,1],ymm5[2,3]
161 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm3 = ymm3[0,1,2],ymm1[3]
162 ; AVX1-ONLY-NEXT:    vmovaps (%rdx), %xmm5
163 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm0
164 ; AVX1-ONLY-NEXT:    vbroadcastsd 8(%rsi), %ymm6
165 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm6[2],ymm0[3]
166 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3]
167 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %xmm1
168 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm1[0],mem[0]
169 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm5 = xmm5[0],mem[0]
170 ; AVX1-ONLY-NEXT:    vmovaps %xmm5, 16(%r9)
171 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, (%r9)
172 ; AVX1-ONLY-NEXT:    vmovapd %ymm4, 64(%r9)
173 ; AVX1-ONLY-NEXT:    vmovapd %ymm0, 32(%r9)
174 ; AVX1-ONLY-NEXT:    vmovapd %ymm2, 96(%r9)
175 ; AVX1-ONLY-NEXT:    vmovapd %ymm3, 128(%r9)
176 ; AVX1-ONLY-NEXT:    vzeroupper
177 ; AVX1-ONLY-NEXT:    retq
179 ; AVX2-ONLY-LABEL: store_i64_stride5_vf4:
180 ; AVX2-ONLY:       # %bb.0:
181 ; AVX2-ONLY-NEXT:    vmovaps (%rdi), %ymm0
182 ; AVX2-ONLY-NEXT:    vmovaps (%rsi), %ymm1
183 ; AVX2-ONLY-NEXT:    vmovaps (%rdx), %ymm2
184 ; AVX2-ONLY-NEXT:    vmovaps (%r8), %ymm3
185 ; AVX2-ONLY-NEXT:    vmovaps (%rdx), %xmm4
186 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm5
187 ; AVX2-ONLY-NEXT:    vbroadcastsd 8(%rsi), %ymm6
188 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm6 = ymm0[0,1,2,3],ymm6[4,5,6,7]
189 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2,3,4,5],ymm5[6,7]
190 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm3[0,1],ymm5[2,3,4,5,6,7]
191 ; AVX2-ONLY-NEXT:    vmovaps (%rsi), %xmm6
192 ; AVX2-ONLY-NEXT:    vinsertf128 $1, (%rcx), %ymm6, %ymm6
193 ; AVX2-ONLY-NEXT:    vmovaps (%rdi), %xmm7
194 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm4, %ymm7, %ymm4
195 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm4[0],ymm6[0],ymm4[2],ymm6[2]
196 ; AVX2-ONLY-NEXT:    vmovddup {{.*#+}} xmm6 = mem[0,0]
197 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm7 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
198 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
199 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1],ymm3[2,3],ymm6[4,5,6,7]
200 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm2[2,3],ymm0[2,3]
201 ; AVX2-ONLY-NEXT:    vbroadcastsd 16(%rcx), %ymm7
202 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm7[2,3],ymm0[4,5,6,7]
203 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5],ymm0[6,7]
204 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
205 ; AVX2-ONLY-NEXT:    vbroadcastsd 24(%rcx), %ymm2
206 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm1[2,3],ymm2[2,3]
207 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
208 ; AVX2-ONLY-NEXT:    vmovaps %ymm6, 64(%r9)
209 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 128(%r9)
210 ; AVX2-ONLY-NEXT:    vmovaps %ymm4, (%r9)
211 ; AVX2-ONLY-NEXT:    vmovaps %ymm5, 32(%r9)
212 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 96(%r9)
213 ; AVX2-ONLY-NEXT:    vzeroupper
214 ; AVX2-ONLY-NEXT:    retq
216 ; AVX512-LABEL: store_i64_stride5_vf4:
217 ; AVX512:       # %bb.0:
218 ; AVX512-NEXT:    vmovdqa (%rdi), %ymm0
219 ; AVX512-NEXT:    vmovdqa (%rdx), %ymm1
220 ; AVX512-NEXT:    vmovdqa (%r8), %ymm2
221 ; AVX512-NEXT:    vinserti64x4 $1, (%rsi), %zmm0, %zmm0
222 ; AVX512-NEXT:    vinserti64x4 $1, (%rcx), %zmm1, %zmm1
223 ; AVX512-NEXT:    vmovdqa {{.*#+}} ymm3 = <15,3,7,u>
224 ; AVX512-NEXT:    vpermi2q %zmm0, %zmm1, %zmm3
225 ; AVX512-NEXT:    vmovdqa64 {{.*#+}} zmm4 = <0,4,8,12,u,1,5,9>
226 ; AVX512-NEXT:    vpermi2q %zmm1, %zmm0, %zmm4
227 ; AVX512-NEXT:    vmovdqa64 {{.*#+}} zmm5 = [0,1,2,3,8,5,6,7]
228 ; AVX512-NEXT:    vpermi2q %zmm2, %zmm4, %zmm5
229 ; AVX512-NEXT:    vmovdqa64 {{.*#+}} zmm4 = <13,u,2,6,10,14,u,3>
230 ; AVX512-NEXT:    vpermi2q %zmm1, %zmm0, %zmm4
231 ; AVX512-NEXT:    vmovdqa64 {{.*#+}} zmm0 = [0,9,2,3,4,5,10,7]
232 ; AVX512-NEXT:    vpermi2q %zmm2, %zmm4, %zmm0
233 ; AVX512-NEXT:    vmovdqa64 %zmm0, 64(%r9)
234 ; AVX512-NEXT:    vmovdqa64 %zmm5, (%r9)
235 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm2[6,7]
236 ; AVX512-NEXT:    vmovdqa %ymm0, 128(%r9)
237 ; AVX512-NEXT:    vzeroupper
238 ; AVX512-NEXT:    retq
239   %in.vec0 = load <4 x i64>, ptr %in.vecptr0, align 64
240   %in.vec1 = load <4 x i64>, ptr %in.vecptr1, align 64
241   %in.vec2 = load <4 x i64>, ptr %in.vecptr2, align 64
242   %in.vec3 = load <4 x i64>, ptr %in.vecptr3, align 64
243   %in.vec4 = load <4 x i64>, ptr %in.vecptr4, align 64
244   %1 = shufflevector <4 x i64> %in.vec0, <4 x i64> %in.vec1, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
245   %2 = shufflevector <4 x i64> %in.vec2, <4 x i64> %in.vec3, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
246   %3 = shufflevector <8 x i64> %1, <8 x i64> %2, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
247   %4 = shufflevector <4 x i64> %in.vec4, <4 x i64> poison, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
248   %5 = shufflevector <16 x i64> %3, <16 x i64> %4, <20 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19>
249   %interleaved.vec = shufflevector <20 x i64> %5, <20 x i64> poison, <20 x i32> <i32 0, i32 4, i32 8, i32 12, i32 16, i32 1, i32 5, i32 9, i32 13, i32 17, i32 2, i32 6, i32 10, i32 14, i32 18, i32 3, i32 7, i32 11, i32 15, i32 19>
250   store <20 x i64> %interleaved.vec, ptr %out.vec, align 64
251   ret void
254 define void @store_i64_stride5_vf8(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %in.vecptr4, ptr %out.vec) nounwind {
255 ; SSE-LABEL: store_i64_stride5_vf8:
256 ; SSE:       # %bb.0:
257 ; SSE-NEXT:    movapd (%rdi), %xmm0
258 ; SSE-NEXT:    movapd 16(%rdi), %xmm2
259 ; SSE-NEXT:    movapd 32(%rdi), %xmm5
260 ; SSE-NEXT:    movapd (%rsi), %xmm1
261 ; SSE-NEXT:    movapd 16(%rsi), %xmm9
262 ; SSE-NEXT:    movapd 32(%rsi), %xmm8
263 ; SSE-NEXT:    movapd (%rdx), %xmm3
264 ; SSE-NEXT:    movapd 16(%rdx), %xmm6
265 ; SSE-NEXT:    movapd 32(%rdx), %xmm10
266 ; SSE-NEXT:    movapd (%rcx), %xmm7
267 ; SSE-NEXT:    movapd 16(%rcx), %xmm11
268 ; SSE-NEXT:    movapd 32(%rcx), %xmm12
269 ; SSE-NEXT:    movapd (%r8), %xmm13
270 ; SSE-NEXT:    movapd 16(%r8), %xmm14
271 ; SSE-NEXT:    movapd 32(%r8), %xmm15
272 ; SSE-NEXT:    movapd %xmm0, %xmm4
273 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm4 = xmm4[0],xmm1[0]
274 ; SSE-NEXT:    movapd %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
275 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm13[0],xmm0[1]
276 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
277 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm3[1]
278 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
279 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm3 = xmm3[0],xmm7[0]
280 ; SSE-NEXT:    movapd %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
281 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm7 = xmm7[1],xmm13[1]
282 ; SSE-NEXT:    movapd %xmm2, %xmm13
283 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm13 = xmm13[0],xmm9[0]
284 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm14[0],xmm2[1]
285 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
286 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm9 = xmm9[1],xmm6[1]
287 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm6 = xmm6[0],xmm11[0]
288 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm11 = xmm11[1],xmm14[1]
289 ; SSE-NEXT:    movapd %xmm5, %xmm14
290 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm14 = xmm14[0],xmm8[0]
291 ; SSE-NEXT:    movsd {{.*#+}} xmm5 = xmm15[0],xmm5[1]
292 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm10[1]
293 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm10 = xmm10[0],xmm12[0]
294 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm12 = xmm12[1],xmm15[1]
295 ; SSE-NEXT:    movapd 48(%rdi), %xmm15
296 ; SSE-NEXT:    movapd 48(%rsi), %xmm2
297 ; SSE-NEXT:    movapd %xmm15, %xmm3
298 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm3 = xmm3[0],xmm2[0]
299 ; SSE-NEXT:    movapd 48(%r8), %xmm4
300 ; SSE-NEXT:    movsd {{.*#+}} xmm15 = xmm4[0],xmm15[1]
301 ; SSE-NEXT:    movapd 48(%rdx), %xmm1
302 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
303 ; SSE-NEXT:    movapd 48(%rcx), %xmm0
304 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm0[0]
305 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm4[1]
306 ; SSE-NEXT:    movapd %xmm0, 304(%r9)
307 ; SSE-NEXT:    movapd %xmm2, 288(%r9)
308 ; SSE-NEXT:    movapd %xmm15, 272(%r9)
309 ; SSE-NEXT:    movapd %xmm1, 256(%r9)
310 ; SSE-NEXT:    movapd %xmm3, 240(%r9)
311 ; SSE-NEXT:    movapd %xmm12, 224(%r9)
312 ; SSE-NEXT:    movapd %xmm8, 208(%r9)
313 ; SSE-NEXT:    movapd %xmm5, 192(%r9)
314 ; SSE-NEXT:    movapd %xmm10, 176(%r9)
315 ; SSE-NEXT:    movapd %xmm14, 160(%r9)
316 ; SSE-NEXT:    movapd %xmm11, 144(%r9)
317 ; SSE-NEXT:    movapd %xmm9, 128(%r9)
318 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
319 ; SSE-NEXT:    movaps %xmm0, 112(%r9)
320 ; SSE-NEXT:    movapd %xmm6, 96(%r9)
321 ; SSE-NEXT:    movapd %xmm13, 80(%r9)
322 ; SSE-NEXT:    movapd %xmm7, 64(%r9)
323 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
324 ; SSE-NEXT:    movaps %xmm0, 48(%r9)
325 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
326 ; SSE-NEXT:    movaps %xmm0, 32(%r9)
327 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
328 ; SSE-NEXT:    movaps %xmm0, 16(%r9)
329 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
330 ; SSE-NEXT:    movaps %xmm0, (%r9)
331 ; SSE-NEXT:    retq
333 ; AVX1-ONLY-LABEL: store_i64_stride5_vf8:
334 ; AVX1-ONLY:       # %bb.0:
335 ; AVX1-ONLY-NEXT:    vmovapd 32(%rdi), %ymm9
336 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %ymm1
337 ; AVX1-ONLY-NEXT:    vmovaps (%rcx), %ymm0
338 ; AVX1-ONLY-NEXT:    vmovaps (%r8), %ymm3
339 ; AVX1-ONLY-NEXT:    vmovapd 32(%r8), %ymm5
340 ; AVX1-ONLY-NEXT:    vpermilps {{.*#+}} xmm2 = mem[2,3,2,3]
341 ; AVX1-ONLY-NEXT:    vmovaps 16(%rdx), %xmm7
342 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm7[1],ymm0[3],ymm7[3]
343 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,3,4,5,6,7]
344 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm3[6,7]
345 ; AVX1-ONLY-NEXT:    vmovaps (%rdx), %xmm4
346 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm2
347 ; AVX1-ONLY-NEXT:    vbroadcastsd 8(%rsi), %ymm6
348 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm6 = ymm1[0,1,2,3],ymm6[4,5,6,7]
349 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm6[0,1,2,3,4,5],ymm2[6,7]
350 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1],ymm2[2,3,4,5,6,7]
351 ; AVX1-ONLY-NEXT:    vpermilps {{.*#+}} xmm6 = mem[2,3,2,3]
352 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm8 = ymm9[0],mem[0],ymm9[2],mem[2]
353 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm6 = ymm6[0,1],ymm8[2,3]
354 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm6 = ymm6[0],ymm5[1],ymm6[2,3]
355 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm8 = mem[2,3],ymm9[2,3]
356 ; AVX1-ONLY-NEXT:    vmovapd 48(%rdx), %xmm10
357 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm8 = ymm10[0],ymm8[0],ymm10[2],ymm8[3]
358 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm8 = ymm8[0,1],ymm5[2],ymm8[3]
359 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdx), %xmm11
360 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm11, %ymm0, %ymm12
361 ; AVX1-ONLY-NEXT:    vbroadcastsd 40(%rsi), %ymm13
362 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm9 = ymm9[0,1],ymm13[2,3]
363 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm9 = ymm9[0,1,2],ymm12[3]
364 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm9 = ymm5[0],ymm9[1,2,3]
365 ; AVX1-ONLY-NEXT:    vpermilps {{.*#+}} xmm12 = mem[2,3,2,3]
366 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm13 = ymm1[0],mem[0],ymm1[2],mem[2]
367 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3],ymm13[4,5,6,7]
368 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1],ymm3[2,3],ymm12[4,5,6,7]
369 ; AVX1-ONLY-NEXT:    vmovapd 48(%rsi), %xmm13
370 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm10 = xmm13[1],xmm10[1]
371 ; AVX1-ONLY-NEXT:    vbroadcastsd 56(%rcx), %ymm13
372 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm10 = ymm10[0,1],ymm13[2,3]
373 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm5 = ymm10[0,1,2],ymm5[3]
374 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm7 = xmm7[0],mem[0]
375 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm7[0,1,2,3],ymm1[4,5,6,7]
376 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5],ymm1[6,7]
377 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm3 = xmm11[0],mem[0]
378 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %xmm7
379 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %xmm10
380 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm10 = xmm10[0],mem[0]
381 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm7 = xmm7[0],mem[0]
382 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm4 = xmm4[0],mem[0]
383 ; AVX1-ONLY-NEXT:    vmovaps %xmm4, 16(%r9)
384 ; AVX1-ONLY-NEXT:    vmovaps %xmm7, (%r9)
385 ; AVX1-ONLY-NEXT:    vmovaps %xmm10, 160(%r9)
386 ; AVX1-ONLY-NEXT:    vmovaps %xmm3, 176(%r9)
387 ; AVX1-ONLY-NEXT:    vmovaps %ymm12, 64(%r9)
388 ; AVX1-ONLY-NEXT:    vmovapd %ymm9, 192(%r9)
389 ; AVX1-ONLY-NEXT:    vmovapd %ymm8, 256(%r9)
390 ; AVX1-ONLY-NEXT:    vmovapd %ymm6, 224(%r9)
391 ; AVX1-ONLY-NEXT:    vmovaps %ymm2, 32(%r9)
392 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 96(%r9)
393 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 128(%r9)
394 ; AVX1-ONLY-NEXT:    vmovapd %ymm5, 288(%r9)
395 ; AVX1-ONLY-NEXT:    vzeroupper
396 ; AVX1-ONLY-NEXT:    retq
398 ; AVX2-ONLY-LABEL: store_i64_stride5_vf8:
399 ; AVX2-ONLY:       # %bb.0:
400 ; AVX2-ONLY-NEXT:    vmovaps 32(%rdi), %ymm5
401 ; AVX2-ONLY-NEXT:    vmovaps (%rdi), %ymm0
402 ; AVX2-ONLY-NEXT:    vmovaps (%rdx), %ymm1
403 ; AVX2-ONLY-NEXT:    vmovaps (%rcx), %ymm4
404 ; AVX2-ONLY-NEXT:    vmovaps (%r8), %ymm2
405 ; AVX2-ONLY-NEXT:    vmovaps 32(%r8), %ymm6
406 ; AVX2-ONLY-NEXT:    vmovaps (%rdx), %xmm7
407 ; AVX2-ONLY-NEXT:    vmovaps 32(%rdx), %xmm10
408 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm3
409 ; AVX2-ONLY-NEXT:    vbroadcastsd 8(%rsi), %ymm8
410 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm8 = ymm0[0,1,2,3],ymm8[4,5,6,7]
411 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm3 = ymm8[0,1,2,3,4,5],ymm3[6,7]
412 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm3 = ymm2[0,1],ymm3[2,3,4,5,6,7]
413 ; AVX2-ONLY-NEXT:    vmovaps (%rsi), %xmm8
414 ; AVX2-ONLY-NEXT:    vmovaps 32(%rsi), %xmm11
415 ; AVX2-ONLY-NEXT:    vinsertf128 $1, (%rcx), %ymm8, %ymm8
416 ; AVX2-ONLY-NEXT:    vmovaps (%rdi), %xmm9
417 ; AVX2-ONLY-NEXT:    vmovaps 32(%rdi), %xmm12
418 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm7, %ymm9, %ymm7
419 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm7 = ymm7[0],ymm8[0],ymm7[2],ymm8[2]
420 ; AVX2-ONLY-NEXT:    vmovddup {{.*#+}} xmm8 = mem[0,0]
421 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm9 = ymm5[0],mem[0],ymm5[2],mem[2]
422 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm9[4,5,6,7]
423 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1],ymm6[2,3],ymm8[4,5,6,7]
424 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm9
425 ; AVX2-ONLY-NEXT:    vbroadcastsd 40(%rsi), %ymm13
426 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm13 = ymm5[0,1,2,3],ymm13[4,5,6,7]
427 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm9 = ymm13[0,1,2,3,4,5],ymm9[6,7]
428 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm9 = ymm6[0,1],ymm9[2,3,4,5,6,7]
429 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 32(%rcx), %ymm11, %ymm11
430 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm10, %ymm12, %ymm10
431 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm10 = ymm10[0],ymm11[0],ymm10[2],ymm11[2]
432 ; AVX2-ONLY-NEXT:    vmovddup {{.*#+}} xmm11 = mem[0,0]
433 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm12 = ymm0[0],mem[0],ymm0[2],mem[2]
434 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1,2,3],ymm12[4,5,6,7]
435 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1],ymm2[2,3],ymm11[4,5,6,7]
436 ; AVX2-ONLY-NEXT:    vbroadcastsd 56(%rsi), %ymm12
437 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm12 = xmm12[0,1],mem[2,3]
438 ; AVX2-ONLY-NEXT:    vbroadcastsd 56(%rcx), %ymm13
439 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3],ymm13[4,5,6,7]
440 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3,4,5],ymm6[6,7]
441 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm13 = ymm1[1],ymm4[1],ymm1[3],ymm4[3]
442 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm13 = ymm13[0,2,3,3]
443 ; AVX2-ONLY-NEXT:    vbroadcastsd 24(%rsi), %ymm14
444 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm13 = ymm14[0,1],ymm13[2,3,4,5,6,7]
445 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1,2,3,4,5],ymm2[6,7]
446 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm5 = mem[2,3],ymm5[2,3]
447 ; AVX2-ONLY-NEXT:    vbroadcastsd 48(%rcx), %ymm14
448 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1],ymm14[2,3],ymm5[4,5,6,7]
449 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm6[4,5],ymm5[6,7]
450 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm4[0],ymm1[2],ymm4[2]
451 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
452 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5],ymm0[6,7]
453 ; AVX2-ONLY-NEXT:    vmovaps %ymm11, 64(%r9)
454 ; AVX2-ONLY-NEXT:    vmovaps %ymm10, 160(%r9)
455 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 96(%r9)
456 ; AVX2-ONLY-NEXT:    vmovaps %ymm9, 192(%r9)
457 ; AVX2-ONLY-NEXT:    vmovaps %ymm5, 256(%r9)
458 ; AVX2-ONLY-NEXT:    vmovaps %ymm8, 224(%r9)
459 ; AVX2-ONLY-NEXT:    vmovaps %ymm7, (%r9)
460 ; AVX2-ONLY-NEXT:    vmovaps %ymm3, 32(%r9)
461 ; AVX2-ONLY-NEXT:    vmovaps %ymm13, 128(%r9)
462 ; AVX2-ONLY-NEXT:    vmovaps %ymm12, 288(%r9)
463 ; AVX2-ONLY-NEXT:    vzeroupper
464 ; AVX2-ONLY-NEXT:    retq
466 ; AVX512F-LABEL: store_i64_stride5_vf8:
467 ; AVX512F:       # %bb.0:
468 ; AVX512F-NEXT:    vmovdqa64 (%rdi), %zmm2
469 ; AVX512F-NEXT:    vmovdqa64 (%rsi), %zmm3
470 ; AVX512F-NEXT:    vmovdqa64 (%rdx), %zmm4
471 ; AVX512F-NEXT:    vmovdqa64 (%rcx), %zmm5
472 ; AVX512F-NEXT:    vmovdqa64 (%r8), %zmm0
473 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm6 = <3,u,u,u,12,4,u,u>
474 ; AVX512F-NEXT:    vpermi2q %zmm2, %zmm3, %zmm6
475 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm1 = <u,3,11,u,u,u,4,12>
476 ; AVX512F-NEXT:    vpermi2q %zmm5, %zmm4, %zmm1
477 ; AVX512F-NEXT:    movb $49, %al
478 ; AVX512F-NEXT:    kmovw %eax, %k1
479 ; AVX512F-NEXT:    vmovdqa64 %zmm6, %zmm1 {%k1}
480 ; AVX512F-NEXT:    movb $8, %al
481 ; AVX512F-NEXT:    kmovw %eax, %k2
482 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
483 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm6 = <u,u,0,8,u,u,u,1>
484 ; AVX512F-NEXT:    vpermi2q %zmm5, %zmm4, %zmm6
485 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm7 = <0,8,u,u,u,1,9,u>
486 ; AVX512F-NEXT:    vpermi2q %zmm3, %zmm2, %zmm7
487 ; AVX512F-NEXT:    movb $-116, %al
488 ; AVX512F-NEXT:    kmovw %eax, %k2
489 ; AVX512F-NEXT:    vmovdqa64 %zmm6, %zmm7 {%k2}
490 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm6 = [0,1,2,3,8,5,6,7]
491 ; AVX512F-NEXT:    vpermi2q %zmm0, %zmm7, %zmm6
492 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm7 = <1,u,u,u,10,2,u,u>
493 ; AVX512F-NEXT:    vpermi2q %zmm4, %zmm5, %zmm7
494 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm8 = <u,u,2,10,u,u,u,3>
495 ; AVX512F-NEXT:    vpermi2q %zmm3, %zmm2, %zmm8
496 ; AVX512F-NEXT:    vmovdqa64 %zmm7, %zmm8 {%k1}
497 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm7 = [0,9,2,3,4,5,10,7]
498 ; AVX512F-NEXT:    vpermi2q %zmm0, %zmm8, %zmm7
499 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [13,5,13,5,13,5,13,5]
500 ; AVX512F-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
501 ; AVX512F-NEXT:    vpermi2q %zmm5, %zmm4, %zmm8
502 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm9 = <u,5,13,u,u,u,6,14>
503 ; AVX512F-NEXT:    vpermi2q %zmm3, %zmm2, %zmm9
504 ; AVX512F-NEXT:    movb $24, %al
505 ; AVX512F-NEXT:    kmovw %eax, %k1
506 ; AVX512F-NEXT:    vmovdqa64 %zmm8, %zmm9 {%k1}
507 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm8 = [12,1,2,3,4,13,6,7]
508 ; AVX512F-NEXT:    vpermi2q %zmm0, %zmm9, %zmm8
509 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm9 = [15,7,15,7,15,7,15,7]
510 ; AVX512F-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
511 ; AVX512F-NEXT:    vpermi2q %zmm3, %zmm2, %zmm9
512 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm2 = <6,14,u,u,u,7,15,u>
513 ; AVX512F-NEXT:    vpermi2q %zmm5, %zmm4, %zmm2
514 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm2 {%k1}
515 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm3 = [0,1,14,3,4,5,6,15]
516 ; AVX512F-NEXT:    vpermi2q %zmm0, %zmm2, %zmm3
517 ; AVX512F-NEXT:    vmovdqa64 %zmm3, 256(%r9)
518 ; AVX512F-NEXT:    vmovdqa64 %zmm8, 192(%r9)
519 ; AVX512F-NEXT:    vmovdqa64 %zmm1, 128(%r9)
520 ; AVX512F-NEXT:    vmovdqa64 %zmm7, 64(%r9)
521 ; AVX512F-NEXT:    vmovdqa64 %zmm6, (%r9)
522 ; AVX512F-NEXT:    vzeroupper
523 ; AVX512F-NEXT:    retq
525 ; AVX512BW-LABEL: store_i64_stride5_vf8:
526 ; AVX512BW:       # %bb.0:
527 ; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm2
528 ; AVX512BW-NEXT:    vmovdqa64 (%rsi), %zmm3
529 ; AVX512BW-NEXT:    vmovdqa64 (%rdx), %zmm4
530 ; AVX512BW-NEXT:    vmovdqa64 (%rcx), %zmm5
531 ; AVX512BW-NEXT:    vmovdqa64 (%r8), %zmm0
532 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm6 = <3,u,u,u,12,4,u,u>
533 ; AVX512BW-NEXT:    vpermi2q %zmm2, %zmm3, %zmm6
534 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm1 = <u,3,11,u,u,u,4,12>
535 ; AVX512BW-NEXT:    vpermi2q %zmm5, %zmm4, %zmm1
536 ; AVX512BW-NEXT:    movb $49, %al
537 ; AVX512BW-NEXT:    kmovd %eax, %k1
538 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm1 {%k1}
539 ; AVX512BW-NEXT:    movb $8, %al
540 ; AVX512BW-NEXT:    kmovd %eax, %k2
541 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
542 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm6 = <u,u,0,8,u,u,u,1>
543 ; AVX512BW-NEXT:    vpermi2q %zmm5, %zmm4, %zmm6
544 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm7 = <0,8,u,u,u,1,9,u>
545 ; AVX512BW-NEXT:    vpermi2q %zmm3, %zmm2, %zmm7
546 ; AVX512BW-NEXT:    movb $-116, %al
547 ; AVX512BW-NEXT:    kmovd %eax, %k2
548 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm7 {%k2}
549 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm6 = [0,1,2,3,8,5,6,7]
550 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm7, %zmm6
551 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm7 = <1,u,u,u,10,2,u,u>
552 ; AVX512BW-NEXT:    vpermi2q %zmm4, %zmm5, %zmm7
553 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm8 = <u,u,2,10,u,u,u,3>
554 ; AVX512BW-NEXT:    vpermi2q %zmm3, %zmm2, %zmm8
555 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm8 {%k1}
556 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm7 = [0,9,2,3,4,5,10,7]
557 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm8, %zmm7
558 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [13,5,13,5,13,5,13,5]
559 ; AVX512BW-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
560 ; AVX512BW-NEXT:    vpermi2q %zmm5, %zmm4, %zmm8
561 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm9 = <u,5,13,u,u,u,6,14>
562 ; AVX512BW-NEXT:    vpermi2q %zmm3, %zmm2, %zmm9
563 ; AVX512BW-NEXT:    movb $24, %al
564 ; AVX512BW-NEXT:    kmovd %eax, %k1
565 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm9 {%k1}
566 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm8 = [12,1,2,3,4,13,6,7]
567 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm9, %zmm8
568 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm9 = [15,7,15,7,15,7,15,7]
569 ; AVX512BW-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
570 ; AVX512BW-NEXT:    vpermi2q %zmm3, %zmm2, %zmm9
571 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm2 = <6,14,u,u,u,7,15,u>
572 ; AVX512BW-NEXT:    vpermi2q %zmm5, %zmm4, %zmm2
573 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm2 {%k1}
574 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm3 = [0,1,14,3,4,5,6,15]
575 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm2, %zmm3
576 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, 256(%r9)
577 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, 192(%r9)
578 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, 128(%r9)
579 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, 64(%r9)
580 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, (%r9)
581 ; AVX512BW-NEXT:    vzeroupper
582 ; AVX512BW-NEXT:    retq
583   %in.vec0 = load <8 x i64>, ptr %in.vecptr0, align 64
584   %in.vec1 = load <8 x i64>, ptr %in.vecptr1, align 64
585   %in.vec2 = load <8 x i64>, ptr %in.vecptr2, align 64
586   %in.vec3 = load <8 x i64>, ptr %in.vecptr3, align 64
587   %in.vec4 = load <8 x i64>, ptr %in.vecptr4, align 64
588   %1 = shufflevector <8 x i64> %in.vec0, <8 x i64> %in.vec1, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
589   %2 = shufflevector <8 x i64> %in.vec2, <8 x i64> %in.vec3, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
590   %3 = shufflevector <16 x i64> %1, <16 x i64> %2, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31>
591   %4 = shufflevector <8 x i64> %in.vec4, <8 x i64> poison, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
592   %5 = shufflevector <32 x i64> %3, <32 x i64> %4, <40 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39>
593   %interleaved.vec = shufflevector <40 x i64> %5, <40 x i64> poison, <40 x i32> <i32 0, i32 8, i32 16, i32 24, i32 32, i32 1, i32 9, i32 17, i32 25, i32 33, i32 2, i32 10, i32 18, i32 26, i32 34, i32 3, i32 11, i32 19, i32 27, i32 35, i32 4, i32 12, i32 20, i32 28, i32 36, i32 5, i32 13, i32 21, i32 29, i32 37, i32 6, i32 14, i32 22, i32 30, i32 38, i32 7, i32 15, i32 23, i32 31, i32 39>
594   store <40 x i64> %interleaved.vec, ptr %out.vec, align 64
595   ret void
598 define void @store_i64_stride5_vf16(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %in.vecptr4, ptr %out.vec) nounwind {
599 ; SSE-LABEL: store_i64_stride5_vf16:
600 ; SSE:       # %bb.0:
601 ; SSE-NEXT:    subq $280, %rsp # imm = 0x118
602 ; SSE-NEXT:    movapd (%rdi), %xmm3
603 ; SSE-NEXT:    movapd 16(%rdi), %xmm4
604 ; SSE-NEXT:    movapd 32(%rdi), %xmm6
605 ; SSE-NEXT:    movapd (%rsi), %xmm5
606 ; SSE-NEXT:    movapd 16(%rsi), %xmm8
607 ; SSE-NEXT:    movapd 32(%rsi), %xmm10
608 ; SSE-NEXT:    movapd (%rdx), %xmm7
609 ; SSE-NEXT:    movapd 16(%rdx), %xmm9
610 ; SSE-NEXT:    movapd 32(%rdx), %xmm12
611 ; SSE-NEXT:    movapd (%rcx), %xmm11
612 ; SSE-NEXT:    movapd 16(%rcx), %xmm13
613 ; SSE-NEXT:    movapd 32(%rcx), %xmm15
614 ; SSE-NEXT:    movapd (%r8), %xmm0
615 ; SSE-NEXT:    movapd 16(%r8), %xmm1
616 ; SSE-NEXT:    movapd 32(%r8), %xmm2
617 ; SSE-NEXT:    movapd %xmm3, %xmm14
618 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm14 = xmm14[0],xmm5[0]
619 ; SSE-NEXT:    movapd %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
620 ; SSE-NEXT:    movsd {{.*#+}} xmm3 = xmm0[0],xmm3[1]
621 ; SSE-NEXT:    movapd %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
622 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm7[1]
623 ; SSE-NEXT:    movapd %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
624 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm7 = xmm7[0],xmm11[0]
625 ; SSE-NEXT:    movapd %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
626 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm11 = xmm11[1],xmm0[1]
627 ; SSE-NEXT:    movapd %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
628 ; SSE-NEXT:    movapd %xmm4, %xmm0
629 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm8[0]
630 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
631 ; SSE-NEXT:    movsd {{.*#+}} xmm4 = xmm1[0],xmm4[1]
632 ; SSE-NEXT:    movapd %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
633 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm9[1]
634 ; SSE-NEXT:    movapd %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
635 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm9 = xmm9[0],xmm13[0]
636 ; SSE-NEXT:    movapd %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
637 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm13 = xmm13[1],xmm1[1]
638 ; SSE-NEXT:    movapd %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
639 ; SSE-NEXT:    movapd %xmm6, %xmm0
640 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm10[0]
641 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
642 ; SSE-NEXT:    movsd {{.*#+}} xmm6 = xmm2[0],xmm6[1]
643 ; SSE-NEXT:    movapd %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
644 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm10 = xmm10[1],xmm12[1]
645 ; SSE-NEXT:    movapd %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
646 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm12 = xmm12[0],xmm15[0]
647 ; SSE-NEXT:    movapd %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
648 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm15 = xmm15[1],xmm2[1]
649 ; SSE-NEXT:    movapd %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
650 ; SSE-NEXT:    movapd 48(%rdi), %xmm1
651 ; SSE-NEXT:    movapd 48(%rsi), %xmm2
652 ; SSE-NEXT:    movapd %xmm1, %xmm0
653 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
654 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
655 ; SSE-NEXT:    movapd 48(%r8), %xmm0
656 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
657 ; SSE-NEXT:    movapd %xmm1, (%rsp) # 16-byte Spill
658 ; SSE-NEXT:    movapd 48(%rdx), %xmm1
659 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
660 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
661 ; SSE-NEXT:    movapd 48(%rcx), %xmm2
662 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
663 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
664 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
665 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
666 ; SSE-NEXT:    movapd 64(%rdi), %xmm1
667 ; SSE-NEXT:    movapd 64(%rsi), %xmm2
668 ; SSE-NEXT:    movapd %xmm1, %xmm0
669 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
670 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
671 ; SSE-NEXT:    movapd 64(%r8), %xmm0
672 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
673 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
674 ; SSE-NEXT:    movapd 64(%rdx), %xmm1
675 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
676 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
677 ; SSE-NEXT:    movapd 64(%rcx), %xmm15
678 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm15[0]
679 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
680 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm15 = xmm15[1],xmm0[1]
681 ; SSE-NEXT:    movapd 80(%rdi), %xmm14
682 ; SSE-NEXT:    movapd 80(%rsi), %xmm13
683 ; SSE-NEXT:    movapd %xmm14, %xmm0
684 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm13[0]
685 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
686 ; SSE-NEXT:    movapd 80(%r8), %xmm0
687 ; SSE-NEXT:    movsd {{.*#+}} xmm14 = xmm0[0],xmm14[1]
688 ; SSE-NEXT:    movapd 80(%rdx), %xmm10
689 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm13 = xmm13[1],xmm10[1]
690 ; SSE-NEXT:    movapd 80(%rcx), %xmm9
691 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm10 = xmm10[0],xmm9[0]
692 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm9 = xmm9[1],xmm0[1]
693 ; SSE-NEXT:    movapd 96(%rdi), %xmm11
694 ; SSE-NEXT:    movapd 96(%rsi), %xmm8
695 ; SSE-NEXT:    movapd %xmm11, %xmm12
696 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm12 = xmm12[0],xmm8[0]
697 ; SSE-NEXT:    movapd 96(%r8), %xmm2
698 ; SSE-NEXT:    movsd {{.*#+}} xmm11 = xmm2[0],xmm11[1]
699 ; SSE-NEXT:    movapd 96(%rdx), %xmm6
700 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm6[1]
701 ; SSE-NEXT:    movapd 96(%rcx), %xmm3
702 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm6 = xmm6[0],xmm3[0]
703 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm3 = xmm3[1],xmm2[1]
704 ; SSE-NEXT:    movapd 112(%rdi), %xmm4
705 ; SSE-NEXT:    movapd 112(%rsi), %xmm2
706 ; SSE-NEXT:    movapd %xmm4, %xmm5
707 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm5 = xmm5[0],xmm2[0]
708 ; SSE-NEXT:    movapd 112(%r8), %xmm7
709 ; SSE-NEXT:    movsd {{.*#+}} xmm4 = xmm7[0],xmm4[1]
710 ; SSE-NEXT:    movapd 112(%rdx), %xmm1
711 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
712 ; SSE-NEXT:    movapd 112(%rcx), %xmm0
713 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm0[0]
714 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm7[1]
715 ; SSE-NEXT:    movapd %xmm0, 624(%r9)
716 ; SSE-NEXT:    movapd %xmm2, 608(%r9)
717 ; SSE-NEXT:    movapd %xmm4, 592(%r9)
718 ; SSE-NEXT:    movapd %xmm1, 576(%r9)
719 ; SSE-NEXT:    movapd %xmm5, 560(%r9)
720 ; SSE-NEXT:    movapd %xmm3, 544(%r9)
721 ; SSE-NEXT:    movapd %xmm8, 528(%r9)
722 ; SSE-NEXT:    movapd %xmm11, 512(%r9)
723 ; SSE-NEXT:    movapd %xmm6, 496(%r9)
724 ; SSE-NEXT:    movapd %xmm12, 480(%r9)
725 ; SSE-NEXT:    movapd %xmm9, 464(%r9)
726 ; SSE-NEXT:    movapd %xmm13, 448(%r9)
727 ; SSE-NEXT:    movapd %xmm14, 432(%r9)
728 ; SSE-NEXT:    movapd %xmm10, 416(%r9)
729 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
730 ; SSE-NEXT:    movaps %xmm0, 400(%r9)
731 ; SSE-NEXT:    movapd %xmm15, 384(%r9)
732 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
733 ; SSE-NEXT:    movaps %xmm0, 368(%r9)
734 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
735 ; SSE-NEXT:    movaps %xmm0, 352(%r9)
736 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
737 ; SSE-NEXT:    movaps %xmm0, 336(%r9)
738 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
739 ; SSE-NEXT:    movaps %xmm0, 320(%r9)
740 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
741 ; SSE-NEXT:    movaps %xmm0, 304(%r9)
742 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
743 ; SSE-NEXT:    movaps %xmm0, 288(%r9)
744 ; SSE-NEXT:    movaps (%rsp), %xmm0 # 16-byte Reload
745 ; SSE-NEXT:    movaps %xmm0, 272(%r9)
746 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
747 ; SSE-NEXT:    movaps %xmm0, 256(%r9)
748 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
749 ; SSE-NEXT:    movaps %xmm0, 240(%r9)
750 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
751 ; SSE-NEXT:    movaps %xmm0, 224(%r9)
752 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
753 ; SSE-NEXT:    movaps %xmm0, 208(%r9)
754 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
755 ; SSE-NEXT:    movaps %xmm0, 192(%r9)
756 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
757 ; SSE-NEXT:    movaps %xmm0, 176(%r9)
758 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
759 ; SSE-NEXT:    movaps %xmm0, 160(%r9)
760 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
761 ; SSE-NEXT:    movaps %xmm0, 144(%r9)
762 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
763 ; SSE-NEXT:    movaps %xmm0, 128(%r9)
764 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
765 ; SSE-NEXT:    movaps %xmm0, 112(%r9)
766 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
767 ; SSE-NEXT:    movaps %xmm0, 96(%r9)
768 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
769 ; SSE-NEXT:    movaps %xmm0, 80(%r9)
770 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
771 ; SSE-NEXT:    movaps %xmm0, 64(%r9)
772 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
773 ; SSE-NEXT:    movaps %xmm0, 48(%r9)
774 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
775 ; SSE-NEXT:    movaps %xmm0, 32(%r9)
776 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
777 ; SSE-NEXT:    movaps %xmm0, 16(%r9)
778 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
779 ; SSE-NEXT:    movaps %xmm0, (%r9)
780 ; SSE-NEXT:    addq $280, %rsp # imm = 0x118
781 ; SSE-NEXT:    retq
783 ; AVX1-ONLY-LABEL: store_i64_stride5_vf16:
784 ; AVX1-ONLY:       # %bb.0:
785 ; AVX1-ONLY-NEXT:    subq $216, %rsp
786 ; AVX1-ONLY-NEXT:    vmovapd 32(%rdi), %ymm5
787 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %ymm8
788 ; AVX1-ONLY-NEXT:    vmovapd 96(%rdi), %ymm2
789 ; AVX1-ONLY-NEXT:    vmovaps (%rcx), %ymm0
790 ; AVX1-ONLY-NEXT:    vmovaps 64(%rcx), %ymm1
791 ; AVX1-ONLY-NEXT:    vpermilps {{.*#+}} xmm3 = mem[2,3,2,3]
792 ; AVX1-ONLY-NEXT:    vmovaps 16(%rdx), %xmm11
793 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm11[1],ymm0[3],ymm11[3]
794 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm3[0,1],ymm0[2,3,4,5,6,7]
795 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
796 ; AVX1-ONLY-NEXT:    vpermilps {{.*#+}} xmm0 = mem[2,3,2,3]
797 ; AVX1-ONLY-NEXT:    vmovaps 80(%rdx), %xmm7
798 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm7[1],ymm1[3],ymm7[3]
799 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3,4,5,6,7]
800 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
801 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm2[0],mem[0],ymm2[2],mem[2]
802 ; AVX1-ONLY-NEXT:    vmovapd 96(%rcx), %xmm1
803 ; AVX1-ONLY-NEXT:    vmovapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
804 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[2,3,2,3]
805 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
806 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
807 ; AVX1-ONLY-NEXT:    vmovaps (%rdx), %xmm0
808 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
809 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
810 ; AVX1-ONLY-NEXT:    vbroadcastsd 8(%rsi), %ymm1
811 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm8[0,1,2,3],ymm1[4,5,6,7]
812 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm12 = ymm1[0,1,2,3,4,5],ymm0[6,7]
813 ; AVX1-ONLY-NEXT:    vpermilps {{.*#+}} xmm0 = mem[2,3,2,3]
814 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm8[0],mem[0],ymm8[2],mem[2]
815 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm6 = ymm0[0,1,2,3],ymm1[4,5,6,7]
816 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdx), %xmm0
817 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
818 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
819 ; AVX1-ONLY-NEXT:    vbroadcastsd 40(%rsi), %ymm1
820 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm5[0,1],ymm1[2,3]
821 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm13 = ymm1[0,1,2],ymm0[3]
822 ; AVX1-ONLY-NEXT:    vpermilps {{.*#+}} xmm0 = mem[2,3,2,3]
823 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm5[0],mem[0],ymm5[2],mem[2]
824 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm15 = ymm0[0,1],ymm1[2,3]
825 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdi), %ymm0
826 ; AVX1-ONLY-NEXT:    vbroadcastsd 72(%rsi), %ymm1
827 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
828 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdx), %xmm10
829 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm3
830 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm1[0,1,2,3,4,5],ymm3[6,7]
831 ; AVX1-ONLY-NEXT:    vpermilps {{.*#+}} xmm1 = mem[2,3,2,3]
832 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm0[0],mem[0],ymm0[2],mem[2]
833 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
834 ; AVX1-ONLY-NEXT:    vbroadcastsd 104(%rsi), %ymm3
835 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm3 = ymm2[0,1],ymm3[2,3]
836 ; AVX1-ONLY-NEXT:    vmovaps 96(%rdx), %xmm14
837 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm14, %ymm0, %ymm9
838 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm3 = ymm3[0,1,2],ymm9[3]
839 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm9 = xmm11[0],mem[0]
840 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm8 = ymm9[0,1,2,3],ymm8[4,5,6,7]
841 ; AVX1-ONLY-NEXT:    vmovaps (%r8), %ymm9
842 ; AVX1-ONLY-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm11 # 32-byte Folded Reload
843 ; AVX1-ONLY-NEXT:    # ymm11 = mem[0,1,2,3,4,5],ymm9[6,7]
844 ; AVX1-ONLY-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
845 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm11 = ymm9[0,1],ymm12[2,3,4,5,6,7]
846 ; AVX1-ONLY-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
847 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1],ymm9[2,3],ymm6[4,5,6,7]
848 ; AVX1-ONLY-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
849 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm6 = ymm8[0,1,2,3],ymm9[4,5],ymm8[6,7]
850 ; AVX1-ONLY-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
851 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm5 = mem[2,3],ymm5[2,3]
852 ; AVX1-ONLY-NEXT:    vmovapd 48(%rdx), %xmm6
853 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm5 = ymm6[0],ymm5[0],ymm6[2],ymm5[3]
854 ; AVX1-ONLY-NEXT:    vmovapd 48(%rsi), %xmm8
855 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm6 = xmm8[1],xmm6[1]
856 ; AVX1-ONLY-NEXT:    vbroadcastsd 56(%rcx), %ymm8
857 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm6 = ymm6[0,1],ymm8[2,3]
858 ; AVX1-ONLY-NEXT:    vmovapd 32(%r8), %ymm8
859 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm9 = ymm8[0],ymm13[1,2,3]
860 ; AVX1-ONLY-NEXT:    vmovupd %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
861 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm9 = ymm15[0],ymm8[1],ymm15[2,3]
862 ; AVX1-ONLY-NEXT:    vmovupd %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
863 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm11 = ymm5[0,1],ymm8[2],ymm5[3]
864 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm5 = ymm6[0,1,2],ymm8[3]
865 ; AVX1-ONLY-NEXT:    vmovupd %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
866 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm6 = xmm7[0],mem[0]
867 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm6[0,1,2,3],ymm0[4,5,6,7]
868 ; AVX1-ONLY-NEXT:    vmovaps 64(%r8), %ymm9
869 ; AVX1-ONLY-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm5 # 32-byte Folded Reload
870 ; AVX1-ONLY-NEXT:    # ymm5 = mem[0,1,2,3,4,5],ymm9[6,7]
871 ; AVX1-ONLY-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
872 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm7 = ymm9[0,1],ymm4[2,3,4,5,6,7]
873 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm1[0,1],ymm9[2,3],ymm1[4,5,6,7]
874 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm6 = ymm0[0,1,2,3],ymm9[4,5],ymm0[6,7]
875 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm1 = mem[2,3],ymm2[2,3]
876 ; AVX1-ONLY-NEXT:    vmovapd 112(%rdx), %xmm2
877 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm9 = ymm2[0],ymm1[0],ymm2[2],ymm1[3]
878 ; AVX1-ONLY-NEXT:    vmovapd 112(%rsi), %xmm1
879 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
880 ; AVX1-ONLY-NEXT:    vbroadcastsd 120(%rcx), %ymm2
881 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm1[0,1],ymm2[2,3]
882 ; AVX1-ONLY-NEXT:    vmovapd 96(%r8), %ymm0
883 ; AVX1-ONLY-NEXT:    vblendpd $13, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm4 # 32-byte Folded Reload
884 ; AVX1-ONLY-NEXT:    # ymm4 = mem[0],ymm0[1],mem[2,3]
885 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm3 = ymm0[0],ymm3[1,2,3]
886 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm9 = ymm9[0,1],ymm0[2],ymm9[3]
887 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm2[0,1,2],ymm0[3]
888 ; AVX1-ONLY-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm14, %xmm1 # 16-byte Folded Reload
889 ; AVX1-ONLY-NEXT:    # xmm1 = xmm14[0],mem[0]
890 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdi), %xmm14
891 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm14 = xmm14[0],mem[0]
892 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm10 = xmm10[0],mem[0]
893 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %xmm12
894 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm12 = xmm12[0],mem[0]
895 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
896 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
897 ; AVX1-ONLY-NEXT:    vmovaps 96(%rdi), %xmm13
898 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm13 = xmm13[0],mem[0]
899 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %xmm15
900 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm15 = xmm15[0],mem[0]
901 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
902 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm8 = xmm8[0],mem[0]
903 ; AVX1-ONLY-NEXT:    vmovaps %xmm8, 16(%r9)
904 ; AVX1-ONLY-NEXT:    vmovaps %xmm15, (%r9)
905 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 496(%r9)
906 ; AVX1-ONLY-NEXT:    vmovaps %xmm13, 480(%r9)
907 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 176(%r9)
908 ; AVX1-ONLY-NEXT:    vmovaps %xmm12, 160(%r9)
909 ; AVX1-ONLY-NEXT:    vmovaps %xmm10, 336(%r9)
910 ; AVX1-ONLY-NEXT:    vmovaps %xmm14, 320(%r9)
911 ; AVX1-ONLY-NEXT:    vmovapd %ymm9, 576(%r9)
912 ; AVX1-ONLY-NEXT:    vmovapd %ymm3, 512(%r9)
913 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, 384(%r9)
914 ; AVX1-ONLY-NEXT:    vmovaps %ymm7, 352(%r9)
915 ; AVX1-ONLY-NEXT:    vmovapd %ymm11, 256(%r9)
916 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
917 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 224(%r9)
918 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
919 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 192(%r9)
920 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
921 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 64(%r9)
922 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
923 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 32(%r9)
924 ; AVX1-ONLY-NEXT:    vmovapd %ymm2, 608(%r9)
925 ; AVX1-ONLY-NEXT:    vmovapd %ymm4, 544(%r9)
926 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
927 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 448(%r9)
928 ; AVX1-ONLY-NEXT:    vmovaps %ymm6, 416(%r9)
929 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
930 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 288(%r9)
931 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
932 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 128(%r9)
933 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
934 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 96(%r9)
935 ; AVX1-ONLY-NEXT:    addq $216, %rsp
936 ; AVX1-ONLY-NEXT:    vzeroupper
937 ; AVX1-ONLY-NEXT:    retq
939 ; AVX2-ONLY-LABEL: store_i64_stride5_vf16:
940 ; AVX2-ONLY:       # %bb.0:
941 ; AVX2-ONLY-NEXT:    subq $264, %rsp # imm = 0x108
942 ; AVX2-ONLY-NEXT:    vmovaps 96(%rdi), %ymm15
943 ; AVX2-ONLY-NEXT:    vmovaps 64(%rdi), %ymm14
944 ; AVX2-ONLY-NEXT:    vmovaps 32(%rdi), %ymm11
945 ; AVX2-ONLY-NEXT:    vmovaps (%rdi), %ymm6
946 ; AVX2-ONLY-NEXT:    vmovaps (%rsi), %xmm1
947 ; AVX2-ONLY-NEXT:    vmovaps 32(%rsi), %xmm9
948 ; AVX2-ONLY-NEXT:    vmovaps 64(%rsi), %xmm0
949 ; AVX2-ONLY-NEXT:    vmovaps 96(%rsi), %xmm3
950 ; AVX2-ONLY-NEXT:    vinsertf128 $1, (%rcx), %ymm1, %ymm7
951 ; AVX2-ONLY-NEXT:    vmovaps (%rdi), %xmm8
952 ; AVX2-ONLY-NEXT:    vmovaps 32(%rdi), %xmm10
953 ; AVX2-ONLY-NEXT:    vmovaps 64(%rdi), %xmm1
954 ; AVX2-ONLY-NEXT:    vmovaps (%rdx), %xmm12
955 ; AVX2-ONLY-NEXT:    vmovaps 32(%rdx), %xmm13
956 ; AVX2-ONLY-NEXT:    vmovaps 64(%rdx), %xmm2
957 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm12, %ymm8, %ymm8
958 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm8[0],ymm7[0],ymm8[2],ymm7[2]
959 ; AVX2-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
960 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm7
961 ; AVX2-ONLY-NEXT:    vbroadcastsd 8(%rsi), %ymm8
962 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm8 = ymm6[0,1,2,3],ymm8[4,5,6,7]
963 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm8[0,1,2,3,4,5],ymm7[6,7]
964 ; AVX2-ONLY-NEXT:    vmovddup {{.*#+}} xmm8 = mem[0,0]
965 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm12 = ymm6[0],mem[0],ymm6[2],mem[2]
966 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm8[0,1,2,3],ymm12[4,5,6,7]
967 ; AVX2-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
968 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 32(%rcx), %ymm9, %ymm9
969 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm13, %ymm10, %ymm10
970 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm10[0],ymm9[0],ymm10[2],ymm9[2]
971 ; AVX2-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
972 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm13, %ymm0, %ymm9
973 ; AVX2-ONLY-NEXT:    vbroadcastsd 40(%rsi), %ymm10
974 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm10 = ymm11[0,1,2,3],ymm10[4,5,6,7]
975 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm10[0,1,2,3,4,5],ymm9[6,7]
976 ; AVX2-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
977 ; AVX2-ONLY-NEXT:    vmovddup {{.*#+}} xmm10 = mem[0,0]
978 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm12 = ymm11[0],mem[0],ymm11[2],mem[2]
979 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm10[0,1,2,3],ymm12[4,5,6,7]
980 ; AVX2-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
981 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 64(%rcx), %ymm0, %ymm0
982 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
983 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
984 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
985 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
986 ; AVX2-ONLY-NEXT:    vbroadcastsd 72(%rsi), %ymm1
987 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm14[0,1,2,3],ymm1[4,5,6,7]
988 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
989 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
990 ; AVX2-ONLY-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
991 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm14[0],mem[0],ymm14[2],mem[2]
992 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
993 ; AVX2-ONLY-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
994 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 96(%rcx), %ymm3, %ymm0
995 ; AVX2-ONLY-NEXT:    vmovaps 96(%rdi), %xmm1
996 ; AVX2-ONLY-NEXT:    vmovaps 96(%rdx), %xmm2
997 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
998 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
999 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1000 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
1001 ; AVX2-ONLY-NEXT:    vbroadcastsd 104(%rsi), %ymm1
1002 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm15[0,1,2,3],ymm1[4,5,6,7]
1003 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
1004 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1005 ; AVX2-ONLY-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
1006 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm15[0],mem[0],ymm15[2],mem[2]
1007 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
1008 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1009 ; AVX2-ONLY-NEXT:    vbroadcastsd 56(%rsi), %ymm0
1010 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
1011 ; AVX2-ONLY-NEXT:    vbroadcastsd 56(%rcx), %ymm1
1012 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm9 = ymm0[0,1,2,3],ymm1[4,5,6,7]
1013 ; AVX2-ONLY-NEXT:    vbroadcastsd 120(%rsi), %ymm1
1014 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],mem[2,3]
1015 ; AVX2-ONLY-NEXT:    vbroadcastsd 120(%rcx), %ymm2
1016 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm2[4,5,6,7]
1017 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1018 ; AVX2-ONLY-NEXT:    vmovaps (%rdx), %ymm1
1019 ; AVX2-ONLY-NEXT:    vmovaps (%rcx), %ymm0
1020 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm7 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
1021 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm7 = ymm7[0,2,3,3]
1022 ; AVX2-ONLY-NEXT:    vbroadcastsd 24(%rsi), %ymm8
1023 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm8[0,1],ymm7[2,3,4,5,6,7]
1024 ; AVX2-ONLY-NEXT:    vmovaps 64(%rdx), %ymm3
1025 ; AVX2-ONLY-NEXT:    vmovaps 64(%rcx), %ymm2
1026 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm7 = ymm3[1],ymm2[1],ymm3[3],ymm2[3]
1027 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm7 = ymm7[0,2,3,3]
1028 ; AVX2-ONLY-NEXT:    vbroadcastsd 88(%rsi), %ymm8
1029 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm7 = ymm8[0,1],ymm7[2,3,4,5,6,7]
1030 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
1031 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm6[2,3]
1032 ; AVX2-ONLY-NEXT:    vmovaps (%r8), %ymm1
1033 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm13 = ymm1[0,1],ymm5[2,3,4,5,6,7]
1034 ; AVX2-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm12 # 32-byte Folded Reload
1035 ; AVX2-ONLY-NEXT:    # ymm12 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
1036 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],ymm1[6,7]
1037 ; AVX2-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1038 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm10 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
1039 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = mem[2,3],ymm11[2,3]
1040 ; AVX2-ONLY-NEXT:    vbroadcastsd 48(%rcx), %ymm11
1041 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm11 = ymm0[0,1],ymm11[2,3],ymm0[4,5,6,7]
1042 ; AVX2-ONLY-NEXT:    vmovaps 32(%r8), %ymm0
1043 ; AVX2-ONLY-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm8 # 32-byte Folded Reload
1044 ; AVX2-ONLY-NEXT:    # ymm8 = ymm0[0,1],mem[2,3,4,5,6,7]
1045 ; AVX2-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm6 # 32-byte Folded Reload
1046 ; AVX2-ONLY-NEXT:    # ymm6 = mem[0,1],ymm0[2,3],mem[4,5,6,7]
1047 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5],ymm0[6,7]
1048 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm11[0,1,2,3],ymm0[4,5],ymm11[6,7]
1049 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
1050 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm2 = ymm2[2,3],ymm14[2,3]
1051 ; AVX2-ONLY-NEXT:    vmovaps 64(%r8), %ymm3
1052 ; AVX2-ONLY-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm11 # 32-byte Folded Reload
1053 ; AVX2-ONLY-NEXT:    # ymm11 = ymm3[0,1],mem[2,3,4,5,6,7]
1054 ; AVX2-ONLY-NEXT:    vblendps $243, (%rsp), %ymm3, %ymm14 # 32-byte Folded Reload
1055 ; AVX2-ONLY-NEXT:    # ymm14 = mem[0,1],ymm3[2,3],mem[4,5,6,7]
1056 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5],ymm3[6,7]
1057 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5],ymm2[6,7]
1058 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm3 = mem[2,3],ymm15[2,3]
1059 ; AVX2-ONLY-NEXT:    vbroadcastsd 112(%rcx), %ymm15
1060 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1],ymm15[2,3],ymm3[4,5,6,7]
1061 ; AVX2-ONLY-NEXT:    vmovaps 96(%r8), %ymm15
1062 ; AVX2-ONLY-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm1 # 32-byte Folded Reload
1063 ; AVX2-ONLY-NEXT:    # ymm1 = ymm15[0,1],mem[2,3,4,5,6,7]
1064 ; AVX2-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm0 # 32-byte Folded Reload
1065 ; AVX2-ONLY-NEXT:    # ymm0 = mem[0,1],ymm15[2,3],mem[4,5,6,7]
1066 ; AVX2-ONLY-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm4 # 32-byte Folded Reload
1067 ; AVX2-ONLY-NEXT:    # ymm4 = mem[0,1,2,3,4,5],ymm15[6,7]
1068 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm15[4,5],ymm3[6,7]
1069 ; AVX2-ONLY-NEXT:    vmovaps %ymm3, 576(%r9)
1070 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 544(%r9)
1071 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 512(%r9)
1072 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1073 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 480(%r9)
1074 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 416(%r9)
1075 ; AVX2-ONLY-NEXT:    vmovaps %ymm14, 384(%r9)
1076 ; AVX2-ONLY-NEXT:    vmovaps %ymm11, 352(%r9)
1077 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1078 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 320(%r9)
1079 ; AVX2-ONLY-NEXT:    vmovaps %ymm5, 256(%r9)
1080 ; AVX2-ONLY-NEXT:    vmovaps %ymm6, 224(%r9)
1081 ; AVX2-ONLY-NEXT:    vmovaps %ymm8, 192(%r9)
1082 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1083 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 160(%r9)
1084 ; AVX2-ONLY-NEXT:    vmovaps %ymm10, 96(%r9)
1085 ; AVX2-ONLY-NEXT:    vmovaps %ymm12, 64(%r9)
1086 ; AVX2-ONLY-NEXT:    vmovaps %ymm13, 32(%r9)
1087 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1088 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, (%r9)
1089 ; AVX2-ONLY-NEXT:    vmovaps %ymm7, 448(%r9)
1090 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1091 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 128(%r9)
1092 ; AVX2-ONLY-NEXT:    vmovaps %ymm4, 608(%r9)
1093 ; AVX2-ONLY-NEXT:    vmovaps %ymm9, 288(%r9)
1094 ; AVX2-ONLY-NEXT:    addq $264, %rsp # imm = 0x108
1095 ; AVX2-ONLY-NEXT:    vzeroupper
1096 ; AVX2-ONLY-NEXT:    retq
1098 ; AVX512F-LABEL: store_i64_stride5_vf16:
1099 ; AVX512F:       # %bb.0:
1100 ; AVX512F-NEXT:    vmovdqa64 (%rdi), %zmm1
1101 ; AVX512F-NEXT:    vmovdqa64 64(%rdi), %zmm0
1102 ; AVX512F-NEXT:    vmovdqa64 (%rsi), %zmm2
1103 ; AVX512F-NEXT:    vmovdqa64 64(%rsi), %zmm9
1104 ; AVX512F-NEXT:    vmovdqa64 (%rdx), %zmm6
1105 ; AVX512F-NEXT:    vmovdqa64 64(%rdx), %zmm10
1106 ; AVX512F-NEXT:    vmovdqa64 (%rcx), %zmm5
1107 ; AVX512F-NEXT:    vmovdqa64 64(%rcx), %zmm12
1108 ; AVX512F-NEXT:    vmovdqa64 (%r8), %zmm4
1109 ; AVX512F-NEXT:    vmovdqa64 64(%r8), %zmm11
1110 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm8 = <3,u,u,u,12,4,u,u>
1111 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm13
1112 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm8, %zmm13
1113 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm7 = <u,3,11,u,u,u,4,12>
1114 ; AVX512F-NEXT:    vmovdqa64 %zmm10, %zmm3
1115 ; AVX512F-NEXT:    vpermt2q %zmm12, %zmm7, %zmm3
1116 ; AVX512F-NEXT:    movb $49, %al
1117 ; AVX512F-NEXT:    kmovw %eax, %k1
1118 ; AVX512F-NEXT:    vmovdqa64 %zmm13, %zmm3 {%k1}
1119 ; AVX512F-NEXT:    movb $8, %al
1120 ; AVX512F-NEXT:    kmovw %eax, %k2
1121 ; AVX512F-NEXT:    vmovdqa64 %zmm11, %zmm3 {%k2}
1122 ; AVX512F-NEXT:    vpermi2q %zmm1, %zmm2, %zmm8
1123 ; AVX512F-NEXT:    vpermi2q %zmm5, %zmm6, %zmm7
1124 ; AVX512F-NEXT:    vmovdqa64 %zmm8, %zmm7 {%k1}
1125 ; AVX512F-NEXT:    vmovdqa64 %zmm4, %zmm7 {%k2}
1126 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm15 = <u,u,0,8,u,u,u,1>
1127 ; AVX512F-NEXT:    vmovdqa64 %zmm6, %zmm13
1128 ; AVX512F-NEXT:    vpermt2q %zmm5, %zmm15, %zmm13
1129 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm16 = <0,8,u,u,u,1,9,u>
1130 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm8
1131 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm16, %zmm8
1132 ; AVX512F-NEXT:    movb $-116, %al
1133 ; AVX512F-NEXT:    kmovw %eax, %k3
1134 ; AVX512F-NEXT:    vmovdqa64 %zmm13, %zmm8 {%k3}
1135 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm17 = [0,1,2,3,8,5,6,7]
1136 ; AVX512F-NEXT:    vpermt2q %zmm4, %zmm17, %zmm8
1137 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm18 = [15,7,15,7,15,7,15,7]
1138 ; AVX512F-NEXT:    # zmm18 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1139 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm19
1140 ; AVX512F-NEXT:    vpermt2q %zmm9, %zmm18, %zmm19
1141 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm14 = <6,14,u,u,u,7,15,u>
1142 ; AVX512F-NEXT:    vmovdqa64 %zmm10, %zmm13
1143 ; AVX512F-NEXT:    vpermt2q %zmm12, %zmm14, %zmm13
1144 ; AVX512F-NEXT:    movb $24, %al
1145 ; AVX512F-NEXT:    kmovw %eax, %k2
1146 ; AVX512F-NEXT:    vmovdqa64 %zmm19, %zmm13 {%k2}
1147 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm19 = [0,1,14,3,4,5,6,15]
1148 ; AVX512F-NEXT:    vpermt2q %zmm11, %zmm19, %zmm13
1149 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm20 = [13,5,13,5,13,5,13,5]
1150 ; AVX512F-NEXT:    # zmm20 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1151 ; AVX512F-NEXT:    vmovdqa64 %zmm10, %zmm21
1152 ; AVX512F-NEXT:    vpermt2q %zmm12, %zmm20, %zmm21
1153 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm22 = <u,5,13,u,u,u,6,14>
1154 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm23
1155 ; AVX512F-NEXT:    vpermt2q %zmm9, %zmm22, %zmm23
1156 ; AVX512F-NEXT:    vmovdqa64 %zmm21, %zmm23 {%k2}
1157 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm21 = [12,1,2,3,4,13,6,7]
1158 ; AVX512F-NEXT:    vpermt2q %zmm11, %zmm21, %zmm23
1159 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm24 = <1,u,u,u,10,2,u,u>
1160 ; AVX512F-NEXT:    vmovdqa64 %zmm12, %zmm25
1161 ; AVX512F-NEXT:    vpermt2q %zmm10, %zmm24, %zmm25
1162 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm26 = <u,u,2,10,u,u,u,3>
1163 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm27
1164 ; AVX512F-NEXT:    vpermt2q %zmm9, %zmm26, %zmm27
1165 ; AVX512F-NEXT:    vmovdqa64 %zmm25, %zmm27 {%k1}
1166 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm25 = [0,9,2,3,4,5,10,7]
1167 ; AVX512F-NEXT:    vpermt2q %zmm11, %zmm25, %zmm27
1168 ; AVX512F-NEXT:    vpermt2q %zmm12, %zmm15, %zmm10
1169 ; AVX512F-NEXT:    vpermt2q %zmm9, %zmm16, %zmm0
1170 ; AVX512F-NEXT:    vmovdqa64 %zmm10, %zmm0 {%k3}
1171 ; AVX512F-NEXT:    vpermt2q %zmm11, %zmm17, %zmm0
1172 ; AVX512F-NEXT:    vpermi2q %zmm2, %zmm1, %zmm18
1173 ; AVX512F-NEXT:    vpermi2q %zmm5, %zmm6, %zmm14
1174 ; AVX512F-NEXT:    vmovdqa64 %zmm18, %zmm14 {%k2}
1175 ; AVX512F-NEXT:    vpermt2q %zmm4, %zmm19, %zmm14
1176 ; AVX512F-NEXT:    vpermi2q %zmm5, %zmm6, %zmm20
1177 ; AVX512F-NEXT:    vpermi2q %zmm2, %zmm1, %zmm22
1178 ; AVX512F-NEXT:    vmovdqa64 %zmm20, %zmm22 {%k2}
1179 ; AVX512F-NEXT:    vpermt2q %zmm4, %zmm21, %zmm22
1180 ; AVX512F-NEXT:    vpermt2q %zmm6, %zmm24, %zmm5
1181 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm26, %zmm1
1182 ; AVX512F-NEXT:    vmovdqa64 %zmm5, %zmm1 {%k1}
1183 ; AVX512F-NEXT:    vpermt2q %zmm4, %zmm25, %zmm1
1184 ; AVX512F-NEXT:    vmovdqa64 %zmm1, 64(%r9)
1185 ; AVX512F-NEXT:    vmovdqa64 %zmm7, 128(%r9)
1186 ; AVX512F-NEXT:    vmovdqa64 %zmm22, 192(%r9)
1187 ; AVX512F-NEXT:    vmovdqa64 %zmm14, 256(%r9)
1188 ; AVX512F-NEXT:    vmovdqa64 %zmm0, 320(%r9)
1189 ; AVX512F-NEXT:    vmovdqa64 %zmm27, 384(%r9)
1190 ; AVX512F-NEXT:    vmovdqa64 %zmm3, 448(%r9)
1191 ; AVX512F-NEXT:    vmovdqa64 %zmm23, 512(%r9)
1192 ; AVX512F-NEXT:    vmovdqa64 %zmm13, 576(%r9)
1193 ; AVX512F-NEXT:    vmovdqa64 %zmm8, (%r9)
1194 ; AVX512F-NEXT:    vzeroupper
1195 ; AVX512F-NEXT:    retq
1197 ; AVX512BW-LABEL: store_i64_stride5_vf16:
1198 ; AVX512BW:       # %bb.0:
1199 ; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm1
1200 ; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %zmm0
1201 ; AVX512BW-NEXT:    vmovdqa64 (%rsi), %zmm2
1202 ; AVX512BW-NEXT:    vmovdqa64 64(%rsi), %zmm9
1203 ; AVX512BW-NEXT:    vmovdqa64 (%rdx), %zmm6
1204 ; AVX512BW-NEXT:    vmovdqa64 64(%rdx), %zmm10
1205 ; AVX512BW-NEXT:    vmovdqa64 (%rcx), %zmm5
1206 ; AVX512BW-NEXT:    vmovdqa64 64(%rcx), %zmm12
1207 ; AVX512BW-NEXT:    vmovdqa64 (%r8), %zmm4
1208 ; AVX512BW-NEXT:    vmovdqa64 64(%r8), %zmm11
1209 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm8 = <3,u,u,u,12,4,u,u>
1210 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm13
1211 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm8, %zmm13
1212 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm7 = <u,3,11,u,u,u,4,12>
1213 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm3
1214 ; AVX512BW-NEXT:    vpermt2q %zmm12, %zmm7, %zmm3
1215 ; AVX512BW-NEXT:    movb $49, %al
1216 ; AVX512BW-NEXT:    kmovd %eax, %k1
1217 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm3 {%k1}
1218 ; AVX512BW-NEXT:    movb $8, %al
1219 ; AVX512BW-NEXT:    kmovd %eax, %k2
1220 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm3 {%k2}
1221 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm2, %zmm8
1222 ; AVX512BW-NEXT:    vpermi2q %zmm5, %zmm6, %zmm7
1223 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm7 {%k1}
1224 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm7 {%k2}
1225 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm15 = <u,u,0,8,u,u,u,1>
1226 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm13
1227 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm15, %zmm13
1228 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm16 = <0,8,u,u,u,1,9,u>
1229 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm8
1230 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm16, %zmm8
1231 ; AVX512BW-NEXT:    movb $-116, %al
1232 ; AVX512BW-NEXT:    kmovd %eax, %k3
1233 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm8 {%k3}
1234 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm17 = [0,1,2,3,8,5,6,7]
1235 ; AVX512BW-NEXT:    vpermt2q %zmm4, %zmm17, %zmm8
1236 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm18 = [15,7,15,7,15,7,15,7]
1237 ; AVX512BW-NEXT:    # zmm18 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1238 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm19
1239 ; AVX512BW-NEXT:    vpermt2q %zmm9, %zmm18, %zmm19
1240 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm14 = <6,14,u,u,u,7,15,u>
1241 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm13
1242 ; AVX512BW-NEXT:    vpermt2q %zmm12, %zmm14, %zmm13
1243 ; AVX512BW-NEXT:    movb $24, %al
1244 ; AVX512BW-NEXT:    kmovd %eax, %k2
1245 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm13 {%k2}
1246 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm19 = [0,1,14,3,4,5,6,15]
1247 ; AVX512BW-NEXT:    vpermt2q %zmm11, %zmm19, %zmm13
1248 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm20 = [13,5,13,5,13,5,13,5]
1249 ; AVX512BW-NEXT:    # zmm20 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1250 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm21
1251 ; AVX512BW-NEXT:    vpermt2q %zmm12, %zmm20, %zmm21
1252 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm22 = <u,5,13,u,u,u,6,14>
1253 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm23
1254 ; AVX512BW-NEXT:    vpermt2q %zmm9, %zmm22, %zmm23
1255 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, %zmm23 {%k2}
1256 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm21 = [12,1,2,3,4,13,6,7]
1257 ; AVX512BW-NEXT:    vpermt2q %zmm11, %zmm21, %zmm23
1258 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm24 = <1,u,u,u,10,2,u,u>
1259 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm25
1260 ; AVX512BW-NEXT:    vpermt2q %zmm10, %zmm24, %zmm25
1261 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm26 = <u,u,2,10,u,u,u,3>
1262 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm27
1263 ; AVX512BW-NEXT:    vpermt2q %zmm9, %zmm26, %zmm27
1264 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, %zmm27 {%k1}
1265 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm25 = [0,9,2,3,4,5,10,7]
1266 ; AVX512BW-NEXT:    vpermt2q %zmm11, %zmm25, %zmm27
1267 ; AVX512BW-NEXT:    vpermt2q %zmm12, %zmm15, %zmm10
1268 ; AVX512BW-NEXT:    vpermt2q %zmm9, %zmm16, %zmm0
1269 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm0 {%k3}
1270 ; AVX512BW-NEXT:    vpermt2q %zmm11, %zmm17, %zmm0
1271 ; AVX512BW-NEXT:    vpermi2q %zmm2, %zmm1, %zmm18
1272 ; AVX512BW-NEXT:    vpermi2q %zmm5, %zmm6, %zmm14
1273 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, %zmm14 {%k2}
1274 ; AVX512BW-NEXT:    vpermt2q %zmm4, %zmm19, %zmm14
1275 ; AVX512BW-NEXT:    vpermi2q %zmm5, %zmm6, %zmm20
1276 ; AVX512BW-NEXT:    vpermi2q %zmm2, %zmm1, %zmm22
1277 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, %zmm22 {%k2}
1278 ; AVX512BW-NEXT:    vpermt2q %zmm4, %zmm21, %zmm22
1279 ; AVX512BW-NEXT:    vpermt2q %zmm6, %zmm24, %zmm5
1280 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm26, %zmm1
1281 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm1 {%k1}
1282 ; AVX512BW-NEXT:    vpermt2q %zmm4, %zmm25, %zmm1
1283 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, 64(%r9)
1284 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, 128(%r9)
1285 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, 192(%r9)
1286 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, 256(%r9)
1287 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, 320(%r9)
1288 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, 384(%r9)
1289 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, 448(%r9)
1290 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, 512(%r9)
1291 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, 576(%r9)
1292 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, (%r9)
1293 ; AVX512BW-NEXT:    vzeroupper
1294 ; AVX512BW-NEXT:    retq
1295   %in.vec0 = load <16 x i64>, ptr %in.vecptr0, align 64
1296   %in.vec1 = load <16 x i64>, ptr %in.vecptr1, align 64
1297   %in.vec2 = load <16 x i64>, ptr %in.vecptr2, align 64
1298   %in.vec3 = load <16 x i64>, ptr %in.vecptr3, align 64
1299   %in.vec4 = load <16 x i64>, ptr %in.vecptr4, align 64
1300   %1 = shufflevector <16 x i64> %in.vec0, <16 x i64> %in.vec1, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31>
1301   %2 = shufflevector <16 x i64> %in.vec2, <16 x i64> %in.vec3, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31>
1302   %3 = shufflevector <32 x i64> %1, <32 x i64> %2, <64 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63>
1303   %4 = shufflevector <16 x i64> %in.vec4, <16 x i64> poison, <64 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
1304   %5 = shufflevector <64 x i64> %3, <64 x i64> %4, <80 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79>
1305   %interleaved.vec = shufflevector <80 x i64> %5, <80 x i64> poison, <80 x i32> <i32 0, i32 16, i32 32, i32 48, i32 64, i32 1, i32 17, i32 33, i32 49, i32 65, i32 2, i32 18, i32 34, i32 50, i32 66, i32 3, i32 19, i32 35, i32 51, i32 67, i32 4, i32 20, i32 36, i32 52, i32 68, i32 5, i32 21, i32 37, i32 53, i32 69, i32 6, i32 22, i32 38, i32 54, i32 70, i32 7, i32 23, i32 39, i32 55, i32 71, i32 8, i32 24, i32 40, i32 56, i32 72, i32 9, i32 25, i32 41, i32 57, i32 73, i32 10, i32 26, i32 42, i32 58, i32 74, i32 11, i32 27, i32 43, i32 59, i32 75, i32 12, i32 28, i32 44, i32 60, i32 76, i32 13, i32 29, i32 45, i32 61, i32 77, i32 14, i32 30, i32 46, i32 62, i32 78, i32 15, i32 31, i32 47, i32 63, i32 79>
1306   store <80 x i64> %interleaved.vec, ptr %out.vec, align 64
1307   ret void
1310 define void @store_i64_stride5_vf32(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %in.vecptr4, ptr %out.vec) nounwind {
1311 ; SSE-LABEL: store_i64_stride5_vf32:
1312 ; SSE:       # %bb.0:
1313 ; SSE-NEXT:    subq $920, %rsp # imm = 0x398
1314 ; SSE-NEXT:    movapd (%rdi), %xmm3
1315 ; SSE-NEXT:    movapd 16(%rdi), %xmm4
1316 ; SSE-NEXT:    movapd 32(%rdi), %xmm5
1317 ; SSE-NEXT:    movapd (%rsi), %xmm6
1318 ; SSE-NEXT:    movapd 16(%rsi), %xmm7
1319 ; SSE-NEXT:    movapd 32(%rsi), %xmm8
1320 ; SSE-NEXT:    movapd (%rdx), %xmm9
1321 ; SSE-NEXT:    movapd 16(%rdx), %xmm10
1322 ; SSE-NEXT:    movapd 32(%rdx), %xmm11
1323 ; SSE-NEXT:    movapd (%rcx), %xmm12
1324 ; SSE-NEXT:    movapd 16(%rcx), %xmm13
1325 ; SSE-NEXT:    movapd 32(%rcx), %xmm14
1326 ; SSE-NEXT:    movapd (%r8), %xmm0
1327 ; SSE-NEXT:    movapd 16(%r8), %xmm1
1328 ; SSE-NEXT:    movapd 32(%r8), %xmm2
1329 ; SSE-NEXT:    movapd %xmm3, %xmm15
1330 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm15 = xmm15[0],xmm6[0]
1331 ; SSE-NEXT:    movapd %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1332 ; SSE-NEXT:    movsd {{.*#+}} xmm3 = xmm0[0],xmm3[1]
1333 ; SSE-NEXT:    movapd %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1334 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm6 = xmm6[1],xmm9[1]
1335 ; SSE-NEXT:    movapd %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1336 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm9 = xmm9[0],xmm12[0]
1337 ; SSE-NEXT:    movapd %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1338 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm12 = xmm12[1],xmm0[1]
1339 ; SSE-NEXT:    movapd %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1340 ; SSE-NEXT:    movapd %xmm4, %xmm0
1341 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm7[0]
1342 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1343 ; SSE-NEXT:    movsd {{.*#+}} xmm4 = xmm1[0],xmm4[1]
1344 ; SSE-NEXT:    movapd %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1345 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm7 = xmm7[1],xmm10[1]
1346 ; SSE-NEXT:    movapd %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1347 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm10 = xmm10[0],xmm13[0]
1348 ; SSE-NEXT:    movapd %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1349 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm13 = xmm13[1],xmm1[1]
1350 ; SSE-NEXT:    movapd %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1351 ; SSE-NEXT:    movapd %xmm5, %xmm0
1352 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm8[0]
1353 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1354 ; SSE-NEXT:    movsd {{.*#+}} xmm5 = xmm2[0],xmm5[1]
1355 ; SSE-NEXT:    movapd %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1356 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm11[1]
1357 ; SSE-NEXT:    movapd %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1358 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm11 = xmm11[0],xmm14[0]
1359 ; SSE-NEXT:    movapd %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1360 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm14 = xmm14[1],xmm2[1]
1361 ; SSE-NEXT:    movapd %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1362 ; SSE-NEXT:    movapd 48(%rdi), %xmm1
1363 ; SSE-NEXT:    movapd 48(%rsi), %xmm2
1364 ; SSE-NEXT:    movapd %xmm1, %xmm0
1365 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
1366 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1367 ; SSE-NEXT:    movapd 48(%r8), %xmm0
1368 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
1369 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1370 ; SSE-NEXT:    movapd 48(%rdx), %xmm1
1371 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
1372 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1373 ; SSE-NEXT:    movapd 48(%rcx), %xmm2
1374 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
1375 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1376 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
1377 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1378 ; SSE-NEXT:    movapd 64(%rdi), %xmm1
1379 ; SSE-NEXT:    movapd 64(%rsi), %xmm2
1380 ; SSE-NEXT:    movapd %xmm1, %xmm0
1381 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
1382 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1383 ; SSE-NEXT:    movapd 64(%r8), %xmm0
1384 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
1385 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1386 ; SSE-NEXT:    movapd 64(%rdx), %xmm1
1387 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
1388 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1389 ; SSE-NEXT:    movapd 64(%rcx), %xmm2
1390 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
1391 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1392 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
1393 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1394 ; SSE-NEXT:    movapd 80(%rdi), %xmm1
1395 ; SSE-NEXT:    movapd 80(%rsi), %xmm2
1396 ; SSE-NEXT:    movapd %xmm1, %xmm0
1397 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
1398 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1399 ; SSE-NEXT:    movapd 80(%r8), %xmm0
1400 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
1401 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1402 ; SSE-NEXT:    movapd 80(%rdx), %xmm1
1403 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
1404 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1405 ; SSE-NEXT:    movapd 80(%rcx), %xmm2
1406 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
1407 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1408 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
1409 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1410 ; SSE-NEXT:    movapd 96(%rdi), %xmm1
1411 ; SSE-NEXT:    movapd 96(%rsi), %xmm2
1412 ; SSE-NEXT:    movapd %xmm1, %xmm0
1413 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
1414 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1415 ; SSE-NEXT:    movapd 96(%r8), %xmm0
1416 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
1417 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1418 ; SSE-NEXT:    movapd 96(%rdx), %xmm1
1419 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
1420 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1421 ; SSE-NEXT:    movapd 96(%rcx), %xmm2
1422 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
1423 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1424 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
1425 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1426 ; SSE-NEXT:    movapd 112(%rdi), %xmm1
1427 ; SSE-NEXT:    movapd 112(%rsi), %xmm2
1428 ; SSE-NEXT:    movapd %xmm1, %xmm0
1429 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
1430 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1431 ; SSE-NEXT:    movapd 112(%r8), %xmm0
1432 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
1433 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1434 ; SSE-NEXT:    movapd 112(%rdx), %xmm1
1435 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
1436 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1437 ; SSE-NEXT:    movapd 112(%rcx), %xmm2
1438 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
1439 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1440 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
1441 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1442 ; SSE-NEXT:    movapd 128(%rdi), %xmm1
1443 ; SSE-NEXT:    movapd 128(%rsi), %xmm2
1444 ; SSE-NEXT:    movapd %xmm1, %xmm0
1445 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
1446 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1447 ; SSE-NEXT:    movapd 128(%r8), %xmm0
1448 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
1449 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1450 ; SSE-NEXT:    movapd 128(%rdx), %xmm1
1451 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
1452 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1453 ; SSE-NEXT:    movapd 128(%rcx), %xmm2
1454 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
1455 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1456 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
1457 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1458 ; SSE-NEXT:    movapd 144(%rdi), %xmm1
1459 ; SSE-NEXT:    movapd 144(%rsi), %xmm2
1460 ; SSE-NEXT:    movapd %xmm1, %xmm0
1461 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
1462 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1463 ; SSE-NEXT:    movapd 144(%r8), %xmm0
1464 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
1465 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1466 ; SSE-NEXT:    movapd 144(%rdx), %xmm1
1467 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
1468 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1469 ; SSE-NEXT:    movapd 144(%rcx), %xmm2
1470 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
1471 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1472 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
1473 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1474 ; SSE-NEXT:    movapd 160(%rdi), %xmm1
1475 ; SSE-NEXT:    movapd 160(%rsi), %xmm2
1476 ; SSE-NEXT:    movapd %xmm1, %xmm0
1477 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
1478 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1479 ; SSE-NEXT:    movapd 160(%r8), %xmm0
1480 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
1481 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1482 ; SSE-NEXT:    movapd 160(%rdx), %xmm1
1483 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
1484 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1485 ; SSE-NEXT:    movapd 160(%rcx), %xmm2
1486 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
1487 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1488 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
1489 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1490 ; SSE-NEXT:    movapd 176(%rdi), %xmm1
1491 ; SSE-NEXT:    movapd 176(%rsi), %xmm2
1492 ; SSE-NEXT:    movapd %xmm1, %xmm0
1493 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
1494 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1495 ; SSE-NEXT:    movapd 176(%r8), %xmm0
1496 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
1497 ; SSE-NEXT:    movapd %xmm1, (%rsp) # 16-byte Spill
1498 ; SSE-NEXT:    movapd 176(%rdx), %xmm1
1499 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
1500 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1501 ; SSE-NEXT:    movapd 176(%rcx), %xmm2
1502 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
1503 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1504 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
1505 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1506 ; SSE-NEXT:    movapd 192(%rdi), %xmm1
1507 ; SSE-NEXT:    movapd 192(%rsi), %xmm2
1508 ; SSE-NEXT:    movapd %xmm1, %xmm0
1509 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
1510 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1511 ; SSE-NEXT:    movapd 192(%r8), %xmm0
1512 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
1513 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1514 ; SSE-NEXT:    movapd 192(%rdx), %xmm1
1515 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
1516 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1517 ; SSE-NEXT:    movapd 192(%rcx), %xmm15
1518 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm15[0]
1519 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1520 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm15 = xmm15[1],xmm0[1]
1521 ; SSE-NEXT:    movapd 208(%rdi), %xmm14
1522 ; SSE-NEXT:    movapd 208(%rsi), %xmm13
1523 ; SSE-NEXT:    movapd %xmm14, %xmm0
1524 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm13[0]
1525 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1526 ; SSE-NEXT:    movapd 208(%r8), %xmm0
1527 ; SSE-NEXT:    movsd {{.*#+}} xmm14 = xmm0[0],xmm14[1]
1528 ; SSE-NEXT:    movapd 208(%rdx), %xmm10
1529 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm13 = xmm13[1],xmm10[1]
1530 ; SSE-NEXT:    movapd 208(%rcx), %xmm9
1531 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm10 = xmm10[0],xmm9[0]
1532 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm9 = xmm9[1],xmm0[1]
1533 ; SSE-NEXT:    movapd 224(%rdi), %xmm11
1534 ; SSE-NEXT:    movapd 224(%rsi), %xmm8
1535 ; SSE-NEXT:    movapd %xmm11, %xmm12
1536 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm12 = xmm12[0],xmm8[0]
1537 ; SSE-NEXT:    movapd 224(%r8), %xmm2
1538 ; SSE-NEXT:    movsd {{.*#+}} xmm11 = xmm2[0],xmm11[1]
1539 ; SSE-NEXT:    movapd 224(%rdx), %xmm6
1540 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm6[1]
1541 ; SSE-NEXT:    movapd 224(%rcx), %xmm3
1542 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm6 = xmm6[0],xmm3[0]
1543 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm3 = xmm3[1],xmm2[1]
1544 ; SSE-NEXT:    movapd 240(%rdi), %xmm4
1545 ; SSE-NEXT:    movapd 240(%rsi), %xmm2
1546 ; SSE-NEXT:    movapd %xmm4, %xmm5
1547 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm5 = xmm5[0],xmm2[0]
1548 ; SSE-NEXT:    movapd 240(%r8), %xmm7
1549 ; SSE-NEXT:    movsd {{.*#+}} xmm4 = xmm7[0],xmm4[1]
1550 ; SSE-NEXT:    movapd 240(%rdx), %xmm1
1551 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
1552 ; SSE-NEXT:    movapd 240(%rcx), %xmm0
1553 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm0[0]
1554 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm7[1]
1555 ; SSE-NEXT:    movapd %xmm0, 1264(%r9)
1556 ; SSE-NEXT:    movapd %xmm2, 1248(%r9)
1557 ; SSE-NEXT:    movapd %xmm4, 1232(%r9)
1558 ; SSE-NEXT:    movapd %xmm1, 1216(%r9)
1559 ; SSE-NEXT:    movapd %xmm5, 1200(%r9)
1560 ; SSE-NEXT:    movapd %xmm3, 1184(%r9)
1561 ; SSE-NEXT:    movapd %xmm8, 1168(%r9)
1562 ; SSE-NEXT:    movapd %xmm11, 1152(%r9)
1563 ; SSE-NEXT:    movapd %xmm6, 1136(%r9)
1564 ; SSE-NEXT:    movapd %xmm12, 1120(%r9)
1565 ; SSE-NEXT:    movapd %xmm9, 1104(%r9)
1566 ; SSE-NEXT:    movapd %xmm13, 1088(%r9)
1567 ; SSE-NEXT:    movapd %xmm14, 1072(%r9)
1568 ; SSE-NEXT:    movapd %xmm10, 1056(%r9)
1569 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1570 ; SSE-NEXT:    movaps %xmm0, 1040(%r9)
1571 ; SSE-NEXT:    movapd %xmm15, 1024(%r9)
1572 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1573 ; SSE-NEXT:    movaps %xmm0, 1008(%r9)
1574 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1575 ; SSE-NEXT:    movaps %xmm0, 992(%r9)
1576 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1577 ; SSE-NEXT:    movaps %xmm0, 976(%r9)
1578 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1579 ; SSE-NEXT:    movaps %xmm0, 960(%r9)
1580 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1581 ; SSE-NEXT:    movaps %xmm0, 944(%r9)
1582 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1583 ; SSE-NEXT:    movaps %xmm0, 928(%r9)
1584 ; SSE-NEXT:    movaps (%rsp), %xmm0 # 16-byte Reload
1585 ; SSE-NEXT:    movaps %xmm0, 912(%r9)
1586 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1587 ; SSE-NEXT:    movaps %xmm0, 896(%r9)
1588 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1589 ; SSE-NEXT:    movaps %xmm0, 880(%r9)
1590 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1591 ; SSE-NEXT:    movaps %xmm0, 864(%r9)
1592 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1593 ; SSE-NEXT:    movaps %xmm0, 848(%r9)
1594 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1595 ; SSE-NEXT:    movaps %xmm0, 832(%r9)
1596 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1597 ; SSE-NEXT:    movaps %xmm0, 816(%r9)
1598 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1599 ; SSE-NEXT:    movaps %xmm0, 800(%r9)
1600 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1601 ; SSE-NEXT:    movaps %xmm0, 784(%r9)
1602 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1603 ; SSE-NEXT:    movaps %xmm0, 768(%r9)
1604 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1605 ; SSE-NEXT:    movaps %xmm0, 752(%r9)
1606 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1607 ; SSE-NEXT:    movaps %xmm0, 736(%r9)
1608 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1609 ; SSE-NEXT:    movaps %xmm0, 720(%r9)
1610 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1611 ; SSE-NEXT:    movaps %xmm0, 704(%r9)
1612 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1613 ; SSE-NEXT:    movaps %xmm0, 688(%r9)
1614 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1615 ; SSE-NEXT:    movaps %xmm0, 672(%r9)
1616 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1617 ; SSE-NEXT:    movaps %xmm0, 656(%r9)
1618 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1619 ; SSE-NEXT:    movaps %xmm0, 640(%r9)
1620 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1621 ; SSE-NEXT:    movaps %xmm0, 624(%r9)
1622 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1623 ; SSE-NEXT:    movaps %xmm0, 608(%r9)
1624 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1625 ; SSE-NEXT:    movaps %xmm0, 592(%r9)
1626 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1627 ; SSE-NEXT:    movaps %xmm0, 576(%r9)
1628 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1629 ; SSE-NEXT:    movaps %xmm0, 560(%r9)
1630 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1631 ; SSE-NEXT:    movaps %xmm0, 544(%r9)
1632 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1633 ; SSE-NEXT:    movaps %xmm0, 528(%r9)
1634 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1635 ; SSE-NEXT:    movaps %xmm0, 512(%r9)
1636 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1637 ; SSE-NEXT:    movaps %xmm0, 496(%r9)
1638 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1639 ; SSE-NEXT:    movaps %xmm0, 480(%r9)
1640 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1641 ; SSE-NEXT:    movaps %xmm0, 464(%r9)
1642 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1643 ; SSE-NEXT:    movaps %xmm0, 448(%r9)
1644 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1645 ; SSE-NEXT:    movaps %xmm0, 432(%r9)
1646 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1647 ; SSE-NEXT:    movaps %xmm0, 416(%r9)
1648 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1649 ; SSE-NEXT:    movaps %xmm0, 400(%r9)
1650 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1651 ; SSE-NEXT:    movaps %xmm0, 384(%r9)
1652 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1653 ; SSE-NEXT:    movaps %xmm0, 368(%r9)
1654 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1655 ; SSE-NEXT:    movaps %xmm0, 352(%r9)
1656 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1657 ; SSE-NEXT:    movaps %xmm0, 336(%r9)
1658 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1659 ; SSE-NEXT:    movaps %xmm0, 320(%r9)
1660 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1661 ; SSE-NEXT:    movaps %xmm0, 304(%r9)
1662 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1663 ; SSE-NEXT:    movaps %xmm0, 288(%r9)
1664 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1665 ; SSE-NEXT:    movaps %xmm0, 272(%r9)
1666 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1667 ; SSE-NEXT:    movaps %xmm0, 256(%r9)
1668 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1669 ; SSE-NEXT:    movaps %xmm0, 240(%r9)
1670 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1671 ; SSE-NEXT:    movaps %xmm0, 224(%r9)
1672 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1673 ; SSE-NEXT:    movaps %xmm0, 208(%r9)
1674 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1675 ; SSE-NEXT:    movaps %xmm0, 192(%r9)
1676 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1677 ; SSE-NEXT:    movaps %xmm0, 176(%r9)
1678 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1679 ; SSE-NEXT:    movaps %xmm0, 160(%r9)
1680 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1681 ; SSE-NEXT:    movaps %xmm0, 144(%r9)
1682 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1683 ; SSE-NEXT:    movaps %xmm0, 128(%r9)
1684 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1685 ; SSE-NEXT:    movaps %xmm0, 112(%r9)
1686 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1687 ; SSE-NEXT:    movaps %xmm0, 96(%r9)
1688 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1689 ; SSE-NEXT:    movaps %xmm0, 80(%r9)
1690 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1691 ; SSE-NEXT:    movaps %xmm0, 64(%r9)
1692 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1693 ; SSE-NEXT:    movaps %xmm0, 48(%r9)
1694 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1695 ; SSE-NEXT:    movaps %xmm0, 32(%r9)
1696 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1697 ; SSE-NEXT:    movaps %xmm0, 16(%r9)
1698 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1699 ; SSE-NEXT:    movaps %xmm0, (%r9)
1700 ; SSE-NEXT:    addq $920, %rsp # imm = 0x398
1701 ; SSE-NEXT:    retq
1703 ; AVX1-ONLY-LABEL: store_i64_stride5_vf32:
1704 ; AVX1-ONLY:       # %bb.0:
1705 ; AVX1-ONLY-NEXT:    subq $1048, %rsp # imm = 0x418
1706 ; AVX1-ONLY-NEXT:    vmovaps 192(%rdi), %ymm9
1707 ; AVX1-ONLY-NEXT:    vmovapd 160(%rdi), %ymm7
1708 ; AVX1-ONLY-NEXT:    vmovapd 96(%rdi), %ymm5
1709 ; AVX1-ONLY-NEXT:    vmovaps 128(%rcx), %ymm0
1710 ; AVX1-ONLY-NEXT:    vmovaps (%rcx), %ymm1
1711 ; AVX1-ONLY-NEXT:    vmovaps 64(%rcx), %ymm2
1712 ; AVX1-ONLY-NEXT:    vpermilps {{.*#+}} xmm3 = mem[2,3,2,3]
1713 ; AVX1-ONLY-NEXT:    vmovaps 16(%rdx), %xmm6
1714 ; AVX1-ONLY-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1715 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm6[1],ymm1[3],ymm6[3]
1716 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1],ymm1[2,3,4,5,6,7]
1717 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1718 ; AVX1-ONLY-NEXT:    vpermilps {{.*#+}} xmm1 = mem[2,3,2,3]
1719 ; AVX1-ONLY-NEXT:    vmovaps 80(%rdx), %xmm3
1720 ; AVX1-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1721 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
1722 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3,4,5,6,7]
1723 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1724 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm5[0],mem[0],ymm5[2],mem[2]
1725 ; AVX1-ONLY-NEXT:    vmovapd 96(%rcx), %xmm2
1726 ; AVX1-ONLY-NEXT:    vmovapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1727 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[2,3,2,3]
1728 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3]
1729 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1730 ; AVX1-ONLY-NEXT:    vpermilps {{.*#+}} xmm1 = mem[2,3,2,3]
1731 ; AVX1-ONLY-NEXT:    vmovaps 144(%rdx), %xmm2
1732 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1733 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm2[1],ymm0[3],ymm2[3]
1734 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
1735 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1736 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm7[0],mem[0],ymm7[2],mem[2]
1737 ; AVX1-ONLY-NEXT:    vmovapd 160(%rcx), %xmm1
1738 ; AVX1-ONLY-NEXT:    vmovapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1739 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[2,3,2,3]
1740 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
1741 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1742 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm9[0],mem[0],ymm9[2],mem[2]
1743 ; AVX1-ONLY-NEXT:    vmovaps 192(%rcx), %xmm1
1744 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1745 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[2,3,2,3]
1746 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
1747 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1748 ; AVX1-ONLY-NEXT:    vmovaps 192(%rcx), %ymm0
1749 ; AVX1-ONLY-NEXT:    vmovaps 208(%rdx), %xmm1
1750 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1751 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
1752 ; AVX1-ONLY-NEXT:    vpermilps {{.*#+}} xmm1 = mem[2,3,2,3]
1753 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
1754 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1755 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %ymm8
1756 ; AVX1-ONLY-NEXT:    vbroadcastsd 8(%rsi), %ymm0
1757 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm8[0,1,2,3],ymm0[4,5,6,7]
1758 ; AVX1-ONLY-NEXT:    vmovaps (%rdx), %xmm1
1759 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1760 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
1761 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
1762 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1763 ; AVX1-ONLY-NEXT:    vpermilps {{.*#+}} xmm0 = mem[2,3,2,3]
1764 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm8[0],mem[0],ymm8[2],mem[2]
1765 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
1766 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1767 ; AVX1-ONLY-NEXT:    vmovapd 32(%rdi), %ymm2
1768 ; AVX1-ONLY-NEXT:    vbroadcastsd 40(%rsi), %ymm0
1769 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,3]
1770 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdx), %xmm1
1771 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1772 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
1773 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3]
1774 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1775 ; AVX1-ONLY-NEXT:    vpermilps {{.*#+}} xmm0 = mem[2,3,2,3]
1776 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
1777 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3]
1778 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1779 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdi), %ymm14
1780 ; AVX1-ONLY-NEXT:    vbroadcastsd 72(%rsi), %ymm0
1781 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm14[0,1,2,3],ymm0[4,5,6,7]
1782 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdx), %xmm1
1783 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1784 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
1785 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
1786 ; AVX1-ONLY-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
1787 ; AVX1-ONLY-NEXT:    vpermilps {{.*#+}} xmm0 = mem[2,3,2,3]
1788 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm14[0],mem[0],ymm14[2],mem[2]
1789 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
1790 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1791 ; AVX1-ONLY-NEXT:    vbroadcastsd 104(%rsi), %ymm0
1792 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm5[0,1],ymm0[2,3]
1793 ; AVX1-ONLY-NEXT:    vmovaps 96(%rdx), %xmm1
1794 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1795 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
1796 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3]
1797 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1798 ; AVX1-ONLY-NEXT:    vmovaps 128(%rdi), %ymm1
1799 ; AVX1-ONLY-NEXT:    vbroadcastsd 136(%rsi), %ymm0
1800 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
1801 ; AVX1-ONLY-NEXT:    vmovaps 128(%rdx), %xmm3
1802 ; AVX1-ONLY-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1803 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
1804 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm3[6,7]
1805 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1806 ; AVX1-ONLY-NEXT:    vpermilps {{.*#+}} xmm0 = mem[2,3,2,3]
1807 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],mem[0],ymm1[2],mem[2]
1808 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm10 = ymm0[0,1,2,3],ymm3[4,5,6,7]
1809 ; AVX1-ONLY-NEXT:    vbroadcastsd 168(%rsi), %ymm0
1810 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm7[0,1],ymm0[2,3]
1811 ; AVX1-ONLY-NEXT:    vmovaps 160(%rdx), %xmm4
1812 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm3
1813 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1,2],ymm3[3]
1814 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1815 ; AVX1-ONLY-NEXT:    vbroadcastsd 200(%rsi), %ymm0
1816 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm9[0,1,2,3],ymm0[4,5,6,7]
1817 ; AVX1-ONLY-NEXT:    vmovaps 192(%rdx), %xmm3
1818 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm6
1819 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm12 = ymm0[0,1,2,3,4,5],ymm6[6,7]
1820 ; AVX1-ONLY-NEXT:    vmovapd 224(%rdi), %ymm0
1821 ; AVX1-ONLY-NEXT:    vbroadcastsd 232(%rsi), %ymm6
1822 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm6 = ymm0[0,1],ymm6[2,3]
1823 ; AVX1-ONLY-NEXT:    vmovaps 224(%rdx), %xmm11
1824 ; AVX1-ONLY-NEXT:    vmovaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1825 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm11, %ymm0, %ymm11
1826 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm11 = ymm6[0,1,2],ymm11[3]
1827 ; AVX1-ONLY-NEXT:    vpermilps {{.*#+}} xmm6 = mem[2,3,2,3]
1828 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm15 = ymm0[0],mem[0],ymm0[2],mem[2]
1829 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm6 = ymm6[0,1],ymm15[2,3]
1830 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
1831 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm15 = xmm13[0],mem[0]
1832 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm8 = ymm15[0,1,2,3],ymm8[4,5,6,7]
1833 ; AVX1-ONLY-NEXT:    vmovaps (%r8), %ymm15
1834 ; AVX1-ONLY-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm13 # 32-byte Folded Reload
1835 ; AVX1-ONLY-NEXT:    # ymm13 = mem[0,1,2,3,4,5],ymm15[6,7]
1836 ; AVX1-ONLY-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1837 ; AVX1-ONLY-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm13 # 32-byte Folded Reload
1838 ; AVX1-ONLY-NEXT:    # ymm13 = ymm15[0,1],mem[2,3,4,5,6,7]
1839 ; AVX1-ONLY-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1840 ; AVX1-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm13 # 32-byte Folded Reload
1841 ; AVX1-ONLY-NEXT:    # ymm13 = mem[0,1],ymm15[2,3],mem[4,5,6,7]
1842 ; AVX1-ONLY-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1843 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm15[4,5],ymm8[6,7]
1844 ; AVX1-ONLY-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1845 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm2 = mem[2,3],ymm2[2,3]
1846 ; AVX1-ONLY-NEXT:    vmovapd 48(%rdx), %xmm8
1847 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm2 = ymm8[0],ymm2[0],ymm8[2],ymm2[3]
1848 ; AVX1-ONLY-NEXT:    vmovapd 48(%rsi), %xmm15
1849 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm8 = xmm15[1],xmm8[1]
1850 ; AVX1-ONLY-NEXT:    vbroadcastsd 56(%rcx), %ymm15
1851 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm8 = ymm8[0,1],ymm15[2,3]
1852 ; AVX1-ONLY-NEXT:    vmovapd 32(%r8), %ymm15
1853 ; AVX1-ONLY-NEXT:    vblendpd $14, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm13 # 32-byte Folded Reload
1854 ; AVX1-ONLY-NEXT:    # ymm13 = ymm15[0],mem[1,2,3]
1855 ; AVX1-ONLY-NEXT:    vmovupd %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1856 ; AVX1-ONLY-NEXT:    vblendpd $13, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm13 # 32-byte Folded Reload
1857 ; AVX1-ONLY-NEXT:    # ymm13 = mem[0],ymm15[1],mem[2,3]
1858 ; AVX1-ONLY-NEXT:    vmovupd %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1859 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm2[0,1],ymm15[2],ymm2[3]
1860 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1861 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm8[0,1,2],ymm15[3]
1862 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1863 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1864 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm2 = xmm2[0],mem[0]
1865 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm14[4,5,6,7]
1866 ; AVX1-ONLY-NEXT:    vmovaps 64(%r8), %ymm8
1867 ; AVX1-ONLY-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm13 # 32-byte Folded Reload
1868 ; AVX1-ONLY-NEXT:    # ymm13 = mem[0,1,2,3,4,5],ymm8[6,7]
1869 ; AVX1-ONLY-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1870 ; AVX1-ONLY-NEXT:    vblendps $252, (%rsp), %ymm8, %ymm13 # 32-byte Folded Reload
1871 ; AVX1-ONLY-NEXT:    # ymm13 = ymm8[0,1],mem[2,3,4,5,6,7]
1872 ; AVX1-ONLY-NEXT:    vmovups %ymm13, (%rsp) # 32-byte Spill
1873 ; AVX1-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm13 # 32-byte Folded Reload
1874 ; AVX1-ONLY-NEXT:    # ymm13 = mem[0,1],ymm8[2,3],mem[4,5,6,7]
1875 ; AVX1-ONLY-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1876 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm8[4,5],ymm2[6,7]
1877 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1878 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm2 = mem[2,3],ymm5[2,3]
1879 ; AVX1-ONLY-NEXT:    vmovapd 112(%rdx), %xmm5
1880 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm2 = ymm5[0],ymm2[0],ymm5[2],ymm2[3]
1881 ; AVX1-ONLY-NEXT:    vmovapd 112(%rsi), %xmm8
1882 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm5 = xmm8[1],xmm5[1]
1883 ; AVX1-ONLY-NEXT:    vbroadcastsd 120(%rcx), %ymm8
1884 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm5 = ymm5[0,1],ymm8[2,3]
1885 ; AVX1-ONLY-NEXT:    vmovapd 96(%r8), %ymm8
1886 ; AVX1-ONLY-NEXT:    vblendpd $13, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm13 # 32-byte Folded Reload
1887 ; AVX1-ONLY-NEXT:    # ymm13 = mem[0],ymm8[1],mem[2,3]
1888 ; AVX1-ONLY-NEXT:    vmovupd %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1889 ; AVX1-ONLY-NEXT:    vblendpd $14, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm13 # 32-byte Folded Reload
1890 ; AVX1-ONLY-NEXT:    # ymm13 = ymm8[0],mem[1,2,3]
1891 ; AVX1-ONLY-NEXT:    vmovupd %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1892 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm2[0,1],ymm8[2],ymm2[3]
1893 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1894 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm5[0,1,2],ymm8[3]
1895 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1896 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1897 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm2 = xmm2[0],mem[0]
1898 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
1899 ; AVX1-ONLY-NEXT:    vmovaps 128(%r8), %ymm2
1900 ; AVX1-ONLY-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm5 # 32-byte Folded Reload
1901 ; AVX1-ONLY-NEXT:    # ymm5 = mem[0,1,2,3,4,5],ymm2[6,7]
1902 ; AVX1-ONLY-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1903 ; AVX1-ONLY-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm5 # 32-byte Folded Reload
1904 ; AVX1-ONLY-NEXT:    # ymm5 = ymm2[0,1],mem[2,3,4,5,6,7]
1905 ; AVX1-ONLY-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1906 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm10[0,1],ymm2[2,3],ymm10[4,5,6,7]
1907 ; AVX1-ONLY-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1908 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5],ymm1[6,7]
1909 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1910 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm1 = mem[2,3],ymm7[2,3]
1911 ; AVX1-ONLY-NEXT:    vmovapd 176(%rdx), %xmm2
1912 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm1 = ymm2[0],ymm1[0],ymm2[2],ymm1[3]
1913 ; AVX1-ONLY-NEXT:    vmovapd 176(%rsi), %xmm5
1914 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm2 = xmm5[1],xmm2[1]
1915 ; AVX1-ONLY-NEXT:    vbroadcastsd 184(%rcx), %ymm5
1916 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm2[0,1],ymm5[2,3]
1917 ; AVX1-ONLY-NEXT:    vmovapd 160(%r8), %ymm5
1918 ; AVX1-ONLY-NEXT:    vblendpd $13, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm7 # 32-byte Folded Reload
1919 ; AVX1-ONLY-NEXT:    # ymm7 = mem[0],ymm5[1],mem[2,3]
1920 ; AVX1-ONLY-NEXT:    vmovupd %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1921 ; AVX1-ONLY-NEXT:    vblendpd $14, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm7 # 32-byte Folded Reload
1922 ; AVX1-ONLY-NEXT:    # ymm7 = ymm5[0],mem[1,2,3]
1923 ; AVX1-ONLY-NEXT:    vmovupd %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1924 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm1[0,1],ymm5[2],ymm1[3]
1925 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1926 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm2[0,1,2],ymm5[3]
1927 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1928 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
1929 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm1[0],mem[0]
1930 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm9[4,5,6,7]
1931 ; AVX1-ONLY-NEXT:    vmovaps 192(%r8), %ymm2
1932 ; AVX1-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm5 # 32-byte Folded Reload
1933 ; AVX1-ONLY-NEXT:    # ymm5 = mem[0,1],ymm2[2,3],mem[4,5,6,7]
1934 ; AVX1-ONLY-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1935 ; AVX1-ONLY-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm5 # 32-byte Folded Reload
1936 ; AVX1-ONLY-NEXT:    # ymm5 = mem[0,1,2,3,4,5],ymm2[6,7]
1937 ; AVX1-ONLY-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1938 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm2[0,1],ymm12[2,3,4,5,6,7]
1939 ; AVX1-ONLY-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1940 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5],ymm1[6,7]
1941 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1942 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = mem[2,3],ymm0[2,3]
1943 ; AVX1-ONLY-NEXT:    vmovapd 240(%rdx), %xmm1
1944 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[3]
1945 ; AVX1-ONLY-NEXT:    vmovapd 240(%rsi), %xmm2
1946 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm2[1],xmm1[1]
1947 ; AVX1-ONLY-NEXT:    vbroadcastsd 248(%rcx), %ymm2
1948 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3]
1949 ; AVX1-ONLY-NEXT:    vmovapd 224(%r8), %ymm5
1950 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm5[0],ymm11[1,2,3]
1951 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1952 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm6[0],ymm5[1],ymm6[2,3]
1953 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1954 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm5[2],ymm0[3]
1955 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1956 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1,2],ymm5[3]
1957 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1958 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1959 ; AVX1-ONLY-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm7 # 16-byte Folded Reload
1960 ; AVX1-ONLY-NEXT:    # xmm7 = xmm0[0],mem[0]
1961 ; AVX1-ONLY-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm5 # 16-byte Folded Reload
1962 ; AVX1-ONLY-NEXT:    # xmm5 = xmm4[0],mem[0]
1963 ; AVX1-ONLY-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm2 # 16-byte Folded Reload
1964 ; AVX1-ONLY-NEXT:    # xmm2 = xmm3[0],mem[0]
1965 ; AVX1-ONLY-NEXT:    vmovaps 128(%rdi), %xmm1
1966 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm6 = xmm1[0],mem[0]
1967 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1968 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm4 = xmm0[0],mem[0]
1969 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdi), %xmm14
1970 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm14 = xmm14[0],mem[0]
1971 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1972 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm3 = xmm0[0],mem[0]
1973 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %xmm12
1974 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm12 = xmm12[0],mem[0]
1975 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1976 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
1977 ; AVX1-ONLY-NEXT:    vmovaps 96(%rdi), %xmm15
1978 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm15 = xmm15[0],mem[0]
1979 ; AVX1-ONLY-NEXT:    vmovaps 160(%rdi), %xmm13
1980 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm13 = xmm13[0],mem[0]
1981 ; AVX1-ONLY-NEXT:    vmovaps 224(%rdi), %xmm9
1982 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm9 = xmm9[0],mem[0]
1983 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1984 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
1985 ; AVX1-ONLY-NEXT:    vmovaps 192(%rdi), %xmm11
1986 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm11 = xmm11[0],mem[0]
1987 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %xmm10
1988 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm10 = xmm10[0],mem[0]
1989 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
1990 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm8 = xmm8[0],mem[0]
1991 ; AVX1-ONLY-NEXT:    vmovaps %xmm8, 16(%r9)
1992 ; AVX1-ONLY-NEXT:    vmovaps %xmm10, (%r9)
1993 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, 976(%r9)
1994 ; AVX1-ONLY-NEXT:    vmovaps %xmm11, 960(%r9)
1995 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 1136(%r9)
1996 ; AVX1-ONLY-NEXT:    vmovaps %xmm9, 1120(%r9)
1997 ; AVX1-ONLY-NEXT:    vmovaps %xmm5, 816(%r9)
1998 ; AVX1-ONLY-NEXT:    vmovaps %xmm13, 800(%r9)
1999 ; AVX1-ONLY-NEXT:    vmovaps %xmm7, 496(%r9)
2000 ; AVX1-ONLY-NEXT:    vmovaps %xmm15, 480(%r9)
2001 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 176(%r9)
2002 ; AVX1-ONLY-NEXT:    vmovaps %xmm12, 160(%r9)
2003 ; AVX1-ONLY-NEXT:    vmovaps %xmm3, 336(%r9)
2004 ; AVX1-ONLY-NEXT:    vmovaps %xmm14, 320(%r9)
2005 ; AVX1-ONLY-NEXT:    vmovaps %xmm4, 656(%r9)
2006 ; AVX1-ONLY-NEXT:    vmovaps %xmm6, 640(%r9)
2007 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2008 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 1216(%r9)
2009 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2010 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 1184(%r9)
2011 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2012 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 1152(%r9)
2013 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2014 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 992(%r9)
2015 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2016 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 896(%r9)
2017 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2018 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 832(%r9)
2019 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2020 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 704(%r9)
2021 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2022 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 672(%r9)
2023 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2024 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 576(%r9)
2025 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2026 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 512(%r9)
2027 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2028 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 384(%r9)
2029 ; AVX1-ONLY-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
2030 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 352(%r9)
2031 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2032 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 256(%r9)
2033 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2034 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 224(%r9)
2035 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2036 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 192(%r9)
2037 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2038 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 64(%r9)
2039 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2040 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 32(%r9)
2041 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2042 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 1248(%r9)
2043 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2044 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 1088(%r9)
2045 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2046 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 1056(%r9)
2047 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2048 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 1024(%r9)
2049 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2050 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 928(%r9)
2051 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2052 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 864(%r9)
2053 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2054 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 768(%r9)
2055 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2056 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 736(%r9)
2057 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2058 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 608(%r9)
2059 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2060 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 544(%r9)
2061 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2062 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 448(%r9)
2063 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2064 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 416(%r9)
2065 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2066 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 288(%r9)
2067 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2068 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 128(%r9)
2069 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2070 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 96(%r9)
2071 ; AVX1-ONLY-NEXT:    addq $1048, %rsp # imm = 0x418
2072 ; AVX1-ONLY-NEXT:    vzeroupper
2073 ; AVX1-ONLY-NEXT:    retq
2075 ; AVX2-ONLY-LABEL: store_i64_stride5_vf32:
2076 ; AVX2-ONLY:       # %bb.0:
2077 ; AVX2-ONLY-NEXT:    subq $1128, %rsp # imm = 0x468
2078 ; AVX2-ONLY-NEXT:    vmovaps 96(%rdi), %ymm13
2079 ; AVX2-ONLY-NEXT:    vmovaps 64(%rdi), %ymm7
2080 ; AVX2-ONLY-NEXT:    vmovaps 32(%rdi), %ymm9
2081 ; AVX2-ONLY-NEXT:    vmovaps (%rdi), %ymm12
2082 ; AVX2-ONLY-NEXT:    vmovaps (%rsi), %xmm2
2083 ; AVX2-ONLY-NEXT:    vmovaps 32(%rsi), %xmm4
2084 ; AVX2-ONLY-NEXT:    vmovaps 64(%rsi), %xmm1
2085 ; AVX2-ONLY-NEXT:    vmovaps 96(%rsi), %xmm0
2086 ; AVX2-ONLY-NEXT:    vinsertf128 $1, (%rcx), %ymm2, %ymm5
2087 ; AVX2-ONLY-NEXT:    vmovaps (%rdi), %xmm6
2088 ; AVX2-ONLY-NEXT:    vmovaps 32(%rdi), %xmm8
2089 ; AVX2-ONLY-NEXT:    vmovaps 64(%rdi), %xmm2
2090 ; AVX2-ONLY-NEXT:    vmovaps (%rdx), %xmm10
2091 ; AVX2-ONLY-NEXT:    vmovaps 32(%rdx), %xmm11
2092 ; AVX2-ONLY-NEXT:    vmovaps 64(%rdx), %xmm3
2093 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm10, %ymm6, %ymm6
2094 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm5 = ymm6[0],ymm5[0],ymm6[2],ymm5[2]
2095 ; AVX2-ONLY-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2096 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm5
2097 ; AVX2-ONLY-NEXT:    vbroadcastsd 8(%rsi), %ymm6
2098 ; AVX2-ONLY-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2099 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm6 = ymm12[0,1,2,3],ymm6[4,5,6,7]
2100 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2,3,4,5],ymm5[6,7]
2101 ; AVX2-ONLY-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2102 ; AVX2-ONLY-NEXT:    vmovddup {{.*#+}} xmm5 = mem[0,0]
2103 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm6 = ymm12[0],mem[0],ymm12[2],mem[2]
2104 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm6[4,5,6,7]
2105 ; AVX2-ONLY-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2106 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 32(%rcx), %ymm4, %ymm4
2107 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm11, %ymm8, %ymm5
2108 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm5[0],ymm4[0],ymm5[2],ymm4[2]
2109 ; AVX2-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2110 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm11, %ymm0, %ymm4
2111 ; AVX2-ONLY-NEXT:    vbroadcastsd 40(%rsi), %ymm5
2112 ; AVX2-ONLY-NEXT:    vmovups %ymm9, (%rsp) # 32-byte Spill
2113 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm9[0,1,2,3],ymm5[4,5,6,7]
2114 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1,2,3,4,5],ymm4[6,7]
2115 ; AVX2-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2116 ; AVX2-ONLY-NEXT:    vmovddup {{.*#+}} xmm4 = mem[0,0]
2117 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm5 = ymm9[0],mem[0],ymm9[2],mem[2]
2118 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm5[4,5,6,7]
2119 ; AVX2-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2120 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 64(%rcx), %ymm1, %ymm1
2121 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm3, %ymm2, %ymm2
2122 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],ymm1[0],ymm2[2],ymm1[2]
2123 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2124 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm1
2125 ; AVX2-ONLY-NEXT:    vbroadcastsd 72(%rsi), %ymm2
2126 ; AVX2-ONLY-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2127 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm7[0,1,2,3],ymm2[4,5,6,7]
2128 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
2129 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2130 ; AVX2-ONLY-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
2131 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm7[0],mem[0],ymm7[2],mem[2]
2132 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]
2133 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2134 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 96(%rcx), %ymm0, %ymm0
2135 ; AVX2-ONLY-NEXT:    vmovaps 96(%rdi), %xmm1
2136 ; AVX2-ONLY-NEXT:    vmovaps 96(%rdx), %xmm2
2137 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
2138 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
2139 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2140 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
2141 ; AVX2-ONLY-NEXT:    vbroadcastsd 104(%rsi), %ymm1
2142 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm13[0,1,2,3],ymm1[4,5,6,7]
2143 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
2144 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2145 ; AVX2-ONLY-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
2146 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm13[0],mem[0],ymm13[2],mem[2]
2147 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2148 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2149 ; AVX2-ONLY-NEXT:    vmovaps 128(%rsi), %xmm0
2150 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 128(%rcx), %ymm0, %ymm0
2151 ; AVX2-ONLY-NEXT:    vmovaps 128(%rdi), %xmm1
2152 ; AVX2-ONLY-NEXT:    vmovaps 128(%rdx), %xmm2
2153 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
2154 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
2155 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2156 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
2157 ; AVX2-ONLY-NEXT:    vmovaps 128(%rdi), %ymm2
2158 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2159 ; AVX2-ONLY-NEXT:    vbroadcastsd 136(%rsi), %ymm1
2160 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
2161 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
2162 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2163 ; AVX2-ONLY-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
2164 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
2165 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2166 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2167 ; AVX2-ONLY-NEXT:    vmovaps 160(%rsi), %xmm0
2168 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 160(%rcx), %ymm0, %ymm0
2169 ; AVX2-ONLY-NEXT:    vmovaps 160(%rdi), %xmm1
2170 ; AVX2-ONLY-NEXT:    vmovaps 160(%rdx), %xmm2
2171 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
2172 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
2173 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2174 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
2175 ; AVX2-ONLY-NEXT:    vmovaps 160(%rdi), %ymm2
2176 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2177 ; AVX2-ONLY-NEXT:    vbroadcastsd 168(%rsi), %ymm1
2178 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
2179 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
2180 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2181 ; AVX2-ONLY-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
2182 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
2183 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2184 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2185 ; AVX2-ONLY-NEXT:    vmovaps 192(%rsi), %xmm0
2186 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 192(%rcx), %ymm0, %ymm0
2187 ; AVX2-ONLY-NEXT:    vmovaps 192(%rdi), %xmm1
2188 ; AVX2-ONLY-NEXT:    vmovaps 192(%rdx), %xmm2
2189 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
2190 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
2191 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2192 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
2193 ; AVX2-ONLY-NEXT:    vmovaps 192(%rdi), %ymm2
2194 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2195 ; AVX2-ONLY-NEXT:    vbroadcastsd 200(%rsi), %ymm1
2196 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
2197 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
2198 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2199 ; AVX2-ONLY-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
2200 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
2201 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2202 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2203 ; AVX2-ONLY-NEXT:    vmovaps 224(%rsi), %xmm0
2204 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 224(%rcx), %ymm0, %ymm0
2205 ; AVX2-ONLY-NEXT:    vmovaps 224(%rdi), %xmm1
2206 ; AVX2-ONLY-NEXT:    vmovaps 224(%rdx), %xmm2
2207 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
2208 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
2209 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2210 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
2211 ; AVX2-ONLY-NEXT:    vmovaps 224(%rdi), %ymm9
2212 ; AVX2-ONLY-NEXT:    vbroadcastsd 232(%rsi), %ymm1
2213 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm9[0,1,2,3],ymm1[4,5,6,7]
2214 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
2215 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2216 ; AVX2-ONLY-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
2217 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm9[0],mem[0],ymm9[2],mem[2]
2218 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2219 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2220 ; AVX2-ONLY-NEXT:    vbroadcastsd 56(%rsi), %ymm0
2221 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
2222 ; AVX2-ONLY-NEXT:    vbroadcastsd 56(%rcx), %ymm1
2223 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm7 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2224 ; AVX2-ONLY-NEXT:    vbroadcastsd 120(%rsi), %ymm0
2225 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
2226 ; AVX2-ONLY-NEXT:    vbroadcastsd 120(%rcx), %ymm1
2227 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2228 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2229 ; AVX2-ONLY-NEXT:    vbroadcastsd 184(%rsi), %ymm0
2230 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
2231 ; AVX2-ONLY-NEXT:    vbroadcastsd 184(%rcx), %ymm1
2232 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2233 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2234 ; AVX2-ONLY-NEXT:    vbroadcastsd 248(%rsi), %ymm0
2235 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
2236 ; AVX2-ONLY-NEXT:    vbroadcastsd 248(%rcx), %ymm1
2237 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2238 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2239 ; AVX2-ONLY-NEXT:    vmovaps (%rdx), %ymm1
2240 ; AVX2-ONLY-NEXT:    vmovaps (%rcx), %ymm0
2241 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
2242 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,2,3,3]
2243 ; AVX2-ONLY-NEXT:    vbroadcastsd 24(%rsi), %ymm3
2244 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm6 = ymm3[0,1],ymm2[2,3,4,5,6,7]
2245 ; AVX2-ONLY-NEXT:    vmovaps 64(%rdx), %ymm14
2246 ; AVX2-ONLY-NEXT:    vmovaps 64(%rcx), %ymm15
2247 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm14[1],ymm15[1],ymm14[3],ymm15[3]
2248 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,2,3,3]
2249 ; AVX2-ONLY-NEXT:    vbroadcastsd 88(%rsi), %ymm3
2250 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm12 = ymm3[0,1],ymm2[2,3,4,5,6,7]
2251 ; AVX2-ONLY-NEXT:    vmovaps 128(%rdx), %ymm3
2252 ; AVX2-ONLY-NEXT:    vmovaps 128(%rcx), %ymm2
2253 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm4 = ymm3[1],ymm2[1],ymm3[3],ymm2[3]
2254 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm4 = ymm4[0,2,3,3]
2255 ; AVX2-ONLY-NEXT:    vbroadcastsd 152(%rsi), %ymm5
2256 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm8 = ymm5[0,1],ymm4[2,3,4,5,6,7]
2257 ; AVX2-ONLY-NEXT:    vmovaps 192(%rdx), %ymm5
2258 ; AVX2-ONLY-NEXT:    vmovaps 192(%rcx), %ymm4
2259 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm10 = ymm5[1],ymm4[1],ymm5[3],ymm4[3]
2260 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm10 = ymm10[0,2,3,3]
2261 ; AVX2-ONLY-NEXT:    vbroadcastsd 216(%rsi), %ymm11
2262 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1],ymm10[2,3,4,5,6,7]
2263 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
2264 ; AVX2-ONLY-NEXT:    vperm2f128 $49, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
2265 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[2,3],mem[2,3]
2266 ; AVX2-ONLY-NEXT:    vmovaps (%r8), %ymm1
2267 ; AVX2-ONLY-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm10 # 32-byte Folded Reload
2268 ; AVX2-ONLY-NEXT:    # ymm10 = ymm1[0,1],mem[2,3,4,5,6,7]
2269 ; AVX2-ONLY-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2270 ; AVX2-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm10 # 32-byte Folded Reload
2271 ; AVX2-ONLY-NEXT:    # ymm10 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
2272 ; AVX2-ONLY-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2273 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5],ymm1[6,7]
2274 ; AVX2-ONLY-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2275 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
2276 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2277 ; AVX2-ONLY-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
2278 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = mem[2,3],ymm0[2,3]
2279 ; AVX2-ONLY-NEXT:    vbroadcastsd 48(%rcx), %ymm1
2280 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]
2281 ; AVX2-ONLY-NEXT:    vmovaps 32(%r8), %ymm1
2282 ; AVX2-ONLY-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload
2283 ; AVX2-ONLY-NEXT:    # ymm6 = ymm1[0,1],mem[2,3,4,5,6,7]
2284 ; AVX2-ONLY-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2285 ; AVX2-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload
2286 ; AVX2-ONLY-NEXT:    # ymm6 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
2287 ; AVX2-ONLY-NEXT:    vmovups %ymm6, (%rsp) # 32-byte Spill
2288 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3,4,5],ymm1[6,7]
2289 ; AVX2-ONLY-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2290 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
2291 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2292 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm14[0],ymm15[0],ymm14[2],ymm15[2]
2293 ; AVX2-ONLY-NEXT:    vperm2f128 $49, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
2294 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[2,3],mem[2,3]
2295 ; AVX2-ONLY-NEXT:    vmovaps 64(%r8), %ymm1
2296 ; AVX2-ONLY-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload
2297 ; AVX2-ONLY-NEXT:    # ymm6 = ymm1[0,1],mem[2,3,4,5,6,7]
2298 ; AVX2-ONLY-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2299 ; AVX2-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload
2300 ; AVX2-ONLY-NEXT:    # ymm6 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
2301 ; AVX2-ONLY-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2302 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm6 = ymm12[0,1,2,3,4,5],ymm1[6,7]
2303 ; AVX2-ONLY-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2304 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
2305 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2306 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = mem[2,3],ymm13[2,3]
2307 ; AVX2-ONLY-NEXT:    vbroadcastsd 112(%rcx), %ymm1
2308 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]
2309 ; AVX2-ONLY-NEXT:    vmovaps 96(%r8), %ymm1
2310 ; AVX2-ONLY-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload
2311 ; AVX2-ONLY-NEXT:    # ymm6 = ymm1[0,1],mem[2,3,4,5,6,7]
2312 ; AVX2-ONLY-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2313 ; AVX2-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload
2314 ; AVX2-ONLY-NEXT:    # ymm6 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
2315 ; AVX2-ONLY-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2316 ; AVX2-ONLY-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload
2317 ; AVX2-ONLY-NEXT:    # ymm6 = mem[0,1,2,3,4,5],ymm1[6,7]
2318 ; AVX2-ONLY-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2319 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm15 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
2320 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
2321 ; AVX2-ONLY-NEXT:    vperm2f128 $49, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload
2322 ; AVX2-ONLY-NEXT:    # ymm1 = ymm0[2,3],mem[2,3]
2323 ; AVX2-ONLY-NEXT:    vmovaps 128(%r8), %ymm2
2324 ; AVX2-ONLY-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm13 # 32-byte Folded Reload
2325 ; AVX2-ONLY-NEXT:    # ymm13 = ymm2[0,1],mem[2,3,4,5,6,7]
2326 ; AVX2-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm12 # 32-byte Folded Reload
2327 ; AVX2-ONLY-NEXT:    # ymm12 = mem[0,1],ymm2[2,3],mem[4,5,6,7]
2328 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm8[0,1,2,3,4,5],ymm2[6,7]
2329 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2330 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm10 = ymm1[0,1,2,3],ymm2[4,5],ymm1[6,7]
2331 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2332 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm2 = mem[2,3],ymm0[2,3]
2333 ; AVX2-ONLY-NEXT:    vbroadcastsd 176(%rcx), %ymm3
2334 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1],ymm3[2,3],ymm2[4,5,6,7]
2335 ; AVX2-ONLY-NEXT:    vmovaps 160(%r8), %ymm3
2336 ; AVX2-ONLY-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm7 # 32-byte Folded Reload
2337 ; AVX2-ONLY-NEXT:    # ymm7 = ymm3[0,1],mem[2,3,4,5,6,7]
2338 ; AVX2-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm6 # 32-byte Folded Reload
2339 ; AVX2-ONLY-NEXT:    # ymm6 = mem[0,1],ymm3[2,3],mem[4,5,6,7]
2340 ; AVX2-ONLY-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm0 # 32-byte Folded Reload
2341 ; AVX2-ONLY-NEXT:    # ymm0 = mem[0,1,2,3,4,5],ymm3[6,7]
2342 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2343 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm8 = ymm2[0,1,2,3],ymm3[4,5],ymm2[6,7]
2344 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm5[0],ymm4[0],ymm5[2],ymm4[2]
2345 ; AVX2-ONLY-NEXT:    vperm2f128 $49, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
2346 ; AVX2-ONLY-NEXT:    # ymm2 = ymm2[2,3],mem[2,3]
2347 ; AVX2-ONLY-NEXT:    vmovaps 192(%r8), %ymm4
2348 ; AVX2-ONLY-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm5 # 32-byte Folded Reload
2349 ; AVX2-ONLY-NEXT:    # ymm5 = ymm4[0,1],mem[2,3,4,5,6,7]
2350 ; AVX2-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm3 # 32-byte Folded Reload
2351 ; AVX2-ONLY-NEXT:    # ymm3 = mem[0,1],ymm4[2,3],mem[4,5,6,7]
2352 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm14 = ymm11[0,1,2,3,4,5],ymm4[6,7]
2353 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm2[0,1,2,3],ymm4[4,5],ymm2[6,7]
2354 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm2 = mem[2,3],ymm9[2,3]
2355 ; AVX2-ONLY-NEXT:    vbroadcastsd 240(%rcx), %ymm9
2356 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm9 = ymm2[0,1],ymm9[2,3],ymm2[4,5,6,7]
2357 ; AVX2-ONLY-NEXT:    vmovaps 224(%r8), %ymm0
2358 ; AVX2-ONLY-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload
2359 ; AVX2-ONLY-NEXT:    # ymm2 = ymm0[0,1],mem[2,3,4,5,6,7]
2360 ; AVX2-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload
2361 ; AVX2-ONLY-NEXT:    # ymm1 = mem[0,1],ymm0[2,3],mem[4,5,6,7]
2362 ; AVX2-ONLY-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm11 # 32-byte Folded Reload
2363 ; AVX2-ONLY-NEXT:    # ymm11 = mem[0,1,2,3,4,5],ymm0[6,7]
2364 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm9[0,1,2,3],ymm0[4,5],ymm9[6,7]
2365 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 1216(%r9)
2366 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 1184(%r9)
2367 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 1152(%r9)
2368 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2369 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 1120(%r9)
2370 ; AVX2-ONLY-NEXT:    vmovaps %ymm4, 1056(%r9)
2371 ; AVX2-ONLY-NEXT:    vmovaps %ymm3, 1024(%r9)
2372 ; AVX2-ONLY-NEXT:    vmovaps %ymm5, 992(%r9)
2373 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2374 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 960(%r9)
2375 ; AVX2-ONLY-NEXT:    vmovaps %ymm8, 896(%r9)
2376 ; AVX2-ONLY-NEXT:    vmovaps %ymm6, 864(%r9)
2377 ; AVX2-ONLY-NEXT:    vmovaps %ymm7, 832(%r9)
2378 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2379 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 800(%r9)
2380 ; AVX2-ONLY-NEXT:    vmovaps %ymm10, 736(%r9)
2381 ; AVX2-ONLY-NEXT:    vmovaps %ymm12, 704(%r9)
2382 ; AVX2-ONLY-NEXT:    vmovaps %ymm13, 672(%r9)
2383 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2384 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 640(%r9)
2385 ; AVX2-ONLY-NEXT:    vmovaps %ymm15, 576(%r9)
2386 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2387 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 544(%r9)
2388 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2389 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 512(%r9)
2390 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2391 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 480(%r9)
2392 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2393 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 416(%r9)
2394 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2395 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 384(%r9)
2396 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2397 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 352(%r9)
2398 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2399 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 320(%r9)
2400 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2401 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 256(%r9)
2402 ; AVX2-ONLY-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
2403 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 224(%r9)
2404 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2405 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 192(%r9)
2406 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2407 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 160(%r9)
2408 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2409 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 96(%r9)
2410 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2411 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 64(%r9)
2412 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2413 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 32(%r9)
2414 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2415 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, (%r9)
2416 ; AVX2-ONLY-NEXT:    vmovaps %ymm14, 1088(%r9)
2417 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2418 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 768(%r9)
2419 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2420 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 448(%r9)
2421 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2422 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 128(%r9)
2423 ; AVX2-ONLY-NEXT:    vmovaps %ymm11, 1248(%r9)
2424 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2425 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 928(%r9)
2426 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2427 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 608(%r9)
2428 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2429 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 288(%r9)
2430 ; AVX2-ONLY-NEXT:    addq $1128, %rsp # imm = 0x468
2431 ; AVX2-ONLY-NEXT:    vzeroupper
2432 ; AVX2-ONLY-NEXT:    retq
2434 ; AVX512F-LABEL: store_i64_stride5_vf32:
2435 ; AVX512F:       # %bb.0:
2436 ; AVX512F-NEXT:    subq $648, %rsp # imm = 0x288
2437 ; AVX512F-NEXT:    vmovdqa64 128(%rdi), %zmm15
2438 ; AVX512F-NEXT:    vmovdqa64 192(%rdi), %zmm20
2439 ; AVX512F-NEXT:    vmovdqa64 192(%rsi), %zmm16
2440 ; AVX512F-NEXT:    vmovdqa64 (%rdx), %zmm17
2441 ; AVX512F-NEXT:    vmovdqa64 64(%rdx), %zmm24
2442 ; AVX512F-NEXT:    vmovdqa64 128(%rdx), %zmm22
2443 ; AVX512F-NEXT:    vmovdqa64 192(%rdx), %zmm27
2444 ; AVX512F-NEXT:    vmovdqa64 (%rcx), %zmm1
2445 ; AVX512F-NEXT:    vmovdqa64 64(%rcx), %zmm23
2446 ; AVX512F-NEXT:    vmovdqa64 128(%rcx), %zmm25
2447 ; AVX512F-NEXT:    vmovdqa64 192(%rcx), %zmm18
2448 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm11 = <3,u,u,u,12,4,u,u>
2449 ; AVX512F-NEXT:    vmovdqa64 %zmm16, %zmm0
2450 ; AVX512F-NEXT:    vpermt2q %zmm20, %zmm11, %zmm0
2451 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
2452 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm19 = <u,3,11,u,u,u,4,12>
2453 ; AVX512F-NEXT:    vmovdqa64 %zmm27, %zmm0
2454 ; AVX512F-NEXT:    vpermt2q %zmm18, %zmm19, %zmm0
2455 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
2456 ; AVX512F-NEXT:    vmovdqa64 %zmm22, %zmm0
2457 ; AVX512F-NEXT:    vpermt2q %zmm25, %zmm19, %zmm0
2458 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
2459 ; AVX512F-NEXT:    vmovdqa64 %zmm24, %zmm0
2460 ; AVX512F-NEXT:    vpermt2q %zmm23, %zmm19, %zmm0
2461 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
2462 ; AVX512F-NEXT:    vpermi2q %zmm1, %zmm17, %zmm19
2463 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm28 = <u,u,0,8,u,u,u,1>
2464 ; AVX512F-NEXT:    vmovdqa64 %zmm17, %zmm0
2465 ; AVX512F-NEXT:    vpermt2q %zmm1, %zmm28, %zmm0
2466 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
2467 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm14 = <0,8,u,u,u,1,9,u>
2468 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm29 = [15,7,15,7,15,7,15,7]
2469 ; AVX512F-NEXT:    # zmm29 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2470 ; AVX512F-NEXT:    vmovdqa64 %zmm20, %zmm0
2471 ; AVX512F-NEXT:    vpermt2q %zmm16, %zmm29, %zmm0
2472 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
2473 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm12 = <6,14,u,u,u,7,15,u>
2474 ; AVX512F-NEXT:    vmovdqa64 %zmm27, %zmm26
2475 ; AVX512F-NEXT:    vpermt2q %zmm18, %zmm12, %zmm26
2476 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm21 = [13,5,13,5,13,5,13,5]
2477 ; AVX512F-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2478 ; AVX512F-NEXT:    vmovdqa64 %zmm27, %zmm0
2479 ; AVX512F-NEXT:    vpermt2q %zmm18, %zmm21, %zmm0
2480 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
2481 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm31 = <1,u,u,u,10,2,u,u>
2482 ; AVX512F-NEXT:    vmovdqa64 %zmm18, %zmm0
2483 ; AVX512F-NEXT:    vpermt2q %zmm27, %zmm31, %zmm0
2484 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
2485 ; AVX512F-NEXT:    vpermt2q %zmm18, %zmm28, %zmm27
2486 ; AVX512F-NEXT:    vmovdqa64 %zmm22, %zmm18
2487 ; AVX512F-NEXT:    vpermt2q %zmm25, %zmm12, %zmm18
2488 ; AVX512F-NEXT:    vmovdqa64 %zmm22, %zmm0
2489 ; AVX512F-NEXT:    vpermt2q %zmm25, %zmm21, %zmm0
2490 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
2491 ; AVX512F-NEXT:    vmovdqa64 %zmm25, %zmm0
2492 ; AVX512F-NEXT:    vpermt2q %zmm22, %zmm31, %zmm0
2493 ; AVX512F-NEXT:    vmovdqu64 %zmm0, (%rsp) # 64-byte Spill
2494 ; AVX512F-NEXT:    vpermt2q %zmm25, %zmm28, %zmm22
2495 ; AVX512F-NEXT:    vmovdqa64 %zmm24, %zmm25
2496 ; AVX512F-NEXT:    vmovdqa64 %zmm24, %zmm0
2497 ; AVX512F-NEXT:    vmovdqa64 %zmm23, %zmm30
2498 ; AVX512F-NEXT:    vpermt2q %zmm24, %zmm31, %zmm30
2499 ; AVX512F-NEXT:    vpermt2q %zmm23, %zmm28, %zmm24
2500 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm28 = <u,5,13,u,u,u,6,14>
2501 ; AVX512F-NEXT:    vpermt2q %zmm23, %zmm12, %zmm25
2502 ; AVX512F-NEXT:    vpermt2q %zmm23, %zmm21, %zmm0
2503 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
2504 ; AVX512F-NEXT:    vmovdqa64 %zmm20, %zmm23
2505 ; AVX512F-NEXT:    vpermt2q %zmm16, %zmm28, %zmm23
2506 ; AVX512F-NEXT:    vpermi2q %zmm1, %zmm17, %zmm12
2507 ; AVX512F-NEXT:    vpermi2q %zmm1, %zmm17, %zmm21
2508 ; AVX512F-NEXT:    vpermt2q %zmm17, %zmm31, %zmm1
2509 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
2510 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm10 = <u,u,2,10,u,u,u,3>
2511 ; AVX512F-NEXT:    vmovdqa64 %zmm20, %zmm17
2512 ; AVX512F-NEXT:    vpermt2q %zmm16, %zmm10, %zmm17
2513 ; AVX512F-NEXT:    vpermt2q %zmm16, %zmm14, %zmm20
2514 ; AVX512F-NEXT:    vmovdqa64 128(%rsi), %zmm0
2515 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm6
2516 ; AVX512F-NEXT:    vpermt2q %zmm15, %zmm11, %zmm6
2517 ; AVX512F-NEXT:    vmovdqa64 %zmm15, %zmm13
2518 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm29, %zmm13
2519 ; AVX512F-NEXT:    vmovdqa64 %zmm15, %zmm16
2520 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm28, %zmm16
2521 ; AVX512F-NEXT:    vmovdqa64 %zmm15, %zmm8
2522 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm10, %zmm8
2523 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm14, %zmm15
2524 ; AVX512F-NEXT:    vmovdqa64 64(%rdi), %zmm2
2525 ; AVX512F-NEXT:    vmovdqa64 64(%rsi), %zmm0
2526 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm3
2527 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm11, %zmm3
2528 ; AVX512F-NEXT:    vmovdqa64 (%rdi), %zmm31
2529 ; AVX512F-NEXT:    vmovdqa64 (%rsi), %zmm1
2530 ; AVX512F-NEXT:    vmovdqa64 %zmm31, %zmm7
2531 ; AVX512F-NEXT:    vpermt2q %zmm1, %zmm14, %zmm7
2532 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm9
2533 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm5
2534 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm4
2535 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm14, %zmm2
2536 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm29, %zmm9
2537 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm28, %zmm5
2538 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm10, %zmm4
2539 ; AVX512F-NEXT:    vpermi2q %zmm31, %zmm1, %zmm11
2540 ; AVX512F-NEXT:    vpermi2q %zmm1, %zmm31, %zmm29
2541 ; AVX512F-NEXT:    vpermi2q %zmm1, %zmm31, %zmm28
2542 ; AVX512F-NEXT:    vpermt2q %zmm1, %zmm10, %zmm31
2543 ; AVX512F-NEXT:    movb $49, %al
2544 ; AVX512F-NEXT:    kmovw %eax, %k1
2545 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
2546 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
2547 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
2548 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
2549 ; AVX512F-NEXT:    vmovdqa64 %zmm6, %zmm10 {%k1}
2550 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
2551 ; AVX512F-NEXT:    vmovdqa64 %zmm3, %zmm14 {%k1}
2552 ; AVX512F-NEXT:    vmovdqa64 %zmm11, %zmm19 {%k1}
2553 ; AVX512F-NEXT:    movb $-116, %al
2554 ; AVX512F-NEXT:    kmovw %eax, %k3
2555 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
2556 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k3}
2557 ; AVX512F-NEXT:    movb $24, %al
2558 ; AVX512F-NEXT:    kmovw %eax, %k2
2559 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
2560 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k2}
2561 ; AVX512F-NEXT:    vmovdqa64 %zmm27, %zmm20 {%k3}
2562 ; AVX512F-NEXT:    vmovdqa64 %zmm22, %zmm15 {%k3}
2563 ; AVX512F-NEXT:    vmovdqa64 %zmm24, %zmm2 {%k3}
2564 ; AVX512F-NEXT:    vmovdqa64 192(%r8), %zmm0
2565 ; AVX512F-NEXT:    movb $8, %al
2566 ; AVX512F-NEXT:    kmovw %eax, %k3
2567 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k3}
2568 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm22
2569 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
2570 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm23 {%k2}
2571 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm1 = [0,1,14,3,4,5,6,15]
2572 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm1, %zmm26
2573 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
2574 ; AVX512F-NEXT:    vmovdqa64 %zmm3, %zmm17 {%k1}
2575 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm3 = [12,1,2,3,4,13,6,7]
2576 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm3, %zmm23
2577 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm6 = [0,9,2,3,4,5,10,7]
2578 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm6, %zmm17
2579 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm11 = [0,1,2,3,8,5,6,7]
2580 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm11, %zmm20
2581 ; AVX512F-NEXT:    vmovdqa64 %zmm13, %zmm18 {%k2}
2582 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
2583 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm16 {%k2}
2584 ; AVX512F-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
2585 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
2586 ; AVX512F-NEXT:    vmovdqa64 128(%r8), %zmm0
2587 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm10 {%k3}
2588 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm1, %zmm18
2589 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm3, %zmm16
2590 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm6, %zmm8
2591 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm11, %zmm15
2592 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm25 {%k2}
2593 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
2594 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm5 {%k2}
2595 ; AVX512F-NEXT:    vmovdqa64 (%r8), %zmm0
2596 ; AVX512F-NEXT:    vmovdqa64 %zmm30, %zmm4 {%k1}
2597 ; AVX512F-NEXT:    vmovdqa64 64(%r8), %zmm9
2598 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm11, %zmm7
2599 ; AVX512F-NEXT:    vpermt2q %zmm9, %zmm11, %zmm2
2600 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm14 {%k3}
2601 ; AVX512F-NEXT:    vpermt2q %zmm9, %zmm1, %zmm25
2602 ; AVX512F-NEXT:    vpermt2q %zmm9, %zmm3, %zmm5
2603 ; AVX512F-NEXT:    vpermt2q %zmm9, %zmm6, %zmm4
2604 ; AVX512F-NEXT:    vmovdqa64 %zmm29, %zmm12 {%k2}
2605 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm1, %zmm12
2606 ; AVX512F-NEXT:    vmovdqa64 %zmm21, %zmm28 {%k2}
2607 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm3, %zmm28
2608 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
2609 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm31 {%k1}
2610 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm6, %zmm31
2611 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k3}
2612 ; AVX512F-NEXT:    vmovdqa64 %zmm31, 64(%r9)
2613 ; AVX512F-NEXT:    vmovdqa64 %zmm19, 128(%r9)
2614 ; AVX512F-NEXT:    vmovdqa64 %zmm28, 192(%r9)
2615 ; AVX512F-NEXT:    vmovdqa64 %zmm12, 256(%r9)
2616 ; AVX512F-NEXT:    vmovdqa64 %zmm2, 320(%r9)
2617 ; AVX512F-NEXT:    vmovdqa64 %zmm4, 384(%r9)
2618 ; AVX512F-NEXT:    vmovdqa64 %zmm14, 448(%r9)
2619 ; AVX512F-NEXT:    vmovdqa64 %zmm5, 512(%r9)
2620 ; AVX512F-NEXT:    vmovdqa64 %zmm25, 576(%r9)
2621 ; AVX512F-NEXT:    vmovdqa64 %zmm15, 640(%r9)
2622 ; AVX512F-NEXT:    vmovdqa64 %zmm8, 704(%r9)
2623 ; AVX512F-NEXT:    vmovdqa64 %zmm10, 768(%r9)
2624 ; AVX512F-NEXT:    vmovdqa64 %zmm16, 832(%r9)
2625 ; AVX512F-NEXT:    vmovdqa64 %zmm18, 896(%r9)
2626 ; AVX512F-NEXT:    vmovdqa64 %zmm20, 960(%r9)
2627 ; AVX512F-NEXT:    vmovdqa64 %zmm17, 1024(%r9)
2628 ; AVX512F-NEXT:    vmovdqa64 %zmm22, 1088(%r9)
2629 ; AVX512F-NEXT:    vmovdqa64 %zmm23, 1152(%r9)
2630 ; AVX512F-NEXT:    vmovdqa64 %zmm26, 1216(%r9)
2631 ; AVX512F-NEXT:    vmovdqa64 %zmm7, (%r9)
2632 ; AVX512F-NEXT:    addq $648, %rsp # imm = 0x288
2633 ; AVX512F-NEXT:    vzeroupper
2634 ; AVX512F-NEXT:    retq
2636 ; AVX512BW-LABEL: store_i64_stride5_vf32:
2637 ; AVX512BW:       # %bb.0:
2638 ; AVX512BW-NEXT:    subq $648, %rsp # imm = 0x288
2639 ; AVX512BW-NEXT:    vmovdqa64 128(%rdi), %zmm15
2640 ; AVX512BW-NEXT:    vmovdqa64 192(%rdi), %zmm20
2641 ; AVX512BW-NEXT:    vmovdqa64 192(%rsi), %zmm16
2642 ; AVX512BW-NEXT:    vmovdqa64 (%rdx), %zmm17
2643 ; AVX512BW-NEXT:    vmovdqa64 64(%rdx), %zmm24
2644 ; AVX512BW-NEXT:    vmovdqa64 128(%rdx), %zmm22
2645 ; AVX512BW-NEXT:    vmovdqa64 192(%rdx), %zmm27
2646 ; AVX512BW-NEXT:    vmovdqa64 (%rcx), %zmm1
2647 ; AVX512BW-NEXT:    vmovdqa64 64(%rcx), %zmm23
2648 ; AVX512BW-NEXT:    vmovdqa64 128(%rcx), %zmm25
2649 ; AVX512BW-NEXT:    vmovdqa64 192(%rcx), %zmm18
2650 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm11 = <3,u,u,u,12,4,u,u>
2651 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, %zmm0
2652 ; AVX512BW-NEXT:    vpermt2q %zmm20, %zmm11, %zmm0
2653 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
2654 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm19 = <u,3,11,u,u,u,4,12>
2655 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, %zmm0
2656 ; AVX512BW-NEXT:    vpermt2q %zmm18, %zmm19, %zmm0
2657 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
2658 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm0
2659 ; AVX512BW-NEXT:    vpermt2q %zmm25, %zmm19, %zmm0
2660 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
2661 ; AVX512BW-NEXT:    vmovdqa64 %zmm24, %zmm0
2662 ; AVX512BW-NEXT:    vpermt2q %zmm23, %zmm19, %zmm0
2663 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
2664 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm17, %zmm19
2665 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm28 = <u,u,0,8,u,u,u,1>
2666 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm0
2667 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm28, %zmm0
2668 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
2669 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm14 = <0,8,u,u,u,1,9,u>
2670 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm29 = [15,7,15,7,15,7,15,7]
2671 ; AVX512BW-NEXT:    # zmm29 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2672 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, %zmm0
2673 ; AVX512BW-NEXT:    vpermt2q %zmm16, %zmm29, %zmm0
2674 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
2675 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm12 = <6,14,u,u,u,7,15,u>
2676 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, %zmm26
2677 ; AVX512BW-NEXT:    vpermt2q %zmm18, %zmm12, %zmm26
2678 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm21 = [13,5,13,5,13,5,13,5]
2679 ; AVX512BW-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2680 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, %zmm0
2681 ; AVX512BW-NEXT:    vpermt2q %zmm18, %zmm21, %zmm0
2682 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
2683 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm31 = <1,u,u,u,10,2,u,u>
2684 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, %zmm0
2685 ; AVX512BW-NEXT:    vpermt2q %zmm27, %zmm31, %zmm0
2686 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
2687 ; AVX512BW-NEXT:    vpermt2q %zmm18, %zmm28, %zmm27
2688 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm18
2689 ; AVX512BW-NEXT:    vpermt2q %zmm25, %zmm12, %zmm18
2690 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm0
2691 ; AVX512BW-NEXT:    vpermt2q %zmm25, %zmm21, %zmm0
2692 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
2693 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, %zmm0
2694 ; AVX512BW-NEXT:    vpermt2q %zmm22, %zmm31, %zmm0
2695 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, (%rsp) # 64-byte Spill
2696 ; AVX512BW-NEXT:    vpermt2q %zmm25, %zmm28, %zmm22
2697 ; AVX512BW-NEXT:    vmovdqa64 %zmm24, %zmm25
2698 ; AVX512BW-NEXT:    vmovdqa64 %zmm24, %zmm0
2699 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, %zmm30
2700 ; AVX512BW-NEXT:    vpermt2q %zmm24, %zmm31, %zmm30
2701 ; AVX512BW-NEXT:    vpermt2q %zmm23, %zmm28, %zmm24
2702 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm28 = <u,5,13,u,u,u,6,14>
2703 ; AVX512BW-NEXT:    vpermt2q %zmm23, %zmm12, %zmm25
2704 ; AVX512BW-NEXT:    vpermt2q %zmm23, %zmm21, %zmm0
2705 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
2706 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, %zmm23
2707 ; AVX512BW-NEXT:    vpermt2q %zmm16, %zmm28, %zmm23
2708 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm17, %zmm12
2709 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm17, %zmm21
2710 ; AVX512BW-NEXT:    vpermt2q %zmm17, %zmm31, %zmm1
2711 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
2712 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm10 = <u,u,2,10,u,u,u,3>
2713 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, %zmm17
2714 ; AVX512BW-NEXT:    vpermt2q %zmm16, %zmm10, %zmm17
2715 ; AVX512BW-NEXT:    vpermt2q %zmm16, %zmm14, %zmm20
2716 ; AVX512BW-NEXT:    vmovdqa64 128(%rsi), %zmm0
2717 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm6
2718 ; AVX512BW-NEXT:    vpermt2q %zmm15, %zmm11, %zmm6
2719 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm13
2720 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm29, %zmm13
2721 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm16
2722 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm28, %zmm16
2723 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm8
2724 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm10, %zmm8
2725 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm14, %zmm15
2726 ; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %zmm2
2727 ; AVX512BW-NEXT:    vmovdqa64 64(%rsi), %zmm0
2728 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm3
2729 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm11, %zmm3
2730 ; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm31
2731 ; AVX512BW-NEXT:    vmovdqa64 (%rsi), %zmm1
2732 ; AVX512BW-NEXT:    vmovdqa64 %zmm31, %zmm7
2733 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm14, %zmm7
2734 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm9
2735 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm5
2736 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm4
2737 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm14, %zmm2
2738 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm29, %zmm9
2739 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm28, %zmm5
2740 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm10, %zmm4
2741 ; AVX512BW-NEXT:    vpermi2q %zmm31, %zmm1, %zmm11
2742 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm31, %zmm29
2743 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm31, %zmm28
2744 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm10, %zmm31
2745 ; AVX512BW-NEXT:    movb $49, %al
2746 ; AVX512BW-NEXT:    kmovd %eax, %k1
2747 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
2748 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
2749 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
2750 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
2751 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm10 {%k1}
2752 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
2753 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm14 {%k1}
2754 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm19 {%k1}
2755 ; AVX512BW-NEXT:    movb $-116, %al
2756 ; AVX512BW-NEXT:    kmovd %eax, %k3
2757 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
2758 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k3}
2759 ; AVX512BW-NEXT:    movb $24, %al
2760 ; AVX512BW-NEXT:    kmovd %eax, %k2
2761 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
2762 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k2}
2763 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, %zmm20 {%k3}
2764 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm15 {%k3}
2765 ; AVX512BW-NEXT:    vmovdqa64 %zmm24, %zmm2 {%k3}
2766 ; AVX512BW-NEXT:    vmovdqa64 192(%r8), %zmm0
2767 ; AVX512BW-NEXT:    movb $8, %al
2768 ; AVX512BW-NEXT:    kmovd %eax, %k3
2769 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k3}
2770 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm22
2771 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
2772 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm23 {%k2}
2773 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm1 = [0,1,14,3,4,5,6,15]
2774 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm1, %zmm26
2775 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
2776 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm17 {%k1}
2777 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm3 = [12,1,2,3,4,13,6,7]
2778 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm3, %zmm23
2779 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm6 = [0,9,2,3,4,5,10,7]
2780 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm6, %zmm17
2781 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm11 = [0,1,2,3,8,5,6,7]
2782 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm11, %zmm20
2783 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm18 {%k2}
2784 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
2785 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm16 {%k2}
2786 ; AVX512BW-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
2787 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
2788 ; AVX512BW-NEXT:    vmovdqa64 128(%r8), %zmm0
2789 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm10 {%k3}
2790 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm1, %zmm18
2791 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm3, %zmm16
2792 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm6, %zmm8
2793 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm11, %zmm15
2794 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm25 {%k2}
2795 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
2796 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm5 {%k2}
2797 ; AVX512BW-NEXT:    vmovdqa64 (%r8), %zmm0
2798 ; AVX512BW-NEXT:    vmovdqa64 %zmm30, %zmm4 {%k1}
2799 ; AVX512BW-NEXT:    vmovdqa64 64(%r8), %zmm9
2800 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm11, %zmm7
2801 ; AVX512BW-NEXT:    vpermt2q %zmm9, %zmm11, %zmm2
2802 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm14 {%k3}
2803 ; AVX512BW-NEXT:    vpermt2q %zmm9, %zmm1, %zmm25
2804 ; AVX512BW-NEXT:    vpermt2q %zmm9, %zmm3, %zmm5
2805 ; AVX512BW-NEXT:    vpermt2q %zmm9, %zmm6, %zmm4
2806 ; AVX512BW-NEXT:    vmovdqa64 %zmm29, %zmm12 {%k2}
2807 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm1, %zmm12
2808 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, %zmm28 {%k2}
2809 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm3, %zmm28
2810 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
2811 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm31 {%k1}
2812 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm6, %zmm31
2813 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k3}
2814 ; AVX512BW-NEXT:    vmovdqa64 %zmm31, 64(%r9)
2815 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, 128(%r9)
2816 ; AVX512BW-NEXT:    vmovdqa64 %zmm28, 192(%r9)
2817 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, 256(%r9)
2818 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, 320(%r9)
2819 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, 384(%r9)
2820 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, 448(%r9)
2821 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, 512(%r9)
2822 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, 576(%r9)
2823 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, 640(%r9)
2824 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, 704(%r9)
2825 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, 768(%r9)
2826 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, 832(%r9)
2827 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, 896(%r9)
2828 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, 960(%r9)
2829 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, 1024(%r9)
2830 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, 1088(%r9)
2831 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, 1152(%r9)
2832 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, 1216(%r9)
2833 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, (%r9)
2834 ; AVX512BW-NEXT:    addq $648, %rsp # imm = 0x288
2835 ; AVX512BW-NEXT:    vzeroupper
2836 ; AVX512BW-NEXT:    retq
2837   %in.vec0 = load <32 x i64>, ptr %in.vecptr0, align 64
2838   %in.vec1 = load <32 x i64>, ptr %in.vecptr1, align 64
2839   %in.vec2 = load <32 x i64>, ptr %in.vecptr2, align 64
2840   %in.vec3 = load <32 x i64>, ptr %in.vecptr3, align 64
2841   %in.vec4 = load <32 x i64>, ptr %in.vecptr4, align 64
2842   %1 = shufflevector <32 x i64> %in.vec0, <32 x i64> %in.vec1, <64 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63>
2843   %2 = shufflevector <32 x i64> %in.vec2, <32 x i64> %in.vec3, <64 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63>
2844   %3 = shufflevector <64 x i64> %1, <64 x i64> %2, <128 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127>
2845   %4 = shufflevector <32 x i64> %in.vec4, <32 x i64> poison, <128 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
2846   %5 = shufflevector <128 x i64> %3, <128 x i64> %4, <160 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127, i32 128, i32 129, i32 130, i32 131, i32 132, i32 133, i32 134, i32 135, i32 136, i32 137, i32 138, i32 139, i32 140, i32 141, i32 142, i32 143, i32 144, i32 145, i32 146, i32 147, i32 148, i32 149, i32 150, i32 151, i32 152, i32 153, i32 154, i32 155, i32 156, i32 157, i32 158, i32 159>
2847   %interleaved.vec = shufflevector <160 x i64> %5, <160 x i64> poison, <160 x i32> <i32 0, i32 32, i32 64, i32 96, i32 128, i32 1, i32 33, i32 65, i32 97, i32 129, i32 2, i32 34, i32 66, i32 98, i32 130, i32 3, i32 35, i32 67, i32 99, i32 131, i32 4, i32 36, i32 68, i32 100, i32 132, i32 5, i32 37, i32 69, i32 101, i32 133, i32 6, i32 38, i32 70, i32 102, i32 134, i32 7, i32 39, i32 71, i32 103, i32 135, i32 8, i32 40, i32 72, i32 104, i32 136, i32 9, i32 41, i32 73, i32 105, i32 137, i32 10, i32 42, i32 74, i32 106, i32 138, i32 11, i32 43, i32 75, i32 107, i32 139, i32 12, i32 44, i32 76, i32 108, i32 140, i32 13, i32 45, i32 77, i32 109, i32 141, i32 14, i32 46, i32 78, i32 110, i32 142, i32 15, i32 47, i32 79, i32 111, i32 143, i32 16, i32 48, i32 80, i32 112, i32 144, i32 17, i32 49, i32 81, i32 113, i32 145, i32 18, i32 50, i32 82, i32 114, i32 146, i32 19, i32 51, i32 83, i32 115, i32 147, i32 20, i32 52, i32 84, i32 116, i32 148, i32 21, i32 53, i32 85, i32 117, i32 149, i32 22, i32 54, i32 86, i32 118, i32 150, i32 23, i32 55, i32 87, i32 119, i32 151, i32 24, i32 56, i32 88, i32 120, i32 152, i32 25, i32 57, i32 89, i32 121, i32 153, i32 26, i32 58, i32 90, i32 122, i32 154, i32 27, i32 59, i32 91, i32 123, i32 155, i32 28, i32 60, i32 92, i32 124, i32 156, i32 29, i32 61, i32 93, i32 125, i32 157, i32 30, i32 62, i32 94, i32 126, i32 158, i32 31, i32 63, i32 95, i32 127, i32 159>
2848   store <160 x i64> %interleaved.vec, ptr %out.vec, align 64
2849   ret void
2852 define void @store_i64_stride5_vf64(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %in.vecptr4, ptr %out.vec) nounwind {
2853 ; SSE-LABEL: store_i64_stride5_vf64:
2854 ; SSE:       # %bb.0:
2855 ; SSE-NEXT:    subq $2200, %rsp # imm = 0x898
2856 ; SSE-NEXT:    movapd (%rdi), %xmm3
2857 ; SSE-NEXT:    movapd 16(%rdi), %xmm4
2858 ; SSE-NEXT:    movapd 32(%rdi), %xmm5
2859 ; SSE-NEXT:    movapd (%rsi), %xmm6
2860 ; SSE-NEXT:    movapd 16(%rsi), %xmm7
2861 ; SSE-NEXT:    movapd 32(%rsi), %xmm8
2862 ; SSE-NEXT:    movapd (%rdx), %xmm9
2863 ; SSE-NEXT:    movapd 16(%rdx), %xmm10
2864 ; SSE-NEXT:    movapd 32(%rdx), %xmm11
2865 ; SSE-NEXT:    movapd (%rcx), %xmm12
2866 ; SSE-NEXT:    movapd 16(%rcx), %xmm13
2867 ; SSE-NEXT:    movapd 32(%rcx), %xmm14
2868 ; SSE-NEXT:    movapd 16(%r8), %xmm1
2869 ; SSE-NEXT:    movapd 32(%r8), %xmm0
2870 ; SSE-NEXT:    movapd (%r8), %xmm2
2871 ; SSE-NEXT:    movapd %xmm3, %xmm15
2872 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm15 = xmm15[0],xmm6[0]
2873 ; SSE-NEXT:    movapd %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2874 ; SSE-NEXT:    movsd {{.*#+}} xmm3 = xmm2[0],xmm3[1]
2875 ; SSE-NEXT:    movapd %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2876 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm6 = xmm6[1],xmm9[1]
2877 ; SSE-NEXT:    movapd %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2878 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm9 = xmm9[0],xmm12[0]
2879 ; SSE-NEXT:    movapd %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2880 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm12 = xmm12[1],xmm2[1]
2881 ; SSE-NEXT:    movapd %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2882 ; SSE-NEXT:    movapd %xmm4, %xmm2
2883 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm2 = xmm2[0],xmm7[0]
2884 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2885 ; SSE-NEXT:    movsd {{.*#+}} xmm4 = xmm1[0],xmm4[1]
2886 ; SSE-NEXT:    movapd %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2887 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm7 = xmm7[1],xmm10[1]
2888 ; SSE-NEXT:    movapd %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2889 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm10 = xmm10[0],xmm13[0]
2890 ; SSE-NEXT:    movapd %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2891 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm13 = xmm13[1],xmm1[1]
2892 ; SSE-NEXT:    movapd %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2893 ; SSE-NEXT:    movapd %xmm5, %xmm1
2894 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm8[0]
2895 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2896 ; SSE-NEXT:    movsd {{.*#+}} xmm5 = xmm0[0],xmm5[1]
2897 ; SSE-NEXT:    movapd %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2898 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm11[1]
2899 ; SSE-NEXT:    movapd %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2900 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm11 = xmm11[0],xmm14[0]
2901 ; SSE-NEXT:    movapd %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2902 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm14 = xmm14[1],xmm0[1]
2903 ; SSE-NEXT:    movapd %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2904 ; SSE-NEXT:    movapd 48(%rdi), %xmm1
2905 ; SSE-NEXT:    movapd 48(%rsi), %xmm2
2906 ; SSE-NEXT:    movapd %xmm1, %xmm0
2907 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
2908 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2909 ; SSE-NEXT:    movapd 48(%r8), %xmm0
2910 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2911 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2912 ; SSE-NEXT:    movapd 48(%rdx), %xmm1
2913 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
2914 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2915 ; SSE-NEXT:    movapd 48(%rcx), %xmm2
2916 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
2917 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2918 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2919 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2920 ; SSE-NEXT:    movapd 64(%rdi), %xmm1
2921 ; SSE-NEXT:    movapd 64(%rsi), %xmm2
2922 ; SSE-NEXT:    movapd %xmm1, %xmm0
2923 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
2924 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2925 ; SSE-NEXT:    movapd 64(%r8), %xmm0
2926 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2927 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2928 ; SSE-NEXT:    movapd 64(%rdx), %xmm1
2929 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
2930 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2931 ; SSE-NEXT:    movapd 64(%rcx), %xmm2
2932 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
2933 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2934 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2935 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2936 ; SSE-NEXT:    movapd 80(%rdi), %xmm1
2937 ; SSE-NEXT:    movapd 80(%rsi), %xmm2
2938 ; SSE-NEXT:    movapd %xmm1, %xmm0
2939 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
2940 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2941 ; SSE-NEXT:    movapd 80(%r8), %xmm0
2942 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2943 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2944 ; SSE-NEXT:    movapd 80(%rdx), %xmm1
2945 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
2946 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2947 ; SSE-NEXT:    movapd 80(%rcx), %xmm2
2948 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
2949 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2950 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2951 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2952 ; SSE-NEXT:    movapd 96(%rdi), %xmm1
2953 ; SSE-NEXT:    movapd 96(%rsi), %xmm2
2954 ; SSE-NEXT:    movapd %xmm1, %xmm0
2955 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
2956 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2957 ; SSE-NEXT:    movapd 96(%r8), %xmm0
2958 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2959 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2960 ; SSE-NEXT:    movapd 96(%rdx), %xmm1
2961 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
2962 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2963 ; SSE-NEXT:    movapd 96(%rcx), %xmm2
2964 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
2965 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2966 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2967 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2968 ; SSE-NEXT:    movapd 112(%rdi), %xmm1
2969 ; SSE-NEXT:    movapd 112(%rsi), %xmm2
2970 ; SSE-NEXT:    movapd %xmm1, %xmm0
2971 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
2972 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2973 ; SSE-NEXT:    movapd 112(%r8), %xmm0
2974 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2975 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2976 ; SSE-NEXT:    movapd 112(%rdx), %xmm1
2977 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
2978 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2979 ; SSE-NEXT:    movapd 112(%rcx), %xmm2
2980 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
2981 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2982 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2983 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2984 ; SSE-NEXT:    movapd 128(%rdi), %xmm1
2985 ; SSE-NEXT:    movapd 128(%rsi), %xmm2
2986 ; SSE-NEXT:    movapd %xmm1, %xmm0
2987 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
2988 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2989 ; SSE-NEXT:    movapd 128(%r8), %xmm0
2990 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2991 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2992 ; SSE-NEXT:    movapd 128(%rdx), %xmm1
2993 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
2994 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2995 ; SSE-NEXT:    movapd 128(%rcx), %xmm2
2996 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
2997 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2998 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2999 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3000 ; SSE-NEXT:    movapd 144(%rdi), %xmm1
3001 ; SSE-NEXT:    movapd 144(%rsi), %xmm2
3002 ; SSE-NEXT:    movapd %xmm1, %xmm0
3003 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
3004 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3005 ; SSE-NEXT:    movapd 144(%r8), %xmm0
3006 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
3007 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3008 ; SSE-NEXT:    movapd 144(%rdx), %xmm1
3009 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
3010 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3011 ; SSE-NEXT:    movapd 144(%rcx), %xmm2
3012 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
3013 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3014 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
3015 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3016 ; SSE-NEXT:    movapd 160(%rdi), %xmm1
3017 ; SSE-NEXT:    movapd 160(%rsi), %xmm2
3018 ; SSE-NEXT:    movapd %xmm1, %xmm0
3019 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
3020 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3021 ; SSE-NEXT:    movapd 160(%r8), %xmm0
3022 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
3023 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3024 ; SSE-NEXT:    movapd 160(%rdx), %xmm1
3025 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
3026 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3027 ; SSE-NEXT:    movapd 160(%rcx), %xmm2
3028 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
3029 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3030 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
3031 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3032 ; SSE-NEXT:    movapd 176(%rdi), %xmm1
3033 ; SSE-NEXT:    movapd 176(%rsi), %xmm2
3034 ; SSE-NEXT:    movapd %xmm1, %xmm0
3035 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
3036 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3037 ; SSE-NEXT:    movapd 176(%r8), %xmm0
3038 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
3039 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3040 ; SSE-NEXT:    movapd 176(%rdx), %xmm1
3041 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
3042 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3043 ; SSE-NEXT:    movapd 176(%rcx), %xmm2
3044 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
3045 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3046 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
3047 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3048 ; SSE-NEXT:    movapd 192(%rdi), %xmm1
3049 ; SSE-NEXT:    movapd 192(%rsi), %xmm2
3050 ; SSE-NEXT:    movapd %xmm1, %xmm0
3051 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
3052 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3053 ; SSE-NEXT:    movapd 192(%r8), %xmm0
3054 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
3055 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3056 ; SSE-NEXT:    movapd 192(%rdx), %xmm1
3057 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
3058 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3059 ; SSE-NEXT:    movapd 192(%rcx), %xmm2
3060 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
3061 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3062 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
3063 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3064 ; SSE-NEXT:    movapd 208(%rdi), %xmm1
3065 ; SSE-NEXT:    movapd 208(%rsi), %xmm2
3066 ; SSE-NEXT:    movapd %xmm1, %xmm0
3067 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
3068 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3069 ; SSE-NEXT:    movapd 208(%r8), %xmm0
3070 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
3071 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3072 ; SSE-NEXT:    movapd 208(%rdx), %xmm1
3073 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
3074 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3075 ; SSE-NEXT:    movapd 208(%rcx), %xmm2
3076 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
3077 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3078 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
3079 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3080 ; SSE-NEXT:    movapd 224(%rdi), %xmm1
3081 ; SSE-NEXT:    movapd 224(%rsi), %xmm2
3082 ; SSE-NEXT:    movapd %xmm1, %xmm0
3083 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
3084 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3085 ; SSE-NEXT:    movapd 224(%r8), %xmm0
3086 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
3087 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3088 ; SSE-NEXT:    movapd 224(%rdx), %xmm1
3089 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
3090 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3091 ; SSE-NEXT:    movapd 224(%rcx), %xmm2
3092 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
3093 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3094 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
3095 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3096 ; SSE-NEXT:    movapd 240(%rdi), %xmm1
3097 ; SSE-NEXT:    movapd 240(%rsi), %xmm2
3098 ; SSE-NEXT:    movapd %xmm1, %xmm0
3099 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
3100 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3101 ; SSE-NEXT:    movapd 240(%r8), %xmm0
3102 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
3103 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3104 ; SSE-NEXT:    movapd 240(%rdx), %xmm1
3105 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
3106 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3107 ; SSE-NEXT:    movapd 240(%rcx), %xmm2
3108 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
3109 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3110 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
3111 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3112 ; SSE-NEXT:    movapd 256(%rdi), %xmm1
3113 ; SSE-NEXT:    movapd 256(%rsi), %xmm2
3114 ; SSE-NEXT:    movapd %xmm1, %xmm0
3115 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
3116 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3117 ; SSE-NEXT:    movapd 256(%r8), %xmm0
3118 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
3119 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3120 ; SSE-NEXT:    movapd 256(%rdx), %xmm1
3121 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
3122 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3123 ; SSE-NEXT:    movapd 256(%rcx), %xmm2
3124 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
3125 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3126 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
3127 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3128 ; SSE-NEXT:    movapd 272(%rdi), %xmm1
3129 ; SSE-NEXT:    movapd 272(%rsi), %xmm2
3130 ; SSE-NEXT:    movapd %xmm1, %xmm0
3131 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
3132 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3133 ; SSE-NEXT:    movapd 272(%r8), %xmm0
3134 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
3135 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3136 ; SSE-NEXT:    movapd 272(%rdx), %xmm1
3137 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
3138 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3139 ; SSE-NEXT:    movapd 272(%rcx), %xmm2
3140 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
3141 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3142 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
3143 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3144 ; SSE-NEXT:    movapd 288(%rdi), %xmm1
3145 ; SSE-NEXT:    movapd 288(%rsi), %xmm2
3146 ; SSE-NEXT:    movapd %xmm1, %xmm0
3147 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
3148 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3149 ; SSE-NEXT:    movapd 288(%r8), %xmm0
3150 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
3151 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3152 ; SSE-NEXT:    movapd 288(%rdx), %xmm1
3153 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
3154 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3155 ; SSE-NEXT:    movapd 288(%rcx), %xmm2
3156 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
3157 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3158 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
3159 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3160 ; SSE-NEXT:    movapd 304(%rdi), %xmm1
3161 ; SSE-NEXT:    movapd 304(%rsi), %xmm2
3162 ; SSE-NEXT:    movapd %xmm1, %xmm0
3163 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
3164 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3165 ; SSE-NEXT:    movapd 304(%r8), %xmm0
3166 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
3167 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3168 ; SSE-NEXT:    movapd 304(%rdx), %xmm1
3169 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
3170 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3171 ; SSE-NEXT:    movapd 304(%rcx), %xmm2
3172 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
3173 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3174 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
3175 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3176 ; SSE-NEXT:    movapd 320(%rdi), %xmm1
3177 ; SSE-NEXT:    movapd 320(%rsi), %xmm2
3178 ; SSE-NEXT:    movapd %xmm1, %xmm0
3179 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
3180 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3181 ; SSE-NEXT:    movapd 320(%r8), %xmm0
3182 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
3183 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3184 ; SSE-NEXT:    movapd 320(%rdx), %xmm1
3185 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
3186 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3187 ; SSE-NEXT:    movapd 320(%rcx), %xmm2
3188 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
3189 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3190 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
3191 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3192 ; SSE-NEXT:    movapd 336(%rdi), %xmm1
3193 ; SSE-NEXT:    movapd 336(%rsi), %xmm2
3194 ; SSE-NEXT:    movapd %xmm1, %xmm0
3195 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
3196 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3197 ; SSE-NEXT:    movapd 336(%r8), %xmm0
3198 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
3199 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3200 ; SSE-NEXT:    movapd 336(%rdx), %xmm1
3201 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
3202 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3203 ; SSE-NEXT:    movapd 336(%rcx), %xmm2
3204 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
3205 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3206 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
3207 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3208 ; SSE-NEXT:    movapd 352(%rdi), %xmm1
3209 ; SSE-NEXT:    movapd 352(%rsi), %xmm2
3210 ; SSE-NEXT:    movapd %xmm1, %xmm0
3211 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
3212 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3213 ; SSE-NEXT:    movapd 352(%r8), %xmm0
3214 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
3215 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3216 ; SSE-NEXT:    movapd 352(%rdx), %xmm1
3217 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
3218 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3219 ; SSE-NEXT:    movapd 352(%rcx), %xmm2
3220 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
3221 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3222 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
3223 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3224 ; SSE-NEXT:    movapd 368(%rdi), %xmm1
3225 ; SSE-NEXT:    movapd 368(%rsi), %xmm2
3226 ; SSE-NEXT:    movapd %xmm1, %xmm0
3227 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
3228 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3229 ; SSE-NEXT:    movapd 368(%r8), %xmm0
3230 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
3231 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3232 ; SSE-NEXT:    movapd 368(%rdx), %xmm1
3233 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
3234 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3235 ; SSE-NEXT:    movapd 368(%rcx), %xmm2
3236 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
3237 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3238 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
3239 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3240 ; SSE-NEXT:    movapd 384(%rdi), %xmm1
3241 ; SSE-NEXT:    movapd 384(%rsi), %xmm2
3242 ; SSE-NEXT:    movapd %xmm1, %xmm0
3243 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
3244 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3245 ; SSE-NEXT:    movapd 384(%r8), %xmm0
3246 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
3247 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3248 ; SSE-NEXT:    movapd 384(%rdx), %xmm1
3249 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
3250 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3251 ; SSE-NEXT:    movapd 384(%rcx), %xmm2
3252 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
3253 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3254 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
3255 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3256 ; SSE-NEXT:    movapd 400(%rdi), %xmm1
3257 ; SSE-NEXT:    movapd 400(%rsi), %xmm2
3258 ; SSE-NEXT:    movapd %xmm1, %xmm0
3259 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
3260 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3261 ; SSE-NEXT:    movapd 400(%r8), %xmm0
3262 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
3263 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3264 ; SSE-NEXT:    movapd 400(%rdx), %xmm1
3265 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
3266 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3267 ; SSE-NEXT:    movapd 400(%rcx), %xmm2
3268 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
3269 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3270 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
3271 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3272 ; SSE-NEXT:    movapd 416(%rdi), %xmm1
3273 ; SSE-NEXT:    movapd 416(%rsi), %xmm2
3274 ; SSE-NEXT:    movapd %xmm1, %xmm0
3275 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
3276 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3277 ; SSE-NEXT:    movapd 416(%r8), %xmm0
3278 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
3279 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3280 ; SSE-NEXT:    movapd 416(%rdx), %xmm1
3281 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
3282 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3283 ; SSE-NEXT:    movapd 416(%rcx), %xmm2
3284 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
3285 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3286 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
3287 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3288 ; SSE-NEXT:    movapd 432(%rdi), %xmm1
3289 ; SSE-NEXT:    movapd 432(%rsi), %xmm2
3290 ; SSE-NEXT:    movapd %xmm1, %xmm0
3291 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
3292 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3293 ; SSE-NEXT:    movapd 432(%r8), %xmm0
3294 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
3295 ; SSE-NEXT:    movapd %xmm1, (%rsp) # 16-byte Spill
3296 ; SSE-NEXT:    movapd 432(%rdx), %xmm1
3297 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
3298 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3299 ; SSE-NEXT:    movapd 432(%rcx), %xmm2
3300 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
3301 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3302 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
3303 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3304 ; SSE-NEXT:    movapd 448(%rdi), %xmm1
3305 ; SSE-NEXT:    movapd 448(%rsi), %xmm2
3306 ; SSE-NEXT:    movapd %xmm1, %xmm0
3307 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
3308 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3309 ; SSE-NEXT:    movapd 448(%r8), %xmm0
3310 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
3311 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3312 ; SSE-NEXT:    movapd 448(%rdx), %xmm1
3313 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
3314 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3315 ; SSE-NEXT:    movapd 448(%rcx), %xmm15
3316 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm15[0]
3317 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3318 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm15 = xmm15[1],xmm0[1]
3319 ; SSE-NEXT:    movapd 464(%rdi), %xmm14
3320 ; SSE-NEXT:    movapd 464(%rsi), %xmm13
3321 ; SSE-NEXT:    movapd %xmm14, %xmm0
3322 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm13[0]
3323 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3324 ; SSE-NEXT:    movapd 464(%r8), %xmm0
3325 ; SSE-NEXT:    movsd {{.*#+}} xmm14 = xmm0[0],xmm14[1]
3326 ; SSE-NEXT:    movapd 464(%rdx), %xmm10
3327 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm13 = xmm13[1],xmm10[1]
3328 ; SSE-NEXT:    movapd 464(%rcx), %xmm9
3329 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm10 = xmm10[0],xmm9[0]
3330 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm9 = xmm9[1],xmm0[1]
3331 ; SSE-NEXT:    movapd 480(%rdi), %xmm11
3332 ; SSE-NEXT:    movapd 480(%rsi), %xmm8
3333 ; SSE-NEXT:    movapd %xmm11, %xmm12
3334 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm12 = xmm12[0],xmm8[0]
3335 ; SSE-NEXT:    movapd 480(%r8), %xmm2
3336 ; SSE-NEXT:    movsd {{.*#+}} xmm11 = xmm2[0],xmm11[1]
3337 ; SSE-NEXT:    movapd 480(%rdx), %xmm6
3338 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm6[1]
3339 ; SSE-NEXT:    movapd 480(%rcx), %xmm3
3340 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm6 = xmm6[0],xmm3[0]
3341 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm3 = xmm3[1],xmm2[1]
3342 ; SSE-NEXT:    movapd 496(%rdi), %xmm4
3343 ; SSE-NEXT:    movapd 496(%rsi), %xmm2
3344 ; SSE-NEXT:    movapd %xmm4, %xmm5
3345 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm5 = xmm5[0],xmm2[0]
3346 ; SSE-NEXT:    movapd 496(%r8), %xmm7
3347 ; SSE-NEXT:    movsd {{.*#+}} xmm4 = xmm7[0],xmm4[1]
3348 ; SSE-NEXT:    movapd 496(%rdx), %xmm1
3349 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
3350 ; SSE-NEXT:    movapd 496(%rcx), %xmm0
3351 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm0[0]
3352 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm7[1]
3353 ; SSE-NEXT:    movapd %xmm0, 2544(%r9)
3354 ; SSE-NEXT:    movapd %xmm2, 2528(%r9)
3355 ; SSE-NEXT:    movapd %xmm4, 2512(%r9)
3356 ; SSE-NEXT:    movapd %xmm1, 2496(%r9)
3357 ; SSE-NEXT:    movapd %xmm5, 2480(%r9)
3358 ; SSE-NEXT:    movapd %xmm3, 2464(%r9)
3359 ; SSE-NEXT:    movapd %xmm8, 2448(%r9)
3360 ; SSE-NEXT:    movapd %xmm11, 2432(%r9)
3361 ; SSE-NEXT:    movapd %xmm6, 2416(%r9)
3362 ; SSE-NEXT:    movapd %xmm12, 2400(%r9)
3363 ; SSE-NEXT:    movapd %xmm9, 2384(%r9)
3364 ; SSE-NEXT:    movapd %xmm13, 2368(%r9)
3365 ; SSE-NEXT:    movapd %xmm14, 2352(%r9)
3366 ; SSE-NEXT:    movapd %xmm10, 2336(%r9)
3367 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3368 ; SSE-NEXT:    movaps %xmm0, 2320(%r9)
3369 ; SSE-NEXT:    movapd %xmm15, 2304(%r9)
3370 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3371 ; SSE-NEXT:    movaps %xmm0, 2288(%r9)
3372 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3373 ; SSE-NEXT:    movaps %xmm0, 2272(%r9)
3374 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3375 ; SSE-NEXT:    movaps %xmm0, 2256(%r9)
3376 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3377 ; SSE-NEXT:    movaps %xmm0, 2240(%r9)
3378 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3379 ; SSE-NEXT:    movaps %xmm0, 2224(%r9)
3380 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3381 ; SSE-NEXT:    movaps %xmm0, 2208(%r9)
3382 ; SSE-NEXT:    movaps (%rsp), %xmm0 # 16-byte Reload
3383 ; SSE-NEXT:    movaps %xmm0, 2192(%r9)
3384 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3385 ; SSE-NEXT:    movaps %xmm0, 2176(%r9)
3386 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3387 ; SSE-NEXT:    movaps %xmm0, 2160(%r9)
3388 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3389 ; SSE-NEXT:    movaps %xmm0, 2144(%r9)
3390 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3391 ; SSE-NEXT:    movaps %xmm0, 2128(%r9)
3392 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3393 ; SSE-NEXT:    movaps %xmm0, 2112(%r9)
3394 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3395 ; SSE-NEXT:    movaps %xmm0, 2096(%r9)
3396 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3397 ; SSE-NEXT:    movaps %xmm0, 2080(%r9)
3398 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3399 ; SSE-NEXT:    movaps %xmm0, 2064(%r9)
3400 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3401 ; SSE-NEXT:    movaps %xmm0, 2048(%r9)
3402 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3403 ; SSE-NEXT:    movaps %xmm0, 2032(%r9)
3404 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3405 ; SSE-NEXT:    movaps %xmm0, 2016(%r9)
3406 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3407 ; SSE-NEXT:    movaps %xmm0, 2000(%r9)
3408 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3409 ; SSE-NEXT:    movaps %xmm0, 1984(%r9)
3410 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3411 ; SSE-NEXT:    movaps %xmm0, 1968(%r9)
3412 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3413 ; SSE-NEXT:    movaps %xmm0, 1952(%r9)
3414 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3415 ; SSE-NEXT:    movaps %xmm0, 1936(%r9)
3416 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3417 ; SSE-NEXT:    movaps %xmm0, 1920(%r9)
3418 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3419 ; SSE-NEXT:    movaps %xmm0, 1904(%r9)
3420 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3421 ; SSE-NEXT:    movaps %xmm0, 1888(%r9)
3422 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3423 ; SSE-NEXT:    movaps %xmm0, 1872(%r9)
3424 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3425 ; SSE-NEXT:    movaps %xmm0, 1856(%r9)
3426 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3427 ; SSE-NEXT:    movaps %xmm0, 1840(%r9)
3428 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3429 ; SSE-NEXT:    movaps %xmm0, 1824(%r9)
3430 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3431 ; SSE-NEXT:    movaps %xmm0, 1808(%r9)
3432 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3433 ; SSE-NEXT:    movaps %xmm0, 1792(%r9)
3434 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3435 ; SSE-NEXT:    movaps %xmm0, 1776(%r9)
3436 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3437 ; SSE-NEXT:    movaps %xmm0, 1760(%r9)
3438 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3439 ; SSE-NEXT:    movaps %xmm0, 1744(%r9)
3440 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3441 ; SSE-NEXT:    movaps %xmm0, 1728(%r9)
3442 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3443 ; SSE-NEXT:    movaps %xmm0, 1712(%r9)
3444 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3445 ; SSE-NEXT:    movaps %xmm0, 1696(%r9)
3446 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3447 ; SSE-NEXT:    movaps %xmm0, 1680(%r9)
3448 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3449 ; SSE-NEXT:    movaps %xmm0, 1664(%r9)
3450 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3451 ; SSE-NEXT:    movaps %xmm0, 1648(%r9)
3452 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3453 ; SSE-NEXT:    movaps %xmm0, 1632(%r9)
3454 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3455 ; SSE-NEXT:    movaps %xmm0, 1616(%r9)
3456 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3457 ; SSE-NEXT:    movaps %xmm0, 1600(%r9)
3458 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3459 ; SSE-NEXT:    movaps %xmm0, 1584(%r9)
3460 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3461 ; SSE-NEXT:    movaps %xmm0, 1568(%r9)
3462 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3463 ; SSE-NEXT:    movaps %xmm0, 1552(%r9)
3464 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3465 ; SSE-NEXT:    movaps %xmm0, 1536(%r9)
3466 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3467 ; SSE-NEXT:    movaps %xmm0, 1520(%r9)
3468 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3469 ; SSE-NEXT:    movaps %xmm0, 1504(%r9)
3470 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3471 ; SSE-NEXT:    movaps %xmm0, 1488(%r9)
3472 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3473 ; SSE-NEXT:    movaps %xmm0, 1472(%r9)
3474 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3475 ; SSE-NEXT:    movaps %xmm0, 1456(%r9)
3476 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3477 ; SSE-NEXT:    movaps %xmm0, 1440(%r9)
3478 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3479 ; SSE-NEXT:    movaps %xmm0, 1424(%r9)
3480 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3481 ; SSE-NEXT:    movaps %xmm0, 1408(%r9)
3482 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3483 ; SSE-NEXT:    movaps %xmm0, 1392(%r9)
3484 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3485 ; SSE-NEXT:    movaps %xmm0, 1376(%r9)
3486 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3487 ; SSE-NEXT:    movaps %xmm0, 1360(%r9)
3488 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3489 ; SSE-NEXT:    movaps %xmm0, 1344(%r9)
3490 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3491 ; SSE-NEXT:    movaps %xmm0, 1328(%r9)
3492 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3493 ; SSE-NEXT:    movaps %xmm0, 1312(%r9)
3494 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3495 ; SSE-NEXT:    movaps %xmm0, 1296(%r9)
3496 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3497 ; SSE-NEXT:    movaps %xmm0, 1280(%r9)
3498 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3499 ; SSE-NEXT:    movaps %xmm0, 1264(%r9)
3500 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3501 ; SSE-NEXT:    movaps %xmm0, 1248(%r9)
3502 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3503 ; SSE-NEXT:    movaps %xmm0, 1232(%r9)
3504 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3505 ; SSE-NEXT:    movaps %xmm0, 1216(%r9)
3506 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3507 ; SSE-NEXT:    movaps %xmm0, 1200(%r9)
3508 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3509 ; SSE-NEXT:    movaps %xmm0, 1184(%r9)
3510 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3511 ; SSE-NEXT:    movaps %xmm0, 1168(%r9)
3512 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3513 ; SSE-NEXT:    movaps %xmm0, 1152(%r9)
3514 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3515 ; SSE-NEXT:    movaps %xmm0, 1136(%r9)
3516 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3517 ; SSE-NEXT:    movaps %xmm0, 1120(%r9)
3518 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3519 ; SSE-NEXT:    movaps %xmm0, 1104(%r9)
3520 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3521 ; SSE-NEXT:    movaps %xmm0, 1088(%r9)
3522 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3523 ; SSE-NEXT:    movaps %xmm0, 1072(%r9)
3524 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3525 ; SSE-NEXT:    movaps %xmm0, 1056(%r9)
3526 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3527 ; SSE-NEXT:    movaps %xmm0, 1040(%r9)
3528 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3529 ; SSE-NEXT:    movaps %xmm0, 1024(%r9)
3530 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3531 ; SSE-NEXT:    movaps %xmm0, 1008(%r9)
3532 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3533 ; SSE-NEXT:    movaps %xmm0, 992(%r9)
3534 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3535 ; SSE-NEXT:    movaps %xmm0, 976(%r9)
3536 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3537 ; SSE-NEXT:    movaps %xmm0, 960(%r9)
3538 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3539 ; SSE-NEXT:    movaps %xmm0, 944(%r9)
3540 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3541 ; SSE-NEXT:    movaps %xmm0, 928(%r9)
3542 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3543 ; SSE-NEXT:    movaps %xmm0, 912(%r9)
3544 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3545 ; SSE-NEXT:    movaps %xmm0, 896(%r9)
3546 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3547 ; SSE-NEXT:    movaps %xmm0, 880(%r9)
3548 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3549 ; SSE-NEXT:    movaps %xmm0, 864(%r9)
3550 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3551 ; SSE-NEXT:    movaps %xmm0, 848(%r9)
3552 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3553 ; SSE-NEXT:    movaps %xmm0, 832(%r9)
3554 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3555 ; SSE-NEXT:    movaps %xmm0, 816(%r9)
3556 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3557 ; SSE-NEXT:    movaps %xmm0, 800(%r9)
3558 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3559 ; SSE-NEXT:    movaps %xmm0, 784(%r9)
3560 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3561 ; SSE-NEXT:    movaps %xmm0, 768(%r9)
3562 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3563 ; SSE-NEXT:    movaps %xmm0, 752(%r9)
3564 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3565 ; SSE-NEXT:    movaps %xmm0, 736(%r9)
3566 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3567 ; SSE-NEXT:    movaps %xmm0, 720(%r9)
3568 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3569 ; SSE-NEXT:    movaps %xmm0, 704(%r9)
3570 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3571 ; SSE-NEXT:    movaps %xmm0, 688(%r9)
3572 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3573 ; SSE-NEXT:    movaps %xmm0, 672(%r9)
3574 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3575 ; SSE-NEXT:    movaps %xmm0, 656(%r9)
3576 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3577 ; SSE-NEXT:    movaps %xmm0, 640(%r9)
3578 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3579 ; SSE-NEXT:    movaps %xmm0, 624(%r9)
3580 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3581 ; SSE-NEXT:    movaps %xmm0, 608(%r9)
3582 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3583 ; SSE-NEXT:    movaps %xmm0, 592(%r9)
3584 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3585 ; SSE-NEXT:    movaps %xmm0, 576(%r9)
3586 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3587 ; SSE-NEXT:    movaps %xmm0, 560(%r9)
3588 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3589 ; SSE-NEXT:    movaps %xmm0, 544(%r9)
3590 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3591 ; SSE-NEXT:    movaps %xmm0, 528(%r9)
3592 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3593 ; SSE-NEXT:    movaps %xmm0, 512(%r9)
3594 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3595 ; SSE-NEXT:    movaps %xmm0, 496(%r9)
3596 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3597 ; SSE-NEXT:    movaps %xmm0, 480(%r9)
3598 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3599 ; SSE-NEXT:    movaps %xmm0, 464(%r9)
3600 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3601 ; SSE-NEXT:    movaps %xmm0, 448(%r9)
3602 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3603 ; SSE-NEXT:    movaps %xmm0, 432(%r9)
3604 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3605 ; SSE-NEXT:    movaps %xmm0, 416(%r9)
3606 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3607 ; SSE-NEXT:    movaps %xmm0, 400(%r9)
3608 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3609 ; SSE-NEXT:    movaps %xmm0, 384(%r9)
3610 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3611 ; SSE-NEXT:    movaps %xmm0, 368(%r9)
3612 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3613 ; SSE-NEXT:    movaps %xmm0, 352(%r9)
3614 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3615 ; SSE-NEXT:    movaps %xmm0, 336(%r9)
3616 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3617 ; SSE-NEXT:    movaps %xmm0, 320(%r9)
3618 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3619 ; SSE-NEXT:    movaps %xmm0, 304(%r9)
3620 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3621 ; SSE-NEXT:    movaps %xmm0, 288(%r9)
3622 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3623 ; SSE-NEXT:    movaps %xmm0, 272(%r9)
3624 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3625 ; SSE-NEXT:    movaps %xmm0, 256(%r9)
3626 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3627 ; SSE-NEXT:    movaps %xmm0, 240(%r9)
3628 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3629 ; SSE-NEXT:    movaps %xmm0, 224(%r9)
3630 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3631 ; SSE-NEXT:    movaps %xmm0, 208(%r9)
3632 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3633 ; SSE-NEXT:    movaps %xmm0, 192(%r9)
3634 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3635 ; SSE-NEXT:    movaps %xmm0, 176(%r9)
3636 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3637 ; SSE-NEXT:    movaps %xmm0, 160(%r9)
3638 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3639 ; SSE-NEXT:    movaps %xmm0, 144(%r9)
3640 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3641 ; SSE-NEXT:    movaps %xmm0, 128(%r9)
3642 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3643 ; SSE-NEXT:    movaps %xmm0, 112(%r9)
3644 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3645 ; SSE-NEXT:    movaps %xmm0, 96(%r9)
3646 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3647 ; SSE-NEXT:    movaps %xmm0, 80(%r9)
3648 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3649 ; SSE-NEXT:    movaps %xmm0, 64(%r9)
3650 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3651 ; SSE-NEXT:    movaps %xmm0, 48(%r9)
3652 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3653 ; SSE-NEXT:    movaps %xmm0, 32(%r9)
3654 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3655 ; SSE-NEXT:    movaps %xmm0, 16(%r9)
3656 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3657 ; SSE-NEXT:    movaps %xmm0, (%r9)
3658 ; SSE-NEXT:    addq $2200, %rsp # imm = 0x898
3659 ; SSE-NEXT:    retq
3661 ; AVX1-ONLY-LABEL: store_i64_stride5_vf64:
3662 ; AVX1-ONLY:       # %bb.0:
3663 ; AVX1-ONLY-NEXT:    subq $2264, %rsp # imm = 0x8D8
3664 ; AVX1-ONLY-NEXT:    vmovaps 192(%rdi), %ymm14
3665 ; AVX1-ONLY-NEXT:    vmovaps 160(%rdi), %ymm4
3666 ; AVX1-ONLY-NEXT:    vmovaps 96(%rdi), %ymm5
3667 ; AVX1-ONLY-NEXT:    vmovaps 64(%rcx), %ymm1
3668 ; AVX1-ONLY-NEXT:    vmovaps 128(%rcx), %ymm0
3669 ; AVX1-ONLY-NEXT:    vmovaps (%rcx), %ymm2
3670 ; AVX1-ONLY-NEXT:    vpermilps {{.*#+}} xmm3 = mem[2,3,2,3]
3671 ; AVX1-ONLY-NEXT:    vmovaps 16(%rdx), %xmm6
3672 ; AVX1-ONLY-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3673 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm6[1],ymm2[3],ymm6[3]
3674 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1],ymm2[2,3,4,5,6,7]
3675 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3676 ; AVX1-ONLY-NEXT:    vpermilps {{.*#+}} xmm2 = mem[2,3,2,3]
3677 ; AVX1-ONLY-NEXT:    vmovaps 80(%rdx), %xmm3
3678 ; AVX1-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3679 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm3[1],ymm1[3],ymm3[3]
3680 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
3681 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3682 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm5[0],mem[0],ymm5[2],mem[2]
3683 ; AVX1-ONLY-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3684 ; AVX1-ONLY-NEXT:    vmovaps 96(%rcx), %xmm2
3685 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, (%rsp) # 16-byte Spill
3686 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[2,3,2,3]
3687 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
3688 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3689 ; AVX1-ONLY-NEXT:    vpermilps {{.*#+}} xmm1 = mem[2,3,2,3]
3690 ; AVX1-ONLY-NEXT:    vmovaps 144(%rdx), %xmm2
3691 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3692 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm2[1],ymm0[3],ymm2[3]
3693 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
3694 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3695 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm4[0],mem[0],ymm4[2],mem[2]
3696 ; AVX1-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3697 ; AVX1-ONLY-NEXT:    vmovaps 160(%rcx), %xmm1
3698 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3699 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[2,3,2,3]
3700 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3701 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3702 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm14[0],mem[0],ymm14[2],mem[2]
3703 ; AVX1-ONLY-NEXT:    vmovaps %ymm14, %ymm2
3704 ; AVX1-ONLY-NEXT:    vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3705 ; AVX1-ONLY-NEXT:    vmovaps 192(%rcx), %xmm1
3706 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3707 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[2,3,2,3]
3708 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3709 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3710 ; AVX1-ONLY-NEXT:    vmovaps 192(%rcx), %ymm0
3711 ; AVX1-ONLY-NEXT:    vmovaps 208(%rdx), %xmm1
3712 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3713 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
3714 ; AVX1-ONLY-NEXT:    vpermilps {{.*#+}} xmm1 = mem[2,3,2,3]
3715 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
3716 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3717 ; AVX1-ONLY-NEXT:    vmovaps 256(%rcx), %ymm0
3718 ; AVX1-ONLY-NEXT:    vmovaps 272(%rdx), %xmm1
3719 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3720 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
3721 ; AVX1-ONLY-NEXT:    vpermilps {{.*#+}} xmm1 = mem[2,3,2,3]
3722 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
3723 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3724 ; AVX1-ONLY-NEXT:    vmovapd 288(%rdi), %ymm14
3725 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm14[0],mem[0],ymm14[2],mem[2]
3726 ; AVX1-ONLY-NEXT:    vmovapd 288(%rcx), %xmm1
3727 ; AVX1-ONLY-NEXT:    vmovapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3728 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[2,3,2,3]
3729 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
3730 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3731 ; AVX1-ONLY-NEXT:    vmovaps 320(%rdi), %ymm1
3732 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],mem[0],ymm1[2],mem[2]
3733 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, %ymm10
3734 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3735 ; AVX1-ONLY-NEXT:    vmovaps 320(%rcx), %xmm1
3736 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3737 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[2,3,2,3]
3738 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3739 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3740 ; AVX1-ONLY-NEXT:    vmovaps 320(%rcx), %ymm0
3741 ; AVX1-ONLY-NEXT:    vmovaps 336(%rdx), %xmm1
3742 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3743 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
3744 ; AVX1-ONLY-NEXT:    vpermilps {{.*#+}} xmm1 = mem[2,3,2,3]
3745 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
3746 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3747 ; AVX1-ONLY-NEXT:    vmovaps 384(%rdi), %ymm1
3748 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],mem[0],ymm1[2],mem[2]
3749 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, %ymm9
3750 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3751 ; AVX1-ONLY-NEXT:    vmovaps 384(%rcx), %xmm1
3752 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3753 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[2,3,2,3]
3754 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3755 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3756 ; AVX1-ONLY-NEXT:    vmovaps 384(%rcx), %ymm0
3757 ; AVX1-ONLY-NEXT:    vmovaps 400(%rdx), %xmm1
3758 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3759 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
3760 ; AVX1-ONLY-NEXT:    vpermilps {{.*#+}} xmm1 = mem[2,3,2,3]
3761 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
3762 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3763 ; AVX1-ONLY-NEXT:    vmovaps 448(%rcx), %ymm0
3764 ; AVX1-ONLY-NEXT:    vmovaps 464(%rdx), %xmm1
3765 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3766 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
3767 ; AVX1-ONLY-NEXT:    vpermilps {{.*#+}} xmm1 = mem[2,3,2,3]
3768 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
3769 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3770 ; AVX1-ONLY-NEXT:    vmovapd 480(%rdi), %ymm1
3771 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],mem[0],ymm1[2],mem[2]
3772 ; AVX1-ONLY-NEXT:    vmovapd %ymm1, %ymm13
3773 ; AVX1-ONLY-NEXT:    vmovapd 480(%rcx), %xmm1
3774 ; AVX1-ONLY-NEXT:    vmovapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3775 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[2,3,2,3]
3776 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
3777 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3778 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %ymm8
3779 ; AVX1-ONLY-NEXT:    vbroadcastsd 8(%rsi), %ymm0
3780 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm8[0,1,2,3],ymm0[4,5,6,7]
3781 ; AVX1-ONLY-NEXT:    vmovaps (%rdx), %xmm1
3782 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3783 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
3784 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
3785 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3786 ; AVX1-ONLY-NEXT:    vpermilps {{.*#+}} xmm0 = mem[2,3,2,3]
3787 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm8[0],mem[0],ymm8[2],mem[2]
3788 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
3789 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3790 ; AVX1-ONLY-NEXT:    vmovapd 32(%rdi), %ymm6
3791 ; AVX1-ONLY-NEXT:    vbroadcastsd 40(%rsi), %ymm0
3792 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm6[0,1],ymm0[2,3]
3793 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdx), %xmm1
3794 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3795 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
3796 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3]
3797 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3798 ; AVX1-ONLY-NEXT:    vpermilps {{.*#+}} xmm0 = mem[2,3,2,3]
3799 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm6[0],mem[0],ymm6[2],mem[2]
3800 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3]
3801 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3802 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdi), %ymm7
3803 ; AVX1-ONLY-NEXT:    vbroadcastsd 72(%rsi), %ymm0
3804 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm7[0,1,2,3],ymm0[4,5,6,7]
3805 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdx), %xmm1
3806 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3807 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
3808 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
3809 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3810 ; AVX1-ONLY-NEXT:    vpermilps {{.*#+}} xmm0 = mem[2,3,2,3]
3811 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm7[0],mem[0],ymm7[2],mem[2]
3812 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
3813 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3814 ; AVX1-ONLY-NEXT:    vbroadcastsd 104(%rsi), %ymm0
3815 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm5[0,1,2,3],ymm0[4,5,6,7]
3816 ; AVX1-ONLY-NEXT:    vmovaps 96(%rdx), %xmm1
3817 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3818 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
3819 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
3820 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3821 ; AVX1-ONLY-NEXT:    vmovaps 128(%rdi), %ymm5
3822 ; AVX1-ONLY-NEXT:    vbroadcastsd 136(%rsi), %ymm0
3823 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm5[0,1,2,3],ymm0[4,5,6,7]
3824 ; AVX1-ONLY-NEXT:    vmovaps 128(%rdx), %xmm1
3825 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3826 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
3827 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
3828 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3829 ; AVX1-ONLY-NEXT:    vpermilps {{.*#+}} xmm0 = mem[2,3,2,3]
3830 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm5[0],mem[0],ymm5[2],mem[2]
3831 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
3832 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3833 ; AVX1-ONLY-NEXT:    vbroadcastsd 168(%rsi), %ymm0
3834 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3],ymm0[4,5,6,7]
3835 ; AVX1-ONLY-NEXT:    vmovaps 160(%rdx), %xmm1
3836 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3837 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
3838 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
3839 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3840 ; AVX1-ONLY-NEXT:    vbroadcastsd 200(%rsi), %ymm0
3841 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
3842 ; AVX1-ONLY-NEXT:    vmovaps 192(%rdx), %xmm1
3843 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3844 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
3845 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
3846 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3847 ; AVX1-ONLY-NEXT:    vmovapd 224(%rdi), %ymm3
3848 ; AVX1-ONLY-NEXT:    vbroadcastsd 232(%rsi), %ymm0
3849 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm3[0,1],ymm0[2,3]
3850 ; AVX1-ONLY-NEXT:    vmovaps 224(%rdx), %xmm1
3851 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3852 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
3853 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3]
3854 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3855 ; AVX1-ONLY-NEXT:    vpermilps {{.*#+}} xmm0 = mem[2,3,2,3]
3856 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm3[0],mem[0],ymm3[2],mem[2]
3857 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3]
3858 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3859 ; AVX1-ONLY-NEXT:    vmovaps 256(%rdi), %ymm4
3860 ; AVX1-ONLY-NEXT:    vbroadcastsd 264(%rsi), %ymm0
3861 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3],ymm0[4,5,6,7]
3862 ; AVX1-ONLY-NEXT:    vmovaps 256(%rdx), %xmm1
3863 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3864 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
3865 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
3866 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3867 ; AVX1-ONLY-NEXT:    vpermilps {{.*#+}} xmm0 = mem[2,3,2,3]
3868 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm4[0],mem[0],ymm4[2],mem[2]
3869 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
3870 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3871 ; AVX1-ONLY-NEXT:    vbroadcastsd 296(%rsi), %ymm0
3872 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm14[0,1],ymm0[2,3]
3873 ; AVX1-ONLY-NEXT:    vmovaps 288(%rdx), %xmm1
3874 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3875 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
3876 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3]
3877 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3878 ; AVX1-ONLY-NEXT:    vbroadcastsd 328(%rsi), %ymm0
3879 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm0[4,5,6,7]
3880 ; AVX1-ONLY-NEXT:    vmovaps 320(%rdx), %xmm1
3881 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3882 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
3883 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
3884 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3885 ; AVX1-ONLY-NEXT:    vmovapd 352(%rdi), %ymm2
3886 ; AVX1-ONLY-NEXT:    vbroadcastsd 360(%rsi), %ymm0
3887 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,3]
3888 ; AVX1-ONLY-NEXT:    vmovaps 352(%rdx), %xmm1
3889 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3890 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
3891 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3]
3892 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3893 ; AVX1-ONLY-NEXT:    vpermilps {{.*#+}} xmm0 = mem[2,3,2,3]
3894 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
3895 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3]
3896 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3897 ; AVX1-ONLY-NEXT:    vbroadcastsd 392(%rsi), %ymm0
3898 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm9[0,1,2,3],ymm0[4,5,6,7]
3899 ; AVX1-ONLY-NEXT:    vmovaps 384(%rdx), %xmm15
3900 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm1
3901 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
3902 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3903 ; AVX1-ONLY-NEXT:    vmovapd 416(%rdi), %ymm0
3904 ; AVX1-ONLY-NEXT:    vbroadcastsd 424(%rsi), %ymm1
3905 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm0[0,1],ymm1[2,3]
3906 ; AVX1-ONLY-NEXT:    vmovaps 416(%rdx), %xmm9
3907 ; AVX1-ONLY-NEXT:    vmovaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3908 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm9, %ymm0, %ymm9
3909 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm1[0,1,2],ymm9[3]
3910 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3911 ; AVX1-ONLY-NEXT:    vpermilps {{.*#+}} xmm1 = mem[2,3,2,3]
3912 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm9 = ymm0[0],mem[0],ymm0[2],mem[2]
3913 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm1[0,1],ymm9[2,3]
3914 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3915 ; AVX1-ONLY-NEXT:    vmovaps 448(%rdi), %ymm1
3916 ; AVX1-ONLY-NEXT:    vbroadcastsd 456(%rsi), %ymm9
3917 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm9 = ymm1[0,1,2,3],ymm9[4,5,6,7]
3918 ; AVX1-ONLY-NEXT:    vmovaps 448(%rdx), %xmm10
3919 ; AVX1-ONLY-NEXT:    vmovaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3920 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
3921 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5],ymm10[6,7]
3922 ; AVX1-ONLY-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3923 ; AVX1-ONLY-NEXT:    vpermilps {{.*#+}} xmm9 = mem[2,3,2,3]
3924 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm10 = ymm1[0],mem[0],ymm1[2],mem[2]
3925 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm11 = ymm9[0,1,2,3],ymm10[4,5,6,7]
3926 ; AVX1-ONLY-NEXT:    vbroadcastsd 488(%rsi), %ymm10
3927 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm12 = ymm13[0,1],ymm10[2,3]
3928 ; AVX1-ONLY-NEXT:    vmovapd %ymm13, %ymm9
3929 ; AVX1-ONLY-NEXT:    vmovaps 480(%rdx), %xmm10
3930 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm13
3931 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm12 = ymm12[0,1,2],ymm13[3]
3932 ; AVX1-ONLY-NEXT:    vmovupd %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3933 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
3934 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm12 = xmm12[0],mem[0]
3935 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm8 = ymm12[0,1,2,3],ymm8[4,5,6,7]
3936 ; AVX1-ONLY-NEXT:    vmovaps (%r8), %ymm12
3937 ; AVX1-ONLY-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm13 # 32-byte Folded Reload
3938 ; AVX1-ONLY-NEXT:    # ymm13 = mem[0,1,2,3,4,5],ymm12[6,7]
3939 ; AVX1-ONLY-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3940 ; AVX1-ONLY-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm13 # 32-byte Folded Reload
3941 ; AVX1-ONLY-NEXT:    # ymm13 = ymm12[0,1],mem[2,3,4,5,6,7]
3942 ; AVX1-ONLY-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3943 ; AVX1-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm13 # 32-byte Folded Reload
3944 ; AVX1-ONLY-NEXT:    # ymm13 = mem[0,1],ymm12[2,3],mem[4,5,6,7]
3945 ; AVX1-ONLY-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3946 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm12[4,5],ymm8[6,7]
3947 ; AVX1-ONLY-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3948 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm6 = mem[2,3],ymm6[2,3]
3949 ; AVX1-ONLY-NEXT:    vmovapd 48(%rdx), %xmm8
3950 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm6 = ymm8[0],ymm6[0],ymm8[2],ymm6[3]
3951 ; AVX1-ONLY-NEXT:    vmovapd 48(%rsi), %xmm12
3952 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm8 = xmm12[1],xmm8[1]
3953 ; AVX1-ONLY-NEXT:    vbroadcastsd 56(%rcx), %ymm12
3954 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm8 = ymm8[0,1],ymm12[2,3]
3955 ; AVX1-ONLY-NEXT:    vmovapd 32(%r8), %ymm12
3956 ; AVX1-ONLY-NEXT:    vblendpd $14, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm13 # 32-byte Folded Reload
3957 ; AVX1-ONLY-NEXT:    # ymm13 = ymm12[0],mem[1,2,3]
3958 ; AVX1-ONLY-NEXT:    vmovupd %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3959 ; AVX1-ONLY-NEXT:    vblendpd $13, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm13 # 32-byte Folded Reload
3960 ; AVX1-ONLY-NEXT:    # ymm13 = mem[0],ymm12[1],mem[2,3]
3961 ; AVX1-ONLY-NEXT:    vmovupd %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3962 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm6 = ymm6[0,1],ymm12[2],ymm6[3]
3963 ; AVX1-ONLY-NEXT:    vmovupd %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3964 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm6 = ymm8[0,1,2],ymm12[3]
3965 ; AVX1-ONLY-NEXT:    vmovupd %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3966 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
3967 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm6 = xmm6[0],mem[0]
3968 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
3969 ; AVX1-ONLY-NEXT:    vmovaps 64(%r8), %ymm7
3970 ; AVX1-ONLY-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm8 # 32-byte Folded Reload
3971 ; AVX1-ONLY-NEXT:    # ymm8 = mem[0,1,2,3,4,5],ymm7[6,7]
3972 ; AVX1-ONLY-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3973 ; AVX1-ONLY-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm8 # 32-byte Folded Reload
3974 ; AVX1-ONLY-NEXT:    # ymm8 = ymm7[0,1],mem[2,3,4,5,6,7]
3975 ; AVX1-ONLY-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3976 ; AVX1-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm8 # 32-byte Folded Reload
3977 ; AVX1-ONLY-NEXT:    # ymm8 = mem[0,1],ymm7[2,3],mem[4,5,6,7]
3978 ; AVX1-ONLY-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3979 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5],ymm6[6,7]
3980 ; AVX1-ONLY-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3981 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
3982 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm6 = mem[2,3],ymm6[2,3]
3983 ; AVX1-ONLY-NEXT:    vmovapd 112(%rdx), %xmm7
3984 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm6 = ymm7[0],ymm6[0],ymm7[2],ymm6[3]
3985 ; AVX1-ONLY-NEXT:    vmovapd 112(%rsi), %xmm8
3986 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm7 = xmm8[1],xmm7[1]
3987 ; AVX1-ONLY-NEXT:    vbroadcastsd 120(%rcx), %ymm8
3988 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm7 = ymm7[0,1],ymm8[2,3]
3989 ; AVX1-ONLY-NEXT:    vmovapd 96(%r8), %ymm8
3990 ; AVX1-ONLY-NEXT:    vblendpd $13, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm12 # 32-byte Folded Reload
3991 ; AVX1-ONLY-NEXT:    # ymm12 = mem[0],ymm8[1],mem[2,3]
3992 ; AVX1-ONLY-NEXT:    vmovupd %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3993 ; AVX1-ONLY-NEXT:    vblendpd $14, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm12 # 32-byte Folded Reload
3994 ; AVX1-ONLY-NEXT:    # ymm12 = ymm8[0],mem[1,2,3]
3995 ; AVX1-ONLY-NEXT:    vmovupd %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3996 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm6 = ymm6[0,1],ymm8[2],ymm6[3]
3997 ; AVX1-ONLY-NEXT:    vmovupd %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3998 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm6 = ymm7[0,1,2],ymm8[3]
3999 ; AVX1-ONLY-NEXT:    vmovupd %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4000 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
4001 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm6 = xmm6[0],mem[0]
4002 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2,3],ymm5[4,5,6,7]
4003 ; AVX1-ONLY-NEXT:    vmovaps 128(%r8), %ymm6
4004 ; AVX1-ONLY-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm7 # 32-byte Folded Reload
4005 ; AVX1-ONLY-NEXT:    # ymm7 = mem[0,1,2,3,4,5],ymm6[6,7]
4006 ; AVX1-ONLY-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4007 ; AVX1-ONLY-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm7 # 32-byte Folded Reload
4008 ; AVX1-ONLY-NEXT:    # ymm7 = ymm6[0,1],mem[2,3,4,5,6,7]
4009 ; AVX1-ONLY-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4010 ; AVX1-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm7 # 32-byte Folded Reload
4011 ; AVX1-ONLY-NEXT:    # ymm7 = mem[0,1],ymm6[2,3],mem[4,5,6,7]
4012 ; AVX1-ONLY-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4013 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm6[4,5],ymm5[6,7]
4014 ; AVX1-ONLY-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4015 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
4016 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm5 = mem[2,3],ymm5[2,3]
4017 ; AVX1-ONLY-NEXT:    vmovapd 176(%rdx), %xmm6
4018 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm5 = ymm6[0],ymm5[0],ymm6[2],ymm5[3]
4019 ; AVX1-ONLY-NEXT:    vmovapd 176(%rsi), %xmm7
4020 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm6 = xmm7[1],xmm6[1]
4021 ; AVX1-ONLY-NEXT:    vbroadcastsd 184(%rcx), %ymm7
4022 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm6 = ymm6[0,1],ymm7[2,3]
4023 ; AVX1-ONLY-NEXT:    vmovapd 160(%r8), %ymm7
4024 ; AVX1-ONLY-NEXT:    vblendpd $13, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm8 # 32-byte Folded Reload
4025 ; AVX1-ONLY-NEXT:    # ymm8 = mem[0],ymm7[1],mem[2,3]
4026 ; AVX1-ONLY-NEXT:    vmovupd %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4027 ; AVX1-ONLY-NEXT:    vblendpd $14, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm8 # 32-byte Folded Reload
4028 ; AVX1-ONLY-NEXT:    # ymm8 = ymm7[0],mem[1,2,3]
4029 ; AVX1-ONLY-NEXT:    vmovupd %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4030 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm5 = ymm5[0,1],ymm7[2],ymm5[3]
4031 ; AVX1-ONLY-NEXT:    vmovupd %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4032 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm5 = ymm6[0,1,2],ymm7[3]
4033 ; AVX1-ONLY-NEXT:    vmovupd %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4034 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
4035 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm5 = xmm5[0],mem[0]
4036 ; AVX1-ONLY-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm5 # 32-byte Folded Reload
4037 ; AVX1-ONLY-NEXT:    # ymm5 = ymm5[0,1,2,3],mem[4,5,6,7]
4038 ; AVX1-ONLY-NEXT:    vmovaps 192(%r8), %ymm6
4039 ; AVX1-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm7 # 32-byte Folded Reload
4040 ; AVX1-ONLY-NEXT:    # ymm7 = mem[0,1],ymm6[2,3],mem[4,5,6,7]
4041 ; AVX1-ONLY-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4042 ; AVX1-ONLY-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm7 # 32-byte Folded Reload
4043 ; AVX1-ONLY-NEXT:    # ymm7 = mem[0,1,2,3,4,5],ymm6[6,7]
4044 ; AVX1-ONLY-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4045 ; AVX1-ONLY-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm7 # 32-byte Folded Reload
4046 ; AVX1-ONLY-NEXT:    # ymm7 = ymm6[0,1],mem[2,3,4,5,6,7]
4047 ; AVX1-ONLY-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4048 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm6[4,5],ymm5[6,7]
4049 ; AVX1-ONLY-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4050 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm3 = mem[2,3],ymm3[2,3]
4051 ; AVX1-ONLY-NEXT:    vmovapd 240(%rdx), %xmm5
4052 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm3 = ymm5[0],ymm3[0],ymm5[2],ymm3[3]
4053 ; AVX1-ONLY-NEXT:    vmovapd 240(%rsi), %xmm6
4054 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm5 = xmm6[1],xmm5[1]
4055 ; AVX1-ONLY-NEXT:    vbroadcastsd 248(%rcx), %ymm6
4056 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm5 = ymm5[0,1],ymm6[2,3]
4057 ; AVX1-ONLY-NEXT:    vmovapd 224(%r8), %ymm6
4058 ; AVX1-ONLY-NEXT:    vblendpd $14, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm7 # 32-byte Folded Reload
4059 ; AVX1-ONLY-NEXT:    # ymm7 = ymm6[0],mem[1,2,3]
4060 ; AVX1-ONLY-NEXT:    vmovupd %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4061 ; AVX1-ONLY-NEXT:    vblendpd $13, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm7 # 32-byte Folded Reload
4062 ; AVX1-ONLY-NEXT:    # ymm7 = mem[0],ymm6[1],mem[2,3]
4063 ; AVX1-ONLY-NEXT:    vmovupd %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4064 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm3 = ymm3[0,1],ymm6[2],ymm3[3]
4065 ; AVX1-ONLY-NEXT:    vmovupd %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4066 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm3 = ymm5[0,1,2],ymm6[3]
4067 ; AVX1-ONLY-NEXT:    vmovupd %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4068 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
4069 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm3 = xmm3[0],mem[0]
4070 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm4[4,5,6,7]
4071 ; AVX1-ONLY-NEXT:    vmovaps 256(%r8), %ymm4
4072 ; AVX1-ONLY-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm5 # 32-byte Folded Reload
4073 ; AVX1-ONLY-NEXT:    # ymm5 = mem[0,1,2,3,4,5],ymm4[6,7]
4074 ; AVX1-ONLY-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4075 ; AVX1-ONLY-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm5 # 32-byte Folded Reload
4076 ; AVX1-ONLY-NEXT:    # ymm5 = ymm4[0,1],mem[2,3,4,5,6,7]
4077 ; AVX1-ONLY-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4078 ; AVX1-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm5 # 32-byte Folded Reload
4079 ; AVX1-ONLY-NEXT:    # ymm5 = mem[0,1],ymm4[2,3],mem[4,5,6,7]
4080 ; AVX1-ONLY-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4081 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm4[4,5],ymm3[6,7]
4082 ; AVX1-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4083 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm3 = mem[2,3],ymm14[2,3]
4084 ; AVX1-ONLY-NEXT:    vmovapd 304(%rdx), %xmm4
4085 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[3]
4086 ; AVX1-ONLY-NEXT:    vmovapd 304(%rsi), %xmm5
4087 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm4 = xmm5[1],xmm4[1]
4088 ; AVX1-ONLY-NEXT:    vbroadcastsd 312(%rcx), %ymm5
4089 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm4 = ymm4[0,1],ymm5[2,3]
4090 ; AVX1-ONLY-NEXT:    vmovapd 288(%r8), %ymm5
4091 ; AVX1-ONLY-NEXT:    vblendpd $13, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm6 # 32-byte Folded Reload
4092 ; AVX1-ONLY-NEXT:    # ymm6 = mem[0],ymm5[1],mem[2,3]
4093 ; AVX1-ONLY-NEXT:    vmovupd %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4094 ; AVX1-ONLY-NEXT:    vblendpd $14, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm6 # 32-byte Folded Reload
4095 ; AVX1-ONLY-NEXT:    # ymm6 = ymm5[0],mem[1,2,3]
4096 ; AVX1-ONLY-NEXT:    vmovupd %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4097 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm3 = ymm3[0,1],ymm5[2],ymm3[3]
4098 ; AVX1-ONLY-NEXT:    vmovupd %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4099 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm3 = ymm4[0,1,2],ymm5[3]
4100 ; AVX1-ONLY-NEXT:    vmovupd %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4101 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
4102 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm3 = xmm3[0],mem[0]
4103 ; AVX1-ONLY-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
4104 ; AVX1-ONLY-NEXT:    # ymm3 = ymm3[0,1,2,3],mem[4,5,6,7]
4105 ; AVX1-ONLY-NEXT:    vmovaps 320(%r8), %ymm4
4106 ; AVX1-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm5 # 32-byte Folded Reload
4107 ; AVX1-ONLY-NEXT:    # ymm5 = mem[0,1],ymm4[2,3],mem[4,5,6,7]
4108 ; AVX1-ONLY-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4109 ; AVX1-ONLY-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm5 # 32-byte Folded Reload
4110 ; AVX1-ONLY-NEXT:    # ymm5 = mem[0,1,2,3,4,5],ymm4[6,7]
4111 ; AVX1-ONLY-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4112 ; AVX1-ONLY-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm5 # 32-byte Folded Reload
4113 ; AVX1-ONLY-NEXT:    # ymm5 = ymm4[0,1],mem[2,3,4,5,6,7]
4114 ; AVX1-ONLY-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4115 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm4[4,5],ymm3[6,7]
4116 ; AVX1-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4117 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm2 = mem[2,3],ymm2[2,3]
4118 ; AVX1-ONLY-NEXT:    vmovapd 368(%rdx), %xmm3
4119 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm2 = ymm3[0],ymm2[0],ymm3[2],ymm2[3]
4120 ; AVX1-ONLY-NEXT:    vmovapd 368(%rsi), %xmm4
4121 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm3 = xmm4[1],xmm3[1]
4122 ; AVX1-ONLY-NEXT:    vbroadcastsd 376(%rcx), %ymm4
4123 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm3 = ymm3[0,1],ymm4[2,3]
4124 ; AVX1-ONLY-NEXT:    vmovapd 352(%r8), %ymm4
4125 ; AVX1-ONLY-NEXT:    vblendpd $14, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm5 # 32-byte Folded Reload
4126 ; AVX1-ONLY-NEXT:    # ymm5 = ymm4[0],mem[1,2,3]
4127 ; AVX1-ONLY-NEXT:    vmovupd %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4128 ; AVX1-ONLY-NEXT:    vblendpd $13, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm5 # 32-byte Folded Reload
4129 ; AVX1-ONLY-NEXT:    # ymm5 = mem[0],ymm4[1],mem[2,3]
4130 ; AVX1-ONLY-NEXT:    vmovupd %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4131 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm2[0,1],ymm4[2],ymm2[3]
4132 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4133 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm3[0,1,2],ymm4[3]
4134 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4135 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
4136 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm2 = xmm2[0],mem[0]
4137 ; AVX1-ONLY-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
4138 ; AVX1-ONLY-NEXT:    # ymm2 = ymm2[0,1,2,3],mem[4,5,6,7]
4139 ; AVX1-ONLY-NEXT:    vmovaps 384(%r8), %ymm3
4140 ; AVX1-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm4 # 32-byte Folded Reload
4141 ; AVX1-ONLY-NEXT:    # ymm4 = mem[0,1],ymm3[2,3],mem[4,5,6,7]
4142 ; AVX1-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4143 ; AVX1-ONLY-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm4 # 32-byte Folded Reload
4144 ; AVX1-ONLY-NEXT:    # ymm4 = mem[0,1,2,3,4,5],ymm3[6,7]
4145 ; AVX1-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4146 ; AVX1-ONLY-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm4 # 32-byte Folded Reload
4147 ; AVX1-ONLY-NEXT:    # ymm4 = ymm3[0,1],mem[2,3,4,5,6,7]
4148 ; AVX1-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4149 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5],ymm2[6,7]
4150 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4151 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = mem[2,3],ymm0[2,3]
4152 ; AVX1-ONLY-NEXT:    vmovapd 432(%rdx), %xmm2
4153 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm2[0],ymm0[0],ymm2[2],ymm0[3]
4154 ; AVX1-ONLY-NEXT:    vmovapd 432(%rsi), %xmm3
4155 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm2 = xmm3[1],xmm2[1]
4156 ; AVX1-ONLY-NEXT:    vbroadcastsd 440(%rcx), %ymm3
4157 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm2[0,1],ymm3[2,3]
4158 ; AVX1-ONLY-NEXT:    vmovapd 416(%r8), %ymm3
4159 ; AVX1-ONLY-NEXT:    vblendpd $14, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm4 # 32-byte Folded Reload
4160 ; AVX1-ONLY-NEXT:    # ymm4 = ymm3[0],mem[1,2,3]
4161 ; AVX1-ONLY-NEXT:    vmovupd %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4162 ; AVX1-ONLY-NEXT:    vblendpd $13, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm4 # 32-byte Folded Reload
4163 ; AVX1-ONLY-NEXT:    # ymm4 = mem[0],ymm3[1],mem[2,3]
4164 ; AVX1-ONLY-NEXT:    vmovupd %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4165 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm3[2],ymm0[3]
4166 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4167 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm2[0,1,2],ymm3[3]
4168 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4169 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4170 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
4171 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4172 ; AVX1-ONLY-NEXT:    vmovaps 448(%r8), %ymm1
4173 ; AVX1-ONLY-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
4174 ; AVX1-ONLY-NEXT:    # ymm2 = mem[0,1,2,3,4,5],ymm1[6,7]
4175 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4176 ; AVX1-ONLY-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
4177 ; AVX1-ONLY-NEXT:    # ymm2 = ymm1[0,1],mem[2,3,4,5,6,7]
4178 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4179 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm11[0,1],ymm1[2,3],ymm11[4,5,6,7]
4180 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4181 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
4182 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4183 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = mem[2,3],ymm9[2,3]
4184 ; AVX1-ONLY-NEXT:    vmovapd 496(%rdx), %xmm1
4185 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[3]
4186 ; AVX1-ONLY-NEXT:    vmovapd 496(%rsi), %xmm2
4187 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm2[1],xmm1[1]
4188 ; AVX1-ONLY-NEXT:    vbroadcastsd 504(%rcx), %ymm2
4189 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3]
4190 ; AVX1-ONLY-NEXT:    vmovapd 480(%r8), %ymm2
4191 ; AVX1-ONLY-NEXT:    vblendpd $13, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm3 # 32-byte Folded Reload
4192 ; AVX1-ONLY-NEXT:    # ymm3 = mem[0],ymm2[1],mem[2,3]
4193 ; AVX1-ONLY-NEXT:    vmovupd %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4194 ; AVX1-ONLY-NEXT:    vblendpd $14, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm3 # 32-byte Folded Reload
4195 ; AVX1-ONLY-NEXT:    # ymm3 = ymm2[0],mem[1,2,3]
4196 ; AVX1-ONLY-NEXT:    vmovupd %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4197 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm2[2],ymm0[3]
4198 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4199 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1,2],ymm2[3]
4200 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4201 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4202 ; AVX1-ONLY-NEXT:    vunpcklpd (%rsp), %xmm0, %xmm0 # 16-byte Folded Reload
4203 ; AVX1-ONLY-NEXT:    # xmm0 = xmm0[0],mem[0]
4204 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, (%rsp) # 16-byte Spill
4205 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4206 ; AVX1-ONLY-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
4207 ; AVX1-ONLY-NEXT:    # xmm0 = xmm0[0],mem[0]
4208 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4209 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4210 ; AVX1-ONLY-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
4211 ; AVX1-ONLY-NEXT:    # xmm0 = xmm0[0],mem[0]
4212 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4213 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4214 ; AVX1-ONLY-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
4215 ; AVX1-ONLY-NEXT:    # xmm0 = xmm0[0],mem[0]
4216 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4217 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4218 ; AVX1-ONLY-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
4219 ; AVX1-ONLY-NEXT:    # xmm0 = xmm0[0],mem[0]
4220 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4221 ; AVX1-ONLY-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm10, %xmm0 # 16-byte Folded Reload
4222 ; AVX1-ONLY-NEXT:    # xmm0 = xmm10[0],mem[0]
4223 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4224 ; AVX1-ONLY-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm7 # 16-byte Folded Reload
4225 ; AVX1-ONLY-NEXT:    # xmm7 = xmm15[0],mem[0]
4226 ; AVX1-ONLY-NEXT:    vmovaps 256(%rdi), %xmm0
4227 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
4228 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4229 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4230 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
4231 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4232 ; AVX1-ONLY-NEXT:    vmovaps 128(%rdi), %xmm0
4233 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
4234 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4235 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4236 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
4237 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4238 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdi), %xmm0
4239 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
4240 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4241 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4242 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
4243 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4244 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %xmm0
4245 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
4246 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4247 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4248 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
4249 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4250 ; AVX1-ONLY-NEXT:    vmovaps 96(%rdi), %xmm0
4251 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
4252 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4253 ; AVX1-ONLY-NEXT:    vmovaps 160(%rdi), %xmm0
4254 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
4255 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4256 ; AVX1-ONLY-NEXT:    vmovaps 224(%rdi), %xmm0
4257 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm6 = xmm0[0],mem[0]
4258 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4259 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm5 = xmm0[0],mem[0]
4260 ; AVX1-ONLY-NEXT:    vmovaps 192(%rdi), %xmm0
4261 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm4 = xmm0[0],mem[0]
4262 ; AVX1-ONLY-NEXT:    vmovaps 288(%rdi), %xmm0
4263 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm3 = xmm0[0],mem[0]
4264 ; AVX1-ONLY-NEXT:    vmovaps 352(%rdi), %xmm15
4265 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm15 = xmm15[0],mem[0]
4266 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4267 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm2 = xmm0[0],mem[0]
4268 ; AVX1-ONLY-NEXT:    vmovaps 320(%rdi), %xmm13
4269 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm13 = xmm13[0],mem[0]
4270 ; AVX1-ONLY-NEXT:    vmovaps 416(%rdi), %xmm14
4271 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm14 = xmm14[0],mem[0]
4272 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4273 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
4274 ; AVX1-ONLY-NEXT:    vmovaps 480(%rdi), %xmm12
4275 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm12 = xmm12[0],mem[0]
4276 ; AVX1-ONLY-NEXT:    vmovaps 448(%rdi), %xmm11
4277 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm11 = xmm11[0],mem[0]
4278 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4279 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
4280 ; AVX1-ONLY-NEXT:    vmovaps 384(%rdi), %xmm10
4281 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm10 = xmm10[0],mem[0]
4282 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %xmm9
4283 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm9 = xmm9[0],mem[0]
4284 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
4285 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} xmm8 = xmm8[0],mem[0]
4286 ; AVX1-ONLY-NEXT:    vmovaps %xmm8, 16(%r9)
4287 ; AVX1-ONLY-NEXT:    vmovaps %xmm9, (%r9)
4288 ; AVX1-ONLY-NEXT:    vmovaps %xmm7, 1936(%r9)
4289 ; AVX1-ONLY-NEXT:    vmovaps %xmm10, 1920(%r9)
4290 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 2256(%r9)
4291 ; AVX1-ONLY-NEXT:    vmovaps %xmm11, 2240(%r9)
4292 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4293 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 2416(%r9)
4294 ; AVX1-ONLY-NEXT:    vmovaps %xmm12, 2400(%r9)
4295 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, 2096(%r9)
4296 ; AVX1-ONLY-NEXT:    vmovaps %xmm14, 2080(%r9)
4297 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4298 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 1616(%r9)
4299 ; AVX1-ONLY-NEXT:    vmovaps %xmm13, 1600(%r9)
4300 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, 1776(%r9)
4301 ; AVX1-ONLY-NEXT:    vmovaps %xmm15, 1760(%r9)
4302 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4303 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 1456(%r9)
4304 ; AVX1-ONLY-NEXT:    vmovaps %xmm3, 1440(%r9)
4305 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4306 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 976(%r9)
4307 ; AVX1-ONLY-NEXT:    vmovaps %xmm4, 960(%r9)
4308 ; AVX1-ONLY-NEXT:    vmovaps %xmm5, 1136(%r9)
4309 ; AVX1-ONLY-NEXT:    vmovaps %xmm6, 1120(%r9)
4310 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4311 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 816(%r9)
4312 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4313 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 800(%r9)
4314 ; AVX1-ONLY-NEXT:    vmovaps (%rsp), %xmm0 # 16-byte Reload
4315 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 496(%r9)
4316 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4317 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 480(%r9)
4318 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4319 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 176(%r9)
4320 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4321 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 160(%r9)
4322 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4323 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 336(%r9)
4324 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4325 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 320(%r9)
4326 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4327 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 656(%r9)
4328 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4329 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 640(%r9)
4330 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4331 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 1296(%r9)
4332 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4333 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, 1280(%r9)
4334 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4335 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 2496(%r9)
4336 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4337 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 2432(%r9)
4338 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4339 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 2304(%r9)
4340 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4341 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 2272(%r9)
4342 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4343 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 2176(%r9)
4344 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4345 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 2144(%r9)
4346 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4347 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 2112(%r9)
4348 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4349 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 1952(%r9)
4350 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4351 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 1856(%r9)
4352 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4353 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 1824(%r9)
4354 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4355 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 1792(%r9)
4356 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4357 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 1632(%r9)
4358 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4359 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 1536(%r9)
4360 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4361 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 1472(%r9)
4362 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4363 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 1344(%r9)
4364 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4365 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 1312(%r9)
4366 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4367 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 1216(%r9)
4368 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4369 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 1184(%r9)
4370 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4371 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 1152(%r9)
4372 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4373 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 992(%r9)
4374 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4375 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 896(%r9)
4376 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4377 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 832(%r9)
4378 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4379 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 704(%r9)
4380 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4381 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 672(%r9)
4382 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4383 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 576(%r9)
4384 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4385 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 512(%r9)
4386 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4387 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 384(%r9)
4388 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4389 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 352(%r9)
4390 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4391 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 256(%r9)
4392 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4393 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 224(%r9)
4394 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4395 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 192(%r9)
4396 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4397 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 64(%r9)
4398 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4399 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 32(%r9)
4400 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4401 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 2528(%r9)
4402 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4403 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 2464(%r9)
4404 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4405 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 2368(%r9)
4406 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4407 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 2336(%r9)
4408 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4409 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 2208(%r9)
4410 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4411 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 2048(%r9)
4412 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4413 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 2016(%r9)
4414 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4415 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 1984(%r9)
4416 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4417 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 1888(%r9)
4418 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4419 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 1728(%r9)
4420 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4421 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 1696(%r9)
4422 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4423 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 1664(%r9)
4424 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4425 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 1568(%r9)
4426 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4427 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 1504(%r9)
4428 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4429 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 1408(%r9)
4430 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4431 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 1376(%r9)
4432 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4433 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 1248(%r9)
4434 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4435 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 1088(%r9)
4436 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4437 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 1056(%r9)
4438 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4439 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 1024(%r9)
4440 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4441 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 928(%r9)
4442 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4443 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 864(%r9)
4444 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4445 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 768(%r9)
4446 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4447 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 736(%r9)
4448 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4449 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 608(%r9)
4450 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4451 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 544(%r9)
4452 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4453 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 448(%r9)
4454 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4455 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 416(%r9)
4456 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4457 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 288(%r9)
4458 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4459 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 128(%r9)
4460 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4461 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 96(%r9)
4462 ; AVX1-ONLY-NEXT:    addq $2264, %rsp # imm = 0x8D8
4463 ; AVX1-ONLY-NEXT:    vzeroupper
4464 ; AVX1-ONLY-NEXT:    retq
4466 ; AVX2-ONLY-LABEL: store_i64_stride5_vf64:
4467 ; AVX2-ONLY:       # %bb.0:
4468 ; AVX2-ONLY-NEXT:    subq $2696, %rsp # imm = 0xA88
4469 ; AVX2-ONLY-NEXT:    vmovaps 96(%rdi), %ymm10
4470 ; AVX2-ONLY-NEXT:    vmovaps 64(%rdi), %ymm11
4471 ; AVX2-ONLY-NEXT:    vmovaps 32(%rdi), %ymm12
4472 ; AVX2-ONLY-NEXT:    vmovaps (%rdi), %ymm13
4473 ; AVX2-ONLY-NEXT:    vmovaps (%rsi), %xmm2
4474 ; AVX2-ONLY-NEXT:    vmovaps 32(%rsi), %xmm4
4475 ; AVX2-ONLY-NEXT:    vmovaps 64(%rsi), %xmm1
4476 ; AVX2-ONLY-NEXT:    vmovaps 96(%rsi), %xmm0
4477 ; AVX2-ONLY-NEXT:    vinsertf128 $1, (%rcx), %ymm2, %ymm5
4478 ; AVX2-ONLY-NEXT:    vmovaps (%rdi), %xmm6
4479 ; AVX2-ONLY-NEXT:    vmovaps 32(%rdi), %xmm7
4480 ; AVX2-ONLY-NEXT:    vmovaps 64(%rdi), %xmm2
4481 ; AVX2-ONLY-NEXT:    vmovaps (%rdx), %xmm8
4482 ; AVX2-ONLY-NEXT:    vmovaps 32(%rdx), %xmm9
4483 ; AVX2-ONLY-NEXT:    vmovaps 64(%rdx), %xmm3
4484 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm8, %ymm6, %ymm6
4485 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm5 = ymm6[0],ymm5[0],ymm6[2],ymm5[2]
4486 ; AVX2-ONLY-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4487 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm5
4488 ; AVX2-ONLY-NEXT:    vbroadcastsd 8(%rsi), %ymm6
4489 ; AVX2-ONLY-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4490 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm6 = ymm13[0,1,2,3],ymm6[4,5,6,7]
4491 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2,3,4,5],ymm5[6,7]
4492 ; AVX2-ONLY-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4493 ; AVX2-ONLY-NEXT:    vmovddup {{.*#+}} xmm5 = mem[0,0]
4494 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm6 = ymm13[0],mem[0],ymm13[2],mem[2]
4495 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm6[4,5,6,7]
4496 ; AVX2-ONLY-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4497 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 32(%rcx), %ymm4, %ymm4
4498 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm9, %ymm7, %ymm5
4499 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm5[0],ymm4[0],ymm5[2],ymm4[2]
4500 ; AVX2-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4501 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm9, %ymm0, %ymm4
4502 ; AVX2-ONLY-NEXT:    vbroadcastsd 40(%rsi), %ymm5
4503 ; AVX2-ONLY-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4504 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm12[0,1,2,3],ymm5[4,5,6,7]
4505 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1,2,3,4,5],ymm4[6,7]
4506 ; AVX2-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4507 ; AVX2-ONLY-NEXT:    vmovddup {{.*#+}} xmm4 = mem[0,0]
4508 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm5 = ymm12[0],mem[0],ymm12[2],mem[2]
4509 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm5[4,5,6,7]
4510 ; AVX2-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4511 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 64(%rcx), %ymm1, %ymm1
4512 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm3, %ymm2, %ymm2
4513 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],ymm1[0],ymm2[2],ymm1[2]
4514 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4515 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm1
4516 ; AVX2-ONLY-NEXT:    vbroadcastsd 72(%rsi), %ymm2
4517 ; AVX2-ONLY-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4518 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm11[0,1,2,3],ymm2[4,5,6,7]
4519 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
4520 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4521 ; AVX2-ONLY-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
4522 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm11[0],mem[0],ymm11[2],mem[2]
4523 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]
4524 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4525 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 96(%rcx), %ymm0, %ymm0
4526 ; AVX2-ONLY-NEXT:    vmovaps 96(%rdi), %xmm1
4527 ; AVX2-ONLY-NEXT:    vmovaps 96(%rdx), %xmm2
4528 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
4529 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
4530 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4531 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
4532 ; AVX2-ONLY-NEXT:    vbroadcastsd 104(%rsi), %ymm1
4533 ; AVX2-ONLY-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4534 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm10[0,1,2,3],ymm1[4,5,6,7]
4535 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
4536 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4537 ; AVX2-ONLY-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
4538 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm10[0],mem[0],ymm10[2],mem[2]
4539 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4540 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4541 ; AVX2-ONLY-NEXT:    vmovaps 128(%rsi), %xmm0
4542 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 128(%rcx), %ymm0, %ymm0
4543 ; AVX2-ONLY-NEXT:    vmovaps 128(%rdi), %xmm1
4544 ; AVX2-ONLY-NEXT:    vmovaps 128(%rdx), %xmm2
4545 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
4546 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
4547 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4548 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
4549 ; AVX2-ONLY-NEXT:    vmovaps 128(%rdi), %ymm2
4550 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4551 ; AVX2-ONLY-NEXT:    vbroadcastsd 136(%rsi), %ymm1
4552 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
4553 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
4554 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4555 ; AVX2-ONLY-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
4556 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
4557 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4558 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4559 ; AVX2-ONLY-NEXT:    vmovaps 160(%rsi), %xmm0
4560 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 160(%rcx), %ymm0, %ymm0
4561 ; AVX2-ONLY-NEXT:    vmovaps 160(%rdi), %xmm1
4562 ; AVX2-ONLY-NEXT:    vmovaps 160(%rdx), %xmm2
4563 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
4564 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
4565 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4566 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
4567 ; AVX2-ONLY-NEXT:    vmovaps 160(%rdi), %ymm2
4568 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4569 ; AVX2-ONLY-NEXT:    vbroadcastsd 168(%rsi), %ymm1
4570 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
4571 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
4572 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4573 ; AVX2-ONLY-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
4574 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
4575 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4576 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4577 ; AVX2-ONLY-NEXT:    vmovaps 192(%rsi), %xmm0
4578 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 192(%rcx), %ymm0, %ymm0
4579 ; AVX2-ONLY-NEXT:    vmovaps 192(%rdi), %xmm1
4580 ; AVX2-ONLY-NEXT:    vmovaps 192(%rdx), %xmm2
4581 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
4582 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
4583 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4584 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
4585 ; AVX2-ONLY-NEXT:    vmovaps 192(%rdi), %ymm2
4586 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4587 ; AVX2-ONLY-NEXT:    vbroadcastsd 200(%rsi), %ymm1
4588 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
4589 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
4590 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4591 ; AVX2-ONLY-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
4592 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
4593 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4594 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4595 ; AVX2-ONLY-NEXT:    vmovaps 224(%rsi), %xmm0
4596 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 224(%rcx), %ymm0, %ymm0
4597 ; AVX2-ONLY-NEXT:    vmovaps 224(%rdi), %xmm1
4598 ; AVX2-ONLY-NEXT:    vmovaps 224(%rdx), %xmm2
4599 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
4600 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
4601 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4602 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
4603 ; AVX2-ONLY-NEXT:    vmovaps 224(%rdi), %ymm2
4604 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4605 ; AVX2-ONLY-NEXT:    vbroadcastsd 232(%rsi), %ymm1
4606 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
4607 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
4608 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4609 ; AVX2-ONLY-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
4610 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
4611 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4612 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4613 ; AVX2-ONLY-NEXT:    vmovaps 256(%rsi), %xmm0
4614 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 256(%rcx), %ymm0, %ymm0
4615 ; AVX2-ONLY-NEXT:    vmovaps 256(%rdi), %xmm1
4616 ; AVX2-ONLY-NEXT:    vmovaps 256(%rdx), %xmm2
4617 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
4618 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
4619 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4620 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
4621 ; AVX2-ONLY-NEXT:    vmovaps 256(%rdi), %ymm2
4622 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4623 ; AVX2-ONLY-NEXT:    vbroadcastsd 264(%rsi), %ymm1
4624 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
4625 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
4626 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4627 ; AVX2-ONLY-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
4628 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
4629 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4630 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4631 ; AVX2-ONLY-NEXT:    vmovaps 288(%rsi), %xmm0
4632 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 288(%rcx), %ymm0, %ymm0
4633 ; AVX2-ONLY-NEXT:    vmovaps 288(%rdi), %xmm1
4634 ; AVX2-ONLY-NEXT:    vmovaps 288(%rdx), %xmm2
4635 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
4636 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
4637 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4638 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
4639 ; AVX2-ONLY-NEXT:    vmovaps 288(%rdi), %ymm2
4640 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4641 ; AVX2-ONLY-NEXT:    vbroadcastsd 296(%rsi), %ymm1
4642 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
4643 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
4644 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4645 ; AVX2-ONLY-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
4646 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
4647 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4648 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4649 ; AVX2-ONLY-NEXT:    vmovaps 320(%rsi), %xmm0
4650 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 320(%rcx), %ymm0, %ymm0
4651 ; AVX2-ONLY-NEXT:    vmovaps 320(%rdi), %xmm1
4652 ; AVX2-ONLY-NEXT:    vmovaps 320(%rdx), %xmm2
4653 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
4654 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
4655 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4656 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
4657 ; AVX2-ONLY-NEXT:    vmovaps 320(%rdi), %ymm2
4658 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4659 ; AVX2-ONLY-NEXT:    vbroadcastsd 328(%rsi), %ymm1
4660 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
4661 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
4662 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4663 ; AVX2-ONLY-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
4664 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
4665 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4666 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4667 ; AVX2-ONLY-NEXT:    vmovaps 352(%rsi), %xmm0
4668 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 352(%rcx), %ymm0, %ymm0
4669 ; AVX2-ONLY-NEXT:    vmovaps 352(%rdi), %xmm1
4670 ; AVX2-ONLY-NEXT:    vmovaps 352(%rdx), %xmm2
4671 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
4672 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
4673 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4674 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
4675 ; AVX2-ONLY-NEXT:    vmovaps 352(%rdi), %ymm2
4676 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4677 ; AVX2-ONLY-NEXT:    vbroadcastsd 360(%rsi), %ymm1
4678 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
4679 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
4680 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4681 ; AVX2-ONLY-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
4682 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
4683 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4684 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4685 ; AVX2-ONLY-NEXT:    vmovaps 384(%rsi), %xmm0
4686 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 384(%rcx), %ymm0, %ymm0
4687 ; AVX2-ONLY-NEXT:    vmovaps 384(%rdi), %xmm1
4688 ; AVX2-ONLY-NEXT:    vmovaps 384(%rdx), %xmm2
4689 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
4690 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
4691 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4692 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
4693 ; AVX2-ONLY-NEXT:    vmovaps 384(%rdi), %ymm2
4694 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4695 ; AVX2-ONLY-NEXT:    vbroadcastsd 392(%rsi), %ymm1
4696 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
4697 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
4698 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4699 ; AVX2-ONLY-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
4700 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
4701 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4702 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4703 ; AVX2-ONLY-NEXT:    vmovaps 416(%rsi), %xmm0
4704 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 416(%rcx), %ymm0, %ymm0
4705 ; AVX2-ONLY-NEXT:    vmovaps 416(%rdi), %xmm1
4706 ; AVX2-ONLY-NEXT:    vmovaps 416(%rdx), %xmm2
4707 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
4708 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
4709 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4710 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
4711 ; AVX2-ONLY-NEXT:    vmovaps 416(%rdi), %ymm2
4712 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4713 ; AVX2-ONLY-NEXT:    vbroadcastsd 424(%rsi), %ymm1
4714 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
4715 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
4716 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4717 ; AVX2-ONLY-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
4718 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
4719 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4720 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4721 ; AVX2-ONLY-NEXT:    vmovaps 448(%rsi), %xmm0
4722 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 448(%rcx), %ymm0, %ymm0
4723 ; AVX2-ONLY-NEXT:    vmovaps 448(%rdi), %xmm1
4724 ; AVX2-ONLY-NEXT:    vmovaps 448(%rdx), %xmm2
4725 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
4726 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
4727 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4728 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
4729 ; AVX2-ONLY-NEXT:    vmovaps 448(%rdi), %ymm2
4730 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4731 ; AVX2-ONLY-NEXT:    vbroadcastsd 456(%rsi), %ymm1
4732 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
4733 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
4734 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4735 ; AVX2-ONLY-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
4736 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
4737 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4738 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4739 ; AVX2-ONLY-NEXT:    vmovaps 480(%rsi), %xmm0
4740 ; AVX2-ONLY-NEXT:    vinsertf128 $1, 480(%rcx), %ymm0, %ymm0
4741 ; AVX2-ONLY-NEXT:    vmovaps 480(%rdi), %xmm1
4742 ; AVX2-ONLY-NEXT:    vmovaps 480(%rdx), %xmm2
4743 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
4744 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
4745 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4746 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
4747 ; AVX2-ONLY-NEXT:    vmovaps 480(%rdi), %ymm2
4748 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4749 ; AVX2-ONLY-NEXT:    vbroadcastsd 488(%rsi), %ymm1
4750 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
4751 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
4752 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4753 ; AVX2-ONLY-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
4754 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
4755 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4756 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4757 ; AVX2-ONLY-NEXT:    vbroadcastsd 56(%rsi), %ymm0
4758 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
4759 ; AVX2-ONLY-NEXT:    vbroadcastsd 56(%rcx), %ymm1
4760 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4761 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4762 ; AVX2-ONLY-NEXT:    vbroadcastsd 120(%rsi), %ymm0
4763 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
4764 ; AVX2-ONLY-NEXT:    vbroadcastsd 120(%rcx), %ymm1
4765 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4766 ; AVX2-ONLY-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
4767 ; AVX2-ONLY-NEXT:    vbroadcastsd 184(%rsi), %ymm0
4768 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
4769 ; AVX2-ONLY-NEXT:    vbroadcastsd 184(%rcx), %ymm1
4770 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4771 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4772 ; AVX2-ONLY-NEXT:    vbroadcastsd 248(%rsi), %ymm0
4773 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
4774 ; AVX2-ONLY-NEXT:    vbroadcastsd 248(%rcx), %ymm1
4775 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4776 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4777 ; AVX2-ONLY-NEXT:    vbroadcastsd 312(%rsi), %ymm0
4778 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
4779 ; AVX2-ONLY-NEXT:    vbroadcastsd 312(%rcx), %ymm1
4780 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4781 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4782 ; AVX2-ONLY-NEXT:    vbroadcastsd 376(%rsi), %ymm0
4783 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
4784 ; AVX2-ONLY-NEXT:    vbroadcastsd 376(%rcx), %ymm1
4785 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4786 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4787 ; AVX2-ONLY-NEXT:    vbroadcastsd 440(%rsi), %ymm0
4788 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
4789 ; AVX2-ONLY-NEXT:    vbroadcastsd 440(%rcx), %ymm1
4790 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4791 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4792 ; AVX2-ONLY-NEXT:    vbroadcastsd 504(%rsi), %ymm0
4793 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
4794 ; AVX2-ONLY-NEXT:    vbroadcastsd 504(%rcx), %ymm1
4795 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4796 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4797 ; AVX2-ONLY-NEXT:    vmovaps (%rdx), %ymm9
4798 ; AVX2-ONLY-NEXT:    vmovaps (%rcx), %ymm1
4799 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm9[1],ymm1[1],ymm9[3],ymm1[3]
4800 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,2,3,3]
4801 ; AVX2-ONLY-NEXT:    vbroadcastsd 24(%rsi), %ymm3
4802 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm3[0,1],ymm2[2,3,4,5,6,7]
4803 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4804 ; AVX2-ONLY-NEXT:    vmovaps 64(%rdx), %ymm13
4805 ; AVX2-ONLY-NEXT:    vmovaps 64(%rcx), %ymm2
4806 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm3 = ymm13[1],ymm2[1],ymm13[3],ymm2[3]
4807 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,2,3,3]
4808 ; AVX2-ONLY-NEXT:    vbroadcastsd 88(%rsi), %ymm4
4809 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1],ymm3[2,3,4,5,6,7]
4810 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4811 ; AVX2-ONLY-NEXT:    vmovaps 128(%rdx), %ymm3
4812 ; AVX2-ONLY-NEXT:    vmovaps 128(%rcx), %ymm15
4813 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm4 = ymm3[1],ymm15[1],ymm3[3],ymm15[3]
4814 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm4 = ymm4[0,2,3,3]
4815 ; AVX2-ONLY-NEXT:    vbroadcastsd 152(%rsi), %ymm5
4816 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm5[0,1],ymm4[2,3,4,5,6,7]
4817 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4818 ; AVX2-ONLY-NEXT:    vmovaps 192(%rdx), %ymm5
4819 ; AVX2-ONLY-NEXT:    vmovaps 192(%rcx), %ymm4
4820 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm6 = ymm5[1],ymm4[1],ymm5[3],ymm4[3]
4821 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm6 = ymm6[0,2,3,3]
4822 ; AVX2-ONLY-NEXT:    vbroadcastsd 216(%rsi), %ymm7
4823 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm7[0,1],ymm6[2,3,4,5,6,7]
4824 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4825 ; AVX2-ONLY-NEXT:    vmovaps 256(%rdx), %ymm7
4826 ; AVX2-ONLY-NEXT:    vmovaps 256(%rcx), %ymm6
4827 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm8 = ymm7[1],ymm6[1],ymm7[3],ymm6[3]
4828 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm8 = ymm8[0,2,3,3]
4829 ; AVX2-ONLY-NEXT:    vbroadcastsd 280(%rsi), %ymm10
4830 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1],ymm8[2,3,4,5,6,7]
4831 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4832 ; AVX2-ONLY-NEXT:    vmovaps 320(%rdx), %ymm10
4833 ; AVX2-ONLY-NEXT:    vmovaps 320(%rcx), %ymm8
4834 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm11 = ymm10[1],ymm8[1],ymm10[3],ymm8[3]
4835 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm11 = ymm11[0,2,3,3]
4836 ; AVX2-ONLY-NEXT:    vbroadcastsd 344(%rsi), %ymm12
4837 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm12[0,1],ymm11[2,3,4,5,6,7]
4838 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4839 ; AVX2-ONLY-NEXT:    vmovaps 384(%rdx), %ymm0
4840 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4841 ; AVX2-ONLY-NEXT:    vmovaps 384(%rcx), %ymm11
4842 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm14 = ymm0[1],ymm11[1],ymm0[3],ymm11[3]
4843 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm14 = ymm14[0,2,3,3]
4844 ; AVX2-ONLY-NEXT:    vbroadcastsd 408(%rsi), %ymm12
4845 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm12[0,1],ymm14[2,3,4,5,6,7]
4846 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4847 ; AVX2-ONLY-NEXT:    vmovaps 448(%rdx), %ymm12
4848 ; AVX2-ONLY-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4849 ; AVX2-ONLY-NEXT:    vmovaps 448(%rcx), %ymm0
4850 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4851 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm12 = ymm12[1],ymm0[1],ymm12[3],ymm0[3]
4852 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm12 = ymm12[0,2,3,3]
4853 ; AVX2-ONLY-NEXT:    vbroadcastsd 472(%rsi), %ymm14
4854 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm14[0,1],ymm12[2,3,4,5,6,7]
4855 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4856 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm9[0],ymm1[0],ymm9[2],ymm1[2]
4857 ; AVX2-ONLY-NEXT:    vperm2f128 $49, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
4858 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[2,3],mem[2,3]
4859 ; AVX2-ONLY-NEXT:    vmovaps (%r8), %ymm1
4860 ; AVX2-ONLY-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm12 # 32-byte Folded Reload
4861 ; AVX2-ONLY-NEXT:    # ymm12 = ymm1[0,1],mem[2,3,4,5,6,7]
4862 ; AVX2-ONLY-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4863 ; AVX2-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm12 # 32-byte Folded Reload
4864 ; AVX2-ONLY-NEXT:    # ymm12 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
4865 ; AVX2-ONLY-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4866 ; AVX2-ONLY-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm9 # 32-byte Folded Reload
4867 ; AVX2-ONLY-NEXT:    # ymm9 = mem[0,1,2,3,4,5],ymm1[6,7]
4868 ; AVX2-ONLY-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4869 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
4870 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4871 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4872 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = mem[2,3],ymm0[2,3]
4873 ; AVX2-ONLY-NEXT:    vbroadcastsd 48(%rcx), %ymm1
4874 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]
4875 ; AVX2-ONLY-NEXT:    vmovaps 32(%r8), %ymm1
4876 ; AVX2-ONLY-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm9 # 32-byte Folded Reload
4877 ; AVX2-ONLY-NEXT:    # ymm9 = ymm1[0,1],mem[2,3,4,5,6,7]
4878 ; AVX2-ONLY-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4879 ; AVX2-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm9 # 32-byte Folded Reload
4880 ; AVX2-ONLY-NEXT:    # ymm9 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
4881 ; AVX2-ONLY-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4882 ; AVX2-ONLY-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm9 # 32-byte Folded Reload
4883 ; AVX2-ONLY-NEXT:    # ymm9 = mem[0,1,2,3,4,5],ymm1[6,7]
4884 ; AVX2-ONLY-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4885 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
4886 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4887 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm13[0],ymm2[0],ymm13[2],ymm2[2]
4888 ; AVX2-ONLY-NEXT:    vperm2f128 $49, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
4889 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[2,3],mem[2,3]
4890 ; AVX2-ONLY-NEXT:    vmovaps 64(%r8), %ymm1
4891 ; AVX2-ONLY-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
4892 ; AVX2-ONLY-NEXT:    # ymm2 = ymm1[0,1],mem[2,3,4,5,6,7]
4893 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4894 ; AVX2-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
4895 ; AVX2-ONLY-NEXT:    # ymm2 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
4896 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4897 ; AVX2-ONLY-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
4898 ; AVX2-ONLY-NEXT:    # ymm2 = mem[0,1,2,3,4,5],ymm1[6,7]
4899 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4900 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
4901 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4902 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4903 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = mem[2,3],ymm0[2,3]
4904 ; AVX2-ONLY-NEXT:    vbroadcastsd 112(%rcx), %ymm1
4905 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]
4906 ; AVX2-ONLY-NEXT:    vmovaps 96(%r8), %ymm1
4907 ; AVX2-ONLY-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
4908 ; AVX2-ONLY-NEXT:    # ymm2 = ymm1[0,1],mem[2,3,4,5,6,7]
4909 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4910 ; AVX2-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
4911 ; AVX2-ONLY-NEXT:    # ymm2 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
4912 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4913 ; AVX2-ONLY-NEXT:    vblendps $63, (%rsp), %ymm1, %ymm2 # 32-byte Folded Reload
4914 ; AVX2-ONLY-NEXT:    # ymm2 = mem[0,1,2,3,4,5],ymm1[6,7]
4915 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4916 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
4917 ; AVX2-ONLY-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
4918 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm3[0],ymm15[0],ymm3[2],ymm15[2]
4919 ; AVX2-ONLY-NEXT:    vperm2f128 $49, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
4920 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[2,3],mem[2,3]
4921 ; AVX2-ONLY-NEXT:    vmovaps 128(%r8), %ymm1
4922 ; AVX2-ONLY-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
4923 ; AVX2-ONLY-NEXT:    # ymm2 = ymm1[0,1],mem[2,3,4,5,6,7]
4924 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4925 ; AVX2-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
4926 ; AVX2-ONLY-NEXT:    # ymm2 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
4927 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4928 ; AVX2-ONLY-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
4929 ; AVX2-ONLY-NEXT:    # ymm2 = mem[0,1,2,3,4,5],ymm1[6,7]
4930 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4931 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
4932 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4933 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4934 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = mem[2,3],ymm0[2,3]
4935 ; AVX2-ONLY-NEXT:    vbroadcastsd 176(%rcx), %ymm1
4936 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]
4937 ; AVX2-ONLY-NEXT:    vmovaps 160(%r8), %ymm1
4938 ; AVX2-ONLY-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
4939 ; AVX2-ONLY-NEXT:    # ymm2 = ymm1[0,1],mem[2,3,4,5,6,7]
4940 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4941 ; AVX2-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
4942 ; AVX2-ONLY-NEXT:    # ymm2 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
4943 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4944 ; AVX2-ONLY-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
4945 ; AVX2-ONLY-NEXT:    # ymm2 = mem[0,1,2,3,4,5],ymm1[6,7]
4946 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4947 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
4948 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4949 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm5[0],ymm4[0],ymm5[2],ymm4[2]
4950 ; AVX2-ONLY-NEXT:    vperm2f128 $49, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
4951 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[2,3],mem[2,3]
4952 ; AVX2-ONLY-NEXT:    vmovaps 192(%r8), %ymm1
4953 ; AVX2-ONLY-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
4954 ; AVX2-ONLY-NEXT:    # ymm2 = ymm1[0,1],mem[2,3,4,5,6,7]
4955 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4956 ; AVX2-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
4957 ; AVX2-ONLY-NEXT:    # ymm2 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
4958 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4959 ; AVX2-ONLY-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
4960 ; AVX2-ONLY-NEXT:    # ymm2 = mem[0,1,2,3,4,5],ymm1[6,7]
4961 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4962 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
4963 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4964 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4965 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = mem[2,3],ymm0[2,3]
4966 ; AVX2-ONLY-NEXT:    vbroadcastsd 240(%rcx), %ymm1
4967 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]
4968 ; AVX2-ONLY-NEXT:    vmovaps 224(%r8), %ymm1
4969 ; AVX2-ONLY-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
4970 ; AVX2-ONLY-NEXT:    # ymm2 = ymm1[0,1],mem[2,3,4,5,6,7]
4971 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4972 ; AVX2-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
4973 ; AVX2-ONLY-NEXT:    # ymm2 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
4974 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4975 ; AVX2-ONLY-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
4976 ; AVX2-ONLY-NEXT:    # ymm2 = mem[0,1,2,3,4,5],ymm1[6,7]
4977 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4978 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
4979 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4980 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm7[0],ymm6[0],ymm7[2],ymm6[2]
4981 ; AVX2-ONLY-NEXT:    vperm2f128 $49, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
4982 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[2,3],mem[2,3]
4983 ; AVX2-ONLY-NEXT:    vmovaps 256(%r8), %ymm1
4984 ; AVX2-ONLY-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
4985 ; AVX2-ONLY-NEXT:    # ymm2 = ymm1[0,1],mem[2,3,4,5,6,7]
4986 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4987 ; AVX2-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
4988 ; AVX2-ONLY-NEXT:    # ymm2 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
4989 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4990 ; AVX2-ONLY-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
4991 ; AVX2-ONLY-NEXT:    # ymm2 = mem[0,1,2,3,4,5],ymm1[6,7]
4992 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4993 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
4994 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4995 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4996 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = mem[2,3],ymm0[2,3]
4997 ; AVX2-ONLY-NEXT:    vbroadcastsd 304(%rcx), %ymm1
4998 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]
4999 ; AVX2-ONLY-NEXT:    vmovaps 288(%r8), %ymm1
5000 ; AVX2-ONLY-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
5001 ; AVX2-ONLY-NEXT:    # ymm2 = ymm1[0,1],mem[2,3,4,5,6,7]
5002 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5003 ; AVX2-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
5004 ; AVX2-ONLY-NEXT:    # ymm2 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
5005 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5006 ; AVX2-ONLY-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
5007 ; AVX2-ONLY-NEXT:    # ymm2 = mem[0,1,2,3,4,5],ymm1[6,7]
5008 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5009 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
5010 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5011 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm10[0],ymm8[0],ymm10[2],ymm8[2]
5012 ; AVX2-ONLY-NEXT:    vperm2f128 $49, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
5013 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[2,3],mem[2,3]
5014 ; AVX2-ONLY-NEXT:    vmovaps 320(%r8), %ymm1
5015 ; AVX2-ONLY-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
5016 ; AVX2-ONLY-NEXT:    # ymm2 = ymm1[0,1],mem[2,3,4,5,6,7]
5017 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5018 ; AVX2-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
5019 ; AVX2-ONLY-NEXT:    # ymm2 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
5020 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5021 ; AVX2-ONLY-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
5022 ; AVX2-ONLY-NEXT:    # ymm2 = mem[0,1,2,3,4,5],ymm1[6,7]
5023 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5024 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
5025 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5026 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5027 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = mem[2,3],ymm0[2,3]
5028 ; AVX2-ONLY-NEXT:    vbroadcastsd 368(%rcx), %ymm1
5029 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]
5030 ; AVX2-ONLY-NEXT:    vmovaps 352(%r8), %ymm1
5031 ; AVX2-ONLY-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
5032 ; AVX2-ONLY-NEXT:    # ymm2 = ymm1[0,1],mem[2,3,4,5,6,7]
5033 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5034 ; AVX2-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm15 # 32-byte Folded Reload
5035 ; AVX2-ONLY-NEXT:    # ymm15 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
5036 ; AVX2-ONLY-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
5037 ; AVX2-ONLY-NEXT:    # ymm2 = mem[0,1,2,3,4,5],ymm1[6,7]
5038 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5039 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm14 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
5040 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5041 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm11[0],ymm0[2],ymm11[2]
5042 ; AVX2-ONLY-NEXT:    vperm2f128 $49, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
5043 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[2,3],mem[2,3]
5044 ; AVX2-ONLY-NEXT:    vmovaps 384(%r8), %ymm11
5045 ; AVX2-ONLY-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm13 # 32-byte Folded Reload
5046 ; AVX2-ONLY-NEXT:    # ymm13 = ymm11[0,1],mem[2,3,4,5,6,7]
5047 ; AVX2-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm10 # 32-byte Folded Reload
5048 ; AVX2-ONLY-NEXT:    # ymm10 = mem[0,1],ymm11[2,3],mem[4,5,6,7]
5049 ; AVX2-ONLY-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm1 # 32-byte Folded Reload
5050 ; AVX2-ONLY-NEXT:    # ymm1 = mem[0,1,2,3,4,5],ymm11[6,7]
5051 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5052 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm9 = ymm0[0,1,2,3],ymm11[4,5],ymm0[6,7]
5053 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5054 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm11 = mem[2,3],ymm0[2,3]
5055 ; AVX2-ONLY-NEXT:    vbroadcastsd 432(%rcx), %ymm12
5056 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1],ymm12[2,3],ymm11[4,5,6,7]
5057 ; AVX2-ONLY-NEXT:    vmovaps 416(%r8), %ymm12
5058 ; AVX2-ONLY-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm8 # 32-byte Folded Reload
5059 ; AVX2-ONLY-NEXT:    # ymm8 = ymm12[0,1],mem[2,3,4,5,6,7]
5060 ; AVX2-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm7 # 32-byte Folded Reload
5061 ; AVX2-ONLY-NEXT:    # ymm7 = mem[0,1],ymm12[2,3],mem[4,5,6,7]
5062 ; AVX2-ONLY-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm0 # 32-byte Folded Reload
5063 ; AVX2-ONLY-NEXT:    # ymm0 = mem[0,1,2,3,4,5],ymm12[6,7]
5064 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5065 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm6 = ymm11[0,1,2,3],ymm12[4,5],ymm11[6,7]
5066 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5067 ; AVX2-ONLY-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm11 # 32-byte Folded Reload
5068 ; AVX2-ONLY-NEXT:    # ymm11 = ymm0[0],mem[0],ymm0[2],mem[2]
5069 ; AVX2-ONLY-NEXT:    vperm2f128 $49, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm11 # 32-byte Folded Reload
5070 ; AVX2-ONLY-NEXT:    # ymm11 = ymm11[2,3],mem[2,3]
5071 ; AVX2-ONLY-NEXT:    vmovaps 448(%r8), %ymm0
5072 ; AVX2-ONLY-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm5 # 32-byte Folded Reload
5073 ; AVX2-ONLY-NEXT:    # ymm5 = ymm0[0,1],mem[2,3,4,5,6,7]
5074 ; AVX2-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm4 # 32-byte Folded Reload
5075 ; AVX2-ONLY-NEXT:    # ymm4 = mem[0,1],ymm0[2,3],mem[4,5,6,7]
5076 ; AVX2-ONLY-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload
5077 ; AVX2-ONLY-NEXT:    # ymm1 = mem[0,1,2,3,4,5],ymm0[6,7]
5078 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5079 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm3 = ymm11[0,1,2,3],ymm0[4,5],ymm11[6,7]
5080 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5081 ; AVX2-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm11 = mem[2,3],ymm0[2,3]
5082 ; AVX2-ONLY-NEXT:    vbroadcastsd 496(%rcx), %ymm12
5083 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm12 = ymm11[0,1],ymm12[2,3],ymm11[4,5,6,7]
5084 ; AVX2-ONLY-NEXT:    vmovaps 480(%r8), %ymm0
5085 ; AVX2-ONLY-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload
5086 ; AVX2-ONLY-NEXT:    # ymm2 = ymm0[0,1],mem[2,3,4,5,6,7]
5087 ; AVX2-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload
5088 ; AVX2-ONLY-NEXT:    # ymm1 = mem[0,1],ymm0[2,3],mem[4,5,6,7]
5089 ; AVX2-ONLY-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm11 # 32-byte Folded Reload
5090 ; AVX2-ONLY-NEXT:    # ymm11 = mem[0,1,2,3,4,5],ymm0[6,7]
5091 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm12[0,1,2,3],ymm0[4,5],ymm12[6,7]
5092 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 2496(%r9)
5093 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 2464(%r9)
5094 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 2432(%r9)
5095 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5096 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 2400(%r9)
5097 ; AVX2-ONLY-NEXT:    vmovaps %ymm3, 2336(%r9)
5098 ; AVX2-ONLY-NEXT:    vmovaps %ymm4, 2304(%r9)
5099 ; AVX2-ONLY-NEXT:    vmovaps %ymm5, 2272(%r9)
5100 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5101 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 2240(%r9)
5102 ; AVX2-ONLY-NEXT:    vmovaps %ymm6, 2176(%r9)
5103 ; AVX2-ONLY-NEXT:    vmovaps %ymm7, 2144(%r9)
5104 ; AVX2-ONLY-NEXT:    vmovaps %ymm8, 2112(%r9)
5105 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5106 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 2080(%r9)
5107 ; AVX2-ONLY-NEXT:    vmovaps %ymm9, 2016(%r9)
5108 ; AVX2-ONLY-NEXT:    vmovaps %ymm10, 1984(%r9)
5109 ; AVX2-ONLY-NEXT:    vmovaps %ymm13, 1952(%r9)
5110 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5111 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 1920(%r9)
5112 ; AVX2-ONLY-NEXT:    vmovaps %ymm14, 1856(%r9)
5113 ; AVX2-ONLY-NEXT:    vmovaps %ymm15, 1824(%r9)
5114 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5115 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 1792(%r9)
5116 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5117 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 1760(%r9)
5118 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5119 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 1696(%r9)
5120 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5121 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 1664(%r9)
5122 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5123 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 1632(%r9)
5124 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5125 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 1600(%r9)
5126 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5127 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 1536(%r9)
5128 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5129 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 1504(%r9)
5130 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5131 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 1472(%r9)
5132 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5133 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 1440(%r9)
5134 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5135 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 1376(%r9)
5136 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5137 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 1344(%r9)
5138 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5139 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 1312(%r9)
5140 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5141 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 1280(%r9)
5142 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5143 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 1216(%r9)
5144 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5145 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 1184(%r9)
5146 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5147 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 1152(%r9)
5148 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5149 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 1120(%r9)
5150 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5151 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 1056(%r9)
5152 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5153 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 1024(%r9)
5154 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5155 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 992(%r9)
5156 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5157 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 960(%r9)
5158 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5159 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 896(%r9)
5160 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5161 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 864(%r9)
5162 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5163 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 832(%r9)
5164 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5165 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 800(%r9)
5166 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5167 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 736(%r9)
5168 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5169 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 704(%r9)
5170 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5171 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 672(%r9)
5172 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5173 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 640(%r9)
5174 ; AVX2-ONLY-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
5175 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 576(%r9)
5176 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5177 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 544(%r9)
5178 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5179 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 512(%r9)
5180 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5181 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 480(%r9)
5182 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5183 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 416(%r9)
5184 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5185 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 384(%r9)
5186 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5187 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 352(%r9)
5188 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5189 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 320(%r9)
5190 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5191 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 256(%r9)
5192 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5193 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 224(%r9)
5194 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5195 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 192(%r9)
5196 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5197 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 160(%r9)
5198 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5199 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 96(%r9)
5200 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5201 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 64(%r9)
5202 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5203 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 32(%r9)
5204 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5205 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, (%r9)
5206 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5207 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 2368(%r9)
5208 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5209 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 2048(%r9)
5210 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5211 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 1728(%r9)
5212 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5213 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 1408(%r9)
5214 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5215 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 1088(%r9)
5216 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5217 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 768(%r9)
5218 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5219 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 448(%r9)
5220 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5221 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 128(%r9)
5222 ; AVX2-ONLY-NEXT:    vmovaps %ymm11, 2528(%r9)
5223 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5224 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 2208(%r9)
5225 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5226 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 1888(%r9)
5227 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5228 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 1568(%r9)
5229 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5230 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 1248(%r9)
5231 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5232 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 928(%r9)
5233 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5234 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 608(%r9)
5235 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5236 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 288(%r9)
5237 ; AVX2-ONLY-NEXT:    addq $2696, %rsp # imm = 0xA88
5238 ; AVX2-ONLY-NEXT:    vzeroupper
5239 ; AVX2-ONLY-NEXT:    retq
5241 ; AVX512F-LABEL: store_i64_stride5_vf64:
5242 ; AVX512F:       # %bb.0:
5243 ; AVX512F-NEXT:    subq $3144, %rsp # imm = 0xC48
5244 ; AVX512F-NEXT:    vmovdqa64 320(%rdi), %zmm6
5245 ; AVX512F-NEXT:    vmovdqa64 256(%rdi), %zmm7
5246 ; AVX512F-NEXT:    vmovdqa64 (%rdi), %zmm11
5247 ; AVX512F-NEXT:    vmovdqa64 64(%rdi), %zmm10
5248 ; AVX512F-NEXT:    vmovdqa64 128(%rdi), %zmm9
5249 ; AVX512F-NEXT:    vmovdqa64 192(%rdi), %zmm8
5250 ; AVX512F-NEXT:    vmovdqa64 256(%rsi), %zmm1
5251 ; AVX512F-NEXT:    vmovdqa64 (%rsi), %zmm5
5252 ; AVX512F-NEXT:    vmovdqa64 64(%rsi), %zmm4
5253 ; AVX512F-NEXT:    vmovdqa64 128(%rsi), %zmm3
5254 ; AVX512F-NEXT:    vmovdqa64 192(%rsi), %zmm2
5255 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm20 = <3,u,u,u,12,4,u,u>
5256 ; AVX512F-NEXT:    vmovdqa64 %zmm5, %zmm12
5257 ; AVX512F-NEXT:    vpermt2q %zmm11, %zmm20, %zmm12
5258 ; AVX512F-NEXT:    vmovdqu64 %zmm12, (%rsp) # 64-byte Spill
5259 ; AVX512F-NEXT:    vmovdqa64 %zmm4, %zmm12
5260 ; AVX512F-NEXT:    vpermt2q %zmm10, %zmm20, %zmm12
5261 ; AVX512F-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5262 ; AVX512F-NEXT:    vmovdqa64 %zmm3, %zmm12
5263 ; AVX512F-NEXT:    vpermt2q %zmm9, %zmm20, %zmm12
5264 ; AVX512F-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5265 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm12
5266 ; AVX512F-NEXT:    vpermt2q %zmm8, %zmm20, %zmm12
5267 ; AVX512F-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5268 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm12
5269 ; AVX512F-NEXT:    vpermt2q %zmm7, %zmm20, %zmm12
5270 ; AVX512F-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5271 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm21 = <0,8,u,u,u,1,9,u>
5272 ; AVX512F-NEXT:    vmovdqa64 %zmm11, %zmm0
5273 ; AVX512F-NEXT:    vpermt2q %zmm5, %zmm21, %zmm0
5274 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5275 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm13 = <u,u,2,10,u,u,u,3>
5276 ; AVX512F-NEXT:    vmovdqa64 %zmm11, %zmm0
5277 ; AVX512F-NEXT:    vpermt2q %zmm5, %zmm13, %zmm0
5278 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5279 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm14 = <u,5,13,u,u,u,6,14>
5280 ; AVX512F-NEXT:    vmovdqa64 %zmm11, %zmm0
5281 ; AVX512F-NEXT:    vpermt2q %zmm5, %zmm14, %zmm0
5282 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5283 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [15,7,15,7,15,7,15,7]
5284 ; AVX512F-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5285 ; AVX512F-NEXT:    vpermt2q %zmm5, %zmm0, %zmm11
5286 ; AVX512F-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5287 ; AVX512F-NEXT:    vmovdqa64 %zmm10, %zmm5
5288 ; AVX512F-NEXT:    vpermt2q %zmm4, %zmm21, %zmm5
5289 ; AVX512F-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5290 ; AVX512F-NEXT:    vmovdqa64 %zmm10, %zmm5
5291 ; AVX512F-NEXT:    vpermt2q %zmm4, %zmm13, %zmm5
5292 ; AVX512F-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5293 ; AVX512F-NEXT:    vmovdqa64 %zmm10, %zmm5
5294 ; AVX512F-NEXT:    vpermt2q %zmm4, %zmm14, %zmm5
5295 ; AVX512F-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5296 ; AVX512F-NEXT:    vpermt2q %zmm4, %zmm0, %zmm10
5297 ; AVX512F-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5298 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm4
5299 ; AVX512F-NEXT:    vpermt2q %zmm3, %zmm21, %zmm4
5300 ; AVX512F-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5301 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm4
5302 ; AVX512F-NEXT:    vpermt2q %zmm3, %zmm13, %zmm4
5303 ; AVX512F-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5304 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm4
5305 ; AVX512F-NEXT:    vpermt2q %zmm3, %zmm14, %zmm4
5306 ; AVX512F-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5307 ; AVX512F-NEXT:    vpermt2q %zmm3, %zmm0, %zmm9
5308 ; AVX512F-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5309 ; AVX512F-NEXT:    vmovdqa64 %zmm8, %zmm3
5310 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm21, %zmm3
5311 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5312 ; AVX512F-NEXT:    vmovdqa64 %zmm8, %zmm3
5313 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm13, %zmm3
5314 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5315 ; AVX512F-NEXT:    vmovdqa64 %zmm8, %zmm3
5316 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm14, %zmm3
5317 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5318 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm0, %zmm8
5319 ; AVX512F-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5320 ; AVX512F-NEXT:    vmovdqa64 %zmm7, %zmm2
5321 ; AVX512F-NEXT:    vpermt2q %zmm1, %zmm21, %zmm2
5322 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5323 ; AVX512F-NEXT:    vmovdqa64 %zmm7, %zmm2
5324 ; AVX512F-NEXT:    vpermt2q %zmm1, %zmm13, %zmm2
5325 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5326 ; AVX512F-NEXT:    vmovdqa64 %zmm7, %zmm2
5327 ; AVX512F-NEXT:    vpermt2q %zmm1, %zmm14, %zmm2
5328 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5329 ; AVX512F-NEXT:    vpermt2q %zmm1, %zmm0, %zmm7
5330 ; AVX512F-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5331 ; AVX512F-NEXT:    vmovdqa64 320(%rsi), %zmm1
5332 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm2
5333 ; AVX512F-NEXT:    vpermt2q %zmm6, %zmm20, %zmm2
5334 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5335 ; AVX512F-NEXT:    vmovdqa64 %zmm6, %zmm2
5336 ; AVX512F-NEXT:    vpermt2q %zmm1, %zmm21, %zmm2
5337 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5338 ; AVX512F-NEXT:    vmovdqa64 %zmm6, %zmm2
5339 ; AVX512F-NEXT:    vpermt2q %zmm1, %zmm13, %zmm2
5340 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5341 ; AVX512F-NEXT:    vmovdqa64 %zmm6, %zmm2
5342 ; AVX512F-NEXT:    vpermt2q %zmm1, %zmm14, %zmm2
5343 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5344 ; AVX512F-NEXT:    vpermt2q %zmm1, %zmm0, %zmm6
5345 ; AVX512F-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5346 ; AVX512F-NEXT:    vmovdqa64 384(%rdi), %zmm3
5347 ; AVX512F-NEXT:    vmovdqa64 384(%rsi), %zmm1
5348 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm2
5349 ; AVX512F-NEXT:    vpermt2q %zmm3, %zmm20, %zmm2
5350 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5351 ; AVX512F-NEXT:    vmovdqa64 %zmm3, %zmm2
5352 ; AVX512F-NEXT:    vpermt2q %zmm1, %zmm21, %zmm2
5353 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5354 ; AVX512F-NEXT:    vmovdqa64 %zmm3, %zmm2
5355 ; AVX512F-NEXT:    vpermt2q %zmm1, %zmm13, %zmm2
5356 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5357 ; AVX512F-NEXT:    vmovdqa64 %zmm3, %zmm2
5358 ; AVX512F-NEXT:    vpermt2q %zmm1, %zmm14, %zmm2
5359 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5360 ; AVX512F-NEXT:    vpermt2q %zmm1, %zmm0, %zmm3
5361 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5362 ; AVX512F-NEXT:    vmovdqa64 448(%rdi), %zmm2
5363 ; AVX512F-NEXT:    vmovdqa64 448(%rsi), %zmm1
5364 ; AVX512F-NEXT:    vpermi2q %zmm2, %zmm1, %zmm20
5365 ; AVX512F-NEXT:    vpermi2q %zmm1, %zmm2, %zmm21
5366 ; AVX512F-NEXT:    vpermi2q %zmm1, %zmm2, %zmm13
5367 ; AVX512F-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5368 ; AVX512F-NEXT:    vpermi2q %zmm1, %zmm2, %zmm14
5369 ; AVX512F-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5370 ; AVX512F-NEXT:    vpermt2q %zmm1, %zmm0, %zmm2
5371 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5372 ; AVX512F-NEXT:    vmovdqa64 (%rdx), %zmm25
5373 ; AVX512F-NEXT:    vmovdqa64 (%rcx), %zmm0
5374 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm6 = <u,3,11,u,u,u,4,12>
5375 ; AVX512F-NEXT:    vmovdqa64 %zmm25, %zmm3
5376 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm6, %zmm3
5377 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm2 = <u,u,0,8,u,u,u,1>
5378 ; AVX512F-NEXT:    vmovdqa64 %zmm25, %zmm22
5379 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm2, %zmm22
5380 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm12 = <1,u,u,u,10,2,u,u>
5381 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm27
5382 ; AVX512F-NEXT:    vpermt2q %zmm25, %zmm12, %zmm27
5383 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [13,5,13,5,13,5,13,5]
5384 ; AVX512F-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5385 ; AVX512F-NEXT:    vmovdqa64 %zmm25, %zmm28
5386 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm10, %zmm28
5387 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm16 = <6,14,u,u,u,7,15,u>
5388 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm16, %zmm25
5389 ; AVX512F-NEXT:    vmovdqa64 64(%rdx), %zmm26
5390 ; AVX512F-NEXT:    vmovdqa64 64(%rcx), %zmm0
5391 ; AVX512F-NEXT:    vmovdqa64 %zmm26, %zmm4
5392 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm6, %zmm4
5393 ; AVX512F-NEXT:    vmovdqa64 %zmm26, %zmm17
5394 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm2, %zmm17
5395 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm1
5396 ; AVX512F-NEXT:    vpermt2q %zmm26, %zmm12, %zmm1
5397 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5398 ; AVX512F-NEXT:    vmovdqa64 %zmm26, %zmm1
5399 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
5400 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5401 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm16, %zmm26
5402 ; AVX512F-NEXT:    vmovdqa64 128(%rdx), %zmm14
5403 ; AVX512F-NEXT:    vmovdqa64 128(%rcx), %zmm0
5404 ; AVX512F-NEXT:    vmovdqa64 %zmm14, %zmm15
5405 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm6, %zmm15
5406 ; AVX512F-NEXT:    vmovdqa64 %zmm14, %zmm9
5407 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm2, %zmm9
5408 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm1
5409 ; AVX512F-NEXT:    vpermt2q %zmm14, %zmm12, %zmm1
5410 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5411 ; AVX512F-NEXT:    vmovdqa64 %zmm14, %zmm1
5412 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
5413 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5414 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm16, %zmm14
5415 ; AVX512F-NEXT:    vmovdqa64 192(%rdx), %zmm19
5416 ; AVX512F-NEXT:    vmovdqa64 192(%rcx), %zmm0
5417 ; AVX512F-NEXT:    vmovdqa64 %zmm19, %zmm31
5418 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm6, %zmm31
5419 ; AVX512F-NEXT:    vmovdqa64 %zmm19, %zmm30
5420 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm2, %zmm30
5421 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm1
5422 ; AVX512F-NEXT:    vpermt2q %zmm19, %zmm12, %zmm1
5423 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5424 ; AVX512F-NEXT:    vmovdqa64 %zmm19, %zmm1
5425 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
5426 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5427 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm16, %zmm19
5428 ; AVX512F-NEXT:    vmovdqa64 256(%rdx), %zmm18
5429 ; AVX512F-NEXT:    vmovdqa64 256(%rcx), %zmm0
5430 ; AVX512F-NEXT:    vmovdqa64 %zmm18, %zmm29
5431 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm6, %zmm29
5432 ; AVX512F-NEXT:    vmovdqa64 %zmm18, %zmm24
5433 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm2, %zmm24
5434 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm1
5435 ; AVX512F-NEXT:    vpermt2q %zmm18, %zmm12, %zmm1
5436 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5437 ; AVX512F-NEXT:    vmovdqa64 %zmm18, %zmm1
5438 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
5439 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5440 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm16, %zmm18
5441 ; AVX512F-NEXT:    vmovdqa64 320(%rdx), %zmm7
5442 ; AVX512F-NEXT:    vmovdqa64 320(%rcx), %zmm0
5443 ; AVX512F-NEXT:    vmovdqa64 %zmm7, %zmm23
5444 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm6, %zmm23
5445 ; AVX512F-NEXT:    vmovdqa64 %zmm7, %zmm1
5446 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm2, %zmm1
5447 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm5
5448 ; AVX512F-NEXT:    vpermt2q %zmm7, %zmm12, %zmm5
5449 ; AVX512F-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5450 ; AVX512F-NEXT:    vmovdqa64 %zmm7, %zmm5
5451 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm10, %zmm5
5452 ; AVX512F-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5453 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm16, %zmm7
5454 ; AVX512F-NEXT:    vmovdqa64 384(%rdx), %zmm11
5455 ; AVX512F-NEXT:    vmovdqa64 384(%rcx), %zmm0
5456 ; AVX512F-NEXT:    vmovdqa64 %zmm11, %zmm13
5457 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm6, %zmm13
5458 ; AVX512F-NEXT:    vmovdqa64 %zmm11, %zmm8
5459 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm2, %zmm8
5460 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm5
5461 ; AVX512F-NEXT:    vpermt2q %zmm11, %zmm12, %zmm5
5462 ; AVX512F-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5463 ; AVX512F-NEXT:    vmovdqa64 %zmm11, %zmm5
5464 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm10, %zmm5
5465 ; AVX512F-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5466 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm16, %zmm11
5467 ; AVX512F-NEXT:    vmovdqa64 448(%rdx), %zmm5
5468 ; AVX512F-NEXT:    vmovdqa64 448(%rcx), %zmm0
5469 ; AVX512F-NEXT:    vpermi2q %zmm0, %zmm5, %zmm6
5470 ; AVX512F-NEXT:    vpermi2q %zmm0, %zmm5, %zmm2
5471 ; AVX512F-NEXT:    vpermi2q %zmm5, %zmm0, %zmm12
5472 ; AVX512F-NEXT:    vpermi2q %zmm0, %zmm5, %zmm10
5473 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm16, %zmm5
5474 ; AVX512F-NEXT:    movb $49, %al
5475 ; AVX512F-NEXT:    kmovw %eax, %k1
5476 ; AVX512F-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
5477 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k1}
5478 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5479 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k1}
5480 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5481 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm15 {%k1}
5482 ; AVX512F-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5483 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5484 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k1}
5485 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5486 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm29 {%k1}
5487 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5488 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm23 {%k1}
5489 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5490 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm13 {%k1}
5491 ; AVX512F-NEXT:    vmovdqa64 %zmm20, %zmm6 {%k1}
5492 ; AVX512F-NEXT:    movb $-116, %al
5493 ; AVX512F-NEXT:    kmovw %eax, %k3
5494 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
5495 ; AVX512F-NEXT:    vmovdqa64 %zmm22, %zmm16 {%k3}
5496 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5497 ; AVX512F-NEXT:    vmovdqa64 %zmm27, %zmm0 {%k1}
5498 ; AVX512F-NEXT:    movb $24, %al
5499 ; AVX512F-NEXT:    kmovw %eax, %k2
5500 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm27 # 64-byte Reload
5501 ; AVX512F-NEXT:    vmovdqa64 %zmm28, %zmm27 {%k2}
5502 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
5503 ; AVX512F-NEXT:    vmovdqa64 %zmm15, %zmm25 {%k2}
5504 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
5505 ; AVX512F-NEXT:    vmovdqa64 %zmm17, %zmm28 {%k3}
5506 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
5507 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm22 {%k3}
5508 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
5509 ; AVX512F-NEXT:    vmovdqa64 %zmm30, %zmm20 {%k3}
5510 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
5511 ; AVX512F-NEXT:    vmovdqa64 %zmm24, %zmm9 {%k3}
5512 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
5513 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm17 {%k3}
5514 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
5515 ; AVX512F-NEXT:    vmovdqa64 %zmm8, %zmm1 {%k3}
5516 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5517 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm21 {%k3}
5518 ; AVX512F-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5519 ; AVX512F-NEXT:    movb $8, %al
5520 ; AVX512F-NEXT:    kmovw %eax, %k3
5521 ; AVX512F-NEXT:    vmovdqa64 (%r8), %zmm2
5522 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm3 {%k3}
5523 ; AVX512F-NEXT:    vmovdqu64 %zmm3, (%rsp) # 64-byte Spill
5524 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm21 = [0,1,2,3,8,5,6,7]
5525 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm21, %zmm16
5526 ; AVX512F-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5527 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm8 = [0,9,2,3,4,5,10,7]
5528 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm8, %zmm0
5529 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5530 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm15 = [12,1,2,3,4,13,6,7]
5531 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm15, %zmm27
5532 ; AVX512F-NEXT:    vmovdqu64 %zmm27, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5533 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm16 = [0,1,14,3,4,5,6,15]
5534 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm16, %zmm25
5535 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
5536 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5537 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
5538 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
5539 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5540 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k2}
5541 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5542 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k2}
5543 ; AVX512F-NEXT:    vmovdqa64 64(%r8), %zmm2
5544 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm4 {%k3}
5545 ; AVX512F-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5546 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm21, %zmm28
5547 ; AVX512F-NEXT:    vmovdqu64 %zmm28, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5548 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm8, %zmm1
5549 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5550 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm15, %zmm3
5551 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5552 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm16, %zmm26
5553 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
5554 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5555 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k1}
5556 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
5557 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5558 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
5559 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5560 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm14 {%k2}
5561 ; AVX512F-NEXT:    vmovdqa64 128(%r8), %zmm2
5562 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm30 # 64-byte Reload
5563 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm30 {%k3}
5564 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm21, %zmm22
5565 ; AVX512F-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5566 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm8, %zmm3
5567 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5568 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm15, %zmm1
5569 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5570 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm16, %zmm14
5571 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
5572 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5573 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k1}
5574 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5575 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
5576 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k2}
5577 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
5578 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm19 {%k2}
5579 ; AVX512F-NEXT:    vmovdqa64 192(%r8), %zmm2
5580 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm31 {%k3}
5581 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm21, %zmm20
5582 ; AVX512F-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5583 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm8, %zmm3
5584 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5585 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm15, %zmm0
5586 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5587 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm16, %zmm19
5588 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
5589 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5590 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm20 {%k1}
5591 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
5592 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
5593 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm28 {%k2}
5594 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
5595 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm18 {%k2}
5596 ; AVX512F-NEXT:    vmovdqa64 256(%r8), %zmm2
5597 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm29 {%k3}
5598 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm3
5599 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm21, %zmm3
5600 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm8, %zmm20
5601 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm15, %zmm28
5602 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm16, %zmm18
5603 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm27 # 64-byte Reload
5604 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5605 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm27 {%k1}
5606 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
5607 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5608 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm22 {%k2}
5609 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5610 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k2}
5611 ; AVX512F-NEXT:    vmovdqa64 320(%r8), %zmm2
5612 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm23 {%k3}
5613 ; AVX512F-NEXT:    vmovdqa64 %zmm17, %zmm1
5614 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm21, %zmm1
5615 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm8, %zmm27
5616 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm15, %zmm22
5617 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm16, %zmm7
5618 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
5619 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5620 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm9 {%k1}
5621 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5622 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
5623 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm0 {%k2}
5624 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
5625 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm11 {%k2}
5626 ; AVX512F-NEXT:    vmovdqa64 384(%r8), %zmm2
5627 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm13 {%k3}
5628 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
5629 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm21, %zmm17
5630 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm8, %zmm9
5631 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm15, %zmm0
5632 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm16, %zmm11
5633 ; AVX512F-NEXT:    vmovdqa64 448(%r8), %zmm2
5634 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm24 # 64-byte Reload
5635 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm21, %zmm24
5636 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
5637 ; AVX512F-NEXT:    vmovdqa64 %zmm12, %zmm4 {%k1}
5638 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm8, %zmm4
5639 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
5640 ; AVX512F-NEXT:    vmovdqa64 %zmm10, %zmm8 {%k2}
5641 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm15, %zmm8
5642 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
5643 ; AVX512F-NEXT:    vmovdqa64 %zmm10, %zmm5 {%k2}
5644 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm16, %zmm5
5645 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm6 {%k3}
5646 ; AVX512F-NEXT:    vmovdqa64 %zmm5, 2496(%r9)
5647 ; AVX512F-NEXT:    vmovdqa64 %zmm8, 2432(%r9)
5648 ; AVX512F-NEXT:    vmovdqa64 %zmm6, 2368(%r9)
5649 ; AVX512F-NEXT:    vmovdqa64 %zmm4, 2304(%r9)
5650 ; AVX512F-NEXT:    vmovdqa64 %zmm24, 2240(%r9)
5651 ; AVX512F-NEXT:    vmovdqa64 %zmm11, 2176(%r9)
5652 ; AVX512F-NEXT:    vmovdqa64 %zmm0, 2112(%r9)
5653 ; AVX512F-NEXT:    vmovdqa64 %zmm13, 2048(%r9)
5654 ; AVX512F-NEXT:    vmovdqa64 %zmm9, 1984(%r9)
5655 ; AVX512F-NEXT:    vmovdqa64 %zmm17, 1920(%r9)
5656 ; AVX512F-NEXT:    vmovdqa64 %zmm7, 1856(%r9)
5657 ; AVX512F-NEXT:    vmovdqa64 %zmm22, 1792(%r9)
5658 ; AVX512F-NEXT:    vmovdqa64 %zmm23, 1728(%r9)
5659 ; AVX512F-NEXT:    vmovdqa64 %zmm27, 1664(%r9)
5660 ; AVX512F-NEXT:    vmovdqa64 %zmm1, 1600(%r9)
5661 ; AVX512F-NEXT:    vmovdqa64 %zmm18, 1536(%r9)
5662 ; AVX512F-NEXT:    vmovdqa64 %zmm28, 1472(%r9)
5663 ; AVX512F-NEXT:    vmovdqa64 %zmm29, 1408(%r9)
5664 ; AVX512F-NEXT:    vmovdqa64 %zmm20, 1344(%r9)
5665 ; AVX512F-NEXT:    vmovdqa64 %zmm3, 1280(%r9)
5666 ; AVX512F-NEXT:    vmovdqa64 %zmm19, 1216(%r9)
5667 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5668 ; AVX512F-NEXT:    vmovaps %zmm0, 1152(%r9)
5669 ; AVX512F-NEXT:    vmovdqa64 %zmm31, 1088(%r9)
5670 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5671 ; AVX512F-NEXT:    vmovaps %zmm0, 1024(%r9)
5672 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5673 ; AVX512F-NEXT:    vmovaps %zmm0, 960(%r9)
5674 ; AVX512F-NEXT:    vmovdqa64 %zmm14, 896(%r9)
5675 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5676 ; AVX512F-NEXT:    vmovaps %zmm0, 832(%r9)
5677 ; AVX512F-NEXT:    vmovdqa64 %zmm30, 768(%r9)
5678 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5679 ; AVX512F-NEXT:    vmovaps %zmm0, 704(%r9)
5680 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5681 ; AVX512F-NEXT:    vmovaps %zmm0, 640(%r9)
5682 ; AVX512F-NEXT:    vmovdqa64 %zmm26, 576(%r9)
5683 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5684 ; AVX512F-NEXT:    vmovaps %zmm0, 512(%r9)
5685 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5686 ; AVX512F-NEXT:    vmovaps %zmm0, 448(%r9)
5687 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5688 ; AVX512F-NEXT:    vmovaps %zmm0, 384(%r9)
5689 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5690 ; AVX512F-NEXT:    vmovaps %zmm0, 320(%r9)
5691 ; AVX512F-NEXT:    vmovdqa64 %zmm25, 256(%r9)
5692 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5693 ; AVX512F-NEXT:    vmovaps %zmm0, 192(%r9)
5694 ; AVX512F-NEXT:    vmovups (%rsp), %zmm0 # 64-byte Reload
5695 ; AVX512F-NEXT:    vmovaps %zmm0, 128(%r9)
5696 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5697 ; AVX512F-NEXT:    vmovaps %zmm0, 64(%r9)
5698 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5699 ; AVX512F-NEXT:    vmovaps %zmm0, (%r9)
5700 ; AVX512F-NEXT:    addq $3144, %rsp # imm = 0xC48
5701 ; AVX512F-NEXT:    vzeroupper
5702 ; AVX512F-NEXT:    retq
5704 ; AVX512BW-LABEL: store_i64_stride5_vf64:
5705 ; AVX512BW:       # %bb.0:
5706 ; AVX512BW-NEXT:    subq $3144, %rsp # imm = 0xC48
5707 ; AVX512BW-NEXT:    vmovdqa64 320(%rdi), %zmm6
5708 ; AVX512BW-NEXT:    vmovdqa64 256(%rdi), %zmm7
5709 ; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm11
5710 ; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %zmm10
5711 ; AVX512BW-NEXT:    vmovdqa64 128(%rdi), %zmm9
5712 ; AVX512BW-NEXT:    vmovdqa64 192(%rdi), %zmm8
5713 ; AVX512BW-NEXT:    vmovdqa64 256(%rsi), %zmm1
5714 ; AVX512BW-NEXT:    vmovdqa64 (%rsi), %zmm5
5715 ; AVX512BW-NEXT:    vmovdqa64 64(%rsi), %zmm4
5716 ; AVX512BW-NEXT:    vmovdqa64 128(%rsi), %zmm3
5717 ; AVX512BW-NEXT:    vmovdqa64 192(%rsi), %zmm2
5718 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm20 = <3,u,u,u,12,4,u,u>
5719 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm12
5720 ; AVX512BW-NEXT:    vpermt2q %zmm11, %zmm20, %zmm12
5721 ; AVX512BW-NEXT:    vmovdqu64 %zmm12, (%rsp) # 64-byte Spill
5722 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm12
5723 ; AVX512BW-NEXT:    vpermt2q %zmm10, %zmm20, %zmm12
5724 ; AVX512BW-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5725 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm12
5726 ; AVX512BW-NEXT:    vpermt2q %zmm9, %zmm20, %zmm12
5727 ; AVX512BW-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5728 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm12
5729 ; AVX512BW-NEXT:    vpermt2q %zmm8, %zmm20, %zmm12
5730 ; AVX512BW-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5731 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm12
5732 ; AVX512BW-NEXT:    vpermt2q %zmm7, %zmm20, %zmm12
5733 ; AVX512BW-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5734 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm21 = <0,8,u,u,u,1,9,u>
5735 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm0
5736 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm21, %zmm0
5737 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5738 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm13 = <u,u,2,10,u,u,u,3>
5739 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm0
5740 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm13, %zmm0
5741 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5742 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm14 = <u,5,13,u,u,u,6,14>
5743 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm0
5744 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm14, %zmm0
5745 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5746 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [15,7,15,7,15,7,15,7]
5747 ; AVX512BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5748 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm0, %zmm11
5749 ; AVX512BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5750 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm5
5751 ; AVX512BW-NEXT:    vpermt2q %zmm4, %zmm21, %zmm5
5752 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5753 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm5
5754 ; AVX512BW-NEXT:    vpermt2q %zmm4, %zmm13, %zmm5
5755 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5756 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm5
5757 ; AVX512BW-NEXT:    vpermt2q %zmm4, %zmm14, %zmm5
5758 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5759 ; AVX512BW-NEXT:    vpermt2q %zmm4, %zmm0, %zmm10
5760 ; AVX512BW-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5761 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm4
5762 ; AVX512BW-NEXT:    vpermt2q %zmm3, %zmm21, %zmm4
5763 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5764 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm4
5765 ; AVX512BW-NEXT:    vpermt2q %zmm3, %zmm13, %zmm4
5766 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5767 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm4
5768 ; AVX512BW-NEXT:    vpermt2q %zmm3, %zmm14, %zmm4
5769 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5770 ; AVX512BW-NEXT:    vpermt2q %zmm3, %zmm0, %zmm9
5771 ; AVX512BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5772 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm3
5773 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm21, %zmm3
5774 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5775 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm3
5776 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm13, %zmm3
5777 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5778 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm3
5779 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm14, %zmm3
5780 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5781 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm0, %zmm8
5782 ; AVX512BW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5783 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm2
5784 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm21, %zmm2
5785 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5786 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm2
5787 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm13, %zmm2
5788 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5789 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm2
5790 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm14, %zmm2
5791 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5792 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm0, %zmm7
5793 ; AVX512BW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5794 ; AVX512BW-NEXT:    vmovdqa64 320(%rsi), %zmm1
5795 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm2
5796 ; AVX512BW-NEXT:    vpermt2q %zmm6, %zmm20, %zmm2
5797 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5798 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm2
5799 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm21, %zmm2
5800 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5801 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm2
5802 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm13, %zmm2
5803 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5804 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm2
5805 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm14, %zmm2
5806 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5807 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm0, %zmm6
5808 ; AVX512BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5809 ; AVX512BW-NEXT:    vmovdqa64 384(%rdi), %zmm3
5810 ; AVX512BW-NEXT:    vmovdqa64 384(%rsi), %zmm1
5811 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm2
5812 ; AVX512BW-NEXT:    vpermt2q %zmm3, %zmm20, %zmm2
5813 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5814 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm2
5815 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm21, %zmm2
5816 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5817 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm2
5818 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm13, %zmm2
5819 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5820 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm2
5821 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm14, %zmm2
5822 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5823 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm0, %zmm3
5824 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5825 ; AVX512BW-NEXT:    vmovdqa64 448(%rdi), %zmm2
5826 ; AVX512BW-NEXT:    vmovdqa64 448(%rsi), %zmm1
5827 ; AVX512BW-NEXT:    vpermi2q %zmm2, %zmm1, %zmm20
5828 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm2, %zmm21
5829 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm2, %zmm13
5830 ; AVX512BW-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5831 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm2, %zmm14
5832 ; AVX512BW-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5833 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm0, %zmm2
5834 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5835 ; AVX512BW-NEXT:    vmovdqa64 (%rdx), %zmm25
5836 ; AVX512BW-NEXT:    vmovdqa64 (%rcx), %zmm0
5837 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm6 = <u,3,11,u,u,u,4,12>
5838 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, %zmm3
5839 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm6, %zmm3
5840 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm2 = <u,u,0,8,u,u,u,1>
5841 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, %zmm22
5842 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm2, %zmm22
5843 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm12 = <1,u,u,u,10,2,u,u>
5844 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm27
5845 ; AVX512BW-NEXT:    vpermt2q %zmm25, %zmm12, %zmm27
5846 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [13,5,13,5,13,5,13,5]
5847 ; AVX512BW-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5848 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, %zmm28
5849 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm10, %zmm28
5850 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm16 = <6,14,u,u,u,7,15,u>
5851 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm16, %zmm25
5852 ; AVX512BW-NEXT:    vmovdqa64 64(%rdx), %zmm26
5853 ; AVX512BW-NEXT:    vmovdqa64 64(%rcx), %zmm0
5854 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, %zmm4
5855 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm6, %zmm4
5856 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, %zmm17
5857 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm2, %zmm17
5858 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1
5859 ; AVX512BW-NEXT:    vpermt2q %zmm26, %zmm12, %zmm1
5860 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5861 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, %zmm1
5862 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
5863 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5864 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm16, %zmm26
5865 ; AVX512BW-NEXT:    vmovdqa64 128(%rdx), %zmm14
5866 ; AVX512BW-NEXT:    vmovdqa64 128(%rcx), %zmm0
5867 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, %zmm15
5868 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm6, %zmm15
5869 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, %zmm9
5870 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm2, %zmm9
5871 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1
5872 ; AVX512BW-NEXT:    vpermt2q %zmm14, %zmm12, %zmm1
5873 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5874 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, %zmm1
5875 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
5876 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5877 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm16, %zmm14
5878 ; AVX512BW-NEXT:    vmovdqa64 192(%rdx), %zmm19
5879 ; AVX512BW-NEXT:    vmovdqa64 192(%rcx), %zmm0
5880 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm31
5881 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm6, %zmm31
5882 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm30
5883 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm2, %zmm30
5884 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1
5885 ; AVX512BW-NEXT:    vpermt2q %zmm19, %zmm12, %zmm1
5886 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5887 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm1
5888 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
5889 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5890 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm16, %zmm19
5891 ; AVX512BW-NEXT:    vmovdqa64 256(%rdx), %zmm18
5892 ; AVX512BW-NEXT:    vmovdqa64 256(%rcx), %zmm0
5893 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, %zmm29
5894 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm6, %zmm29
5895 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, %zmm24
5896 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm2, %zmm24
5897 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1
5898 ; AVX512BW-NEXT:    vpermt2q %zmm18, %zmm12, %zmm1
5899 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5900 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, %zmm1
5901 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
5902 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5903 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm16, %zmm18
5904 ; AVX512BW-NEXT:    vmovdqa64 320(%rdx), %zmm7
5905 ; AVX512BW-NEXT:    vmovdqa64 320(%rcx), %zmm0
5906 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm23
5907 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm6, %zmm23
5908 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm1
5909 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm2, %zmm1
5910 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm5
5911 ; AVX512BW-NEXT:    vpermt2q %zmm7, %zmm12, %zmm5
5912 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5913 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm5
5914 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm10, %zmm5
5915 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5916 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm16, %zmm7
5917 ; AVX512BW-NEXT:    vmovdqa64 384(%rdx), %zmm11
5918 ; AVX512BW-NEXT:    vmovdqa64 384(%rcx), %zmm0
5919 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm13
5920 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm6, %zmm13
5921 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm8
5922 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm2, %zmm8
5923 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm5
5924 ; AVX512BW-NEXT:    vpermt2q %zmm11, %zmm12, %zmm5
5925 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5926 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm5
5927 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm10, %zmm5
5928 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5929 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm16, %zmm11
5930 ; AVX512BW-NEXT:    vmovdqa64 448(%rdx), %zmm5
5931 ; AVX512BW-NEXT:    vmovdqa64 448(%rcx), %zmm0
5932 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm5, %zmm6
5933 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm5, %zmm2
5934 ; AVX512BW-NEXT:    vpermi2q %zmm5, %zmm0, %zmm12
5935 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm5, %zmm10
5936 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm16, %zmm5
5937 ; AVX512BW-NEXT:    movb $49, %al
5938 ; AVX512BW-NEXT:    kmovd %eax, %k1
5939 ; AVX512BW-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
5940 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k1}
5941 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5942 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k1}
5943 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5944 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm15 {%k1}
5945 ; AVX512BW-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5946 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5947 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k1}
5948 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5949 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm29 {%k1}
5950 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5951 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm23 {%k1}
5952 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5953 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm13 {%k1}
5954 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, %zmm6 {%k1}
5955 ; AVX512BW-NEXT:    movb $-116, %al
5956 ; AVX512BW-NEXT:    kmovd %eax, %k3
5957 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
5958 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm16 {%k3}
5959 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5960 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, %zmm0 {%k1}
5961 ; AVX512BW-NEXT:    movb $24, %al
5962 ; AVX512BW-NEXT:    kmovd %eax, %k2
5963 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm27 # 64-byte Reload
5964 ; AVX512BW-NEXT:    vmovdqa64 %zmm28, %zmm27 {%k2}
5965 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
5966 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm25 {%k2}
5967 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
5968 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm28 {%k3}
5969 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
5970 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm22 {%k3}
5971 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
5972 ; AVX512BW-NEXT:    vmovdqa64 %zmm30, %zmm20 {%k3}
5973 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
5974 ; AVX512BW-NEXT:    vmovdqa64 %zmm24, %zmm9 {%k3}
5975 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
5976 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm17 {%k3}
5977 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
5978 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm1 {%k3}
5979 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5980 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm21 {%k3}
5981 ; AVX512BW-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5982 ; AVX512BW-NEXT:    movb $8, %al
5983 ; AVX512BW-NEXT:    kmovd %eax, %k3
5984 ; AVX512BW-NEXT:    vmovdqa64 (%r8), %zmm2
5985 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm3 {%k3}
5986 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, (%rsp) # 64-byte Spill
5987 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm21 = [0,1,2,3,8,5,6,7]
5988 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm21, %zmm16
5989 ; AVX512BW-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5990 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm8 = [0,9,2,3,4,5,10,7]
5991 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm8, %zmm0
5992 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5993 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm15 = [12,1,2,3,4,13,6,7]
5994 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm15, %zmm27
5995 ; AVX512BW-NEXT:    vmovdqu64 %zmm27, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5996 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm16 = [0,1,14,3,4,5,6,15]
5997 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm16, %zmm25
5998 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
5999 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6000 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
6001 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
6002 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6003 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k2}
6004 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6005 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k2}
6006 ; AVX512BW-NEXT:    vmovdqa64 64(%r8), %zmm2
6007 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm4 {%k3}
6008 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6009 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm21, %zmm28
6010 ; AVX512BW-NEXT:    vmovdqu64 %zmm28, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6011 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm8, %zmm1
6012 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6013 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm15, %zmm3
6014 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6015 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm16, %zmm26
6016 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
6017 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6018 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k1}
6019 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
6020 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6021 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
6022 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6023 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm14 {%k2}
6024 ; AVX512BW-NEXT:    vmovdqa64 128(%r8), %zmm2
6025 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm30 # 64-byte Reload
6026 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm30 {%k3}
6027 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm21, %zmm22
6028 ; AVX512BW-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6029 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm8, %zmm3
6030 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6031 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm15, %zmm1
6032 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6033 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm16, %zmm14
6034 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
6035 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6036 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k1}
6037 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6038 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
6039 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k2}
6040 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
6041 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm19 {%k2}
6042 ; AVX512BW-NEXT:    vmovdqa64 192(%r8), %zmm2
6043 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm31 {%k3}
6044 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm21, %zmm20
6045 ; AVX512BW-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6046 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm8, %zmm3
6047 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6048 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm15, %zmm0
6049 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6050 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm16, %zmm19
6051 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
6052 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6053 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm20 {%k1}
6054 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
6055 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
6056 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm28 {%k2}
6057 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
6058 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm18 {%k2}
6059 ; AVX512BW-NEXT:    vmovdqa64 256(%r8), %zmm2
6060 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm29 {%k3}
6061 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm3
6062 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm21, %zmm3
6063 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm8, %zmm20
6064 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm15, %zmm28
6065 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm16, %zmm18
6066 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm27 # 64-byte Reload
6067 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6068 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm27 {%k1}
6069 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
6070 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6071 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm22 {%k2}
6072 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6073 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k2}
6074 ; AVX512BW-NEXT:    vmovdqa64 320(%r8), %zmm2
6075 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm23 {%k3}
6076 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm1
6077 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm21, %zmm1
6078 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm8, %zmm27
6079 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm15, %zmm22
6080 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm16, %zmm7
6081 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
6082 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6083 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm9 {%k1}
6084 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6085 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
6086 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm0 {%k2}
6087 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
6088 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm11 {%k2}
6089 ; AVX512BW-NEXT:    vmovdqa64 384(%r8), %zmm2
6090 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm13 {%k3}
6091 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
6092 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm21, %zmm17
6093 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm8, %zmm9
6094 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm15, %zmm0
6095 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm16, %zmm11
6096 ; AVX512BW-NEXT:    vmovdqa64 448(%r8), %zmm2
6097 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm24 # 64-byte Reload
6098 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm21, %zmm24
6099 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
6100 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm4 {%k1}
6101 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm8, %zmm4
6102 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
6103 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm8 {%k2}
6104 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm15, %zmm8
6105 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
6106 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm5 {%k2}
6107 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm16, %zmm5
6108 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm6 {%k3}
6109 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, 2496(%r9)
6110 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, 2432(%r9)
6111 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, 2368(%r9)
6112 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, 2304(%r9)
6113 ; AVX512BW-NEXT:    vmovdqa64 %zmm24, 2240(%r9)
6114 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, 2176(%r9)
6115 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, 2112(%r9)
6116 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, 2048(%r9)
6117 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, 1984(%r9)
6118 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, 1920(%r9)
6119 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, 1856(%r9)
6120 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, 1792(%r9)
6121 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, 1728(%r9)
6122 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, 1664(%r9)
6123 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, 1600(%r9)
6124 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, 1536(%r9)
6125 ; AVX512BW-NEXT:    vmovdqa64 %zmm28, 1472(%r9)
6126 ; AVX512BW-NEXT:    vmovdqa64 %zmm29, 1408(%r9)
6127 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, 1344(%r9)
6128 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, 1280(%r9)
6129 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, 1216(%r9)
6130 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6131 ; AVX512BW-NEXT:    vmovaps %zmm0, 1152(%r9)
6132 ; AVX512BW-NEXT:    vmovdqa64 %zmm31, 1088(%r9)
6133 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6134 ; AVX512BW-NEXT:    vmovaps %zmm0, 1024(%r9)
6135 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6136 ; AVX512BW-NEXT:    vmovaps %zmm0, 960(%r9)
6137 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, 896(%r9)
6138 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6139 ; AVX512BW-NEXT:    vmovaps %zmm0, 832(%r9)
6140 ; AVX512BW-NEXT:    vmovdqa64 %zmm30, 768(%r9)
6141 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6142 ; AVX512BW-NEXT:    vmovaps %zmm0, 704(%r9)
6143 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6144 ; AVX512BW-NEXT:    vmovaps %zmm0, 640(%r9)
6145 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, 576(%r9)
6146 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6147 ; AVX512BW-NEXT:    vmovaps %zmm0, 512(%r9)
6148 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6149 ; AVX512BW-NEXT:    vmovaps %zmm0, 448(%r9)
6150 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6151 ; AVX512BW-NEXT:    vmovaps %zmm0, 384(%r9)
6152 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6153 ; AVX512BW-NEXT:    vmovaps %zmm0, 320(%r9)
6154 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, 256(%r9)
6155 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6156 ; AVX512BW-NEXT:    vmovaps %zmm0, 192(%r9)
6157 ; AVX512BW-NEXT:    vmovups (%rsp), %zmm0 # 64-byte Reload
6158 ; AVX512BW-NEXT:    vmovaps %zmm0, 128(%r9)
6159 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6160 ; AVX512BW-NEXT:    vmovaps %zmm0, 64(%r9)
6161 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6162 ; AVX512BW-NEXT:    vmovaps %zmm0, (%r9)
6163 ; AVX512BW-NEXT:    addq $3144, %rsp # imm = 0xC48
6164 ; AVX512BW-NEXT:    vzeroupper
6165 ; AVX512BW-NEXT:    retq
6166   %in.vec0 = load <64 x i64>, ptr %in.vecptr0, align 64
6167   %in.vec1 = load <64 x i64>, ptr %in.vecptr1, align 64
6168   %in.vec2 = load <64 x i64>, ptr %in.vecptr2, align 64
6169   %in.vec3 = load <64 x i64>, ptr %in.vecptr3, align 64
6170   %in.vec4 = load <64 x i64>, ptr %in.vecptr4, align 64
6171   %1 = shufflevector <64 x i64> %in.vec0, <64 x i64> %in.vec1, <128 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127>
6172   %2 = shufflevector <64 x i64> %in.vec2, <64 x i64> %in.vec3, <128 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127>
6173   %3 = shufflevector <128 x i64> %1, <128 x i64> %2, <256 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127, i32 128, i32 129, i32 130, i32 131, i32 132, i32 133, i32 134, i32 135, i32 136, i32 137, i32 138, i32 139, i32 140, i32 141, i32 142, i32 143, i32 144, i32 145, i32 146, i32 147, i32 148, i32 149, i32 150, i32 151, i32 152, i32 153, i32 154, i32 155, i32 156, i32 157, i32 158, i32 159, i32 160, i32 161, i32 162, i32 163, i32 164, i32 165, i32 166, i32 167, i32 168, i32 169, i32 170, i32 171, i32 172, i32 173, i32 174, i32 175, i32 176, i32 177, i32 178, i32 179, i32 180, i32 181, i32 182, i32 183, i32 184, i32 185, i32 186, i32 187, i32 188, i32 189, i32 190, i32 191, i32 192, i32 193, i32 194, i32 195, i32 196, i32 197, i32 198, i32 199, i32 200, i32 201, i32 202, i32 203, i32 204, i32 205, i32 206, i32 207, i32 208, i32 209, i32 210, i32 211, i32 212, i32 213, i32 214, i32 215, i32 216, i32 217, i32 218, i32 219, i32 220, i32 221, i32 222, i32 223, i32 224, i32 225, i32 226, i32 227, i32 228, i32 229, i32 230, i32 231, i32 232, i32 233, i32 234, i32 235, i32 236, i32 237, i32 238, i32 239, i32 240, i32 241, i32 242, i32 243, i32 244, i32 245, i32 246, i32 247, i32 248, i32 249, i32 250, i32 251, i32 252, i32 253, i32 254, i32 255>
6174   %4 = shufflevector <64 x i64> %in.vec4, <64 x i64> poison, <256 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
6175   %5 = shufflevector <256 x i64> %3, <256 x i64> %4, <320 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127, i32 128, i32 129, i32 130, i32 131, i32 132, i32 133, i32 134, i32 135, i32 136, i32 137, i32 138, i32 139, i32 140, i32 141, i32 142, i32 143, i32 144, i32 145, i32 146, i32 147, i32 148, i32 149, i32 150, i32 151, i32 152, i32 153, i32 154, i32 155, i32 156, i32 157, i32 158, i32 159, i32 160, i32 161, i32 162, i32 163, i32 164, i32 165, i32 166, i32 167, i32 168, i32 169, i32 170, i32 171, i32 172, i32 173, i32 174, i32 175, i32 176, i32 177, i32 178, i32 179, i32 180, i32 181, i32 182, i32 183, i32 184, i32 185, i32 186, i32 187, i32 188, i32 189, i32 190, i32 191, i32 192, i32 193, i32 194, i32 195, i32 196, i32 197, i32 198, i32 199, i32 200, i32 201, i32 202, i32 203, i32 204, i32 205, i32 206, i32 207, i32 208, i32 209, i32 210, i32 211, i32 212, i32 213, i32 214, i32 215, i32 216, i32 217, i32 218, i32 219, i32 220, i32 221, i32 222, i32 223, i32 224, i32 225, i32 226, i32 227, i32 228, i32 229, i32 230, i32 231, i32 232, i32 233, i32 234, i32 235, i32 236, i32 237, i32 238, i32 239, i32 240, i32 241, i32 242, i32 243, i32 244, i32 245, i32 246, i32 247, i32 248, i32 249, i32 250, i32 251, i32 252, i32 253, i32 254, i32 255, i32 256, i32 257, i32 258, i32 259, i32 260, i32 261, i32 262, i32 263, i32 264, i32 265, i32 266, i32 267, i32 268, i32 269, i32 270, i32 271, i32 272, i32 273, i32 274, i32 275, i32 276, i32 277, i32 278, i32 279, i32 280, i32 281, i32 282, i32 283, i32 284, i32 285, i32 286, i32 287, i32 288, i32 289, i32 290, i32 291, i32 292, i32 293, i32 294, i32 295, i32 296, i32 297, i32 298, i32 299, i32 300, i32 301, i32 302, i32 303, i32 304, i32 305, i32 306, i32 307, i32 308, i32 309, i32 310, i32 311, i32 312, i32 313, i32 314, i32 315, i32 316, i32 317, i32 318, i32 319>
6176   %interleaved.vec = shufflevector <320 x i64> %5, <320 x i64> poison, <320 x i32> <i32 0, i32 64, i32 128, i32 192, i32 256, i32 1, i32 65, i32 129, i32 193, i32 257, i32 2, i32 66, i32 130, i32 194, i32 258, i32 3, i32 67, i32 131, i32 195, i32 259, i32 4, i32 68, i32 132, i32 196, i32 260, i32 5, i32 69, i32 133, i32 197, i32 261, i32 6, i32 70, i32 134, i32 198, i32 262, i32 7, i32 71, i32 135, i32 199, i32 263, i32 8, i32 72, i32 136, i32 200, i32 264, i32 9, i32 73, i32 137, i32 201, i32 265, i32 10, i32 74, i32 138, i32 202, i32 266, i32 11, i32 75, i32 139, i32 203, i32 267, i32 12, i32 76, i32 140, i32 204, i32 268, i32 13, i32 77, i32 141, i32 205, i32 269, i32 14, i32 78, i32 142, i32 206, i32 270, i32 15, i32 79, i32 143, i32 207, i32 271, i32 16, i32 80, i32 144, i32 208, i32 272, i32 17, i32 81, i32 145, i32 209, i32 273, i32 18, i32 82, i32 146, i32 210, i32 274, i32 19, i32 83, i32 147, i32 211, i32 275, i32 20, i32 84, i32 148, i32 212, i32 276, i32 21, i32 85, i32 149, i32 213, i32 277, i32 22, i32 86, i32 150, i32 214, i32 278, i32 23, i32 87, i32 151, i32 215, i32 279, i32 24, i32 88, i32 152, i32 216, i32 280, i32 25, i32 89, i32 153, i32 217, i32 281, i32 26, i32 90, i32 154, i32 218, i32 282, i32 27, i32 91, i32 155, i32 219, i32 283, i32 28, i32 92, i32 156, i32 220, i32 284, i32 29, i32 93, i32 157, i32 221, i32 285, i32 30, i32 94, i32 158, i32 222, i32 286, i32 31, i32 95, i32 159, i32 223, i32 287, i32 32, i32 96, i32 160, i32 224, i32 288, i32 33, i32 97, i32 161, i32 225, i32 289, i32 34, i32 98, i32 162, i32 226, i32 290, i32 35, i32 99, i32 163, i32 227, i32 291, i32 36, i32 100, i32 164, i32 228, i32 292, i32 37, i32 101, i32 165, i32 229, i32 293, i32 38, i32 102, i32 166, i32 230, i32 294, i32 39, i32 103, i32 167, i32 231, i32 295, i32 40, i32 104, i32 168, i32 232, i32 296, i32 41, i32 105, i32 169, i32 233, i32 297, i32 42, i32 106, i32 170, i32 234, i32 298, i32 43, i32 107, i32 171, i32 235, i32 299, i32 44, i32 108, i32 172, i32 236, i32 300, i32 45, i32 109, i32 173, i32 237, i32 301, i32 46, i32 110, i32 174, i32 238, i32 302, i32 47, i32 111, i32 175, i32 239, i32 303, i32 48, i32 112, i32 176, i32 240, i32 304, i32 49, i32 113, i32 177, i32 241, i32 305, i32 50, i32 114, i32 178, i32 242, i32 306, i32 51, i32 115, i32 179, i32 243, i32 307, i32 52, i32 116, i32 180, i32 244, i32 308, i32 53, i32 117, i32 181, i32 245, i32 309, i32 54, i32 118, i32 182, i32 246, i32 310, i32 55, i32 119, i32 183, i32 247, i32 311, i32 56, i32 120, i32 184, i32 248, i32 312, i32 57, i32 121, i32 185, i32 249, i32 313, i32 58, i32 122, i32 186, i32 250, i32 314, i32 59, i32 123, i32 187, i32 251, i32 315, i32 60, i32 124, i32 188, i32 252, i32 316, i32 61, i32 125, i32 189, i32 253, i32 317, i32 62, i32 126, i32 190, i32 254, i32 318, i32 63, i32 127, i32 191, i32 255, i32 319>
6177   store <320 x i64> %interleaved.vec, ptr %out.vec, align 64
6178   ret void
6180 ;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
6181 ; AVX: {{.*}}
6182 ; AVX1: {{.*}}
6183 ; AVX2: {{.*}}
6184 ; AVX2-FAST: {{.*}}
6185 ; AVX2-FAST-PERLANE: {{.*}}
6186 ; AVX2-SLOW: {{.*}}
6187 ; AVX512-FAST: {{.*}}
6188 ; AVX512-SLOW: {{.*}}
6189 ; AVX512BW-FAST: {{.*}}
6190 ; AVX512BW-ONLY-FAST: {{.*}}
6191 ; AVX512BW-ONLY-SLOW: {{.*}}
6192 ; AVX512BW-SLOW: {{.*}}
6193 ; AVX512DQ-FAST: {{.*}}
6194 ; AVX512DQ-SLOW: {{.*}}
6195 ; AVX512DQBW-FAST: {{.*}}
6196 ; AVX512DQBW-SLOW: {{.*}}
6197 ; AVX512F-FAST: {{.*}}
6198 ; AVX512F-ONLY-FAST: {{.*}}
6199 ; AVX512F-ONLY-SLOW: {{.*}}
6200 ; AVX512F-SLOW: {{.*}}
6201 ; FALLBACK0: {{.*}}
6202 ; FALLBACK1: {{.*}}
6203 ; FALLBACK10: {{.*}}
6204 ; FALLBACK11: {{.*}}
6205 ; FALLBACK12: {{.*}}
6206 ; FALLBACK2: {{.*}}
6207 ; FALLBACK3: {{.*}}
6208 ; FALLBACK4: {{.*}}
6209 ; FALLBACK5: {{.*}}
6210 ; FALLBACK6: {{.*}}
6211 ; FALLBACK7: {{.*}}
6212 ; FALLBACK8: {{.*}}
6213 ; FALLBACK9: {{.*}}