[MC][X86] Merge lane/element broadcast comment printers. (#79020)
[llvm-project.git] / llvm / test / CodeGen / X86 / vector-interleaved-load-i64-stride-7.ll
blob37f4d0d57076caf21b044ecbd4c0fe01af7c446f
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,AVX512F-ONLY,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,AVX512F-ONLY,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,AVX512DQ-ONLY,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,AVX512DQ-ONLY,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,AVX512BW-ONLY,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,AVX512BW-ONLY,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,AVX512DQBW-ONLY,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,AVX512DQBW-ONLY,AVX512-FAST,AVX512BW-FAST,AVX512DQBW-FAST,FALLBACK12
16 ; These patterns are produced by LoopVectorizer for interleaved loads.
18 define void @load_i64_stride7_vf2(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4, ptr %out.vec5, ptr %out.vec6) nounwind {
19 ; SSE-LABEL: load_i64_stride7_vf2:
20 ; SSE:       # %bb.0:
21 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
22 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %r10
23 ; SSE-NEXT:    movapd 96(%rdi), %xmm0
24 ; SSE-NEXT:    movapd 80(%rdi), %xmm1
25 ; SSE-NEXT:    movapd 64(%rdi), %xmm2
26 ; SSE-NEXT:    movapd (%rdi), %xmm3
27 ; SSE-NEXT:    movapd 16(%rdi), %xmm4
28 ; SSE-NEXT:    movapd 32(%rdi), %xmm5
29 ; SSE-NEXT:    movapd 48(%rdi), %xmm6
30 ; SSE-NEXT:    movapd %xmm6, %xmm7
31 ; SSE-NEXT:    movsd {{.*#+}} xmm7 = xmm3[0],xmm7[1]
32 ; SSE-NEXT:    shufpd {{.*#+}} xmm3 = xmm3[1],xmm2[0]
33 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm4[0],xmm2[1]
34 ; SSE-NEXT:    shufpd {{.*#+}} xmm4 = xmm4[1],xmm1[0]
35 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm5[0],xmm1[1]
36 ; SSE-NEXT:    shufpd {{.*#+}} xmm5 = xmm5[1],xmm0[0]
37 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm6[0],xmm0[1]
38 ; SSE-NEXT:    movapd %xmm7, (%rsi)
39 ; SSE-NEXT:    movapd %xmm3, (%rdx)
40 ; SSE-NEXT:    movapd %xmm2, (%rcx)
41 ; SSE-NEXT:    movapd %xmm4, (%r8)
42 ; SSE-NEXT:    movapd %xmm1, (%r9)
43 ; SSE-NEXT:    movapd %xmm5, (%r10)
44 ; SSE-NEXT:    movapd %xmm0, (%rax)
45 ; SSE-NEXT:    retq
47 ; AVX1-ONLY-LABEL: load_i64_stride7_vf2:
48 ; AVX1-ONLY:       # %bb.0:
49 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
50 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %r10
51 ; AVX1-ONLY-NEXT:    vmovapd 16(%rdi), %xmm0
52 ; AVX1-ONLY-NEXT:    vmovaps 48(%rdi), %xmm1
53 ; AVX1-ONLY-NEXT:    vmovdqa 64(%rdi), %xmm2
54 ; AVX1-ONLY-NEXT:    vmovapd 80(%rdi), %xmm3
55 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm4 = mem[0,1],xmm1[2,3]
56 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm2 = mem[8,9,10,11,12,13,14,15],xmm2[0,1,2,3,4,5,6,7]
57 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm5 = xmm0[0],mem[1]
58 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm0[1],ymm3[0],ymm0[2],ymm3[2]
59 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm3 = mem[0],xmm3[1]
60 ; AVX1-ONLY-NEXT:    vmovdqa 96(%rdi), %xmm6
61 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm6 = mem[8,9,10,11,12,13,14,15],xmm6[0,1,2,3,4,5,6,7]
62 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],mem[2,3]
63 ; AVX1-ONLY-NEXT:    vmovaps %xmm4, (%rsi)
64 ; AVX1-ONLY-NEXT:    vmovdqa %xmm2, (%rdx)
65 ; AVX1-ONLY-NEXT:    vmovapd %xmm5, (%rcx)
66 ; AVX1-ONLY-NEXT:    vmovapd %xmm0, (%r8)
67 ; AVX1-ONLY-NEXT:    vmovapd %xmm3, (%r9)
68 ; AVX1-ONLY-NEXT:    vmovdqa %xmm6, (%r10)
69 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, (%rax)
70 ; AVX1-ONLY-NEXT:    vzeroupper
71 ; AVX1-ONLY-NEXT:    retq
73 ; AVX2-ONLY-LABEL: load_i64_stride7_vf2:
74 ; AVX2-ONLY:       # %bb.0:
75 ; AVX2-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
76 ; AVX2-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %r10
77 ; AVX2-ONLY-NEXT:    vmovdqa 64(%rdi), %ymm0
78 ; AVX2-ONLY-NEXT:    vmovaps 48(%rdi), %xmm1
79 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = mem[0,1],xmm1[2,3]
80 ; AVX2-ONLY-NEXT:    vmovdqa 64(%rdi), %xmm3
81 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm3 = mem[8,9,10,11,12,13,14,15],xmm3[0,1,2,3,4,5,6,7]
82 ; AVX2-ONLY-NEXT:    vmovaps 16(%rdi), %xmm4
83 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],mem[2,3]
84 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm0 = mem[8,9,10,11,12,13,14,15],ymm0[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm0[16,17,18,19,20,21,22,23]
85 ; AVX2-ONLY-NEXT:    vmovaps 32(%rdi), %xmm5
86 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm5 = xmm5[0,1],mem[2,3]
87 ; AVX2-ONLY-NEXT:    vmovdqa 96(%rdi), %xmm6
88 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm6 = mem[8,9,10,11,12,13,14,15],xmm6[0,1,2,3,4,5,6,7]
89 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],mem[2,3]
90 ; AVX2-ONLY-NEXT:    vmovaps %xmm2, (%rsi)
91 ; AVX2-ONLY-NEXT:    vmovdqa %xmm3, (%rdx)
92 ; AVX2-ONLY-NEXT:    vmovaps %xmm4, (%rcx)
93 ; AVX2-ONLY-NEXT:    vextracti128 $1, %ymm0, (%r8)
94 ; AVX2-ONLY-NEXT:    vmovaps %xmm5, (%r9)
95 ; AVX2-ONLY-NEXT:    vmovdqa %xmm6, (%r10)
96 ; AVX2-ONLY-NEXT:    vmovaps %xmm1, (%rax)
97 ; AVX2-ONLY-NEXT:    vzeroupper
98 ; AVX2-ONLY-NEXT:    retq
100 ; AVX512-LABEL: load_i64_stride7_vf2:
101 ; AVX512:       # %bb.0:
102 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax
103 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %r10
104 ; AVX512-NEXT:    vmovdqa (%rdi), %xmm0
105 ; AVX512-NEXT:    vmovdqa 16(%rdi), %xmm1
106 ; AVX512-NEXT:    vmovdqa 32(%rdi), %xmm2
107 ; AVX512-NEXT:    vmovdqa 48(%rdi), %xmm3
108 ; AVX512-NEXT:    vpblendd {{.*#+}} xmm4 = xmm0[0,1],xmm3[2,3]
109 ; AVX512-NEXT:    vmovdqa 64(%rdi), %xmm5
110 ; AVX512-NEXT:    vpalignr {{.*#+}} xmm0 = xmm0[8,9,10,11,12,13,14,15],xmm5[0,1,2,3,4,5,6,7]
111 ; AVX512-NEXT:    vpblendd {{.*#+}} xmm5 = xmm1[0,1],xmm5[2,3]
112 ; AVX512-NEXT:    vmovdqa 80(%rdi), %xmm6
113 ; AVX512-NEXT:    vpalignr {{.*#+}} xmm1 = xmm1[8,9,10,11,12,13,14,15],xmm6[0,1,2,3,4,5,6,7]
114 ; AVX512-NEXT:    vpblendd {{.*#+}} xmm6 = xmm2[0,1],xmm6[2,3]
115 ; AVX512-NEXT:    vmovdqa 96(%rdi), %xmm7
116 ; AVX512-NEXT:    vpalignr {{.*#+}} xmm2 = xmm2[8,9,10,11,12,13,14,15],xmm7[0,1,2,3,4,5,6,7]
117 ; AVX512-NEXT:    vpblendd {{.*#+}} xmm3 = xmm3[0,1],xmm7[2,3]
118 ; AVX512-NEXT:    vmovdqa %xmm4, (%rsi)
119 ; AVX512-NEXT:    vmovdqa %xmm0, (%rdx)
120 ; AVX512-NEXT:    vmovdqa %xmm5, (%rcx)
121 ; AVX512-NEXT:    vmovdqa %xmm1, (%r8)
122 ; AVX512-NEXT:    vmovdqa %xmm6, (%r9)
123 ; AVX512-NEXT:    vmovdqa %xmm2, (%r10)
124 ; AVX512-NEXT:    vmovdqa %xmm3, (%rax)
125 ; AVX512-NEXT:    retq
126   %wide.vec = load <14 x i64>, ptr %in.vec, align 64
127   %strided.vec0 = shufflevector <14 x i64> %wide.vec, <14 x i64> poison, <2 x i32> <i32 0, i32 7>
128   %strided.vec1 = shufflevector <14 x i64> %wide.vec, <14 x i64> poison, <2 x i32> <i32 1, i32 8>
129   %strided.vec2 = shufflevector <14 x i64> %wide.vec, <14 x i64> poison, <2 x i32> <i32 2, i32 9>
130   %strided.vec3 = shufflevector <14 x i64> %wide.vec, <14 x i64> poison, <2 x i32> <i32 3, i32 10>
131   %strided.vec4 = shufflevector <14 x i64> %wide.vec, <14 x i64> poison, <2 x i32> <i32 4, i32 11>
132   %strided.vec5 = shufflevector <14 x i64> %wide.vec, <14 x i64> poison, <2 x i32> <i32 5, i32 12>
133   %strided.vec6 = shufflevector <14 x i64> %wide.vec, <14 x i64> poison, <2 x i32> <i32 6, i32 13>
134   store <2 x i64> %strided.vec0, ptr %out.vec0, align 64
135   store <2 x i64> %strided.vec1, ptr %out.vec1, align 64
136   store <2 x i64> %strided.vec2, ptr %out.vec2, align 64
137   store <2 x i64> %strided.vec3, ptr %out.vec3, align 64
138   store <2 x i64> %strided.vec4, ptr %out.vec4, align 64
139   store <2 x i64> %strided.vec5, ptr %out.vec5, align 64
140   store <2 x i64> %strided.vec6, ptr %out.vec6, align 64
141   ret void
144 define void @load_i64_stride7_vf4(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4, ptr %out.vec5, ptr %out.vec6) nounwind {
145 ; SSE-LABEL: load_i64_stride7_vf4:
146 ; SSE:       # %bb.0:
147 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
148 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %r10
149 ; SSE-NEXT:    movapd 208(%rdi), %xmm1
150 ; SSE-NEXT:    movapd 96(%rdi), %xmm0
151 ; SSE-NEXT:    movapd 144(%rdi), %xmm2
152 ; SSE-NEXT:    movapd 192(%rdi), %xmm4
153 ; SSE-NEXT:    movapd 80(%rdi), %xmm3
154 ; SSE-NEXT:    movapd 128(%rdi), %xmm5
155 ; SSE-NEXT:    movapd 176(%rdi), %xmm8
156 ; SSE-NEXT:    movapd 64(%rdi), %xmm7
157 ; SSE-NEXT:    movapd (%rdi), %xmm10
158 ; SSE-NEXT:    movapd 16(%rdi), %xmm9
159 ; SSE-NEXT:    movapd 32(%rdi), %xmm6
160 ; SSE-NEXT:    movapd 48(%rdi), %xmm11
161 ; SSE-NEXT:    movapd 112(%rdi), %xmm12
162 ; SSE-NEXT:    movapd 160(%rdi), %xmm13
163 ; SSE-NEXT:    movapd %xmm13, %xmm14
164 ; SSE-NEXT:    movsd {{.*#+}} xmm14 = xmm12[0],xmm14[1]
165 ; SSE-NEXT:    movapd %xmm11, %xmm15
166 ; SSE-NEXT:    movsd {{.*#+}} xmm15 = xmm10[0],xmm15[1]
167 ; SSE-NEXT:    shufpd {{.*#+}} xmm10 = xmm10[1],xmm7[0]
168 ; SSE-NEXT:    shufpd {{.*#+}} xmm12 = xmm12[1],xmm8[0]
169 ; SSE-NEXT:    movsd {{.*#+}} xmm7 = xmm9[0],xmm7[1]
170 ; SSE-NEXT:    movsd {{.*#+}} xmm8 = xmm5[0],xmm8[1]
171 ; SSE-NEXT:    shufpd {{.*#+}} xmm9 = xmm9[1],xmm3[0]
172 ; SSE-NEXT:    shufpd {{.*#+}} xmm5 = xmm5[1],xmm4[0]
173 ; SSE-NEXT:    movsd {{.*#+}} xmm3 = xmm6[0],xmm3[1]
174 ; SSE-NEXT:    movsd {{.*#+}} xmm4 = xmm2[0],xmm4[1]
175 ; SSE-NEXT:    shufpd {{.*#+}} xmm6 = xmm6[1],xmm0[0]
176 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
177 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm11[0],xmm0[1]
178 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm13[0],xmm1[1]
179 ; SSE-NEXT:    movapd %xmm14, 16(%rsi)
180 ; SSE-NEXT:    movapd %xmm15, (%rsi)
181 ; SSE-NEXT:    movapd %xmm12, 16(%rdx)
182 ; SSE-NEXT:    movapd %xmm10, (%rdx)
183 ; SSE-NEXT:    movapd %xmm8, 16(%rcx)
184 ; SSE-NEXT:    movapd %xmm7, (%rcx)
185 ; SSE-NEXT:    movapd %xmm5, 16(%r8)
186 ; SSE-NEXT:    movapd %xmm9, (%r8)
187 ; SSE-NEXT:    movapd %xmm4, 16(%r9)
188 ; SSE-NEXT:    movapd %xmm3, (%r9)
189 ; SSE-NEXT:    movapd %xmm2, 16(%r10)
190 ; SSE-NEXT:    movapd %xmm6, (%r10)
191 ; SSE-NEXT:    movapd %xmm1, 16(%rax)
192 ; SSE-NEXT:    movapd %xmm0, (%rax)
193 ; SSE-NEXT:    retq
195 ; AVX1-ONLY-LABEL: load_i64_stride7_vf4:
196 ; AVX1-ONLY:       # %bb.0:
197 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
198 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %r10
199 ; AVX1-ONLY-NEXT:    vmovapd 192(%rdi), %ymm0
200 ; AVX1-ONLY-NEXT:    vmovapd 128(%rdi), %ymm2
201 ; AVX1-ONLY-NEXT:    vmovapd 160(%rdi), %ymm4
202 ; AVX1-ONLY-NEXT:    vmovapd 96(%rdi), %ymm5
203 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 160(%rdi), %ymm0, %ymm1
204 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm6 = ymm5[0,1,2],ymm1[3]
205 ; AVX1-ONLY-NEXT:    vmovapd 16(%rdi), %xmm7
206 ; AVX1-ONLY-NEXT:    vmovapd 48(%rdi), %xmm3
207 ; AVX1-ONLY-NEXT:    vmovdqa 64(%rdi), %xmm8
208 ; AVX1-ONLY-NEXT:    vmovapd 80(%rdi), %xmm9
209 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm10 = mem[0],xmm3[1]
210 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm6 = ymm10[0,1],ymm6[2,3]
211 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm5 = ymm5[0],ymm4[0],ymm5[3],ymm4[2]
212 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm8 = mem[8,9,10,11,12,13,14,15],xmm8[0,1,2,3,4,5,6,7]
213 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm5 = ymm8[0,1],ymm5[2,3]
214 ; AVX1-ONLY-NEXT:    vmovdqa 128(%rdi), %xmm8
215 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm10
216 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm4 = ymm10[0,1,2],ymm4[3]
217 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm10 = xmm7[0],mem[1]
218 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm4 = ymm10[0,1],ymm4[2,3]
219 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm7 = ymm7[1],ymm9[0],ymm7[2],ymm9[2]
220 ; AVX1-ONLY-NEXT:    vmovdqa 192(%rdi), %xmm10
221 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm8 = xmm8[8,9,10,11,12,13,14,15],xmm10[0,1,2,3,4,5,6,7]
222 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm8
223 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm7 = ymm7[0,1],ymm8[2,3]
224 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm8
225 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm8 = ymm2[0,1,2],ymm8[3]
226 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm9 = mem[0],xmm9[1]
227 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm8 = ymm9[0,1],ymm8[2,3]
228 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm2 = ymm2[0],ymm0[0],ymm2[3],ymm0[2]
229 ; AVX1-ONLY-NEXT:    vmovdqa 96(%rdi), %xmm9
230 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm9 = mem[8,9,10,11,12,13,14,15],xmm9[0,1,2,3,4,5,6,7]
231 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm9[0,1],ymm2[2,3]
232 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3]
233 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm1 = xmm3[0],mem[1]
234 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
235 ; AVX1-ONLY-NEXT:    vmovapd %ymm6, (%rsi)
236 ; AVX1-ONLY-NEXT:    vmovapd %ymm5, (%rdx)
237 ; AVX1-ONLY-NEXT:    vmovapd %ymm4, (%rcx)
238 ; AVX1-ONLY-NEXT:    vmovapd %ymm7, (%r8)
239 ; AVX1-ONLY-NEXT:    vmovapd %ymm8, (%r9)
240 ; AVX1-ONLY-NEXT:    vmovapd %ymm2, (%r10)
241 ; AVX1-ONLY-NEXT:    vmovapd %ymm0, (%rax)
242 ; AVX1-ONLY-NEXT:    vzeroupper
243 ; AVX1-ONLY-NEXT:    retq
245 ; AVX2-ONLY-LABEL: load_i64_stride7_vf4:
246 ; AVX2-ONLY:       # %bb.0:
247 ; AVX2-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
248 ; AVX2-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %r10
249 ; AVX2-ONLY-NEXT:    vmovdqa 192(%rdi), %ymm0
250 ; AVX2-ONLY-NEXT:    vmovdqa 128(%rdi), %ymm2
251 ; AVX2-ONLY-NEXT:    vmovdqa 64(%rdi), %ymm5
252 ; AVX2-ONLY-NEXT:    vmovdqa 160(%rdi), %ymm6
253 ; AVX2-ONLY-NEXT:    vmovdqa 96(%rdi), %ymm7
254 ; AVX2-ONLY-NEXT:    vmovdqa 160(%rdi), %xmm1
255 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm3
256 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm4 = ymm7[0,1,2,3,4,5],ymm3[6,7]
257 ; AVX2-ONLY-NEXT:    vmovdqa 48(%rdi), %xmm3
258 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm8 = mem[0,1],xmm3[2,3]
259 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm4 = ymm8[0,1,2,3],ymm4[4,5,6,7]
260 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm7 = ymm7[8,9,10,11,12,13,14,15],ymm6[0,1,2,3,4,5,6,7],ymm7[24,25,26,27,28,29,30,31],ymm6[16,17,18,19,20,21,22,23]
261 ; AVX2-ONLY-NEXT:    vmovdqa 64(%rdi), %xmm8
262 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm8 = mem[8,9,10,11,12,13,14,15],xmm8[0,1,2,3,4,5,6,7]
263 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]
264 ; AVX2-ONLY-NEXT:    vpbroadcastq 128(%rdi), %ymm8
265 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm6 = ymm8[1],ymm6[1],ymm8[3],ymm6[3]
266 ; AVX2-ONLY-NEXT:    vmovdqa 16(%rdi), %xmm8
267 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm8 = xmm8[0,1],mem[2,3]
268 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm6 = ymm8[0,1,2,3],ymm6[4,5,6,7]
269 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm5 = mem[8,9,10,11,12,13,14,15],ymm5[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm5[16,17,18,19,20,21,22,23]
270 ; AVX2-ONLY-NEXT:    vmovdqa 192(%rdi), %xmm8
271 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm9 = mem[8,9,10,11,12,13,14,15],xmm8[0,1,2,3,4,5,6,7]
272 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm9, %ymm0, %ymm9
273 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm5 = ymm5[2,3],ymm9[2,3]
274 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm8, %ymm0, %ymm8
275 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm8 = ymm2[0,1,2,3,4,5],ymm8[6,7]
276 ; AVX2-ONLY-NEXT:    vmovdqa 32(%rdi), %xmm9
277 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm9 = xmm9[0,1],mem[2,3]
278 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm8 = ymm9[0,1,2,3],ymm8[4,5,6,7]
279 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm2 = ymm2[8,9,10,11,12,13,14,15],ymm0[0,1,2,3,4,5,6,7],ymm2[24,25,26,27,28,29,30,31],ymm0[16,17,18,19,20,21,22,23]
280 ; AVX2-ONLY-NEXT:    vmovdqa 96(%rdi), %xmm9
281 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm9 = mem[8,9,10,11,12,13,14,15],xmm9[0,1,2,3,4,5,6,7]
282 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm9[0,1,2,3],ymm2[4,5,6,7]
283 ; AVX2-ONLY-NEXT:    vpbroadcastq %xmm1, %ymm1
284 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
285 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = xmm3[0,1],mem[2,3]
286 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
287 ; AVX2-ONLY-NEXT:    vmovdqa %ymm4, (%rsi)
288 ; AVX2-ONLY-NEXT:    vmovdqa %ymm7, (%rdx)
289 ; AVX2-ONLY-NEXT:    vmovdqa %ymm6, (%rcx)
290 ; AVX2-ONLY-NEXT:    vmovdqa %ymm5, (%r8)
291 ; AVX2-ONLY-NEXT:    vmovdqa %ymm8, (%r9)
292 ; AVX2-ONLY-NEXT:    vmovdqa %ymm2, (%r10)
293 ; AVX2-ONLY-NEXT:    vmovdqa %ymm0, (%rax)
294 ; AVX2-ONLY-NEXT:    vzeroupper
295 ; AVX2-ONLY-NEXT:    retq
297 ; AVX512-SLOW-LABEL: load_i64_stride7_vf4:
298 ; AVX512-SLOW:       # %bb.0:
299 ; AVX512-SLOW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
300 ; AVX512-SLOW-NEXT:    movq {{[0-9]+}}(%rsp), %r10
301 ; AVX512-SLOW-NEXT:    vmovdqa64 128(%rdi), %zmm3
302 ; AVX512-SLOW-NEXT:    vmovdqa64 64(%rdi), %zmm4
303 ; AVX512-SLOW-NEXT:    vmovdqa64 (%rdi), %zmm5
304 ; AVX512-SLOW-NEXT:    vinserti128 $1, 160(%rdi), %ymm0, %ymm0
305 ; AVX512-SLOW-NEXT:    vmovdqa {{.*#+}} ymm1 = [0,7,14,u]
306 ; AVX512-SLOW-NEXT:    vpermi2q %zmm4, %zmm5, %zmm1
307 ; AVX512-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
308 ; AVX512-SLOW-NEXT:    vmovdqa {{.*#+}} ymm1 = [9,0,7,u]
309 ; AVX512-SLOW-NEXT:    vpermi2q %zmm5, %zmm4, %zmm1
310 ; AVX512-SLOW-NEXT:    vpbroadcastq 176(%rdi), %ymm2
311 ; AVX512-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
312 ; AVX512-SLOW-NEXT:    vmovdqa 128(%rdi), %xmm6
313 ; AVX512-SLOW-NEXT:    vpbroadcastq %xmm6, %ymm2
314 ; AVX512-SLOW-NEXT:    vpunpckhqdq {{.*#+}} ymm2 = ymm2[1],mem[1],ymm2[3],mem[3]
315 ; AVX512-SLOW-NEXT:    vmovdqa 16(%rdi), %xmm7
316 ; AVX512-SLOW-NEXT:    vpblendd {{.*#+}} xmm7 = xmm7[0,1],mem[2,3]
317 ; AVX512-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm7[0,1,2,3],ymm2[4,5,6,7]
318 ; AVX512-SLOW-NEXT:    vmovdqa 64(%rdi), %ymm7
319 ; AVX512-SLOW-NEXT:    vpalignr {{.*#+}} ymm7 = mem[8,9,10,11,12,13,14,15],ymm7[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm7[16,17,18,19,20,21,22,23]
320 ; AVX512-SLOW-NEXT:    vmovdqa 192(%rdi), %xmm8
321 ; AVX512-SLOW-NEXT:    vpalignr {{.*#+}} xmm6 = xmm6[8,9,10,11,12,13,14,15],xmm8[0,1,2,3,4,5,6,7]
322 ; AVX512-SLOW-NEXT:    vinserti128 $1, %xmm6, %ymm0, %ymm6
323 ; AVX512-SLOW-NEXT:    vperm2i128 {{.*#+}} ymm6 = ymm7[2,3],ymm6[2,3]
324 ; AVX512-SLOW-NEXT:    vinserti128 $1, %xmm8, %ymm0, %ymm7
325 ; AVX512-SLOW-NEXT:    vmovdqa 128(%rdi), %ymm8
326 ; AVX512-SLOW-NEXT:    vpblendd {{.*#+}} ymm7 = ymm8[0,1,2,3,4,5],ymm7[6,7]
327 ; AVX512-SLOW-NEXT:    vmovdqa {{.*#+}} xmm9 = [4,11]
328 ; AVX512-SLOW-NEXT:    vpermi2q %zmm4, %zmm5, %zmm9
329 ; AVX512-SLOW-NEXT:    vpblendd {{.*#+}} ymm7 = ymm9[0,1,2,3],ymm7[4,5,6,7]
330 ; AVX512-SLOW-NEXT:    vmovdqa 192(%rdi), %ymm9
331 ; AVX512-SLOW-NEXT:    vpalignr {{.*#+}} ymm8 = ymm8[8,9,10,11,12,13,14,15],ymm9[0,1,2,3,4,5,6,7],ymm8[24,25,26,27,28,29,30,31],ymm9[16,17,18,19,20,21,22,23]
332 ; AVX512-SLOW-NEXT:    vmovdqa {{.*#+}} xmm9 = [5,12]
333 ; AVX512-SLOW-NEXT:    vpermi2q %zmm4, %zmm5, %zmm9
334 ; AVX512-SLOW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm9[0,1,2,3],ymm8[4,5,6,7]
335 ; AVX512-SLOW-NEXT:    vbroadcasti128 {{.*#+}} ymm9 = [4,11,4,11]
336 ; AVX512-SLOW-NEXT:    # ymm9 = mem[0,1,0,1]
337 ; AVX512-SLOW-NEXT:    vpermi2q 192(%rdi), %zmm3, %zmm9
338 ; AVX512-SLOW-NEXT:    vmovdqa {{.*#+}} xmm3 = [6,13]
339 ; AVX512-SLOW-NEXT:    vpermi2q %zmm4, %zmm5, %zmm3
340 ; AVX512-SLOW-NEXT:    vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm9[4,5,6,7]
341 ; AVX512-SLOW-NEXT:    vmovdqa %ymm0, (%rsi)
342 ; AVX512-SLOW-NEXT:    vmovdqa %ymm1, (%rdx)
343 ; AVX512-SLOW-NEXT:    vmovdqa %ymm2, (%rcx)
344 ; AVX512-SLOW-NEXT:    vmovdqa %ymm6, (%r8)
345 ; AVX512-SLOW-NEXT:    vmovdqa %ymm7, (%r9)
346 ; AVX512-SLOW-NEXT:    vmovdqa %ymm8, (%r10)
347 ; AVX512-SLOW-NEXT:    vmovdqa %ymm3, (%rax)
348 ; AVX512-SLOW-NEXT:    vzeroupper
349 ; AVX512-SLOW-NEXT:    retq
351 ; AVX512-FAST-LABEL: load_i64_stride7_vf4:
352 ; AVX512-FAST:       # %bb.0:
353 ; AVX512-FAST-NEXT:    movq {{[0-9]+}}(%rsp), %rax
354 ; AVX512-FAST-NEXT:    movq {{[0-9]+}}(%rsp), %r10
355 ; AVX512-FAST-NEXT:    vmovdqa64 128(%rdi), %zmm3
356 ; AVX512-FAST-NEXT:    vmovdqa64 64(%rdi), %zmm4
357 ; AVX512-FAST-NEXT:    vmovdqa64 (%rdi), %zmm5
358 ; AVX512-FAST-NEXT:    vinserti128 $1, 160(%rdi), %ymm0, %ymm0
359 ; AVX512-FAST-NEXT:    vmovdqa {{.*#+}} ymm1 = [0,7,14,u]
360 ; AVX512-FAST-NEXT:    vpermi2q %zmm4, %zmm5, %zmm1
361 ; AVX512-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
362 ; AVX512-FAST-NEXT:    vmovdqa {{.*#+}} ymm1 = [9,0,7,u]
363 ; AVX512-FAST-NEXT:    vpermi2q %zmm5, %zmm4, %zmm1
364 ; AVX512-FAST-NEXT:    vpbroadcastq 176(%rdi), %ymm2
365 ; AVX512-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
366 ; AVX512-FAST-NEXT:    vbroadcasti128 {{.*#+}} ymm2 = [0,7,0,7]
367 ; AVX512-FAST-NEXT:    # ymm2 = mem[0,1,0,1]
368 ; AVX512-FAST-NEXT:    vmovdqa 128(%rdi), %ymm6
369 ; AVX512-FAST-NEXT:    vpermi2q 160(%rdi), %ymm6, %ymm2
370 ; AVX512-FAST-NEXT:    vmovdqa 16(%rdi), %xmm7
371 ; AVX512-FAST-NEXT:    vpblendd {{.*#+}} xmm7 = xmm7[0,1],mem[2,3]
372 ; AVX512-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm7[0,1,2,3],ymm2[4,5,6,7]
373 ; AVX512-FAST-NEXT:    vmovdqa 64(%rdi), %ymm7
374 ; AVX512-FAST-NEXT:    vpalignr {{.*#+}} ymm7 = mem[8,9,10,11,12,13,14,15],ymm7[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm7[16,17,18,19,20,21,22,23]
375 ; AVX512-FAST-NEXT:    vmovdqa 192(%rdi), %xmm8
376 ; AVX512-FAST-NEXT:    vpalignr {{.*#+}} xmm9 = mem[8,9,10,11,12,13,14,15],xmm8[0,1,2,3,4,5,6,7]
377 ; AVX512-FAST-NEXT:    vinserti128 $1, %xmm9, %ymm0, %ymm9
378 ; AVX512-FAST-NEXT:    vperm2i128 {{.*#+}} ymm7 = ymm7[2,3],ymm9[2,3]
379 ; AVX512-FAST-NEXT:    vinserti128 $1, %xmm8, %ymm0, %ymm8
380 ; AVX512-FAST-NEXT:    vpblendd {{.*#+}} ymm8 = ymm6[0,1,2,3,4,5],ymm8[6,7]
381 ; AVX512-FAST-NEXT:    vmovdqa {{.*#+}} xmm9 = [4,11]
382 ; AVX512-FAST-NEXT:    vpermi2q %zmm4, %zmm5, %zmm9
383 ; AVX512-FAST-NEXT:    vpblendd {{.*#+}} ymm8 = ymm9[0,1,2,3],ymm8[4,5,6,7]
384 ; AVX512-FAST-NEXT:    vmovdqa 192(%rdi), %ymm9
385 ; AVX512-FAST-NEXT:    vpalignr {{.*#+}} ymm6 = ymm6[8,9,10,11,12,13,14,15],ymm9[0,1,2,3,4,5,6,7],ymm6[24,25,26,27,28,29,30,31],ymm9[16,17,18,19,20,21,22,23]
386 ; AVX512-FAST-NEXT:    vmovdqa {{.*#+}} xmm9 = [5,12]
387 ; AVX512-FAST-NEXT:    vpermi2q %zmm4, %zmm5, %zmm9
388 ; AVX512-FAST-NEXT:    vpblendd {{.*#+}} ymm6 = ymm9[0,1,2,3],ymm6[4,5,6,7]
389 ; AVX512-FAST-NEXT:    vbroadcasti128 {{.*#+}} ymm9 = [4,11,4,11]
390 ; AVX512-FAST-NEXT:    # ymm9 = mem[0,1,0,1]
391 ; AVX512-FAST-NEXT:    vpermi2q 192(%rdi), %zmm3, %zmm9
392 ; AVX512-FAST-NEXT:    vmovdqa {{.*#+}} xmm3 = [6,13]
393 ; AVX512-FAST-NEXT:    vpermi2q %zmm4, %zmm5, %zmm3
394 ; AVX512-FAST-NEXT:    vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm9[4,5,6,7]
395 ; AVX512-FAST-NEXT:    vmovdqa %ymm0, (%rsi)
396 ; AVX512-FAST-NEXT:    vmovdqa %ymm1, (%rdx)
397 ; AVX512-FAST-NEXT:    vmovdqa %ymm2, (%rcx)
398 ; AVX512-FAST-NEXT:    vmovdqa %ymm7, (%r8)
399 ; AVX512-FAST-NEXT:    vmovdqa %ymm8, (%r9)
400 ; AVX512-FAST-NEXT:    vmovdqa %ymm6, (%r10)
401 ; AVX512-FAST-NEXT:    vmovdqa %ymm3, (%rax)
402 ; AVX512-FAST-NEXT:    vzeroupper
403 ; AVX512-FAST-NEXT:    retq
404   %wide.vec = load <28 x i64>, ptr %in.vec, align 64
405   %strided.vec0 = shufflevector <28 x i64> %wide.vec, <28 x i64> poison, <4 x i32> <i32 0, i32 7, i32 14, i32 21>
406   %strided.vec1 = shufflevector <28 x i64> %wide.vec, <28 x i64> poison, <4 x i32> <i32 1, i32 8, i32 15, i32 22>
407   %strided.vec2 = shufflevector <28 x i64> %wide.vec, <28 x i64> poison, <4 x i32> <i32 2, i32 9, i32 16, i32 23>
408   %strided.vec3 = shufflevector <28 x i64> %wide.vec, <28 x i64> poison, <4 x i32> <i32 3, i32 10, i32 17, i32 24>
409   %strided.vec4 = shufflevector <28 x i64> %wide.vec, <28 x i64> poison, <4 x i32> <i32 4, i32 11, i32 18, i32 25>
410   %strided.vec5 = shufflevector <28 x i64> %wide.vec, <28 x i64> poison, <4 x i32> <i32 5, i32 12, i32 19, i32 26>
411   %strided.vec6 = shufflevector <28 x i64> %wide.vec, <28 x i64> poison, <4 x i32> <i32 6, i32 13, i32 20, i32 27>
412   store <4 x i64> %strided.vec0, ptr %out.vec0, align 64
413   store <4 x i64> %strided.vec1, ptr %out.vec1, align 64
414   store <4 x i64> %strided.vec2, ptr %out.vec2, align 64
415   store <4 x i64> %strided.vec3, ptr %out.vec3, align 64
416   store <4 x i64> %strided.vec4, ptr %out.vec4, align 64
417   store <4 x i64> %strided.vec5, ptr %out.vec5, align 64
418   store <4 x i64> %strided.vec6, ptr %out.vec6, align 64
419   ret void
422 define void @load_i64_stride7_vf8(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4, ptr %out.vec5, ptr %out.vec6) nounwind {
423 ; SSE-LABEL: load_i64_stride7_vf8:
424 ; SSE:       # %bb.0:
425 ; SSE-NEXT:    subq $88, %rsp
426 ; SSE-NEXT:    movapd 320(%rdi), %xmm1
427 ; SSE-NEXT:    movapd 208(%rdi), %xmm0
428 ; SSE-NEXT:    movapd 256(%rdi), %xmm3
429 ; SSE-NEXT:    movapd 144(%rdi), %xmm2
430 ; SSE-NEXT:    movapd 304(%rdi), %xmm5
431 ; SSE-NEXT:    movapd 192(%rdi), %xmm4
432 ; SSE-NEXT:    movapd 240(%rdi), %xmm7
433 ; SSE-NEXT:    movapd 128(%rdi), %xmm6
434 ; SSE-NEXT:    movapd 288(%rdi), %xmm9
435 ; SSE-NEXT:    movapd 176(%rdi), %xmm8
436 ; SSE-NEXT:    movapd 336(%rdi), %xmm10
437 ; SSE-NEXT:    movapd 224(%rdi), %xmm11
438 ; SSE-NEXT:    movapd 272(%rdi), %xmm14
439 ; SSE-NEXT:    movapd 112(%rdi), %xmm13
440 ; SSE-NEXT:    movapd 160(%rdi), %xmm15
441 ; SSE-NEXT:    movapd %xmm15, %xmm12
442 ; SSE-NEXT:    movsd {{.*#+}} xmm12 = xmm13[0],xmm12[1]
443 ; SSE-NEXT:    movapd %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
444 ; SSE-NEXT:    shufpd {{.*#+}} xmm13 = xmm13[1],xmm8[0]
445 ; SSE-NEXT:    movsd {{.*#+}} xmm8 = xmm6[0],xmm8[1]
446 ; SSE-NEXT:    movapd %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
447 ; SSE-NEXT:    shufpd {{.*#+}} xmm6 = xmm6[1],xmm4[0]
448 ; SSE-NEXT:    movapd %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
449 ; SSE-NEXT:    movsd {{.*#+}} xmm4 = xmm2[0],xmm4[1]
450 ; SSE-NEXT:    movapd %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
451 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm0[0]
452 ; SSE-NEXT:    movapd %xmm2, (%rsp) # 16-byte Spill
453 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm15[0],xmm0[1]
454 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
455 ; SSE-NEXT:    movapd %xmm14, %xmm12
456 ; SSE-NEXT:    movsd {{.*#+}} xmm12 = xmm11[0],xmm12[1]
457 ; SSE-NEXT:    shufpd {{.*#+}} xmm11 = xmm11[1],xmm9[0]
458 ; SSE-NEXT:    movapd %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
459 ; SSE-NEXT:    movsd {{.*#+}} xmm9 = xmm7[0],xmm9[1]
460 ; SSE-NEXT:    movapd %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
461 ; SSE-NEXT:    shufpd {{.*#+}} xmm7 = xmm7[1],xmm5[0]
462 ; SSE-NEXT:    movapd %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
463 ; SSE-NEXT:    movsd {{.*#+}} xmm5 = xmm3[0],xmm5[1]
464 ; SSE-NEXT:    movapd %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
465 ; SSE-NEXT:    shufpd {{.*#+}} xmm3 = xmm3[1],xmm1[0]
466 ; SSE-NEXT:    movapd %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
467 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm14[0],xmm1[1]
468 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
469 ; SSE-NEXT:    movapd 384(%rdi), %xmm2
470 ; SSE-NEXT:    movapd %xmm2, %xmm11
471 ; SSE-NEXT:    movsd {{.*#+}} xmm11 = xmm10[0],xmm11[1]
472 ; SSE-NEXT:    movapd 400(%rdi), %xmm7
473 ; SSE-NEXT:    shufpd {{.*#+}} xmm10 = xmm10[1],xmm7[0]
474 ; SSE-NEXT:    movapd %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
475 ; SSE-NEXT:    movapd 352(%rdi), %xmm8
476 ; SSE-NEXT:    movsd {{.*#+}} xmm7 = xmm8[0],xmm7[1]
477 ; SSE-NEXT:    movapd 416(%rdi), %xmm10
478 ; SSE-NEXT:    shufpd {{.*#+}} xmm8 = xmm8[1],xmm10[0]
479 ; SSE-NEXT:    movapd 368(%rdi), %xmm15
480 ; SSE-NEXT:    movsd {{.*#+}} xmm10 = xmm15[0],xmm10[1]
481 ; SSE-NEXT:    movapd 432(%rdi), %xmm14
482 ; SSE-NEXT:    shufpd {{.*#+}} xmm15 = xmm15[1],xmm14[0]
483 ; SSE-NEXT:    movsd {{.*#+}} xmm14 = xmm2[0],xmm14[1]
484 ; SSE-NEXT:    movapd (%rdi), %xmm2
485 ; SSE-NEXT:    movapd 48(%rdi), %xmm9
486 ; SSE-NEXT:    movapd %xmm9, %xmm3
487 ; SSE-NEXT:    movsd {{.*#+}} xmm3 = xmm2[0],xmm3[1]
488 ; SSE-NEXT:    movapd 64(%rdi), %xmm0
489 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm0[0]
490 ; SSE-NEXT:    movapd 16(%rdi), %xmm1
491 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
492 ; SSE-NEXT:    movapd 80(%rdi), %xmm4
493 ; SSE-NEXT:    shufpd {{.*#+}} xmm1 = xmm1[1],xmm4[0]
494 ; SSE-NEXT:    movapd 32(%rdi), %xmm5
495 ; SSE-NEXT:    movsd {{.*#+}} xmm4 = xmm5[0],xmm4[1]
496 ; SSE-NEXT:    movapd 96(%rdi), %xmm6
497 ; SSE-NEXT:    shufpd {{.*#+}} xmm5 = xmm5[1],xmm6[0]
498 ; SSE-NEXT:    movsd {{.*#+}} xmm6 = xmm9[0],xmm6[1]
499 ; SSE-NEXT:    movapd %xmm3, (%rsi)
500 ; SSE-NEXT:    movapd %xmm11, 48(%rsi)
501 ; SSE-NEXT:    movapd %xmm12, 32(%rsi)
502 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
503 ; SSE-NEXT:    movaps %xmm3, 16(%rsi)
504 ; SSE-NEXT:    movapd %xmm2, (%rdx)
505 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
506 ; SSE-NEXT:    movaps %xmm2, 48(%rdx)
507 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
508 ; SSE-NEXT:    movaps %xmm2, 32(%rdx)
509 ; SSE-NEXT:    movapd %xmm13, 16(%rdx)
510 ; SSE-NEXT:    movapd %xmm0, (%rcx)
511 ; SSE-NEXT:    movapd %xmm7, 48(%rcx)
512 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
513 ; SSE-NEXT:    movaps %xmm0, 32(%rcx)
514 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
515 ; SSE-NEXT:    movaps %xmm0, 16(%rcx)
516 ; SSE-NEXT:    movapd %xmm1, (%r8)
517 ; SSE-NEXT:    movapd %xmm8, 48(%r8)
518 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
519 ; SSE-NEXT:    movaps %xmm0, 32(%r8)
520 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
521 ; SSE-NEXT:    movaps %xmm0, 16(%r8)
522 ; SSE-NEXT:    movapd %xmm4, (%r9)
523 ; SSE-NEXT:    movapd %xmm10, 48(%r9)
524 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
525 ; SSE-NEXT:    movaps %xmm0, 32(%r9)
526 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
527 ; SSE-NEXT:    movaps %xmm0, 16(%r9)
528 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
529 ; SSE-NEXT:    movapd %xmm5, (%rax)
530 ; SSE-NEXT:    movapd %xmm15, 48(%rax)
531 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
532 ; SSE-NEXT:    movaps %xmm0, 32(%rax)
533 ; SSE-NEXT:    movaps (%rsp), %xmm0 # 16-byte Reload
534 ; SSE-NEXT:    movaps %xmm0, 16(%rax)
535 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
536 ; SSE-NEXT:    movapd %xmm6, (%rax)
537 ; SSE-NEXT:    movapd %xmm14, 48(%rax)
538 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
539 ; SSE-NEXT:    movaps %xmm0, 32(%rax)
540 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
541 ; SSE-NEXT:    movaps %xmm0, 16(%rax)
542 ; SSE-NEXT:    addq $88, %rsp
543 ; SSE-NEXT:    retq
545 ; AVX1-ONLY-LABEL: load_i64_stride7_vf8:
546 ; AVX1-ONLY:       # %bb.0:
547 ; AVX1-ONLY-NEXT:    vmovapd 384(%rdi), %ymm9
548 ; AVX1-ONLY-NEXT:    vmovapd 160(%rdi), %ymm8
549 ; AVX1-ONLY-NEXT:    vmovapd 320(%rdi), %ymm7
550 ; AVX1-ONLY-NEXT:    vmovapd 96(%rdi), %ymm6
551 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 160(%rdi), %ymm0, %ymm0
552 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
553 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm6[0,1,2],ymm0[3]
554 ; AVX1-ONLY-NEXT:    vmovdqa 16(%rdi), %xmm11
555 ; AVX1-ONLY-NEXT:    vmovapd 48(%rdi), %xmm1
556 ; AVX1-ONLY-NEXT:    vmovapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
557 ; AVX1-ONLY-NEXT:    vmovdqa 64(%rdi), %xmm12
558 ; AVX1-ONLY-NEXT:    vmovapd 80(%rdi), %xmm10
559 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm3 = mem[0],xmm1[1]
560 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm3[0,1],ymm0[2,3]
561 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
562 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 384(%rdi), %ymm0, %ymm3
563 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm5 = ymm7[0,1,2],ymm3[3]
564 ; AVX1-ONLY-NEXT:    vmovapd 224(%rdi), %xmm13
565 ; AVX1-ONLY-NEXT:    vmovapd 272(%rdi), %xmm4
566 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm14 = xmm13[0],xmm4[1]
567 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm14[0,1],ymm5[2,3]
568 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
569 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm6 = ymm6[0],ymm8[0],ymm6[3],ymm8[2]
570 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm14 = mem[8,9,10,11,12,13,14,15],xmm12[0,1,2,3,4,5,6,7]
571 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm6 = ymm14[0,1],ymm6[2,3]
572 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm7 = ymm7[0],ymm9[0],ymm7[3],ymm9[2]
573 ; AVX1-ONLY-NEXT:    vmovdqa 288(%rdi), %xmm14
574 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm13 = xmm13[8,9,10,11,12,13,14,15],xmm14[0,1,2,3,4,5,6,7]
575 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm7 = ymm13[0,1],ymm7[2,3]
576 ; AVX1-ONLY-NEXT:    vmovdqa 128(%rdi), %xmm13
577 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm13, %ymm0, %ymm14
578 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm8 = ymm14[0,1,2],ymm8[3]
579 ; AVX1-ONLY-NEXT:    vpblendw {{.*#+}} xmm12 = xmm11[0,1,2,3],xmm12[4,5,6,7]
580 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm8 = ymm12[0,1],ymm8[2,3]
581 ; AVX1-ONLY-NEXT:    vmovdqa 352(%rdi), %xmm12
582 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm14
583 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm9 = ymm14[0,1,2],ymm9[3]
584 ; AVX1-ONLY-NEXT:    vmovapd 240(%rdi), %xmm14
585 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm15 = xmm14[0],mem[1]
586 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm9 = ymm15[0,1],ymm9[2,3]
587 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm11 = ymm11[1],ymm10[0],ymm11[2],ymm10[2]
588 ; AVX1-ONLY-NEXT:    vmovdqa 192(%rdi), %xmm15
589 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm13 = xmm13[8,9,10,11,12,13,14,15],xmm15[0,1,2,3,4,5,6,7]
590 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm13, %ymm0, %ymm13
591 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm11 = ymm11[0,1],ymm13[2,3]
592 ; AVX1-ONLY-NEXT:    vmovapd 304(%rdi), %xmm13
593 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm14 = ymm14[1],ymm13[0],ymm14[2],ymm13[2]
594 ; AVX1-ONLY-NEXT:    vmovdqa 416(%rdi), %xmm0
595 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm12 = xmm12[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
596 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm12
597 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm12 = ymm14[0,1],ymm12[2,3]
598 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm14
599 ; AVX1-ONLY-NEXT:    vmovapd 128(%rdi), %ymm15
600 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm14 = ymm15[0,1,2],ymm14[3]
601 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm10 = mem[0],xmm10[1]
602 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm10 = ymm10[0,1],ymm14[2,3]
603 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
604 ; AVX1-ONLY-NEXT:    vmovapd 352(%rdi), %ymm14
605 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm14[0,1,2],ymm0[3]
606 ; AVX1-ONLY-NEXT:    vmovapd 256(%rdi), %xmm1
607 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm13 = xmm1[0],xmm13[1]
608 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm13[0,1],ymm0[2,3]
609 ; AVX1-ONLY-NEXT:    vmovapd 192(%rdi), %ymm13
610 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm15 = ymm15[0],ymm13[0],ymm15[3],ymm13[2]
611 ; AVX1-ONLY-NEXT:    vmovdqa 96(%rdi), %xmm5
612 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm5 = mem[8,9,10,11,12,13,14,15],xmm5[0,1,2,3,4,5,6,7]
613 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm5 = ymm5[0,1],ymm15[2,3]
614 ; AVX1-ONLY-NEXT:    vmovapd 416(%rdi), %ymm15
615 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm14 = ymm14[0],ymm15[0],ymm14[3],ymm15[2]
616 ; AVX1-ONLY-NEXT:    vmovdqa 320(%rdi), %xmm0
617 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = xmm1[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
618 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm1[0,1],ymm14[2,3]
619 ; AVX1-ONLY-NEXT:    vblendpd $7, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm13 # 32-byte Folded Reload
620 ; AVX1-ONLY-NEXT:    # ymm13 = mem[0,1,2],ymm13[3]
621 ; AVX1-ONLY-NEXT:    vmovapd {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
622 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm14 = xmm14[0],mem[1]
623 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm13 = ymm14[0,1],ymm13[2,3]
624 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm3 = ymm3[0,1,2],ymm15[3]
625 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm0 = xmm4[0],xmm0[1]
626 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm3[2,3]
627 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
628 ; AVX1-ONLY-NEXT:    vmovaps %ymm3, 32(%rsi)
629 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
630 ; AVX1-ONLY-NEXT:    vmovaps %ymm3, (%rsi)
631 ; AVX1-ONLY-NEXT:    vmovapd %ymm7, 32(%rdx)
632 ; AVX1-ONLY-NEXT:    vmovapd %ymm6, (%rdx)
633 ; AVX1-ONLY-NEXT:    vmovapd %ymm9, 32(%rcx)
634 ; AVX1-ONLY-NEXT:    vmovapd %ymm8, (%rcx)
635 ; AVX1-ONLY-NEXT:    vmovapd %ymm12, 32(%r8)
636 ; AVX1-ONLY-NEXT:    vmovapd %ymm11, (%r8)
637 ; AVX1-ONLY-NEXT:    vmovapd %ymm2, 32(%r9)
638 ; AVX1-ONLY-NEXT:    vmovapd %ymm10, (%r9)
639 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
640 ; AVX1-ONLY-NEXT:    vmovapd %ymm1, 32(%rax)
641 ; AVX1-ONLY-NEXT:    vmovapd %ymm5, (%rax)
642 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
643 ; AVX1-ONLY-NEXT:    vmovapd %ymm0, 32(%rax)
644 ; AVX1-ONLY-NEXT:    vmovapd %ymm13, (%rax)
645 ; AVX1-ONLY-NEXT:    vzeroupper
646 ; AVX1-ONLY-NEXT:    retq
648 ; AVX2-ONLY-LABEL: load_i64_stride7_vf8:
649 ; AVX2-ONLY:       # %bb.0:
650 ; AVX2-ONLY-NEXT:    vmovdqa 128(%rdi), %ymm4
651 ; AVX2-ONLY-NEXT:    vmovdqa 288(%rdi), %ymm12
652 ; AVX2-ONLY-NEXT:    vmovdqa 64(%rdi), %ymm11
653 ; AVX2-ONLY-NEXT:    vmovdqa 384(%rdi), %ymm10
654 ; AVX2-ONLY-NEXT:    vmovdqa 160(%rdi), %ymm9
655 ; AVX2-ONLY-NEXT:    vmovdqa 320(%rdi), %ymm8
656 ; AVX2-ONLY-NEXT:    vmovdqa 96(%rdi), %ymm7
657 ; AVX2-ONLY-NEXT:    vmovdqa 160(%rdi), %xmm0
658 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
659 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
660 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm7[0,1,2,3,4,5],ymm0[6,7]
661 ; AVX2-ONLY-NEXT:    vmovdqa 48(%rdi), %xmm2
662 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm3 = mem[0,1],xmm2[2,3]
663 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm0[4,5,6,7]
664 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
665 ; AVX2-ONLY-NEXT:    vmovdqa 384(%rdi), %xmm3
666 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm5
667 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm6 = ymm8[0,1,2,3,4,5],ymm5[6,7]
668 ; AVX2-ONLY-NEXT:    vmovdqa 224(%rdi), %xmm13
669 ; AVX2-ONLY-NEXT:    vmovdqa 272(%rdi), %xmm5
670 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm14 = xmm13[0,1],xmm5[2,3]
671 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm14[0,1,2,3],ymm6[4,5,6,7]
672 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
673 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm7 = ymm7[8,9,10,11,12,13,14,15],ymm9[0,1,2,3,4,5,6,7],ymm7[24,25,26,27,28,29,30,31],ymm9[16,17,18,19,20,21,22,23]
674 ; AVX2-ONLY-NEXT:    vmovdqa 64(%rdi), %xmm14
675 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm15 = mem[8,9,10,11,12,13,14,15],xmm14[0,1,2,3,4,5,6,7]
676 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm15[0,1,2,3],ymm7[4,5,6,7]
677 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
678 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm8 = ymm8[8,9,10,11,12,13,14,15],ymm10[0,1,2,3,4,5,6,7],ymm8[24,25,26,27,28,29,30,31],ymm10[16,17,18,19,20,21,22,23]
679 ; AVX2-ONLY-NEXT:    vmovdqa 288(%rdi), %xmm15
680 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm13 = xmm13[8,9,10,11,12,13,14,15],xmm15[0,1,2,3,4,5,6,7]
681 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
682 ; AVX2-ONLY-NEXT:    vpbroadcastq 128(%rdi), %ymm13
683 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm9 = ymm13[1],ymm9[1],ymm13[3],ymm9[3]
684 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm13 = mem[0,1],xmm14[2,3]
685 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm9 = ymm13[0,1,2,3],ymm9[4,5,6,7]
686 ; AVX2-ONLY-NEXT:    vpbroadcastq 352(%rdi), %ymm13
687 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm10 = ymm13[1],ymm10[1],ymm13[3],ymm10[3]
688 ; AVX2-ONLY-NEXT:    vmovdqa 240(%rdi), %xmm13
689 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm13 = xmm13[0,1],mem[2,3]
690 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm10 = ymm13[0,1,2,3],ymm10[4,5,6,7]
691 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm11 = mem[8,9,10,11,12,13,14,15],ymm11[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm11[16,17,18,19,20,21,22,23]
692 ; AVX2-ONLY-NEXT:    vmovdqa 192(%rdi), %xmm13
693 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm14 = mem[8,9,10,11,12,13,14,15],xmm13[0,1,2,3,4,5,6,7]
694 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm14, %ymm0, %ymm14
695 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm11 = ymm11[2,3],ymm14[2,3]
696 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm12 = mem[8,9,10,11,12,13,14,15],ymm12[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm12[16,17,18,19,20,21,22,23]
697 ; AVX2-ONLY-NEXT:    vmovdqa 416(%rdi), %xmm14
698 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm15 = mem[8,9,10,11,12,13,14,15],xmm14[0,1,2,3,4,5,6,7]
699 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm15, %ymm0, %ymm15
700 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm12 = ymm12[2,3],ymm15[2,3]
701 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm13, %ymm0, %ymm13
702 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm13 = ymm4[0,1,2,3,4,5],ymm13[6,7]
703 ; AVX2-ONLY-NEXT:    vmovdqa 32(%rdi), %xmm15
704 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm15 = xmm15[0,1],mem[2,3]
705 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm13 = ymm15[0,1,2,3],ymm13[4,5,6,7]
706 ; AVX2-ONLY-NEXT:    vmovdqa 352(%rdi), %ymm15
707 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm14, %ymm0, %ymm14
708 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm14 = ymm15[0,1,2,3,4,5],ymm14[6,7]
709 ; AVX2-ONLY-NEXT:    vmovdqa 256(%rdi), %xmm1
710 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm6 = xmm1[0,1],mem[2,3]
711 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm14[4,5,6,7]
712 ; AVX2-ONLY-NEXT:    vmovdqa 192(%rdi), %ymm14
713 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm4 = ymm4[8,9,10,11,12,13,14,15],ymm14[0,1,2,3,4,5,6,7],ymm4[24,25,26,27,28,29,30,31],ymm14[16,17,18,19,20,21,22,23]
714 ; AVX2-ONLY-NEXT:    vmovdqa 96(%rdi), %xmm7
715 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm7 = mem[8,9,10,11,12,13,14,15],xmm7[0,1,2,3,4,5,6,7]
716 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm4 = ymm7[0,1,2,3],ymm4[4,5,6,7]
717 ; AVX2-ONLY-NEXT:    vmovdqa 416(%rdi), %ymm7
718 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm15 = ymm15[8,9,10,11,12,13,14,15],ymm7[0,1,2,3,4,5,6,7],ymm15[24,25,26,27,28,29,30,31],ymm7[16,17,18,19,20,21,22,23]
719 ; AVX2-ONLY-NEXT:    vmovdqa 320(%rdi), %xmm0
720 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = xmm1[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
721 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm15[4,5,6,7]
722 ; AVX2-ONLY-NEXT:    vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 16-byte Folded Reload
723 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm14 = ymm15[1],ymm14[1],ymm15[3],ymm14[3]
724 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0,1],mem[2,3]
725 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm14[4,5,6,7]
726 ; AVX2-ONLY-NEXT:    vpbroadcastq %xmm3, %ymm3
727 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm3 = ymm3[1],ymm7[1],ymm3[3],ymm7[3]
728 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm0 = xmm5[0,1],xmm0[2,3]
729 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
730 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
731 ; AVX2-ONLY-NEXT:    vmovaps %ymm3, 32(%rsi)
732 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
733 ; AVX2-ONLY-NEXT:    vmovaps %ymm3, (%rsi)
734 ; AVX2-ONLY-NEXT:    vmovdqa %ymm8, 32(%rdx)
735 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
736 ; AVX2-ONLY-NEXT:    vmovaps %ymm3, (%rdx)
737 ; AVX2-ONLY-NEXT:    vmovdqa %ymm10, 32(%rcx)
738 ; AVX2-ONLY-NEXT:    vmovdqa %ymm9, (%rcx)
739 ; AVX2-ONLY-NEXT:    vmovdqa %ymm12, 32(%r8)
740 ; AVX2-ONLY-NEXT:    vmovdqa %ymm11, (%r8)
741 ; AVX2-ONLY-NEXT:    vmovdqa %ymm6, 32(%r9)
742 ; AVX2-ONLY-NEXT:    vmovdqa %ymm13, (%r9)
743 ; AVX2-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
744 ; AVX2-ONLY-NEXT:    vmovdqa %ymm1, 32(%rax)
745 ; AVX2-ONLY-NEXT:    vmovdqa %ymm4, (%rax)
746 ; AVX2-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
747 ; AVX2-ONLY-NEXT:    vmovdqa %ymm0, 32(%rax)
748 ; AVX2-ONLY-NEXT:    vmovdqa %ymm2, (%rax)
749 ; AVX2-ONLY-NEXT:    vzeroupper
750 ; AVX2-ONLY-NEXT:    retq
752 ; AVX512F-LABEL: load_i64_stride7_vf8:
753 ; AVX512F:       # %bb.0:
754 ; AVX512F-NEXT:    vmovdqa64 384(%rdi), %zmm0
755 ; AVX512F-NEXT:    vmovdqa64 320(%rdi), %zmm1
756 ; AVX512F-NEXT:    vmovdqa64 256(%rdi), %zmm2
757 ; AVX512F-NEXT:    vmovdqa64 192(%rdi), %zmm4
758 ; AVX512F-NEXT:    vmovdqa64 128(%rdi), %zmm5
759 ; AVX512F-NEXT:    vmovdqa64 64(%rdi), %zmm9
760 ; AVX512F-NEXT:    vmovdqa64 (%rdi), %zmm10
761 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [0,7,14,0,0,7,14,0]
762 ; AVX512F-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
763 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm6 = [9,0,7,0,9,0,7,0]
764 ; AVX512F-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3]
765 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm3
766 ; AVX512F-NEXT:    vpermt2q %zmm10, %zmm6, %zmm3
767 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm7 = [14,0,0,7,14,0,0,7]
768 ; AVX512F-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3]
769 ; AVX512F-NEXT:    vpermi2q %zmm4, %zmm5, %zmm7
770 ; AVX512F-NEXT:    vmovdqa 16(%rdi), %xmm11
771 ; AVX512F-NEXT:    vpblendd {{.*#+}} xmm11 = xmm11[0,1],mem[2,3]
772 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm11, %zmm7, %zmm7
773 ; AVX512F-NEXT:    vmovdqa 64(%rdi), %ymm11
774 ; AVX512F-NEXT:    vpalignr {{.*#+}} ymm11 = mem[8,9,10,11,12,13,14,15],ymm11[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm11[16,17,18,19,20,21,22,23]
775 ; AVX512F-NEXT:    vextracti128 $1, %ymm11, %xmm11
776 ; AVX512F-NEXT:    vinserti128 $1, 192(%rdi), %ymm0, %ymm12
777 ; AVX512F-NEXT:    vmovdqa 128(%rdi), %ymm13
778 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm12 = ymm13[0,1,2,3,4,5],ymm12[6,7]
779 ; AVX512F-NEXT:    vmovdqa {{.*#+}} xmm14 = [4,11]
780 ; AVX512F-NEXT:    vpermi2q %zmm9, %zmm10, %zmm14
781 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm15 = ymm14[0,1,2,3],ymm12[4,5,6,7]
782 ; AVX512F-NEXT:    vmovdqa {{.*#+}} xmm14 = [5,12]
783 ; AVX512F-NEXT:    vpermi2q %zmm9, %zmm10, %zmm14
784 ; AVX512F-NEXT:    vmovdqa {{.*#+}} xmm12 = [6,13]
785 ; AVX512F-NEXT:    vpermi2q %zmm9, %zmm10, %zmm12
786 ; AVX512F-NEXT:    vpermt2q %zmm9, %zmm8, %zmm10
787 ; AVX512F-NEXT:    vpermi2q %zmm1, %zmm2, %zmm8
788 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm9 = [4,5,6,13,4,5,6,13]
789 ; AVX512F-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3]
790 ; AVX512F-NEXT:    vpermi2q %zmm0, %zmm8, %zmm9
791 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm15, %zmm9, %zmm8
792 ; AVX512F-NEXT:    vmovdqa 192(%rdi), %ymm9
793 ; AVX512F-NEXT:    vpalignr {{.*#+}} ymm9 = ymm13[8,9,10,11,12,13,14,15],ymm9[0,1,2,3,4,5,6,7],ymm13[24,25,26,27,28,29,30,31],ymm9[16,17,18,19,20,21,22,23]
794 ; AVX512F-NEXT:    movq {{[0-9]+}}(%rsp), %rax
795 ; AVX512F-NEXT:    movq {{[0-9]+}}(%rsp), %rdi
796 ; AVX512F-NEXT:    movb $24, %r10b
797 ; AVX512F-NEXT:    kmovw %r10d, %k2
798 ; AVX512F-NEXT:    vshufi64x2 {{.*#+}} zmm10 {%k2} = zmm5[4,5,4,5],zmm4[4,5,4,5]
799 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm13 = [10,3,10,3,10,3,10,3]
800 ; AVX512F-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
801 ; AVX512F-NEXT:    vpermi2q %zmm1, %zmm2, %zmm13
802 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm15 = [0,5,6,9,0,5,6,9]
803 ; AVX512F-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3]
804 ; AVX512F-NEXT:    vpermi2q %zmm0, %zmm13, %zmm15
805 ; AVX512F-NEXT:    movb $-32, %r10b
806 ; AVX512F-NEXT:    kmovw %r10d, %k1
807 ; AVX512F-NEXT:    vmovdqa64 %zmm15, %zmm10 {%k1}
808 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm13 = [13,6,13,6,13,6,13,6]
809 ; AVX512F-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
810 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm15 = [7,0,9,0,7,0,9,0]
811 ; AVX512F-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3]
812 ; AVX512F-NEXT:    vpermi2q %zmm5, %zmm4, %zmm15
813 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm9 = ymm14[0,1,2,3],ymm9[4,5,6,7]
814 ; AVX512F-NEXT:    vbroadcasti128 {{.*#+}} ymm14 = [4,11,4,11]
815 ; AVX512F-NEXT:    # ymm14 = mem[0,1,0,1]
816 ; AVX512F-NEXT:    vpermi2q %zmm4, %zmm5, %zmm14
817 ; AVX512F-NEXT:    vpermt2q %zmm4, %zmm13, %zmm5
818 ; AVX512F-NEXT:    vmovdqa64 %zmm5, %zmm3 {%k2}
819 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [11,4,11,4,11,4,11,4]
820 ; AVX512F-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
821 ; AVX512F-NEXT:    vpermi2q %zmm1, %zmm2, %zmm4
822 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [0,5,6,10,0,5,6,10]
823 ; AVX512F-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
824 ; AVX512F-NEXT:    vpermi2q %zmm0, %zmm4, %zmm5
825 ; AVX512F-NEXT:    vmovdqa64 %zmm5, %zmm3 {%k1}
826 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [12,5,12,5,12,5,12,5]
827 ; AVX512F-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
828 ; AVX512F-NEXT:    vpermi2q %zmm1, %zmm2, %zmm4
829 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [0,5,6,11,0,5,6,11]
830 ; AVX512F-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
831 ; AVX512F-NEXT:    vpermi2q %zmm0, %zmm4, %zmm5
832 ; AVX512F-NEXT:    vmovdqa64 %zmm5, %zmm7 {%k1}
833 ; AVX512F-NEXT:    vpermi2q %zmm1, %zmm2, %zmm13
834 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,5,6,12,0,5,6,12]
835 ; AVX512F-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
836 ; AVX512F-NEXT:    vpermi2q %zmm0, %zmm13, %zmm4
837 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm11, %zmm15, %zmm5
838 ; AVX512F-NEXT:    vmovdqa64 %zmm4, %zmm5 {%k1}
839 ; AVX512F-NEXT:    vpermi2q %zmm2, %zmm1, %zmm6
840 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [4,5,6,14,4,5,6,14]
841 ; AVX512F-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
842 ; AVX512F-NEXT:    vpermi2q %zmm0, %zmm6, %zmm4
843 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm9, %zmm4, %zmm4
844 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm6 = [2,9,2,9,2,9,2,9]
845 ; AVX512F-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
846 ; AVX512F-NEXT:    vpermi2q %zmm1, %zmm2, %zmm6
847 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm1 = [4,5,8,15,4,5,8,15]
848 ; AVX512F-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3]
849 ; AVX512F-NEXT:    vpermi2q %zmm0, %zmm6, %zmm1
850 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm0 = ymm12[0,1,2,3],ymm14[4,5,6,7]
851 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm0, %zmm1, %zmm0
852 ; AVX512F-NEXT:    vmovdqa64 %zmm10, (%rsi)
853 ; AVX512F-NEXT:    vmovdqa64 %zmm3, (%rdx)
854 ; AVX512F-NEXT:    vmovdqa64 %zmm7, (%rcx)
855 ; AVX512F-NEXT:    vmovdqa64 %zmm5, (%r8)
856 ; AVX512F-NEXT:    vmovdqa64 %zmm8, (%r9)
857 ; AVX512F-NEXT:    vmovdqa64 %zmm4, (%rdi)
858 ; AVX512F-NEXT:    vmovdqa64 %zmm0, (%rax)
859 ; AVX512F-NEXT:    vzeroupper
860 ; AVX512F-NEXT:    retq
862 ; AVX512BW-LABEL: load_i64_stride7_vf8:
863 ; AVX512BW:       # %bb.0:
864 ; AVX512BW-NEXT:    vmovdqa64 384(%rdi), %zmm0
865 ; AVX512BW-NEXT:    vmovdqa64 320(%rdi), %zmm1
866 ; AVX512BW-NEXT:    vmovdqa64 256(%rdi), %zmm2
867 ; AVX512BW-NEXT:    vmovdqa64 192(%rdi), %zmm4
868 ; AVX512BW-NEXT:    vmovdqa64 128(%rdi), %zmm5
869 ; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %zmm9
870 ; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm10
871 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [0,7,14,0,0,7,14,0]
872 ; AVX512BW-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
873 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm6 = [9,0,7,0,9,0,7,0]
874 ; AVX512BW-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3]
875 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm3
876 ; AVX512BW-NEXT:    vpermt2q %zmm10, %zmm6, %zmm3
877 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm7 = [14,0,0,7,14,0,0,7]
878 ; AVX512BW-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3]
879 ; AVX512BW-NEXT:    vpermi2q %zmm4, %zmm5, %zmm7
880 ; AVX512BW-NEXT:    vmovdqa 16(%rdi), %xmm11
881 ; AVX512BW-NEXT:    vpblendd {{.*#+}} xmm11 = xmm11[0,1],mem[2,3]
882 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm11, %zmm7, %zmm7
883 ; AVX512BW-NEXT:    vinserti128 $1, 192(%rdi), %ymm0, %ymm12
884 ; AVX512BW-NEXT:    vmovdqa 128(%rdi), %ymm11
885 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm12 = ymm11[0,1,2,3,4,5],ymm12[6,7]
886 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} xmm13 = [4,11]
887 ; AVX512BW-NEXT:    vpermi2q %zmm9, %zmm10, %zmm13
888 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm14 = ymm13[0,1,2,3],ymm12[4,5,6,7]
889 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} xmm13 = [5,12]
890 ; AVX512BW-NEXT:    vpermi2q %zmm9, %zmm10, %zmm13
891 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} xmm12 = [6,13]
892 ; AVX512BW-NEXT:    vpermi2q %zmm9, %zmm10, %zmm12
893 ; AVX512BW-NEXT:    vpermt2q %zmm9, %zmm8, %zmm10
894 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm2, %zmm8
895 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm9 = [4,5,6,13,4,5,6,13]
896 ; AVX512BW-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3]
897 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm8, %zmm9
898 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm14, %zmm9, %zmm8
899 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
900 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %r10
901 ; AVX512BW-NEXT:    movb $24, %r11b
902 ; AVX512BW-NEXT:    kmovd %r11d, %k2
903 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm10 {%k2} = zmm5[4,5,4,5],zmm4[4,5,4,5]
904 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm9 = [10,3,10,3,10,3,10,3]
905 ; AVX512BW-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
906 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm2, %zmm9
907 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm14 = [0,5,6,9,0,5,6,9]
908 ; AVX512BW-NEXT:    # zmm14 = mem[0,1,2,3,0,1,2,3]
909 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm9, %zmm14
910 ; AVX512BW-NEXT:    movb $-32, %r11b
911 ; AVX512BW-NEXT:    kmovd %r11d, %k1
912 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, %zmm10 {%k1}
913 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm9 = [13,6,13,6,13,6,13,6]
914 ; AVX512BW-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
915 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm14 = [7,0,9,0,7,0,9,0]
916 ; AVX512BW-NEXT:    # zmm14 = mem[0,1,2,3,0,1,2,3]
917 ; AVX512BW-NEXT:    vpermi2q %zmm5, %zmm4, %zmm14
918 ; AVX512BW-NEXT:    vmovdqa 192(%rdi), %ymm15
919 ; AVX512BW-NEXT:    vpalignr {{.*#+}} ymm11 = ymm11[8,9,10,11,12,13,14,15],ymm15[0,1,2,3,4,5,6,7],ymm11[24,25,26,27,28,29,30,31],ymm15[16,17,18,19,20,21,22,23]
920 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm11 = ymm13[0,1,2,3],ymm11[4,5,6,7]
921 ; AVX512BW-NEXT:    vbroadcasti128 {{.*#+}} ymm13 = [4,11,4,11]
922 ; AVX512BW-NEXT:    # ymm13 = mem[0,1,0,1]
923 ; AVX512BW-NEXT:    vpermi2q %zmm4, %zmm5, %zmm13
924 ; AVX512BW-NEXT:    vpermt2q %zmm4, %zmm9, %zmm5
925 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm3 {%k2}
926 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [11,4,11,4,11,4,11,4]
927 ; AVX512BW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
928 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm2, %zmm4
929 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [0,5,6,10,0,5,6,10]
930 ; AVX512BW-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
931 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm4, %zmm5
932 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm3 {%k1}
933 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [12,5,12,5,12,5,12,5]
934 ; AVX512BW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
935 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm2, %zmm4
936 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [0,5,6,11,0,5,6,11]
937 ; AVX512BW-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
938 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm4, %zmm5
939 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm7 {%k1}
940 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm2, %zmm9
941 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,5,6,12,0,5,6,12]
942 ; AVX512BW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
943 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm9, %zmm4
944 ; AVX512BW-NEXT:    vmovdqa 64(%rdi), %ymm5
945 ; AVX512BW-NEXT:    vpalignr {{.*#+}} ymm5 = mem[8,9,10,11,12,13,14,15],ymm5[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm5[16,17,18,19,20,21,22,23]
946 ; AVX512BW-NEXT:    vextracti128 $1, %ymm5, %xmm5
947 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm5, %zmm14, %zmm5
948 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm5 {%k1}
949 ; AVX512BW-NEXT:    vpermi2q %zmm2, %zmm1, %zmm6
950 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [4,5,6,14,4,5,6,14]
951 ; AVX512BW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
952 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm6, %zmm4
953 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm11, %zmm4, %zmm4
954 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm6 = [2,9,2,9,2,9,2,9]
955 ; AVX512BW-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
956 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm2, %zmm6
957 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm1 = [4,5,8,15,4,5,8,15]
958 ; AVX512BW-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3]
959 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm6, %zmm1
960 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm12[0,1,2,3],ymm13[4,5,6,7]
961 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm1, %zmm0
962 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, (%rsi)
963 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, (%rdx)
964 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, (%rcx)
965 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, (%r8)
966 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, (%r9)
967 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, (%r10)
968 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, (%rax)
969 ; AVX512BW-NEXT:    vzeroupper
970 ; AVX512BW-NEXT:    retq
971   %wide.vec = load <56 x i64>, ptr %in.vec, align 64
972   %strided.vec0 = shufflevector <56 x i64> %wide.vec, <56 x i64> poison, <8 x i32> <i32 0, i32 7, i32 14, i32 21, i32 28, i32 35, i32 42, i32 49>
973   %strided.vec1 = shufflevector <56 x i64> %wide.vec, <56 x i64> poison, <8 x i32> <i32 1, i32 8, i32 15, i32 22, i32 29, i32 36, i32 43, i32 50>
974   %strided.vec2 = shufflevector <56 x i64> %wide.vec, <56 x i64> poison, <8 x i32> <i32 2, i32 9, i32 16, i32 23, i32 30, i32 37, i32 44, i32 51>
975   %strided.vec3 = shufflevector <56 x i64> %wide.vec, <56 x i64> poison, <8 x i32> <i32 3, i32 10, i32 17, i32 24, i32 31, i32 38, i32 45, i32 52>
976   %strided.vec4 = shufflevector <56 x i64> %wide.vec, <56 x i64> poison, <8 x i32> <i32 4, i32 11, i32 18, i32 25, i32 32, i32 39, i32 46, i32 53>
977   %strided.vec5 = shufflevector <56 x i64> %wide.vec, <56 x i64> poison, <8 x i32> <i32 5, i32 12, i32 19, i32 26, i32 33, i32 40, i32 47, i32 54>
978   %strided.vec6 = shufflevector <56 x i64> %wide.vec, <56 x i64> poison, <8 x i32> <i32 6, i32 13, i32 20, i32 27, i32 34, i32 41, i32 48, i32 55>
979   store <8 x i64> %strided.vec0, ptr %out.vec0, align 64
980   store <8 x i64> %strided.vec1, ptr %out.vec1, align 64
981   store <8 x i64> %strided.vec2, ptr %out.vec2, align 64
982   store <8 x i64> %strided.vec3, ptr %out.vec3, align 64
983   store <8 x i64> %strided.vec4, ptr %out.vec4, align 64
984   store <8 x i64> %strided.vec5, ptr %out.vec5, align 64
985   store <8 x i64> %strided.vec6, ptr %out.vec6, align 64
986   ret void
989 define void @load_i64_stride7_vf16(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4, ptr %out.vec5, ptr %out.vec6) nounwind {
990 ; SSE-LABEL: load_i64_stride7_vf16:
991 ; SSE:       # %bb.0:
992 ; SSE-NEXT:    subq $536, %rsp # imm = 0x218
993 ; SSE-NEXT:    movapd 208(%rdi), %xmm3
994 ; SSE-NEXT:    movapd 96(%rdi), %xmm2
995 ; SSE-NEXT:    movapd 144(%rdi), %xmm4
996 ; SSE-NEXT:    movapd 192(%rdi), %xmm6
997 ; SSE-NEXT:    movapd 80(%rdi), %xmm5
998 ; SSE-NEXT:    movapd 128(%rdi), %xmm8
999 ; SSE-NEXT:    movapd 64(%rdi), %xmm10
1000 ; SSE-NEXT:    movapd 176(%rdi), %xmm11
1001 ; SSE-NEXT:    movapd (%rdi), %xmm12
1002 ; SSE-NEXT:    movapd 16(%rdi), %xmm9
1003 ; SSE-NEXT:    movapd 32(%rdi), %xmm7
1004 ; SSE-NEXT:    movapd 48(%rdi), %xmm0
1005 ; SSE-NEXT:    movapd 224(%rdi), %xmm13
1006 ; SSE-NEXT:    movapd 112(%rdi), %xmm14
1007 ; SSE-NEXT:    movapd 160(%rdi), %xmm1
1008 ; SSE-NEXT:    movapd %xmm0, %xmm15
1009 ; SSE-NEXT:    movsd {{.*#+}} xmm15 = xmm12[0],xmm15[1]
1010 ; SSE-NEXT:    movapd %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1011 ; SSE-NEXT:    shufpd {{.*#+}} xmm12 = xmm12[1],xmm10[0]
1012 ; SSE-NEXT:    movapd %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1013 ; SSE-NEXT:    movsd {{.*#+}} xmm10 = xmm9[0],xmm10[1]
1014 ; SSE-NEXT:    movapd %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1015 ; SSE-NEXT:    shufpd {{.*#+}} xmm9 = xmm9[1],xmm5[0]
1016 ; SSE-NEXT:    movapd %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1017 ; SSE-NEXT:    movsd {{.*#+}} xmm5 = xmm7[0],xmm5[1]
1018 ; SSE-NEXT:    movapd %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1019 ; SSE-NEXT:    shufpd {{.*#+}} xmm7 = xmm7[1],xmm2[0]
1020 ; SSE-NEXT:    movapd %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1021 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm0[0],xmm2[1]
1022 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1023 ; SSE-NEXT:    movapd %xmm1, %xmm0
1024 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm14[0],xmm0[1]
1025 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1026 ; SSE-NEXT:    shufpd {{.*#+}} xmm14 = xmm14[1],xmm11[0]
1027 ; SSE-NEXT:    movapd %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1028 ; SSE-NEXT:    movsd {{.*#+}} xmm11 = xmm8[0],xmm11[1]
1029 ; SSE-NEXT:    movapd %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1030 ; SSE-NEXT:    shufpd {{.*#+}} xmm8 = xmm8[1],xmm6[0]
1031 ; SSE-NEXT:    movapd %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1032 ; SSE-NEXT:    movsd {{.*#+}} xmm6 = xmm4[0],xmm6[1]
1033 ; SSE-NEXT:    movapd %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1034 ; SSE-NEXT:    shufpd {{.*#+}} xmm4 = xmm4[1],xmm3[0]
1035 ; SSE-NEXT:    movapd %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1036 ; SSE-NEXT:    movsd {{.*#+}} xmm3 = xmm1[0],xmm3[1]
1037 ; SSE-NEXT:    movapd %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1038 ; SSE-NEXT:    movapd 272(%rdi), %xmm0
1039 ; SSE-NEXT:    movapd %xmm0, %xmm1
1040 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm13[0],xmm1[1]
1041 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1042 ; SSE-NEXT:    movapd 288(%rdi), %xmm1
1043 ; SSE-NEXT:    shufpd {{.*#+}} xmm13 = xmm13[1],xmm1[0]
1044 ; SSE-NEXT:    movapd %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1045 ; SSE-NEXT:    movapd 240(%rdi), %xmm2
1046 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
1047 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1048 ; SSE-NEXT:    movapd 304(%rdi), %xmm1
1049 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
1050 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1051 ; SSE-NEXT:    movapd 256(%rdi), %xmm2
1052 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
1053 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1054 ; SSE-NEXT:    movapd 320(%rdi), %xmm1
1055 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
1056 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1057 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
1058 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1059 ; SSE-NEXT:    movapd 336(%rdi), %xmm2
1060 ; SSE-NEXT:    movapd 384(%rdi), %xmm0
1061 ; SSE-NEXT:    movapd %xmm0, %xmm1
1062 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
1063 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1064 ; SSE-NEXT:    movapd 400(%rdi), %xmm1
1065 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
1066 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1067 ; SSE-NEXT:    movapd 352(%rdi), %xmm2
1068 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
1069 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1070 ; SSE-NEXT:    movapd 416(%rdi), %xmm1
1071 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
1072 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1073 ; SSE-NEXT:    movapd 368(%rdi), %xmm2
1074 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
1075 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1076 ; SSE-NEXT:    movapd 432(%rdi), %xmm1
1077 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
1078 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1079 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
1080 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1081 ; SSE-NEXT:    movapd 448(%rdi), %xmm2
1082 ; SSE-NEXT:    movapd 496(%rdi), %xmm0
1083 ; SSE-NEXT:    movapd %xmm0, %xmm1
1084 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
1085 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1086 ; SSE-NEXT:    movapd 512(%rdi), %xmm1
1087 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
1088 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1089 ; SSE-NEXT:    movapd 464(%rdi), %xmm2
1090 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
1091 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1092 ; SSE-NEXT:    movapd 528(%rdi), %xmm1
1093 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
1094 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1095 ; SSE-NEXT:    movapd 480(%rdi), %xmm2
1096 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
1097 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1098 ; SSE-NEXT:    movapd 544(%rdi), %xmm1
1099 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
1100 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1101 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
1102 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1103 ; SSE-NEXT:    movapd 560(%rdi), %xmm13
1104 ; SSE-NEXT:    movapd 608(%rdi), %xmm0
1105 ; SSE-NEXT:    movapd %xmm0, %xmm1
1106 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm13[0],xmm1[1]
1107 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1108 ; SSE-NEXT:    movapd 624(%rdi), %xmm14
1109 ; SSE-NEXT:    shufpd {{.*#+}} xmm13 = xmm13[1],xmm14[0]
1110 ; SSE-NEXT:    movapd 576(%rdi), %xmm2
1111 ; SSE-NEXT:    movsd {{.*#+}} xmm14 = xmm2[0],xmm14[1]
1112 ; SSE-NEXT:    movapd 640(%rdi), %xmm1
1113 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
1114 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1115 ; SSE-NEXT:    movapd 592(%rdi), %xmm2
1116 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
1117 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1118 ; SSE-NEXT:    movapd 656(%rdi), %xmm1
1119 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
1120 ; SSE-NEXT:    movapd %xmm2, (%rsp) # 16-byte Spill
1121 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
1122 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1123 ; SSE-NEXT:    movapd 672(%rdi), %xmm6
1124 ; SSE-NEXT:    movapd 720(%rdi), %xmm0
1125 ; SSE-NEXT:    movapd %xmm0, %xmm7
1126 ; SSE-NEXT:    movsd {{.*#+}} xmm7 = xmm6[0],xmm7[1]
1127 ; SSE-NEXT:    movapd 736(%rdi), %xmm8
1128 ; SSE-NEXT:    shufpd {{.*#+}} xmm6 = xmm6[1],xmm8[0]
1129 ; SSE-NEXT:    movapd 688(%rdi), %xmm10
1130 ; SSE-NEXT:    movsd {{.*#+}} xmm8 = xmm10[0],xmm8[1]
1131 ; SSE-NEXT:    movapd 752(%rdi), %xmm12
1132 ; SSE-NEXT:    shufpd {{.*#+}} xmm10 = xmm10[1],xmm12[0]
1133 ; SSE-NEXT:    movapd 704(%rdi), %xmm15
1134 ; SSE-NEXT:    movsd {{.*#+}} xmm12 = xmm15[0],xmm12[1]
1135 ; SSE-NEXT:    movapd 768(%rdi), %xmm1
1136 ; SSE-NEXT:    shufpd {{.*#+}} xmm15 = xmm15[1],xmm1[0]
1137 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
1138 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1139 ; SSE-NEXT:    movapd 784(%rdi), %xmm0
1140 ; SSE-NEXT:    movapd 832(%rdi), %xmm4
1141 ; SSE-NEXT:    movapd %xmm4, %xmm2
1142 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm0[0],xmm2[1]
1143 ; SSE-NEXT:    movapd 848(%rdi), %xmm1
1144 ; SSE-NEXT:    shufpd {{.*#+}} xmm0 = xmm0[1],xmm1[0]
1145 ; SSE-NEXT:    movapd 800(%rdi), %xmm3
1146 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm3[0],xmm1[1]
1147 ; SSE-NEXT:    movapd 864(%rdi), %xmm5
1148 ; SSE-NEXT:    shufpd {{.*#+}} xmm3 = xmm3[1],xmm5[0]
1149 ; SSE-NEXT:    movapd 816(%rdi), %xmm9
1150 ; SSE-NEXT:    movsd {{.*#+}} xmm5 = xmm9[0],xmm5[1]
1151 ; SSE-NEXT:    movapd 880(%rdi), %xmm11
1152 ; SSE-NEXT:    shufpd {{.*#+}} xmm9 = xmm9[1],xmm11[0]
1153 ; SSE-NEXT:    movsd {{.*#+}} xmm11 = xmm4[0],xmm11[1]
1154 ; SSE-NEXT:    movapd %xmm7, 96(%rsi)
1155 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
1156 ; SSE-NEXT:    movaps %xmm4, 32(%rsi)
1157 ; SSE-NEXT:    movapd %xmm2, 112(%rsi)
1158 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
1159 ; SSE-NEXT:    movaps %xmm2, 48(%rsi)
1160 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
1161 ; SSE-NEXT:    movaps %xmm2, 64(%rsi)
1162 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
1163 ; SSE-NEXT:    movaps %xmm2, (%rsi)
1164 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
1165 ; SSE-NEXT:    movaps %xmm2, 80(%rsi)
1166 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
1167 ; SSE-NEXT:    movaps %xmm2, 16(%rsi)
1168 ; SSE-NEXT:    movapd %xmm6, 96(%rdx)
1169 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
1170 ; SSE-NEXT:    movaps %xmm2, 32(%rdx)
1171 ; SSE-NEXT:    movapd %xmm0, 112(%rdx)
1172 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1173 ; SSE-NEXT:    movaps %xmm0, 48(%rdx)
1174 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1175 ; SSE-NEXT:    movaps %xmm0, 64(%rdx)
1176 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1177 ; SSE-NEXT:    movaps %xmm0, (%rdx)
1178 ; SSE-NEXT:    movapd %xmm13, 80(%rdx)
1179 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1180 ; SSE-NEXT:    movaps %xmm0, 16(%rdx)
1181 ; SSE-NEXT:    movapd %xmm8, 96(%rcx)
1182 ; SSE-NEXT:    movapd %xmm1, 112(%rcx)
1183 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1184 ; SSE-NEXT:    movaps %xmm0, 64(%rcx)
1185 ; SSE-NEXT:    movapd %xmm14, 80(%rcx)
1186 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1187 ; SSE-NEXT:    movaps %xmm0, 32(%rcx)
1188 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1189 ; SSE-NEXT:    movaps %xmm0, 48(%rcx)
1190 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1191 ; SSE-NEXT:    movaps %xmm0, (%rcx)
1192 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1193 ; SSE-NEXT:    movaps %xmm0, 16(%rcx)
1194 ; SSE-NEXT:    movapd %xmm3, 112(%r8)
1195 ; SSE-NEXT:    movapd %xmm10, 96(%r8)
1196 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1197 ; SSE-NEXT:    movaps %xmm0, 80(%r8)
1198 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1199 ; SSE-NEXT:    movaps %xmm0, 64(%r8)
1200 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1201 ; SSE-NEXT:    movaps %xmm0, 48(%r8)
1202 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1203 ; SSE-NEXT:    movaps %xmm0, 32(%r8)
1204 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1205 ; SSE-NEXT:    movaps %xmm0, 16(%r8)
1206 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1207 ; SSE-NEXT:    movaps %xmm0, (%r8)
1208 ; SSE-NEXT:    movapd %xmm5, 112(%r9)
1209 ; SSE-NEXT:    movapd %xmm12, 96(%r9)
1210 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1211 ; SSE-NEXT:    movaps %xmm0, 80(%r9)
1212 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1213 ; SSE-NEXT:    movaps %xmm0, 64(%r9)
1214 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1215 ; SSE-NEXT:    movaps %xmm0, 48(%r9)
1216 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1217 ; SSE-NEXT:    movaps %xmm0, 32(%r9)
1218 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1219 ; SSE-NEXT:    movaps %xmm0, 16(%r9)
1220 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1221 ; SSE-NEXT:    movaps %xmm0, (%r9)
1222 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1223 ; SSE-NEXT:    movapd %xmm9, 112(%rax)
1224 ; SSE-NEXT:    movapd %xmm15, 96(%rax)
1225 ; SSE-NEXT:    movaps (%rsp), %xmm0 # 16-byte Reload
1226 ; SSE-NEXT:    movaps %xmm0, 80(%rax)
1227 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1228 ; SSE-NEXT:    movaps %xmm0, 64(%rax)
1229 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1230 ; SSE-NEXT:    movaps %xmm0, 48(%rax)
1231 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1232 ; SSE-NEXT:    movaps %xmm0, 32(%rax)
1233 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1234 ; SSE-NEXT:    movaps %xmm0, 16(%rax)
1235 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1236 ; SSE-NEXT:    movaps %xmm0, (%rax)
1237 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1238 ; SSE-NEXT:    movapd %xmm11, 112(%rax)
1239 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1240 ; SSE-NEXT:    movaps %xmm0, 96(%rax)
1241 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1242 ; SSE-NEXT:    movaps %xmm0, 80(%rax)
1243 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1244 ; SSE-NEXT:    movaps %xmm0, 64(%rax)
1245 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1246 ; SSE-NEXT:    movaps %xmm0, 48(%rax)
1247 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1248 ; SSE-NEXT:    movaps %xmm0, 32(%rax)
1249 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1250 ; SSE-NEXT:    movaps %xmm0, 16(%rax)
1251 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1252 ; SSE-NEXT:    movaps %xmm0, (%rax)
1253 ; SSE-NEXT:    addq $536, %rsp # imm = 0x218
1254 ; SSE-NEXT:    retq
1256 ; AVX1-ONLY-LABEL: load_i64_stride7_vf16:
1257 ; AVX1-ONLY:       # %bb.0:
1258 ; AVX1-ONLY-NEXT:    subq $552, %rsp # imm = 0x228
1259 ; AVX1-ONLY-NEXT:    vmovapd 544(%rdi), %ymm0
1260 ; AVX1-ONLY-NEXT:    vmovapd 96(%rdi), %ymm1
1261 ; AVX1-ONLY-NEXT:    vmovaps 768(%rdi), %ymm2
1262 ; AVX1-ONLY-NEXT:    vmovaps 320(%rdi), %ymm3
1263 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 384(%rdi), %ymm0, %ymm4
1264 ; AVX1-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1265 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm3[0,1,2,3,4,5],ymm4[6,7]
1266 ; AVX1-ONLY-NEXT:    vmovaps 224(%rdi), %xmm5
1267 ; AVX1-ONLY-NEXT:    vmovaps 272(%rdi), %xmm6
1268 ; AVX1-ONLY-NEXT:    vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1269 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm6 = xmm5[0,1],xmm6[2,3]
1270 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm6[0,1,2,3],ymm4[4,5,6,7]
1271 ; AVX1-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1272 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 832(%rdi), %ymm0, %ymm4
1273 ; AVX1-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1274 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm2[0,1,2,3,4,5],ymm4[6,7]
1275 ; AVX1-ONLY-NEXT:    vmovaps 672(%rdi), %xmm6
1276 ; AVX1-ONLY-NEXT:    vmovaps 720(%rdi), %xmm7
1277 ; AVX1-ONLY-NEXT:    vmovaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1278 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm7 = xmm6[0,1],xmm7[2,3]
1279 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm7[0,1,2,3],ymm4[4,5,6,7]
1280 ; AVX1-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1281 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 160(%rdi), %ymm0, %ymm4
1282 ; AVX1-ONLY-NEXT:    vmovupd %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1283 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm4 = ymm1[0,1,2],ymm4[3]
1284 ; AVX1-ONLY-NEXT:    vmovapd 48(%rdi), %xmm7
1285 ; AVX1-ONLY-NEXT:    vmovapd %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1286 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm7 = mem[0],xmm7[1]
1287 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm4 = ymm7[0,1],ymm4[2,3]
1288 ; AVX1-ONLY-NEXT:    vmovupd %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1289 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 608(%rdi), %ymm0, %ymm4
1290 ; AVX1-ONLY-NEXT:    vmovupd %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1291 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm4 = ymm0[0,1,2],ymm4[3]
1292 ; AVX1-ONLY-NEXT:    vmovapd 448(%rdi), %xmm7
1293 ; AVX1-ONLY-NEXT:    vmovapd 496(%rdi), %xmm8
1294 ; AVX1-ONLY-NEXT:    vmovapd %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1295 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm8 = xmm7[0],xmm8[1]
1296 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm4 = ymm8[0,1],ymm4[2,3]
1297 ; AVX1-ONLY-NEXT:    vmovupd %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1298 ; AVX1-ONLY-NEXT:    vmovdqa 288(%rdi), %xmm4
1299 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm4 = xmm5[8,9,10,11,12,13,14,15],xmm4[0,1,2,3,4,5,6,7]
1300 ; AVX1-ONLY-NEXT:    vmovapd 384(%rdi), %ymm5
1301 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm3 = ymm3[0],ymm5[0],ymm3[3],ymm5[2]
1302 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm3 = ymm4[0,1],ymm3[2,3]
1303 ; AVX1-ONLY-NEXT:    vmovupd %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1304 ; AVX1-ONLY-NEXT:    vmovdqa 736(%rdi), %xmm3
1305 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm3 = xmm6[8,9,10,11,12,13,14,15],xmm3[0,1,2,3,4,5,6,7]
1306 ; AVX1-ONLY-NEXT:    vmovapd 832(%rdi), %ymm4
1307 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm2 = ymm2[0],ymm4[0],ymm2[3],ymm4[2]
1308 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm3[0,1],ymm2[2,3]
1309 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1310 ; AVX1-ONLY-NEXT:    vmovapd 160(%rdi), %ymm2
1311 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[3],ymm2[2]
1312 ; AVX1-ONLY-NEXT:    vmovdqa 64(%rdi), %xmm6
1313 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm3 = mem[8,9,10,11,12,13,14,15],xmm6[0,1,2,3,4,5,6,7]
1314 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm3[0,1],ymm1[2,3]
1315 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1316 ; AVX1-ONLY-NEXT:    vmovapd 608(%rdi), %ymm8
1317 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm0[0],ymm8[0],ymm0[3],ymm8[2]
1318 ; AVX1-ONLY-NEXT:    vmovdqa 512(%rdi), %xmm9
1319 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = xmm7[8,9,10,11,12,13,14,15],xmm9[0,1,2,3,4,5,6,7]
1320 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
1321 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1322 ; AVX1-ONLY-NEXT:    vmovdqa 352(%rdi), %xmm1
1323 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm0
1324 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1,2],ymm5[3]
1325 ; AVX1-ONLY-NEXT:    vmovapd 240(%rdi), %xmm3
1326 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm5 = xmm3[0],mem[1]
1327 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm5[0,1],ymm0[2,3]
1328 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1329 ; AVX1-ONLY-NEXT:    vmovdqa 800(%rdi), %xmm7
1330 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm0
1331 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1,2],ymm4[3]
1332 ; AVX1-ONLY-NEXT:    vmovapd 688(%rdi), %xmm5
1333 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm4 = xmm5[0],mem[1]
1334 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm4[0,1],ymm0[2,3]
1335 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1336 ; AVX1-ONLY-NEXT:    vmovdqa 128(%rdi), %xmm4
1337 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
1338 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1,2],ymm2[3]
1339 ; AVX1-ONLY-NEXT:    vmovdqa 16(%rdi), %xmm10
1340 ; AVX1-ONLY-NEXT:    vpblendw {{.*#+}} xmm2 = xmm10[0,1,2,3],xmm6[4,5,6,7]
1341 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,3]
1342 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1343 ; AVX1-ONLY-NEXT:    vmovdqa 576(%rdi), %xmm2
1344 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
1345 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1,2],ymm8[3]
1346 ; AVX1-ONLY-NEXT:    vmovdqa 464(%rdi), %xmm6
1347 ; AVX1-ONLY-NEXT:    vpblendw {{.*#+}} xmm8 = xmm6[0,1,2,3],xmm9[4,5,6,7]
1348 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm8[0,1],ymm0[2,3]
1349 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1350 ; AVX1-ONLY-NEXT:    vmovapd 752(%rdi), %xmm12
1351 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm8 = ymm5[1],ymm12[0],ymm5[2],ymm12[2]
1352 ; AVX1-ONLY-NEXT:    vmovdqa 864(%rdi), %xmm5
1353 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm7 = xmm7[8,9,10,11,12,13,14,15],xmm5[0,1,2,3,4,5,6,7]
1354 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
1355 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm8[0,1],ymm7[2,3]
1356 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, (%rsp) # 32-byte Spill
1357 ; AVX1-ONLY-NEXT:    vmovapd 304(%rdi), %xmm7
1358 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm3 = ymm3[1],ymm7[0],ymm3[2],ymm7[2]
1359 ; AVX1-ONLY-NEXT:    vmovdqa 416(%rdi), %xmm8
1360 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = xmm1[8,9,10,11,12,13,14,15],xmm8[0,1,2,3,4,5,6,7]
1361 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
1362 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm3[0,1],ymm1[2,3]
1363 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1364 ; AVX1-ONLY-NEXT:    vmovapd 80(%rdi), %xmm11
1365 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm9 = ymm10[1],ymm11[0],ymm10[2],ymm11[2]
1366 ; AVX1-ONLY-NEXT:    vmovdqa 192(%rdi), %xmm10
1367 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm4 = xmm4[8,9,10,11,12,13,14,15],xmm10[0,1,2,3,4,5,6,7]
1368 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
1369 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm9[0,1],ymm4[2,3]
1370 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1371 ; AVX1-ONLY-NEXT:    vmovapd 528(%rdi), %xmm4
1372 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm6 = ymm6[1],ymm4[0],ymm6[2],ymm4[2]
1373 ; AVX1-ONLY-NEXT:    vmovdqa 640(%rdi), %xmm0
1374 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm2 = xmm2[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
1375 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
1376 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm13 = ymm6[0,1],ymm2[2,3]
1377 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm2
1378 ; AVX1-ONLY-NEXT:    vmovapd 352(%rdi), %ymm6
1379 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm6[0,1,2],ymm2[3]
1380 ; AVX1-ONLY-NEXT:    vmovapd 256(%rdi), %xmm8
1381 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm7 = xmm8[0],xmm7[1]
1382 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm14 = ymm7[0,1],ymm2[2,3]
1383 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm2
1384 ; AVX1-ONLY-NEXT:    vmovapd 800(%rdi), %ymm3
1385 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm3[0,1,2],ymm2[3]
1386 ; AVX1-ONLY-NEXT:    vmovapd 704(%rdi), %xmm5
1387 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm7 = xmm5[0],xmm12[1]
1388 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm12 = ymm7[0,1],ymm2[2,3]
1389 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
1390 ; AVX1-ONLY-NEXT:    vmovapd 576(%rdi), %ymm7
1391 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm7[0,1,2],ymm0[3]
1392 ; AVX1-ONLY-NEXT:    vmovapd 480(%rdi), %xmm1
1393 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm4 = xmm1[0],xmm4[1]
1394 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm9 = ymm4[0,1],ymm0[2,3]
1395 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm0
1396 ; AVX1-ONLY-NEXT:    vmovapd 128(%rdi), %ymm10
1397 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm10[0,1,2],ymm0[3]
1398 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm4 = mem[0],xmm11[1]
1399 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm11 = ymm4[0,1],ymm0[2,3]
1400 ; AVX1-ONLY-NEXT:    vmovapd 416(%rdi), %ymm2
1401 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm4 = ymm6[0],ymm2[0],ymm6[3],ymm2[2]
1402 ; AVX1-ONLY-NEXT:    vmovdqa 320(%rdi), %xmm6
1403 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm8 = xmm8[8,9,10,11,12,13,14,15],xmm6[0,1,2,3,4,5,6,7]
1404 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm8 = ymm8[0,1],ymm4[2,3]
1405 ; AVX1-ONLY-NEXT:    vmovapd 864(%rdi), %ymm4
1406 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm3 = ymm3[0],ymm4[0],ymm3[3],ymm4[2]
1407 ; AVX1-ONLY-NEXT:    vmovdqa 768(%rdi), %xmm0
1408 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm5 = xmm5[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
1409 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm5 = ymm5[0,1],ymm3[2,3]
1410 ; AVX1-ONLY-NEXT:    vmovdqa 544(%rdi), %xmm3
1411 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = xmm1[8,9,10,11,12,13,14,15],xmm3[0,1,2,3,4,5,6,7]
1412 ; AVX1-ONLY-NEXT:    vmovapd 640(%rdi), %ymm3
1413 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm7 = ymm7[0],ymm3[0],ymm7[3],ymm3[2]
1414 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm7 = ymm1[0,1],ymm7[2,3]
1415 ; AVX1-ONLY-NEXT:    vmovapd 192(%rdi), %ymm1
1416 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm10 = ymm10[0],ymm1[0],ymm10[3],ymm1[2]
1417 ; AVX1-ONLY-NEXT:    vmovdqa 96(%rdi), %xmm15
1418 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm15 = mem[8,9,10,11,12,13,14,15],xmm15[0,1,2,3,4,5,6,7]
1419 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm10 = ymm15[0,1],ymm10[2,3]
1420 ; AVX1-ONLY-NEXT:    vblendpd $7, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
1421 ; AVX1-ONLY-NEXT:    # ymm2 = mem[0,1,2],ymm2[3]
1422 ; AVX1-ONLY-NEXT:    vpblendw $15, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6, %xmm6 # 16-byte Folded Reload
1423 ; AVX1-ONLY-NEXT:    # xmm6 = mem[0,1,2,3],xmm6[4,5,6,7]
1424 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm6[0,1],ymm2[2,3]
1425 ; AVX1-ONLY-NEXT:    vblendpd $7, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload
1426 ; AVX1-ONLY-NEXT:    # ymm4 = mem[0,1,2],ymm4[3]
1427 ; AVX1-ONLY-NEXT:    vpblendw $15, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
1428 ; AVX1-ONLY-NEXT:    # xmm0 = mem[0,1,2,3],xmm0[4,5,6,7]
1429 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm4[2,3]
1430 ; AVX1-ONLY-NEXT:    vblendpd $7, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
1431 ; AVX1-ONLY-NEXT:    # ymm1 = mem[0,1,2],ymm1[3]
1432 ; AVX1-ONLY-NEXT:    vmovapd {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
1433 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm4 = xmm4[0],mem[1]
1434 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm4[0,1],ymm1[2,3]
1435 ; AVX1-ONLY-NEXT:    vblendpd $7, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
1436 ; AVX1-ONLY-NEXT:    # ymm3 = mem[0,1,2],ymm3[3]
1437 ; AVX1-ONLY-NEXT:    vmovapd {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
1438 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm4 = xmm4[0],mem[1]
1439 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm3 = ymm4[0,1],ymm3[2,3]
1440 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
1441 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, 64(%rsi)
1442 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
1443 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, (%rsi)
1444 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
1445 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, 96(%rsi)
1446 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
1447 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, 32(%rsi)
1448 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
1449 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, 64(%rdx)
1450 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
1451 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, (%rdx)
1452 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
1453 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, 96(%rdx)
1454 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
1455 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, 32(%rdx)
1456 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
1457 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, 64(%rcx)
1458 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
1459 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, (%rcx)
1460 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
1461 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, 96(%rcx)
1462 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
1463 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, 32(%rcx)
1464 ; AVX1-ONLY-NEXT:    vmovapd %ymm13, 64(%r8)
1465 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
1466 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, (%r8)
1467 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
1468 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, 32(%r8)
1469 ; AVX1-ONLY-NEXT:    vmovups (%rsp), %ymm4 # 32-byte Reload
1470 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, 96(%r8)
1471 ; AVX1-ONLY-NEXT:    vmovapd %ymm11, (%r9)
1472 ; AVX1-ONLY-NEXT:    vmovapd %ymm9, 64(%r9)
1473 ; AVX1-ONLY-NEXT:    vmovapd %ymm12, 96(%r9)
1474 ; AVX1-ONLY-NEXT:    vmovapd %ymm14, 32(%r9)
1475 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1476 ; AVX1-ONLY-NEXT:    vmovapd %ymm10, (%rax)
1477 ; AVX1-ONLY-NEXT:    vmovapd %ymm7, 64(%rax)
1478 ; AVX1-ONLY-NEXT:    vmovapd %ymm5, 96(%rax)
1479 ; AVX1-ONLY-NEXT:    vmovapd %ymm8, 32(%rax)
1480 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1481 ; AVX1-ONLY-NEXT:    vmovapd %ymm3, 64(%rax)
1482 ; AVX1-ONLY-NEXT:    vmovapd %ymm1, (%rax)
1483 ; AVX1-ONLY-NEXT:    vmovapd %ymm0, 96(%rax)
1484 ; AVX1-ONLY-NEXT:    vmovapd %ymm2, 32(%rax)
1485 ; AVX1-ONLY-NEXT:    addq $552, %rsp # imm = 0x228
1486 ; AVX1-ONLY-NEXT:    vzeroupper
1487 ; AVX1-ONLY-NEXT:    retq
1489 ; AVX2-ONLY-LABEL: load_i64_stride7_vf16:
1490 ; AVX2-ONLY:       # %bb.0:
1491 ; AVX2-ONLY-NEXT:    subq $520, %rsp # imm = 0x208
1492 ; AVX2-ONLY-NEXT:    vmovdqa 544(%rdi), %ymm0
1493 ; AVX2-ONLY-NEXT:    vmovdqa 96(%rdi), %ymm1
1494 ; AVX2-ONLY-NEXT:    vmovdqa 768(%rdi), %ymm2
1495 ; AVX2-ONLY-NEXT:    vmovdqa 320(%rdi), %ymm3
1496 ; AVX2-ONLY-NEXT:    vmovdqa 384(%rdi), %xmm4
1497 ; AVX2-ONLY-NEXT:    vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1498 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm4
1499 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm4 = ymm3[0,1,2,3,4,5],ymm4[6,7]
1500 ; AVX2-ONLY-NEXT:    vmovdqa 224(%rdi), %xmm5
1501 ; AVX2-ONLY-NEXT:    vmovdqa 272(%rdi), %xmm6
1502 ; AVX2-ONLY-NEXT:    vmovdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1503 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm6 = xmm5[0,1],xmm6[2,3]
1504 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm4 = ymm6[0,1,2,3],ymm4[4,5,6,7]
1505 ; AVX2-ONLY-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1506 ; AVX2-ONLY-NEXT:    vmovdqa 832(%rdi), %xmm4
1507 ; AVX2-ONLY-NEXT:    vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1508 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm4
1509 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm4 = ymm2[0,1,2,3,4,5],ymm4[6,7]
1510 ; AVX2-ONLY-NEXT:    vmovdqa 672(%rdi), %xmm6
1511 ; AVX2-ONLY-NEXT:    vmovdqa 720(%rdi), %xmm13
1512 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm7 = xmm6[0,1],xmm13[2,3]
1513 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm4 = ymm7[0,1,2,3],ymm4[4,5,6,7]
1514 ; AVX2-ONLY-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1515 ; AVX2-ONLY-NEXT:    vmovdqa 160(%rdi), %xmm4
1516 ; AVX2-ONLY-NEXT:    vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1517 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm4
1518 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm4 = ymm1[0,1,2,3,4,5],ymm4[6,7]
1519 ; AVX2-ONLY-NEXT:    vmovdqa 48(%rdi), %xmm11
1520 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm7 = mem[0,1],xmm11[2,3]
1521 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm4 = ymm7[0,1,2,3],ymm4[4,5,6,7]
1522 ; AVX2-ONLY-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1523 ; AVX2-ONLY-NEXT:    vmovdqa 608(%rdi), %xmm4
1524 ; AVX2-ONLY-NEXT:    vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1525 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm4
1526 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm4 = ymm0[0,1,2,3,4,5],ymm4[6,7]
1527 ; AVX2-ONLY-NEXT:    vmovdqa 448(%rdi), %xmm7
1528 ; AVX2-ONLY-NEXT:    vmovdqa 496(%rdi), %xmm8
1529 ; AVX2-ONLY-NEXT:    vmovdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1530 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm8 = xmm7[0,1],xmm8[2,3]
1531 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm4 = ymm8[0,1,2,3],ymm4[4,5,6,7]
1532 ; AVX2-ONLY-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1533 ; AVX2-ONLY-NEXT:    vmovdqa 288(%rdi), %xmm4
1534 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm4 = xmm5[8,9,10,11,12,13,14,15],xmm4[0,1,2,3,4,5,6,7]
1535 ; AVX2-ONLY-NEXT:    vmovdqa 384(%rdi), %ymm5
1536 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm3 = ymm3[8,9,10,11,12,13,14,15],ymm5[0,1,2,3,4,5,6,7],ymm3[24,25,26,27,28,29,30,31],ymm5[16,17,18,19,20,21,22,23]
1537 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
1538 ; AVX2-ONLY-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1539 ; AVX2-ONLY-NEXT:    vmovdqa 736(%rdi), %xmm3
1540 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm3 = xmm6[8,9,10,11,12,13,14,15],xmm3[0,1,2,3,4,5,6,7]
1541 ; AVX2-ONLY-NEXT:    vmovdqa 832(%rdi), %ymm4
1542 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm2 = ymm2[8,9,10,11,12,13,14,15],ymm4[0,1,2,3,4,5,6,7],ymm2[24,25,26,27,28,29,30,31],ymm4[16,17,18,19,20,21,22,23]
1543 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
1544 ; AVX2-ONLY-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1545 ; AVX2-ONLY-NEXT:    vmovdqa 160(%rdi), %ymm2
1546 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm1 = ymm1[8,9,10,11,12,13,14,15],ymm2[0,1,2,3,4,5,6,7],ymm1[24,25,26,27,28,29,30,31],ymm2[16,17,18,19,20,21,22,23]
1547 ; AVX2-ONLY-NEXT:    vmovdqa 64(%rdi), %xmm3
1548 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm6 = mem[8,9,10,11,12,13,14,15],xmm3[0,1,2,3,4,5,6,7]
1549 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm6[0,1,2,3],ymm1[4,5,6,7]
1550 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1551 ; AVX2-ONLY-NEXT:    vmovdqa 608(%rdi), %ymm1
1552 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm0 = ymm0[8,9,10,11,12,13,14,15],ymm1[0,1,2,3,4,5,6,7],ymm0[24,25,26,27,28,29,30,31],ymm1[16,17,18,19,20,21,22,23]
1553 ; AVX2-ONLY-NEXT:    vmovdqa 512(%rdi), %xmm6
1554 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm7 = xmm7[8,9,10,11,12,13,14,15],xmm6[0,1,2,3,4,5,6,7]
1555 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm7[0,1,2,3],ymm0[4,5,6,7]
1556 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1557 ; AVX2-ONLY-NEXT:    vpbroadcastq 352(%rdi), %ymm0
1558 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm5[1],ymm0[3],ymm5[3]
1559 ; AVX2-ONLY-NEXT:    vmovdqa 240(%rdi), %xmm5
1560 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm5 = xmm5[0,1],mem[2,3]
1561 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm5[0,1,2,3],ymm0[4,5,6,7]
1562 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1563 ; AVX2-ONLY-NEXT:    vpbroadcastq 800(%rdi), %ymm0
1564 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm4[1],ymm0[3],ymm4[3]
1565 ; AVX2-ONLY-NEXT:    vmovdqa 688(%rdi), %xmm4
1566 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm4 = xmm4[0,1],mem[2,3]
1567 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm4[0,1,2,3],ymm0[4,5,6,7]
1568 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1569 ; AVX2-ONLY-NEXT:    vpbroadcastq 128(%rdi), %ymm0
1570 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm2[1],ymm0[3],ymm2[3]
1571 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm2 = mem[0,1],xmm3[2,3]
1572 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
1573 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1574 ; AVX2-ONLY-NEXT:    vpbroadcastq 576(%rdi), %ymm0
1575 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
1576 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = mem[0,1],xmm6[2,3]
1577 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
1578 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1579 ; AVX2-ONLY-NEXT:    vmovdqa 736(%rdi), %ymm0
1580 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm0 = mem[8,9,10,11,12,13,14,15],ymm0[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm0[16,17,18,19,20,21,22,23]
1581 ; AVX2-ONLY-NEXT:    vmovdqa 864(%rdi), %xmm1
1582 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm2 = mem[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
1583 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
1584 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]
1585 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1586 ; AVX2-ONLY-NEXT:    vmovdqa 288(%rdi), %ymm0
1587 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm0 = mem[8,9,10,11,12,13,14,15],ymm0[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm0[16,17,18,19,20,21,22,23]
1588 ; AVX2-ONLY-NEXT:    vmovdqa 416(%rdi), %xmm2
1589 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm3 = mem[8,9,10,11,12,13,14,15],xmm2[0,1,2,3,4,5,6,7]
1590 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm3
1591 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm0 = ymm0[2,3],ymm3[2,3]
1592 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1593 ; AVX2-ONLY-NEXT:    vmovdqa 64(%rdi), %ymm0
1594 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm0 = mem[8,9,10,11,12,13,14,15],ymm0[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm0[16,17,18,19,20,21,22,23]
1595 ; AVX2-ONLY-NEXT:    vmovdqa 192(%rdi), %xmm10
1596 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm4 = mem[8,9,10,11,12,13,14,15],xmm10[0,1,2,3,4,5,6,7]
1597 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm4
1598 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm0 = ymm0[2,3],ymm4[2,3]
1599 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1600 ; AVX2-ONLY-NEXT:    vmovdqa 512(%rdi), %ymm0
1601 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm0 = mem[8,9,10,11,12,13,14,15],ymm0[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm0[16,17,18,19,20,21,22,23]
1602 ; AVX2-ONLY-NEXT:    vmovdqa 640(%rdi), %xmm4
1603 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm5 = mem[8,9,10,11,12,13,14,15],xmm4[0,1,2,3,4,5,6,7]
1604 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm5, %ymm0, %ymm5
1605 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm0 = ymm0[2,3],ymm5[2,3]
1606 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, (%rsp) # 32-byte Spill
1607 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm0
1608 ; AVX2-ONLY-NEXT:    vmovdqa 352(%rdi), %ymm6
1609 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm6[0,1,2,3,4,5],ymm0[6,7]
1610 ; AVX2-ONLY-NEXT:    vmovdqa 256(%rdi), %xmm8
1611 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm5 = xmm8[0,1],mem[2,3]
1612 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm5[0,1,2,3],ymm0[4,5,6,7]
1613 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1614 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm0
1615 ; AVX2-ONLY-NEXT:    vmovdqa 800(%rdi), %ymm3
1616 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm0[6,7]
1617 ; AVX2-ONLY-NEXT:    vmovdqa 704(%rdi), %xmm7
1618 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm5 = xmm7[0,1],mem[2,3]
1619 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm14 = ymm5[0,1,2,3],ymm0[4,5,6,7]
1620 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm0
1621 ; AVX2-ONLY-NEXT:    vmovdqa 576(%rdi), %ymm9
1622 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm9[0,1,2,3,4,5],ymm0[6,7]
1623 ; AVX2-ONLY-NEXT:    vmovdqa 480(%rdi), %xmm1
1624 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm5 = xmm1[0,1],mem[2,3]
1625 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm12 = ymm5[0,1,2,3],ymm0[4,5,6,7]
1626 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm10, %ymm0, %ymm0
1627 ; AVX2-ONLY-NEXT:    vmovdqa 128(%rdi), %ymm10
1628 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm10[0,1,2,3,4,5],ymm0[6,7]
1629 ; AVX2-ONLY-NEXT:    vmovdqa 32(%rdi), %xmm5
1630 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm5 = xmm5[0,1],mem[2,3]
1631 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm0[4,5,6,7]
1632 ; AVX2-ONLY-NEXT:    vmovdqa 416(%rdi), %ymm4
1633 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm6 = ymm6[8,9,10,11,12,13,14,15],ymm4[0,1,2,3,4,5,6,7],ymm6[24,25,26,27,28,29,30,31],ymm4[16,17,18,19,20,21,22,23]
1634 ; AVX2-ONLY-NEXT:    vmovdqa 320(%rdi), %xmm2
1635 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm8 = xmm8[8,9,10,11,12,13,14,15],xmm2[0,1,2,3,4,5,6,7]
1636 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm6 = ymm8[0,1,2,3],ymm6[4,5,6,7]
1637 ; AVX2-ONLY-NEXT:    vmovdqa 864(%rdi), %ymm8
1638 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm3 = ymm3[8,9,10,11,12,13,14,15],ymm8[0,1,2,3,4,5,6,7],ymm3[24,25,26,27,28,29,30,31],ymm8[16,17,18,19,20,21,22,23]
1639 ; AVX2-ONLY-NEXT:    vmovdqa 768(%rdi), %xmm0
1640 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm7 = xmm7[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
1641 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3],ymm3[4,5,6,7]
1642 ; AVX2-ONLY-NEXT:    vmovdqa 544(%rdi), %xmm3
1643 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = xmm1[8,9,10,11,12,13,14,15],xmm3[0,1,2,3,4,5,6,7]
1644 ; AVX2-ONLY-NEXT:    vmovdqa 640(%rdi), %ymm3
1645 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm9 = ymm9[8,9,10,11,12,13,14,15],ymm3[0,1,2,3,4,5,6,7],ymm9[24,25,26,27,28,29,30,31],ymm3[16,17,18,19,20,21,22,23]
1646 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm9[4,5,6,7]
1647 ; AVX2-ONLY-NEXT:    vmovdqa 192(%rdi), %ymm9
1648 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm10 = ymm10[8,9,10,11,12,13,14,15],ymm9[0,1,2,3,4,5,6,7],ymm10[24,25,26,27,28,29,30,31],ymm9[16,17,18,19,20,21,22,23]
1649 ; AVX2-ONLY-NEXT:    vmovdqa 96(%rdi), %xmm15
1650 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm15 = mem[8,9,10,11,12,13,14,15],xmm15[0,1,2,3,4,5,6,7]
1651 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm10 = ymm15[0,1,2,3],ymm10[4,5,6,7]
1652 ; AVX2-ONLY-NEXT:    vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 16-byte Folded Reload
1653 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm4 = ymm15[1],ymm4[1],ymm15[3],ymm4[3]
1654 ; AVX2-ONLY-NEXT:    vpblendd $3, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
1655 ; AVX2-ONLY-NEXT:    # xmm2 = mem[0,1],xmm2[2,3]
1656 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm15 = ymm2[0,1,2,3],ymm4[4,5,6,7]
1657 ; AVX2-ONLY-NEXT:    vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 16-byte Folded Reload
1658 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm2 = ymm2[1],ymm8[1],ymm2[3],ymm8[3]
1659 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm0 = xmm13[0,1],xmm0[2,3]
1660 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm13 = ymm0[0,1,2,3],ymm2[4,5,6,7]
1661 ; AVX2-ONLY-NEXT:    vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 16-byte Folded Reload
1662 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm9[1],ymm0[3],ymm9[3]
1663 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm2 = xmm11[0,1],mem[2,3]
1664 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm11 = ymm2[0,1,2,3],ymm0[4,5,6,7]
1665 ; AVX2-ONLY-NEXT:    vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 16-byte Folded Reload
1666 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm3[1],ymm0[3],ymm3[3]
1667 ; AVX2-ONLY-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
1668 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0,1],mem[2,3]
1669 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
1670 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1671 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 64(%rsi)
1672 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1673 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, (%rsi)
1674 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1675 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 96(%rsi)
1676 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1677 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 32(%rsi)
1678 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1679 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 64(%rdx)
1680 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1681 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, (%rdx)
1682 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1683 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 96(%rdx)
1684 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1685 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 32(%rdx)
1686 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1687 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 64(%rcx)
1688 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1689 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, (%rcx)
1690 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1691 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 96(%rcx)
1692 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1693 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 32(%rcx)
1694 ; AVX2-ONLY-NEXT:    vmovups (%rsp), %ymm2 # 32-byte Reload
1695 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 64(%r8)
1696 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1697 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, (%r8)
1698 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1699 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 32(%r8)
1700 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1701 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 96(%r8)
1702 ; AVX2-ONLY-NEXT:    vmovdqa %ymm5, (%r9)
1703 ; AVX2-ONLY-NEXT:    vmovdqa %ymm12, 64(%r9)
1704 ; AVX2-ONLY-NEXT:    vmovdqa %ymm14, 96(%r9)
1705 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1706 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 32(%r9)
1707 ; AVX2-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1708 ; AVX2-ONLY-NEXT:    vmovdqa %ymm10, (%rax)
1709 ; AVX2-ONLY-NEXT:    vmovdqa %ymm1, 64(%rax)
1710 ; AVX2-ONLY-NEXT:    vmovdqa %ymm7, 96(%rax)
1711 ; AVX2-ONLY-NEXT:    vmovdqa %ymm6, 32(%rax)
1712 ; AVX2-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1713 ; AVX2-ONLY-NEXT:    vmovdqa %ymm0, 64(%rax)
1714 ; AVX2-ONLY-NEXT:    vmovdqa %ymm11, (%rax)
1715 ; AVX2-ONLY-NEXT:    vmovdqa %ymm13, 96(%rax)
1716 ; AVX2-ONLY-NEXT:    vmovdqa %ymm15, 32(%rax)
1717 ; AVX2-ONLY-NEXT:    addq $520, %rsp # imm = 0x208
1718 ; AVX2-ONLY-NEXT:    vzeroupper
1719 ; AVX2-ONLY-NEXT:    retq
1721 ; AVX512F-LABEL: load_i64_stride7_vf16:
1722 ; AVX512F:       # %bb.0:
1723 ; AVX512F-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1724 ; AVX512F-NEXT:    movq {{[0-9]+}}(%rsp), %r10
1725 ; AVX512F-NEXT:    vmovdqa64 832(%rdi), %zmm30
1726 ; AVX512F-NEXT:    vmovdqa64 768(%rdi), %zmm6
1727 ; AVX512F-NEXT:    vmovdqa64 704(%rdi), %zmm0
1728 ; AVX512F-NEXT:    vmovdqa64 640(%rdi), %zmm26
1729 ; AVX512F-NEXT:    vmovdqa64 576(%rdi), %zmm3
1730 ; AVX512F-NEXT:    vmovdqa64 512(%rdi), %zmm27
1731 ; AVX512F-NEXT:    vmovdqa64 448(%rdi), %zmm2
1732 ; AVX512F-NEXT:    vmovdqa64 384(%rdi), %zmm13
1733 ; AVX512F-NEXT:    vmovdqa64 320(%rdi), %zmm15
1734 ; AVX512F-NEXT:    vmovdqa64 256(%rdi), %zmm8
1735 ; AVX512F-NEXT:    vmovdqa64 192(%rdi), %zmm29
1736 ; AVX512F-NEXT:    vmovdqa64 128(%rdi), %zmm9
1737 ; AVX512F-NEXT:    vmovdqa64 64(%rdi), %zmm28
1738 ; AVX512F-NEXT:    vmovdqa64 (%rdi), %zmm1
1739 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm18 = [0,7,14,0,0,7,14,0]
1740 ; AVX512F-NEXT:    # zmm18 = mem[0,1,2,3,0,1,2,3]
1741 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm31
1742 ; AVX512F-NEXT:    vpermt2q %zmm28, %zmm18, %zmm31
1743 ; AVX512F-NEXT:    movb $24, %r11b
1744 ; AVX512F-NEXT:    kmovw %r11d, %k2
1745 ; AVX512F-NEXT:    vshufi64x2 {{.*#+}} zmm31 {%k2} = zmm9[4,5,4,5],zmm29[4,5,4,5]
1746 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm16 = [10,3,10,3,10,3,10,3]
1747 ; AVX512F-NEXT:    # zmm16 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1748 ; AVX512F-NEXT:    vmovdqa64 %zmm8, %zmm14
1749 ; AVX512F-NEXT:    vpermt2q %zmm15, %zmm16, %zmm14
1750 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm17 = [0,5,6,9,0,5,6,9]
1751 ; AVX512F-NEXT:    # zmm17 = mem[0,1,2,3,0,1,2,3]
1752 ; AVX512F-NEXT:    vpermt2q %zmm13, %zmm17, %zmm14
1753 ; AVX512F-NEXT:    movb $-32, %r11b
1754 ; AVX512F-NEXT:    kmovw %r11d, %k1
1755 ; AVX512F-NEXT:    vmovdqa64 %zmm14, %zmm31 {%k1}
1756 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm14
1757 ; AVX512F-NEXT:    vpermt2q %zmm27, %zmm18, %zmm14
1758 ; AVX512F-NEXT:    vshufi64x2 {{.*#+}} zmm14 {%k2} = zmm3[4,5,4,5],zmm26[4,5,4,5]
1759 ; AVX512F-NEXT:    vpermi2q %zmm6, %zmm0, %zmm16
1760 ; AVX512F-NEXT:    vpermt2q %zmm30, %zmm17, %zmm16
1761 ; AVX512F-NEXT:    vmovdqa64 %zmm16, %zmm14 {%k1}
1762 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm24 = [13,6,13,6,13,6,13,6]
1763 ; AVX512F-NEXT:    # zmm24 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1764 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm17
1765 ; AVX512F-NEXT:    vpermt2q %zmm29, %zmm24, %zmm17
1766 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm20 = [9,0,7,0,9,0,7,0]
1767 ; AVX512F-NEXT:    # zmm20 = mem[0,1,2,3,0,1,2,3]
1768 ; AVX512F-NEXT:    vmovdqa64 %zmm28, %zmm16
1769 ; AVX512F-NEXT:    vpermt2q %zmm1, %zmm20, %zmm16
1770 ; AVX512F-NEXT:    vmovdqa64 %zmm17, %zmm16 {%k2}
1771 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm19 = [11,4,11,4,11,4,11,4]
1772 ; AVX512F-NEXT:    # zmm19 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1773 ; AVX512F-NEXT:    vmovdqa64 %zmm8, %zmm17
1774 ; AVX512F-NEXT:    vpermt2q %zmm15, %zmm19, %zmm17
1775 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm21 = [0,5,6,10,0,5,6,10]
1776 ; AVX512F-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3]
1777 ; AVX512F-NEXT:    vpermt2q %zmm13, %zmm21, %zmm17
1778 ; AVX512F-NEXT:    vmovdqa64 %zmm17, %zmm16 {%k1}
1779 ; AVX512F-NEXT:    vmovdqa64 %zmm3, %zmm22
1780 ; AVX512F-NEXT:    vpermt2q %zmm26, %zmm24, %zmm22
1781 ; AVX512F-NEXT:    vmovdqa64 %zmm27, %zmm17
1782 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm20, %zmm17
1783 ; AVX512F-NEXT:    vmovdqa64 %zmm22, %zmm17 {%k2}
1784 ; AVX512F-NEXT:    vpermi2q %zmm6, %zmm0, %zmm19
1785 ; AVX512F-NEXT:    vpermt2q %zmm30, %zmm21, %zmm19
1786 ; AVX512F-NEXT:    vmovdqa64 %zmm19, %zmm17 {%k1}
1787 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm22 = [12,5,12,5,12,5,12,5]
1788 ; AVX512F-NEXT:    # zmm22 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1789 ; AVX512F-NEXT:    vmovdqa64 %zmm8, %zmm21
1790 ; AVX512F-NEXT:    vpermt2q %zmm15, %zmm22, %zmm21
1791 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm23 = [0,5,6,11,0,5,6,11]
1792 ; AVX512F-NEXT:    # zmm23 = mem[0,1,2,3,0,1,2,3]
1793 ; AVX512F-NEXT:    vpermt2q %zmm13, %zmm23, %zmm21
1794 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm25 = [14,0,0,7,14,0,0,7]
1795 ; AVX512F-NEXT:    # zmm25 = mem[0,1,2,3,0,1,2,3]
1796 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm19
1797 ; AVX512F-NEXT:    vpermt2q %zmm29, %zmm25, %zmm19
1798 ; AVX512F-NEXT:    vmovdqa 16(%rdi), %xmm5
1799 ; AVX512F-NEXT:    vpblendd {{.*#+}} xmm5 = xmm5[0,1],mem[2,3]
1800 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm5, %zmm19, %zmm19
1801 ; AVX512F-NEXT:    vmovdqa64 %zmm21, %zmm19 {%k1}
1802 ; AVX512F-NEXT:    vpermi2q %zmm6, %zmm0, %zmm22
1803 ; AVX512F-NEXT:    vpermt2q %zmm30, %zmm23, %zmm22
1804 ; AVX512F-NEXT:    vpermi2q %zmm26, %zmm3, %zmm25
1805 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
1806 ; AVX512F-NEXT:    vmovdqa 464(%rdi), %xmm5
1807 ; AVX512F-NEXT:    vpblendd {{.*#+}} xmm5 = xmm5[0,1],mem[2,3]
1808 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm5, %zmm25, %zmm21
1809 ; AVX512F-NEXT:    vmovdqa64 %zmm22, %zmm21 {%k1}
1810 ; AVX512F-NEXT:    vmovdqa64 %zmm8, %zmm5
1811 ; AVX512F-NEXT:    vpermt2q %zmm15, %zmm24, %zmm5
1812 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm23 = [0,5,6,12,0,5,6,12]
1813 ; AVX512F-NEXT:    # zmm23 = mem[0,1,2,3,0,1,2,3]
1814 ; AVX512F-NEXT:    vpermt2q %zmm13, %zmm23, %zmm5
1815 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm25 = [7,0,9,0,7,0,9,0]
1816 ; AVX512F-NEXT:    # zmm25 = mem[0,1,2,3,0,1,2,3]
1817 ; AVX512F-NEXT:    vmovdqa64 %zmm29, %zmm22
1818 ; AVX512F-NEXT:    vpermt2q %zmm9, %zmm25, %zmm22
1819 ; AVX512F-NEXT:    vmovdqa 64(%rdi), %ymm4
1820 ; AVX512F-NEXT:    vpalignr {{.*#+}} ymm4 = mem[8,9,10,11,12,13,14,15],ymm4[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm4[16,17,18,19,20,21,22,23]
1821 ; AVX512F-NEXT:    vextracti128 $1, %ymm4, %xmm4
1822 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm4, %zmm22, %zmm22
1823 ; AVX512F-NEXT:    vmovdqa64 %zmm5, %zmm22 {%k1}
1824 ; AVX512F-NEXT:    vpermi2q %zmm6, %zmm0, %zmm24
1825 ; AVX512F-NEXT:    vpermt2q %zmm30, %zmm23, %zmm24
1826 ; AVX512F-NEXT:    vpermi2q %zmm3, %zmm26, %zmm25
1827 ; AVX512F-NEXT:    vmovdqa 512(%rdi), %ymm4
1828 ; AVX512F-NEXT:    vpalignr {{.*#+}} ymm4 = mem[8,9,10,11,12,13,14,15],ymm4[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm4[16,17,18,19,20,21,22,23]
1829 ; AVX512F-NEXT:    vextracti128 $1, %ymm4, %xmm4
1830 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm4, %zmm25, %zmm23
1831 ; AVX512F-NEXT:    vmovdqa64 %zmm24, %zmm23 {%k1}
1832 ; AVX512F-NEXT:    vmovdqa64 %zmm8, %zmm4
1833 ; AVX512F-NEXT:    vpermt2q %zmm15, %zmm18, %zmm4
1834 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [4,5,6,13,4,5,6,13]
1835 ; AVX512F-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
1836 ; AVX512F-NEXT:    vpermt2q %zmm13, %zmm5, %zmm4
1837 ; AVX512F-NEXT:    vinserti128 $1, 192(%rdi), %ymm0, %ymm11
1838 ; AVX512F-NEXT:    vmovdqa 128(%rdi), %ymm12
1839 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm11 = ymm12[0,1,2,3,4,5],ymm11[6,7]
1840 ; AVX512F-NEXT:    vmovdqa {{.*#+}} xmm3 = [4,11]
1841 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm10
1842 ; AVX512F-NEXT:    vpermt2q %zmm28, %zmm3, %zmm10
1843 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm10 = ymm10[0,1,2,3],ymm11[4,5,6,7]
1844 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm10, %zmm4, %zmm24
1845 ; AVX512F-NEXT:    vpermi2q %zmm6, %zmm0, %zmm18
1846 ; AVX512F-NEXT:    vpermt2q %zmm30, %zmm5, %zmm18
1847 ; AVX512F-NEXT:    vinserti128 $1, 640(%rdi), %ymm0, %ymm4
1848 ; AVX512F-NEXT:    vmovdqa 576(%rdi), %ymm5
1849 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm4 = ymm5[0,1,2,3,4,5],ymm4[6,7]
1850 ; AVX512F-NEXT:    vpermi2q %zmm27, %zmm2, %zmm3
1851 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm4[4,5,6,7]
1852 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm3, %zmm18, %zmm3
1853 ; AVX512F-NEXT:    vmovdqa64 %zmm15, %zmm4
1854 ; AVX512F-NEXT:    vpermt2q %zmm8, %zmm20, %zmm4
1855 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [4,5,6,14,4,5,6,14]
1856 ; AVX512F-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
1857 ; AVX512F-NEXT:    vpermt2q %zmm13, %zmm10, %zmm4
1858 ; AVX512F-NEXT:    vmovdqa 192(%rdi), %ymm11
1859 ; AVX512F-NEXT:    vpalignr {{.*#+}} ymm11 = ymm12[8,9,10,11,12,13,14,15],ymm11[0,1,2,3,4,5,6,7],ymm12[24,25,26,27,28,29,30,31],ymm11[16,17,18,19,20,21,22,23]
1860 ; AVX512F-NEXT:    vmovdqa {{.*#+}} xmm12 = [5,12]
1861 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm7
1862 ; AVX512F-NEXT:    vpermt2q %zmm28, %zmm12, %zmm7
1863 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3],ymm11[4,5,6,7]
1864 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm7, %zmm4, %zmm4
1865 ; AVX512F-NEXT:    vpermi2q %zmm0, %zmm6, %zmm20
1866 ; AVX512F-NEXT:    vpermt2q %zmm30, %zmm10, %zmm20
1867 ; AVX512F-NEXT:    vmovdqa 640(%rdi), %ymm7
1868 ; AVX512F-NEXT:    vpalignr {{.*#+}} ymm5 = ymm5[8,9,10,11,12,13,14,15],ymm7[0,1,2,3,4,5,6,7],ymm5[24,25,26,27,28,29,30,31],ymm7[16,17,18,19,20,21,22,23]
1869 ; AVX512F-NEXT:    vpermi2q %zmm27, %zmm2, %zmm12
1870 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm5 = ymm12[0,1,2,3],ymm5[4,5,6,7]
1871 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm5, %zmm20, %zmm5
1872 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm7 = [2,9,2,9,2,9,2,9]
1873 ; AVX512F-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1874 ; AVX512F-NEXT:    vpermt2q %zmm15, %zmm7, %zmm8
1875 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [4,5,8,15,4,5,8,15]
1876 ; AVX512F-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
1877 ; AVX512F-NEXT:    vpermt2q %zmm13, %zmm10, %zmm8
1878 ; AVX512F-NEXT:    vbroadcasti128 {{.*#+}} ymm11 = [4,11,4,11]
1879 ; AVX512F-NEXT:    # ymm11 = mem[0,1,0,1]
1880 ; AVX512F-NEXT:    vpermt2q %zmm29, %zmm11, %zmm9
1881 ; AVX512F-NEXT:    vmovdqa {{.*#+}} xmm12 = [6,13]
1882 ; AVX512F-NEXT:    vpermt2q %zmm28, %zmm12, %zmm1
1883 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm9[4,5,6,7]
1884 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm1, %zmm8, %zmm1
1885 ; AVX512F-NEXT:    vpermt2q %zmm6, %zmm7, %zmm0
1886 ; AVX512F-NEXT:    vpermt2q %zmm30, %zmm10, %zmm0
1887 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
1888 ; AVX512F-NEXT:    vpermt2q %zmm26, %zmm11, %zmm6
1889 ; AVX512F-NEXT:    vpermt2q %zmm27, %zmm12, %zmm2
1890 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm6[4,5,6,7]
1891 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm0
1892 ; AVX512F-NEXT:    vmovdqa64 %zmm14, 64(%rsi)
1893 ; AVX512F-NEXT:    vmovdqa64 %zmm31, (%rsi)
1894 ; AVX512F-NEXT:    vmovdqa64 %zmm17, 64(%rdx)
1895 ; AVX512F-NEXT:    vmovdqa64 %zmm16, (%rdx)
1896 ; AVX512F-NEXT:    vmovdqa64 %zmm21, 64(%rcx)
1897 ; AVX512F-NEXT:    vmovdqa64 %zmm19, (%rcx)
1898 ; AVX512F-NEXT:    vmovdqa64 %zmm23, 64(%r8)
1899 ; AVX512F-NEXT:    vmovdqa64 %zmm22, (%r8)
1900 ; AVX512F-NEXT:    vmovdqa64 %zmm3, 64(%r9)
1901 ; AVX512F-NEXT:    vmovdqa64 %zmm24, (%r9)
1902 ; AVX512F-NEXT:    vmovdqa64 %zmm5, 64(%r10)
1903 ; AVX512F-NEXT:    vmovdqa64 %zmm4, (%r10)
1904 ; AVX512F-NEXT:    vmovdqa64 %zmm0, 64(%rax)
1905 ; AVX512F-NEXT:    vmovdqa64 %zmm1, (%rax)
1906 ; AVX512F-NEXT:    vzeroupper
1907 ; AVX512F-NEXT:    retq
1909 ; AVX512BW-LABEL: load_i64_stride7_vf16:
1910 ; AVX512BW:       # %bb.0:
1911 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1912 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %r10
1913 ; AVX512BW-NEXT:    vmovdqa64 832(%rdi), %zmm3
1914 ; AVX512BW-NEXT:    vmovdqa64 768(%rdi), %zmm6
1915 ; AVX512BW-NEXT:    vmovdqa64 704(%rdi), %zmm0
1916 ; AVX512BW-NEXT:    vmovdqa64 640(%rdi), %zmm26
1917 ; AVX512BW-NEXT:    vmovdqa64 576(%rdi), %zmm4
1918 ; AVX512BW-NEXT:    vmovdqa64 512(%rdi), %zmm28
1919 ; AVX512BW-NEXT:    vmovdqa64 448(%rdi), %zmm2
1920 ; AVX512BW-NEXT:    vmovdqa64 384(%rdi), %zmm13
1921 ; AVX512BW-NEXT:    vmovdqa64 320(%rdi), %zmm15
1922 ; AVX512BW-NEXT:    vmovdqa64 256(%rdi), %zmm8
1923 ; AVX512BW-NEXT:    vmovdqa64 192(%rdi), %zmm30
1924 ; AVX512BW-NEXT:    vmovdqa64 128(%rdi), %zmm9
1925 ; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %zmm29
1926 ; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm1
1927 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm18 = [0,7,14,0,0,7,14,0]
1928 ; AVX512BW-NEXT:    # zmm18 = mem[0,1,2,3,0,1,2,3]
1929 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm31
1930 ; AVX512BW-NEXT:    vpermt2q %zmm29, %zmm18, %zmm31
1931 ; AVX512BW-NEXT:    movb $24, %r11b
1932 ; AVX512BW-NEXT:    kmovd %r11d, %k2
1933 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm31 {%k2} = zmm9[4,5,4,5],zmm30[4,5,4,5]
1934 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm16 = [10,3,10,3,10,3,10,3]
1935 ; AVX512BW-NEXT:    # zmm16 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1936 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm14
1937 ; AVX512BW-NEXT:    vpermt2q %zmm15, %zmm16, %zmm14
1938 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm17 = [0,5,6,9,0,5,6,9]
1939 ; AVX512BW-NEXT:    # zmm17 = mem[0,1,2,3,0,1,2,3]
1940 ; AVX512BW-NEXT:    vpermt2q %zmm13, %zmm17, %zmm14
1941 ; AVX512BW-NEXT:    movb $-32, %r11b
1942 ; AVX512BW-NEXT:    kmovd %r11d, %k1
1943 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, %zmm31 {%k1}
1944 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm14
1945 ; AVX512BW-NEXT:    vpermt2q %zmm28, %zmm18, %zmm14
1946 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm14 {%k2} = zmm4[4,5,4,5],zmm26[4,5,4,5]
1947 ; AVX512BW-NEXT:    vpermi2q %zmm6, %zmm0, %zmm16
1948 ; AVX512BW-NEXT:    vpermt2q %zmm3, %zmm17, %zmm16
1949 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, %zmm14 {%k1}
1950 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm24 = [13,6,13,6,13,6,13,6]
1951 ; AVX512BW-NEXT:    # zmm24 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1952 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm17
1953 ; AVX512BW-NEXT:    vpermt2q %zmm30, %zmm24, %zmm17
1954 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm20 = [9,0,7,0,9,0,7,0]
1955 ; AVX512BW-NEXT:    # zmm20 = mem[0,1,2,3,0,1,2,3]
1956 ; AVX512BW-NEXT:    vmovdqa64 %zmm29, %zmm16
1957 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm20, %zmm16
1958 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm16 {%k2}
1959 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm19 = [11,4,11,4,11,4,11,4]
1960 ; AVX512BW-NEXT:    # zmm19 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1961 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm17
1962 ; AVX512BW-NEXT:    vpermt2q %zmm15, %zmm19, %zmm17
1963 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm21 = [0,5,6,10,0,5,6,10]
1964 ; AVX512BW-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3]
1965 ; AVX512BW-NEXT:    vpermt2q %zmm13, %zmm21, %zmm17
1966 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm16 {%k1}
1967 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm22
1968 ; AVX512BW-NEXT:    vpermt2q %zmm26, %zmm24, %zmm22
1969 ; AVX512BW-NEXT:    vmovdqa64 %zmm28, %zmm17
1970 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm20, %zmm17
1971 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm17 {%k2}
1972 ; AVX512BW-NEXT:    vpermi2q %zmm6, %zmm0, %zmm19
1973 ; AVX512BW-NEXT:    vpermt2q %zmm3, %zmm21, %zmm19
1974 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm17 {%k1}
1975 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm22 = [12,5,12,5,12,5,12,5]
1976 ; AVX512BW-NEXT:    # zmm22 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1977 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm21
1978 ; AVX512BW-NEXT:    vpermt2q %zmm15, %zmm22, %zmm21
1979 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm23 = [0,5,6,11,0,5,6,11]
1980 ; AVX512BW-NEXT:    # zmm23 = mem[0,1,2,3,0,1,2,3]
1981 ; AVX512BW-NEXT:    vpermt2q %zmm13, %zmm23, %zmm21
1982 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm25 = [14,0,0,7,14,0,0,7]
1983 ; AVX512BW-NEXT:    # zmm25 = mem[0,1,2,3,0,1,2,3]
1984 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm19
1985 ; AVX512BW-NEXT:    vpermt2q %zmm30, %zmm25, %zmm19
1986 ; AVX512BW-NEXT:    vmovdqa 16(%rdi), %xmm5
1987 ; AVX512BW-NEXT:    vpblendd {{.*#+}} xmm5 = xmm5[0,1],mem[2,3]
1988 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm5, %zmm19, %zmm19
1989 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, %zmm19 {%k1}
1990 ; AVX512BW-NEXT:    vpermi2q %zmm6, %zmm0, %zmm22
1991 ; AVX512BW-NEXT:    vpermt2q %zmm3, %zmm23, %zmm22
1992 ; AVX512BW-NEXT:    vpermi2q %zmm26, %zmm4, %zmm25
1993 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
1994 ; AVX512BW-NEXT:    vmovdqa 464(%rdi), %xmm5
1995 ; AVX512BW-NEXT:    vpblendd {{.*#+}} xmm5 = xmm5[0,1],mem[2,3]
1996 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm5, %zmm25, %zmm21
1997 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm21 {%k1}
1998 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm5
1999 ; AVX512BW-NEXT:    vpermt2q %zmm15, %zmm24, %zmm5
2000 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm23 = [0,5,6,12,0,5,6,12]
2001 ; AVX512BW-NEXT:    # zmm23 = mem[0,1,2,3,0,1,2,3]
2002 ; AVX512BW-NEXT:    vpermt2q %zmm13, %zmm23, %zmm5
2003 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm25 = [7,0,9,0,7,0,9,0]
2004 ; AVX512BW-NEXT:    # zmm25 = mem[0,1,2,3,0,1,2,3]
2005 ; AVX512BW-NEXT:    vmovdqa64 %zmm30, %zmm22
2006 ; AVX512BW-NEXT:    vpermt2q %zmm9, %zmm25, %zmm22
2007 ; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %ymm27
2008 ; AVX512BW-NEXT:    vpalignr {{.*#+}} ymm27 = mem[8,9,10,11,12,13,14,15],ymm27[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm27[16,17,18,19,20,21,22,23]
2009 ; AVX512BW-NEXT:    vextracti32x4 $1, %ymm27, %xmm27
2010 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm27, %zmm22, %zmm22
2011 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm22 {%k1}
2012 ; AVX512BW-NEXT:    vpermi2q %zmm6, %zmm0, %zmm24
2013 ; AVX512BW-NEXT:    vpermt2q %zmm3, %zmm23, %zmm24
2014 ; AVX512BW-NEXT:    vpermi2q %zmm4, %zmm26, %zmm25
2015 ; AVX512BW-NEXT:    vmovdqa 512(%rdi), %ymm5
2016 ; AVX512BW-NEXT:    vpalignr {{.*#+}} ymm5 = mem[8,9,10,11,12,13,14,15],ymm5[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm5[16,17,18,19,20,21,22,23]
2017 ; AVX512BW-NEXT:    vextracti128 $1, %ymm5, %xmm5
2018 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm5, %zmm25, %zmm23
2019 ; AVX512BW-NEXT:    vmovdqa64 %zmm24, %zmm23 {%k1}
2020 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm5
2021 ; AVX512BW-NEXT:    vpermt2q %zmm15, %zmm18, %zmm5
2022 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm25 = [4,5,6,13,4,5,6,13]
2023 ; AVX512BW-NEXT:    # zmm25 = mem[0,1,2,3,0,1,2,3]
2024 ; AVX512BW-NEXT:    vpermt2q %zmm13, %zmm25, %zmm5
2025 ; AVX512BW-NEXT:    vinserti128 $1, 192(%rdi), %ymm0, %ymm4
2026 ; AVX512BW-NEXT:    vmovdqa 128(%rdi), %ymm11
2027 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm4 = ymm11[0,1,2,3,4,5],ymm4[6,7]
2028 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} xmm12 = [4,11]
2029 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm10
2030 ; AVX512BW-NEXT:    vpermt2q %zmm29, %zmm12, %zmm10
2031 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm4 = ymm10[0,1,2,3],ymm4[4,5,6,7]
2032 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm4, %zmm5, %zmm24
2033 ; AVX512BW-NEXT:    vpermi2q %zmm6, %zmm0, %zmm18
2034 ; AVX512BW-NEXT:    vpermt2q %zmm3, %zmm25, %zmm18
2035 ; AVX512BW-NEXT:    vinserti128 $1, 640(%rdi), %ymm0, %ymm4
2036 ; AVX512BW-NEXT:    vmovdqa 576(%rdi), %ymm5
2037 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm4 = ymm5[0,1,2,3,4,5],ymm4[6,7]
2038 ; AVX512BW-NEXT:    vpermi2q %zmm28, %zmm2, %zmm12
2039 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm4 = ymm12[0,1,2,3],ymm4[4,5,6,7]
2040 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm4, %zmm18, %zmm25
2041 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm10
2042 ; AVX512BW-NEXT:    vpermt2q %zmm8, %zmm20, %zmm10
2043 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm12 = [4,5,6,14,4,5,6,14]
2044 ; AVX512BW-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3]
2045 ; AVX512BW-NEXT:    vpermt2q %zmm13, %zmm12, %zmm10
2046 ; AVX512BW-NEXT:    vmovdqa64 192(%rdi), %ymm18
2047 ; AVX512BW-NEXT:    vpalignr {{.*#+}} ymm11 = ymm11[8,9,10,11,12,13,14,15],ymm18[0,1,2,3,4,5,6,7],ymm11[24,25,26,27,28,29,30,31],ymm18[16,17,18,19,20,21,22,23]
2048 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} xmm4 = [5,12]
2049 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm7
2050 ; AVX512BW-NEXT:    vpermt2q %zmm29, %zmm4, %zmm7
2051 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3],ymm11[4,5,6,7]
2052 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm7, %zmm10, %zmm7
2053 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm6, %zmm20
2054 ; AVX512BW-NEXT:    vpermt2q %zmm3, %zmm12, %zmm20
2055 ; AVX512BW-NEXT:    vmovdqa 640(%rdi), %ymm10
2056 ; AVX512BW-NEXT:    vpalignr {{.*#+}} ymm5 = ymm5[8,9,10,11,12,13,14,15],ymm10[0,1,2,3,4,5,6,7],ymm5[24,25,26,27,28,29,30,31],ymm10[16,17,18,19,20,21,22,23]
2057 ; AVX512BW-NEXT:    vpermi2q %zmm28, %zmm2, %zmm4
2058 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm5[4,5,6,7]
2059 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm4, %zmm20, %zmm4
2060 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm5 = [2,9,2,9,2,9,2,9]
2061 ; AVX512BW-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2062 ; AVX512BW-NEXT:    vpermt2q %zmm15, %zmm5, %zmm8
2063 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [4,5,8,15,4,5,8,15]
2064 ; AVX512BW-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
2065 ; AVX512BW-NEXT:    vpermt2q %zmm13, %zmm10, %zmm8
2066 ; AVX512BW-NEXT:    vbroadcasti128 {{.*#+}} ymm11 = [4,11,4,11]
2067 ; AVX512BW-NEXT:    # ymm11 = mem[0,1,0,1]
2068 ; AVX512BW-NEXT:    vpermt2q %zmm30, %zmm11, %zmm9
2069 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} xmm12 = [6,13]
2070 ; AVX512BW-NEXT:    vpermt2q %zmm29, %zmm12, %zmm1
2071 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm9[4,5,6,7]
2072 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm8, %zmm1
2073 ; AVX512BW-NEXT:    vpermt2q %zmm6, %zmm5, %zmm0
2074 ; AVX512BW-NEXT:    vpermt2q %zmm3, %zmm10, %zmm0
2075 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
2076 ; AVX512BW-NEXT:    vpermt2q %zmm26, %zmm11, %zmm3
2077 ; AVX512BW-NEXT:    vpermt2q %zmm28, %zmm12, %zmm2
2078 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
2079 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm0
2080 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, 64(%rsi)
2081 ; AVX512BW-NEXT:    vmovdqa64 %zmm31, (%rsi)
2082 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, 64(%rdx)
2083 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, (%rdx)
2084 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, 64(%rcx)
2085 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, (%rcx)
2086 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, 64(%r8)
2087 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, (%r8)
2088 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, 64(%r9)
2089 ; AVX512BW-NEXT:    vmovdqa64 %zmm24, (%r9)
2090 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, 64(%r10)
2091 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, (%r10)
2092 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, 64(%rax)
2093 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, (%rax)
2094 ; AVX512BW-NEXT:    vzeroupper
2095 ; AVX512BW-NEXT:    retq
2096   %wide.vec = load <112 x i64>, ptr %in.vec, align 64
2097   %strided.vec0 = shufflevector <112 x i64> %wide.vec, <112 x i64> poison, <16 x i32> <i32 0, i32 7, i32 14, i32 21, i32 28, i32 35, i32 42, i32 49, i32 56, i32 63, i32 70, i32 77, i32 84, i32 91, i32 98, i32 105>
2098   %strided.vec1 = shufflevector <112 x i64> %wide.vec, <112 x i64> poison, <16 x i32> <i32 1, i32 8, i32 15, i32 22, i32 29, i32 36, i32 43, i32 50, i32 57, i32 64, i32 71, i32 78, i32 85, i32 92, i32 99, i32 106>
2099   %strided.vec2 = shufflevector <112 x i64> %wide.vec, <112 x i64> poison, <16 x i32> <i32 2, i32 9, i32 16, i32 23, i32 30, i32 37, i32 44, i32 51, i32 58, i32 65, i32 72, i32 79, i32 86, i32 93, i32 100, i32 107>
2100   %strided.vec3 = shufflevector <112 x i64> %wide.vec, <112 x i64> poison, <16 x i32> <i32 3, i32 10, i32 17, i32 24, i32 31, i32 38, i32 45, i32 52, i32 59, i32 66, i32 73, i32 80, i32 87, i32 94, i32 101, i32 108>
2101   %strided.vec4 = shufflevector <112 x i64> %wide.vec, <112 x i64> poison, <16 x i32> <i32 4, i32 11, i32 18, i32 25, i32 32, i32 39, i32 46, i32 53, i32 60, i32 67, i32 74, i32 81, i32 88, i32 95, i32 102, i32 109>
2102   %strided.vec5 = shufflevector <112 x i64> %wide.vec, <112 x i64> poison, <16 x i32> <i32 5, i32 12, i32 19, i32 26, i32 33, i32 40, i32 47, i32 54, i32 61, i32 68, i32 75, i32 82, i32 89, i32 96, i32 103, i32 110>
2103   %strided.vec6 = shufflevector <112 x i64> %wide.vec, <112 x i64> poison, <16 x i32> <i32 6, i32 13, i32 20, i32 27, i32 34, i32 41, i32 48, i32 55, i32 62, i32 69, i32 76, i32 83, i32 90, i32 97, i32 104, i32 111>
2104   store <16 x i64> %strided.vec0, ptr %out.vec0, align 64
2105   store <16 x i64> %strided.vec1, ptr %out.vec1, align 64
2106   store <16 x i64> %strided.vec2, ptr %out.vec2, align 64
2107   store <16 x i64> %strided.vec3, ptr %out.vec3, align 64
2108   store <16 x i64> %strided.vec4, ptr %out.vec4, align 64
2109   store <16 x i64> %strided.vec5, ptr %out.vec5, align 64
2110   store <16 x i64> %strided.vec6, ptr %out.vec6, align 64
2111   ret void
2114 define void @load_i64_stride7_vf32(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4, ptr %out.vec5, ptr %out.vec6) nounwind {
2115 ; SSE-LABEL: load_i64_stride7_vf32:
2116 ; SSE:       # %bb.0:
2117 ; SSE-NEXT:    subq $1448, %rsp # imm = 0x5A8
2118 ; SSE-NEXT:    movapd 208(%rdi), %xmm3
2119 ; SSE-NEXT:    movapd 96(%rdi), %xmm2
2120 ; SSE-NEXT:    movapd 144(%rdi), %xmm4
2121 ; SSE-NEXT:    movapd 192(%rdi), %xmm6
2122 ; SSE-NEXT:    movapd 80(%rdi), %xmm5
2123 ; SSE-NEXT:    movapd 128(%rdi), %xmm8
2124 ; SSE-NEXT:    movapd 64(%rdi), %xmm10
2125 ; SSE-NEXT:    movapd 176(%rdi), %xmm11
2126 ; SSE-NEXT:    movapd (%rdi), %xmm12
2127 ; SSE-NEXT:    movapd 16(%rdi), %xmm9
2128 ; SSE-NEXT:    movapd 32(%rdi), %xmm7
2129 ; SSE-NEXT:    movapd 48(%rdi), %xmm0
2130 ; SSE-NEXT:    movapd 224(%rdi), %xmm13
2131 ; SSE-NEXT:    movapd 112(%rdi), %xmm14
2132 ; SSE-NEXT:    movapd 160(%rdi), %xmm1
2133 ; SSE-NEXT:    movapd %xmm0, %xmm15
2134 ; SSE-NEXT:    movsd {{.*#+}} xmm15 = xmm12[0],xmm15[1]
2135 ; SSE-NEXT:    movapd %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2136 ; SSE-NEXT:    shufpd {{.*#+}} xmm12 = xmm12[1],xmm10[0]
2137 ; SSE-NEXT:    movapd %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2138 ; SSE-NEXT:    movsd {{.*#+}} xmm10 = xmm9[0],xmm10[1]
2139 ; SSE-NEXT:    movapd %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2140 ; SSE-NEXT:    shufpd {{.*#+}} xmm9 = xmm9[1],xmm5[0]
2141 ; SSE-NEXT:    movapd %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2142 ; SSE-NEXT:    movsd {{.*#+}} xmm5 = xmm7[0],xmm5[1]
2143 ; SSE-NEXT:    movapd %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2144 ; SSE-NEXT:    shufpd {{.*#+}} xmm7 = xmm7[1],xmm2[0]
2145 ; SSE-NEXT:    movapd %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2146 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm0[0],xmm2[1]
2147 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2148 ; SSE-NEXT:    movapd %xmm1, %xmm0
2149 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm14[0],xmm0[1]
2150 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2151 ; SSE-NEXT:    shufpd {{.*#+}} xmm14 = xmm14[1],xmm11[0]
2152 ; SSE-NEXT:    movapd %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2153 ; SSE-NEXT:    movsd {{.*#+}} xmm11 = xmm8[0],xmm11[1]
2154 ; SSE-NEXT:    movapd %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2155 ; SSE-NEXT:    shufpd {{.*#+}} xmm8 = xmm8[1],xmm6[0]
2156 ; SSE-NEXT:    movapd %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2157 ; SSE-NEXT:    movsd {{.*#+}} xmm6 = xmm4[0],xmm6[1]
2158 ; SSE-NEXT:    movapd %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2159 ; SSE-NEXT:    shufpd {{.*#+}} xmm4 = xmm4[1],xmm3[0]
2160 ; SSE-NEXT:    movapd %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2161 ; SSE-NEXT:    movsd {{.*#+}} xmm3 = xmm1[0],xmm3[1]
2162 ; SSE-NEXT:    movapd %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2163 ; SSE-NEXT:    movapd 272(%rdi), %xmm0
2164 ; SSE-NEXT:    movapd %xmm0, %xmm1
2165 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm13[0],xmm1[1]
2166 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2167 ; SSE-NEXT:    movapd 288(%rdi), %xmm1
2168 ; SSE-NEXT:    shufpd {{.*#+}} xmm13 = xmm13[1],xmm1[0]
2169 ; SSE-NEXT:    movapd %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2170 ; SSE-NEXT:    movapd 240(%rdi), %xmm2
2171 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2172 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2173 ; SSE-NEXT:    movapd 304(%rdi), %xmm1
2174 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2175 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2176 ; SSE-NEXT:    movapd 256(%rdi), %xmm2
2177 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2178 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2179 ; SSE-NEXT:    movapd 320(%rdi), %xmm1
2180 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2181 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2182 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2183 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2184 ; SSE-NEXT:    movapd 336(%rdi), %xmm2
2185 ; SSE-NEXT:    movapd 384(%rdi), %xmm0
2186 ; SSE-NEXT:    movapd %xmm0, %xmm1
2187 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2188 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2189 ; SSE-NEXT:    movapd 400(%rdi), %xmm1
2190 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2191 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2192 ; SSE-NEXT:    movapd 352(%rdi), %xmm2
2193 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2194 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2195 ; SSE-NEXT:    movapd 416(%rdi), %xmm1
2196 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2197 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2198 ; SSE-NEXT:    movapd 368(%rdi), %xmm2
2199 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2200 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2201 ; SSE-NEXT:    movapd 432(%rdi), %xmm1
2202 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2203 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2204 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2205 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2206 ; SSE-NEXT:    movapd 448(%rdi), %xmm2
2207 ; SSE-NEXT:    movapd 496(%rdi), %xmm0
2208 ; SSE-NEXT:    movapd %xmm0, %xmm1
2209 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2210 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2211 ; SSE-NEXT:    movapd 512(%rdi), %xmm1
2212 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2213 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2214 ; SSE-NEXT:    movapd 464(%rdi), %xmm2
2215 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2216 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2217 ; SSE-NEXT:    movapd 528(%rdi), %xmm1
2218 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2219 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2220 ; SSE-NEXT:    movapd 480(%rdi), %xmm2
2221 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2222 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2223 ; SSE-NEXT:    movapd 544(%rdi), %xmm1
2224 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2225 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2226 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2227 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2228 ; SSE-NEXT:    movapd 560(%rdi), %xmm2
2229 ; SSE-NEXT:    movapd 608(%rdi), %xmm0
2230 ; SSE-NEXT:    movapd %xmm0, %xmm1
2231 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2232 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2233 ; SSE-NEXT:    movapd 624(%rdi), %xmm1
2234 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2235 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2236 ; SSE-NEXT:    movapd 576(%rdi), %xmm2
2237 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2238 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2239 ; SSE-NEXT:    movapd 640(%rdi), %xmm1
2240 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2241 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2242 ; SSE-NEXT:    movapd 592(%rdi), %xmm2
2243 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2244 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2245 ; SSE-NEXT:    movapd 656(%rdi), %xmm1
2246 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2247 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2248 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2249 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2250 ; SSE-NEXT:    movapd 672(%rdi), %xmm2
2251 ; SSE-NEXT:    movapd 720(%rdi), %xmm0
2252 ; SSE-NEXT:    movapd %xmm0, %xmm1
2253 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2254 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2255 ; SSE-NEXT:    movapd 736(%rdi), %xmm1
2256 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2257 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2258 ; SSE-NEXT:    movapd 688(%rdi), %xmm2
2259 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2260 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2261 ; SSE-NEXT:    movapd 752(%rdi), %xmm1
2262 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2263 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2264 ; SSE-NEXT:    movapd 704(%rdi), %xmm2
2265 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2266 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2267 ; SSE-NEXT:    movapd 768(%rdi), %xmm1
2268 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2269 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2270 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2271 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2272 ; SSE-NEXT:    movapd 784(%rdi), %xmm2
2273 ; SSE-NEXT:    movapd 832(%rdi), %xmm0
2274 ; SSE-NEXT:    movapd %xmm0, %xmm1
2275 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2276 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2277 ; SSE-NEXT:    movapd 848(%rdi), %xmm1
2278 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2279 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2280 ; SSE-NEXT:    movapd 800(%rdi), %xmm2
2281 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2282 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2283 ; SSE-NEXT:    movapd 864(%rdi), %xmm1
2284 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2285 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2286 ; SSE-NEXT:    movapd 816(%rdi), %xmm2
2287 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2288 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2289 ; SSE-NEXT:    movapd 880(%rdi), %xmm1
2290 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2291 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2292 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2293 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2294 ; SSE-NEXT:    movapd 896(%rdi), %xmm2
2295 ; SSE-NEXT:    movapd 944(%rdi), %xmm0
2296 ; SSE-NEXT:    movapd %xmm0, %xmm1
2297 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2298 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2299 ; SSE-NEXT:    movapd 960(%rdi), %xmm1
2300 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2301 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2302 ; SSE-NEXT:    movapd 912(%rdi), %xmm2
2303 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2304 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2305 ; SSE-NEXT:    movapd 976(%rdi), %xmm1
2306 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2307 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2308 ; SSE-NEXT:    movapd 928(%rdi), %xmm2
2309 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2310 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2311 ; SSE-NEXT:    movapd 992(%rdi), %xmm1
2312 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2313 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2314 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2315 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2316 ; SSE-NEXT:    movapd 1008(%rdi), %xmm2
2317 ; SSE-NEXT:    movapd 1056(%rdi), %xmm0
2318 ; SSE-NEXT:    movapd %xmm0, %xmm1
2319 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2320 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2321 ; SSE-NEXT:    movapd 1072(%rdi), %xmm1
2322 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2323 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2324 ; SSE-NEXT:    movapd 1024(%rdi), %xmm2
2325 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2326 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2327 ; SSE-NEXT:    movapd 1088(%rdi), %xmm1
2328 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2329 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2330 ; SSE-NEXT:    movapd 1040(%rdi), %xmm2
2331 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2332 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2333 ; SSE-NEXT:    movapd 1104(%rdi), %xmm1
2334 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2335 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2336 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2337 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2338 ; SSE-NEXT:    movapd 1120(%rdi), %xmm2
2339 ; SSE-NEXT:    movapd 1168(%rdi), %xmm0
2340 ; SSE-NEXT:    movapd %xmm0, %xmm1
2341 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2342 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2343 ; SSE-NEXT:    movapd 1184(%rdi), %xmm1
2344 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2345 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2346 ; SSE-NEXT:    movapd 1136(%rdi), %xmm2
2347 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2348 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2349 ; SSE-NEXT:    movapd 1200(%rdi), %xmm1
2350 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2351 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2352 ; SSE-NEXT:    movapd 1152(%rdi), %xmm2
2353 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2354 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2355 ; SSE-NEXT:    movapd 1216(%rdi), %xmm1
2356 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2357 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2358 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2359 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2360 ; SSE-NEXT:    movapd 1232(%rdi), %xmm2
2361 ; SSE-NEXT:    movapd 1280(%rdi), %xmm0
2362 ; SSE-NEXT:    movapd %xmm0, %xmm1
2363 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2364 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2365 ; SSE-NEXT:    movapd 1296(%rdi), %xmm1
2366 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2367 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2368 ; SSE-NEXT:    movapd 1248(%rdi), %xmm2
2369 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2370 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2371 ; SSE-NEXT:    movapd 1312(%rdi), %xmm1
2372 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2373 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2374 ; SSE-NEXT:    movapd 1264(%rdi), %xmm2
2375 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2376 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2377 ; SSE-NEXT:    movapd 1328(%rdi), %xmm1
2378 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2379 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2380 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2381 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2382 ; SSE-NEXT:    movapd 1344(%rdi), %xmm14
2383 ; SSE-NEXT:    movapd 1392(%rdi), %xmm0
2384 ; SSE-NEXT:    movapd %xmm0, %xmm1
2385 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm14[0],xmm1[1]
2386 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2387 ; SSE-NEXT:    movapd 1408(%rdi), %xmm1
2388 ; SSE-NEXT:    shufpd {{.*#+}} xmm14 = xmm14[1],xmm1[0]
2389 ; SSE-NEXT:    movapd 1360(%rdi), %xmm2
2390 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2391 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2392 ; SSE-NEXT:    movapd 1424(%rdi), %xmm1
2393 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2394 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2395 ; SSE-NEXT:    movapd 1376(%rdi), %xmm2
2396 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2397 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2398 ; SSE-NEXT:    movapd 1440(%rdi), %xmm1
2399 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2400 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2401 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2402 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2403 ; SSE-NEXT:    movapd 1456(%rdi), %xmm9
2404 ; SSE-NEXT:    movapd 1504(%rdi), %xmm0
2405 ; SSE-NEXT:    movapd %xmm0, %xmm12
2406 ; SSE-NEXT:    movsd {{.*#+}} xmm12 = xmm9[0],xmm12[1]
2407 ; SSE-NEXT:    movapd 1520(%rdi), %xmm13
2408 ; SSE-NEXT:    shufpd {{.*#+}} xmm9 = xmm9[1],xmm13[0]
2409 ; SSE-NEXT:    movapd 1472(%rdi), %xmm2
2410 ; SSE-NEXT:    movsd {{.*#+}} xmm13 = xmm2[0],xmm13[1]
2411 ; SSE-NEXT:    movapd 1536(%rdi), %xmm1
2412 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2413 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2414 ; SSE-NEXT:    movapd 1488(%rdi), %xmm2
2415 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2416 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2417 ; SSE-NEXT:    movapd 1552(%rdi), %xmm1
2418 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2419 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2420 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2421 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2422 ; SSE-NEXT:    movapd 1568(%rdi), %xmm6
2423 ; SSE-NEXT:    movapd 1616(%rdi), %xmm0
2424 ; SSE-NEXT:    movapd %xmm0, %xmm4
2425 ; SSE-NEXT:    movsd {{.*#+}} xmm4 = xmm6[0],xmm4[1]
2426 ; SSE-NEXT:    movapd 1632(%rdi), %xmm8
2427 ; SSE-NEXT:    shufpd {{.*#+}} xmm6 = xmm6[1],xmm8[0]
2428 ; SSE-NEXT:    movapd 1584(%rdi), %xmm11
2429 ; SSE-NEXT:    movsd {{.*#+}} xmm8 = xmm11[0],xmm8[1]
2430 ; SSE-NEXT:    movapd 1648(%rdi), %xmm1
2431 ; SSE-NEXT:    shufpd {{.*#+}} xmm11 = xmm11[1],xmm1[0]
2432 ; SSE-NEXT:    movapd 1600(%rdi), %xmm2
2433 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2434 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2435 ; SSE-NEXT:    movapd 1664(%rdi), %xmm1
2436 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2437 ; SSE-NEXT:    movapd %xmm2, (%rsp) # 16-byte Spill
2438 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2439 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2440 ; SSE-NEXT:    movapd 1680(%rdi), %xmm3
2441 ; SSE-NEXT:    movapd 1728(%rdi), %xmm2
2442 ; SSE-NEXT:    movapd %xmm2, %xmm1
2443 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm3[0],xmm1[1]
2444 ; SSE-NEXT:    movapd 1744(%rdi), %xmm5
2445 ; SSE-NEXT:    shufpd {{.*#+}} xmm3 = xmm3[1],xmm5[0]
2446 ; SSE-NEXT:    movapd 1696(%rdi), %xmm7
2447 ; SSE-NEXT:    movsd {{.*#+}} xmm5 = xmm7[0],xmm5[1]
2448 ; SSE-NEXT:    movapd 1760(%rdi), %xmm10
2449 ; SSE-NEXT:    shufpd {{.*#+}} xmm7 = xmm7[1],xmm10[0]
2450 ; SSE-NEXT:    movapd 1712(%rdi), %xmm15
2451 ; SSE-NEXT:    movsd {{.*#+}} xmm10 = xmm15[0],xmm10[1]
2452 ; SSE-NEXT:    movapd 1776(%rdi), %xmm0
2453 ; SSE-NEXT:    shufpd {{.*#+}} xmm15 = xmm15[1],xmm0[0]
2454 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm2[0],xmm0[1]
2455 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2456 ; SSE-NEXT:    movapd %xmm4, 224(%rsi)
2457 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2458 ; SSE-NEXT:    movaps %xmm0, 160(%rsi)
2459 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
2460 ; SSE-NEXT:    movaps %xmm2, 96(%rsi)
2461 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
2462 ; SSE-NEXT:    movaps %xmm2, 32(%rsi)
2463 ; SSE-NEXT:    movapd %xmm1, 240(%rsi)
2464 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2465 ; SSE-NEXT:    movaps %xmm0, 176(%rsi)
2466 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2467 ; SSE-NEXT:    movaps %xmm1, 112(%rsi)
2468 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2469 ; SSE-NEXT:    movaps %xmm1, 48(%rsi)
2470 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2471 ; SSE-NEXT:    movaps %xmm0, 192(%rsi)
2472 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2473 ; SSE-NEXT:    movaps %xmm1, 128(%rsi)
2474 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2475 ; SSE-NEXT:    movaps %xmm1, 64(%rsi)
2476 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2477 ; SSE-NEXT:    movaps %xmm1, (%rsi)
2478 ; SSE-NEXT:    movapd %xmm12, 208(%rsi)
2479 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2480 ; SSE-NEXT:    movaps %xmm1, 144(%rsi)
2481 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2482 ; SSE-NEXT:    movaps %xmm1, 80(%rsi)
2483 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2484 ; SSE-NEXT:    movaps %xmm1, 16(%rsi)
2485 ; SSE-NEXT:    movapd %xmm6, 224(%rdx)
2486 ; SSE-NEXT:    movapd %xmm3, 240(%rdx)
2487 ; SSE-NEXT:    movapd %xmm14, 192(%rdx)
2488 ; SSE-NEXT:    movapd %xmm9, 208(%rdx)
2489 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2490 ; SSE-NEXT:    movaps %xmm0, 160(%rdx)
2491 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2492 ; SSE-NEXT:    movaps %xmm0, 176(%rdx)
2493 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2494 ; SSE-NEXT:    movaps %xmm0, 128(%rdx)
2495 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2496 ; SSE-NEXT:    movaps %xmm0, 144(%rdx)
2497 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2498 ; SSE-NEXT:    movaps %xmm0, 96(%rdx)
2499 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2500 ; SSE-NEXT:    movaps %xmm0, 112(%rdx)
2501 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2502 ; SSE-NEXT:    movaps %xmm0, 64(%rdx)
2503 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2504 ; SSE-NEXT:    movaps %xmm0, 80(%rdx)
2505 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2506 ; SSE-NEXT:    movaps %xmm0, 32(%rdx)
2507 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2508 ; SSE-NEXT:    movaps %xmm0, 48(%rdx)
2509 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2510 ; SSE-NEXT:    movaps %xmm0, (%rdx)
2511 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2512 ; SSE-NEXT:    movaps %xmm0, 16(%rdx)
2513 ; SSE-NEXT:    movapd %xmm5, 240(%rcx)
2514 ; SSE-NEXT:    movapd %xmm8, 224(%rcx)
2515 ; SSE-NEXT:    movapd %xmm13, 208(%rcx)
2516 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2517 ; SSE-NEXT:    movaps %xmm0, 192(%rcx)
2518 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2519 ; SSE-NEXT:    movaps %xmm0, 176(%rcx)
2520 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2521 ; SSE-NEXT:    movaps %xmm0, 160(%rcx)
2522 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2523 ; SSE-NEXT:    movaps %xmm0, 144(%rcx)
2524 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2525 ; SSE-NEXT:    movaps %xmm0, 128(%rcx)
2526 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2527 ; SSE-NEXT:    movaps %xmm0, 112(%rcx)
2528 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2529 ; SSE-NEXT:    movaps %xmm0, 96(%rcx)
2530 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2531 ; SSE-NEXT:    movaps %xmm0, 80(%rcx)
2532 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2533 ; SSE-NEXT:    movaps %xmm0, 64(%rcx)
2534 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2535 ; SSE-NEXT:    movaps %xmm0, 48(%rcx)
2536 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2537 ; SSE-NEXT:    movaps %xmm0, 32(%rcx)
2538 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2539 ; SSE-NEXT:    movaps %xmm0, 16(%rcx)
2540 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2541 ; SSE-NEXT:    movaps %xmm0, (%rcx)
2542 ; SSE-NEXT:    movapd %xmm7, 240(%r8)
2543 ; SSE-NEXT:    movapd %xmm11, 224(%r8)
2544 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2545 ; SSE-NEXT:    movaps %xmm0, 208(%r8)
2546 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2547 ; SSE-NEXT:    movaps %xmm0, 192(%r8)
2548 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2549 ; SSE-NEXT:    movaps %xmm0, 176(%r8)
2550 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2551 ; SSE-NEXT:    movaps %xmm0, 160(%r8)
2552 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2553 ; SSE-NEXT:    movaps %xmm0, 144(%r8)
2554 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2555 ; SSE-NEXT:    movaps %xmm0, 128(%r8)
2556 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2557 ; SSE-NEXT:    movaps %xmm0, 112(%r8)
2558 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2559 ; SSE-NEXT:    movaps %xmm0, 96(%r8)
2560 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2561 ; SSE-NEXT:    movaps %xmm0, 80(%r8)
2562 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2563 ; SSE-NEXT:    movaps %xmm0, 64(%r8)
2564 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2565 ; SSE-NEXT:    movaps %xmm0, 48(%r8)
2566 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2567 ; SSE-NEXT:    movaps %xmm0, 32(%r8)
2568 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2569 ; SSE-NEXT:    movaps %xmm0, 16(%r8)
2570 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2571 ; SSE-NEXT:    movaps %xmm0, (%r8)
2572 ; SSE-NEXT:    movapd %xmm10, 240(%r9)
2573 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2574 ; SSE-NEXT:    movaps %xmm0, 224(%r9)
2575 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2576 ; SSE-NEXT:    movaps %xmm0, 208(%r9)
2577 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2578 ; SSE-NEXT:    movaps %xmm0, 192(%r9)
2579 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2580 ; SSE-NEXT:    movaps %xmm0, 176(%r9)
2581 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2582 ; SSE-NEXT:    movaps %xmm0, 160(%r9)
2583 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2584 ; SSE-NEXT:    movaps %xmm0, 144(%r9)
2585 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2586 ; SSE-NEXT:    movaps %xmm0, 128(%r9)
2587 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2588 ; SSE-NEXT:    movaps %xmm0, 112(%r9)
2589 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2590 ; SSE-NEXT:    movaps %xmm0, 96(%r9)
2591 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2592 ; SSE-NEXT:    movaps %xmm0, 80(%r9)
2593 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2594 ; SSE-NEXT:    movaps %xmm0, 64(%r9)
2595 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2596 ; SSE-NEXT:    movaps %xmm0, 48(%r9)
2597 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2598 ; SSE-NEXT:    movaps %xmm0, 32(%r9)
2599 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2600 ; SSE-NEXT:    movaps %xmm0, 16(%r9)
2601 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2602 ; SSE-NEXT:    movaps %xmm0, (%r9)
2603 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
2604 ; SSE-NEXT:    movapd %xmm15, 240(%rax)
2605 ; SSE-NEXT:    movaps (%rsp), %xmm0 # 16-byte Reload
2606 ; SSE-NEXT:    movaps %xmm0, 224(%rax)
2607 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2608 ; SSE-NEXT:    movaps %xmm0, 208(%rax)
2609 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2610 ; SSE-NEXT:    movaps %xmm0, 192(%rax)
2611 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2612 ; SSE-NEXT:    movaps %xmm0, 176(%rax)
2613 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2614 ; SSE-NEXT:    movaps %xmm0, 160(%rax)
2615 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2616 ; SSE-NEXT:    movaps %xmm0, 144(%rax)
2617 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2618 ; SSE-NEXT:    movaps %xmm0, 128(%rax)
2619 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2620 ; SSE-NEXT:    movaps %xmm0, 112(%rax)
2621 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2622 ; SSE-NEXT:    movaps %xmm0, 96(%rax)
2623 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2624 ; SSE-NEXT:    movaps %xmm0, 80(%rax)
2625 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2626 ; SSE-NEXT:    movaps %xmm0, 64(%rax)
2627 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2628 ; SSE-NEXT:    movaps %xmm0, 48(%rax)
2629 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2630 ; SSE-NEXT:    movaps %xmm0, 32(%rax)
2631 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2632 ; SSE-NEXT:    movaps %xmm0, 16(%rax)
2633 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2634 ; SSE-NEXT:    movaps %xmm0, (%rax)
2635 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
2636 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2637 ; SSE-NEXT:    movaps %xmm0, 240(%rax)
2638 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2639 ; SSE-NEXT:    movaps %xmm0, 224(%rax)
2640 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2641 ; SSE-NEXT:    movaps %xmm0, 208(%rax)
2642 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2643 ; SSE-NEXT:    movaps %xmm0, 192(%rax)
2644 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2645 ; SSE-NEXT:    movaps %xmm0, 176(%rax)
2646 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2647 ; SSE-NEXT:    movaps %xmm0, 160(%rax)
2648 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2649 ; SSE-NEXT:    movaps %xmm0, 144(%rax)
2650 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2651 ; SSE-NEXT:    movaps %xmm0, 128(%rax)
2652 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2653 ; SSE-NEXT:    movaps %xmm0, 112(%rax)
2654 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2655 ; SSE-NEXT:    movaps %xmm0, 96(%rax)
2656 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2657 ; SSE-NEXT:    movaps %xmm0, 80(%rax)
2658 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2659 ; SSE-NEXT:    movaps %xmm0, 64(%rax)
2660 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2661 ; SSE-NEXT:    movaps %xmm0, 48(%rax)
2662 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2663 ; SSE-NEXT:    movaps %xmm0, 32(%rax)
2664 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2665 ; SSE-NEXT:    movaps %xmm0, 16(%rax)
2666 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2667 ; SSE-NEXT:    movaps %xmm0, (%rax)
2668 ; SSE-NEXT:    addq $1448, %rsp # imm = 0x5A8
2669 ; SSE-NEXT:    retq
2671 ; AVX1-ONLY-LABEL: load_i64_stride7_vf32:
2672 ; AVX1-ONLY:       # %bb.0:
2673 ; AVX1-ONLY-NEXT:    subq $1736, %rsp # imm = 0x6C8
2674 ; AVX1-ONLY-NEXT:    vmovaps 1216(%rdi), %ymm1
2675 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2676 ; AVX1-ONLY-NEXT:    vmovaps 768(%rdi), %ymm3
2677 ; AVX1-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2678 ; AVX1-ONLY-NEXT:    vmovaps 320(%rdi), %ymm7
2679 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 384(%rdi), %ymm0, %ymm0
2680 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2681 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm7[0,1,2,3,4,5],ymm0[6,7]
2682 ; AVX1-ONLY-NEXT:    vmovaps 224(%rdi), %xmm5
2683 ; AVX1-ONLY-NEXT:    vmovaps 272(%rdi), %xmm2
2684 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2685 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm5[0,1],xmm2[2,3]
2686 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
2687 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2688 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 832(%rdi), %ymm0, %ymm0
2689 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2690 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm0[6,7]
2691 ; AVX1-ONLY-NEXT:    vmovaps 672(%rdi), %xmm6
2692 ; AVX1-ONLY-NEXT:    vmovaps 720(%rdi), %xmm2
2693 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2694 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm6[0,1],xmm2[2,3]
2695 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
2696 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2697 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 1280(%rdi), %ymm0, %ymm0
2698 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2699 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
2700 ; AVX1-ONLY-NEXT:    vmovaps 1120(%rdi), %xmm11
2701 ; AVX1-ONLY-NEXT:    vmovaps 1168(%rdi), %xmm2
2702 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2703 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm11[0,1],xmm2[2,3]
2704 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
2705 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2706 ; AVX1-ONLY-NEXT:    vmovaps 1664(%rdi), %ymm14
2707 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 1728(%rdi), %ymm0, %ymm0
2708 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2709 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm14[0,1,2,3,4,5],ymm0[6,7]
2710 ; AVX1-ONLY-NEXT:    vmovaps 1568(%rdi), %xmm8
2711 ; AVX1-ONLY-NEXT:    vmovaps 1616(%rdi), %xmm2
2712 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2713 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm8[0,1],xmm2[2,3]
2714 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
2715 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2716 ; AVX1-ONLY-NEXT:    vmovapd 96(%rdi), %ymm4
2717 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 160(%rdi), %ymm0, %ymm0
2718 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2719 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm4[0,1,2],ymm0[3]
2720 ; AVX1-ONLY-NEXT:    vmovapd 48(%rdi), %xmm1
2721 ; AVX1-ONLY-NEXT:    vmovapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2722 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm2 = mem[0],xmm1[1]
2723 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,3]
2724 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2725 ; AVX1-ONLY-NEXT:    vmovapd 544(%rdi), %ymm9
2726 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 608(%rdi), %ymm0, %ymm0
2727 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2728 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm9[0,1,2],ymm0[3]
2729 ; AVX1-ONLY-NEXT:    vmovapd 448(%rdi), %xmm10
2730 ; AVX1-ONLY-NEXT:    vmovapd 496(%rdi), %xmm1
2731 ; AVX1-ONLY-NEXT:    vmovapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2732 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm2 = xmm10[0],xmm1[1]
2733 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,3]
2734 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2735 ; AVX1-ONLY-NEXT:    vmovapd 992(%rdi), %ymm15
2736 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 1056(%rdi), %ymm0, %ymm0
2737 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2738 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm15[0,1,2],ymm0[3]
2739 ; AVX1-ONLY-NEXT:    vmovapd 896(%rdi), %xmm12
2740 ; AVX1-ONLY-NEXT:    vmovapd 944(%rdi), %xmm1
2741 ; AVX1-ONLY-NEXT:    vmovapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2742 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm2 = xmm12[0],xmm1[1]
2743 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,3]
2744 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2745 ; AVX1-ONLY-NEXT:    vmovapd 1440(%rdi), %ymm2
2746 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 1504(%rdi), %ymm0, %ymm0
2747 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2748 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm2[0,1,2],ymm0[3]
2749 ; AVX1-ONLY-NEXT:    vmovapd 1344(%rdi), %xmm3
2750 ; AVX1-ONLY-NEXT:    vmovapd 1392(%rdi), %xmm0
2751 ; AVX1-ONLY-NEXT:    vmovapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2752 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm13 = xmm3[0],xmm0[1]
2753 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm13[0,1],ymm1[2,3]
2754 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2755 ; AVX1-ONLY-NEXT:    vmovdqa 288(%rdi), %xmm0
2756 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm5 = xmm5[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
2757 ; AVX1-ONLY-NEXT:    vmovapd 384(%rdi), %ymm0
2758 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm7 = ymm7[0],ymm0[0],ymm7[3],ymm0[2]
2759 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm5 = ymm5[0,1],ymm7[2,3]
2760 ; AVX1-ONLY-NEXT:    vmovupd %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2761 ; AVX1-ONLY-NEXT:    vmovdqa 736(%rdi), %xmm5
2762 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm5 = xmm6[8,9,10,11,12,13,14,15],xmm5[0,1,2,3,4,5,6,7]
2763 ; AVX1-ONLY-NEXT:    vmovapd 832(%rdi), %ymm7
2764 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
2765 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm1 = ymm1[0],ymm7[0],ymm1[3],ymm7[2]
2766 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm5[0,1],ymm1[2,3]
2767 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2768 ; AVX1-ONLY-NEXT:    vmovdqa 1184(%rdi), %xmm1
2769 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = xmm11[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
2770 ; AVX1-ONLY-NEXT:    vmovapd 1280(%rdi), %ymm6
2771 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
2772 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm5 = ymm5[0],ymm6[0],ymm5[3],ymm6[2]
2773 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm1[0,1],ymm5[2,3]
2774 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2775 ; AVX1-ONLY-NEXT:    vmovdqa 1632(%rdi), %xmm1
2776 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = xmm8[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
2777 ; AVX1-ONLY-NEXT:    vmovapd 1728(%rdi), %ymm11
2778 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm5 = ymm14[0],ymm11[0],ymm14[3],ymm11[2]
2779 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm1[0,1],ymm5[2,3]
2780 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2781 ; AVX1-ONLY-NEXT:    vmovapd 160(%rdi), %ymm8
2782 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm4 = ymm4[0],ymm8[0],ymm4[3],ymm8[2]
2783 ; AVX1-ONLY-NEXT:    vmovdqa 64(%rdi), %xmm1
2784 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm5 = mem[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
2785 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm4 = ymm5[0,1],ymm4[2,3]
2786 ; AVX1-ONLY-NEXT:    vmovupd %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2787 ; AVX1-ONLY-NEXT:    vmovapd 608(%rdi), %ymm14
2788 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm5 = ymm9[0],ymm14[0],ymm9[3],ymm14[2]
2789 ; AVX1-ONLY-NEXT:    vmovdqa 512(%rdi), %xmm4
2790 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm9 = xmm10[8,9,10,11,12,13,14,15],xmm4[0,1,2,3,4,5,6,7]
2791 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm5 = ymm9[0,1],ymm5[2,3]
2792 ; AVX1-ONLY-NEXT:    vmovupd %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2793 ; AVX1-ONLY-NEXT:    vmovapd 1056(%rdi), %ymm13
2794 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm5 = ymm15[0],ymm13[0],ymm15[3],ymm13[2]
2795 ; AVX1-ONLY-NEXT:    vmovdqa 960(%rdi), %xmm15
2796 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm9 = xmm12[8,9,10,11,12,13,14,15],xmm15[0,1,2,3,4,5,6,7]
2797 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm5 = ymm9[0,1],ymm5[2,3]
2798 ; AVX1-ONLY-NEXT:    vmovupd %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2799 ; AVX1-ONLY-NEXT:    vmovapd 1504(%rdi), %ymm5
2800 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm2 = ymm2[0],ymm5[0],ymm2[3],ymm5[2]
2801 ; AVX1-ONLY-NEXT:    vmovdqa 1408(%rdi), %xmm9
2802 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm3 = xmm3[8,9,10,11,12,13,14,15],xmm9[0,1,2,3,4,5,6,7]
2803 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm3[0,1],ymm2[2,3]
2804 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2805 ; AVX1-ONLY-NEXT:    vmovdqa 352(%rdi), %xmm3
2806 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm2
2807 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm2[0,1,2],ymm0[3]
2808 ; AVX1-ONLY-NEXT:    vmovapd 240(%rdi), %xmm2
2809 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm10 = xmm2[0],mem[1]
2810 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm10[0,1],ymm0[2,3]
2811 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2812 ; AVX1-ONLY-NEXT:    vmovdqa 800(%rdi), %xmm0
2813 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm10
2814 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm7 = ymm10[0,1,2],ymm7[3]
2815 ; AVX1-ONLY-NEXT:    vmovapd 688(%rdi), %xmm10
2816 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm12 = xmm10[0],mem[1]
2817 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm7 = ymm12[0,1],ymm7[2,3]
2818 ; AVX1-ONLY-NEXT:    vmovupd %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2819 ; AVX1-ONLY-NEXT:    vmovaps 1248(%rdi), %xmm7
2820 ; AVX1-ONLY-NEXT:    vmovaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2821 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm12
2822 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm12 = ymm12[0,1,2],ymm6[3]
2823 ; AVX1-ONLY-NEXT:    vmovapd 1136(%rdi), %xmm6
2824 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm7 = xmm6[0],mem[1]
2825 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm7 = ymm7[0,1],ymm12[2,3]
2826 ; AVX1-ONLY-NEXT:    vmovupd %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2827 ; AVX1-ONLY-NEXT:    vmovaps 1696(%rdi), %xmm7
2828 ; AVX1-ONLY-NEXT:    vmovaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2829 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
2830 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm7 = ymm7[0,1,2],ymm11[3]
2831 ; AVX1-ONLY-NEXT:    vmovapd 1584(%rdi), %xmm11
2832 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm12 = xmm11[0],mem[1]
2833 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm7 = ymm12[0,1],ymm7[2,3]
2834 ; AVX1-ONLY-NEXT:    vmovupd %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2835 ; AVX1-ONLY-NEXT:    vmovdqa 128(%rdi), %xmm12
2836 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm7
2837 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm7 = ymm7[0,1,2],ymm8[3]
2838 ; AVX1-ONLY-NEXT:    vmovdqa 16(%rdi), %xmm8
2839 ; AVX1-ONLY-NEXT:    vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2840 ; AVX1-ONLY-NEXT:    vpblendw {{.*#+}} xmm1 = xmm8[0,1,2,3],xmm1[4,5,6,7]
2841 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm1[0,1],ymm7[2,3]
2842 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2843 ; AVX1-ONLY-NEXT:    vmovaps 576(%rdi), %xmm1
2844 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2845 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
2846 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm1[0,1,2],ymm14[3]
2847 ; AVX1-ONLY-NEXT:    vmovdqa 464(%rdi), %xmm8
2848 ; AVX1-ONLY-NEXT:    vpblendw {{.*#+}} xmm4 = xmm8[0,1,2,3],xmm4[4,5,6,7]
2849 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm4[0,1],ymm1[2,3]
2850 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2851 ; AVX1-ONLY-NEXT:    vmovdqa 1024(%rdi), %xmm14
2852 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm14, %ymm0, %ymm1
2853 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm4 = ymm1[0,1,2],ymm13[3]
2854 ; AVX1-ONLY-NEXT:    vmovdqa 912(%rdi), %xmm1
2855 ; AVX1-ONLY-NEXT:    vpblendw {{.*#+}} xmm7 = xmm1[0,1,2,3],xmm15[4,5,6,7]
2856 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm4 = ymm7[0,1],ymm4[2,3]
2857 ; AVX1-ONLY-NEXT:    vmovupd %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2858 ; AVX1-ONLY-NEXT:    vmovdqa 1472(%rdi), %xmm4
2859 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm7
2860 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm5 = ymm7[0,1,2],ymm5[3]
2861 ; AVX1-ONLY-NEXT:    vmovdqa 1360(%rdi), %xmm15
2862 ; AVX1-ONLY-NEXT:    vpblendw {{.*#+}} xmm7 = xmm15[0,1,2,3],xmm9[4,5,6,7]
2863 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm5 = ymm7[0,1],ymm5[2,3]
2864 ; AVX1-ONLY-NEXT:    vmovupd %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2865 ; AVX1-ONLY-NEXT:    vmovapd 304(%rdi), %xmm9
2866 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm2 = ymm2[1],ymm9[0],ymm2[2],ymm9[2]
2867 ; AVX1-ONLY-NEXT:    vmovdqa 416(%rdi), %xmm13
2868 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm3 = xmm3[8,9,10,11,12,13,14,15],xmm13[0,1,2,3,4,5,6,7]
2869 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
2870 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm2[0,1],ymm3[2,3]
2871 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2872 ; AVX1-ONLY-NEXT:    vmovapd 752(%rdi), %xmm5
2873 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm2 = ymm10[1],ymm5[0],ymm10[2],ymm5[2]
2874 ; AVX1-ONLY-NEXT:    vmovdqa 864(%rdi), %xmm10
2875 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm0 = xmm0[8,9,10,11,12,13,14,15],xmm10[0,1,2,3,4,5,6,7]
2876 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
2877 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,3]
2878 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2879 ; AVX1-ONLY-NEXT:    vmovapd 1200(%rdi), %xmm0
2880 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2881 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm6[1],ymm0[0],ymm6[2],ymm0[2]
2882 ; AVX1-ONLY-NEXT:    vmovdqa 1312(%rdi), %xmm6
2883 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6, %xmm2 # 16-byte Folded Reload
2884 ; AVX1-ONLY-NEXT:    # xmm2 = mem[8,9,10,11,12,13,14,15],xmm6[0,1,2,3,4,5,6,7]
2885 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
2886 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm2[2,3]
2887 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2888 ; AVX1-ONLY-NEXT:    vmovapd 1648(%rdi), %xmm0
2889 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2890 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm11[1],ymm0[0],ymm11[2],ymm0[2]
2891 ; AVX1-ONLY-NEXT:    vmovdqa 1760(%rdi), %xmm2
2892 ; AVX1-ONLY-NEXT:    vmovdqa %xmm2, (%rsp) # 16-byte Spill
2893 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
2894 ; AVX1-ONLY-NEXT:    # xmm2 = mem[8,9,10,11,12,13,14,15],xmm2[0,1,2,3,4,5,6,7]
2895 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
2896 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm2[2,3]
2897 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2898 ; AVX1-ONLY-NEXT:    vmovapd 1424(%rdi), %xmm0
2899 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2900 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm15[1],ymm0[0],ymm15[2],ymm0[2]
2901 ; AVX1-ONLY-NEXT:    vmovdqa 1536(%rdi), %xmm11
2902 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm2 = xmm4[8,9,10,11,12,13,14,15],xmm11[0,1,2,3,4,5,6,7]
2903 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
2904 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm2[2,3]
2905 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2906 ; AVX1-ONLY-NEXT:    vmovapd 976(%rdi), %xmm15
2907 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm1[1],ymm15[0],ymm1[2],ymm15[2]
2908 ; AVX1-ONLY-NEXT:    vmovdqa 1088(%rdi), %xmm1
2909 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm2 = xmm14[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
2910 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
2911 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm2[2,3]
2912 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2913 ; AVX1-ONLY-NEXT:    vmovapd 528(%rdi), %xmm0
2914 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm2 = ymm8[1],ymm0[0],ymm8[2],ymm0[2]
2915 ; AVX1-ONLY-NEXT:    vmovdqa 640(%rdi), %xmm4
2916 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm3 # 16-byte Folded Reload
2917 ; AVX1-ONLY-NEXT:    # xmm3 = mem[8,9,10,11,12,13,14,15],xmm4[0,1,2,3,4,5,6,7]
2918 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
2919 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm2[0,1],ymm3[2,3]
2920 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2921 ; AVX1-ONLY-NEXT:    vmovapd 80(%rdi), %xmm3
2922 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
2923 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm2 = ymm2[1],ymm3[0],ymm2[2],ymm3[2]
2924 ; AVX1-ONLY-NEXT:    vmovdqa 192(%rdi), %xmm7
2925 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm8 = xmm12[8,9,10,11,12,13,14,15],xmm7[0,1,2,3,4,5,6,7]
2926 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm8
2927 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm2[0,1],ymm8[2,3]
2928 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2929 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
2930 ; AVX1-ONLY-NEXT:    vmovapd 128(%rdi), %ymm2
2931 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm7 = ymm2[0,1,2],ymm7[3]
2932 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm3 = mem[0],xmm3[1]
2933 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm3 = ymm3[0,1],ymm7[2,3]
2934 ; AVX1-ONLY-NEXT:    vmovupd %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2935 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm13, %ymm0, %ymm3
2936 ; AVX1-ONLY-NEXT:    vmovapd 352(%rdi), %ymm7
2937 ; AVX1-ONLY-NEXT:    vmovupd %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2938 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm7 = ymm7[0,1,2],ymm3[3]
2939 ; AVX1-ONLY-NEXT:    vmovapd 256(%rdi), %xmm3
2940 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm8 = xmm3[0],xmm9[1]
2941 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm7 = ymm8[0,1],ymm7[2,3]
2942 ; AVX1-ONLY-NEXT:    vmovupd %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2943 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
2944 ; AVX1-ONLY-NEXT:    vmovapd 576(%rdi), %ymm7
2945 ; AVX1-ONLY-NEXT:    vmovupd %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2946 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm4 = ymm7[0,1,2],ymm4[3]
2947 ; AVX1-ONLY-NEXT:    vmovapd 480(%rdi), %xmm7
2948 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm0 = xmm7[0],xmm0[1]
2949 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm4[2,3]
2950 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2951 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm4
2952 ; AVX1-ONLY-NEXT:    vmovapd 800(%rdi), %ymm0
2953 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm4 = ymm0[0,1,2],ymm4[3]
2954 ; AVX1-ONLY-NEXT:    vmovapd 704(%rdi), %xmm14
2955 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm5 = xmm14[0],xmm5[1]
2956 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm4 = ymm5[0,1],ymm4[2,3]
2957 ; AVX1-ONLY-NEXT:    vmovupd %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2958 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
2959 ; AVX1-ONLY-NEXT:    vmovapd 1024(%rdi), %ymm4
2960 ; AVX1-ONLY-NEXT:    vmovupd %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2961 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm4[0,1,2],ymm1[3]
2962 ; AVX1-ONLY-NEXT:    vmovapd 928(%rdi), %xmm9
2963 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm4 = xmm9[0],xmm15[1]
2964 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm4[0,1],ymm1[2,3]
2965 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2966 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm4
2967 ; AVX1-ONLY-NEXT:    vmovapd 1248(%rdi), %ymm1
2968 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm4 = ymm1[0,1,2],ymm4[3]
2969 ; AVX1-ONLY-NEXT:    vmovapd 1152(%rdi), %xmm15
2970 ; AVX1-ONLY-NEXT:    vblendpd $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm5 # 16-byte Folded Reload
2971 ; AVX1-ONLY-NEXT:    # xmm5 = xmm15[0],mem[1]
2972 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm4 = ymm5[0,1],ymm4[2,3]
2973 ; AVX1-ONLY-NEXT:    vmovupd %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2974 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm11, %ymm0, %ymm4
2975 ; AVX1-ONLY-NEXT:    vmovaps 1472(%rdi), %ymm5
2976 ; AVX1-ONLY-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2977 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1,2,3,4,5],ymm4[6,7]
2978 ; AVX1-ONLY-NEXT:    vmovaps 1376(%rdi), %xmm8
2979 ; AVX1-ONLY-NEXT:    vblendps $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm8, %xmm5 # 16-byte Folded Reload
2980 ; AVX1-ONLY-NEXT:    # xmm5 = xmm8[0,1],mem[2,3]
2981 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1,2,3],ymm4[4,5,6,7]
2982 ; AVX1-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2983 ; AVX1-ONLY-NEXT:    vinsertf128 $1, (%rsp), %ymm0, %ymm4 # 16-byte Folded Reload
2984 ; AVX1-ONLY-NEXT:    vmovapd 1696(%rdi), %ymm12
2985 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm4 = ymm12[0,1,2],ymm4[3]
2986 ; AVX1-ONLY-NEXT:    vmovapd 1600(%rdi), %xmm13
2987 ; AVX1-ONLY-NEXT:    vblendpd $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm13, %xmm5 # 16-byte Folded Reload
2988 ; AVX1-ONLY-NEXT:    # xmm5 = xmm13[0],mem[1]
2989 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm4 = ymm5[0,1],ymm4[2,3]
2990 ; AVX1-ONLY-NEXT:    vmovupd %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2991 ; AVX1-ONLY-NEXT:    vmovapd 192(%rdi), %ymm11
2992 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm2 = ymm2[0],ymm11[0],ymm2[3],ymm11[2]
2993 ; AVX1-ONLY-NEXT:    vmovdqa 96(%rdi), %xmm4
2994 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm4 = mem[8,9,10,11,12,13,14,15],xmm4[0,1,2,3,4,5,6,7]
2995 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm4[0,1],ymm2[2,3]
2996 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2997 ; AVX1-ONLY-NEXT:    vmovapd 416(%rdi), %ymm10
2998 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
2999 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm2 = ymm2[0],ymm10[0],ymm2[3],ymm10[2]
3000 ; AVX1-ONLY-NEXT:    vmovdqa 320(%rdi), %xmm6
3001 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm3 = xmm3[8,9,10,11,12,13,14,15],xmm6[0,1,2,3,4,5,6,7]
3002 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm3[0,1],ymm2[2,3]
3003 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, (%rsp) # 32-byte Spill
3004 ; AVX1-ONLY-NEXT:    vmovdqa 544(%rdi), %xmm2
3005 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm2 = xmm7[8,9,10,11,12,13,14,15],xmm2[0,1,2,3,4,5,6,7]
3006 ; AVX1-ONLY-NEXT:    vmovapd 640(%rdi), %ymm5
3007 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3008 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm3 = ymm3[0],ymm5[0],ymm3[3],ymm5[2]
3009 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm2[0,1],ymm3[2,3]
3010 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3011 ; AVX1-ONLY-NEXT:    vmovapd 864(%rdi), %ymm7
3012 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm0[0],ymm7[0],ymm0[3],ymm7[2]
3013 ; AVX1-ONLY-NEXT:    vmovdqa 768(%rdi), %xmm4
3014 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm2 = xmm14[8,9,10,11,12,13,14,15],xmm4[0,1,2,3,4,5,6,7]
3015 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,3]
3016 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3017 ; AVX1-ONLY-NEXT:    vmovdqa 992(%rdi), %xmm0
3018 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm0 = xmm9[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
3019 ; AVX1-ONLY-NEXT:    vmovapd 1088(%rdi), %ymm3
3020 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
3021 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm2 = ymm2[0],ymm3[0],ymm2[3],ymm3[2]
3022 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm2[2,3]
3023 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3024 ; AVX1-ONLY-NEXT:    vmovapd 1312(%rdi), %ymm9
3025 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm1[0],ymm9[0],ymm1[3],ymm9[2]
3026 ; AVX1-ONLY-NEXT:    vmovdqa 1216(%rdi), %xmm2
3027 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = xmm15[8,9,10,11,12,13,14,15],xmm2[0,1,2,3,4,5,6,7]
3028 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm15 = ymm1[0,1],ymm0[2,3]
3029 ; AVX1-ONLY-NEXT:    vmovdqa 1440(%rdi), %xmm0
3030 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm0 = xmm8[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
3031 ; AVX1-ONLY-NEXT:    vmovapd 1536(%rdi), %ymm8
3032 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3033 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm1 = ymm1[0],ymm8[0],ymm1[3],ymm8[2]
3034 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3]
3035 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3036 ; AVX1-ONLY-NEXT:    vmovapd 1760(%rdi), %ymm1
3037 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm12 = ymm12[0],ymm1[0],ymm12[3],ymm1[2]
3038 ; AVX1-ONLY-NEXT:    vmovdqa 1664(%rdi), %xmm0
3039 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm13 = xmm13[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
3040 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm12 = ymm13[0,1],ymm12[2,3]
3041 ; AVX1-ONLY-NEXT:    vblendpd $7, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm11 # 32-byte Folded Reload
3042 ; AVX1-ONLY-NEXT:    # ymm11 = mem[0,1,2],ymm11[3]
3043 ; AVX1-ONLY-NEXT:    vmovapd {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload
3044 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm13 = xmm13[0],mem[1]
3045 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm14 = ymm13[0,1],ymm11[2,3]
3046 ; AVX1-ONLY-NEXT:    vblendpd $7, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
3047 ; AVX1-ONLY-NEXT:    # ymm10 = mem[0,1,2],ymm10[3]
3048 ; AVX1-ONLY-NEXT:    vpblendw $15, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6, %xmm6 # 16-byte Folded Reload
3049 ; AVX1-ONLY-NEXT:    # xmm6 = mem[0,1,2,3],xmm6[4,5,6,7]
3050 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm11 = ymm6[0,1],ymm10[2,3]
3051 ; AVX1-ONLY-NEXT:    vblendpd $7, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm5 # 32-byte Folded Reload
3052 ; AVX1-ONLY-NEXT:    # ymm5 = mem[0,1,2],ymm5[3]
3053 ; AVX1-ONLY-NEXT:    vmovapd {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
3054 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm6 = xmm6[0],mem[1]
3055 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm6 = ymm6[0,1],ymm5[2,3]
3056 ; AVX1-ONLY-NEXT:    vblendpd $7, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm5 # 32-byte Folded Reload
3057 ; AVX1-ONLY-NEXT:    # ymm5 = mem[0,1,2],ymm7[3]
3058 ; AVX1-ONLY-NEXT:    vpblendw $15, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload
3059 ; AVX1-ONLY-NEXT:    # xmm4 = mem[0,1,2,3],xmm4[4,5,6,7]
3060 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm5 = ymm4[0,1],ymm5[2,3]
3061 ; AVX1-ONLY-NEXT:    vblendpd $7, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
3062 ; AVX1-ONLY-NEXT:    # ymm3 = mem[0,1,2],ymm3[3]
3063 ; AVX1-ONLY-NEXT:    vmovapd {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
3064 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm4 = xmm4[0],mem[1]
3065 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm3 = ymm4[0,1],ymm3[2,3]
3066 ; AVX1-ONLY-NEXT:    vblendpd $7, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm4 # 32-byte Folded Reload
3067 ; AVX1-ONLY-NEXT:    # ymm4 = mem[0,1,2],ymm9[3]
3068 ; AVX1-ONLY-NEXT:    vpblendw $15, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
3069 ; AVX1-ONLY-NEXT:    # xmm2 = mem[0,1,2,3],xmm2[4,5,6,7]
3070 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm7 = ymm2[0,1],ymm4[2,3]
3071 ; AVX1-ONLY-NEXT:    vblendpd $7, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm2 # 32-byte Folded Reload
3072 ; AVX1-ONLY-NEXT:    # ymm2 = mem[0,1,2],ymm8[3]
3073 ; AVX1-ONLY-NEXT:    vmovapd {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
3074 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm4 = xmm4[0],mem[1]
3075 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm4 = ymm4[0,1],ymm2[2,3]
3076 ; AVX1-ONLY-NEXT:    vblendpd $7, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
3077 ; AVX1-ONLY-NEXT:    # ymm1 = mem[0,1,2],ymm1[3]
3078 ; AVX1-ONLY-NEXT:    vpblendw $15, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
3079 ; AVX1-ONLY-NEXT:    # xmm0 = mem[0,1,2,3],xmm0[4,5,6,7]
3080 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm10 = ymm0[0,1],ymm1[2,3]
3081 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3082 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 192(%rsi)
3083 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3084 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 128(%rsi)
3085 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3086 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 64(%rsi)
3087 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3088 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, (%rsi)
3089 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3090 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 224(%rsi)
3091 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3092 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 160(%rsi)
3093 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3094 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 96(%rsi)
3095 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3096 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 32(%rsi)
3097 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3098 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 192(%rdx)
3099 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3100 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 128(%rdx)
3101 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3102 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 64(%rdx)
3103 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3104 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, (%rdx)
3105 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3106 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 224(%rdx)
3107 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3108 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 160(%rdx)
3109 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3110 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 96(%rdx)
3111 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3112 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 32(%rdx)
3113 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3114 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 192(%rcx)
3115 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3116 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 128(%rcx)
3117 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3118 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 64(%rcx)
3119 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3120 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, (%rcx)
3121 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3122 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 224(%rcx)
3123 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3124 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 160(%rcx)
3125 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3126 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 96(%rcx)
3127 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3128 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 32(%rcx)
3129 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3130 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, (%r8)
3131 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3132 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 64(%r8)
3133 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3134 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 128(%r8)
3135 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3136 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 192(%r8)
3137 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3138 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 224(%r8)
3139 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3140 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 160(%r8)
3141 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3142 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 96(%r8)
3143 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3144 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 32(%r8)
3145 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3146 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 224(%r9)
3147 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3148 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 192(%r9)
3149 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3150 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 160(%r9)
3151 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3152 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 128(%r9)
3153 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3154 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 96(%r9)
3155 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3156 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 64(%r9)
3157 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3158 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 32(%r9)
3159 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3160 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, (%r9)
3161 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3162 ; AVX1-ONLY-NEXT:    vmovapd %ymm12, 224(%rax)
3163 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3164 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 192(%rax)
3165 ; AVX1-ONLY-NEXT:    vmovapd %ymm15, 160(%rax)
3166 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3167 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 128(%rax)
3168 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3169 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 96(%rax)
3170 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3171 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 64(%rax)
3172 ; AVX1-ONLY-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
3173 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 32(%rax)
3174 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3175 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, (%rax)
3176 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3177 ; AVX1-ONLY-NEXT:    vmovapd %ymm10, 224(%rax)
3178 ; AVX1-ONLY-NEXT:    vmovapd %ymm4, 192(%rax)
3179 ; AVX1-ONLY-NEXT:    vmovapd %ymm7, 160(%rax)
3180 ; AVX1-ONLY-NEXT:    vmovapd %ymm3, 128(%rax)
3181 ; AVX1-ONLY-NEXT:    vmovapd %ymm5, 96(%rax)
3182 ; AVX1-ONLY-NEXT:    vmovapd %ymm6, 64(%rax)
3183 ; AVX1-ONLY-NEXT:    vmovapd %ymm11, 32(%rax)
3184 ; AVX1-ONLY-NEXT:    vmovapd %ymm14, (%rax)
3185 ; AVX1-ONLY-NEXT:    addq $1736, %rsp # imm = 0x6C8
3186 ; AVX1-ONLY-NEXT:    vzeroupper
3187 ; AVX1-ONLY-NEXT:    retq
3189 ; AVX2-ONLY-LABEL: load_i64_stride7_vf32:
3190 ; AVX2-ONLY:       # %bb.0:
3191 ; AVX2-ONLY-NEXT:    subq $1576, %rsp # imm = 0x628
3192 ; AVX2-ONLY-NEXT:    vmovdqa 1216(%rdi), %ymm1
3193 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3194 ; AVX2-ONLY-NEXT:    vmovdqa 768(%rdi), %ymm6
3195 ; AVX2-ONLY-NEXT:    vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3196 ; AVX2-ONLY-NEXT:    vmovdqa 320(%rdi), %ymm2
3197 ; AVX2-ONLY-NEXT:    vmovdqa 384(%rdi), %xmm0
3198 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3199 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm3
3200 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm3 = ymm2[0,1,2,3,4,5],ymm3[6,7]
3201 ; AVX2-ONLY-NEXT:    vmovdqa 224(%rdi), %xmm4
3202 ; AVX2-ONLY-NEXT:    vmovdqa 272(%rdi), %xmm0
3203 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3204 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm5 = xmm4[0,1],xmm0[2,3]
3205 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm5[0,1,2,3],ymm3[4,5,6,7]
3206 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3207 ; AVX2-ONLY-NEXT:    vmovdqa 832(%rdi), %xmm0
3208 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3209 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm3
3210 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm3 = ymm6[0,1,2,3,4,5],ymm3[6,7]
3211 ; AVX2-ONLY-NEXT:    vmovdqa 672(%rdi), %xmm5
3212 ; AVX2-ONLY-NEXT:    vmovdqa 720(%rdi), %xmm0
3213 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3214 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm6 = xmm5[0,1],xmm0[2,3]
3215 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm6[0,1,2,3],ymm3[4,5,6,7]
3216 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3217 ; AVX2-ONLY-NEXT:    vmovdqa 1280(%rdi), %xmm0
3218 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3219 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm3
3220 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm3 = ymm1[0,1,2,3,4,5],ymm3[6,7]
3221 ; AVX2-ONLY-NEXT:    vmovdqa 1120(%rdi), %xmm6
3222 ; AVX2-ONLY-NEXT:    vmovdqa 1168(%rdi), %xmm0
3223 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3224 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm7 = xmm6[0,1],xmm0[2,3]
3225 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm7[0,1,2,3],ymm3[4,5,6,7]
3226 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3227 ; AVX2-ONLY-NEXT:    vmovdqa 1664(%rdi), %ymm3
3228 ; AVX2-ONLY-NEXT:    vmovdqa 1728(%rdi), %xmm0
3229 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3230 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm7
3231 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm7 = ymm3[0,1,2,3,4,5],ymm7[6,7]
3232 ; AVX2-ONLY-NEXT:    vmovdqa 1568(%rdi), %xmm8
3233 ; AVX2-ONLY-NEXT:    vmovdqa 1616(%rdi), %xmm0
3234 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3235 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm9 = xmm8[0,1],xmm0[2,3]
3236 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm9[0,1,2,3],ymm7[4,5,6,7]
3237 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3238 ; AVX2-ONLY-NEXT:    vmovdqa 96(%rdi), %ymm7
3239 ; AVX2-ONLY-NEXT:    vmovdqa 160(%rdi), %xmm0
3240 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3241 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm9
3242 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm9 = ymm7[0,1,2,3,4,5],ymm9[6,7]
3243 ; AVX2-ONLY-NEXT:    vmovdqa 48(%rdi), %xmm0
3244 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3245 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm10 = mem[0,1],xmm0[2,3]
3246 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm9[4,5,6,7]
3247 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3248 ; AVX2-ONLY-NEXT:    vmovdqa 544(%rdi), %ymm9
3249 ; AVX2-ONLY-NEXT:    vmovdqa 608(%rdi), %xmm0
3250 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3251 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm10
3252 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm11 = ymm9[0,1,2,3,4,5],ymm10[6,7]
3253 ; AVX2-ONLY-NEXT:    vmovdqa 448(%rdi), %xmm10
3254 ; AVX2-ONLY-NEXT:    vmovdqa 496(%rdi), %xmm0
3255 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3256 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm12 = xmm10[0,1],xmm0[2,3]
3257 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm12[0,1,2,3],ymm11[4,5,6,7]
3258 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3259 ; AVX2-ONLY-NEXT:    vmovdqa 992(%rdi), %ymm11
3260 ; AVX2-ONLY-NEXT:    vmovdqa 1056(%rdi), %xmm0
3261 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3262 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm12
3263 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm13 = ymm11[0,1,2,3,4,5],ymm12[6,7]
3264 ; AVX2-ONLY-NEXT:    vmovdqa 896(%rdi), %xmm12
3265 ; AVX2-ONLY-NEXT:    vmovdqa 944(%rdi), %xmm0
3266 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3267 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm14 = xmm12[0,1],xmm0[2,3]
3268 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm14[0,1,2,3],ymm13[4,5,6,7]
3269 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3270 ; AVX2-ONLY-NEXT:    vmovdqa 1440(%rdi), %ymm13
3271 ; AVX2-ONLY-NEXT:    vmovdqa 1504(%rdi), %xmm0
3272 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3273 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm14
3274 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm15 = ymm13[0,1,2,3,4,5],ymm14[6,7]
3275 ; AVX2-ONLY-NEXT:    vmovdqa 1344(%rdi), %xmm14
3276 ; AVX2-ONLY-NEXT:    vmovdqa 1392(%rdi), %xmm0
3277 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3278 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm0 = xmm14[0,1],xmm0[2,3]
3279 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm15[4,5,6,7]
3280 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3281 ; AVX2-ONLY-NEXT:    vmovdqa 288(%rdi), %xmm0
3282 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm0 = xmm4[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
3283 ; AVX2-ONLY-NEXT:    vmovdqa 384(%rdi), %ymm4
3284 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm2 = ymm2[8,9,10,11,12,13,14,15],ymm4[0,1,2,3,4,5,6,7],ymm2[24,25,26,27,28,29,30,31],ymm4[16,17,18,19,20,21,22,23]
3285 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
3286 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3287 ; AVX2-ONLY-NEXT:    vmovdqa 736(%rdi), %xmm0
3288 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm0 = xmm5[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
3289 ; AVX2-ONLY-NEXT:    vmovdqa 832(%rdi), %ymm2
3290 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm1 # 32-byte Folded Reload
3291 ; AVX2-ONLY-NEXT:    # ymm1 = mem[8,9,10,11,12,13,14,15],ymm2[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm2[16,17,18,19,20,21,22,23]
3292 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
3293 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3294 ; AVX2-ONLY-NEXT:    vmovdqa 1184(%rdi), %xmm0
3295 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm0 = xmm6[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
3296 ; AVX2-ONLY-NEXT:    vmovdqa 1280(%rdi), %ymm5
3297 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm1 # 32-byte Folded Reload
3298 ; AVX2-ONLY-NEXT:    # ymm1 = mem[8,9,10,11,12,13,14,15],ymm5[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm5[16,17,18,19,20,21,22,23]
3299 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
3300 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3301 ; AVX2-ONLY-NEXT:    vmovdqa 1632(%rdi), %xmm0
3302 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm0 = xmm8[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
3303 ; AVX2-ONLY-NEXT:    vmovdqa 1728(%rdi), %ymm8
3304 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm1 = ymm3[8,9,10,11,12,13,14,15],ymm8[0,1,2,3,4,5,6,7],ymm3[24,25,26,27,28,29,30,31],ymm8[16,17,18,19,20,21,22,23]
3305 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
3306 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3307 ; AVX2-ONLY-NEXT:    vmovdqa 160(%rdi), %ymm0
3308 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm1 = ymm7[8,9,10,11,12,13,14,15],ymm0[0,1,2,3,4,5,6,7],ymm7[24,25,26,27,28,29,30,31],ymm0[16,17,18,19,20,21,22,23]
3309 ; AVX2-ONLY-NEXT:    vmovdqa 64(%rdi), %xmm3
3310 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm6 = mem[8,9,10,11,12,13,14,15],xmm3[0,1,2,3,4,5,6,7]
3311 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm6[0,1,2,3],ymm1[4,5,6,7]
3312 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3313 ; AVX2-ONLY-NEXT:    vmovdqa 608(%rdi), %ymm1
3314 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm6 = ymm9[8,9,10,11,12,13,14,15],ymm1[0,1,2,3,4,5,6,7],ymm9[24,25,26,27,28,29,30,31],ymm1[16,17,18,19,20,21,22,23]
3315 ; AVX2-ONLY-NEXT:    vmovdqa 512(%rdi), %xmm7
3316 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm9 = xmm10[8,9,10,11,12,13,14,15],xmm7[0,1,2,3,4,5,6,7]
3317 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm6 = ymm9[0,1,2,3],ymm6[4,5,6,7]
3318 ; AVX2-ONLY-NEXT:    vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3319 ; AVX2-ONLY-NEXT:    vmovdqa 1056(%rdi), %ymm6
3320 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm9 = ymm11[8,9,10,11,12,13,14,15],ymm6[0,1,2,3,4,5,6,7],ymm11[24,25,26,27,28,29,30,31],ymm6[16,17,18,19,20,21,22,23]
3321 ; AVX2-ONLY-NEXT:    vmovdqa 960(%rdi), %xmm10
3322 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm11 = xmm12[8,9,10,11,12,13,14,15],xmm10[0,1,2,3,4,5,6,7]
3323 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm9 = ymm11[0,1,2,3],ymm9[4,5,6,7]
3324 ; AVX2-ONLY-NEXT:    vmovdqu %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3325 ; AVX2-ONLY-NEXT:    vmovdqa 1504(%rdi), %ymm9
3326 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm12 = ymm13[8,9,10,11,12,13,14,15],ymm9[0,1,2,3,4,5,6,7],ymm13[24,25,26,27,28,29,30,31],ymm9[16,17,18,19,20,21,22,23]
3327 ; AVX2-ONLY-NEXT:    vmovdqa 1408(%rdi), %xmm11
3328 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm13 = xmm14[8,9,10,11,12,13,14,15],xmm11[0,1,2,3,4,5,6,7]
3329 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm12 = ymm13[0,1,2,3],ymm12[4,5,6,7]
3330 ; AVX2-ONLY-NEXT:    vmovdqu %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3331 ; AVX2-ONLY-NEXT:    vpbroadcastq 352(%rdi), %ymm12
3332 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm4 = ymm12[1],ymm4[1],ymm12[3],ymm4[3]
3333 ; AVX2-ONLY-NEXT:    vmovdqa 240(%rdi), %xmm12
3334 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm12 = xmm12[0,1],mem[2,3]
3335 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm4 = ymm12[0,1,2,3],ymm4[4,5,6,7]
3336 ; AVX2-ONLY-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3337 ; AVX2-ONLY-NEXT:    vpbroadcastq 800(%rdi), %ymm4
3338 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm2 = ymm4[1],ymm2[1],ymm4[3],ymm2[3]
3339 ; AVX2-ONLY-NEXT:    vmovdqa 688(%rdi), %xmm4
3340 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm4 = xmm4[0,1],mem[2,3]
3341 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm4[0,1,2,3],ymm2[4,5,6,7]
3342 ; AVX2-ONLY-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3343 ; AVX2-ONLY-NEXT:    vpbroadcastq 1248(%rdi), %ymm2
3344 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm2 = ymm2[1],ymm5[1],ymm2[3],ymm5[3]
3345 ; AVX2-ONLY-NEXT:    vmovdqa 1136(%rdi), %xmm4
3346 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm4 = xmm4[0,1],mem[2,3]
3347 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm4[0,1,2,3],ymm2[4,5,6,7]
3348 ; AVX2-ONLY-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3349 ; AVX2-ONLY-NEXT:    vpbroadcastq 1696(%rdi), %ymm2
3350 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm2 = ymm2[1],ymm8[1],ymm2[3],ymm8[3]
3351 ; AVX2-ONLY-NEXT:    vmovdqa 1584(%rdi), %xmm4
3352 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm4 = xmm4[0,1],mem[2,3]
3353 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm4[0,1,2,3],ymm2[4,5,6,7]
3354 ; AVX2-ONLY-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3355 ; AVX2-ONLY-NEXT:    vpbroadcastq 128(%rdi), %ymm2
3356 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm2[1],ymm0[1],ymm2[3],ymm0[3]
3357 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm2 = mem[0,1],xmm3[2,3]
3358 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
3359 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3360 ; AVX2-ONLY-NEXT:    vpbroadcastq 576(%rdi), %ymm0
3361 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
3362 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = mem[0,1],xmm7[2,3]
3363 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3364 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3365 ; AVX2-ONLY-NEXT:    vpbroadcastq 1024(%rdi), %ymm0
3366 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm6[1],ymm0[3],ymm6[3]
3367 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = mem[0,1],xmm10[2,3]
3368 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3369 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3370 ; AVX2-ONLY-NEXT:    vpbroadcastq 1472(%rdi), %ymm0
3371 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm9[1],ymm0[3],ymm9[3]
3372 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = mem[0,1],xmm11[2,3]
3373 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3374 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3375 ; AVX2-ONLY-NEXT:    vmovdqa 288(%rdi), %ymm0
3376 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm1 = mem[8,9,10,11,12,13,14,15],ymm0[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm0[16,17,18,19,20,21,22,23]
3377 ; AVX2-ONLY-NEXT:    vmovdqa 416(%rdi), %xmm0
3378 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm2 = mem[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
3379 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
3380 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm1 = ymm1[2,3],ymm2[2,3]
3381 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3382 ; AVX2-ONLY-NEXT:    vmovdqa 736(%rdi), %ymm1
3383 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm1 = mem[8,9,10,11,12,13,14,15],ymm1[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm1[16,17,18,19,20,21,22,23]
3384 ; AVX2-ONLY-NEXT:    vmovdqa 864(%rdi), %xmm3
3385 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm2 = mem[8,9,10,11,12,13,14,15],xmm3[0,1,2,3,4,5,6,7]
3386 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
3387 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm1 = ymm1[2,3],ymm2[2,3]
3388 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3389 ; AVX2-ONLY-NEXT:    vmovdqa 1184(%rdi), %ymm1
3390 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm1 = mem[8,9,10,11,12,13,14,15],ymm1[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm1[16,17,18,19,20,21,22,23]
3391 ; AVX2-ONLY-NEXT:    vmovdqa 1312(%rdi), %xmm7
3392 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm2 = mem[8,9,10,11,12,13,14,15],xmm7[0,1,2,3,4,5,6,7]
3393 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
3394 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm1 = ymm1[2,3],ymm2[2,3]
3395 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3396 ; AVX2-ONLY-NEXT:    vmovdqa 1632(%rdi), %ymm1
3397 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm1 = mem[8,9,10,11,12,13,14,15],ymm1[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm1[16,17,18,19,20,21,22,23]
3398 ; AVX2-ONLY-NEXT:    vmovdqa 1760(%rdi), %xmm6
3399 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm2 = mem[8,9,10,11,12,13,14,15],xmm6[0,1,2,3,4,5,6,7]
3400 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
3401 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm1 = ymm1[2,3],ymm2[2,3]
3402 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3403 ; AVX2-ONLY-NEXT:    vmovdqa 1408(%rdi), %ymm1
3404 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm1 = mem[8,9,10,11,12,13,14,15],ymm1[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm1[16,17,18,19,20,21,22,23]
3405 ; AVX2-ONLY-NEXT:    vmovdqa 1536(%rdi), %xmm5
3406 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm2 = mem[8,9,10,11,12,13,14,15],xmm5[0,1,2,3,4,5,6,7]
3407 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
3408 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm1 = ymm1[2,3],ymm2[2,3]
3409 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3410 ; AVX2-ONLY-NEXT:    vmovdqa 960(%rdi), %ymm1
3411 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm1 = mem[8,9,10,11,12,13,14,15],ymm1[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm1[16,17,18,19,20,21,22,23]
3412 ; AVX2-ONLY-NEXT:    vmovdqa 1088(%rdi), %xmm4
3413 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm2 = mem[8,9,10,11,12,13,14,15],xmm4[0,1,2,3,4,5,6,7]
3414 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
3415 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm1 = ymm1[2,3],ymm2[2,3]
3416 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3417 ; AVX2-ONLY-NEXT:    vmovdqa 512(%rdi), %ymm1
3418 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm1 = mem[8,9,10,11,12,13,14,15],ymm1[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm1[16,17,18,19,20,21,22,23]
3419 ; AVX2-ONLY-NEXT:    vmovdqa 640(%rdi), %xmm8
3420 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm2 = mem[8,9,10,11,12,13,14,15],xmm8[0,1,2,3,4,5,6,7]
3421 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
3422 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm1 = ymm1[2,3],ymm2[2,3]
3423 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3424 ; AVX2-ONLY-NEXT:    vmovdqa 64(%rdi), %ymm1
3425 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm1 = mem[8,9,10,11,12,13,14,15],ymm1[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm1[16,17,18,19,20,21,22,23]
3426 ; AVX2-ONLY-NEXT:    vmovdqa 192(%rdi), %xmm2
3427 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm9 = mem[8,9,10,11,12,13,14,15],xmm2[0,1,2,3,4,5,6,7]
3428 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm9, %ymm0, %ymm9
3429 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm1 = ymm1[2,3],ymm9[2,3]
3430 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3431 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm1
3432 ; AVX2-ONLY-NEXT:    vmovdqa 128(%rdi), %ymm12
3433 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3,4,5],ymm1[6,7]
3434 ; AVX2-ONLY-NEXT:    vmovdqa 32(%rdi), %xmm2
3435 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0,1],mem[2,3]
3436 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
3437 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3438 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
3439 ; AVX2-ONLY-NEXT:    vmovdqa 352(%rdi), %ymm14
3440 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm14[0,1,2,3,4,5],ymm0[6,7]
3441 ; AVX2-ONLY-NEXT:    vmovdqa 256(%rdi), %xmm2
3442 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = xmm2[0,1],mem[2,3]
3443 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3444 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3445 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm8, %ymm0, %ymm0
3446 ; AVX2-ONLY-NEXT:    vmovdqa 576(%rdi), %ymm1
3447 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3448 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
3449 ; AVX2-ONLY-NEXT:    vmovdqa 480(%rdi), %xmm11
3450 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = xmm11[0,1],mem[2,3]
3451 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3452 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3453 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm0
3454 ; AVX2-ONLY-NEXT:    vmovdqa 800(%rdi), %ymm10
3455 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm10[0,1,2,3,4,5],ymm0[6,7]
3456 ; AVX2-ONLY-NEXT:    vmovdqa 704(%rdi), %xmm1
3457 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm3 = xmm1[0,1],mem[2,3]
3458 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm0[4,5,6,7]
3459 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3460 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm0
3461 ; AVX2-ONLY-NEXT:    vmovdqa 1024(%rdi), %ymm3
3462 ; AVX2-ONLY-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3463 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm0[6,7]
3464 ; AVX2-ONLY-NEXT:    vmovdqa 928(%rdi), %xmm4
3465 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm3 = xmm4[0,1],mem[2,3]
3466 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm0[4,5,6,7]
3467 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3468 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm7, %ymm0, %ymm0
3469 ; AVX2-ONLY-NEXT:    vmovdqa 1248(%rdi), %ymm8
3470 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm3 = ymm8[0,1,2,3,4,5],ymm0[6,7]
3471 ; AVX2-ONLY-NEXT:    vmovdqa 1152(%rdi), %xmm0
3472 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm7 = xmm0[0,1],mem[2,3]
3473 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm3 = ymm7[0,1,2,3],ymm3[4,5,6,7]
3474 ; AVX2-ONLY-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3475 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm5, %ymm0, %ymm3
3476 ; AVX2-ONLY-NEXT:    vmovdqa 1472(%rdi), %ymm15
3477 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm5 = ymm15[0,1,2,3,4,5],ymm3[6,7]
3478 ; AVX2-ONLY-NEXT:    vmovdqa 1376(%rdi), %xmm3
3479 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm7 = xmm3[0,1],mem[2,3]
3480 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm5 = ymm7[0,1,2,3],ymm5[4,5,6,7]
3481 ; AVX2-ONLY-NEXT:    vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3482 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm6, %ymm0, %ymm5
3483 ; AVX2-ONLY-NEXT:    vmovdqa 1696(%rdi), %ymm7
3484 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm5 = ymm7[0,1,2,3,4,5],ymm5[6,7]
3485 ; AVX2-ONLY-NEXT:    vmovdqa 1600(%rdi), %xmm9
3486 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm6 = xmm9[0,1],mem[2,3]
3487 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm5 = ymm6[0,1,2,3],ymm5[4,5,6,7]
3488 ; AVX2-ONLY-NEXT:    vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3489 ; AVX2-ONLY-NEXT:    vmovdqa 192(%rdi), %ymm13
3490 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm5 = ymm12[8,9,10,11,12,13,14,15],ymm13[0,1,2,3,4,5,6,7],ymm12[24,25,26,27,28,29,30,31],ymm13[16,17,18,19,20,21,22,23]
3491 ; AVX2-ONLY-NEXT:    vmovdqa 96(%rdi), %xmm6
3492 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm6 = mem[8,9,10,11,12,13,14,15],xmm6[0,1,2,3,4,5,6,7]
3493 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm5 = ymm6[0,1,2,3],ymm5[4,5,6,7]
3494 ; AVX2-ONLY-NEXT:    vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3495 ; AVX2-ONLY-NEXT:    vmovdqa 416(%rdi), %ymm12
3496 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm5 = ymm14[8,9,10,11,12,13,14,15],ymm12[0,1,2,3,4,5,6,7],ymm14[24,25,26,27,28,29,30,31],ymm12[16,17,18,19,20,21,22,23]
3497 ; AVX2-ONLY-NEXT:    vmovdqa 320(%rdi), %xmm6
3498 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm2 = xmm2[8,9,10,11,12,13,14,15],xmm6[0,1,2,3,4,5,6,7]
3499 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm5[4,5,6,7]
3500 ; AVX2-ONLY-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3501 ; AVX2-ONLY-NEXT:    vmovdqa 544(%rdi), %xmm2
3502 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm2 = xmm11[8,9,10,11,12,13,14,15],xmm2[0,1,2,3,4,5,6,7]
3503 ; AVX2-ONLY-NEXT:    vmovdqa 640(%rdi), %ymm5
3504 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm11 # 32-byte Folded Reload
3505 ; AVX2-ONLY-NEXT:    # ymm11 = mem[8,9,10,11,12,13,14,15],ymm5[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm5[16,17,18,19,20,21,22,23]
3506 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm11[4,5,6,7]
3507 ; AVX2-ONLY-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3508 ; AVX2-ONLY-NEXT:    vmovdqa 864(%rdi), %ymm11
3509 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm2 = ymm10[8,9,10,11,12,13,14,15],ymm11[0,1,2,3,4,5,6,7],ymm10[24,25,26,27,28,29,30,31],ymm11[16,17,18,19,20,21,22,23]
3510 ; AVX2-ONLY-NEXT:    vmovdqa 768(%rdi), %xmm10
3511 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = xmm1[8,9,10,11,12,13,14,15],xmm10[0,1,2,3,4,5,6,7]
3512 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]
3513 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3514 ; AVX2-ONLY-NEXT:    vmovdqa 992(%rdi), %xmm1
3515 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = xmm4[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
3516 ; AVX2-ONLY-NEXT:    vmovdqa 1088(%rdi), %ymm2
3517 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm4 # 32-byte Folded Reload
3518 ; AVX2-ONLY-NEXT:    # ymm4 = mem[8,9,10,11,12,13,14,15],ymm2[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm2[16,17,18,19,20,21,22,23]
3519 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
3520 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3521 ; AVX2-ONLY-NEXT:    vmovdqa 1312(%rdi), %ymm4
3522 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm1 = ymm8[8,9,10,11,12,13,14,15],ymm4[0,1,2,3,4,5,6,7],ymm8[24,25,26,27,28,29,30,31],ymm4[16,17,18,19,20,21,22,23]
3523 ; AVX2-ONLY-NEXT:    vmovdqa 1216(%rdi), %xmm8
3524 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm0 = xmm0[8,9,10,11,12,13,14,15],xmm8[0,1,2,3,4,5,6,7]
3525 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm14 = ymm0[0,1,2,3],ymm1[4,5,6,7]
3526 ; AVX2-ONLY-NEXT:    vmovdqa 1440(%rdi), %xmm0
3527 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = xmm3[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
3528 ; AVX2-ONLY-NEXT:    vmovdqa 1536(%rdi), %ymm0
3529 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm3 = ymm15[8,9,10,11,12,13,14,15],ymm0[0,1,2,3,4,5,6,7],ymm15[24,25,26,27,28,29,30,31],ymm0[16,17,18,19,20,21,22,23]
3530 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm15 = ymm1[0,1,2,3],ymm3[4,5,6,7]
3531 ; AVX2-ONLY-NEXT:    vmovdqa 1760(%rdi), %ymm3
3532 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm7 = ymm7[8,9,10,11,12,13,14,15],ymm3[0,1,2,3,4,5,6,7],ymm7[24,25,26,27,28,29,30,31],ymm3[16,17,18,19,20,21,22,23]
3533 ; AVX2-ONLY-NEXT:    vmovdqa 1664(%rdi), %xmm1
3534 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm9 = xmm9[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
3535 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm7 = ymm9[0,1,2,3],ymm7[4,5,6,7]
3536 ; AVX2-ONLY-NEXT:    vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 16-byte Folded Reload
3537 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm9 = ymm9[1],ymm13[1],ymm9[3],ymm13[3]
3538 ; AVX2-ONLY-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload
3539 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm13 = xmm13[0,1],mem[2,3]
3540 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm9 = ymm13[0,1,2,3],ymm9[4,5,6,7]
3541 ; AVX2-ONLY-NEXT:    vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 16-byte Folded Reload
3542 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm12 = ymm13[1],ymm12[1],ymm13[3],ymm12[3]
3543 ; AVX2-ONLY-NEXT:    vpblendd $3, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6, %xmm6 # 16-byte Folded Reload
3544 ; AVX2-ONLY-NEXT:    # xmm6 = mem[0,1],xmm6[2,3]
3545 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm12[4,5,6,7]
3546 ; AVX2-ONLY-NEXT:    vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 16-byte Folded Reload
3547 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm5 = ymm12[1],ymm5[1],ymm12[3],ymm5[3]
3548 ; AVX2-ONLY-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload
3549 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm12 = xmm12[0,1],mem[2,3]
3550 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm12 = ymm12[0,1,2,3],ymm5[4,5,6,7]
3551 ; AVX2-ONLY-NEXT:    vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 16-byte Folded Reload
3552 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm5 = ymm5[1],ymm11[1],ymm5[3],ymm11[3]
3553 ; AVX2-ONLY-NEXT:    vpblendd $3, {{[-0-9]+}}(%r{{[sb]}}p), %xmm10, %xmm10 # 16-byte Folded Reload
3554 ; AVX2-ONLY-NEXT:    # xmm10 = mem[0,1],xmm10[2,3]
3555 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm11 = ymm10[0,1,2,3],ymm5[4,5,6,7]
3556 ; AVX2-ONLY-NEXT:    vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 16-byte Folded Reload
3557 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm2 = ymm5[1],ymm2[1],ymm5[3],ymm2[3]
3558 ; AVX2-ONLY-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
3559 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm5 = xmm5[0,1],mem[2,3]
3560 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm5[0,1,2,3],ymm2[4,5,6,7]
3561 ; AVX2-ONLY-NEXT:    vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 16-byte Folded Reload
3562 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm4 = ymm5[1],ymm4[1],ymm5[3],ymm4[3]
3563 ; AVX2-ONLY-NEXT:    vpblendd $3, {{[-0-9]+}}(%r{{[sb]}}p), %xmm8, %xmm5 # 16-byte Folded Reload
3564 ; AVX2-ONLY-NEXT:    # xmm5 = mem[0,1],xmm8[2,3]
3565 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm4 = ymm5[0,1,2,3],ymm4[4,5,6,7]
3566 ; AVX2-ONLY-NEXT:    vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 16-byte Folded Reload
3567 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm5[1],ymm0[1],ymm5[3],ymm0[3]
3568 ; AVX2-ONLY-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
3569 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm5 = xmm5[0,1],mem[2,3]
3570 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm5[0,1,2,3],ymm0[4,5,6,7]
3571 ; AVX2-ONLY-NEXT:    vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 16-byte Folded Reload
3572 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm3 = ymm5[1],ymm3[1],ymm5[3],ymm3[3]
3573 ; AVX2-ONLY-NEXT:    vpblendd $3, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
3574 ; AVX2-ONLY-NEXT:    # xmm1 = mem[0,1],xmm1[2,3]
3575 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm10 = ymm1[0,1,2,3],ymm3[4,5,6,7]
3576 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3577 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 192(%rsi)
3578 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3579 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 128(%rsi)
3580 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3581 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 64(%rsi)
3582 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3583 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, (%rsi)
3584 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3585 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 224(%rsi)
3586 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3587 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 160(%rsi)
3588 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3589 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 96(%rsi)
3590 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3591 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 32(%rsi)
3592 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3593 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 192(%rdx)
3594 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3595 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 128(%rdx)
3596 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3597 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 64(%rdx)
3598 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3599 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, (%rdx)
3600 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3601 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 224(%rdx)
3602 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3603 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 160(%rdx)
3604 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3605 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 96(%rdx)
3606 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3607 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 32(%rdx)
3608 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3609 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 192(%rcx)
3610 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3611 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 128(%rcx)
3612 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3613 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 64(%rcx)
3614 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3615 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, (%rcx)
3616 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3617 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 224(%rcx)
3618 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3619 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 160(%rcx)
3620 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3621 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 96(%rcx)
3622 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3623 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 32(%rcx)
3624 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3625 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, (%r8)
3626 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3627 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 64(%r8)
3628 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3629 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 128(%r8)
3630 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3631 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 192(%r8)
3632 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3633 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 224(%r8)
3634 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3635 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 160(%r8)
3636 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3637 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 96(%r8)
3638 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3639 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 32(%r8)
3640 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3641 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 224(%r9)
3642 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3643 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 192(%r9)
3644 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3645 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 160(%r9)
3646 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3647 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 128(%r9)
3648 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3649 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 96(%r9)
3650 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3651 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 64(%r9)
3652 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3653 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 32(%r9)
3654 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3655 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, (%r9)
3656 ; AVX2-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3657 ; AVX2-ONLY-NEXT:    vmovdqa %ymm7, 224(%rax)
3658 ; AVX2-ONLY-NEXT:    vmovdqa %ymm15, 192(%rax)
3659 ; AVX2-ONLY-NEXT:    vmovdqa %ymm14, 160(%rax)
3660 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3661 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 128(%rax)
3662 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3663 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 96(%rax)
3664 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3665 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 64(%rax)
3666 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3667 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 32(%rax)
3668 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3669 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, (%rax)
3670 ; AVX2-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3671 ; AVX2-ONLY-NEXT:    vmovdqa %ymm10, 224(%rax)
3672 ; AVX2-ONLY-NEXT:    vmovdqa %ymm0, 192(%rax)
3673 ; AVX2-ONLY-NEXT:    vmovdqa %ymm4, 160(%rax)
3674 ; AVX2-ONLY-NEXT:    vmovdqa %ymm2, 128(%rax)
3675 ; AVX2-ONLY-NEXT:    vmovdqa %ymm11, 96(%rax)
3676 ; AVX2-ONLY-NEXT:    vmovdqa %ymm12, 64(%rax)
3677 ; AVX2-ONLY-NEXT:    vmovdqa %ymm6, 32(%rax)
3678 ; AVX2-ONLY-NEXT:    vmovdqa %ymm9, (%rax)
3679 ; AVX2-ONLY-NEXT:    addq $1576, %rsp # imm = 0x628
3680 ; AVX2-ONLY-NEXT:    vzeroupper
3681 ; AVX2-ONLY-NEXT:    retq
3683 ; AVX512F-LABEL: load_i64_stride7_vf32:
3684 ; AVX512F:       # %bb.0:
3685 ; AVX512F-NEXT:    subq $2728, %rsp # imm = 0xAA8
3686 ; AVX512F-NEXT:    vmovdqa64 1216(%rdi), %zmm25
3687 ; AVX512F-NEXT:    vmovdqa64 1152(%rdi), %zmm1
3688 ; AVX512F-NEXT:    vmovdqa64 960(%rdi), %zmm31
3689 ; AVX512F-NEXT:    vmovdqa64 896(%rdi), %zmm12
3690 ; AVX512F-NEXT:    vmovdqa64 768(%rdi), %zmm2
3691 ; AVX512F-NEXT:    vmovdqa64 704(%rdi), %zmm20
3692 ; AVX512F-NEXT:    vmovdqa64 512(%rdi), %zmm9
3693 ; AVX512F-NEXT:    vmovdqa64 448(%rdi), %zmm7
3694 ; AVX512F-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3695 ; AVX512F-NEXT:    vmovdqa64 320(%rdi), %zmm26
3696 ; AVX512F-NEXT:    vmovdqa64 256(%rdi), %zmm19
3697 ; AVX512F-NEXT:    vmovdqa64 64(%rdi), %zmm23
3698 ; AVX512F-NEXT:    vmovdqa64 (%rdi), %zmm6
3699 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm30 = [0,7,14,0,0,7,14,0]
3700 ; AVX512F-NEXT:    # zmm30 = mem[0,1,2,3,0,1,2,3]
3701 ; AVX512F-NEXT:    vmovdqa64 %zmm6, %zmm3
3702 ; AVX512F-NEXT:    vmovdqa64 %zmm6, %zmm13
3703 ; AVX512F-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3704 ; AVX512F-NEXT:    vpermt2q %zmm23, %zmm30, %zmm3
3705 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3706 ; AVX512F-NEXT:    vmovdqu64 %zmm23, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3707 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm3 = [10,3,10,3,10,3,10,3]
3708 ; AVX512F-NEXT:    # zmm3 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3709 ; AVX512F-NEXT:    vmovdqa64 %zmm19, %zmm6
3710 ; AVX512F-NEXT:    vpermt2q %zmm26, %zmm3, %zmm6
3711 ; AVX512F-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3712 ; AVX512F-NEXT:    vmovdqa64 %zmm3, %zmm8
3713 ; AVX512F-NEXT:    vmovdqa64 %zmm7, %zmm3
3714 ; AVX512F-NEXT:    vpermt2q %zmm9, %zmm30, %zmm3
3715 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3716 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm14
3717 ; AVX512F-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3718 ; AVX512F-NEXT:    vmovdqa64 %zmm20, %zmm3
3719 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm8, %zmm3
3720 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3721 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm11 = [13,6,13,6,13,6,13,6]
3722 ; AVX512F-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3723 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm9 = [9,0,7,0,9,0,7,0]
3724 ; AVX512F-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3]
3725 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm15 = [11,4,11,4,11,4,11,4]
3726 ; AVX512F-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3727 ; AVX512F-NEXT:    vmovdqa64 %zmm20, %zmm3
3728 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm15, %zmm3
3729 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3730 ; AVX512F-NEXT:    vmovdqa64 %zmm19, %zmm3
3731 ; AVX512F-NEXT:    vpermt2q %zmm26, %zmm15, %zmm3
3732 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3733 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm22 = [12,5,12,5,12,5,12,5]
3734 ; AVX512F-NEXT:    # zmm22 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3735 ; AVX512F-NEXT:    vmovdqa64 %zmm20, %zmm3
3736 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm22, %zmm3
3737 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3738 ; AVX512F-NEXT:    vmovdqa64 %zmm19, %zmm3
3739 ; AVX512F-NEXT:    vpermt2q %zmm26, %zmm22, %zmm3
3740 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3741 ; AVX512F-NEXT:    vmovdqa64 %zmm20, %zmm3
3742 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm11, %zmm3
3743 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3744 ; AVX512F-NEXT:    vmovdqa64 %zmm19, %zmm3
3745 ; AVX512F-NEXT:    vpermt2q %zmm26, %zmm11, %zmm3
3746 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3747 ; AVX512F-NEXT:    vmovdqa64 %zmm20, %zmm3
3748 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm30, %zmm3
3749 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3750 ; AVX512F-NEXT:    vmovdqa64 %zmm19, %zmm3
3751 ; AVX512F-NEXT:    vpermt2q %zmm26, %zmm30, %zmm3
3752 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3753 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm3
3754 ; AVX512F-NEXT:    vpermt2q %zmm20, %zmm9, %zmm3
3755 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3756 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [2,9,2,9,2,9,2,9]
3757 ; AVX512F-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3758 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm0, %zmm20
3759 ; AVX512F-NEXT:    vmovdqa64 %zmm26, %zmm21
3760 ; AVX512F-NEXT:    vpermt2q %zmm19, %zmm9, %zmm21
3761 ; AVX512F-NEXT:    vpermt2q %zmm26, %zmm0, %zmm19
3762 ; AVX512F-NEXT:    vmovdqa64 %zmm12, %zmm3
3763 ; AVX512F-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3764 ; AVX512F-NEXT:    vmovdqa64 %zmm12, %zmm2
3765 ; AVX512F-NEXT:    vmovdqu64 %zmm31, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3766 ; AVX512F-NEXT:    vpermt2q %zmm31, %zmm30, %zmm2
3767 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3768 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm12
3769 ; AVX512F-NEXT:    vpermt2q %zmm25, %zmm8, %zmm12
3770 ; AVX512F-NEXT:    vmovdqa64 1408(%rdi), %zmm28
3771 ; AVX512F-NEXT:    vmovdqa64 1344(%rdi), %zmm2
3772 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm5
3773 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm7
3774 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3775 ; AVX512F-NEXT:    vpermt2q %zmm28, %zmm30, %zmm5
3776 ; AVX512F-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3777 ; AVX512F-NEXT:    vmovdqa64 1664(%rdi), %zmm2
3778 ; AVX512F-NEXT:    vmovdqa64 1600(%rdi), %zmm10
3779 ; AVX512F-NEXT:    vpermi2q %zmm2, %zmm10, %zmm8
3780 ; AVX512F-NEXT:    vmovdqa64 1088(%rdi), %zmm18
3781 ; AVX512F-NEXT:    vmovdqa64 1024(%rdi), %zmm6
3782 ; AVX512F-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3783 ; AVX512F-NEXT:    vmovdqa64 %zmm11, %zmm5
3784 ; AVX512F-NEXT:    vpermt2q %zmm18, %zmm11, %zmm6
3785 ; AVX512F-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3786 ; AVX512F-NEXT:    vpermt2q %zmm3, %zmm9, %zmm31
3787 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm4
3788 ; AVX512F-NEXT:    vmovdqa64 %zmm15, %zmm6
3789 ; AVX512F-NEXT:    vpermt2q %zmm25, %zmm15, %zmm4
3790 ; AVX512F-NEXT:    vmovdqa64 %zmm4, %zmm17
3791 ; AVX512F-NEXT:    vmovdqa64 640(%rdi), %zmm15
3792 ; AVX512F-NEXT:    vmovdqa64 576(%rdi), %zmm4
3793 ; AVX512F-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3794 ; AVX512F-NEXT:    vpermt2q %zmm15, %zmm11, %zmm4
3795 ; AVX512F-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3796 ; AVX512F-NEXT:    vmovdqa64 %zmm14, %zmm26
3797 ; AVX512F-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm9, %zmm26 # 64-byte Folded Reload
3798 ; AVX512F-NEXT:    vmovdqa64 192(%rdi), %zmm16
3799 ; AVX512F-NEXT:    vmovdqa64 128(%rdi), %zmm4
3800 ; AVX512F-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3801 ; AVX512F-NEXT:    vpermt2q %zmm16, %zmm11, %zmm4
3802 ; AVX512F-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3803 ; AVX512F-NEXT:    vpermt2q %zmm13, %zmm9, %zmm23
3804 ; AVX512F-NEXT:    vmovdqa64 1536(%rdi), %zmm11
3805 ; AVX512F-NEXT:    vmovdqa64 1472(%rdi), %zmm4
3806 ; AVX512F-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3807 ; AVX512F-NEXT:    vpermt2q %zmm11, %zmm5, %zmm4
3808 ; AVX512F-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3809 ; AVX512F-NEXT:    vmovdqa64 %zmm28, %zmm27
3810 ; AVX512F-NEXT:    vpermt2q %zmm7, %zmm9, %zmm27
3811 ; AVX512F-NEXT:    vpermi2q %zmm2, %zmm10, %zmm6
3812 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm29
3813 ; AVX512F-NEXT:    vmovdqa64 %zmm25, %zmm3
3814 ; AVX512F-NEXT:    vpermt2q %zmm25, %zmm22, %zmm29
3815 ; AVX512F-NEXT:    vpermi2q %zmm2, %zmm10, %zmm22
3816 ; AVX512F-NEXT:    vmovdqa64 %zmm22, %zmm14
3817 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm22
3818 ; AVX512F-NEXT:    vpermt2q %zmm25, %zmm5, %zmm22
3819 ; AVX512F-NEXT:    vpermi2q %zmm2, %zmm10, %zmm5
3820 ; AVX512F-NEXT:    vmovdqa64 %zmm5, %zmm13
3821 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm25
3822 ; AVX512F-NEXT:    vpermt2q %zmm3, %zmm30, %zmm25
3823 ; AVX512F-NEXT:    vpermi2q %zmm2, %zmm10, %zmm30
3824 ; AVX512F-NEXT:    vmovdqa64 %zmm3, %zmm24
3825 ; AVX512F-NEXT:    vpermt2q %zmm1, %zmm9, %zmm24
3826 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm4
3827 ; AVX512F-NEXT:    vpermi2q %zmm10, %zmm2, %zmm9
3828 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm7
3829 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm0, %zmm10
3830 ; AVX512F-NEXT:    vpermt2q %zmm3, %zmm0, %zmm4
3831 ; AVX512F-NEXT:    vmovdqa64 384(%rdi), %zmm0
3832 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [0,5,6,9,0,5,6,9]
3833 ; AVX512F-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
3834 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
3835 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm2, %zmm1
3836 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3837 ; AVX512F-NEXT:    vmovdqa64 832(%rdi), %zmm3
3838 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
3839 ; AVX512F-NEXT:    vpermt2q %zmm3, %zmm2, %zmm1
3840 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3841 ; AVX512F-NEXT:    vmovdqa64 1280(%rdi), %zmm5
3842 ; AVX512F-NEXT:    vpermt2q %zmm5, %zmm2, %zmm12
3843 ; AVX512F-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3844 ; AVX512F-NEXT:    vmovdqa64 1728(%rdi), %zmm9
3845 ; AVX512F-NEXT:    vpermt2q %zmm9, %zmm2, %zmm8
3846 ; AVX512F-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3847 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [0,5,6,10,0,5,6,10]
3848 ; AVX512F-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
3849 ; AVX512F-NEXT:    vpermt2q %zmm5, %zmm2, %zmm17
3850 ; AVX512F-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3851 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
3852 ; AVX512F-NEXT:    vpermt2q %zmm3, %zmm2, %zmm1
3853 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3854 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
3855 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm2, %zmm1
3856 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3857 ; AVX512F-NEXT:    vpermt2q %zmm9, %zmm2, %zmm6
3858 ; AVX512F-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3859 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [0,5,6,11,0,5,6,11]
3860 ; AVX512F-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
3861 ; AVX512F-NEXT:    vpermt2q %zmm5, %zmm2, %zmm29
3862 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
3863 ; AVX512F-NEXT:    vpermt2q %zmm3, %zmm2, %zmm1
3864 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3865 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
3866 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm2, %zmm1
3867 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3868 ; AVX512F-NEXT:    vpermt2q %zmm9, %zmm2, %zmm14
3869 ; AVX512F-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3870 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [0,5,6,12,0,5,6,12]
3871 ; AVX512F-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
3872 ; AVX512F-NEXT:    vpermt2q %zmm5, %zmm2, %zmm22
3873 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
3874 ; AVX512F-NEXT:    vpermt2q %zmm3, %zmm2, %zmm1
3875 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3876 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
3877 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm2, %zmm1
3878 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3879 ; AVX512F-NEXT:    vpermt2q %zmm9, %zmm2, %zmm13
3880 ; AVX512F-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3881 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [4,5,6,13,4,5,6,13]
3882 ; AVX512F-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
3883 ; AVX512F-NEXT:    vpermt2q %zmm5, %zmm2, %zmm25
3884 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
3885 ; AVX512F-NEXT:    vpermt2q %zmm3, %zmm2, %zmm8
3886 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
3887 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm2, %zmm14
3888 ; AVX512F-NEXT:    vpermt2q %zmm9, %zmm2, %zmm30
3889 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [4,5,6,14,4,5,6,14]
3890 ; AVX512F-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
3891 ; AVX512F-NEXT:    vpermt2q %zmm5, %zmm2, %zmm24
3892 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
3893 ; AVX512F-NEXT:    vpermt2q %zmm3, %zmm2, %zmm1
3894 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3895 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm2, %zmm21
3896 ; AVX512F-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3897 ; AVX512F-NEXT:    vpermt2q %zmm9, %zmm2, %zmm7
3898 ; AVX512F-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3899 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [4,5,8,15,4,5,8,15]
3900 ; AVX512F-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
3901 ; AVX512F-NEXT:    vpermt2q %zmm3, %zmm2, %zmm20
3902 ; AVX512F-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3903 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm2, %zmm19
3904 ; AVX512F-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3905 ; AVX512F-NEXT:    vpermt2q %zmm9, %zmm2, %zmm10
3906 ; AVX512F-NEXT:    vpermt2q %zmm5, %zmm2, %zmm4
3907 ; AVX512F-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3908 ; AVX512F-NEXT:    movb $24, %al
3909 ; AVX512F-NEXT:    kmovw %eax, %k1
3910 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
3911 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
3912 ; AVX512F-NEXT:    vshufi64x2 {{.*#+}} zmm0 {%k1} = zmm1[4,5,4,5],zmm15[4,5,4,5]
3913 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3914 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [14,0,0,7,14,0,0,7]
3915 ; AVX512F-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
3916 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm2
3917 ; AVX512F-NEXT:    vpermt2q %zmm15, %zmm0, %zmm2
3918 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [7,0,9,0,7,0,9,0]
3919 ; AVX512F-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
3920 ; AVX512F-NEXT:    vmovdqa64 %zmm15, %zmm20
3921 ; AVX512F-NEXT:    vpermt2q %zmm1, %zmm4, %zmm20
3922 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} ymm21 = [4,11,4,11]
3923 ; AVX512F-NEXT:    # ymm21 = mem[0,1,2,3,0,1,2,3]
3924 ; AVX512F-NEXT:    vpermt2q %zmm15, %zmm21, %zmm1
3925 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3926 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
3927 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
3928 ; AVX512F-NEXT:    vshufi64x2 {{.*#+}} zmm1 {%k1} = zmm3[4,5,4,5],zmm16[4,5,4,5]
3929 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3930 ; AVX512F-NEXT:    vmovdqa64 %zmm3, %zmm15
3931 ; AVX512F-NEXT:    vpermt2q %zmm16, %zmm0, %zmm15
3932 ; AVX512F-NEXT:    vmovdqa64 %zmm16, %zmm19
3933 ; AVX512F-NEXT:    vpermt2q %zmm3, %zmm4, %zmm19
3934 ; AVX512F-NEXT:    vpermt2q %zmm16, %zmm21, %zmm3
3935 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3936 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
3937 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
3938 ; AVX512F-NEXT:    vshufi64x2 {{.*#+}} zmm1 {%k1} = zmm3[4,5,4,5],zmm11[4,5,4,5]
3939 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3940 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
3941 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm16
3942 ; AVX512F-NEXT:    vpermt2q %zmm18, %zmm0, %zmm16
3943 ; AVX512F-NEXT:    vpermi2q %zmm11, %zmm3, %zmm0
3944 ; AVX512F-NEXT:    vmovdqa64 %zmm18, %zmm17
3945 ; AVX512F-NEXT:    vpermt2q %zmm1, %zmm4, %zmm17
3946 ; AVX512F-NEXT:    vpermi2q %zmm3, %zmm11, %zmm4
3947 ; AVX512F-NEXT:    vpermt2q %zmm11, %zmm21, %zmm3
3948 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3949 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
3950 ; AVX512F-NEXT:    vshufi64x2 {{.*#+}} zmm9 {%k1} = zmm1[4,5,4,5],zmm18[4,5,4,5]
3951 ; AVX512F-NEXT:    vpermt2q %zmm18, %zmm21, %zmm1
3952 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3953 ; AVX512F-NEXT:    vmovdqa 912(%rdi), %xmm11
3954 ; AVX512F-NEXT:    vpblendd {{.*#+}} xmm11 = xmm11[0,1],mem[2,3]
3955 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm11, %zmm16, %zmm1
3956 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3957 ; AVX512F-NEXT:    vmovdqa 464(%rdi), %xmm11
3958 ; AVX512F-NEXT:    vpblendd {{.*#+}} xmm11 = xmm11[0,1],mem[2,3]
3959 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm11, %zmm2, %zmm1
3960 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3961 ; AVX512F-NEXT:    vmovdqa 16(%rdi), %xmm2
3962 ; AVX512F-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0,1],mem[2,3]
3963 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm2, %zmm15, %zmm21
3964 ; AVX512F-NEXT:    vmovdqa 1360(%rdi), %xmm2
3965 ; AVX512F-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0,1],mem[2,3]
3966 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm2, %zmm0, %zmm16
3967 ; AVX512F-NEXT:    vinserti128 $1, 1088(%rdi), %ymm0, %ymm0
3968 ; AVX512F-NEXT:    vmovdqa 1024(%rdi), %ymm7
3969 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm11 = ymm7[0,1,2,3,4,5],ymm0[6,7]
3970 ; AVX512F-NEXT:    vmovdqa {{.*#+}} xmm0 = [4,11]
3971 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
3972 ; AVX512F-NEXT:    vmovdqa64 %zmm5, %zmm12
3973 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
3974 ; AVX512F-NEXT:    vpermt2q %zmm13, %zmm0, %zmm12
3975 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm11 = ymm12[0,1,2,3],ymm11[4,5,6,7]
3976 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm11, %zmm25, %zmm1
3977 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3978 ; AVX512F-NEXT:    vinserti128 $1, 640(%rdi), %ymm0, %ymm11
3979 ; AVX512F-NEXT:    vmovdqa 576(%rdi), %ymm1
3980 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm11 = ymm1[0,1,2,3,4,5],ymm11[6,7]
3981 ; AVX512F-NEXT:    vmovdqa64 %ymm1, %ymm25
3982 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
3983 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm15
3984 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
3985 ; AVX512F-NEXT:    vpermt2q %zmm12, %zmm0, %zmm15
3986 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm11 = ymm15[0,1,2,3],ymm11[4,5,6,7]
3987 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm11, %zmm8, %zmm1
3988 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3989 ; AVX512F-NEXT:    vinserti128 $1, 192(%rdi), %ymm0, %ymm11
3990 ; AVX512F-NEXT:    vmovdqa 128(%rdi), %ymm1
3991 ; AVX512F-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3992 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm11 = ymm1[0,1,2,3,4,5],ymm11[6,7]
3993 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
3994 ; AVX512F-NEXT:    vmovdqa64 %zmm3, %zmm1
3995 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
3996 ; AVX512F-NEXT:    vpermt2q %zmm15, %zmm0, %zmm1
3997 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm11[4,5,6,7]
3998 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm1, %zmm14, %zmm1
3999 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4000 ; AVX512F-NEXT:    vinserti128 $1, 1536(%rdi), %ymm0, %ymm1
4001 ; AVX512F-NEXT:    vmovdqa 1472(%rdi), %ymm11
4002 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm1 = ymm11[0,1,2,3,4,5],ymm1[6,7]
4003 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
4004 ; AVX512F-NEXT:    vpermi2q %zmm28, %zmm8, %zmm0
4005 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4006 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm0, %zmm30, %zmm0
4007 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4008 ; AVX512F-NEXT:    vmovdqa 1088(%rdi), %ymm0
4009 ; AVX512F-NEXT:    vpalignr {{.*#+}} ymm14 = ymm7[8,9,10,11,12,13,14,15],ymm0[0,1,2,3,4,5,6,7],ymm7[24,25,26,27,28,29,30,31],ymm0[16,17,18,19,20,21,22,23]
4010 ; AVX512F-NEXT:    vmovdqa {{.*#+}} xmm0 = [5,12]
4011 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm1
4012 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm7
4013 ; AVX512F-NEXT:    vpermt2q %zmm12, %zmm0, %zmm7
4014 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} xmm30 = [6,13]
4015 ; AVX512F-NEXT:    vpermt2q %zmm12, %zmm30, %zmm1
4016 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4017 ; AVX512F-NEXT:    vmovdqa64 %zmm3, %zmm6
4018 ; AVX512F-NEXT:    vpermt2q %zmm15, %zmm0, %zmm6
4019 ; AVX512F-NEXT:    vpermt2q %zmm15, %zmm30, %zmm3
4020 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4021 ; AVX512F-NEXT:    vmovdqa 960(%rdi), %ymm15
4022 ; AVX512F-NEXT:    vpalignr {{.*#+}} ymm15 = mem[8,9,10,11,12,13,14,15],ymm15[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm15[16,17,18,19,20,21,22,23]
4023 ; AVX512F-NEXT:    vextracti128 $1, %ymm15, %xmm15
4024 ; AVX512F-NEXT:    vmovdqa 512(%rdi), %ymm12
4025 ; AVX512F-NEXT:    vpalignr {{.*#+}} ymm12 = mem[8,9,10,11,12,13,14,15],ymm12[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm12[16,17,18,19,20,21,22,23]
4026 ; AVX512F-NEXT:    vextracti128 $1, %ymm12, %xmm12
4027 ; AVX512F-NEXT:    vmovdqa64 %zmm5, %zmm2
4028 ; AVX512F-NEXT:    vpermt2q %zmm13, %zmm0, %zmm2
4029 ; AVX512F-NEXT:    vmovdqa64 %zmm8, %zmm3
4030 ; AVX512F-NEXT:    vpermi2q %zmm28, %zmm8, %zmm0
4031 ; AVX512F-NEXT:    vpermt2q %zmm28, %zmm30, %zmm3
4032 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4033 ; AVX512F-NEXT:    vpermt2q %zmm13, %zmm30, %zmm5
4034 ; AVX512F-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4035 ; AVX512F-NEXT:    movb $-32, %al
4036 ; AVX512F-NEXT:    kmovw %eax, %k2
4037 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
4038 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
4039 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm28 {%k2}
4040 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm30 # 64-byte Reload
4041 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
4042 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm30 {%k2}
4043 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm13
4044 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
4045 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm13 {%k2}
4046 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm18 # 64-byte Reload
4047 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
4048 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm18 {%k2}
4049 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
4050 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm31 {%k1}
4051 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
4052 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm31 {%k2}
4053 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
4054 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm26 {%k1}
4055 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
4056 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm26 {%k2}
4057 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
4058 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm23 {%k1}
4059 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
4060 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm23 {%k2}
4061 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
4062 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm27 {%k1}
4063 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
4064 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm27 {%k2}
4065 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
4066 ; AVX512F-NEXT:    vmovdqa64 %zmm29, %zmm5 {%k2}
4067 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
4068 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm29 # 64-byte Reload
4069 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm29 {%k2}
4070 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
4071 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm21 {%k2}
4072 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
4073 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm16 {%k2}
4074 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm15, %zmm17, %zmm17
4075 ; AVX512F-NEXT:    vmovdqa64 %zmm22, %zmm17 {%k2}
4076 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm12, %zmm20, %zmm12
4077 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
4078 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm12 {%k2}
4079 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm14[4,5,6,7]
4080 ; AVX512F-NEXT:    vmovdqa 64(%rdi), %ymm14
4081 ; AVX512F-NEXT:    vpalignr {{.*#+}} ymm14 = mem[8,9,10,11,12,13,14,15],ymm14[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm14[16,17,18,19,20,21,22,23]
4082 ; AVX512F-NEXT:    vextracti128 $1, %ymm14, %xmm14
4083 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm14, %zmm19, %zmm9
4084 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
4085 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm9 {%k2}
4086 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm1, %zmm24, %zmm1
4087 ; AVX512F-NEXT:    vmovdqa 640(%rdi), %ymm14
4088 ; AVX512F-NEXT:    vmovdqa64 %ymm25, %ymm2
4089 ; AVX512F-NEXT:    vpalignr {{.*#+}} ymm14 = ymm2[8,9,10,11,12,13,14,15],ymm14[0,1,2,3,4,5,6,7],ymm2[24,25,26,27,28,29,30,31],ymm14[16,17,18,19,20,21,22,23]
4090 ; AVX512F-NEXT:    vmovdqa 1408(%rdi), %ymm15
4091 ; AVX512F-NEXT:    vpalignr {{.*#+}} ymm15 = mem[8,9,10,11,12,13,14,15],ymm15[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm15[16,17,18,19,20,21,22,23]
4092 ; AVX512F-NEXT:    vextracti128 $1, %ymm15, %xmm15
4093 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm15, %zmm4, %zmm4
4094 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
4095 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm4 {%k2}
4096 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm3 = ymm7[0,1,2,3],ymm14[4,5,6,7]
4097 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
4098 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm3, %zmm2, %zmm3
4099 ; AVX512F-NEXT:    vmovdqa 192(%rdi), %ymm14
4100 ; AVX512F-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
4101 ; AVX512F-NEXT:    # ymm14 = mem[8,9,10,11,12,13,14,15],ymm14[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm14[16,17,18,19,20,21,22,23]
4102 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm2 = ymm6[0,1,2,3],ymm14[4,5,6,7]
4103 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
4104 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm2, %zmm6, %zmm2
4105 ; AVX512F-NEXT:    vmovdqa 1536(%rdi), %ymm14
4106 ; AVX512F-NEXT:    vpalignr {{.*#+}} ymm11 = ymm11[8,9,10,11,12,13,14,15],ymm14[0,1,2,3,4,5,6,7],ymm11[24,25,26,27,28,29,30,31],ymm14[16,17,18,19,20,21,22,23]
4107 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm11[4,5,6,7]
4108 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
4109 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm0, %zmm6, %zmm0
4110 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
4111 ; AVX512F-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm11 # 32-byte Folded Reload
4112 ; AVX512F-NEXT:    # ymm11 = ymm6[0,1,2,3],mem[4,5,6,7]
4113 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
4114 ; AVX512F-NEXT:    vinsertf64x4 $0, %ymm11, %zmm6, %zmm11
4115 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
4116 ; AVX512F-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm8 # 32-byte Folded Reload
4117 ; AVX512F-NEXT:    # ymm8 = ymm6[0,1,2,3],mem[4,5,6,7]
4118 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
4119 ; AVX512F-NEXT:    vinsertf64x4 $0, %ymm8, %zmm6, %zmm8
4120 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
4121 ; AVX512F-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm7 # 32-byte Folded Reload
4122 ; AVX512F-NEXT:    # ymm7 = ymm6[0,1,2,3],mem[4,5,6,7]
4123 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm7, %zmm10, %zmm6
4124 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
4125 ; AVX512F-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload
4126 ; AVX512F-NEXT:    # ymm7 = ymm7[0,1,2,3],mem[4,5,6,7]
4127 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
4128 ; AVX512F-NEXT:    vinsertf64x4 $0, %ymm7, %zmm10, %zmm7
4129 ; AVX512F-NEXT:    vmovdqa64 %zmm18, 192(%rsi)
4130 ; AVX512F-NEXT:    vmovdqa64 %zmm13, 128(%rsi)
4131 ; AVX512F-NEXT:    vmovdqa64 %zmm30, 64(%rsi)
4132 ; AVX512F-NEXT:    vmovdqa64 %zmm28, (%rsi)
4133 ; AVX512F-NEXT:    vmovdqa64 %zmm27, 192(%rdx)
4134 ; AVX512F-NEXT:    vmovdqa64 %zmm23, (%rdx)
4135 ; AVX512F-NEXT:    vmovdqa64 %zmm26, 64(%rdx)
4136 ; AVX512F-NEXT:    vmovdqa64 %zmm31, 128(%rdx)
4137 ; AVX512F-NEXT:    vmovdqa64 %zmm16, 192(%rcx)
4138 ; AVX512F-NEXT:    vmovdqa64 %zmm21, (%rcx)
4139 ; AVX512F-NEXT:    vmovdqa64 %zmm29, 64(%rcx)
4140 ; AVX512F-NEXT:    vmovdqa64 %zmm5, 128(%rcx)
4141 ; AVX512F-NEXT:    vmovdqa64 %zmm4, 192(%r8)
4142 ; AVX512F-NEXT:    vmovdqa64 %zmm9, (%r8)
4143 ; AVX512F-NEXT:    vmovdqa64 %zmm12, 64(%r8)
4144 ; AVX512F-NEXT:    vmovdqa64 %zmm17, 128(%r8)
4145 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4146 ; AVX512F-NEXT:    vmovaps %zmm4, 192(%r9)
4147 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4148 ; AVX512F-NEXT:    vmovaps %zmm4, (%r9)
4149 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4150 ; AVX512F-NEXT:    vmovaps %zmm4, 64(%r9)
4151 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4152 ; AVX512F-NEXT:    vmovaps %zmm4, 128(%r9)
4153 ; AVX512F-NEXT:    movq {{[0-9]+}}(%rsp), %rax
4154 ; AVX512F-NEXT:    vmovdqa64 %zmm0, 192(%rax)
4155 ; AVX512F-NEXT:    vmovdqa64 %zmm2, (%rax)
4156 ; AVX512F-NEXT:    vmovdqa64 %zmm3, 64(%rax)
4157 ; AVX512F-NEXT:    vmovdqa64 %zmm1, 128(%rax)
4158 ; AVX512F-NEXT:    movq {{[0-9]+}}(%rsp), %rax
4159 ; AVX512F-NEXT:    vmovaps %zmm7, 128(%rax)
4160 ; AVX512F-NEXT:    vmovdqa64 %zmm6, 192(%rax)
4161 ; AVX512F-NEXT:    vmovaps %zmm8, (%rax)
4162 ; AVX512F-NEXT:    vmovaps %zmm11, 64(%rax)
4163 ; AVX512F-NEXT:    addq $2728, %rsp # imm = 0xAA8
4164 ; AVX512F-NEXT:    vzeroupper
4165 ; AVX512F-NEXT:    retq
4167 ; AVX512BW-LABEL: load_i64_stride7_vf32:
4168 ; AVX512BW:       # %bb.0:
4169 ; AVX512BW-NEXT:    subq $2760, %rsp # imm = 0xAC8
4170 ; AVX512BW-NEXT:    vmovdqa64 1216(%rdi), %zmm20
4171 ; AVX512BW-NEXT:    vmovdqa64 1152(%rdi), %zmm2
4172 ; AVX512BW-NEXT:    vmovdqa64 960(%rdi), %zmm29
4173 ; AVX512BW-NEXT:    vmovdqa64 896(%rdi), %zmm4
4174 ; AVX512BW-NEXT:    vmovdqa64 768(%rdi), %zmm1
4175 ; AVX512BW-NEXT:    vmovdqa64 704(%rdi), %zmm30
4176 ; AVX512BW-NEXT:    vmovdqa64 512(%rdi), %zmm28
4177 ; AVX512BW-NEXT:    vmovdqa64 448(%rdi), %zmm12
4178 ; AVX512BW-NEXT:    vmovdqa64 320(%rdi), %zmm26
4179 ; AVX512BW-NEXT:    vmovdqa64 256(%rdi), %zmm17
4180 ; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %zmm6
4181 ; AVX512BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4182 ; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm3
4183 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4184 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm25 = [0,7,14,0,0,7,14,0]
4185 ; AVX512BW-NEXT:    # zmm25 = mem[0,1,2,3,0,1,2,3]
4186 ; AVX512BW-NEXT:    vpermt2q %zmm6, %zmm25, %zmm3
4187 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4188 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [10,3,10,3,10,3,10,3]
4189 ; AVX512BW-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4190 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm6
4191 ; AVX512BW-NEXT:    vpermt2q %zmm26, %zmm8, %zmm6
4192 ; AVX512BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4193 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm3
4194 ; AVX512BW-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4195 ; AVX512BW-NEXT:    vpermt2q %zmm28, %zmm25, %zmm3
4196 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4197 ; AVX512BW-NEXT:    vmovdqu64 %zmm28, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4198 ; AVX512BW-NEXT:    vmovdqa64 %zmm30, %zmm3
4199 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm8, %zmm3
4200 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4201 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm11 = [13,6,13,6,13,6,13,6]
4202 ; AVX512BW-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4203 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm18 = [9,0,7,0,9,0,7,0]
4204 ; AVX512BW-NEXT:    # zmm18 = mem[0,1,2,3,0,1,2,3]
4205 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm7 = [11,4,11,4,11,4,11,4]
4206 ; AVX512BW-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4207 ; AVX512BW-NEXT:    vmovdqa64 %zmm30, %zmm3
4208 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm7, %zmm3
4209 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4210 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm3
4211 ; AVX512BW-NEXT:    vpermt2q %zmm26, %zmm7, %zmm3
4212 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4213 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm23 = [12,5,12,5,12,5,12,5]
4214 ; AVX512BW-NEXT:    # zmm23 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4215 ; AVX512BW-NEXT:    vmovdqa64 %zmm30, %zmm3
4216 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm23, %zmm3
4217 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4218 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm3
4219 ; AVX512BW-NEXT:    vpermt2q %zmm26, %zmm23, %zmm3
4220 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4221 ; AVX512BW-NEXT:    vmovdqa64 %zmm30, %zmm3
4222 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm11, %zmm3
4223 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4224 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm3
4225 ; AVX512BW-NEXT:    vpermt2q %zmm26, %zmm11, %zmm3
4226 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4227 ; AVX512BW-NEXT:    vmovdqa64 %zmm30, %zmm3
4228 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm25, %zmm3
4229 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4230 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm3
4231 ; AVX512BW-NEXT:    vpermt2q %zmm26, %zmm25, %zmm3
4232 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4233 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm3
4234 ; AVX512BW-NEXT:    vpermt2q %zmm30, %zmm18, %zmm3
4235 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4236 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [2,9,2,9,2,9,2,9]
4237 ; AVX512BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4238 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm0, %zmm30
4239 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, %zmm10
4240 ; AVX512BW-NEXT:    vpermt2q %zmm17, %zmm18, %zmm10
4241 ; AVX512BW-NEXT:    vpermt2q %zmm26, %zmm0, %zmm17
4242 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4243 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm1
4244 ; AVX512BW-NEXT:    vmovdqu64 %zmm29, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4245 ; AVX512BW-NEXT:    vpermt2q %zmm29, %zmm25, %zmm1
4246 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4247 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm6
4248 ; AVX512BW-NEXT:    vpermt2q %zmm20, %zmm8, %zmm6
4249 ; AVX512BW-NEXT:    vmovdqa64 1408(%rdi), %zmm24
4250 ; AVX512BW-NEXT:    vmovdqa64 1344(%rdi), %zmm15
4251 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm3
4252 ; AVX512BW-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4253 ; AVX512BW-NEXT:    vpermt2q %zmm24, %zmm25, %zmm3
4254 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4255 ; AVX512BW-NEXT:    vmovdqa64 1664(%rdi), %zmm1
4256 ; AVX512BW-NEXT:    vmovdqa64 1600(%rdi), %zmm16
4257 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm16, %zmm8
4258 ; AVX512BW-NEXT:    vmovdqa64 1088(%rdi), %zmm13
4259 ; AVX512BW-NEXT:    vmovdqa64 1024(%rdi), %zmm5
4260 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4261 ; AVX512BW-NEXT:    vpermt2q %zmm13, %zmm11, %zmm5
4262 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4263 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, %zmm9
4264 ; AVX512BW-NEXT:    vpermt2q %zmm4, %zmm18, %zmm29
4265 ; AVX512BW-NEXT:    vmovdqu64 %zmm29, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4266 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm4
4267 ; AVX512BW-NEXT:    vpermt2q %zmm20, %zmm7, %zmm4
4268 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm14
4269 ; AVX512BW-NEXT:    vmovdqa64 640(%rdi), %zmm18
4270 ; AVX512BW-NEXT:    vmovdqa64 576(%rdi), %zmm4
4271 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4272 ; AVX512BW-NEXT:    vpermt2q %zmm18, %zmm11, %zmm4
4273 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4274 ; AVX512BW-NEXT:    vpermt2q %zmm12, %zmm9, %zmm28
4275 ; AVX512BW-NEXT:    vmovdqa64 192(%rdi), %zmm19
4276 ; AVX512BW-NEXT:    vmovdqa64 128(%rdi), %zmm4
4277 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4278 ; AVX512BW-NEXT:    vpermt2q %zmm19, %zmm11, %zmm4
4279 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4280 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm26 # 64-byte Reload
4281 ; AVX512BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm9, %zmm26 # 64-byte Folded Reload
4282 ; AVX512BW-NEXT:    vmovdqa64 1536(%rdi), %zmm12
4283 ; AVX512BW-NEXT:    vmovdqa64 1472(%rdi), %zmm4
4284 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4285 ; AVX512BW-NEXT:    vpermt2q %zmm12, %zmm11, %zmm4
4286 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4287 ; AVX512BW-NEXT:    vmovdqa64 %zmm24, %zmm22
4288 ; AVX512BW-NEXT:    vpermt2q %zmm15, %zmm9, %zmm22
4289 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm16, %zmm7
4290 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm29
4291 ; AVX512BW-NEXT:    vpermt2q %zmm20, %zmm23, %zmm29
4292 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm16, %zmm23
4293 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm31
4294 ; AVX512BW-NEXT:    vpermt2q %zmm20, %zmm11, %zmm31
4295 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm16, %zmm11
4296 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm15
4297 ; AVX512BW-NEXT:    vpermt2q %zmm20, %zmm25, %zmm15
4298 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm16, %zmm25
4299 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, %zmm21
4300 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm9, %zmm21
4301 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm4
4302 ; AVX512BW-NEXT:    vpermi2q %zmm16, %zmm1, %zmm9
4303 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm0, %zmm16
4304 ; AVX512BW-NEXT:    vpermt2q %zmm20, %zmm0, %zmm4
4305 ; AVX512BW-NEXT:    vmovdqa64 384(%rdi), %zmm0
4306 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm1 = [0,5,6,9,0,5,6,9]
4307 ; AVX512BW-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3]
4308 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
4309 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm1, %zmm2
4310 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4311 ; AVX512BW-NEXT:    vmovdqa64 832(%rdi), %zmm3
4312 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
4313 ; AVX512BW-NEXT:    vpermt2q %zmm3, %zmm1, %zmm2
4314 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4315 ; AVX512BW-NEXT:    vmovdqa64 1280(%rdi), %zmm5
4316 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm1, %zmm6
4317 ; AVX512BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4318 ; AVX512BW-NEXT:    vmovdqa64 1728(%rdi), %zmm6
4319 ; AVX512BW-NEXT:    vpermt2q %zmm6, %zmm1, %zmm8
4320 ; AVX512BW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4321 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm1 = [0,5,6,10,0,5,6,10]
4322 ; AVX512BW-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3]
4323 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm1, %zmm14
4324 ; AVX512BW-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4325 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
4326 ; AVX512BW-NEXT:    vpermt2q %zmm3, %zmm1, %zmm2
4327 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4328 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
4329 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm1, %zmm2
4330 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4331 ; AVX512BW-NEXT:    vpermt2q %zmm6, %zmm1, %zmm7
4332 ; AVX512BW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4333 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm1 = [0,5,6,11,0,5,6,11]
4334 ; AVX512BW-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3]
4335 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm1, %zmm29
4336 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
4337 ; AVX512BW-NEXT:    vpermt2q %zmm3, %zmm1, %zmm2
4338 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4339 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
4340 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm1, %zmm2
4341 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4342 ; AVX512BW-NEXT:    vpermt2q %zmm6, %zmm1, %zmm23
4343 ; AVX512BW-NEXT:    vmovdqu64 %zmm23, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4344 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm1 = [0,5,6,12,0,5,6,12]
4345 ; AVX512BW-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3]
4346 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm1, %zmm31
4347 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
4348 ; AVX512BW-NEXT:    vpermt2q %zmm3, %zmm1, %zmm2
4349 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4350 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
4351 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm1, %zmm2
4352 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4353 ; AVX512BW-NEXT:    vpermt2q %zmm6, %zmm1, %zmm11
4354 ; AVX512BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4355 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm1 = [4,5,6,13,4,5,6,13]
4356 ; AVX512BW-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3]
4357 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm1, %zmm15
4358 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
4359 ; AVX512BW-NEXT:    vpermt2q %zmm3, %zmm1, %zmm2
4360 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
4361 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm1, %zmm7
4362 ; AVX512BW-NEXT:    vpermt2q %zmm6, %zmm1, %zmm25
4363 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm1 = [4,5,6,14,4,5,6,14]
4364 ; AVX512BW-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3]
4365 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm1, %zmm21
4366 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
4367 ; AVX512BW-NEXT:    vpermt2q %zmm3, %zmm1, %zmm8
4368 ; AVX512BW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4369 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm1, %zmm10
4370 ; AVX512BW-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4371 ; AVX512BW-NEXT:    vpermt2q %zmm6, %zmm1, %zmm9
4372 ; AVX512BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4373 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm1 = [4,5,8,15,4,5,8,15]
4374 ; AVX512BW-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3]
4375 ; AVX512BW-NEXT:    vpermt2q %zmm3, %zmm1, %zmm30
4376 ; AVX512BW-NEXT:    vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4377 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm1, %zmm17
4378 ; AVX512BW-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4379 ; AVX512BW-NEXT:    vpermt2q %zmm6, %zmm1, %zmm16
4380 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm1, %zmm4
4381 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4382 ; AVX512BW-NEXT:    movb $24, %al
4383 ; AVX512BW-NEXT:    kmovd %eax, %k1
4384 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4385 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
4386 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm0 {%k1} = zmm1[4,5,4,5],zmm18[4,5,4,5]
4387 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4388 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [14,0,0,7,14,0,0,7]
4389 ; AVX512BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
4390 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm3
4391 ; AVX512BW-NEXT:    vpermt2q %zmm18, %zmm0, %zmm3
4392 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [7,0,9,0,7,0,9,0]
4393 ; AVX512BW-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
4394 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, %zmm27
4395 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm10, %zmm27
4396 ; AVX512BW-NEXT:    vbroadcasti128 {{.*#+}} ymm5 = [4,11,4,11]
4397 ; AVX512BW-NEXT:    # ymm5 = mem[0,1,0,1]
4398 ; AVX512BW-NEXT:    vpermt2q %zmm18, %zmm5, %zmm1
4399 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4400 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
4401 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4402 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm1 {%k1} = zmm4[4,5,4,5],zmm19[4,5,4,5]
4403 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4404 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm18
4405 ; AVX512BW-NEXT:    vpermt2q %zmm19, %zmm0, %zmm18
4406 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm23
4407 ; AVX512BW-NEXT:    vpermt2q %zmm4, %zmm10, %zmm23
4408 ; AVX512BW-NEXT:    vpermt2q %zmm19, %zmm5, %zmm4
4409 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4410 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4411 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
4412 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm17 {%k1} = zmm4[4,5,4,5],zmm12[4,5,4,5]
4413 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
4414 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm19
4415 ; AVX512BW-NEXT:    vpermt2q %zmm13, %zmm0, %zmm19
4416 ; AVX512BW-NEXT:    vpermi2q %zmm12, %zmm4, %zmm0
4417 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm20
4418 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm10, %zmm20
4419 ; AVX512BW-NEXT:    vpermi2q %zmm4, %zmm12, %zmm10
4420 ; AVX512BW-NEXT:    vpermt2q %zmm12, %zmm5, %zmm4
4421 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4422 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
4423 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm14 {%k1} = zmm1[4,5,4,5],zmm13[4,5,4,5]
4424 ; AVX512BW-NEXT:    vpermt2q %zmm13, %zmm5, %zmm1
4425 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4426 ; AVX512BW-NEXT:    vmovdqa 912(%rdi), %xmm5
4427 ; AVX512BW-NEXT:    vpblendd {{.*#+}} xmm5 = xmm5[0,1],mem[2,3]
4428 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm5, %zmm19, %zmm1
4429 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4430 ; AVX512BW-NEXT:    vmovdqa 464(%rdi), %xmm5
4431 ; AVX512BW-NEXT:    vpblendd {{.*#+}} xmm5 = xmm5[0,1],mem[2,3]
4432 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm5, %zmm3, %zmm1
4433 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4434 ; AVX512BW-NEXT:    vmovdqa 16(%rdi), %xmm3
4435 ; AVX512BW-NEXT:    vpblendd {{.*#+}} xmm3 = xmm3[0,1],mem[2,3]
4436 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm3, %zmm18, %zmm19
4437 ; AVX512BW-NEXT:    vmovdqa 1360(%rdi), %xmm3
4438 ; AVX512BW-NEXT:    vpblendd {{.*#+}} xmm3 = xmm3[0,1],mem[2,3]
4439 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm3, %zmm0, %zmm18
4440 ; AVX512BW-NEXT:    vinserti128 $1, 1088(%rdi), %ymm0, %ymm0
4441 ; AVX512BW-NEXT:    vmovdqa 1024(%rdi), %ymm13
4442 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm13[0,1,2,3,4,5],ymm0[6,7]
4443 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} xmm3 = [4,11]
4444 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
4445 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm12
4446 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
4447 ; AVX512BW-NEXT:    vpermt2q %zmm8, %zmm3, %zmm12
4448 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm12[0,1,2,3],ymm0[4,5,6,7]
4449 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm15, %zmm0
4450 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4451 ; AVX512BW-NEXT:    vinserti128 $1, 640(%rdi), %ymm0, %ymm0
4452 ; AVX512BW-NEXT:    vmovdqa 576(%rdi), %ymm1
4453 ; AVX512BW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4454 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
4455 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
4456 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm11
4457 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
4458 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm3, %zmm11
4459 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm11[0,1,2,3],ymm0[4,5,6,7]
4460 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm2, %zmm0
4461 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4462 ; AVX512BW-NEXT:    vinserti128 $1, 192(%rdi), %ymm0, %ymm0
4463 ; AVX512BW-NEXT:    vmovdqa 128(%rdi), %ymm12
4464 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm12[0,1,2,3,4,5],ymm0[6,7]
4465 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
4466 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm11
4467 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4468 ; AVX512BW-NEXT:    vpermt2q %zmm4, %zmm3, %zmm11
4469 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm11[0,1,2,3],ymm0[4,5,6,7]
4470 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm7, %zmm0
4471 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4472 ; AVX512BW-NEXT:    vinserti128 $1, 1536(%rdi), %ymm0, %ymm0
4473 ; AVX512BW-NEXT:    vmovdqa 1472(%rdi), %ymm2
4474 ; AVX512BW-NEXT:    vmovdqu %ymm2, (%rsp) # 32-byte Spill
4475 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3,4,5],ymm0[6,7]
4476 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
4477 ; AVX512BW-NEXT:    vpermi2q %zmm24, %zmm2, %zmm3
4478 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm0[4,5,6,7]
4479 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm25, %zmm0
4480 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4481 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} xmm7 = [5,12]
4482 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm11
4483 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm7, %zmm11
4484 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} xmm30 = [6,13]
4485 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm30, %zmm6
4486 ; AVX512BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4487 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm3
4488 ; AVX512BW-NEXT:    vpermt2q %zmm4, %zmm7, %zmm3
4489 ; AVX512BW-NEXT:    vpermt2q %zmm4, %zmm30, %zmm5
4490 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4491 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm0
4492 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm4
4493 ; AVX512BW-NEXT:    vpermt2q %zmm8, %zmm7, %zmm0
4494 ; AVX512BW-NEXT:    vpermi2q %zmm24, %zmm2, %zmm7
4495 ; AVX512BW-NEXT:    vpermt2q %zmm24, %zmm30, %zmm2
4496 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm8
4497 ; AVX512BW-NEXT:    vpermt2q %zmm4, %zmm30, %zmm9
4498 ; AVX512BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4499 ; AVX512BW-NEXT:    vmovdqa64 1088(%rdi), %ymm24
4500 ; AVX512BW-NEXT:    vpalignr {{.*#+}} ymm5 = ymm13[8,9,10,11,12,13,14,15],ymm24[0,1,2,3,4,5,6,7],ymm13[24,25,26,27,28,29,30,31],ymm24[16,17,18,19,20,21,22,23]
4501 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm5[4,5,6,7]
4502 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm21, %zmm0
4503 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4504 ; AVX512BW-NEXT:    movb $-32, %al
4505 ; AVX512BW-NEXT:    kmovd %eax, %k2
4506 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm24 # 64-byte Reload
4507 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4508 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm24 {%k2}
4509 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm25 # 64-byte Reload
4510 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4511 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm25 {%k2}
4512 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, %zmm2
4513 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4514 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k2}
4515 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm14
4516 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4517 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm14 {%k2}
4518 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4519 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
4520 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
4521 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4522 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
4523 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm30
4524 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4525 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm28 {%k1}
4526 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4527 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm28 {%k2}
4528 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4529 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k1}
4530 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4531 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k2}
4532 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4533 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm22 {%k1}
4534 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4535 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm22 {%k2}
4536 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
4537 ; AVX512BW-NEXT:    vmovdqa64 %zmm29, %zmm5 {%k2}
4538 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4539 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm29 # 64-byte Reload
4540 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm29 {%k2}
4541 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4542 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k2}
4543 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4544 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm18 {%k2}
4545 ; AVX512BW-NEXT:    vmovdqa 960(%rdi), %ymm1
4546 ; AVX512BW-NEXT:    vpalignr {{.*#+}} ymm1 = mem[8,9,10,11,12,13,14,15],ymm1[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm1[16,17,18,19,20,21,22,23]
4547 ; AVX512BW-NEXT:    vextracti128 $1, %ymm1, %xmm1
4548 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm1, %zmm20, %zmm1
4549 ; AVX512BW-NEXT:    vmovdqa64 %zmm31, %zmm1 {%k2}
4550 ; AVX512BW-NEXT:    vmovdqa 512(%rdi), %ymm6
4551 ; AVX512BW-NEXT:    vpalignr {{.*#+}} ymm6 = mem[8,9,10,11,12,13,14,15],ymm6[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm6[16,17,18,19,20,21,22,23]
4552 ; AVX512BW-NEXT:    vextracti128 $1, %ymm6, %xmm6
4553 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm6, %zmm27, %zmm6
4554 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4555 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k2}
4556 ; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %ymm17
4557 ; AVX512BW-NEXT:    vpalignr {{.*#+}} ymm17 = mem[8,9,10,11,12,13,14,15],ymm17[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm17[16,17,18,19,20,21,22,23]
4558 ; AVX512BW-NEXT:    vextracti32x4 $1, %ymm17, %xmm17
4559 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm17, %zmm23, %zmm15
4560 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4561 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm15 {%k2}
4562 ; AVX512BW-NEXT:    vmovdqa64 1408(%rdi), %ymm17
4563 ; AVX512BW-NEXT:    vpalignr {{.*#+}} ymm17 = mem[8,9,10,11,12,13,14,15],ymm17[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm17[16,17,18,19,20,21,22,23]
4564 ; AVX512BW-NEXT:    vextracti32x4 $1, %ymm17, %xmm17
4565 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm17, %zmm10, %zmm21
4566 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4567 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm21 {%k2}
4568 ; AVX512BW-NEXT:    vmovdqa64 640(%rdi), %ymm17
4569 ; AVX512BW-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm17, %ymm13 # 32-byte Folded Reload
4570 ; AVX512BW-NEXT:    # ymm13 = mem[8,9,10,11,12,13,14,15],ymm17[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm17[16,17,18,19,20,21,22,23]
4571 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm4 = ymm11[0,1,2,3],ymm13[4,5,6,7]
4572 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4573 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm4
4574 ; AVX512BW-NEXT:    vmovdqa 192(%rdi), %ymm13
4575 ; AVX512BW-NEXT:    vpalignr {{.*#+}} ymm12 = ymm12[8,9,10,11,12,13,14,15],ymm13[0,1,2,3,4,5,6,7],ymm12[24,25,26,27,28,29,30,31],ymm13[16,17,18,19,20,21,22,23]
4576 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm12[4,5,6,7]
4577 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4578 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm3
4579 ; AVX512BW-NEXT:    vmovdqa 1536(%rdi), %ymm12
4580 ; AVX512BW-NEXT:    vpalignr $8, (%rsp), %ymm12, %ymm11 # 32-byte Folded Reload
4581 ; AVX512BW-NEXT:    # ymm11 = mem[8,9,10,11,12,13,14,15],ymm12[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm12[16,17,18,19,20,21,22,23]
4582 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm7[0,1,2,3],ymm11[4,5,6,7]
4583 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
4584 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm7, %zmm0
4585 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
4586 ; AVX512BW-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm11 # 32-byte Folded Reload
4587 ; AVX512BW-NEXT:    # ymm11 = ymm7[0,1,2,3],mem[4,5,6,7]
4588 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
4589 ; AVX512BW-NEXT:    vinsertf64x4 $0, %ymm11, %zmm7, %zmm11
4590 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
4591 ; AVX512BW-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm9 # 32-byte Folded Reload
4592 ; AVX512BW-NEXT:    # ymm9 = ymm7[0,1,2,3],mem[4,5,6,7]
4593 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
4594 ; AVX512BW-NEXT:    vinsertf64x4 $0, %ymm9, %zmm7, %zmm9
4595 ; AVX512BW-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
4596 ; AVX512BW-NEXT:    # ymm8 = ymm8[0,1,2,3],mem[4,5,6,7]
4597 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm16, %zmm7
4598 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
4599 ; AVX512BW-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
4600 ; AVX512BW-NEXT:    # ymm8 = ymm8[0,1,2,3],mem[4,5,6,7]
4601 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
4602 ; AVX512BW-NEXT:    vinsertf64x4 $0, %ymm8, %zmm10, %zmm8
4603 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, 192(%rsi)
4604 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, 128(%rsi)
4605 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, 64(%rsi)
4606 ; AVX512BW-NEXT:    vmovdqa64 %zmm24, (%rsi)
4607 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, 192(%rdx)
4608 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, (%rdx)
4609 ; AVX512BW-NEXT:    vmovdqa64 %zmm28, 64(%rdx)
4610 ; AVX512BW-NEXT:    vmovdqa64 %zmm30, 128(%rdx)
4611 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, 192(%rcx)
4612 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, (%rcx)
4613 ; AVX512BW-NEXT:    vmovdqa64 %zmm29, 64(%rcx)
4614 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, 128(%rcx)
4615 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, 192(%r8)
4616 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, (%r8)
4617 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, 64(%r8)
4618 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, 128(%r8)
4619 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
4620 ; AVX512BW-NEXT:    vmovaps %zmm1, 192(%r9)
4621 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
4622 ; AVX512BW-NEXT:    vmovaps %zmm1, (%r9)
4623 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
4624 ; AVX512BW-NEXT:    vmovaps %zmm1, 64(%r9)
4625 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
4626 ; AVX512BW-NEXT:    vmovaps %zmm1, 128(%r9)
4627 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
4628 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, 192(%rax)
4629 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, (%rax)
4630 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, 64(%rax)
4631 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4632 ; AVX512BW-NEXT:    vmovaps %zmm0, 128(%rax)
4633 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
4634 ; AVX512BW-NEXT:    vmovaps %zmm8, 128(%rax)
4635 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, 192(%rax)
4636 ; AVX512BW-NEXT:    vmovaps %zmm9, (%rax)
4637 ; AVX512BW-NEXT:    vmovaps %zmm11, 64(%rax)
4638 ; AVX512BW-NEXT:    addq $2760, %rsp # imm = 0xAC8
4639 ; AVX512BW-NEXT:    vzeroupper
4640 ; AVX512BW-NEXT:    retq
4641   %wide.vec = load <224 x i64>, ptr %in.vec, align 64
4642   %strided.vec0 = shufflevector <224 x i64> %wide.vec, <224 x i64> poison, <32 x i32> <i32 0, i32 7, i32 14, i32 21, i32 28, i32 35, i32 42, i32 49, i32 56, i32 63, i32 70, i32 77, i32 84, i32 91, i32 98, i32 105, i32 112, i32 119, i32 126, i32 133, i32 140, i32 147, i32 154, i32 161, i32 168, i32 175, i32 182, i32 189, i32 196, i32 203, i32 210, i32 217>
4643   %strided.vec1 = shufflevector <224 x i64> %wide.vec, <224 x i64> poison, <32 x i32> <i32 1, i32 8, i32 15, i32 22, i32 29, i32 36, i32 43, i32 50, i32 57, i32 64, i32 71, i32 78, i32 85, i32 92, i32 99, i32 106, i32 113, i32 120, i32 127, i32 134, i32 141, i32 148, i32 155, i32 162, i32 169, i32 176, i32 183, i32 190, i32 197, i32 204, i32 211, i32 218>
4644   %strided.vec2 = shufflevector <224 x i64> %wide.vec, <224 x i64> poison, <32 x i32> <i32 2, i32 9, i32 16, i32 23, i32 30, i32 37, i32 44, i32 51, i32 58, i32 65, i32 72, i32 79, i32 86, i32 93, i32 100, i32 107, i32 114, i32 121, i32 128, i32 135, i32 142, i32 149, i32 156, i32 163, i32 170, i32 177, i32 184, i32 191, i32 198, i32 205, i32 212, i32 219>
4645   %strided.vec3 = shufflevector <224 x i64> %wide.vec, <224 x i64> poison, <32 x i32> <i32 3, i32 10, i32 17, i32 24, i32 31, i32 38, i32 45, i32 52, i32 59, i32 66, i32 73, i32 80, i32 87, i32 94, i32 101, i32 108, i32 115, i32 122, i32 129, i32 136, i32 143, i32 150, i32 157, i32 164, i32 171, i32 178, i32 185, i32 192, i32 199, i32 206, i32 213, i32 220>
4646   %strided.vec4 = shufflevector <224 x i64> %wide.vec, <224 x i64> poison, <32 x i32> <i32 4, i32 11, i32 18, i32 25, i32 32, i32 39, i32 46, i32 53, i32 60, i32 67, i32 74, i32 81, i32 88, i32 95, i32 102, i32 109, i32 116, i32 123, i32 130, i32 137, i32 144, i32 151, i32 158, i32 165, i32 172, i32 179, i32 186, i32 193, i32 200, i32 207, i32 214, i32 221>
4647   %strided.vec5 = shufflevector <224 x i64> %wide.vec, <224 x i64> poison, <32 x i32> <i32 5, i32 12, i32 19, i32 26, i32 33, i32 40, i32 47, i32 54, i32 61, i32 68, i32 75, i32 82, i32 89, i32 96, i32 103, i32 110, i32 117, i32 124, i32 131, i32 138, i32 145, i32 152, i32 159, i32 166, i32 173, i32 180, i32 187, i32 194, i32 201, i32 208, i32 215, i32 222>
4648   %strided.vec6 = shufflevector <224 x i64> %wide.vec, <224 x i64> poison, <32 x i32> <i32 6, i32 13, i32 20, i32 27, i32 34, i32 41, i32 48, i32 55, i32 62, i32 69, i32 76, i32 83, i32 90, i32 97, i32 104, i32 111, i32 118, i32 125, i32 132, i32 139, i32 146, i32 153, i32 160, i32 167, i32 174, i32 181, i32 188, i32 195, i32 202, i32 209, i32 216, i32 223>
4649   store <32 x i64> %strided.vec0, ptr %out.vec0, align 64
4650   store <32 x i64> %strided.vec1, ptr %out.vec1, align 64
4651   store <32 x i64> %strided.vec2, ptr %out.vec2, align 64
4652   store <32 x i64> %strided.vec3, ptr %out.vec3, align 64
4653   store <32 x i64> %strided.vec4, ptr %out.vec4, align 64
4654   store <32 x i64> %strided.vec5, ptr %out.vec5, align 64
4655   store <32 x i64> %strided.vec6, ptr %out.vec6, align 64
4656   ret void
4659 define void @load_i64_stride7_vf64(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4, ptr %out.vec5, ptr %out.vec6) nounwind {
4660 ; SSE-LABEL: load_i64_stride7_vf64:
4661 ; SSE:       # %bb.0:
4662 ; SSE-NEXT:    subq $3240, %rsp # imm = 0xCA8
4663 ; SSE-NEXT:    movapd 208(%rdi), %xmm3
4664 ; SSE-NEXT:    movapd 96(%rdi), %xmm2
4665 ; SSE-NEXT:    movapd 144(%rdi), %xmm4
4666 ; SSE-NEXT:    movapd 192(%rdi), %xmm6
4667 ; SSE-NEXT:    movapd 80(%rdi), %xmm5
4668 ; SSE-NEXT:    movapd 128(%rdi), %xmm8
4669 ; SSE-NEXT:    movapd 176(%rdi), %xmm11
4670 ; SSE-NEXT:    movapd 64(%rdi), %xmm10
4671 ; SSE-NEXT:    movapd (%rdi), %xmm12
4672 ; SSE-NEXT:    movapd 16(%rdi), %xmm9
4673 ; SSE-NEXT:    movapd 32(%rdi), %xmm7
4674 ; SSE-NEXT:    movapd 48(%rdi), %xmm0
4675 ; SSE-NEXT:    movapd 224(%rdi), %xmm13
4676 ; SSE-NEXT:    movapd 112(%rdi), %xmm14
4677 ; SSE-NEXT:    movapd 160(%rdi), %xmm1
4678 ; SSE-NEXT:    movapd %xmm0, %xmm15
4679 ; SSE-NEXT:    movsd {{.*#+}} xmm15 = xmm12[0],xmm15[1]
4680 ; SSE-NEXT:    movapd %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4681 ; SSE-NEXT:    shufpd {{.*#+}} xmm12 = xmm12[1],xmm10[0]
4682 ; SSE-NEXT:    movapd %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4683 ; SSE-NEXT:    movsd {{.*#+}} xmm10 = xmm9[0],xmm10[1]
4684 ; SSE-NEXT:    movapd %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4685 ; SSE-NEXT:    shufpd {{.*#+}} xmm9 = xmm9[1],xmm5[0]
4686 ; SSE-NEXT:    movapd %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4687 ; SSE-NEXT:    movsd {{.*#+}} xmm5 = xmm7[0],xmm5[1]
4688 ; SSE-NEXT:    movapd %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4689 ; SSE-NEXT:    shufpd {{.*#+}} xmm7 = xmm7[1],xmm2[0]
4690 ; SSE-NEXT:    movapd %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4691 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm0[0],xmm2[1]
4692 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4693 ; SSE-NEXT:    movapd %xmm1, %xmm0
4694 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm14[0],xmm0[1]
4695 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4696 ; SSE-NEXT:    shufpd {{.*#+}} xmm14 = xmm14[1],xmm11[0]
4697 ; SSE-NEXT:    movapd %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4698 ; SSE-NEXT:    movsd {{.*#+}} xmm11 = xmm8[0],xmm11[1]
4699 ; SSE-NEXT:    movapd %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4700 ; SSE-NEXT:    shufpd {{.*#+}} xmm8 = xmm8[1],xmm6[0]
4701 ; SSE-NEXT:    movapd %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4702 ; SSE-NEXT:    movsd {{.*#+}} xmm6 = xmm4[0],xmm6[1]
4703 ; SSE-NEXT:    movapd %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4704 ; SSE-NEXT:    shufpd {{.*#+}} xmm4 = xmm4[1],xmm3[0]
4705 ; SSE-NEXT:    movapd %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4706 ; SSE-NEXT:    movsd {{.*#+}} xmm3 = xmm1[0],xmm3[1]
4707 ; SSE-NEXT:    movapd %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4708 ; SSE-NEXT:    movapd 272(%rdi), %xmm0
4709 ; SSE-NEXT:    movapd %xmm0, %xmm1
4710 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm13[0],xmm1[1]
4711 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4712 ; SSE-NEXT:    movapd 288(%rdi), %xmm1
4713 ; SSE-NEXT:    shufpd {{.*#+}} xmm13 = xmm13[1],xmm1[0]
4714 ; SSE-NEXT:    movapd %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4715 ; SSE-NEXT:    movapd 240(%rdi), %xmm2
4716 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
4717 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4718 ; SSE-NEXT:    movapd 304(%rdi), %xmm1
4719 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
4720 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4721 ; SSE-NEXT:    movapd 256(%rdi), %xmm2
4722 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
4723 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4724 ; SSE-NEXT:    movapd 320(%rdi), %xmm1
4725 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
4726 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4727 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
4728 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4729 ; SSE-NEXT:    movapd 336(%rdi), %xmm2
4730 ; SSE-NEXT:    movapd 384(%rdi), %xmm0
4731 ; SSE-NEXT:    movapd %xmm0, %xmm1
4732 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
4733 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4734 ; SSE-NEXT:    movapd 400(%rdi), %xmm1
4735 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
4736 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4737 ; SSE-NEXT:    movapd 352(%rdi), %xmm2
4738 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
4739 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4740 ; SSE-NEXT:    movapd 416(%rdi), %xmm1
4741 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
4742 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4743 ; SSE-NEXT:    movapd 368(%rdi), %xmm2
4744 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
4745 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4746 ; SSE-NEXT:    movapd 432(%rdi), %xmm1
4747 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
4748 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4749 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
4750 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4751 ; SSE-NEXT:    movapd 448(%rdi), %xmm2
4752 ; SSE-NEXT:    movapd 496(%rdi), %xmm0
4753 ; SSE-NEXT:    movapd %xmm0, %xmm1
4754 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
4755 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4756 ; SSE-NEXT:    movapd 512(%rdi), %xmm1
4757 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
4758 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4759 ; SSE-NEXT:    movapd 464(%rdi), %xmm2
4760 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
4761 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4762 ; SSE-NEXT:    movapd 528(%rdi), %xmm1
4763 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
4764 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4765 ; SSE-NEXT:    movapd 480(%rdi), %xmm2
4766 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
4767 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4768 ; SSE-NEXT:    movapd 544(%rdi), %xmm1
4769 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
4770 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4771 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
4772 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4773 ; SSE-NEXT:    movapd 560(%rdi), %xmm2
4774 ; SSE-NEXT:    movapd 608(%rdi), %xmm0
4775 ; SSE-NEXT:    movapd %xmm0, %xmm1
4776 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
4777 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4778 ; SSE-NEXT:    movapd 624(%rdi), %xmm1
4779 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
4780 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4781 ; SSE-NEXT:    movapd 576(%rdi), %xmm2
4782 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
4783 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4784 ; SSE-NEXT:    movapd 640(%rdi), %xmm1
4785 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
4786 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4787 ; SSE-NEXT:    movapd 592(%rdi), %xmm2
4788 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
4789 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4790 ; SSE-NEXT:    movapd 656(%rdi), %xmm1
4791 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
4792 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4793 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
4794 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4795 ; SSE-NEXT:    movapd 672(%rdi), %xmm2
4796 ; SSE-NEXT:    movapd 720(%rdi), %xmm0
4797 ; SSE-NEXT:    movapd %xmm0, %xmm1
4798 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
4799 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4800 ; SSE-NEXT:    movapd 736(%rdi), %xmm1
4801 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
4802 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4803 ; SSE-NEXT:    movapd 688(%rdi), %xmm2
4804 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
4805 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4806 ; SSE-NEXT:    movapd 752(%rdi), %xmm1
4807 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
4808 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4809 ; SSE-NEXT:    movapd 704(%rdi), %xmm2
4810 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
4811 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4812 ; SSE-NEXT:    movapd 768(%rdi), %xmm1
4813 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
4814 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4815 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
4816 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4817 ; SSE-NEXT:    movapd 784(%rdi), %xmm2
4818 ; SSE-NEXT:    movapd 832(%rdi), %xmm0
4819 ; SSE-NEXT:    movapd %xmm0, %xmm1
4820 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
4821 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4822 ; SSE-NEXT:    movapd 848(%rdi), %xmm1
4823 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
4824 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4825 ; SSE-NEXT:    movapd 800(%rdi), %xmm2
4826 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
4827 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4828 ; SSE-NEXT:    movapd 864(%rdi), %xmm1
4829 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
4830 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4831 ; SSE-NEXT:    movapd 816(%rdi), %xmm2
4832 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
4833 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4834 ; SSE-NEXT:    movapd 880(%rdi), %xmm1
4835 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
4836 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4837 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
4838 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4839 ; SSE-NEXT:    movapd 896(%rdi), %xmm2
4840 ; SSE-NEXT:    movapd 944(%rdi), %xmm0
4841 ; SSE-NEXT:    movapd %xmm0, %xmm1
4842 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
4843 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4844 ; SSE-NEXT:    movapd 960(%rdi), %xmm1
4845 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
4846 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4847 ; SSE-NEXT:    movapd 912(%rdi), %xmm2
4848 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
4849 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4850 ; SSE-NEXT:    movapd 976(%rdi), %xmm1
4851 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
4852 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4853 ; SSE-NEXT:    movapd 928(%rdi), %xmm2
4854 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
4855 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4856 ; SSE-NEXT:    movapd 992(%rdi), %xmm1
4857 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
4858 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4859 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
4860 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4861 ; SSE-NEXT:    movapd 1008(%rdi), %xmm2
4862 ; SSE-NEXT:    movapd 1056(%rdi), %xmm0
4863 ; SSE-NEXT:    movapd %xmm0, %xmm1
4864 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
4865 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4866 ; SSE-NEXT:    movapd 1072(%rdi), %xmm1
4867 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
4868 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4869 ; SSE-NEXT:    movapd 1024(%rdi), %xmm2
4870 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
4871 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4872 ; SSE-NEXT:    movapd 1088(%rdi), %xmm1
4873 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
4874 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4875 ; SSE-NEXT:    movapd 1040(%rdi), %xmm2
4876 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
4877 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4878 ; SSE-NEXT:    movapd 1104(%rdi), %xmm1
4879 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
4880 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4881 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
4882 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4883 ; SSE-NEXT:    movapd 1120(%rdi), %xmm2
4884 ; SSE-NEXT:    movapd 1168(%rdi), %xmm0
4885 ; SSE-NEXT:    movapd %xmm0, %xmm1
4886 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
4887 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4888 ; SSE-NEXT:    movapd 1184(%rdi), %xmm1
4889 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
4890 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4891 ; SSE-NEXT:    movapd 1136(%rdi), %xmm2
4892 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
4893 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4894 ; SSE-NEXT:    movapd 1200(%rdi), %xmm1
4895 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
4896 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4897 ; SSE-NEXT:    movapd 1152(%rdi), %xmm2
4898 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
4899 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4900 ; SSE-NEXT:    movapd 1216(%rdi), %xmm1
4901 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
4902 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4903 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
4904 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4905 ; SSE-NEXT:    movapd 1232(%rdi), %xmm2
4906 ; SSE-NEXT:    movapd 1280(%rdi), %xmm0
4907 ; SSE-NEXT:    movapd %xmm0, %xmm1
4908 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
4909 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4910 ; SSE-NEXT:    movapd 1296(%rdi), %xmm1
4911 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
4912 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4913 ; SSE-NEXT:    movapd 1248(%rdi), %xmm2
4914 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
4915 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4916 ; SSE-NEXT:    movapd 1312(%rdi), %xmm1
4917 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
4918 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4919 ; SSE-NEXT:    movapd 1264(%rdi), %xmm2
4920 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
4921 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4922 ; SSE-NEXT:    movapd 1328(%rdi), %xmm1
4923 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
4924 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4925 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
4926 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4927 ; SSE-NEXT:    movapd 1344(%rdi), %xmm2
4928 ; SSE-NEXT:    movapd 1392(%rdi), %xmm0
4929 ; SSE-NEXT:    movapd %xmm0, %xmm1
4930 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
4931 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4932 ; SSE-NEXT:    movapd 1408(%rdi), %xmm1
4933 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
4934 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4935 ; SSE-NEXT:    movapd 1360(%rdi), %xmm2
4936 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
4937 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4938 ; SSE-NEXT:    movapd 1424(%rdi), %xmm1
4939 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
4940 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4941 ; SSE-NEXT:    movapd 1376(%rdi), %xmm2
4942 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
4943 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4944 ; SSE-NEXT:    movapd 1440(%rdi), %xmm1
4945 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
4946 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4947 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
4948 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4949 ; SSE-NEXT:    movapd 1456(%rdi), %xmm2
4950 ; SSE-NEXT:    movapd 1504(%rdi), %xmm0
4951 ; SSE-NEXT:    movapd %xmm0, %xmm1
4952 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
4953 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4954 ; SSE-NEXT:    movapd 1520(%rdi), %xmm1
4955 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
4956 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4957 ; SSE-NEXT:    movapd 1472(%rdi), %xmm2
4958 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
4959 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4960 ; SSE-NEXT:    movapd 1536(%rdi), %xmm1
4961 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
4962 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4963 ; SSE-NEXT:    movapd 1488(%rdi), %xmm2
4964 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
4965 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4966 ; SSE-NEXT:    movapd 1552(%rdi), %xmm1
4967 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
4968 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4969 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
4970 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4971 ; SSE-NEXT:    movapd 1568(%rdi), %xmm2
4972 ; SSE-NEXT:    movapd 1616(%rdi), %xmm0
4973 ; SSE-NEXT:    movapd %xmm0, %xmm1
4974 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
4975 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4976 ; SSE-NEXT:    movapd 1632(%rdi), %xmm1
4977 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
4978 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4979 ; SSE-NEXT:    movapd 1584(%rdi), %xmm2
4980 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
4981 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4982 ; SSE-NEXT:    movapd 1648(%rdi), %xmm1
4983 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
4984 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4985 ; SSE-NEXT:    movapd 1600(%rdi), %xmm2
4986 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
4987 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4988 ; SSE-NEXT:    movapd 1664(%rdi), %xmm1
4989 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
4990 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4991 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
4992 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4993 ; SSE-NEXT:    movapd 1680(%rdi), %xmm2
4994 ; SSE-NEXT:    movapd 1728(%rdi), %xmm0
4995 ; SSE-NEXT:    movapd %xmm0, %xmm1
4996 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
4997 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4998 ; SSE-NEXT:    movapd 1744(%rdi), %xmm1
4999 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
5000 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5001 ; SSE-NEXT:    movapd 1696(%rdi), %xmm2
5002 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
5003 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5004 ; SSE-NEXT:    movapd 1760(%rdi), %xmm1
5005 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
5006 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5007 ; SSE-NEXT:    movapd 1712(%rdi), %xmm2
5008 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
5009 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5010 ; SSE-NEXT:    movapd 1776(%rdi), %xmm1
5011 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
5012 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5013 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
5014 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5015 ; SSE-NEXT:    movapd 1792(%rdi), %xmm2
5016 ; SSE-NEXT:    movapd 1840(%rdi), %xmm0
5017 ; SSE-NEXT:    movapd %xmm0, %xmm1
5018 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
5019 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5020 ; SSE-NEXT:    movapd 1856(%rdi), %xmm1
5021 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
5022 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5023 ; SSE-NEXT:    movapd 1808(%rdi), %xmm2
5024 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
5025 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5026 ; SSE-NEXT:    movapd 1872(%rdi), %xmm1
5027 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
5028 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5029 ; SSE-NEXT:    movapd 1824(%rdi), %xmm2
5030 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
5031 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5032 ; SSE-NEXT:    movapd 1888(%rdi), %xmm1
5033 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
5034 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5035 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
5036 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5037 ; SSE-NEXT:    movapd 1904(%rdi), %xmm2
5038 ; SSE-NEXT:    movapd 1952(%rdi), %xmm0
5039 ; SSE-NEXT:    movapd %xmm0, %xmm1
5040 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
5041 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5042 ; SSE-NEXT:    movapd 1968(%rdi), %xmm1
5043 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
5044 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5045 ; SSE-NEXT:    movapd 1920(%rdi), %xmm2
5046 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
5047 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5048 ; SSE-NEXT:    movapd 1984(%rdi), %xmm1
5049 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
5050 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5051 ; SSE-NEXT:    movapd 1936(%rdi), %xmm2
5052 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
5053 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5054 ; SSE-NEXT:    movapd 2000(%rdi), %xmm1
5055 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
5056 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5057 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
5058 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5059 ; SSE-NEXT:    movapd 2016(%rdi), %xmm2
5060 ; SSE-NEXT:    movapd 2064(%rdi), %xmm0
5061 ; SSE-NEXT:    movapd %xmm0, %xmm1
5062 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
5063 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5064 ; SSE-NEXT:    movapd 2080(%rdi), %xmm1
5065 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
5066 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5067 ; SSE-NEXT:    movapd 2032(%rdi), %xmm2
5068 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
5069 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5070 ; SSE-NEXT:    movapd 2096(%rdi), %xmm1
5071 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
5072 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5073 ; SSE-NEXT:    movapd 2048(%rdi), %xmm2
5074 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
5075 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5076 ; SSE-NEXT:    movapd 2112(%rdi), %xmm1
5077 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
5078 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5079 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
5080 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5081 ; SSE-NEXT:    movapd 2128(%rdi), %xmm2
5082 ; SSE-NEXT:    movapd 2176(%rdi), %xmm0
5083 ; SSE-NEXT:    movapd %xmm0, %xmm1
5084 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
5085 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5086 ; SSE-NEXT:    movapd 2192(%rdi), %xmm1
5087 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
5088 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5089 ; SSE-NEXT:    movapd 2144(%rdi), %xmm2
5090 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
5091 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5092 ; SSE-NEXT:    movapd 2208(%rdi), %xmm1
5093 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
5094 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5095 ; SSE-NEXT:    movapd 2160(%rdi), %xmm2
5096 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
5097 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5098 ; SSE-NEXT:    movapd 2224(%rdi), %xmm1
5099 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
5100 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5101 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
5102 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5103 ; SSE-NEXT:    movapd 2240(%rdi), %xmm2
5104 ; SSE-NEXT:    movapd 2288(%rdi), %xmm0
5105 ; SSE-NEXT:    movapd %xmm0, %xmm1
5106 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
5107 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5108 ; SSE-NEXT:    movapd 2304(%rdi), %xmm1
5109 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
5110 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5111 ; SSE-NEXT:    movapd 2256(%rdi), %xmm2
5112 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
5113 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5114 ; SSE-NEXT:    movapd 2320(%rdi), %xmm1
5115 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
5116 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5117 ; SSE-NEXT:    movapd 2272(%rdi), %xmm2
5118 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
5119 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5120 ; SSE-NEXT:    movapd 2336(%rdi), %xmm1
5121 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
5122 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5123 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
5124 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5125 ; SSE-NEXT:    movapd 2352(%rdi), %xmm2
5126 ; SSE-NEXT:    movapd 2400(%rdi), %xmm0
5127 ; SSE-NEXT:    movapd %xmm0, %xmm1
5128 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
5129 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5130 ; SSE-NEXT:    movapd 2416(%rdi), %xmm1
5131 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
5132 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5133 ; SSE-NEXT:    movapd 2368(%rdi), %xmm2
5134 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
5135 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5136 ; SSE-NEXT:    movapd 2432(%rdi), %xmm1
5137 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
5138 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5139 ; SSE-NEXT:    movapd 2384(%rdi), %xmm2
5140 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
5141 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5142 ; SSE-NEXT:    movapd 2448(%rdi), %xmm1
5143 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
5144 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5145 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
5146 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5147 ; SSE-NEXT:    movapd 2464(%rdi), %xmm2
5148 ; SSE-NEXT:    movapd 2512(%rdi), %xmm0
5149 ; SSE-NEXT:    movapd %xmm0, %xmm1
5150 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
5151 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5152 ; SSE-NEXT:    movapd 2528(%rdi), %xmm1
5153 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
5154 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5155 ; SSE-NEXT:    movapd 2480(%rdi), %xmm2
5156 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
5157 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5158 ; SSE-NEXT:    movapd 2544(%rdi), %xmm1
5159 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
5160 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5161 ; SSE-NEXT:    movapd 2496(%rdi), %xmm2
5162 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
5163 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5164 ; SSE-NEXT:    movapd 2560(%rdi), %xmm1
5165 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
5166 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5167 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
5168 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5169 ; SSE-NEXT:    movapd 2576(%rdi), %xmm2
5170 ; SSE-NEXT:    movapd 2624(%rdi), %xmm0
5171 ; SSE-NEXT:    movapd %xmm0, %xmm1
5172 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
5173 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5174 ; SSE-NEXT:    movapd 2640(%rdi), %xmm1
5175 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
5176 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5177 ; SSE-NEXT:    movapd 2592(%rdi), %xmm2
5178 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
5179 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5180 ; SSE-NEXT:    movapd 2656(%rdi), %xmm1
5181 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
5182 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5183 ; SSE-NEXT:    movapd 2608(%rdi), %xmm2
5184 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
5185 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5186 ; SSE-NEXT:    movapd 2672(%rdi), %xmm1
5187 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
5188 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5189 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
5190 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5191 ; SSE-NEXT:    movapd 2688(%rdi), %xmm2
5192 ; SSE-NEXT:    movapd 2736(%rdi), %xmm0
5193 ; SSE-NEXT:    movapd %xmm0, %xmm1
5194 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
5195 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5196 ; SSE-NEXT:    movapd 2752(%rdi), %xmm1
5197 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
5198 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5199 ; SSE-NEXT:    movapd 2704(%rdi), %xmm2
5200 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
5201 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5202 ; SSE-NEXT:    movapd 2768(%rdi), %xmm1
5203 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
5204 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5205 ; SSE-NEXT:    movapd 2720(%rdi), %xmm2
5206 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
5207 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5208 ; SSE-NEXT:    movapd 2784(%rdi), %xmm1
5209 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
5210 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5211 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
5212 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5213 ; SSE-NEXT:    movapd 2800(%rdi), %xmm2
5214 ; SSE-NEXT:    movapd 2848(%rdi), %xmm0
5215 ; SSE-NEXT:    movapd %xmm0, %xmm1
5216 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
5217 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5218 ; SSE-NEXT:    movapd 2864(%rdi), %xmm1
5219 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
5220 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5221 ; SSE-NEXT:    movapd 2816(%rdi), %xmm2
5222 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
5223 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5224 ; SSE-NEXT:    movapd 2880(%rdi), %xmm1
5225 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
5226 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5227 ; SSE-NEXT:    movapd 2832(%rdi), %xmm2
5228 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
5229 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5230 ; SSE-NEXT:    movapd 2896(%rdi), %xmm1
5231 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
5232 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5233 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
5234 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5235 ; SSE-NEXT:    movapd 2912(%rdi), %xmm2
5236 ; SSE-NEXT:    movapd 2960(%rdi), %xmm0
5237 ; SSE-NEXT:    movapd %xmm0, %xmm1
5238 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
5239 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5240 ; SSE-NEXT:    movapd 2976(%rdi), %xmm1
5241 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
5242 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5243 ; SSE-NEXT:    movapd 2928(%rdi), %xmm2
5244 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
5245 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5246 ; SSE-NEXT:    movapd 2992(%rdi), %xmm1
5247 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
5248 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5249 ; SSE-NEXT:    movapd 2944(%rdi), %xmm2
5250 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
5251 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5252 ; SSE-NEXT:    movapd 3008(%rdi), %xmm1
5253 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
5254 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5255 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
5256 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5257 ; SSE-NEXT:    movapd 3024(%rdi), %xmm2
5258 ; SSE-NEXT:    movapd 3072(%rdi), %xmm0
5259 ; SSE-NEXT:    movapd %xmm0, %xmm14
5260 ; SSE-NEXT:    movsd {{.*#+}} xmm14 = xmm2[0],xmm14[1]
5261 ; SSE-NEXT:    movapd 3088(%rdi), %xmm1
5262 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
5263 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5264 ; SSE-NEXT:    movapd 3040(%rdi), %xmm2
5265 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
5266 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5267 ; SSE-NEXT:    movapd 3104(%rdi), %xmm1
5268 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
5269 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5270 ; SSE-NEXT:    movapd 3056(%rdi), %xmm2
5271 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
5272 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5273 ; SSE-NEXT:    movapd 3120(%rdi), %xmm1
5274 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
5275 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5276 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
5277 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5278 ; SSE-NEXT:    movapd 3136(%rdi), %xmm12
5279 ; SSE-NEXT:    movapd 3184(%rdi), %xmm0
5280 ; SSE-NEXT:    movapd %xmm0, %xmm10
5281 ; SSE-NEXT:    movsd {{.*#+}} xmm10 = xmm12[0],xmm10[1]
5282 ; SSE-NEXT:    movapd 3200(%rdi), %xmm1
5283 ; SSE-NEXT:    shufpd {{.*#+}} xmm12 = xmm12[1],xmm1[0]
5284 ; SSE-NEXT:    movapd 3152(%rdi), %xmm2
5285 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
5286 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5287 ; SSE-NEXT:    movapd 3216(%rdi), %xmm1
5288 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
5289 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5290 ; SSE-NEXT:    movapd 3168(%rdi), %xmm2
5291 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
5292 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5293 ; SSE-NEXT:    movapd 3232(%rdi), %xmm1
5294 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
5295 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5296 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
5297 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5298 ; SSE-NEXT:    movapd 3248(%rdi), %xmm9
5299 ; SSE-NEXT:    movapd 3296(%rdi), %xmm0
5300 ; SSE-NEXT:    movapd %xmm0, %xmm7
5301 ; SSE-NEXT:    movsd {{.*#+}} xmm7 = xmm9[0],xmm7[1]
5302 ; SSE-NEXT:    movapd 3312(%rdi), %xmm15
5303 ; SSE-NEXT:    shufpd {{.*#+}} xmm9 = xmm9[1],xmm15[0]
5304 ; SSE-NEXT:    movapd 3264(%rdi), %xmm2
5305 ; SSE-NEXT:    movsd {{.*#+}} xmm15 = xmm2[0],xmm15[1]
5306 ; SSE-NEXT:    movapd 3328(%rdi), %xmm1
5307 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
5308 ; SSE-NEXT:    movapd %xmm2, (%rsp) # 16-byte Spill
5309 ; SSE-NEXT:    movapd 3280(%rdi), %xmm2
5310 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
5311 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5312 ; SSE-NEXT:    movapd 3344(%rdi), %xmm1
5313 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
5314 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5315 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
5316 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5317 ; SSE-NEXT:    movapd 3360(%rdi), %xmm6
5318 ; SSE-NEXT:    movapd 3408(%rdi), %xmm0
5319 ; SSE-NEXT:    movapd %xmm0, %xmm4
5320 ; SSE-NEXT:    movsd {{.*#+}} xmm4 = xmm6[0],xmm4[1]
5321 ; SSE-NEXT:    movapd 3424(%rdi), %xmm11
5322 ; SSE-NEXT:    shufpd {{.*#+}} xmm6 = xmm6[1],xmm11[0]
5323 ; SSE-NEXT:    movapd 3376(%rdi), %xmm2
5324 ; SSE-NEXT:    movsd {{.*#+}} xmm11 = xmm2[0],xmm11[1]
5325 ; SSE-NEXT:    movapd 3440(%rdi), %xmm1
5326 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
5327 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5328 ; SSE-NEXT:    movapd 3392(%rdi), %xmm2
5329 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
5330 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5331 ; SSE-NEXT:    movapd 3456(%rdi), %xmm1
5332 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
5333 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5334 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
5335 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5336 ; SSE-NEXT:    movapd 3472(%rdi), %xmm5
5337 ; SSE-NEXT:    movapd 3520(%rdi), %xmm3
5338 ; SSE-NEXT:    movapd %xmm3, %xmm2
5339 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm5[0],xmm2[1]
5340 ; SSE-NEXT:    movapd 3536(%rdi), %xmm8
5341 ; SSE-NEXT:    shufpd {{.*#+}} xmm5 = xmm5[1],xmm8[0]
5342 ; SSE-NEXT:    movapd 3488(%rdi), %xmm13
5343 ; SSE-NEXT:    movsd {{.*#+}} xmm8 = xmm13[0],xmm8[1]
5344 ; SSE-NEXT:    movapd 3552(%rdi), %xmm0
5345 ; SSE-NEXT:    shufpd {{.*#+}} xmm13 = xmm13[1],xmm0[0]
5346 ; SSE-NEXT:    movapd 3504(%rdi), %xmm1
5347 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
5348 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5349 ; SSE-NEXT:    movapd %xmm1, %xmm0
5350 ; SSE-NEXT:    movapd 3568(%rdi), %xmm1
5351 ; SSE-NEXT:    shufpd {{.*#+}} xmm0 = xmm0[1],xmm1[0]
5352 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5353 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm3[0],xmm1[1]
5354 ; SSE-NEXT:    movapd %xmm2, 496(%rsi)
5355 ; SSE-NEXT:    movapd %xmm4, 480(%rsi)
5356 ; SSE-NEXT:    movapd %xmm7, 464(%rsi)
5357 ; SSE-NEXT:    movapd %xmm10, 448(%rsi)
5358 ; SSE-NEXT:    movapd %xmm14, 432(%rsi)
5359 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5360 ; SSE-NEXT:    movaps %xmm0, 416(%rsi)
5361 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5362 ; SSE-NEXT:    movaps %xmm0, 400(%rsi)
5363 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5364 ; SSE-NEXT:    movaps %xmm0, 384(%rsi)
5365 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5366 ; SSE-NEXT:    movaps %xmm0, 368(%rsi)
5367 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5368 ; SSE-NEXT:    movaps %xmm0, 352(%rsi)
5369 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5370 ; SSE-NEXT:    movaps %xmm0, 336(%rsi)
5371 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5372 ; SSE-NEXT:    movaps %xmm0, 320(%rsi)
5373 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5374 ; SSE-NEXT:    movaps %xmm0, 304(%rsi)
5375 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5376 ; SSE-NEXT:    movaps %xmm0, 288(%rsi)
5377 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5378 ; SSE-NEXT:    movaps %xmm0, 272(%rsi)
5379 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5380 ; SSE-NEXT:    movaps %xmm0, 256(%rsi)
5381 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5382 ; SSE-NEXT:    movaps %xmm0, 240(%rsi)
5383 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5384 ; SSE-NEXT:    movaps %xmm0, 224(%rsi)
5385 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5386 ; SSE-NEXT:    movaps %xmm0, 208(%rsi)
5387 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5388 ; SSE-NEXT:    movaps %xmm0, 192(%rsi)
5389 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5390 ; SSE-NEXT:    movaps %xmm0, 176(%rsi)
5391 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5392 ; SSE-NEXT:    movaps %xmm0, 160(%rsi)
5393 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5394 ; SSE-NEXT:    movaps %xmm0, 144(%rsi)
5395 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5396 ; SSE-NEXT:    movaps %xmm0, 128(%rsi)
5397 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5398 ; SSE-NEXT:    movaps %xmm0, 112(%rsi)
5399 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5400 ; SSE-NEXT:    movaps %xmm0, 96(%rsi)
5401 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5402 ; SSE-NEXT:    movaps %xmm0, 80(%rsi)
5403 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5404 ; SSE-NEXT:    movaps %xmm0, 64(%rsi)
5405 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5406 ; SSE-NEXT:    movaps %xmm0, 48(%rsi)
5407 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5408 ; SSE-NEXT:    movaps %xmm0, 32(%rsi)
5409 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5410 ; SSE-NEXT:    movaps %xmm0, 16(%rsi)
5411 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5412 ; SSE-NEXT:    movaps %xmm0, (%rsi)
5413 ; SSE-NEXT:    movapd %xmm5, 496(%rdx)
5414 ; SSE-NEXT:    movapd %xmm6, 480(%rdx)
5415 ; SSE-NEXT:    movapd %xmm9, 464(%rdx)
5416 ; SSE-NEXT:    movapd %xmm12, 448(%rdx)
5417 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5418 ; SSE-NEXT:    movaps %xmm0, 432(%rdx)
5419 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5420 ; SSE-NEXT:    movaps %xmm0, 416(%rdx)
5421 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5422 ; SSE-NEXT:    movaps %xmm0, 400(%rdx)
5423 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5424 ; SSE-NEXT:    movaps %xmm0, 384(%rdx)
5425 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5426 ; SSE-NEXT:    movaps %xmm0, 368(%rdx)
5427 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5428 ; SSE-NEXT:    movaps %xmm0, 352(%rdx)
5429 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5430 ; SSE-NEXT:    movaps %xmm0, 336(%rdx)
5431 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5432 ; SSE-NEXT:    movaps %xmm0, 320(%rdx)
5433 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5434 ; SSE-NEXT:    movaps %xmm0, 304(%rdx)
5435 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5436 ; SSE-NEXT:    movaps %xmm0, 288(%rdx)
5437 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5438 ; SSE-NEXT:    movaps %xmm0, 272(%rdx)
5439 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5440 ; SSE-NEXT:    movaps %xmm0, 256(%rdx)
5441 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5442 ; SSE-NEXT:    movaps %xmm0, 240(%rdx)
5443 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5444 ; SSE-NEXT:    movaps %xmm0, 224(%rdx)
5445 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5446 ; SSE-NEXT:    movaps %xmm0, 208(%rdx)
5447 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5448 ; SSE-NEXT:    movaps %xmm0, 192(%rdx)
5449 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5450 ; SSE-NEXT:    movaps %xmm0, 176(%rdx)
5451 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5452 ; SSE-NEXT:    movaps %xmm0, 160(%rdx)
5453 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5454 ; SSE-NEXT:    movaps %xmm0, 144(%rdx)
5455 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5456 ; SSE-NEXT:    movaps %xmm0, 128(%rdx)
5457 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5458 ; SSE-NEXT:    movaps %xmm0, 112(%rdx)
5459 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5460 ; SSE-NEXT:    movaps %xmm0, 96(%rdx)
5461 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5462 ; SSE-NEXT:    movaps %xmm0, 80(%rdx)
5463 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5464 ; SSE-NEXT:    movaps %xmm0, 64(%rdx)
5465 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5466 ; SSE-NEXT:    movaps %xmm0, 48(%rdx)
5467 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5468 ; SSE-NEXT:    movaps %xmm0, 32(%rdx)
5469 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5470 ; SSE-NEXT:    movaps %xmm0, 16(%rdx)
5471 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5472 ; SSE-NEXT:    movaps %xmm0, (%rdx)
5473 ; SSE-NEXT:    movapd %xmm8, 496(%rcx)
5474 ; SSE-NEXT:    movapd %xmm11, 480(%rcx)
5475 ; SSE-NEXT:    movapd %xmm15, 464(%rcx)
5476 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5477 ; SSE-NEXT:    movaps %xmm0, 448(%rcx)
5478 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5479 ; SSE-NEXT:    movaps %xmm0, 432(%rcx)
5480 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5481 ; SSE-NEXT:    movaps %xmm0, 416(%rcx)
5482 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5483 ; SSE-NEXT:    movaps %xmm0, 400(%rcx)
5484 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5485 ; SSE-NEXT:    movaps %xmm0, 384(%rcx)
5486 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5487 ; SSE-NEXT:    movaps %xmm0, 368(%rcx)
5488 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5489 ; SSE-NEXT:    movaps %xmm0, 352(%rcx)
5490 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5491 ; SSE-NEXT:    movaps %xmm0, 336(%rcx)
5492 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5493 ; SSE-NEXT:    movaps %xmm0, 320(%rcx)
5494 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5495 ; SSE-NEXT:    movaps %xmm0, 304(%rcx)
5496 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5497 ; SSE-NEXT:    movaps %xmm0, 288(%rcx)
5498 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5499 ; SSE-NEXT:    movaps %xmm0, 272(%rcx)
5500 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5501 ; SSE-NEXT:    movaps %xmm0, 256(%rcx)
5502 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5503 ; SSE-NEXT:    movaps %xmm0, 240(%rcx)
5504 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5505 ; SSE-NEXT:    movaps %xmm0, 224(%rcx)
5506 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5507 ; SSE-NEXT:    movaps %xmm0, 208(%rcx)
5508 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5509 ; SSE-NEXT:    movaps %xmm0, 192(%rcx)
5510 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5511 ; SSE-NEXT:    movaps %xmm0, 176(%rcx)
5512 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5513 ; SSE-NEXT:    movaps %xmm0, 160(%rcx)
5514 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5515 ; SSE-NEXT:    movaps %xmm0, 144(%rcx)
5516 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5517 ; SSE-NEXT:    movaps %xmm0, 128(%rcx)
5518 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5519 ; SSE-NEXT:    movaps %xmm0, 112(%rcx)
5520 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5521 ; SSE-NEXT:    movaps %xmm0, 96(%rcx)
5522 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5523 ; SSE-NEXT:    movaps %xmm0, 80(%rcx)
5524 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5525 ; SSE-NEXT:    movaps %xmm0, 64(%rcx)
5526 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5527 ; SSE-NEXT:    movaps %xmm0, 48(%rcx)
5528 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5529 ; SSE-NEXT:    movaps %xmm0, 32(%rcx)
5530 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5531 ; SSE-NEXT:    movaps %xmm0, 16(%rcx)
5532 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5533 ; SSE-NEXT:    movaps %xmm0, (%rcx)
5534 ; SSE-NEXT:    movapd %xmm13, 496(%r8)
5535 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5536 ; SSE-NEXT:    movaps %xmm0, 480(%r8)
5537 ; SSE-NEXT:    movaps (%rsp), %xmm0 # 16-byte Reload
5538 ; SSE-NEXT:    movaps %xmm0, 464(%r8)
5539 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5540 ; SSE-NEXT:    movaps %xmm0, 448(%r8)
5541 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5542 ; SSE-NEXT:    movaps %xmm0, 432(%r8)
5543 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5544 ; SSE-NEXT:    movaps %xmm0, 416(%r8)
5545 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5546 ; SSE-NEXT:    movaps %xmm0, 400(%r8)
5547 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5548 ; SSE-NEXT:    movaps %xmm0, 384(%r8)
5549 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5550 ; SSE-NEXT:    movaps %xmm0, 368(%r8)
5551 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5552 ; SSE-NEXT:    movaps %xmm0, 352(%r8)
5553 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5554 ; SSE-NEXT:    movaps %xmm0, 336(%r8)
5555 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5556 ; SSE-NEXT:    movaps %xmm0, 320(%r8)
5557 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5558 ; SSE-NEXT:    movaps %xmm0, 304(%r8)
5559 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5560 ; SSE-NEXT:    movaps %xmm0, 288(%r8)
5561 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5562 ; SSE-NEXT:    movaps %xmm0, 272(%r8)
5563 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5564 ; SSE-NEXT:    movaps %xmm0, 256(%r8)
5565 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5566 ; SSE-NEXT:    movaps %xmm0, 240(%r8)
5567 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5568 ; SSE-NEXT:    movaps %xmm0, 224(%r8)
5569 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5570 ; SSE-NEXT:    movaps %xmm0, 208(%r8)
5571 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5572 ; SSE-NEXT:    movaps %xmm0, 192(%r8)
5573 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5574 ; SSE-NEXT:    movaps %xmm0, 176(%r8)
5575 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5576 ; SSE-NEXT:    movaps %xmm0, 160(%r8)
5577 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5578 ; SSE-NEXT:    movaps %xmm0, 144(%r8)
5579 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5580 ; SSE-NEXT:    movaps %xmm0, 128(%r8)
5581 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5582 ; SSE-NEXT:    movaps %xmm0, 112(%r8)
5583 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5584 ; SSE-NEXT:    movaps %xmm0, 96(%r8)
5585 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5586 ; SSE-NEXT:    movaps %xmm0, 80(%r8)
5587 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5588 ; SSE-NEXT:    movaps %xmm0, 64(%r8)
5589 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5590 ; SSE-NEXT:    movaps %xmm0, 48(%r8)
5591 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5592 ; SSE-NEXT:    movaps %xmm0, 32(%r8)
5593 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5594 ; SSE-NEXT:    movaps %xmm0, 16(%r8)
5595 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5596 ; SSE-NEXT:    movaps %xmm0, (%r8)
5597 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5598 ; SSE-NEXT:    movaps %xmm0, 496(%r9)
5599 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5600 ; SSE-NEXT:    movaps %xmm0, 480(%r9)
5601 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5602 ; SSE-NEXT:    movaps %xmm0, 464(%r9)
5603 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5604 ; SSE-NEXT:    movaps %xmm0, 448(%r9)
5605 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5606 ; SSE-NEXT:    movaps %xmm0, 432(%r9)
5607 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5608 ; SSE-NEXT:    movaps %xmm0, 416(%r9)
5609 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5610 ; SSE-NEXT:    movaps %xmm0, 400(%r9)
5611 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5612 ; SSE-NEXT:    movaps %xmm0, 384(%r9)
5613 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5614 ; SSE-NEXT:    movaps %xmm0, 368(%r9)
5615 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5616 ; SSE-NEXT:    movaps %xmm0, 352(%r9)
5617 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5618 ; SSE-NEXT:    movaps %xmm0, 336(%r9)
5619 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5620 ; SSE-NEXT:    movaps %xmm0, 320(%r9)
5621 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5622 ; SSE-NEXT:    movaps %xmm0, 304(%r9)
5623 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5624 ; SSE-NEXT:    movaps %xmm0, 288(%r9)
5625 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5626 ; SSE-NEXT:    movaps %xmm0, 272(%r9)
5627 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5628 ; SSE-NEXT:    movaps %xmm0, 256(%r9)
5629 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5630 ; SSE-NEXT:    movaps %xmm0, 240(%r9)
5631 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5632 ; SSE-NEXT:    movaps %xmm0, 224(%r9)
5633 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5634 ; SSE-NEXT:    movaps %xmm0, 208(%r9)
5635 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5636 ; SSE-NEXT:    movaps %xmm0, 192(%r9)
5637 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5638 ; SSE-NEXT:    movaps %xmm0, 176(%r9)
5639 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5640 ; SSE-NEXT:    movaps %xmm0, 160(%r9)
5641 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5642 ; SSE-NEXT:    movaps %xmm0, 144(%r9)
5643 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5644 ; SSE-NEXT:    movaps %xmm0, 128(%r9)
5645 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5646 ; SSE-NEXT:    movaps %xmm0, 112(%r9)
5647 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5648 ; SSE-NEXT:    movaps %xmm0, 96(%r9)
5649 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5650 ; SSE-NEXT:    movaps %xmm0, 80(%r9)
5651 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5652 ; SSE-NEXT:    movaps %xmm0, 64(%r9)
5653 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5654 ; SSE-NEXT:    movaps %xmm0, 48(%r9)
5655 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5656 ; SSE-NEXT:    movaps %xmm0, 32(%r9)
5657 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5658 ; SSE-NEXT:    movaps %xmm0, 16(%r9)
5659 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5660 ; SSE-NEXT:    movaps %xmm0, (%r9)
5661 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
5662 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5663 ; SSE-NEXT:    movaps %xmm0, 496(%rax)
5664 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5665 ; SSE-NEXT:    movaps %xmm0, 480(%rax)
5666 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5667 ; SSE-NEXT:    movaps %xmm0, 464(%rax)
5668 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5669 ; SSE-NEXT:    movaps %xmm0, 448(%rax)
5670 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5671 ; SSE-NEXT:    movaps %xmm0, 432(%rax)
5672 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5673 ; SSE-NEXT:    movaps %xmm0, 416(%rax)
5674 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5675 ; SSE-NEXT:    movaps %xmm0, 400(%rax)
5676 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5677 ; SSE-NEXT:    movaps %xmm0, 384(%rax)
5678 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5679 ; SSE-NEXT:    movaps %xmm0, 368(%rax)
5680 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5681 ; SSE-NEXT:    movaps %xmm0, 352(%rax)
5682 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5683 ; SSE-NEXT:    movaps %xmm0, 336(%rax)
5684 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5685 ; SSE-NEXT:    movaps %xmm0, 320(%rax)
5686 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5687 ; SSE-NEXT:    movaps %xmm0, 304(%rax)
5688 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5689 ; SSE-NEXT:    movaps %xmm0, 288(%rax)
5690 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5691 ; SSE-NEXT:    movaps %xmm0, 272(%rax)
5692 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5693 ; SSE-NEXT:    movaps %xmm0, 256(%rax)
5694 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5695 ; SSE-NEXT:    movaps %xmm0, 240(%rax)
5696 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5697 ; SSE-NEXT:    movaps %xmm0, 224(%rax)
5698 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5699 ; SSE-NEXT:    movaps %xmm0, 208(%rax)
5700 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5701 ; SSE-NEXT:    movaps %xmm0, 192(%rax)
5702 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5703 ; SSE-NEXT:    movaps %xmm0, 176(%rax)
5704 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5705 ; SSE-NEXT:    movaps %xmm0, 160(%rax)
5706 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5707 ; SSE-NEXT:    movaps %xmm0, 144(%rax)
5708 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5709 ; SSE-NEXT:    movaps %xmm0, 128(%rax)
5710 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5711 ; SSE-NEXT:    movaps %xmm0, 112(%rax)
5712 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5713 ; SSE-NEXT:    movaps %xmm0, 96(%rax)
5714 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5715 ; SSE-NEXT:    movaps %xmm0, 80(%rax)
5716 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5717 ; SSE-NEXT:    movaps %xmm0, 64(%rax)
5718 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5719 ; SSE-NEXT:    movaps %xmm0, 48(%rax)
5720 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5721 ; SSE-NEXT:    movaps %xmm0, 32(%rax)
5722 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5723 ; SSE-NEXT:    movaps %xmm0, 16(%rax)
5724 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5725 ; SSE-NEXT:    movaps %xmm0, (%rax)
5726 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
5727 ; SSE-NEXT:    movapd %xmm1, 496(%rax)
5728 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5729 ; SSE-NEXT:    movaps %xmm0, 480(%rax)
5730 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5731 ; SSE-NEXT:    movaps %xmm0, 464(%rax)
5732 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5733 ; SSE-NEXT:    movaps %xmm0, 448(%rax)
5734 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5735 ; SSE-NEXT:    movaps %xmm0, 432(%rax)
5736 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5737 ; SSE-NEXT:    movaps %xmm0, 416(%rax)
5738 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5739 ; SSE-NEXT:    movaps %xmm0, 400(%rax)
5740 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5741 ; SSE-NEXT:    movaps %xmm0, 384(%rax)
5742 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5743 ; SSE-NEXT:    movaps %xmm0, 368(%rax)
5744 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5745 ; SSE-NEXT:    movaps %xmm0, 352(%rax)
5746 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5747 ; SSE-NEXT:    movaps %xmm0, 336(%rax)
5748 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5749 ; SSE-NEXT:    movaps %xmm0, 320(%rax)
5750 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5751 ; SSE-NEXT:    movaps %xmm0, 304(%rax)
5752 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5753 ; SSE-NEXT:    movaps %xmm0, 288(%rax)
5754 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5755 ; SSE-NEXT:    movaps %xmm0, 272(%rax)
5756 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5757 ; SSE-NEXT:    movaps %xmm0, 256(%rax)
5758 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5759 ; SSE-NEXT:    movaps %xmm0, 240(%rax)
5760 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5761 ; SSE-NEXT:    movaps %xmm0, 224(%rax)
5762 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5763 ; SSE-NEXT:    movaps %xmm0, 208(%rax)
5764 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5765 ; SSE-NEXT:    movaps %xmm0, 192(%rax)
5766 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5767 ; SSE-NEXT:    movaps %xmm0, 176(%rax)
5768 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5769 ; SSE-NEXT:    movaps %xmm0, 160(%rax)
5770 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5771 ; SSE-NEXT:    movaps %xmm0, 144(%rax)
5772 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5773 ; SSE-NEXT:    movaps %xmm0, 128(%rax)
5774 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5775 ; SSE-NEXT:    movaps %xmm0, 112(%rax)
5776 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5777 ; SSE-NEXT:    movaps %xmm0, 96(%rax)
5778 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5779 ; SSE-NEXT:    movaps %xmm0, 80(%rax)
5780 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5781 ; SSE-NEXT:    movaps %xmm0, 64(%rax)
5782 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5783 ; SSE-NEXT:    movaps %xmm0, 48(%rax)
5784 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5785 ; SSE-NEXT:    movaps %xmm0, 32(%rax)
5786 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5787 ; SSE-NEXT:    movaps %xmm0, 16(%rax)
5788 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5789 ; SSE-NEXT:    movaps %xmm0, (%rax)
5790 ; SSE-NEXT:    addq $3240, %rsp # imm = 0xCA8
5791 ; SSE-NEXT:    retq
5793 ; AVX1-ONLY-LABEL: load_i64_stride7_vf64:
5794 ; AVX1-ONLY:       # %bb.0:
5795 ; AVX1-ONLY-NEXT:    subq $4232, %rsp # imm = 0x1088
5796 ; AVX1-ONLY-NEXT:    vmovaps 1216(%rdi), %ymm3
5797 ; AVX1-ONLY-NEXT:    vmovaps 768(%rdi), %ymm4
5798 ; AVX1-ONLY-NEXT:    vmovaps 320(%rdi), %ymm5
5799 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 384(%rdi), %ymm0, %ymm0
5800 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5801 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm5[0,1,2,3,4,5],ymm0[6,7]
5802 ; AVX1-ONLY-NEXT:    vmovaps 224(%rdi), %xmm10
5803 ; AVX1-ONLY-NEXT:    vmovaps 272(%rdi), %xmm1
5804 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5805 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm10[0,1],xmm1[2,3]
5806 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
5807 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5808 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 832(%rdi), %ymm0, %ymm0
5809 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5810 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3,4,5],ymm0[6,7]
5811 ; AVX1-ONLY-NEXT:    vmovaps 672(%rdi), %xmm11
5812 ; AVX1-ONLY-NEXT:    vmovaps 720(%rdi), %xmm1
5813 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5814 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm11[0,1],xmm1[2,3]
5815 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
5816 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5817 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 1280(%rdi), %ymm0, %ymm0
5818 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5819 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm0[6,7]
5820 ; AVX1-ONLY-NEXT:    vmovaps 1120(%rdi), %xmm12
5821 ; AVX1-ONLY-NEXT:    vmovaps 1168(%rdi), %xmm1
5822 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5823 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm12[0,1],xmm1[2,3]
5824 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
5825 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5826 ; AVX1-ONLY-NEXT:    vmovapd 1664(%rdi), %ymm6
5827 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 1728(%rdi), %ymm0, %ymm0
5828 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5829 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm6[0,1,2],ymm0[3]
5830 ; AVX1-ONLY-NEXT:    vmovapd 1568(%rdi), %xmm2
5831 ; AVX1-ONLY-NEXT:    vmovapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5832 ; AVX1-ONLY-NEXT:    vmovapd 1616(%rdi), %xmm1
5833 ; AVX1-ONLY-NEXT:    vmovapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5834 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
5835 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
5836 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5837 ; AVX1-ONLY-NEXT:    vmovapd 2112(%rdi), %ymm7
5838 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 2176(%rdi), %ymm0, %ymm0
5839 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5840 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm7[0,1,2],ymm0[3]
5841 ; AVX1-ONLY-NEXT:    vmovapd 2016(%rdi), %xmm2
5842 ; AVX1-ONLY-NEXT:    vmovapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5843 ; AVX1-ONLY-NEXT:    vmovapd 2064(%rdi), %xmm1
5844 ; AVX1-ONLY-NEXT:    vmovapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5845 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
5846 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
5847 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5848 ; AVX1-ONLY-NEXT:    vmovapd 2560(%rdi), %ymm8
5849 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 2624(%rdi), %ymm0, %ymm0
5850 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5851 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm8[0,1,2],ymm0[3]
5852 ; AVX1-ONLY-NEXT:    vmovapd 2464(%rdi), %xmm2
5853 ; AVX1-ONLY-NEXT:    vmovapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5854 ; AVX1-ONLY-NEXT:    vmovapd 2512(%rdi), %xmm1
5855 ; AVX1-ONLY-NEXT:    vmovapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5856 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
5857 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
5858 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5859 ; AVX1-ONLY-NEXT:    vmovaps 3008(%rdi), %ymm1
5860 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5861 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 3072(%rdi), %ymm0, %ymm0
5862 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5863 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm0[6,7]
5864 ; AVX1-ONLY-NEXT:    vmovaps 2912(%rdi), %xmm0
5865 ; AVX1-ONLY-NEXT:    vmovaps 2960(%rdi), %xmm2
5866 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5867 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm0[0,1],xmm2[2,3]
5868 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
5869 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5870 ; AVX1-ONLY-NEXT:    vmovaps 3456(%rdi), %ymm2
5871 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5872 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 3520(%rdi), %ymm0, %ymm1
5873 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5874 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
5875 ; AVX1-ONLY-NEXT:    vmovaps 3360(%rdi), %xmm15
5876 ; AVX1-ONLY-NEXT:    vmovaps 3408(%rdi), %xmm2
5877 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5878 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm15[0,1],xmm2[2,3]
5879 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
5880 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5881 ; AVX1-ONLY-NEXT:    vmovaps 96(%rdi), %ymm2
5882 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5883 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 160(%rdi), %ymm0, %ymm1
5884 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5885 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
5886 ; AVX1-ONLY-NEXT:    vmovaps 48(%rdi), %xmm2
5887 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5888 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = mem[0,1],xmm2[2,3]
5889 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
5890 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5891 ; AVX1-ONLY-NEXT:    vmovaps 544(%rdi), %ymm2
5892 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5893 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 608(%rdi), %ymm0, %ymm1
5894 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5895 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
5896 ; AVX1-ONLY-NEXT:    vmovaps 448(%rdi), %xmm9
5897 ; AVX1-ONLY-NEXT:    vmovaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5898 ; AVX1-ONLY-NEXT:    vmovaps 496(%rdi), %xmm2
5899 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5900 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm9[0,1],xmm2[2,3]
5901 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
5902 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5903 ; AVX1-ONLY-NEXT:    vmovaps 992(%rdi), %ymm2
5904 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5905 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 1056(%rdi), %ymm0, %ymm1
5906 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5907 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
5908 ; AVX1-ONLY-NEXT:    vmovaps 896(%rdi), %xmm9
5909 ; AVX1-ONLY-NEXT:    vmovaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5910 ; AVX1-ONLY-NEXT:    vmovaps 944(%rdi), %xmm2
5911 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5912 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm9[0,1],xmm2[2,3]
5913 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
5914 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5915 ; AVX1-ONLY-NEXT:    vmovaps 1440(%rdi), %ymm2
5916 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5917 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 1504(%rdi), %ymm0, %ymm1
5918 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5919 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
5920 ; AVX1-ONLY-NEXT:    vmovaps 1344(%rdi), %xmm9
5921 ; AVX1-ONLY-NEXT:    vmovaps 1392(%rdi), %xmm2
5922 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5923 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm9[0,1],xmm2[2,3]
5924 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
5925 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5926 ; AVX1-ONLY-NEXT:    vmovaps 1888(%rdi), %ymm2
5927 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5928 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 1952(%rdi), %ymm0, %ymm1
5929 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5930 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
5931 ; AVX1-ONLY-NEXT:    vmovaps 1792(%rdi), %xmm13
5932 ; AVX1-ONLY-NEXT:    vmovaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5933 ; AVX1-ONLY-NEXT:    vmovaps 1840(%rdi), %xmm2
5934 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5935 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm13[0,1],xmm2[2,3]
5936 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
5937 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5938 ; AVX1-ONLY-NEXT:    vmovaps 2336(%rdi), %ymm2
5939 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5940 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 2400(%rdi), %ymm0, %ymm1
5941 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5942 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
5943 ; AVX1-ONLY-NEXT:    vmovaps 2240(%rdi), %xmm13
5944 ; AVX1-ONLY-NEXT:    vmovaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5945 ; AVX1-ONLY-NEXT:    vmovaps 2288(%rdi), %xmm2
5946 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5947 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm13[0,1],xmm2[2,3]
5948 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
5949 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5950 ; AVX1-ONLY-NEXT:    vmovaps 2784(%rdi), %ymm2
5951 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5952 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 2848(%rdi), %ymm0, %ymm1
5953 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5954 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
5955 ; AVX1-ONLY-NEXT:    vmovaps 2688(%rdi), %xmm13
5956 ; AVX1-ONLY-NEXT:    vmovaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5957 ; AVX1-ONLY-NEXT:    vmovaps 2736(%rdi), %xmm2
5958 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5959 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm13[0,1],xmm2[2,3]
5960 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
5961 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5962 ; AVX1-ONLY-NEXT:    vmovaps 3232(%rdi), %ymm2
5963 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5964 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 3296(%rdi), %ymm0, %ymm1
5965 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5966 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
5967 ; AVX1-ONLY-NEXT:    vmovaps 3136(%rdi), %xmm13
5968 ; AVX1-ONLY-NEXT:    vmovaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5969 ; AVX1-ONLY-NEXT:    vmovaps 3184(%rdi), %xmm2
5970 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5971 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm13[0,1],xmm2[2,3]
5972 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
5973 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5974 ; AVX1-ONLY-NEXT:    vmovdqa 288(%rdi), %xmm1
5975 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = xmm10[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
5976 ; AVX1-ONLY-NEXT:    vmovapd 384(%rdi), %ymm2
5977 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5978 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm2 = ymm5[0],ymm2[0],ymm5[3],ymm2[2]
5979 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3]
5980 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5981 ; AVX1-ONLY-NEXT:    vmovdqa 736(%rdi), %xmm1
5982 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = xmm11[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
5983 ; AVX1-ONLY-NEXT:    vmovapd 832(%rdi), %ymm14
5984 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm2 = ymm4[0],ymm14[0],ymm4[3],ymm14[2]
5985 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3]
5986 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5987 ; AVX1-ONLY-NEXT:    vmovdqa 1184(%rdi), %xmm1
5988 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = xmm12[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
5989 ; AVX1-ONLY-NEXT:    vmovapd 1280(%rdi), %ymm13
5990 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm2 = ymm3[0],ymm13[0],ymm3[3],ymm13[2]
5991 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3]
5992 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5993 ; AVX1-ONLY-NEXT:    vmovdqa 1632(%rdi), %xmm1
5994 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
5995 ; AVX1-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
5996 ; AVX1-ONLY-NEXT:    vmovapd 1728(%rdi), %ymm12
5997 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm2 = ymm6[0],ymm12[0],ymm6[3],ymm12[2]
5998 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3]
5999 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6000 ; AVX1-ONLY-NEXT:    vmovdqa 2080(%rdi), %xmm1
6001 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
6002 ; AVX1-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
6003 ; AVX1-ONLY-NEXT:    vmovapd 2176(%rdi), %ymm11
6004 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm2 = ymm7[0],ymm11[0],ymm7[3],ymm11[2]
6005 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3]
6006 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6007 ; AVX1-ONLY-NEXT:    vmovdqa 2528(%rdi), %xmm1
6008 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
6009 ; AVX1-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
6010 ; AVX1-ONLY-NEXT:    vmovapd 2624(%rdi), %ymm10
6011 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm2 = ymm8[0],ymm10[0],ymm8[3],ymm10[2]
6012 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3]
6013 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6014 ; AVX1-ONLY-NEXT:    vmovdqa 2976(%rdi), %xmm1
6015 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm0 = xmm0[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
6016 ; AVX1-ONLY-NEXT:    vmovapd 3072(%rdi), %ymm2
6017 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6018 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6019 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[3],ymm2[2]
6020 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3]
6021 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6022 ; AVX1-ONLY-NEXT:    vmovdqa 3424(%rdi), %xmm0
6023 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm0 = xmm15[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
6024 ; AVX1-ONLY-NEXT:    vmovapd 3520(%rdi), %ymm15
6025 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6026 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm1 = ymm1[0],ymm15[0],ymm1[3],ymm15[2]
6027 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3]
6028 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6029 ; AVX1-ONLY-NEXT:    vmovapd 160(%rdi), %ymm0
6030 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6031 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6032 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[3],ymm0[2]
6033 ; AVX1-ONLY-NEXT:    vmovdqa 64(%rdi), %xmm1
6034 ; AVX1-ONLY-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6035 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = mem[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
6036 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
6037 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6038 ; AVX1-ONLY-NEXT:    vmovapd 608(%rdi), %ymm0
6039 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6040 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6041 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[3],ymm0[2]
6042 ; AVX1-ONLY-NEXT:    vmovdqa 512(%rdi), %xmm1
6043 ; AVX1-ONLY-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6044 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
6045 ; AVX1-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
6046 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
6047 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6048 ; AVX1-ONLY-NEXT:    vmovapd 1056(%rdi), %ymm0
6049 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6050 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6051 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[3],ymm0[2]
6052 ; AVX1-ONLY-NEXT:    vmovdqa 960(%rdi), %xmm1
6053 ; AVX1-ONLY-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6054 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
6055 ; AVX1-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
6056 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
6057 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6058 ; AVX1-ONLY-NEXT:    vmovapd 1504(%rdi), %ymm0
6059 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6060 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6061 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[3],ymm0[2]
6062 ; AVX1-ONLY-NEXT:    vmovdqa 1408(%rdi), %xmm1
6063 ; AVX1-ONLY-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6064 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = xmm9[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
6065 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
6066 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6067 ; AVX1-ONLY-NEXT:    vmovapd 1952(%rdi), %ymm9
6068 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6069 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm0[0],ymm9[0],ymm0[3],ymm9[2]
6070 ; AVX1-ONLY-NEXT:    vmovdqa 1856(%rdi), %xmm1
6071 ; AVX1-ONLY-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6072 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
6073 ; AVX1-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
6074 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
6075 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6076 ; AVX1-ONLY-NEXT:    vmovapd 2400(%rdi), %ymm6
6077 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6078 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm0[0],ymm6[0],ymm0[3],ymm6[2]
6079 ; AVX1-ONLY-NEXT:    vmovdqa 2304(%rdi), %xmm8
6080 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm8, %xmm1 # 16-byte Folded Reload
6081 ; AVX1-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm8[0,1,2,3,4,5,6,7]
6082 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
6083 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6084 ; AVX1-ONLY-NEXT:    vmovapd 2848(%rdi), %ymm4
6085 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6086 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm0[0],ymm4[0],ymm0[3],ymm4[2]
6087 ; AVX1-ONLY-NEXT:    vmovdqa 2752(%rdi), %xmm5
6088 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm1 # 16-byte Folded Reload
6089 ; AVX1-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm5[0,1,2,3,4,5,6,7]
6090 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
6091 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6092 ; AVX1-ONLY-NEXT:    vmovapd 3296(%rdi), %ymm2
6093 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6094 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm0[0],ymm2[0],ymm0[3],ymm2[2]
6095 ; AVX1-ONLY-NEXT:    vmovdqa 3200(%rdi), %xmm3
6096 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm7 # 16-byte Folded Reload
6097 ; AVX1-ONLY-NEXT:    # xmm7 = mem[8,9,10,11,12,13,14,15],xmm3[0,1,2,3,4,5,6,7]
6098 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm7[0,1],ymm0[2,3]
6099 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6100 ; AVX1-ONLY-NEXT:    vmovaps 352(%rdi), %xmm0
6101 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6102 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
6103 ; AVX1-ONLY-NEXT:    vblendps $192, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload
6104 ; AVX1-ONLY-NEXT:    # ymm1 = ymm0[0,1,2,3,4,5],mem[6,7]
6105 ; AVX1-ONLY-NEXT:    vmovaps 240(%rdi), %xmm0
6106 ; AVX1-ONLY-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
6107 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm7 = xmm0[0,1],mem[2,3]
6108 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm7[0,1,2,3],ymm1[4,5,6,7]
6109 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6110 ; AVX1-ONLY-NEXT:    vmovaps 800(%rdi), %xmm0
6111 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6112 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
6113 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1,2],ymm14[3]
6114 ; AVX1-ONLY-NEXT:    vmovapd 688(%rdi), %xmm7
6115 ; AVX1-ONLY-NEXT:    vmovupd %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6116 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm7 = xmm7[0],mem[1]
6117 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm7[0,1],ymm0[2,3]
6118 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6119 ; AVX1-ONLY-NEXT:    vmovaps 1248(%rdi), %xmm0
6120 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6121 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
6122 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1,2],ymm13[3]
6123 ; AVX1-ONLY-NEXT:    vmovapd 1136(%rdi), %xmm7
6124 ; AVX1-ONLY-NEXT:    vmovupd %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6125 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm7 = xmm7[0],mem[1]
6126 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm7[0,1],ymm0[2,3]
6127 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6128 ; AVX1-ONLY-NEXT:    vmovaps 1696(%rdi), %xmm0
6129 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6130 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
6131 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1,2],ymm12[3]
6132 ; AVX1-ONLY-NEXT:    vmovapd 1584(%rdi), %xmm7
6133 ; AVX1-ONLY-NEXT:    vmovupd %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6134 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm7 = xmm7[0],mem[1]
6135 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm7[0,1],ymm0[2,3]
6136 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6137 ; AVX1-ONLY-NEXT:    vmovaps 2144(%rdi), %xmm0
6138 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6139 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
6140 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1,2],ymm11[3]
6141 ; AVX1-ONLY-NEXT:    vmovapd 2032(%rdi), %xmm7
6142 ; AVX1-ONLY-NEXT:    vmovupd %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6143 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm7 = xmm7[0],mem[1]
6144 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm7[0,1],ymm0[2,3]
6145 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6146 ; AVX1-ONLY-NEXT:    vmovaps 2592(%rdi), %xmm0
6147 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6148 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
6149 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1,2],ymm10[3]
6150 ; AVX1-ONLY-NEXT:    vmovapd 2480(%rdi), %xmm7
6151 ; AVX1-ONLY-NEXT:    vmovupd %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6152 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm7 = xmm7[0],mem[1]
6153 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm7[0,1],ymm0[2,3]
6154 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6155 ; AVX1-ONLY-NEXT:    vmovaps 3040(%rdi), %xmm0
6156 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6157 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
6158 ; AVX1-ONLY-NEXT:    vblendps $192, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
6159 ; AVX1-ONLY-NEXT:    # ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
6160 ; AVX1-ONLY-NEXT:    vmovaps 2928(%rdi), %xmm7
6161 ; AVX1-ONLY-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6162 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0,1],mem[2,3]
6163 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm7[0,1,2,3],ymm0[4,5,6,7]
6164 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6165 ; AVX1-ONLY-NEXT:    vmovaps 3488(%rdi), %xmm0
6166 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6167 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
6168 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1,2],ymm15[3]
6169 ; AVX1-ONLY-NEXT:    vmovapd 3376(%rdi), %xmm1
6170 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6171 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm7 = xmm1[0],mem[1]
6172 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm7[0,1],ymm0[2,3]
6173 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6174 ; AVX1-ONLY-NEXT:    vmovaps 3264(%rdi), %xmm0
6175 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6176 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
6177 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1,2],ymm2[3]
6178 ; AVX1-ONLY-NEXT:    vmovdqa 3152(%rdi), %xmm2
6179 ; AVX1-ONLY-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6180 ; AVX1-ONLY-NEXT:    vpblendw {{.*#+}} xmm1 = xmm2[0,1,2,3],xmm3[4,5,6,7]
6181 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
6182 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6183 ; AVX1-ONLY-NEXT:    vmovaps 2816(%rdi), %xmm0
6184 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6185 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
6186 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1,2],ymm4[3]
6187 ; AVX1-ONLY-NEXT:    vmovdqa 2704(%rdi), %xmm1
6188 ; AVX1-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6189 ; AVX1-ONLY-NEXT:    vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3],xmm5[4,5,6,7]
6190 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
6191 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6192 ; AVX1-ONLY-NEXT:    vmovdqa 2368(%rdi), %xmm14
6193 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm14, %ymm0, %ymm0
6194 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1,2],ymm6[3]
6195 ; AVX1-ONLY-NEXT:    vmovdqa 2256(%rdi), %xmm10
6196 ; AVX1-ONLY-NEXT:    vpblendw {{.*#+}} xmm1 = xmm10[0,1,2,3],xmm8[4,5,6,7]
6197 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
6198 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6199 ; AVX1-ONLY-NEXT:    vmovdqa 1920(%rdi), %xmm8
6200 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm1
6201 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm1[0,1,2],ymm9[3]
6202 ; AVX1-ONLY-NEXT:    vmovapd 1808(%rdi), %xmm5
6203 ; AVX1-ONLY-NEXT:    vblendpd $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm2 # 16-byte Folded Reload
6204 ; AVX1-ONLY-NEXT:    # xmm2 = xmm5[0],mem[1]
6205 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3]
6206 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6207 ; AVX1-ONLY-NEXT:    vmovdqa 1472(%rdi), %xmm7
6208 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm1
6209 ; AVX1-ONLY-NEXT:    vblendpd $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
6210 ; AVX1-ONLY-NEXT:    # ymm1 = ymm1[0,1,2],mem[3]
6211 ; AVX1-ONLY-NEXT:    vmovapd 1360(%rdi), %xmm3
6212 ; AVX1-ONLY-NEXT:    vblendpd $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm2 # 16-byte Folded Reload
6213 ; AVX1-ONLY-NEXT:    # xmm2 = xmm3[0],mem[1]
6214 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3]
6215 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6216 ; AVX1-ONLY-NEXT:    vmovdqa 1024(%rdi), %xmm4
6217 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm1
6218 ; AVX1-ONLY-NEXT:    vblendpd $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
6219 ; AVX1-ONLY-NEXT:    # ymm2 = ymm1[0,1,2],mem[3]
6220 ; AVX1-ONLY-NEXT:    vmovapd 912(%rdi), %xmm1
6221 ; AVX1-ONLY-NEXT:    vblendpd $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm6 # 16-byte Folded Reload
6222 ; AVX1-ONLY-NEXT:    # xmm6 = xmm1[0],mem[1]
6223 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm6[0,1],ymm2[2,3]
6224 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6225 ; AVX1-ONLY-NEXT:    vmovdqa 576(%rdi), %xmm9
6226 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm9, %ymm0, %ymm2
6227 ; AVX1-ONLY-NEXT:    vblendpd $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
6228 ; AVX1-ONLY-NEXT:    # ymm2 = ymm2[0,1,2],mem[3]
6229 ; AVX1-ONLY-NEXT:    vmovapd 464(%rdi), %xmm6
6230 ; AVX1-ONLY-NEXT:    vblendpd $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6, %xmm11 # 16-byte Folded Reload
6231 ; AVX1-ONLY-NEXT:    # xmm11 = xmm6[0],mem[1]
6232 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm11[0,1],ymm2[2,3]
6233 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6234 ; AVX1-ONLY-NEXT:    vmovdqa 128(%rdi), %xmm2
6235 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm11
6236 ; AVX1-ONLY-NEXT:    vblendpd $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm11 # 32-byte Folded Reload
6237 ; AVX1-ONLY-NEXT:    # ymm11 = ymm11[0,1,2],mem[3]
6238 ; AVX1-ONLY-NEXT:    vmovapd 16(%rdi), %xmm12
6239 ; AVX1-ONLY-NEXT:    vblendpd $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm12, %xmm13 # 16-byte Folded Reload
6240 ; AVX1-ONLY-NEXT:    # xmm13 = xmm12[0],mem[1]
6241 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm11 = ymm13[0,1],ymm11[2,3]
6242 ; AVX1-ONLY-NEXT:    vmovupd %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6243 ; AVX1-ONLY-NEXT:    vmovapd 80(%rdi), %xmm13
6244 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm11 = ymm12[1],ymm13[0],ymm12[2],ymm13[2]
6245 ; AVX1-ONLY-NEXT:    vmovdqa 192(%rdi), %xmm12
6246 ; AVX1-ONLY-NEXT:    vmovdqa %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6247 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm2 = xmm2[8,9,10,11,12,13,14,15],xmm12[0,1,2,3,4,5,6,7]
6248 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
6249 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm11[0,1],ymm2[2,3]
6250 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6251 ; AVX1-ONLY-NEXT:    vmovapd 304(%rdi), %xmm2
6252 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6253 ; AVX1-ONLY-NEXT:    vmovupd (%rsp), %ymm0 # 32-byte Reload
6254 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm2 = ymm0[1],ymm2[0],ymm0[2],ymm2[2]
6255 ; AVX1-ONLY-NEXT:    vmovdqa 416(%rdi), %xmm0
6256 ; AVX1-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6257 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm11 # 16-byte Folded Reload
6258 ; AVX1-ONLY-NEXT:    # xmm11 = mem[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
6259 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm11, %ymm0, %ymm11
6260 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm2[0,1],ymm11[2,3]
6261 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6262 ; AVX1-ONLY-NEXT:    vmovapd 528(%rdi), %xmm11
6263 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm6 = ymm6[1],ymm11[0],ymm6[2],ymm11[2]
6264 ; AVX1-ONLY-NEXT:    vmovdqa 640(%rdi), %xmm2
6265 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm9 = xmm9[8,9,10,11,12,13,14,15],xmm2[0,1,2,3,4,5,6,7]
6266 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm9, %ymm0, %ymm9
6267 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm6 = ymm6[0,1],ymm9[2,3]
6268 ; AVX1-ONLY-NEXT:    vmovupd %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6269 ; AVX1-ONLY-NEXT:    vmovapd 752(%rdi), %xmm9
6270 ; AVX1-ONLY-NEXT:    vmovupd %ymm9, (%rsp) # 32-byte Spill
6271 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
6272 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm6 = ymm6[1],ymm9[0],ymm6[2],ymm9[2]
6273 ; AVX1-ONLY-NEXT:    vmovdqa 864(%rdi), %xmm0
6274 ; AVX1-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6275 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm9 # 16-byte Folded Reload
6276 ; AVX1-ONLY-NEXT:    # xmm9 = mem[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
6277 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm9, %ymm0, %ymm9
6278 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm6 = ymm6[0,1],ymm9[2,3]
6279 ; AVX1-ONLY-NEXT:    vmovupd %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6280 ; AVX1-ONLY-NEXT:    vmovapd 976(%rdi), %xmm9
6281 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm6 = ymm1[1],ymm9[0],ymm1[2],ymm9[2]
6282 ; AVX1-ONLY-NEXT:    vmovdqa 1088(%rdi), %xmm1
6283 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm4 = xmm4[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
6284 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
6285 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm4 = ymm6[0,1],ymm4[2,3]
6286 ; AVX1-ONLY-NEXT:    vmovupd %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6287 ; AVX1-ONLY-NEXT:    vmovapd 1200(%rdi), %xmm6
6288 ; AVX1-ONLY-NEXT:    vmovupd %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6289 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
6290 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm4 = ymm4[1],ymm6[0],ymm4[2],ymm6[2]
6291 ; AVX1-ONLY-NEXT:    vmovdqa 1312(%rdi), %xmm0
6292 ; AVX1-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6293 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm6 # 16-byte Folded Reload
6294 ; AVX1-ONLY-NEXT:    # xmm6 = mem[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
6295 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
6296 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm4 = ymm4[0,1],ymm6[2,3]
6297 ; AVX1-ONLY-NEXT:    vmovupd %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6298 ; AVX1-ONLY-NEXT:    vmovapd 1424(%rdi), %xmm0
6299 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6300 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm3 = ymm3[1],ymm0[0],ymm3[2],ymm0[2]
6301 ; AVX1-ONLY-NEXT:    vmovdqa 1536(%rdi), %xmm0
6302 ; AVX1-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6303 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm4 = xmm7[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
6304 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
6305 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm3 = ymm3[0,1],ymm4[2,3]
6306 ; AVX1-ONLY-NEXT:    vmovupd %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6307 ; AVX1-ONLY-NEXT:    vmovapd 1648(%rdi), %xmm7
6308 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6309 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm3 = ymm3[1],ymm7[0],ymm3[2],ymm7[2]
6310 ; AVX1-ONLY-NEXT:    vmovdqa 1760(%rdi), %xmm0
6311 ; AVX1-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6312 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm4 # 16-byte Folded Reload
6313 ; AVX1-ONLY-NEXT:    # xmm4 = mem[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
6314 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
6315 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm3 = ymm3[0,1],ymm4[2,3]
6316 ; AVX1-ONLY-NEXT:    vmovupd %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6317 ; AVX1-ONLY-NEXT:    vmovapd 1872(%rdi), %xmm0
6318 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6319 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm3 = ymm5[1],ymm0[0],ymm5[2],ymm0[2]
6320 ; AVX1-ONLY-NEXT:    vmovdqa 1984(%rdi), %xmm0
6321 ; AVX1-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6322 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm0 = xmm8[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
6323 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
6324 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm3[0,1],ymm0[2,3]
6325 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6326 ; AVX1-ONLY-NEXT:    vmovapd 2096(%rdi), %xmm3
6327 ; AVX1-ONLY-NEXT:    vmovupd %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6328 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6329 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm0[1],ymm3[0],ymm0[2],ymm3[2]
6330 ; AVX1-ONLY-NEXT:    vmovdqa 2208(%rdi), %xmm3
6331 ; AVX1-ONLY-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6332 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm3 # 16-byte Folded Reload
6333 ; AVX1-ONLY-NEXT:    # xmm3 = mem[8,9,10,11,12,13,14,15],xmm3[0,1,2,3,4,5,6,7]
6334 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
6335 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm3[2,3]
6336 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6337 ; AVX1-ONLY-NEXT:    vmovapd 2320(%rdi), %xmm0
6338 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6339 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm10[1],ymm0[0],ymm10[2],ymm0[2]
6340 ; AVX1-ONLY-NEXT:    vmovdqa 2432(%rdi), %xmm3
6341 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm4 = xmm14[8,9,10,11,12,13,14,15],xmm3[0,1,2,3,4,5,6,7]
6342 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
6343 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm4[2,3]
6344 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6345 ; AVX1-ONLY-NEXT:    vmovapd 2544(%rdi), %xmm14
6346 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6347 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm0[1],ymm14[0],ymm0[2],ymm14[2]
6348 ; AVX1-ONLY-NEXT:    vmovdqa 2656(%rdi), %xmm4
6349 ; AVX1-ONLY-NEXT:    vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6350 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload
6351 ; AVX1-ONLY-NEXT:    # xmm4 = mem[8,9,10,11,12,13,14,15],xmm4[0,1,2,3,4,5,6,7]
6352 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
6353 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm4[2,3]
6354 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6355 ; AVX1-ONLY-NEXT:    vmovapd 2768(%rdi), %xmm4
6356 ; AVX1-ONLY-NEXT:    vmovupd %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6357 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6358 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm4 = ymm0[1],ymm4[0],ymm0[2],ymm4[2]
6359 ; AVX1-ONLY-NEXT:    vmovdqa 2880(%rdi), %xmm8
6360 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm8, %xmm5 # 16-byte Folded Reload
6361 ; AVX1-ONLY-NEXT:    # xmm5 = mem[8,9,10,11,12,13,14,15],xmm8[0,1,2,3,4,5,6,7]
6362 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
6363 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm4 = ymm4[0,1],ymm5[2,3]
6364 ; AVX1-ONLY-NEXT:    vmovupd %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6365 ; AVX1-ONLY-NEXT:    vmovapd 2992(%rdi), %xmm5
6366 ; AVX1-ONLY-NEXT:    vmovupd %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6367 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
6368 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm4 = ymm4[1],ymm5[0],ymm4[2],ymm5[2]
6369 ; AVX1-ONLY-NEXT:    vmovdqa 3104(%rdi), %xmm5
6370 ; AVX1-ONLY-NEXT:    vmovdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6371 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm5 # 16-byte Folded Reload
6372 ; AVX1-ONLY-NEXT:    # xmm5 = mem[8,9,10,11,12,13,14,15],xmm5[0,1,2,3,4,5,6,7]
6373 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
6374 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm4 = ymm4[0,1],ymm5[2,3]
6375 ; AVX1-ONLY-NEXT:    vmovupd %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6376 ; AVX1-ONLY-NEXT:    vmovapd 3216(%rdi), %xmm5
6377 ; AVX1-ONLY-NEXT:    vmovupd %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6378 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
6379 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm4 = ymm4[1],ymm5[0],ymm4[2],ymm5[2]
6380 ; AVX1-ONLY-NEXT:    vmovdqa 3328(%rdi), %xmm0
6381 ; AVX1-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6382 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm5 # 16-byte Folded Reload
6383 ; AVX1-ONLY-NEXT:    # xmm5 = mem[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
6384 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
6385 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm4 = ymm4[0,1],ymm5[2,3]
6386 ; AVX1-ONLY-NEXT:    vmovupd %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6387 ; AVX1-ONLY-NEXT:    vmovapd 3440(%rdi), %xmm5
6388 ; AVX1-ONLY-NEXT:    vmovupd %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6389 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
6390 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm5 = ymm4[1],ymm5[0],ymm4[2],ymm5[2]
6391 ; AVX1-ONLY-NEXT:    vmovdqa 3552(%rdi), %xmm4
6392 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm6 # 16-byte Folded Reload
6393 ; AVX1-ONLY-NEXT:    # xmm6 = mem[8,9,10,11,12,13,14,15],xmm4[0,1,2,3,4,5,6,7]
6394 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
6395 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm5 = ymm5[0,1],ymm6[2,3]
6396 ; AVX1-ONLY-NEXT:    vmovupd %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6397 ; AVX1-ONLY-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm5 # 16-byte Folded Reload
6398 ; AVX1-ONLY-NEXT:    vmovapd 128(%rdi), %ymm6
6399 ; AVX1-ONLY-NEXT:    vmovupd %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6400 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm5 = ymm6[0,1,2],ymm5[3]
6401 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm6 = mem[0],xmm13[1]
6402 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm5 = ymm6[0,1],ymm5[2,3]
6403 ; AVX1-ONLY-NEXT:    vmovupd %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6404 ; AVX1-ONLY-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm5 # 16-byte Folded Reload
6405 ; AVX1-ONLY-NEXT:    vmovapd 352(%rdi), %ymm13
6406 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm5 = ymm13[0,1,2],ymm5[3]
6407 ; AVX1-ONLY-NEXT:    vmovapd 256(%rdi), %xmm6
6408 ; AVX1-ONLY-NEXT:    vmovapd %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6409 ; AVX1-ONLY-NEXT:    vblendpd $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6, %xmm6 # 16-byte Folded Reload
6410 ; AVX1-ONLY-NEXT:    # xmm6 = xmm6[0],mem[1]
6411 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm5 = ymm6[0,1],ymm5[2,3]
6412 ; AVX1-ONLY-NEXT:    vmovupd %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6413 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
6414 ; AVX1-ONLY-NEXT:    vmovapd 576(%rdi), %ymm6
6415 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm6[0,1,2],ymm2[3]
6416 ; AVX1-ONLY-NEXT:    vmovapd 480(%rdi), %xmm0
6417 ; AVX1-ONLY-NEXT:    vmovapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6418 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm5 = xmm0[0],xmm11[1]
6419 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm5[0,1],ymm2[2,3]
6420 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6421 ; AVX1-ONLY-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 16-byte Folded Reload
6422 ; AVX1-ONLY-NEXT:    vmovapd 800(%rdi), %ymm11
6423 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm11[0,1,2],ymm2[3]
6424 ; AVX1-ONLY-NEXT:    vmovapd 704(%rdi), %xmm5
6425 ; AVX1-ONLY-NEXT:    vmovapd %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6426 ; AVX1-ONLY-NEXT:    vblendpd $2, (%rsp), %xmm5, %xmm5 # 16-byte Folded Reload
6427 ; AVX1-ONLY-NEXT:    # xmm5 = xmm5[0],mem[1]
6428 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm5[0,1],ymm2[2,3]
6429 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6430 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
6431 ; AVX1-ONLY-NEXT:    vmovapd 1024(%rdi), %ymm5
6432 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm5[0,1,2],ymm1[3]
6433 ; AVX1-ONLY-NEXT:    vmovapd 928(%rdi), %xmm0
6434 ; AVX1-ONLY-NEXT:    vmovapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6435 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm2 = xmm0[0],xmm9[1]
6436 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3]
6437 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, (%rsp) # 32-byte Spill
6438 ; AVX1-ONLY-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 16-byte Folded Reload
6439 ; AVX1-ONLY-NEXT:    vmovaps 1248(%rdi), %ymm0
6440 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6441 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3,4,5],ymm1[6,7]
6442 ; AVX1-ONLY-NEXT:    vmovaps 1152(%rdi), %xmm0
6443 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6444 ; AVX1-ONLY-NEXT:    vblendps $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm2 # 16-byte Folded Reload
6445 ; AVX1-ONLY-NEXT:    # xmm2 = xmm0[0,1],mem[2,3]
6446 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
6447 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6448 ; AVX1-ONLY-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 16-byte Folded Reload
6449 ; AVX1-ONLY-NEXT:    vmovaps 1472(%rdi), %ymm9
6450 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm9[0,1,2,3,4,5],ymm1[6,7]
6451 ; AVX1-ONLY-NEXT:    vmovaps 1376(%rdi), %xmm15
6452 ; AVX1-ONLY-NEXT:    vblendps $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm2 # 16-byte Folded Reload
6453 ; AVX1-ONLY-NEXT:    # xmm2 = xmm15[0,1],mem[2,3]
6454 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
6455 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6456 ; AVX1-ONLY-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 16-byte Folded Reload
6457 ; AVX1-ONLY-NEXT:    vmovapd 1696(%rdi), %ymm0
6458 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6459 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm0[0,1,2],ymm1[3]
6460 ; AVX1-ONLY-NEXT:    vmovapd 1600(%rdi), %xmm0
6461 ; AVX1-ONLY-NEXT:    vmovapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6462 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm2 = xmm0[0],xmm7[1]
6463 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3]
6464 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6465 ; AVX1-ONLY-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 16-byte Folded Reload
6466 ; AVX1-ONLY-NEXT:    vmovaps 1920(%rdi), %ymm7
6467 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm7[0,1,2,3,4,5],ymm1[6,7]
6468 ; AVX1-ONLY-NEXT:    vmovaps 1824(%rdi), %xmm12
6469 ; AVX1-ONLY-NEXT:    vblendps $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm12, %xmm2 # 16-byte Folded Reload
6470 ; AVX1-ONLY-NEXT:    # xmm2 = xmm12[0,1],mem[2,3]
6471 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
6472 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6473 ; AVX1-ONLY-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 16-byte Folded Reload
6474 ; AVX1-ONLY-NEXT:    vmovapd 2144(%rdi), %ymm10
6475 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm10[0,1,2],ymm1[3]
6476 ; AVX1-ONLY-NEXT:    vmovapd 2048(%rdi), %xmm0
6477 ; AVX1-ONLY-NEXT:    vmovapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6478 ; AVX1-ONLY-NEXT:    vblendpd $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm2 # 16-byte Folded Reload
6479 ; AVX1-ONLY-NEXT:    # xmm2 = xmm0[0],mem[1]
6480 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3]
6481 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6482 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm1
6483 ; AVX1-ONLY-NEXT:    vmovapd 2368(%rdi), %ymm3
6484 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm3[0,1,2],ymm1[3]
6485 ; AVX1-ONLY-NEXT:    vmovapd 2272(%rdi), %xmm0
6486 ; AVX1-ONLY-NEXT:    vmovapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6487 ; AVX1-ONLY-NEXT:    vblendpd $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm2 # 16-byte Folded Reload
6488 ; AVX1-ONLY-NEXT:    # xmm2 = xmm0[0],mem[1]
6489 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3]
6490 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6491 ; AVX1-ONLY-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 16-byte Folded Reload
6492 ; AVX1-ONLY-NEXT:    vmovapd 2592(%rdi), %ymm0
6493 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6494 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm0[0,1,2],ymm1[3]
6495 ; AVX1-ONLY-NEXT:    vmovapd 2496(%rdi), %xmm0
6496 ; AVX1-ONLY-NEXT:    vmovapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6497 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm2 = xmm0[0],xmm14[1]
6498 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3]
6499 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6500 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm0
6501 ; AVX1-ONLY-NEXT:    vmovapd 2816(%rdi), %ymm2
6502 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm2[0,1,2],ymm0[3]
6503 ; AVX1-ONLY-NEXT:    vmovapd 2720(%rdi), %xmm1
6504 ; AVX1-ONLY-NEXT:    vmovapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6505 ; AVX1-ONLY-NEXT:    vblendpd $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
6506 ; AVX1-ONLY-NEXT:    # xmm1 = xmm1[0],mem[1]
6507 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
6508 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6509 ; AVX1-ONLY-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
6510 ; AVX1-ONLY-NEXT:    vmovaps 3040(%rdi), %ymm1
6511 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6512 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
6513 ; AVX1-ONLY-NEXT:    vmovaps 2944(%rdi), %xmm1
6514 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6515 ; AVX1-ONLY-NEXT:    vblendps $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
6516 ; AVX1-ONLY-NEXT:    # xmm1 = xmm1[0,1],mem[2,3]
6517 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
6518 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6519 ; AVX1-ONLY-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
6520 ; AVX1-ONLY-NEXT:    vmovapd 3264(%rdi), %ymm14
6521 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm14[0,1,2],ymm0[3]
6522 ; AVX1-ONLY-NEXT:    vmovapd 3168(%rdi), %xmm1
6523 ; AVX1-ONLY-NEXT:    vmovapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6524 ; AVX1-ONLY-NEXT:    vblendpd $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
6525 ; AVX1-ONLY-NEXT:    # xmm1 = xmm1[0],mem[1]
6526 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
6527 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6528 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
6529 ; AVX1-ONLY-NEXT:    vmovaps 3488(%rdi), %ymm1
6530 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6531 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
6532 ; AVX1-ONLY-NEXT:    vmovaps 3392(%rdi), %xmm1
6533 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6534 ; AVX1-ONLY-NEXT:    vblendps $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
6535 ; AVX1-ONLY-NEXT:    # xmm1 = xmm1[0,1],mem[2,3]
6536 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
6537 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6538 ; AVX1-ONLY-NEXT:    vmovapd 192(%rdi), %ymm1
6539 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6540 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6541 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[3],ymm1[2]
6542 ; AVX1-ONLY-NEXT:    vmovdqa 96(%rdi), %xmm1
6543 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = mem[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
6544 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
6545 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6546 ; AVX1-ONLY-NEXT:    vmovapd 416(%rdi), %ymm0
6547 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6548 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm13[0],ymm0[0],ymm13[3],ymm0[2]
6549 ; AVX1-ONLY-NEXT:    vmovdqa 320(%rdi), %xmm1
6550 ; AVX1-ONLY-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6551 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
6552 ; AVX1-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
6553 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
6554 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6555 ; AVX1-ONLY-NEXT:    vmovdqa 544(%rdi), %xmm0
6556 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
6557 ; AVX1-ONLY-NEXT:    # xmm0 = mem[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
6558 ; AVX1-ONLY-NEXT:    vmovapd 640(%rdi), %ymm1
6559 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6560 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm1 = ymm6[0],ymm1[0],ymm6[3],ymm1[2]
6561 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3]
6562 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6563 ; AVX1-ONLY-NEXT:    vmovapd 864(%rdi), %ymm0
6564 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6565 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm11[0],ymm0[0],ymm11[3],ymm0[2]
6566 ; AVX1-ONLY-NEXT:    vmovdqa 768(%rdi), %xmm1
6567 ; AVX1-ONLY-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6568 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
6569 ; AVX1-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
6570 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
6571 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6572 ; AVX1-ONLY-NEXT:    vmovdqa 992(%rdi), %xmm0
6573 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
6574 ; AVX1-ONLY-NEXT:    # xmm0 = mem[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
6575 ; AVX1-ONLY-NEXT:    vmovapd 1088(%rdi), %ymm1
6576 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6577 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm1 = ymm5[0],ymm1[0],ymm5[3],ymm1[2]
6578 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3]
6579 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6580 ; AVX1-ONLY-NEXT:    vmovapd 1312(%rdi), %ymm1
6581 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6582 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6583 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[3],ymm1[2]
6584 ; AVX1-ONLY-NEXT:    vmovdqa 1216(%rdi), %xmm1
6585 ; AVX1-ONLY-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6586 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
6587 ; AVX1-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
6588 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
6589 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6590 ; AVX1-ONLY-NEXT:    vmovdqa 1440(%rdi), %xmm0
6591 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm0 = xmm15[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
6592 ; AVX1-ONLY-NEXT:    vmovapd 1536(%rdi), %ymm15
6593 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm1 = ymm9[0],ymm15[0],ymm9[3],ymm15[2]
6594 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3]
6595 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6596 ; AVX1-ONLY-NEXT:    vmovapd 1760(%rdi), %ymm1
6597 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6598 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6599 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[3],ymm1[2]
6600 ; AVX1-ONLY-NEXT:    vmovdqa 1664(%rdi), %xmm13
6601 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm13, %xmm1 # 16-byte Folded Reload
6602 ; AVX1-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm13[0,1,2,3,4,5,6,7]
6603 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
6604 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6605 ; AVX1-ONLY-NEXT:    vmovdqa 1888(%rdi), %xmm0
6606 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm0 = xmm12[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
6607 ; AVX1-ONLY-NEXT:    vmovapd 1984(%rdi), %ymm11
6608 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm1 = ymm7[0],ymm11[0],ymm7[3],ymm11[2]
6609 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3]
6610 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6611 ; AVX1-ONLY-NEXT:    vmovapd 2208(%rdi), %ymm12
6612 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm10[0],ymm12[0],ymm10[3],ymm12[2]
6613 ; AVX1-ONLY-NEXT:    vmovdqa 2112(%rdi), %xmm10
6614 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm10, %xmm1 # 16-byte Folded Reload
6615 ; AVX1-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm10[0,1,2,3,4,5,6,7]
6616 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
6617 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6618 ; AVX1-ONLY-NEXT:    vmovdqa 2336(%rdi), %xmm0
6619 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
6620 ; AVX1-ONLY-NEXT:    # xmm0 = mem[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
6621 ; AVX1-ONLY-NEXT:    vmovapd 2432(%rdi), %ymm9
6622 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm1 = ymm3[0],ymm9[0],ymm3[3],ymm9[2]
6623 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3]
6624 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6625 ; AVX1-ONLY-NEXT:    vmovapd 2656(%rdi), %ymm8
6626 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6627 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm0[0],ymm8[0],ymm0[3],ymm8[2]
6628 ; AVX1-ONLY-NEXT:    vmovdqa 2560(%rdi), %xmm7
6629 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7, %xmm1 # 16-byte Folded Reload
6630 ; AVX1-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm7[0,1,2,3,4,5,6,7]
6631 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
6632 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6633 ; AVX1-ONLY-NEXT:    vmovdqa 2784(%rdi), %xmm0
6634 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
6635 ; AVX1-ONLY-NEXT:    # xmm0 = mem[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
6636 ; AVX1-ONLY-NEXT:    vmovapd 2880(%rdi), %ymm5
6637 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm1 = ymm2[0],ymm5[0],ymm2[3],ymm5[2]
6638 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3]
6639 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6640 ; AVX1-ONLY-NEXT:    vmovapd 3104(%rdi), %ymm6
6641 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6642 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm0[0],ymm6[0],ymm0[3],ymm6[2]
6643 ; AVX1-ONLY-NEXT:    vmovdqa 3008(%rdi), %xmm4
6644 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm1 # 16-byte Folded Reload
6645 ; AVX1-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm4[0,1,2,3,4,5,6,7]
6646 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
6647 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6648 ; AVX1-ONLY-NEXT:    vmovdqa 3232(%rdi), %xmm0
6649 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
6650 ; AVX1-ONLY-NEXT:    # xmm0 = mem[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
6651 ; AVX1-ONLY-NEXT:    vmovapd 3328(%rdi), %ymm3
6652 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm2 = ymm14[0],ymm3[0],ymm14[3],ymm3[2]
6653 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm2[2,3]
6654 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6655 ; AVX1-ONLY-NEXT:    vmovapd 3552(%rdi), %ymm2
6656 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6657 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm0[0],ymm2[0],ymm0[3],ymm2[2]
6658 ; AVX1-ONLY-NEXT:    vmovdqa 3456(%rdi), %xmm1
6659 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm14 # 16-byte Folded Reload
6660 ; AVX1-ONLY-NEXT:    # xmm14 = mem[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
6661 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm14[0,1],ymm0[2,3]
6662 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6663 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6664 ; AVX1-ONLY-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
6665 ; AVX1-ONLY-NEXT:    # ymm0 = mem[0,1,2,3,4,5],ymm0[6,7]
6666 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
6667 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm14 = xmm14[0,1],mem[2,3]
6668 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm14[0,1,2,3],ymm0[4,5,6,7]
6669 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6670 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6671 ; AVX1-ONLY-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
6672 ; AVX1-ONLY-NEXT:    # ymm0 = mem[0,1,2,3,4,5],ymm0[6,7]
6673 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
6674 ; AVX1-ONLY-NEXT:    vblendps $3, {{[-0-9]+}}(%r{{[sb]}}p), %xmm14, %xmm14 # 16-byte Folded Reload
6675 ; AVX1-ONLY-NEXT:    # xmm14 = mem[0,1],xmm14[2,3]
6676 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm14[0,1,2,3],ymm0[4,5,6,7]
6677 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6678 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6679 ; AVX1-ONLY-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
6680 ; AVX1-ONLY-NEXT:    # ymm0 = mem[0,1,2,3,4,5],ymm0[6,7]
6681 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
6682 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm14 = xmm14[0,1],mem[2,3]
6683 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm14[0,1,2,3],ymm0[4,5,6,7]
6684 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6685 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6686 ; AVX1-ONLY-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
6687 ; AVX1-ONLY-NEXT:    # ymm0 = mem[0,1,2,3,4,5],ymm0[6,7]
6688 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
6689 ; AVX1-ONLY-NEXT:    vblendps $3, {{[-0-9]+}}(%r{{[sb]}}p), %xmm14, %xmm14 # 16-byte Folded Reload
6690 ; AVX1-ONLY-NEXT:    # xmm14 = mem[0,1],xmm14[2,3]
6691 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm14[0,1,2,3],ymm0[4,5,6,7]
6692 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6693 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6694 ; AVX1-ONLY-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
6695 ; AVX1-ONLY-NEXT:    # ymm0 = mem[0,1,2,3,4,5],ymm0[6,7]
6696 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
6697 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm14 = xmm14[0,1],mem[2,3]
6698 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm14[0,1,2,3],ymm0[4,5,6,7]
6699 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6700 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6701 ; AVX1-ONLY-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
6702 ; AVX1-ONLY-NEXT:    # ymm0 = mem[0,1,2,3,4,5],ymm0[6,7]
6703 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
6704 ; AVX1-ONLY-NEXT:    vblendps $3, {{[-0-9]+}}(%r{{[sb]}}p), %xmm14, %xmm14 # 16-byte Folded Reload
6705 ; AVX1-ONLY-NEXT:    # xmm14 = mem[0,1],xmm14[2,3]
6706 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm14[0,1,2,3],ymm0[4,5,6,7]
6707 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6708 ; AVX1-ONLY-NEXT:    vblendpd $7, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm0 # 32-byte Folded Reload
6709 ; AVX1-ONLY-NEXT:    # ymm0 = mem[0,1,2],ymm15[3]
6710 ; AVX1-ONLY-NEXT:    vmovapd {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
6711 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm14 = xmm14[0],mem[1]
6712 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm15 = ymm14[0,1],ymm0[2,3]
6713 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6714 ; AVX1-ONLY-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
6715 ; AVX1-ONLY-NEXT:    # ymm0 = mem[0,1,2,3,4,5],ymm0[6,7]
6716 ; AVX1-ONLY-NEXT:    vpblendw $15, {{[-0-9]+}}(%r{{[sb]}}p), %xmm13, %xmm13 # 16-byte Folded Reload
6717 ; AVX1-ONLY-NEXT:    # xmm13 = mem[0,1,2,3],xmm13[4,5,6,7]
6718 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm14 = ymm13[0,1,2,3],ymm0[4,5,6,7]
6719 ; AVX1-ONLY-NEXT:    vblendpd $7, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm0 # 32-byte Folded Reload
6720 ; AVX1-ONLY-NEXT:    # ymm0 = mem[0,1,2],ymm11[3]
6721 ; AVX1-ONLY-NEXT:    vmovapd {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload
6722 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm11 = xmm11[0],mem[1]
6723 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm11 = ymm11[0,1],ymm0[2,3]
6724 ; AVX1-ONLY-NEXT:    vblendpd $7, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm0 # 32-byte Folded Reload
6725 ; AVX1-ONLY-NEXT:    # ymm0 = mem[0,1,2],ymm12[3]
6726 ; AVX1-ONLY-NEXT:    vpblendw $15, {{[-0-9]+}}(%r{{[sb]}}p), %xmm10, %xmm10 # 16-byte Folded Reload
6727 ; AVX1-ONLY-NEXT:    # xmm10 = mem[0,1,2,3],xmm10[4,5,6,7]
6728 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm10 = ymm10[0,1],ymm0[2,3]
6729 ; AVX1-ONLY-NEXT:    vblendpd $7, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm0 # 32-byte Folded Reload
6730 ; AVX1-ONLY-NEXT:    # ymm0 = mem[0,1,2],ymm9[3]
6731 ; AVX1-ONLY-NEXT:    vmovapd {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload
6732 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm9 = xmm9[0],mem[1]
6733 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm9 = ymm9[0,1],ymm0[2,3]
6734 ; AVX1-ONLY-NEXT:    vblendpd $7, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm0 # 32-byte Folded Reload
6735 ; AVX1-ONLY-NEXT:    # ymm0 = mem[0,1,2],ymm8[3]
6736 ; AVX1-ONLY-NEXT:    vpblendw $15, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7, %xmm7 # 16-byte Folded Reload
6737 ; AVX1-ONLY-NEXT:    # xmm7 = mem[0,1,2,3],xmm7[4,5,6,7]
6738 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm8 = ymm7[0,1],ymm0[2,3]
6739 ; AVX1-ONLY-NEXT:    vblendpd $7, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm0 # 32-byte Folded Reload
6740 ; AVX1-ONLY-NEXT:    # ymm0 = mem[0,1,2],ymm5[3]
6741 ; AVX1-ONLY-NEXT:    vmovapd {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
6742 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm5 = xmm5[0],mem[1]
6743 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm5 = ymm5[0,1],ymm0[2,3]
6744 ; AVX1-ONLY-NEXT:    vblendpd $7, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm0 # 32-byte Folded Reload
6745 ; AVX1-ONLY-NEXT:    # ymm0 = mem[0,1,2],ymm6[3]
6746 ; AVX1-ONLY-NEXT:    vpblendw $15, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload
6747 ; AVX1-ONLY-NEXT:    # xmm4 = mem[0,1,2,3],xmm4[4,5,6,7]
6748 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm4 = ymm4[0,1],ymm0[2,3]
6749 ; AVX1-ONLY-NEXT:    vblendpd $7, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm0 # 32-byte Folded Reload
6750 ; AVX1-ONLY-NEXT:    # ymm0 = mem[0,1,2],ymm3[3]
6751 ; AVX1-ONLY-NEXT:    vmovapd {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
6752 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm3 = xmm3[0],mem[1]
6753 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm3 = ymm3[0,1],ymm0[2,3]
6754 ; AVX1-ONLY-NEXT:    vblendpd $7, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm0 # 32-byte Folded Reload
6755 ; AVX1-ONLY-NEXT:    # ymm0 = mem[0,1,2],ymm2[3]
6756 ; AVX1-ONLY-NEXT:    vpblendw $15, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
6757 ; AVX1-ONLY-NEXT:    # xmm1 = mem[0,1,2,3],xmm1[4,5,6,7]
6758 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
6759 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6760 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 448(%rsi)
6761 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6762 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 384(%rsi)
6763 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6764 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 320(%rsi)
6765 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6766 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 256(%rsi)
6767 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6768 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 192(%rsi)
6769 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6770 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 128(%rsi)
6771 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6772 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 64(%rsi)
6773 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6774 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, (%rsi)
6775 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6776 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 480(%rsi)
6777 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6778 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 416(%rsi)
6779 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6780 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 352(%rsi)
6781 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6782 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 288(%rsi)
6783 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6784 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 224(%rsi)
6785 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6786 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 160(%rsi)
6787 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6788 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 96(%rsi)
6789 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6790 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 32(%rsi)
6791 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6792 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 448(%rdx)
6793 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6794 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 384(%rdx)
6795 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6796 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 320(%rdx)
6797 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6798 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 256(%rdx)
6799 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6800 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 192(%rdx)
6801 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6802 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 128(%rdx)
6803 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6804 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 64(%rdx)
6805 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6806 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, (%rdx)
6807 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6808 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 480(%rdx)
6809 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6810 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 416(%rdx)
6811 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6812 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 352(%rdx)
6813 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6814 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 288(%rdx)
6815 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6816 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 224(%rdx)
6817 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6818 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 160(%rdx)
6819 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6820 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 96(%rdx)
6821 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6822 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 32(%rdx)
6823 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6824 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, (%rcx)
6825 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6826 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 64(%rcx)
6827 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6828 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 128(%rcx)
6829 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6830 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 192(%rcx)
6831 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6832 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 256(%rcx)
6833 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6834 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 320(%rcx)
6835 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6836 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 384(%rcx)
6837 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6838 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 448(%rcx)
6839 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6840 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 480(%rcx)
6841 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6842 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 416(%rcx)
6843 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6844 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 352(%rcx)
6845 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6846 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 288(%rcx)
6847 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6848 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 224(%rcx)
6849 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6850 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 160(%rcx)
6851 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6852 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 96(%rcx)
6853 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6854 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 32(%rcx)
6855 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6856 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 480(%r8)
6857 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6858 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 448(%r8)
6859 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6860 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 416(%r8)
6861 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6862 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 384(%r8)
6863 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6864 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 352(%r8)
6865 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6866 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 320(%r8)
6867 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6868 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 288(%r8)
6869 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6870 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 256(%r8)
6871 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6872 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 224(%r8)
6873 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6874 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 192(%r8)
6875 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6876 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 160(%r8)
6877 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6878 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 128(%r8)
6879 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6880 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 96(%r8)
6881 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6882 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 64(%r8)
6883 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6884 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 32(%r8)
6885 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6886 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, (%r8)
6887 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6888 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 480(%r9)
6889 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6890 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 448(%r9)
6891 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6892 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 416(%r9)
6893 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6894 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 384(%r9)
6895 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6896 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 352(%r9)
6897 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6898 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 320(%r9)
6899 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6900 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 288(%r9)
6901 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6902 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 256(%r9)
6903 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6904 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 224(%r9)
6905 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6906 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 192(%r9)
6907 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6908 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 160(%r9)
6909 ; AVX1-ONLY-NEXT:    vmovups (%rsp), %ymm1 # 32-byte Reload
6910 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 128(%r9)
6911 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6912 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 96(%r9)
6913 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6914 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 64(%r9)
6915 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6916 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 32(%r9)
6917 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6918 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, (%r9)
6919 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
6920 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6921 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 480(%rax)
6922 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6923 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 448(%rax)
6924 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6925 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 416(%rax)
6926 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6927 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 384(%rax)
6928 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6929 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 352(%rax)
6930 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6931 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 320(%rax)
6932 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6933 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 288(%rax)
6934 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6935 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 256(%rax)
6936 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6937 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 224(%rax)
6938 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6939 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 192(%rax)
6940 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6941 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 160(%rax)
6942 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6943 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 128(%rax)
6944 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6945 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 96(%rax)
6946 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6947 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 64(%rax)
6948 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6949 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 32(%rax)
6950 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6951 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, (%rax)
6952 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
6953 ; AVX1-ONLY-NEXT:    vmovapd %ymm0, 480(%rax)
6954 ; AVX1-ONLY-NEXT:    vmovapd %ymm3, 448(%rax)
6955 ; AVX1-ONLY-NEXT:    vmovapd %ymm4, 416(%rax)
6956 ; AVX1-ONLY-NEXT:    vmovapd %ymm5, 384(%rax)
6957 ; AVX1-ONLY-NEXT:    vmovapd %ymm8, 352(%rax)
6958 ; AVX1-ONLY-NEXT:    vmovapd %ymm9, 320(%rax)
6959 ; AVX1-ONLY-NEXT:    vmovapd %ymm10, 288(%rax)
6960 ; AVX1-ONLY-NEXT:    vmovapd %ymm11, 256(%rax)
6961 ; AVX1-ONLY-NEXT:    vmovaps %ymm14, 224(%rax)
6962 ; AVX1-ONLY-NEXT:    vmovapd %ymm15, 192(%rax)
6963 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6964 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 160(%rax)
6965 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6966 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 128(%rax)
6967 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6968 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 96(%rax)
6969 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6970 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 64(%rax)
6971 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6972 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 32(%rax)
6973 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6974 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, (%rax)
6975 ; AVX1-ONLY-NEXT:    addq $4232, %rsp # imm = 0x1088
6976 ; AVX1-ONLY-NEXT:    vzeroupper
6977 ; AVX1-ONLY-NEXT:    retq
6979 ; AVX2-ONLY-LABEL: load_i64_stride7_vf64:
6980 ; AVX2-ONLY:       # %bb.0:
6981 ; AVX2-ONLY-NEXT:    subq $3928, %rsp # imm = 0xF58
6982 ; AVX2-ONLY-NEXT:    vmovdqa 1216(%rdi), %ymm4
6983 ; AVX2-ONLY-NEXT:    vmovdqa 768(%rdi), %ymm5
6984 ; AVX2-ONLY-NEXT:    vmovdqa 320(%rdi), %ymm6
6985 ; AVX2-ONLY-NEXT:    vmovdqa 384(%rdi), %xmm0
6986 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6987 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
6988 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm6[0,1,2,3,4,5],ymm0[6,7]
6989 ; AVX2-ONLY-NEXT:    vmovdqa 224(%rdi), %xmm9
6990 ; AVX2-ONLY-NEXT:    vmovdqa 272(%rdi), %xmm1
6991 ; AVX2-ONLY-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6992 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = xmm9[0,1],xmm1[2,3]
6993 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
6994 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6995 ; AVX2-ONLY-NEXT:    vmovdqa 832(%rdi), %xmm0
6996 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6997 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
6998 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm5[0,1,2,3,4,5],ymm0[6,7]
6999 ; AVX2-ONLY-NEXT:    vmovdqa 672(%rdi), %xmm10
7000 ; AVX2-ONLY-NEXT:    vmovdqa 720(%rdi), %xmm1
7001 ; AVX2-ONLY-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7002 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = xmm10[0,1],xmm1[2,3]
7003 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7004 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7005 ; AVX2-ONLY-NEXT:    vmovdqa 1280(%rdi), %xmm0
7006 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7007 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
7008 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm4[0,1,2,3,4,5],ymm0[6,7]
7009 ; AVX2-ONLY-NEXT:    vmovdqa 1120(%rdi), %xmm11
7010 ; AVX2-ONLY-NEXT:    vmovdqa 1168(%rdi), %xmm1
7011 ; AVX2-ONLY-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7012 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = xmm11[0,1],xmm1[2,3]
7013 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7014 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7015 ; AVX2-ONLY-NEXT:    vmovdqa 1664(%rdi), %ymm7
7016 ; AVX2-ONLY-NEXT:    vmovdqa 1728(%rdi), %xmm0
7017 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7018 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
7019 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm7[0,1,2,3,4,5],ymm0[6,7]
7020 ; AVX2-ONLY-NEXT:    vmovdqa 1568(%rdi), %xmm12
7021 ; AVX2-ONLY-NEXT:    vmovdqa 1616(%rdi), %xmm1
7022 ; AVX2-ONLY-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7023 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = xmm12[0,1],xmm1[2,3]
7024 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7025 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7026 ; AVX2-ONLY-NEXT:    vmovdqa 2112(%rdi), %ymm8
7027 ; AVX2-ONLY-NEXT:    vmovdqa 2176(%rdi), %xmm0
7028 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7029 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
7030 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm8[0,1,2,3,4,5],ymm0[6,7]
7031 ; AVX2-ONLY-NEXT:    vmovdqa 2016(%rdi), %xmm2
7032 ; AVX2-ONLY-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7033 ; AVX2-ONLY-NEXT:    vmovdqa 2064(%rdi), %xmm1
7034 ; AVX2-ONLY-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7035 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
7036 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7037 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7038 ; AVX2-ONLY-NEXT:    vmovdqa 2560(%rdi), %ymm13
7039 ; AVX2-ONLY-NEXT:    vmovdqa 2624(%rdi), %xmm0
7040 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7041 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
7042 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm13[0,1,2,3,4,5],ymm0[6,7]
7043 ; AVX2-ONLY-NEXT:    vmovdqa 2464(%rdi), %xmm2
7044 ; AVX2-ONLY-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7045 ; AVX2-ONLY-NEXT:    vmovdqa 2512(%rdi), %xmm1
7046 ; AVX2-ONLY-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7047 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
7048 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7049 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7050 ; AVX2-ONLY-NEXT:    vmovdqa 3008(%rdi), %ymm14
7051 ; AVX2-ONLY-NEXT:    vmovdqa 3072(%rdi), %xmm0
7052 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7053 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
7054 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm14[0,1,2,3,4,5],ymm0[6,7]
7055 ; AVX2-ONLY-NEXT:    vmovdqa 2912(%rdi), %xmm2
7056 ; AVX2-ONLY-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7057 ; AVX2-ONLY-NEXT:    vmovdqa 2960(%rdi), %xmm1
7058 ; AVX2-ONLY-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7059 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
7060 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7061 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7062 ; AVX2-ONLY-NEXT:    vmovaps 3456(%rdi), %ymm1
7063 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7064 ; AVX2-ONLY-NEXT:    vmovaps 3520(%rdi), %xmm0
7065 ; AVX2-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7066 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
7067 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7068 ; AVX2-ONLY-NEXT:    vmovaps 3360(%rdi), %xmm2
7069 ; AVX2-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7070 ; AVX2-ONLY-NEXT:    vmovaps 3408(%rdi), %xmm1
7071 ; AVX2-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7072 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
7073 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7074 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7075 ; AVX2-ONLY-NEXT:    vmovaps 96(%rdi), %ymm1
7076 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7077 ; AVX2-ONLY-NEXT:    vmovaps 160(%rdi), %xmm0
7078 ; AVX2-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7079 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
7080 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7081 ; AVX2-ONLY-NEXT:    vmovaps 48(%rdi), %xmm1
7082 ; AVX2-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7083 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = mem[0,1],xmm1[2,3]
7084 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7085 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7086 ; AVX2-ONLY-NEXT:    vmovdqa 544(%rdi), %ymm1
7087 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7088 ; AVX2-ONLY-NEXT:    vmovdqa 608(%rdi), %xmm0
7089 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7090 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
7091 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7092 ; AVX2-ONLY-NEXT:    vmovdqa 448(%rdi), %xmm0
7093 ; AVX2-ONLY-NEXT:    vmovdqa 496(%rdi), %xmm2
7094 ; AVX2-ONLY-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7095 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm2 = xmm0[0,1],xmm2[2,3]
7096 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
7097 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7098 ; AVX2-ONLY-NEXT:    vmovdqa 992(%rdi), %ymm1
7099 ; AVX2-ONLY-NEXT:    vmovdqa 1056(%rdi), %xmm2
7100 ; AVX2-ONLY-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7101 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
7102 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm1[0,1,2,3,4,5],ymm2[6,7]
7103 ; AVX2-ONLY-NEXT:    vmovdqa 896(%rdi), %xmm15
7104 ; AVX2-ONLY-NEXT:    vmovdqa %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7105 ; AVX2-ONLY-NEXT:    vmovdqa 944(%rdi), %xmm3
7106 ; AVX2-ONLY-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7107 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm3 = xmm15[0,1],xmm3[2,3]
7108 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
7109 ; AVX2-ONLY-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7110 ; AVX2-ONLY-NEXT:    vmovdqa 1440(%rdi), %ymm3
7111 ; AVX2-ONLY-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7112 ; AVX2-ONLY-NEXT:    vmovdqa 1504(%rdi), %xmm2
7113 ; AVX2-ONLY-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7114 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
7115 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3,4,5],ymm2[6,7]
7116 ; AVX2-ONLY-NEXT:    vmovdqa 1344(%rdi), %xmm15
7117 ; AVX2-ONLY-NEXT:    vmovdqa %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7118 ; AVX2-ONLY-NEXT:    vmovdqa 1392(%rdi), %xmm3
7119 ; AVX2-ONLY-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7120 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm3 = xmm15[0,1],xmm3[2,3]
7121 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
7122 ; AVX2-ONLY-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7123 ; AVX2-ONLY-NEXT:    vmovdqa 1888(%rdi), %ymm3
7124 ; AVX2-ONLY-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7125 ; AVX2-ONLY-NEXT:    vmovdqa 1952(%rdi), %xmm2
7126 ; AVX2-ONLY-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7127 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
7128 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3,4,5],ymm2[6,7]
7129 ; AVX2-ONLY-NEXT:    vmovdqa 1792(%rdi), %xmm15
7130 ; AVX2-ONLY-NEXT:    vmovdqa %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7131 ; AVX2-ONLY-NEXT:    vmovdqa 1840(%rdi), %xmm3
7132 ; AVX2-ONLY-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7133 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm3 = xmm15[0,1],xmm3[2,3]
7134 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
7135 ; AVX2-ONLY-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7136 ; AVX2-ONLY-NEXT:    vmovdqa 2336(%rdi), %ymm3
7137 ; AVX2-ONLY-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7138 ; AVX2-ONLY-NEXT:    vmovdqa 2400(%rdi), %xmm2
7139 ; AVX2-ONLY-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7140 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
7141 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3,4,5],ymm2[6,7]
7142 ; AVX2-ONLY-NEXT:    vmovdqa 2240(%rdi), %xmm15
7143 ; AVX2-ONLY-NEXT:    vmovdqa %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7144 ; AVX2-ONLY-NEXT:    vmovdqa 2288(%rdi), %xmm3
7145 ; AVX2-ONLY-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7146 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm3 = xmm15[0,1],xmm3[2,3]
7147 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
7148 ; AVX2-ONLY-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7149 ; AVX2-ONLY-NEXT:    vmovdqa 2784(%rdi), %ymm3
7150 ; AVX2-ONLY-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7151 ; AVX2-ONLY-NEXT:    vmovdqa 2848(%rdi), %xmm2
7152 ; AVX2-ONLY-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7153 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
7154 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3,4,5],ymm2[6,7]
7155 ; AVX2-ONLY-NEXT:    vmovdqa 2688(%rdi), %xmm15
7156 ; AVX2-ONLY-NEXT:    vmovdqa %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7157 ; AVX2-ONLY-NEXT:    vmovdqa 2736(%rdi), %xmm3
7158 ; AVX2-ONLY-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7159 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm3 = xmm15[0,1],xmm3[2,3]
7160 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
7161 ; AVX2-ONLY-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7162 ; AVX2-ONLY-NEXT:    vmovdqa 3232(%rdi), %ymm3
7163 ; AVX2-ONLY-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7164 ; AVX2-ONLY-NEXT:    vmovdqa 3296(%rdi), %xmm2
7165 ; AVX2-ONLY-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7166 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
7167 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3,4,5],ymm2[6,7]
7168 ; AVX2-ONLY-NEXT:    vmovdqa 3136(%rdi), %xmm15
7169 ; AVX2-ONLY-NEXT:    vmovdqa %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7170 ; AVX2-ONLY-NEXT:    vmovdqa 3184(%rdi), %xmm3
7171 ; AVX2-ONLY-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7172 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm3 = xmm15[0,1],xmm3[2,3]
7173 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
7174 ; AVX2-ONLY-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7175 ; AVX2-ONLY-NEXT:    vmovdqa 288(%rdi), %xmm2
7176 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm2 = xmm9[8,9,10,11,12,13,14,15],xmm2[0,1,2,3,4,5,6,7]
7177 ; AVX2-ONLY-NEXT:    vmovdqa 384(%rdi), %ymm3
7178 ; AVX2-ONLY-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7179 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm3 = ymm6[8,9,10,11,12,13,14,15],ymm3[0,1,2,3,4,5,6,7],ymm6[24,25,26,27,28,29,30,31],ymm3[16,17,18,19,20,21,22,23]
7180 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
7181 ; AVX2-ONLY-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7182 ; AVX2-ONLY-NEXT:    vmovdqa 736(%rdi), %xmm2
7183 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm2 = xmm10[8,9,10,11,12,13,14,15],xmm2[0,1,2,3,4,5,6,7]
7184 ; AVX2-ONLY-NEXT:    vmovdqa 832(%rdi), %ymm3
7185 ; AVX2-ONLY-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7186 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm3 = ymm5[8,9,10,11,12,13,14,15],ymm3[0,1,2,3,4,5,6,7],ymm5[24,25,26,27,28,29,30,31],ymm3[16,17,18,19,20,21,22,23]
7187 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
7188 ; AVX2-ONLY-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7189 ; AVX2-ONLY-NEXT:    vmovdqa 1184(%rdi), %xmm2
7190 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm2 = xmm11[8,9,10,11,12,13,14,15],xmm2[0,1,2,3,4,5,6,7]
7191 ; AVX2-ONLY-NEXT:    vmovdqa 1280(%rdi), %ymm3
7192 ; AVX2-ONLY-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7193 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm3 = ymm4[8,9,10,11,12,13,14,15],ymm3[0,1,2,3,4,5,6,7],ymm4[24,25,26,27,28,29,30,31],ymm3[16,17,18,19,20,21,22,23]
7194 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
7195 ; AVX2-ONLY-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7196 ; AVX2-ONLY-NEXT:    vmovdqa 1632(%rdi), %xmm2
7197 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm2 = xmm12[8,9,10,11,12,13,14,15],xmm2[0,1,2,3,4,5,6,7]
7198 ; AVX2-ONLY-NEXT:    vmovdqa 1728(%rdi), %ymm15
7199 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm3 = ymm7[8,9,10,11,12,13,14,15],ymm15[0,1,2,3,4,5,6,7],ymm7[24,25,26,27,28,29,30,31],ymm15[16,17,18,19,20,21,22,23]
7200 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
7201 ; AVX2-ONLY-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7202 ; AVX2-ONLY-NEXT:    vmovdqa 2080(%rdi), %xmm2
7203 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
7204 ; AVX2-ONLY-NEXT:    # xmm2 = mem[8,9,10,11,12,13,14,15],xmm2[0,1,2,3,4,5,6,7]
7205 ; AVX2-ONLY-NEXT:    vmovdqa 2176(%rdi), %ymm12
7206 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm3 = ymm8[8,9,10,11,12,13,14,15],ymm12[0,1,2,3,4,5,6,7],ymm8[24,25,26,27,28,29,30,31],ymm12[16,17,18,19,20,21,22,23]
7207 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
7208 ; AVX2-ONLY-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7209 ; AVX2-ONLY-NEXT:    vmovdqa 2528(%rdi), %xmm2
7210 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
7211 ; AVX2-ONLY-NEXT:    # xmm2 = mem[8,9,10,11,12,13,14,15],xmm2[0,1,2,3,4,5,6,7]
7212 ; AVX2-ONLY-NEXT:    vmovdqa 2624(%rdi), %ymm11
7213 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm3 = ymm13[8,9,10,11,12,13,14,15],ymm11[0,1,2,3,4,5,6,7],ymm13[24,25,26,27,28,29,30,31],ymm11[16,17,18,19,20,21,22,23]
7214 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
7215 ; AVX2-ONLY-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7216 ; AVX2-ONLY-NEXT:    vmovdqa 2976(%rdi), %xmm2
7217 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
7218 ; AVX2-ONLY-NEXT:    # xmm2 = mem[8,9,10,11,12,13,14,15],xmm2[0,1,2,3,4,5,6,7]
7219 ; AVX2-ONLY-NEXT:    vmovdqa 3072(%rdi), %ymm10
7220 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm3 = ymm14[8,9,10,11,12,13,14,15],ymm10[0,1,2,3,4,5,6,7],ymm14[24,25,26,27,28,29,30,31],ymm10[16,17,18,19,20,21,22,23]
7221 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
7222 ; AVX2-ONLY-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7223 ; AVX2-ONLY-NEXT:    vmovdqa 3424(%rdi), %xmm2
7224 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
7225 ; AVX2-ONLY-NEXT:    # xmm2 = mem[8,9,10,11,12,13,14,15],xmm2[0,1,2,3,4,5,6,7]
7226 ; AVX2-ONLY-NEXT:    vmovdqa 3520(%rdi), %ymm9
7227 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm3 # 32-byte Folded Reload
7228 ; AVX2-ONLY-NEXT:    # ymm3 = mem[8,9,10,11,12,13,14,15],ymm9[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm9[16,17,18,19,20,21,22,23]
7229 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
7230 ; AVX2-ONLY-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7231 ; AVX2-ONLY-NEXT:    vmovdqa 160(%rdi), %ymm2
7232 ; AVX2-ONLY-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7233 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
7234 ; AVX2-ONLY-NEXT:    # ymm2 = mem[8,9,10,11,12,13,14,15],ymm2[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm2[16,17,18,19,20,21,22,23]
7235 ; AVX2-ONLY-NEXT:    vmovdqa 64(%rdi), %xmm3
7236 ; AVX2-ONLY-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7237 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm3 = mem[8,9,10,11,12,13,14,15],xmm3[0,1,2,3,4,5,6,7]
7238 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
7239 ; AVX2-ONLY-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7240 ; AVX2-ONLY-NEXT:    vmovdqa 608(%rdi), %ymm2
7241 ; AVX2-ONLY-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7242 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
7243 ; AVX2-ONLY-NEXT:    # ymm2 = mem[8,9,10,11,12,13,14,15],ymm2[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm2[16,17,18,19,20,21,22,23]
7244 ; AVX2-ONLY-NEXT:    vmovdqa 512(%rdi), %xmm3
7245 ; AVX2-ONLY-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7246 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm0 = xmm0[8,9,10,11,12,13,14,15],xmm3[0,1,2,3,4,5,6,7]
7247 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
7248 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7249 ; AVX2-ONLY-NEXT:    vmovdqa 1056(%rdi), %ymm0
7250 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7251 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm0 = ymm1[8,9,10,11,12,13,14,15],ymm0[0,1,2,3,4,5,6,7],ymm1[24,25,26,27,28,29,30,31],ymm0[16,17,18,19,20,21,22,23]
7252 ; AVX2-ONLY-NEXT:    vmovdqa 960(%rdi), %xmm1
7253 ; AVX2-ONLY-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7254 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
7255 ; AVX2-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
7256 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7257 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7258 ; AVX2-ONLY-NEXT:    vmovdqa 1504(%rdi), %ymm0
7259 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7260 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
7261 ; AVX2-ONLY-NEXT:    # ymm0 = mem[8,9,10,11,12,13,14,15],ymm0[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm0[16,17,18,19,20,21,22,23]
7262 ; AVX2-ONLY-NEXT:    vmovdqa 1408(%rdi), %xmm13
7263 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm13, %xmm1 # 16-byte Folded Reload
7264 ; AVX2-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm13[0,1,2,3,4,5,6,7]
7265 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7266 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7267 ; AVX2-ONLY-NEXT:    vmovdqa 1952(%rdi), %ymm8
7268 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm0 # 32-byte Folded Reload
7269 ; AVX2-ONLY-NEXT:    # ymm0 = mem[8,9,10,11,12,13,14,15],ymm8[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm8[16,17,18,19,20,21,22,23]
7270 ; AVX2-ONLY-NEXT:    vmovdqa 1856(%rdi), %xmm7
7271 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7, %xmm1 # 16-byte Folded Reload
7272 ; AVX2-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm7[0,1,2,3,4,5,6,7]
7273 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7274 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7275 ; AVX2-ONLY-NEXT:    vmovdqa 2400(%rdi), %ymm6
7276 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm0 # 32-byte Folded Reload
7277 ; AVX2-ONLY-NEXT:    # ymm0 = mem[8,9,10,11,12,13,14,15],ymm6[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm6[16,17,18,19,20,21,22,23]
7278 ; AVX2-ONLY-NEXT:    vmovdqa 2304(%rdi), %xmm5
7279 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm1 # 16-byte Folded Reload
7280 ; AVX2-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm5[0,1,2,3,4,5,6,7]
7281 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7282 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7283 ; AVX2-ONLY-NEXT:    vmovdqa 2848(%rdi), %ymm4
7284 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm0 # 32-byte Folded Reload
7285 ; AVX2-ONLY-NEXT:    # ymm0 = mem[8,9,10,11,12,13,14,15],ymm4[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm4[16,17,18,19,20,21,22,23]
7286 ; AVX2-ONLY-NEXT:    vmovdqa 2752(%rdi), %xmm3
7287 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm1 # 16-byte Folded Reload
7288 ; AVX2-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm3[0,1,2,3,4,5,6,7]
7289 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7290 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7291 ; AVX2-ONLY-NEXT:    vmovdqa 3296(%rdi), %ymm2
7292 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm0 # 32-byte Folded Reload
7293 ; AVX2-ONLY-NEXT:    # ymm0 = mem[8,9,10,11,12,13,14,15],ymm2[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm2[16,17,18,19,20,21,22,23]
7294 ; AVX2-ONLY-NEXT:    vmovdqa 3200(%rdi), %xmm1
7295 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm14 # 16-byte Folded Reload
7296 ; AVX2-ONLY-NEXT:    # xmm14 = mem[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
7297 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm14[0,1,2,3],ymm0[4,5,6,7]
7298 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7299 ; AVX2-ONLY-NEXT:    vbroadcastsd 352(%rdi), %ymm0
7300 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
7301 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
7302 ; AVX2-ONLY-NEXT:    vmovaps 240(%rdi), %xmm14
7303 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm14 = xmm14[0,1],mem[2,3]
7304 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm14[0,1,2,3],ymm0[4,5,6,7]
7305 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7306 ; AVX2-ONLY-NEXT:    vbroadcastsd 800(%rdi), %ymm0
7307 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
7308 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
7309 ; AVX2-ONLY-NEXT:    vmovaps 688(%rdi), %xmm14
7310 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm14 = xmm14[0,1],mem[2,3]
7311 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm14[0,1,2,3],ymm0[4,5,6,7]
7312 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7313 ; AVX2-ONLY-NEXT:    vbroadcastsd 1248(%rdi), %ymm0
7314 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
7315 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
7316 ; AVX2-ONLY-NEXT:    vmovaps 1136(%rdi), %xmm14
7317 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm14 = xmm14[0,1],mem[2,3]
7318 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm14[0,1,2,3],ymm0[4,5,6,7]
7319 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7320 ; AVX2-ONLY-NEXT:    vpbroadcastq 1696(%rdi), %ymm0
7321 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm15[1],ymm0[3],ymm15[3]
7322 ; AVX2-ONLY-NEXT:    vmovdqa 1584(%rdi), %xmm14
7323 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm14 = xmm14[0,1],mem[2,3]
7324 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm14[0,1,2,3],ymm0[4,5,6,7]
7325 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7326 ; AVX2-ONLY-NEXT:    vpbroadcastq 2144(%rdi), %ymm0
7327 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm12[1],ymm0[3],ymm12[3]
7328 ; AVX2-ONLY-NEXT:    vmovdqa 2032(%rdi), %xmm12
7329 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm12 = xmm12[0,1],mem[2,3]
7330 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm12[0,1,2,3],ymm0[4,5,6,7]
7331 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7332 ; AVX2-ONLY-NEXT:    vpbroadcastq 2592(%rdi), %ymm0
7333 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm11[1],ymm0[3],ymm11[3]
7334 ; AVX2-ONLY-NEXT:    vmovdqa 2480(%rdi), %xmm11
7335 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm11 = xmm11[0,1],mem[2,3]
7336 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm11[0,1,2,3],ymm0[4,5,6,7]
7337 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7338 ; AVX2-ONLY-NEXT:    vpbroadcastq 3040(%rdi), %ymm0
7339 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm10[1],ymm0[3],ymm10[3]
7340 ; AVX2-ONLY-NEXT:    vmovdqa 2928(%rdi), %xmm10
7341 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm10 = xmm10[0,1],mem[2,3]
7342 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm0[4,5,6,7]
7343 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7344 ; AVX2-ONLY-NEXT:    vpbroadcastq 3488(%rdi), %ymm0
7345 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm9[1],ymm0[3],ymm9[3]
7346 ; AVX2-ONLY-NEXT:    vmovdqa 3376(%rdi), %xmm9
7347 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm9 = xmm9[0,1],mem[2,3]
7348 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm9[0,1,2,3],ymm0[4,5,6,7]
7349 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7350 ; AVX2-ONLY-NEXT:    vpbroadcastq 3264(%rdi), %ymm0
7351 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm2[1],ymm0[3],ymm2[3]
7352 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = mem[0,1],xmm1[2,3]
7353 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7354 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7355 ; AVX2-ONLY-NEXT:    vpbroadcastq 2816(%rdi), %ymm0
7356 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm4[1],ymm0[3],ymm4[3]
7357 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = mem[0,1],xmm3[2,3]
7358 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7359 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7360 ; AVX2-ONLY-NEXT:    vpbroadcastq 2368(%rdi), %ymm0
7361 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm6[1],ymm0[3],ymm6[3]
7362 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = mem[0,1],xmm5[2,3]
7363 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7364 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7365 ; AVX2-ONLY-NEXT:    vpbroadcastq 1920(%rdi), %ymm0
7366 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm8[1],ymm0[3],ymm8[3]
7367 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = mem[0,1],xmm7[2,3]
7368 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7369 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7370 ; AVX2-ONLY-NEXT:    vpbroadcastq 1472(%rdi), %ymm0
7371 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
7372 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
7373 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = mem[0,1],xmm13[2,3]
7374 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7375 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7376 ; AVX2-ONLY-NEXT:    vbroadcastsd 1024(%rdi), %ymm0
7377 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
7378 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
7379 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7380 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = mem[0,1],xmm1[2,3]
7381 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7382 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7383 ; AVX2-ONLY-NEXT:    vbroadcastsd 576(%rdi), %ymm0
7384 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
7385 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
7386 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7387 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = mem[0,1],xmm1[2,3]
7388 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7389 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7390 ; AVX2-ONLY-NEXT:    vbroadcastsd 128(%rdi), %ymm0
7391 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
7392 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
7393 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7394 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = mem[0,1],xmm1[2,3]
7395 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7396 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7397 ; AVX2-ONLY-NEXT:    vmovdqa 64(%rdi), %ymm0
7398 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm0 = mem[8,9,10,11,12,13,14,15],ymm0[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm0[16,17,18,19,20,21,22,23]
7399 ; AVX2-ONLY-NEXT:    vmovdqa 192(%rdi), %xmm13
7400 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = mem[8,9,10,11,12,13,14,15],xmm13[0,1,2,3,4,5,6,7]
7401 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm1
7402 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm0 = ymm0[2,3],ymm1[2,3]
7403 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7404 ; AVX2-ONLY-NEXT:    vmovdqa 288(%rdi), %ymm0
7405 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm0 = mem[8,9,10,11,12,13,14,15],ymm0[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm0[16,17,18,19,20,21,22,23]
7406 ; AVX2-ONLY-NEXT:    vmovdqa 416(%rdi), %xmm12
7407 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = mem[8,9,10,11,12,13,14,15],xmm12[0,1,2,3,4,5,6,7]
7408 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm1
7409 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm0 = ymm0[2,3],ymm1[2,3]
7410 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7411 ; AVX2-ONLY-NEXT:    vmovdqa 512(%rdi), %ymm0
7412 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm0 = mem[8,9,10,11,12,13,14,15],ymm0[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm0[16,17,18,19,20,21,22,23]
7413 ; AVX2-ONLY-NEXT:    vmovdqa 640(%rdi), %xmm11
7414 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = mem[8,9,10,11,12,13,14,15],xmm11[0,1,2,3,4,5,6,7]
7415 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm1
7416 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm0 = ymm0[2,3],ymm1[2,3]
7417 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7418 ; AVX2-ONLY-NEXT:    vmovdqa 736(%rdi), %ymm0
7419 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm0 = mem[8,9,10,11,12,13,14,15],ymm0[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm0[16,17,18,19,20,21,22,23]
7420 ; AVX2-ONLY-NEXT:    vmovdqa 864(%rdi), %xmm10
7421 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = mem[8,9,10,11,12,13,14,15],xmm10[0,1,2,3,4,5,6,7]
7422 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm1
7423 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm0 = ymm0[2,3],ymm1[2,3]
7424 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7425 ; AVX2-ONLY-NEXT:    vmovdqa 960(%rdi), %ymm0
7426 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm0 = mem[8,9,10,11,12,13,14,15],ymm0[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm0[16,17,18,19,20,21,22,23]
7427 ; AVX2-ONLY-NEXT:    vmovdqa 1088(%rdi), %xmm9
7428 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = mem[8,9,10,11,12,13,14,15],xmm9[0,1,2,3,4,5,6,7]
7429 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm1
7430 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm0 = ymm0[2,3],ymm1[2,3]
7431 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7432 ; AVX2-ONLY-NEXT:    vmovdqa 1184(%rdi), %ymm0
7433 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm0 = mem[8,9,10,11,12,13,14,15],ymm0[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm0[16,17,18,19,20,21,22,23]
7434 ; AVX2-ONLY-NEXT:    vmovdqa 1312(%rdi), %xmm8
7435 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = mem[8,9,10,11,12,13,14,15],xmm8[0,1,2,3,4,5,6,7]
7436 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm1
7437 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm0 = ymm0[2,3],ymm1[2,3]
7438 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7439 ; AVX2-ONLY-NEXT:    vmovdqa 1408(%rdi), %ymm0
7440 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm0 = mem[8,9,10,11,12,13,14,15],ymm0[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm0[16,17,18,19,20,21,22,23]
7441 ; AVX2-ONLY-NEXT:    vmovdqa 1536(%rdi), %xmm7
7442 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = mem[8,9,10,11,12,13,14,15],xmm7[0,1,2,3,4,5,6,7]
7443 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm1
7444 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm0 = ymm0[2,3],ymm1[2,3]
7445 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7446 ; AVX2-ONLY-NEXT:    vmovdqa 1632(%rdi), %ymm0
7447 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm0 = mem[8,9,10,11,12,13,14,15],ymm0[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm0[16,17,18,19,20,21,22,23]
7448 ; AVX2-ONLY-NEXT:    vmovdqa 1760(%rdi), %xmm6
7449 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = mem[8,9,10,11,12,13,14,15],xmm6[0,1,2,3,4,5,6,7]
7450 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm1
7451 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm0 = ymm0[2,3],ymm1[2,3]
7452 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7453 ; AVX2-ONLY-NEXT:    vmovdqa 1856(%rdi), %ymm0
7454 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm0 = mem[8,9,10,11,12,13,14,15],ymm0[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm0[16,17,18,19,20,21,22,23]
7455 ; AVX2-ONLY-NEXT:    vmovdqa 1984(%rdi), %xmm5
7456 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = mem[8,9,10,11,12,13,14,15],xmm5[0,1,2,3,4,5,6,7]
7457 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm1
7458 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm0 = ymm0[2,3],ymm1[2,3]
7459 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7460 ; AVX2-ONLY-NEXT:    vmovdqa 2080(%rdi), %ymm0
7461 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm0 = mem[8,9,10,11,12,13,14,15],ymm0[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm0[16,17,18,19,20,21,22,23]
7462 ; AVX2-ONLY-NEXT:    vmovdqa 2208(%rdi), %xmm3
7463 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = mem[8,9,10,11,12,13,14,15],xmm3[0,1,2,3,4,5,6,7]
7464 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm1
7465 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm0 = ymm0[2,3],ymm1[2,3]
7466 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7467 ; AVX2-ONLY-NEXT:    vmovdqa 2304(%rdi), %ymm0
7468 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm0 = mem[8,9,10,11,12,13,14,15],ymm0[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm0[16,17,18,19,20,21,22,23]
7469 ; AVX2-ONLY-NEXT:    vmovdqa 2432(%rdi), %xmm2
7470 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = mem[8,9,10,11,12,13,14,15],xmm2[0,1,2,3,4,5,6,7]
7471 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm1
7472 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm0 = ymm0[2,3],ymm1[2,3]
7473 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7474 ; AVX2-ONLY-NEXT:    vmovdqa 2528(%rdi), %ymm0
7475 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm1 = mem[8,9,10,11,12,13,14,15],ymm0[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm0[16,17,18,19,20,21,22,23]
7476 ; AVX2-ONLY-NEXT:    vmovdqa 2656(%rdi), %xmm14
7477 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm4 = mem[8,9,10,11,12,13,14,15],xmm14[0,1,2,3,4,5,6,7]
7478 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm4
7479 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm1 = ymm1[2,3],ymm4[2,3]
7480 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7481 ; AVX2-ONLY-NEXT:    vmovdqa 2752(%rdi), %ymm1
7482 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm1 = mem[8,9,10,11,12,13,14,15],ymm1[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm1[16,17,18,19,20,21,22,23]
7483 ; AVX2-ONLY-NEXT:    vmovdqa 2880(%rdi), %xmm0
7484 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7485 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm4 = mem[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
7486 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm4
7487 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm1 = ymm1[2,3],ymm4[2,3]
7488 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7489 ; AVX2-ONLY-NEXT:    vmovdqa 2976(%rdi), %ymm1
7490 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm1 = mem[8,9,10,11,12,13,14,15],ymm1[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm1[16,17,18,19,20,21,22,23]
7491 ; AVX2-ONLY-NEXT:    vmovdqa 3104(%rdi), %xmm4
7492 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm15 = mem[8,9,10,11,12,13,14,15],xmm4[0,1,2,3,4,5,6,7]
7493 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm15, %ymm0, %ymm15
7494 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm1 = ymm1[2,3],ymm15[2,3]
7495 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7496 ; AVX2-ONLY-NEXT:    vmovdqa 3200(%rdi), %ymm1
7497 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm15 = mem[8,9,10,11,12,13,14,15],ymm1[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm1[16,17,18,19,20,21,22,23]
7498 ; AVX2-ONLY-NEXT:    vmovdqa 3328(%rdi), %xmm0
7499 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7500 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = mem[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
7501 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm1
7502 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm1 = ymm15[2,3],ymm1[2,3]
7503 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7504 ; AVX2-ONLY-NEXT:    vmovdqa 3424(%rdi), %ymm1
7505 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm1 = mem[8,9,10,11,12,13,14,15],ymm1[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm1[16,17,18,19,20,21,22,23]
7506 ; AVX2-ONLY-NEXT:    vmovdqa 3552(%rdi), %xmm0
7507 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7508 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm15 = mem[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
7509 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm15, %ymm0, %ymm15
7510 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm1 = ymm1[2,3],ymm15[2,3]
7511 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7512 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm13, %ymm0, %ymm1
7513 ; AVX2-ONLY-NEXT:    vmovdqa 128(%rdi), %ymm15
7514 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm15[0,1,2,3,4,5],ymm1[6,7]
7515 ; AVX2-ONLY-NEXT:    vmovdqa 32(%rdi), %xmm13
7516 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm13 = xmm13[0,1],mem[2,3]
7517 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm13[0,1,2,3],ymm1[4,5,6,7]
7518 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7519 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm12, %ymm0, %ymm1
7520 ; AVX2-ONLY-NEXT:    vmovdqa 352(%rdi), %ymm13
7521 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm13[0,1,2,3,4,5],ymm1[6,7]
7522 ; AVX2-ONLY-NEXT:    vmovdqa 256(%rdi), %xmm0
7523 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7524 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm12 = xmm0[0,1],mem[2,3]
7525 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
7526 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7527 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm11, %ymm0, %ymm1
7528 ; AVX2-ONLY-NEXT:    vmovdqa 576(%rdi), %ymm12
7529 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3,4,5],ymm1[6,7]
7530 ; AVX2-ONLY-NEXT:    vmovdqa 480(%rdi), %xmm0
7531 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7532 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm11 = xmm0[0,1],mem[2,3]
7533 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm11[0,1,2,3],ymm1[4,5,6,7]
7534 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7535 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm10, %ymm0, %ymm1
7536 ; AVX2-ONLY-NEXT:    vmovdqa 800(%rdi), %ymm11
7537 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm11[0,1,2,3,4,5],ymm1[6,7]
7538 ; AVX2-ONLY-NEXT:    vmovdqa 704(%rdi), %xmm0
7539 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7540 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm10 = xmm0[0,1],mem[2,3]
7541 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm10[0,1,2,3],ymm1[4,5,6,7]
7542 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7543 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm9, %ymm0, %ymm1
7544 ; AVX2-ONLY-NEXT:    vmovdqa 1024(%rdi), %ymm10
7545 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm10[0,1,2,3,4,5],ymm1[6,7]
7546 ; AVX2-ONLY-NEXT:    vmovdqa 928(%rdi), %xmm0
7547 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7548 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm9 = xmm0[0,1],mem[2,3]
7549 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm9[0,1,2,3],ymm1[4,5,6,7]
7550 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7551 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm8, %ymm0, %ymm1
7552 ; AVX2-ONLY-NEXT:    vmovdqa 1248(%rdi), %ymm9
7553 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm9[0,1,2,3,4,5],ymm1[6,7]
7554 ; AVX2-ONLY-NEXT:    vmovdqa 1152(%rdi), %xmm0
7555 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7556 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm8 = xmm0[0,1],mem[2,3]
7557 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm8[0,1,2,3],ymm1[4,5,6,7]
7558 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7559 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm7, %ymm0, %ymm1
7560 ; AVX2-ONLY-NEXT:    vmovdqa 1472(%rdi), %ymm8
7561 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm8[0,1,2,3,4,5],ymm1[6,7]
7562 ; AVX2-ONLY-NEXT:    vmovdqa 1376(%rdi), %xmm0
7563 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7564 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm7 = xmm0[0,1],mem[2,3]
7565 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm7[0,1,2,3],ymm1[4,5,6,7]
7566 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7567 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm6, %ymm0, %ymm1
7568 ; AVX2-ONLY-NEXT:    vmovdqa 1696(%rdi), %ymm7
7569 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm7[0,1,2,3,4,5],ymm1[6,7]
7570 ; AVX2-ONLY-NEXT:    vmovdqa 1600(%rdi), %xmm0
7571 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7572 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm6 = xmm0[0,1],mem[2,3]
7573 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm6[0,1,2,3],ymm1[4,5,6,7]
7574 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7575 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm5, %ymm0, %ymm1
7576 ; AVX2-ONLY-NEXT:    vmovdqa 1920(%rdi), %ymm6
7577 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm6[0,1,2,3,4,5],ymm1[6,7]
7578 ; AVX2-ONLY-NEXT:    vmovdqa 1824(%rdi), %xmm0
7579 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7580 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm5 = xmm0[0,1],mem[2,3]
7581 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm5[0,1,2,3],ymm1[4,5,6,7]
7582 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7583 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm1
7584 ; AVX2-ONLY-NEXT:    vmovdqa 2144(%rdi), %ymm5
7585 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm5[0,1,2,3,4,5],ymm1[6,7]
7586 ; AVX2-ONLY-NEXT:    vmovdqa 2048(%rdi), %xmm0
7587 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7588 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm3 = xmm0[0,1],mem[2,3]
7589 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm1[4,5,6,7]
7590 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7591 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm1
7592 ; AVX2-ONLY-NEXT:    vmovdqa 2368(%rdi), %ymm3
7593 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm3[0,1,2,3,4,5],ymm1[6,7]
7594 ; AVX2-ONLY-NEXT:    vmovdqa 2272(%rdi), %xmm0
7595 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7596 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm2 = xmm0[0,1],mem[2,3]
7597 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
7598 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7599 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm14, %ymm0, %ymm0
7600 ; AVX2-ONLY-NEXT:    vmovdqa 2592(%rdi), %ymm1
7601 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7602 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7603 ; AVX2-ONLY-NEXT:    vmovdqa 2496(%rdi), %xmm1
7604 ; AVX2-ONLY-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7605 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = xmm1[0,1],mem[2,3]
7606 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7607 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7608 ; AVX2-ONLY-NEXT:    vinserti128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
7609 ; AVX2-ONLY-NEXT:    vmovdqa 2816(%rdi), %ymm2
7610 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3,4,5],ymm0[6,7]
7611 ; AVX2-ONLY-NEXT:    vmovdqa 2720(%rdi), %xmm1
7612 ; AVX2-ONLY-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7613 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = xmm1[0,1],mem[2,3]
7614 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7615 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7616 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm0
7617 ; AVX2-ONLY-NEXT:    vmovdqa 3040(%rdi), %ymm1
7618 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7619 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7620 ; AVX2-ONLY-NEXT:    vmovdqa 2944(%rdi), %xmm1
7621 ; AVX2-ONLY-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7622 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = xmm1[0,1],mem[2,3]
7623 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7624 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7625 ; AVX2-ONLY-NEXT:    vinserti128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
7626 ; AVX2-ONLY-NEXT:    vmovdqa 3264(%rdi), %ymm1
7627 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, (%rsp) # 32-byte Spill
7628 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7629 ; AVX2-ONLY-NEXT:    vmovdqa 3168(%rdi), %xmm1
7630 ; AVX2-ONLY-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7631 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = xmm1[0,1],mem[2,3]
7632 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7633 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7634 ; AVX2-ONLY-NEXT:    vinserti128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
7635 ; AVX2-ONLY-NEXT:    vmovdqa 3488(%rdi), %ymm1
7636 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7637 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7638 ; AVX2-ONLY-NEXT:    vmovdqa 3392(%rdi), %xmm1
7639 ; AVX2-ONLY-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7640 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = xmm1[0,1],mem[2,3]
7641 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7642 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7643 ; AVX2-ONLY-NEXT:    vmovdqa 192(%rdi), %ymm0
7644 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7645 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm0 = ymm15[8,9,10,11,12,13,14,15],ymm0[0,1,2,3,4,5,6,7],ymm15[24,25,26,27,28,29,30,31],ymm0[16,17,18,19,20,21,22,23]
7646 ; AVX2-ONLY-NEXT:    vmovdqa 96(%rdi), %xmm1
7647 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = mem[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
7648 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7649 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7650 ; AVX2-ONLY-NEXT:    vmovdqa 416(%rdi), %ymm0
7651 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7652 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm0 = ymm13[8,9,10,11,12,13,14,15],ymm0[0,1,2,3,4,5,6,7],ymm13[24,25,26,27,28,29,30,31],ymm0[16,17,18,19,20,21,22,23]
7653 ; AVX2-ONLY-NEXT:    vmovdqa 320(%rdi), %xmm1
7654 ; AVX2-ONLY-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7655 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
7656 ; AVX2-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
7657 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7658 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7659 ; AVX2-ONLY-NEXT:    vmovdqa 544(%rdi), %xmm0
7660 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
7661 ; AVX2-ONLY-NEXT:    # xmm0 = mem[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
7662 ; AVX2-ONLY-NEXT:    vmovdqa 640(%rdi), %ymm1
7663 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7664 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm1 = ymm12[8,9,10,11,12,13,14,15],ymm1[0,1,2,3,4,5,6,7],ymm12[24,25,26,27,28,29,30,31],ymm1[16,17,18,19,20,21,22,23]
7665 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
7666 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7667 ; AVX2-ONLY-NEXT:    vmovdqa 864(%rdi), %ymm0
7668 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7669 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm0 = ymm11[8,9,10,11,12,13,14,15],ymm0[0,1,2,3,4,5,6,7],ymm11[24,25,26,27,28,29,30,31],ymm0[16,17,18,19,20,21,22,23]
7670 ; AVX2-ONLY-NEXT:    vmovdqa 768(%rdi), %xmm1
7671 ; AVX2-ONLY-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7672 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
7673 ; AVX2-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
7674 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7675 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7676 ; AVX2-ONLY-NEXT:    vmovdqa 992(%rdi), %xmm0
7677 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
7678 ; AVX2-ONLY-NEXT:    # xmm0 = mem[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
7679 ; AVX2-ONLY-NEXT:    vmovdqa 1088(%rdi), %ymm1
7680 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7681 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm1 = ymm10[8,9,10,11,12,13,14,15],ymm1[0,1,2,3,4,5,6,7],ymm10[24,25,26,27,28,29,30,31],ymm1[16,17,18,19,20,21,22,23]
7682 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
7683 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7684 ; AVX2-ONLY-NEXT:    vmovdqa 1312(%rdi), %ymm0
7685 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7686 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm0 = ymm9[8,9,10,11,12,13,14,15],ymm0[0,1,2,3,4,5,6,7],ymm9[24,25,26,27,28,29,30,31],ymm0[16,17,18,19,20,21,22,23]
7687 ; AVX2-ONLY-NEXT:    vmovdqa 1216(%rdi), %xmm1
7688 ; AVX2-ONLY-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7689 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
7690 ; AVX2-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
7691 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7692 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7693 ; AVX2-ONLY-NEXT:    vmovdqa 1440(%rdi), %xmm0
7694 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
7695 ; AVX2-ONLY-NEXT:    # xmm0 = mem[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
7696 ; AVX2-ONLY-NEXT:    vmovdqa 1536(%rdi), %ymm14
7697 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm1 = ymm8[8,9,10,11,12,13,14,15],ymm14[0,1,2,3,4,5,6,7],ymm8[24,25,26,27,28,29,30,31],ymm14[16,17,18,19,20,21,22,23]
7698 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
7699 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7700 ; AVX2-ONLY-NEXT:    vmovdqa 1760(%rdi), %ymm0
7701 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7702 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm0 = ymm7[8,9,10,11,12,13,14,15],ymm0[0,1,2,3,4,5,6,7],ymm7[24,25,26,27,28,29,30,31],ymm0[16,17,18,19,20,21,22,23]
7703 ; AVX2-ONLY-NEXT:    vmovdqa 1664(%rdi), %xmm13
7704 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm13, %xmm1 # 16-byte Folded Reload
7705 ; AVX2-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm13[0,1,2,3,4,5,6,7]
7706 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7707 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7708 ; AVX2-ONLY-NEXT:    vmovdqa 1888(%rdi), %xmm0
7709 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
7710 ; AVX2-ONLY-NEXT:    # xmm0 = mem[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
7711 ; AVX2-ONLY-NEXT:    vmovdqa 1984(%rdi), %ymm10
7712 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm1 = ymm6[8,9,10,11,12,13,14,15],ymm10[0,1,2,3,4,5,6,7],ymm6[24,25,26,27,28,29,30,31],ymm10[16,17,18,19,20,21,22,23]
7713 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
7714 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7715 ; AVX2-ONLY-NEXT:    vmovdqa 2208(%rdi), %ymm12
7716 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm0 = ymm5[8,9,10,11,12,13,14,15],ymm12[0,1,2,3,4,5,6,7],ymm5[24,25,26,27,28,29,30,31],ymm12[16,17,18,19,20,21,22,23]
7717 ; AVX2-ONLY-NEXT:    vmovdqa 2112(%rdi), %xmm11
7718 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm11, %xmm1 # 16-byte Folded Reload
7719 ; AVX2-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm11[0,1,2,3,4,5,6,7]
7720 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7721 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7722 ; AVX2-ONLY-NEXT:    vmovdqa 2336(%rdi), %xmm0
7723 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
7724 ; AVX2-ONLY-NEXT:    # xmm0 = mem[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
7725 ; AVX2-ONLY-NEXT:    vmovdqa 2432(%rdi), %ymm8
7726 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm1 = ymm3[8,9,10,11,12,13,14,15],ymm8[0,1,2,3,4,5,6,7],ymm3[24,25,26,27,28,29,30,31],ymm8[16,17,18,19,20,21,22,23]
7727 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
7728 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7729 ; AVX2-ONLY-NEXT:    vmovdqa 2656(%rdi), %ymm9
7730 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm0 # 32-byte Folded Reload
7731 ; AVX2-ONLY-NEXT:    # ymm0 = mem[8,9,10,11,12,13,14,15],ymm9[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm9[16,17,18,19,20,21,22,23]
7732 ; AVX2-ONLY-NEXT:    vmovdqa 2560(%rdi), %xmm7
7733 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7, %xmm1 # 16-byte Folded Reload
7734 ; AVX2-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm7[0,1,2,3,4,5,6,7]
7735 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7736 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7737 ; AVX2-ONLY-NEXT:    vmovdqa 2784(%rdi), %xmm0
7738 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
7739 ; AVX2-ONLY-NEXT:    # xmm0 = mem[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
7740 ; AVX2-ONLY-NEXT:    vmovdqa 2880(%rdi), %ymm4
7741 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} ymm1 = ymm2[8,9,10,11,12,13,14,15],ymm4[0,1,2,3,4,5,6,7],ymm2[24,25,26,27,28,29,30,31],ymm4[16,17,18,19,20,21,22,23]
7742 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
7743 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7744 ; AVX2-ONLY-NEXT:    vmovdqa 3104(%rdi), %ymm6
7745 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm0 # 32-byte Folded Reload
7746 ; AVX2-ONLY-NEXT:    # ymm0 = mem[8,9,10,11,12,13,14,15],ymm6[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm6[16,17,18,19,20,21,22,23]
7747 ; AVX2-ONLY-NEXT:    vmovdqa 3008(%rdi), %xmm5
7748 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm1 # 16-byte Folded Reload
7749 ; AVX2-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm5[0,1,2,3,4,5,6,7]
7750 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7751 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7752 ; AVX2-ONLY-NEXT:    vmovdqa 3232(%rdi), %xmm0
7753 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm1 # 16-byte Folded Reload
7754 ; AVX2-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
7755 ; AVX2-ONLY-NEXT:    vmovdqa 3328(%rdi), %ymm3
7756 ; AVX2-ONLY-NEXT:    vpalignr $8, (%rsp), %ymm3, %ymm2 # 32-byte Folded Reload
7757 ; AVX2-ONLY-NEXT:    # ymm2 = mem[8,9,10,11,12,13,14,15],ymm3[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm3[16,17,18,19,20,21,22,23]
7758 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm2[4,5,6,7]
7759 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, (%rsp) # 32-byte Spill
7760 ; AVX2-ONLY-NEXT:    vmovdqa 3552(%rdi), %ymm2
7761 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm0 # 32-byte Folded Reload
7762 ; AVX2-ONLY-NEXT:    # ymm0 = mem[8,9,10,11,12,13,14,15],ymm2[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm2[16,17,18,19,20,21,22,23]
7763 ; AVX2-ONLY-NEXT:    vmovdqa 3456(%rdi), %xmm1
7764 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm15 # 16-byte Folded Reload
7765 ; AVX2-ONLY-NEXT:    # xmm15 = mem[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
7766 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm15[0,1,2,3],ymm0[4,5,6,7]
7767 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7768 ; AVX2-ONLY-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 16-byte Folded Reload
7769 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
7770 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
7771 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
7772 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm15 = xmm15[0,1],mem[2,3]
7773 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm15[0,1,2,3],ymm0[4,5,6,7]
7774 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7775 ; AVX2-ONLY-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 16-byte Folded Reload
7776 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
7777 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
7778 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
7779 ; AVX2-ONLY-NEXT:    vblendps $3, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload
7780 ; AVX2-ONLY-NEXT:    # xmm15 = mem[0,1],xmm15[2,3]
7781 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm15[0,1,2,3],ymm0[4,5,6,7]
7782 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7783 ; AVX2-ONLY-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 16-byte Folded Reload
7784 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
7785 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
7786 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
7787 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm15 = xmm15[0,1],mem[2,3]
7788 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm15[0,1,2,3],ymm0[4,5,6,7]
7789 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7790 ; AVX2-ONLY-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 16-byte Folded Reload
7791 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
7792 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
7793 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
7794 ; AVX2-ONLY-NEXT:    vblendps $3, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload
7795 ; AVX2-ONLY-NEXT:    # xmm15 = mem[0,1],xmm15[2,3]
7796 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm15[0,1,2,3],ymm0[4,5,6,7]
7797 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7798 ; AVX2-ONLY-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 16-byte Folded Reload
7799 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
7800 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
7801 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
7802 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm15 = xmm15[0,1],mem[2,3]
7803 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm15[0,1,2,3],ymm0[4,5,6,7]
7804 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7805 ; AVX2-ONLY-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 16-byte Folded Reload
7806 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
7807 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
7808 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
7809 ; AVX2-ONLY-NEXT:    vblendps $3, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload
7810 ; AVX2-ONLY-NEXT:    # xmm15 = mem[0,1],xmm15[2,3]
7811 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm15[0,1,2,3],ymm0[4,5,6,7]
7812 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7813 ; AVX2-ONLY-NEXT:    vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 16-byte Folded Reload
7814 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm14[1],ymm0[3],ymm14[3]
7815 ; AVX2-ONLY-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
7816 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm14 = xmm14[0,1],mem[2,3]
7817 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm14[0,1,2,3],ymm0[4,5,6,7]
7818 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7819 ; AVX2-ONLY-NEXT:    vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 16-byte Folded Reload
7820 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
7821 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
7822 ; AVX2-ONLY-NEXT:    vpblendd $3, {{[-0-9]+}}(%r{{[sb]}}p), %xmm13, %xmm13 # 16-byte Folded Reload
7823 ; AVX2-ONLY-NEXT:    # xmm13 = mem[0,1],xmm13[2,3]
7824 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm15 = ymm13[0,1,2,3],ymm0[4,5,6,7]
7825 ; AVX2-ONLY-NEXT:    vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 16-byte Folded Reload
7826 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm10[1],ymm0[3],ymm10[3]
7827 ; AVX2-ONLY-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
7828 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm10 = xmm10[0,1],mem[2,3]
7829 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm13 = ymm10[0,1,2,3],ymm0[4,5,6,7]
7830 ; AVX2-ONLY-NEXT:    vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 16-byte Folded Reload
7831 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm12[1],ymm0[3],ymm12[3]
7832 ; AVX2-ONLY-NEXT:    vpblendd $3, {{[-0-9]+}}(%r{{[sb]}}p), %xmm11, %xmm10 # 16-byte Folded Reload
7833 ; AVX2-ONLY-NEXT:    # xmm10 = mem[0,1],xmm11[2,3]
7834 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm11 = ymm10[0,1,2,3],ymm0[4,5,6,7]
7835 ; AVX2-ONLY-NEXT:    vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 16-byte Folded Reload
7836 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm8[1],ymm0[3],ymm8[3]
7837 ; AVX2-ONLY-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
7838 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm8 = xmm8[0,1],mem[2,3]
7839 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm10 = ymm8[0,1,2,3],ymm0[4,5,6,7]
7840 ; AVX2-ONLY-NEXT:    vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 16-byte Folded Reload
7841 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm9[1],ymm0[3],ymm9[3]
7842 ; AVX2-ONLY-NEXT:    vpblendd $3, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7, %xmm7 # 16-byte Folded Reload
7843 ; AVX2-ONLY-NEXT:    # xmm7 = mem[0,1],xmm7[2,3]
7844 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3],ymm0[4,5,6,7]
7845 ; AVX2-ONLY-NEXT:    vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 16-byte Folded Reload
7846 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm4[1],ymm0[3],ymm4[3]
7847 ; AVX2-ONLY-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
7848 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm4 = xmm4[0,1],mem[2,3]
7849 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm8 = ymm4[0,1,2,3],ymm0[4,5,6,7]
7850 ; AVX2-ONLY-NEXT:    vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 16-byte Folded Reload
7851 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm6[1],ymm0[3],ymm6[3]
7852 ; AVX2-ONLY-NEXT:    vpblendd $3, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm4 # 16-byte Folded Reload
7853 ; AVX2-ONLY-NEXT:    # xmm4 = mem[0,1],xmm5[2,3]
7854 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm0[4,5,6,7]
7855 ; AVX2-ONLY-NEXT:    vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 16-byte Folded Reload
7856 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm3[1],ymm0[3],ymm3[3]
7857 ; AVX2-ONLY-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
7858 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm3 = xmm3[0,1],mem[2,3]
7859 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm0[4,5,6,7]
7860 ; AVX2-ONLY-NEXT:    vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 16-byte Folded Reload
7861 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm2 = ymm3[1],ymm2[1],ymm3[3],ymm2[3]
7862 ; AVX2-ONLY-NEXT:    vpblendd $3, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
7863 ; AVX2-ONLY-NEXT:    # xmm1 = mem[0,1],xmm1[2,3]
7864 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm14 = ymm1[0,1,2,3],ymm2[4,5,6,7]
7865 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7866 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 448(%rsi)
7867 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7868 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 384(%rsi)
7869 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7870 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 320(%rsi)
7871 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7872 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 256(%rsi)
7873 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7874 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 192(%rsi)
7875 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7876 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 128(%rsi)
7877 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7878 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 64(%rsi)
7879 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7880 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, (%rsi)
7881 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7882 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 480(%rsi)
7883 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7884 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 416(%rsi)
7885 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7886 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 352(%rsi)
7887 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7888 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 288(%rsi)
7889 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7890 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 224(%rsi)
7891 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7892 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 160(%rsi)
7893 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7894 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 96(%rsi)
7895 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7896 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 32(%rsi)
7897 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7898 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 448(%rdx)
7899 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7900 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 384(%rdx)
7901 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7902 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 320(%rdx)
7903 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7904 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 256(%rdx)
7905 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7906 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 192(%rdx)
7907 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7908 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 128(%rdx)
7909 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7910 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 64(%rdx)
7911 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7912 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, (%rdx)
7913 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7914 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 480(%rdx)
7915 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7916 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 416(%rdx)
7917 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7918 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 352(%rdx)
7919 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7920 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 288(%rdx)
7921 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7922 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 224(%rdx)
7923 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7924 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 160(%rdx)
7925 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7926 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 96(%rdx)
7927 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7928 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 32(%rdx)
7929 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7930 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, (%rcx)
7931 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7932 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 64(%rcx)
7933 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7934 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 128(%rcx)
7935 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7936 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 192(%rcx)
7937 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7938 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 256(%rcx)
7939 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7940 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 320(%rcx)
7941 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7942 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 384(%rcx)
7943 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7944 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 448(%rcx)
7945 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7946 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 480(%rcx)
7947 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7948 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 416(%rcx)
7949 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7950 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 352(%rcx)
7951 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7952 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 288(%rcx)
7953 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7954 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 224(%rcx)
7955 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7956 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 160(%rcx)
7957 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7958 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 96(%rcx)
7959 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7960 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 32(%rcx)
7961 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7962 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 480(%r8)
7963 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7964 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 448(%r8)
7965 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7966 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 416(%r8)
7967 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7968 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 384(%r8)
7969 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7970 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 352(%r8)
7971 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7972 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 320(%r8)
7973 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7974 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 288(%r8)
7975 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7976 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 256(%r8)
7977 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7978 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 224(%r8)
7979 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7980 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 192(%r8)
7981 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7982 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 160(%r8)
7983 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7984 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 128(%r8)
7985 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7986 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 96(%r8)
7987 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7988 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 64(%r8)
7989 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7990 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 32(%r8)
7991 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7992 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, (%r8)
7993 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7994 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 480(%r9)
7995 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7996 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 448(%r9)
7997 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7998 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 416(%r9)
7999 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8000 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 384(%r9)
8001 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8002 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 352(%r9)
8003 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8004 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 320(%r9)
8005 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8006 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 288(%r9)
8007 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8008 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 256(%r9)
8009 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8010 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 224(%r9)
8011 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8012 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 192(%r9)
8013 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8014 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 160(%r9)
8015 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8016 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 128(%r9)
8017 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8018 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 96(%r9)
8019 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8020 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 64(%r9)
8021 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8022 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 32(%r9)
8023 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8024 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, (%r9)
8025 ; AVX2-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
8026 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8027 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 480(%rax)
8028 ; AVX2-ONLY-NEXT:    vmovups (%rsp), %ymm1 # 32-byte Reload
8029 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 448(%rax)
8030 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8031 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 416(%rax)
8032 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8033 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 384(%rax)
8034 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8035 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 352(%rax)
8036 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8037 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 320(%rax)
8038 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8039 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 288(%rax)
8040 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8041 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 256(%rax)
8042 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8043 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 224(%rax)
8044 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8045 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 192(%rax)
8046 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8047 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 160(%rax)
8048 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8049 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 128(%rax)
8050 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8051 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 96(%rax)
8052 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8053 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 64(%rax)
8054 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8055 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 32(%rax)
8056 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8057 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, (%rax)
8058 ; AVX2-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
8059 ; AVX2-ONLY-NEXT:    vmovdqa %ymm14, 480(%rax)
8060 ; AVX2-ONLY-NEXT:    vmovdqa %ymm0, 448(%rax)
8061 ; AVX2-ONLY-NEXT:    vmovdqa %ymm4, 416(%rax)
8062 ; AVX2-ONLY-NEXT:    vmovdqa %ymm8, 384(%rax)
8063 ; AVX2-ONLY-NEXT:    vmovdqa %ymm7, 352(%rax)
8064 ; AVX2-ONLY-NEXT:    vmovdqa %ymm10, 320(%rax)
8065 ; AVX2-ONLY-NEXT:    vmovdqa %ymm11, 288(%rax)
8066 ; AVX2-ONLY-NEXT:    vmovdqa %ymm13, 256(%rax)
8067 ; AVX2-ONLY-NEXT:    vmovdqa %ymm15, 224(%rax)
8068 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8069 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 192(%rax)
8070 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8071 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 160(%rax)
8072 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8073 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 128(%rax)
8074 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8075 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 96(%rax)
8076 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8077 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 64(%rax)
8078 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8079 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 32(%rax)
8080 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8081 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, (%rax)
8082 ; AVX2-ONLY-NEXT:    addq $3928, %rsp # imm = 0xF58
8083 ; AVX2-ONLY-NEXT:    vzeroupper
8084 ; AVX2-ONLY-NEXT:    retq
8086 ; AVX512F-LABEL: load_i64_stride7_vf64:
8087 ; AVX512F:       # %bb.0:
8088 ; AVX512F-NEXT:    subq $7624, %rsp # imm = 0x1DC8
8089 ; AVX512F-NEXT:    vmovdqa64 3328(%rdi), %zmm16
8090 ; AVX512F-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8091 ; AVX512F-NEXT:    vmovdqa64 3264(%rdi), %zmm8
8092 ; AVX512F-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8093 ; AVX512F-NEXT:    vmovdqa64 3008(%rdi), %zmm19
8094 ; AVX512F-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8095 ; AVX512F-NEXT:    vmovdqa64 2944(%rdi), %zmm20
8096 ; AVX512F-NEXT:    vmovdqa64 2880(%rdi), %zmm2
8097 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8098 ; AVX512F-NEXT:    vmovdqa64 2816(%rdi), %zmm1
8099 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8100 ; AVX512F-NEXT:    vmovdqa64 2752(%rdi), %zmm18
8101 ; AVX512F-NEXT:    vmovdqu64 %zmm18, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8102 ; AVX512F-NEXT:    vmovdqa64 2688(%rdi), %zmm7
8103 ; AVX512F-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8104 ; AVX512F-NEXT:    vmovdqa64 2432(%rdi), %zmm17
8105 ; AVX512F-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8106 ; AVX512F-NEXT:    vmovdqa64 2368(%rdi), %zmm9
8107 ; AVX512F-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8108 ; AVX512F-NEXT:    vmovdqa64 1984(%rdi), %zmm11
8109 ; AVX512F-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8110 ; AVX512F-NEXT:    vmovdqa64 1920(%rdi), %zmm3
8111 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8112 ; AVX512F-NEXT:    vmovdqa64 1536(%rdi), %zmm12
8113 ; AVX512F-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8114 ; AVX512F-NEXT:    vmovdqa64 1472(%rdi), %zmm13
8115 ; AVX512F-NEXT:    vmovdqu64 %zmm13, (%rsp) # 64-byte Spill
8116 ; AVX512F-NEXT:    vmovdqa64 1088(%rdi), %zmm14
8117 ; AVX512F-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8118 ; AVX512F-NEXT:    vmovdqa64 1024(%rdi), %zmm4
8119 ; AVX512F-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8120 ; AVX512F-NEXT:    vmovdqa64 640(%rdi), %zmm10
8121 ; AVX512F-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8122 ; AVX512F-NEXT:    vmovdqa64 576(%rdi), %zmm6
8123 ; AVX512F-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8124 ; AVX512F-NEXT:    vmovdqa64 192(%rdi), %zmm15
8125 ; AVX512F-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8126 ; AVX512F-NEXT:    vmovdqa64 128(%rdi), %zmm5
8127 ; AVX512F-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8128 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [14,0,0,7,14,0,0,7]
8129 ; AVX512F-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
8130 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm0, %zmm1
8131 ; AVX512F-NEXT:    vmovdqa 2704(%rdi), %xmm2
8132 ; AVX512F-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0,1],mem[2,3]
8133 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm2, %zmm1, %zmm1
8134 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8135 ; AVX512F-NEXT:    vpermt2q %zmm10, %zmm0, %zmm6
8136 ; AVX512F-NEXT:    vmovdqa 464(%rdi), %xmm2
8137 ; AVX512F-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0,1],mem[2,3]
8138 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm2, %zmm6, %zmm1
8139 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8140 ; AVX512F-NEXT:    vmovdqa64 %zmm5, %zmm1
8141 ; AVX512F-NEXT:    vpermt2q %zmm15, %zmm0, %zmm1
8142 ; AVX512F-NEXT:    vmovdqa 16(%rdi), %xmm2
8143 ; AVX512F-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0,1],mem[2,3]
8144 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm2, %zmm1, %zmm1
8145 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8146 ; AVX512F-NEXT:    vmovdqa64 %zmm13, %zmm1
8147 ; AVX512F-NEXT:    vpermt2q %zmm12, %zmm0, %zmm1
8148 ; AVX512F-NEXT:    vmovdqa 1360(%rdi), %xmm2
8149 ; AVX512F-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0,1],mem[2,3]
8150 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm2, %zmm1, %zmm1
8151 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8152 ; AVX512F-NEXT:    vmovdqa64 %zmm4, %zmm1
8153 ; AVX512F-NEXT:    vpermt2q %zmm14, %zmm0, %zmm1
8154 ; AVX512F-NEXT:    vmovdqa 912(%rdi), %xmm2
8155 ; AVX512F-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0,1],mem[2,3]
8156 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm2, %zmm1, %zmm1
8157 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8158 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm1
8159 ; AVX512F-NEXT:    vpermt2q %zmm17, %zmm0, %zmm1
8160 ; AVX512F-NEXT:    vmovdqa 2256(%rdi), %xmm2
8161 ; AVX512F-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0,1],mem[2,3]
8162 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm2, %zmm1, %zmm1
8163 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8164 ; AVX512F-NEXT:    vmovdqa64 %zmm3, %zmm1
8165 ; AVX512F-NEXT:    vpermt2q %zmm11, %zmm0, %zmm1
8166 ; AVX512F-NEXT:    vmovdqa 1808(%rdi), %xmm2
8167 ; AVX512F-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0,1],mem[2,3]
8168 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm2, %zmm1, %zmm1
8169 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8170 ; AVX512F-NEXT:    vpermi2q %zmm16, %zmm8, %zmm0
8171 ; AVX512F-NEXT:    vmovdqa 3152(%rdi), %xmm1
8172 ; AVX512F-NEXT:    vpblendd {{.*#+}} xmm1 = xmm1[0,1],mem[2,3]
8173 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm1, %zmm0, %zmm0
8174 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8175 ; AVX512F-NEXT:    vinserti128 $1, 2880(%rdi), %ymm0, %ymm1
8176 ; AVX512F-NEXT:    vmovdqa 2816(%rdi), %ymm0
8177 ; AVX512F-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8178 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm1 = ymm0[0,1,2,3,4,5],ymm1[6,7]
8179 ; AVX512F-NEXT:    vmovdqa {{.*#+}} xmm9 = [4,11]
8180 ; AVX512F-NEXT:    vpermt2q %zmm18, %zmm9, %zmm7
8181 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm1 = ymm7[0,1,2,3],ymm1[4,5,6,7]
8182 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm11 = [0,7,14,0,0,7,14,0]
8183 ; AVX512F-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3]
8184 ; AVX512F-NEXT:    vmovdqa64 %zmm20, %zmm12
8185 ; AVX512F-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8186 ; AVX512F-NEXT:    vmovdqa64 %zmm20, %zmm2
8187 ; AVX512F-NEXT:    vpermt2q %zmm19, %zmm11, %zmm2
8188 ; AVX512F-NEXT:    vmovdqa64 3072(%rdi), %zmm3
8189 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8190 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [4,5,6,13,4,5,6,13]
8191 ; AVX512F-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
8192 ; AVX512F-NEXT:    vpermt2q %zmm3, %zmm4, %zmm2
8193 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm1, %zmm2, %zmm1
8194 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8195 ; AVX512F-NEXT:    vinserti128 $1, 640(%rdi), %ymm0, %ymm2
8196 ; AVX512F-NEXT:    vmovdqa 576(%rdi), %ymm0
8197 ; AVX512F-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8198 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm2 = ymm0[0,1,2,3,4,5],ymm2[6,7]
8199 ; AVX512F-NEXT:    vmovdqa64 512(%rdi), %zmm6
8200 ; AVX512F-NEXT:    vmovdqa64 448(%rdi), %zmm3
8201 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8202 ; AVX512F-NEXT:    vpermt2q %zmm6, %zmm9, %zmm3
8203 ; AVX512F-NEXT:    vmovdqa64 %zmm6, %zmm16
8204 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
8205 ; AVX512F-NEXT:    vmovdqa64 768(%rdi), %zmm31
8206 ; AVX512F-NEXT:    vmovdqa64 704(%rdi), %zmm3
8207 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8208 ; AVX512F-NEXT:    vpermt2q %zmm31, %zmm11, %zmm3
8209 ; AVX512F-NEXT:    vmovdqa64 832(%rdi), %zmm5
8210 ; AVX512F-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8211 ; AVX512F-NEXT:    vpermt2q %zmm5, %zmm4, %zmm3
8212 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm2, %zmm3, %zmm2
8213 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8214 ; AVX512F-NEXT:    vinserti128 $1, 192(%rdi), %ymm0, %ymm3
8215 ; AVX512F-NEXT:    vmovdqa 128(%rdi), %ymm2
8216 ; AVX512F-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8217 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm3 = ymm2[0,1,2,3,4,5],ymm3[6,7]
8218 ; AVX512F-NEXT:    vmovdqa64 64(%rdi), %zmm8
8219 ; AVX512F-NEXT:    vmovdqa64 (%rdi), %zmm2
8220 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm5
8221 ; AVX512F-NEXT:    vpermt2q %zmm8, %zmm9, %zmm5
8222 ; AVX512F-NEXT:    vmovdqa64 %zmm8, %zmm23
8223 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm3 = ymm5[0,1,2,3],ymm3[4,5,6,7]
8224 ; AVX512F-NEXT:    vmovdqa64 320(%rdi), %zmm13
8225 ; AVX512F-NEXT:    vmovdqa64 256(%rdi), %zmm6
8226 ; AVX512F-NEXT:    vmovdqa64 %zmm6, %zmm5
8227 ; AVX512F-NEXT:    vmovdqa64 %zmm6, %zmm24
8228 ; AVX512F-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8229 ; AVX512F-NEXT:    vpermt2q %zmm13, %zmm11, %zmm5
8230 ; AVX512F-NEXT:    vmovdqa64 384(%rdi), %zmm6
8231 ; AVX512F-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8232 ; AVX512F-NEXT:    vpermt2q %zmm6, %zmm4, %zmm5
8233 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm3, %zmm5, %zmm3
8234 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8235 ; AVX512F-NEXT:    vinserti128 $1, 1536(%rdi), %ymm0, %ymm5
8236 ; AVX512F-NEXT:    vmovdqa 1472(%rdi), %ymm3
8237 ; AVX512F-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8238 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm5 = ymm3[0,1,2,3,4,5],ymm5[6,7]
8239 ; AVX512F-NEXT:    vmovdqa64 1408(%rdi), %zmm3
8240 ; AVX512F-NEXT:    vmovdqa64 1344(%rdi), %zmm7
8241 ; AVX512F-NEXT:    vmovdqa64 %zmm7, %zmm6
8242 ; AVX512F-NEXT:    vpermt2q %zmm3, %zmm9, %zmm6
8243 ; AVX512F-NEXT:    vmovdqa64 %zmm3, %zmm19
8244 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm5[4,5,6,7]
8245 ; AVX512F-NEXT:    vmovdqa64 1664(%rdi), %zmm17
8246 ; AVX512F-NEXT:    vmovdqa64 1600(%rdi), %zmm8
8247 ; AVX512F-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8248 ; AVX512F-NEXT:    vpermt2q %zmm17, %zmm11, %zmm8
8249 ; AVX512F-NEXT:    vmovdqa64 1728(%rdi), %zmm3
8250 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8251 ; AVX512F-NEXT:    vpermt2q %zmm3, %zmm4, %zmm8
8252 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm6, %zmm8, %zmm5
8253 ; AVX512F-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8254 ; AVX512F-NEXT:    vinserti128 $1, 1088(%rdi), %ymm0, %ymm6
8255 ; AVX512F-NEXT:    vmovdqa 1024(%rdi), %ymm3
8256 ; AVX512F-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8257 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm6 = ymm3[0,1,2,3,4,5],ymm6[6,7]
8258 ; AVX512F-NEXT:    vmovdqa64 960(%rdi), %zmm5
8259 ; AVX512F-NEXT:    vmovdqa64 896(%rdi), %zmm1
8260 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm8
8261 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8262 ; AVX512F-NEXT:    vpermt2q %zmm5, %zmm9, %zmm8
8263 ; AVX512F-NEXT:    vmovdqa64 %zmm5, %zmm30
8264 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm6[4,5,6,7]
8265 ; AVX512F-NEXT:    vmovdqa64 1216(%rdi), %zmm29
8266 ; AVX512F-NEXT:    vmovdqa64 1152(%rdi), %zmm10
8267 ; AVX512F-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8268 ; AVX512F-NEXT:    vpermt2q %zmm29, %zmm11, %zmm10
8269 ; AVX512F-NEXT:    vmovdqa64 1280(%rdi), %zmm3
8270 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8271 ; AVX512F-NEXT:    vpermt2q %zmm3, %zmm4, %zmm10
8272 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm5
8273 ; AVX512F-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8274 ; AVX512F-NEXT:    vinserti128 $1, 2432(%rdi), %ymm0, %ymm8
8275 ; AVX512F-NEXT:    vmovdqa 2368(%rdi), %ymm3
8276 ; AVX512F-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8277 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm8 = ymm3[0,1,2,3,4,5],ymm8[6,7]
8278 ; AVX512F-NEXT:    vmovdqa64 2304(%rdi), %zmm18
8279 ; AVX512F-NEXT:    vmovdqa64 2240(%rdi), %zmm0
8280 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm10
8281 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8282 ; AVX512F-NEXT:    vpermt2q %zmm18, %zmm9, %zmm10
8283 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm10 = ymm10[0,1,2,3],ymm8[4,5,6,7]
8284 ; AVX512F-NEXT:    vmovdqa64 2560(%rdi), %zmm20
8285 ; AVX512F-NEXT:    vmovdqa64 2496(%rdi), %zmm14
8286 ; AVX512F-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8287 ; AVX512F-NEXT:    vpermt2q %zmm20, %zmm11, %zmm14
8288 ; AVX512F-NEXT:    vmovdqa64 2624(%rdi), %zmm21
8289 ; AVX512F-NEXT:    vpermt2q %zmm21, %zmm4, %zmm14
8290 ; AVX512F-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8291 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm10, %zmm14, %zmm5
8292 ; AVX512F-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8293 ; AVX512F-NEXT:    vinserti128 $1, 1984(%rdi), %ymm0, %ymm10
8294 ; AVX512F-NEXT:    vmovdqa 1920(%rdi), %ymm3
8295 ; AVX512F-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8296 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm10 = ymm3[0,1,2,3,4,5],ymm10[6,7]
8297 ; AVX512F-NEXT:    vmovdqa64 1856(%rdi), %zmm22
8298 ; AVX512F-NEXT:    vmovdqa64 1792(%rdi), %zmm5
8299 ; AVX512F-NEXT:    vmovdqa64 %zmm5, %zmm15
8300 ; AVX512F-NEXT:    vmovdqa64 %zmm5, %zmm6
8301 ; AVX512F-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8302 ; AVX512F-NEXT:    vpermt2q %zmm22, %zmm9, %zmm15
8303 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm10 = ymm15[0,1,2,3],ymm10[4,5,6,7]
8304 ; AVX512F-NEXT:    vmovdqa64 2112(%rdi), %zmm26
8305 ; AVX512F-NEXT:    vmovdqa64 2048(%rdi), %zmm15
8306 ; AVX512F-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8307 ; AVX512F-NEXT:    vpermt2q %zmm26, %zmm11, %zmm15
8308 ; AVX512F-NEXT:    vmovdqa64 2176(%rdi), %zmm28
8309 ; AVX512F-NEXT:    vpermt2q %zmm28, %zmm4, %zmm15
8310 ; AVX512F-NEXT:    vmovdqu64 %zmm28, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8311 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm10, %zmm15, %zmm5
8312 ; AVX512F-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8313 ; AVX512F-NEXT:    vinserti128 $1, 3328(%rdi), %ymm0, %ymm10
8314 ; AVX512F-NEXT:    vmovdqa 3264(%rdi), %ymm3
8315 ; AVX512F-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8316 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm10 = ymm3[0,1,2,3,4,5],ymm10[6,7]
8317 ; AVX512F-NEXT:    vmovdqa64 3200(%rdi), %zmm25
8318 ; AVX512F-NEXT:    vmovdqa64 3136(%rdi), %zmm14
8319 ; AVX512F-NEXT:    vpermi2q %zmm25, %zmm14, %zmm9
8320 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm10 = ymm9[0,1,2,3],ymm10[4,5,6,7]
8321 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm5
8322 ; AVX512F-NEXT:    vpermt2q %zmm23, %zmm11, %zmm5
8323 ; AVX512F-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8324 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
8325 ; AVX512F-NEXT:    vmovdqa64 %zmm8, %zmm5
8326 ; AVX512F-NEXT:    vmovdqa64 %zmm16, %zmm27
8327 ; AVX512F-NEXT:    vpermt2q %zmm16, %zmm11, %zmm5
8328 ; AVX512F-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8329 ; AVX512F-NEXT:    vpermt2q %zmm30, %zmm11, %zmm1
8330 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8331 ; AVX512F-NEXT:    vmovdqa64 %zmm7, %zmm3
8332 ; AVX512F-NEXT:    vmovdqa64 %zmm7, %zmm5
8333 ; AVX512F-NEXT:    vpermt2q %zmm19, %zmm11, %zmm5
8334 ; AVX512F-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8335 ; AVX512F-NEXT:    vmovdqa64 %zmm6, %zmm5
8336 ; AVX512F-NEXT:    vpermt2q %zmm22, %zmm11, %zmm5
8337 ; AVX512F-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8338 ; AVX512F-NEXT:    vpermt2q %zmm18, %zmm11, %zmm0
8339 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8340 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
8341 ; AVX512F-NEXT:    vmovdqa64 %zmm15, %zmm9
8342 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
8343 ; AVX512F-NEXT:    vpermt2q %zmm7, %zmm11, %zmm9
8344 ; AVX512F-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8345 ; AVX512F-NEXT:    vmovdqa64 %zmm14, %zmm9
8346 ; AVX512F-NEXT:    vpermt2q %zmm25, %zmm11, %zmm9
8347 ; AVX512F-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8348 ; AVX512F-NEXT:    vmovdqa64 3456(%rdi), %zmm9
8349 ; AVX512F-NEXT:    vmovdqa64 3392(%rdi), %zmm0
8350 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8351 ; AVX512F-NEXT:    vpermi2q %zmm9, %zmm0, %zmm11
8352 ; AVX512F-NEXT:    vmovdqa64 3520(%rdi), %zmm6
8353 ; AVX512F-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8354 ; AVX512F-NEXT:    vpermt2q %zmm6, %zmm4, %zmm11
8355 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm10, %zmm11, %zmm4
8356 ; AVX512F-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8357 ; AVX512F-NEXT:    vmovdqa 2880(%rdi), %ymm4
8358 ; AVX512F-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm0 # 32-byte Folded Reload
8359 ; AVX512F-NEXT:    # ymm0 = mem[8,9,10,11,12,13,14,15],ymm4[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm4[16,17,18,19,20,21,22,23]
8360 ; AVX512F-NEXT:    vmovdqa {{.*#+}} xmm11 = [5,12]
8361 ; AVX512F-NEXT:    vmovdqa64 %zmm15, %zmm4
8362 ; AVX512F-NEXT:    vpermt2q %zmm7, %zmm11, %zmm4
8363 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm10 = ymm4[0,1,2,3],ymm0[4,5,6,7]
8364 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [9,0,7,0,9,0,7,0]
8365 ; AVX512F-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
8366 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
8367 ; AVX512F-NEXT:    vpermt2q %zmm12, %zmm0, %zmm16
8368 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [4,5,6,14,4,5,6,14]
8369 ; AVX512F-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
8370 ; AVX512F-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm4, %zmm16 # 64-byte Folded Reload
8371 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm10, %zmm16, %zmm5
8372 ; AVX512F-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8373 ; AVX512F-NEXT:    vmovdqa 640(%rdi), %ymm10
8374 ; AVX512F-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm1 # 32-byte Folded Reload
8375 ; AVX512F-NEXT:    # ymm1 = mem[8,9,10,11,12,13,14,15],ymm10[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm10[16,17,18,19,20,21,22,23]
8376 ; AVX512F-NEXT:    vmovdqa64 %zmm8, %zmm10
8377 ; AVX512F-NEXT:    vmovdqa64 %zmm8, %zmm6
8378 ; AVX512F-NEXT:    vpermt2q %zmm27, %zmm11, %zmm10
8379 ; AVX512F-NEXT:    vmovdqu64 %zmm27, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8380 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm1 = ymm10[0,1,2,3],ymm1[4,5,6,7]
8381 ; AVX512F-NEXT:    vmovdqa64 %zmm31, %zmm10
8382 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
8383 ; AVX512F-NEXT:    vpermt2q %zmm16, %zmm0, %zmm10
8384 ; AVX512F-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm4, %zmm10 # 64-byte Folded Reload
8385 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm1, %zmm10, %zmm1
8386 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8387 ; AVX512F-NEXT:    vmovdqa 192(%rdi), %ymm1
8388 ; AVX512F-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
8389 ; AVX512F-NEXT:    # ymm1 = mem[8,9,10,11,12,13,14,15],ymm1[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm1[16,17,18,19,20,21,22,23]
8390 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm5
8391 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8392 ; AVX512F-NEXT:    vmovdqu64 %zmm23, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8393 ; AVX512F-NEXT:    vpermt2q %zmm23, %zmm11, %zmm2
8394 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
8395 ; AVX512F-NEXT:    vmovdqa64 %zmm13, %zmm2
8396 ; AVX512F-NEXT:    vpermt2q %zmm24, %zmm0, %zmm2
8397 ; AVX512F-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm4, %zmm2 # 64-byte Folded Reload
8398 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm1, %zmm2, %zmm1
8399 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8400 ; AVX512F-NEXT:    vmovdqa 1536(%rdi), %ymm1
8401 ; AVX512F-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
8402 ; AVX512F-NEXT:    # ymm1 = mem[8,9,10,11,12,13,14,15],ymm1[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm1[16,17,18,19,20,21,22,23]
8403 ; AVX512F-NEXT:    vmovdqa64 %zmm3, %zmm8
8404 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8405 ; AVX512F-NEXT:    vmovdqa64 %zmm3, %zmm2
8406 ; AVX512F-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8407 ; AVX512F-NEXT:    vpermt2q %zmm19, %zmm11, %zmm2
8408 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
8409 ; AVX512F-NEXT:    vmovdqa64 %zmm17, %zmm2
8410 ; AVX512F-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm2 # 64-byte Folded Reload
8411 ; AVX512F-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm4, %zmm2 # 64-byte Folded Reload
8412 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm1, %zmm2, %zmm1
8413 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8414 ; AVX512F-NEXT:    vmovdqa 1088(%rdi), %ymm1
8415 ; AVX512F-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
8416 ; AVX512F-NEXT:    # ymm1 = mem[8,9,10,11,12,13,14,15],ymm1[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm1[16,17,18,19,20,21,22,23]
8417 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
8418 ; AVX512F-NEXT:    vmovdqa64 %zmm10, %zmm2
8419 ; AVX512F-NEXT:    vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8420 ; AVX512F-NEXT:    vpermt2q %zmm30, %zmm11, %zmm2
8421 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
8422 ; AVX512F-NEXT:    vmovdqa64 %zmm29, %zmm2
8423 ; AVX512F-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm2 # 64-byte Folded Reload
8424 ; AVX512F-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm4, %zmm2 # 64-byte Folded Reload
8425 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm1, %zmm2, %zmm1
8426 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8427 ; AVX512F-NEXT:    vmovdqa 2432(%rdi), %ymm1
8428 ; AVX512F-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
8429 ; AVX512F-NEXT:    # ymm1 = mem[8,9,10,11,12,13,14,15],ymm1[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm1[16,17,18,19,20,21,22,23]
8430 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
8431 ; AVX512F-NEXT:    vmovdqa64 %zmm3, %zmm2
8432 ; AVX512F-NEXT:    vmovdqu64 %zmm18, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8433 ; AVX512F-NEXT:    vpermt2q %zmm18, %zmm11, %zmm2
8434 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
8435 ; AVX512F-NEXT:    vmovdqa64 %zmm20, %zmm2
8436 ; AVX512F-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm2 # 64-byte Folded Reload
8437 ; AVX512F-NEXT:    vpermt2q %zmm21, %zmm4, %zmm2
8438 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm1, %zmm2, %zmm1
8439 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8440 ; AVX512F-NEXT:    vmovdqa 1984(%rdi), %ymm1
8441 ; AVX512F-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
8442 ; AVX512F-NEXT:    # ymm1 = mem[8,9,10,11,12,13,14,15],ymm1[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm1[16,17,18,19,20,21,22,23]
8443 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
8444 ; AVX512F-NEXT:    vmovdqa64 %zmm12, %zmm2
8445 ; AVX512F-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8446 ; AVX512F-NEXT:    vpermt2q %zmm22, %zmm11, %zmm2
8447 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
8448 ; AVX512F-NEXT:    vmovdqa64 %zmm26, %zmm2
8449 ; AVX512F-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm2 # 64-byte Folded Reload
8450 ; AVX512F-NEXT:    vpermt2q %zmm28, %zmm4, %zmm2
8451 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm1, %zmm2, %zmm1
8452 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8453 ; AVX512F-NEXT:    vmovdqa 3328(%rdi), %ymm1
8454 ; AVX512F-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
8455 ; AVX512F-NEXT:    # ymm1 = mem[8,9,10,11,12,13,14,15],ymm1[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm1[16,17,18,19,20,21,22,23]
8456 ; AVX512F-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8457 ; AVX512F-NEXT:    vmovdqu64 %zmm25, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8458 ; AVX512F-NEXT:    vpermi2q %zmm25, %zmm14, %zmm11
8459 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm1 = ymm11[0,1,2,3],ymm1[4,5,6,7]
8460 ; AVX512F-NEXT:    vpermt2q %zmm15, %zmm0, %zmm7
8461 ; AVX512F-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8462 ; AVX512F-NEXT:    vmovdqa64 %zmm27, %zmm2
8463 ; AVX512F-NEXT:    vpermt2q %zmm6, %zmm0, %zmm2
8464 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8465 ; AVX512F-NEXT:    vmovdqa64 %zmm23, %zmm2
8466 ; AVX512F-NEXT:    vpermt2q %zmm5, %zmm0, %zmm2
8467 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8468 ; AVX512F-NEXT:    vmovdqa64 %zmm19, %zmm2
8469 ; AVX512F-NEXT:    vpermt2q %zmm8, %zmm0, %zmm2
8470 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8471 ; AVX512F-NEXT:    vmovdqa64 %zmm30, %zmm2
8472 ; AVX512F-NEXT:    vpermt2q %zmm10, %zmm0, %zmm2
8473 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8474 ; AVX512F-NEXT:    vpermt2q %zmm3, %zmm0, %zmm18
8475 ; AVX512F-NEXT:    vmovdqu64 %zmm18, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8476 ; AVX512F-NEXT:    vpermt2q %zmm12, %zmm0, %zmm22
8477 ; AVX512F-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8478 ; AVX512F-NEXT:    vpermt2q %zmm14, %zmm0, %zmm25
8479 ; AVX512F-NEXT:    vmovdqu64 %zmm25, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8480 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
8481 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm25
8482 ; AVX512F-NEXT:    vpermi2q %zmm6, %zmm9, %zmm0
8483 ; AVX512F-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm4, %zmm0 # 64-byte Folded Reload
8484 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm1, %zmm0, %zmm0
8485 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8486 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm23 = [10,3,10,3,10,3,10,3]
8487 ; AVX512F-NEXT:    # zmm23 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8488 ; AVX512F-NEXT:    vmovdqa64 %zmm16, %zmm2
8489 ; AVX512F-NEXT:    vmovdqa64 %zmm16, %zmm12
8490 ; AVX512F-NEXT:    vpermt2q %zmm31, %zmm23, %zmm12
8491 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm24 = [11,4,11,4,11,4,11,4]
8492 ; AVX512F-NEXT:    # zmm24 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8493 ; AVX512F-NEXT:    vmovdqa64 %zmm16, %zmm0
8494 ; AVX512F-NEXT:    vpermt2q %zmm31, %zmm24, %zmm0
8495 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8496 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [12,5,12,5,12,5,12,5]
8497 ; AVX512F-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8498 ; AVX512F-NEXT:    vmovdqa64 %zmm16, %zmm0
8499 ; AVX512F-NEXT:    vpermt2q %zmm31, %zmm8, %zmm0
8500 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8501 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm16 = [13,6,13,6,13,6,13,6]
8502 ; AVX512F-NEXT:    # zmm16 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8503 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm0
8504 ; AVX512F-NEXT:    vpermt2q %zmm31, %zmm16, %zmm0
8505 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8506 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm1 = [2,9,2,9,2,9,2,9]
8507 ; AVX512F-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8508 ; AVX512F-NEXT:    vpermt2q %zmm31, %zmm1, %zmm2
8509 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8510 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
8511 ; AVX512F-NEXT:    vmovdqa64 %zmm28, %zmm0
8512 ; AVX512F-NEXT:    vpermt2q %zmm13, %zmm23, %zmm0
8513 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm10
8514 ; AVX512F-NEXT:    vmovdqa64 %zmm28, %zmm0
8515 ; AVX512F-NEXT:    vpermt2q %zmm13, %zmm24, %zmm0
8516 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8517 ; AVX512F-NEXT:    vmovdqa64 %zmm28, %zmm0
8518 ; AVX512F-NEXT:    vpermt2q %zmm13, %zmm8, %zmm0
8519 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8520 ; AVX512F-NEXT:    vmovdqa64 %zmm28, %zmm0
8521 ; AVX512F-NEXT:    vpermt2q %zmm13, %zmm16, %zmm0
8522 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8523 ; AVX512F-NEXT:    vpermt2q %zmm13, %zmm1, %zmm28
8524 ; AVX512F-NEXT:    vmovdqu64 %zmm28, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8525 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
8526 ; AVX512F-NEXT:    vmovdqa64 %zmm22, %zmm0
8527 ; AVX512F-NEXT:    vpermt2q %zmm17, %zmm23, %zmm0
8528 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm14
8529 ; AVX512F-NEXT:    vmovdqa64 %zmm22, %zmm0
8530 ; AVX512F-NEXT:    vpermt2q %zmm17, %zmm24, %zmm0
8531 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm18
8532 ; AVX512F-NEXT:    vmovdqa64 %zmm22, %zmm0
8533 ; AVX512F-NEXT:    vpermt2q %zmm17, %zmm8, %zmm0
8534 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8535 ; AVX512F-NEXT:    vmovdqa64 %zmm22, %zmm0
8536 ; AVX512F-NEXT:    vpermt2q %zmm17, %zmm16, %zmm0
8537 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8538 ; AVX512F-NEXT:    vpermt2q %zmm17, %zmm1, %zmm22
8539 ; AVX512F-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8540 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm30 # 64-byte Reload
8541 ; AVX512F-NEXT:    vmovdqa64 %zmm30, %zmm9
8542 ; AVX512F-NEXT:    vpermt2q %zmm29, %zmm23, %zmm9
8543 ; AVX512F-NEXT:    vmovdqa64 %zmm30, %zmm0
8544 ; AVX512F-NEXT:    vpermt2q %zmm29, %zmm24, %zmm0
8545 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm19
8546 ; AVX512F-NEXT:    vmovdqa64 %zmm30, %zmm0
8547 ; AVX512F-NEXT:    vpermt2q %zmm29, %zmm8, %zmm0
8548 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8549 ; AVX512F-NEXT:    vmovdqa64 %zmm30, %zmm0
8550 ; AVX512F-NEXT:    vpermt2q %zmm29, %zmm16, %zmm0
8551 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8552 ; AVX512F-NEXT:    vpermt2q %zmm29, %zmm1, %zmm30
8553 ; AVX512F-NEXT:    vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8554 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8555 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm7
8556 ; AVX512F-NEXT:    vpermt2q %zmm20, %zmm23, %zmm7
8557 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm3
8558 ; AVX512F-NEXT:    vpermt2q %zmm20, %zmm24, %zmm3
8559 ; AVX512F-NEXT:    vmovdqa64 %zmm3, %zmm21
8560 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm3
8561 ; AVX512F-NEXT:    vpermt2q %zmm20, %zmm8, %zmm3
8562 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8563 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm3
8564 ; AVX512F-NEXT:    vpermt2q %zmm20, %zmm16, %zmm3
8565 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8566 ; AVX512F-NEXT:    vpermt2q %zmm20, %zmm1, %zmm0
8567 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8568 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
8569 ; AVX512F-NEXT:    vmovdqa64 %zmm11, %zmm30
8570 ; AVX512F-NEXT:    vpermt2q %zmm26, %zmm23, %zmm30
8571 ; AVX512F-NEXT:    vmovdqa64 %zmm11, %zmm0
8572 ; AVX512F-NEXT:    vpermt2q %zmm26, %zmm24, %zmm0
8573 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm22
8574 ; AVX512F-NEXT:    vmovdqa64 %zmm11, %zmm5
8575 ; AVX512F-NEXT:    vpermt2q %zmm26, %zmm8, %zmm5
8576 ; AVX512F-NEXT:    vmovdqa64 %zmm11, %zmm0
8577 ; AVX512F-NEXT:    vpermt2q %zmm26, %zmm16, %zmm0
8578 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm29
8579 ; AVX512F-NEXT:    vpermt2q %zmm26, %zmm1, %zmm11
8580 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
8581 ; AVX512F-NEXT:    vmovdqa64 %zmm15, %zmm28
8582 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
8583 ; AVX512F-NEXT:    vpermt2q %zmm20, %zmm23, %zmm28
8584 ; AVX512F-NEXT:    vmovdqa64 %zmm6, %zmm31
8585 ; AVX512F-NEXT:    vmovdqa64 %zmm25, %zmm3
8586 ; AVX512F-NEXT:    vpermi2q %zmm25, %zmm6, %zmm23
8587 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8588 ; AVX512F-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm16, %zmm0 # 64-byte Folded Reload
8589 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8590 ; AVX512F-NEXT:    vmovdqa64 %zmm15, %zmm27
8591 ; AVX512F-NEXT:    vpermt2q %zmm20, %zmm24, %zmm27
8592 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8593 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
8594 ; AVX512F-NEXT:    vpermt2q %zmm13, %zmm16, %zmm0
8595 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8596 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8597 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
8598 ; AVX512F-NEXT:    vpermt2q %zmm17, %zmm16, %zmm0
8599 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8600 ; AVX512F-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
8601 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm26 # 64-byte Reload
8602 ; AVX512F-NEXT:    vpermt2q %zmm26, %zmm16, %zmm0
8603 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8604 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8605 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
8606 ; AVX512F-NEXT:    vpermt2q %zmm4, %zmm16, %zmm0
8607 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8608 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8609 ; AVX512F-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm16, %zmm0 # 64-byte Folded Reload
8610 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8611 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
8612 ; AVX512F-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm16, %zmm6 # 64-byte Folded Reload
8613 ; AVX512F-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8614 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8615 ; AVX512F-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm16, %zmm0 # 64-byte Folded Reload
8616 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8617 ; AVX512F-NEXT:    vpermi2q %zmm25, %zmm31, %zmm24
8618 ; AVX512F-NEXT:    vmovdqa64 %zmm15, %zmm25
8619 ; AVX512F-NEXT:    vmovdqa64 %zmm8, %zmm2
8620 ; AVX512F-NEXT:    vpermt2q %zmm20, %zmm8, %zmm25
8621 ; AVX512F-NEXT:    vpermi2q %zmm3, %zmm31, %zmm2
8622 ; AVX512F-NEXT:    vmovdqa64 %zmm15, %zmm0
8623 ; AVX512F-NEXT:    vpermt2q %zmm20, %zmm16, %zmm0
8624 ; AVX512F-NEXT:    vpermi2q %zmm3, %zmm31, %zmm16
8625 ; AVX512F-NEXT:    vpermt2q %zmm3, %zmm1, %zmm31
8626 ; AVX512F-NEXT:    vmovdqa64 %zmm31, %zmm3
8627 ; AVX512F-NEXT:    vpermt2q %zmm20, %zmm1, %zmm15
8628 ; AVX512F-NEXT:    vmovdqa64 %zmm15, %zmm31
8629 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm1 = [0,5,6,9,0,5,6,9]
8630 ; AVX512F-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3]
8631 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
8632 ; AVX512F-NEXT:    vpermt2q %zmm8, %zmm1, %zmm10
8633 ; AVX512F-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8634 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
8635 ; AVX512F-NEXT:    vpermt2q %zmm6, %zmm1, %zmm12
8636 ; AVX512F-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8637 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
8638 ; AVX512F-NEXT:    vpermt2q %zmm10, %zmm1, %zmm9
8639 ; AVX512F-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8640 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
8641 ; AVX512F-NEXT:    vpermt2q %zmm9, %zmm1, %zmm14
8642 ; AVX512F-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8643 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
8644 ; AVX512F-NEXT:    vpermt2q %zmm15, %zmm1, %zmm30
8645 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
8646 ; AVX512F-NEXT:    vpermt2q %zmm14, %zmm1, %zmm7
8647 ; AVX512F-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8648 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
8649 ; AVX512F-NEXT:    vpermt2q %zmm7, %zmm1, %zmm28
8650 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
8651 ; AVX512F-NEXT:    vpermt2q %zmm20, %zmm1, %zmm23
8652 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm1 = [0,5,6,10,0,5,6,10]
8653 ; AVX512F-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3]
8654 ; AVX512F-NEXT:    vpermt2q %zmm7, %zmm1, %zmm27
8655 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
8656 ; AVX512F-NEXT:    vpermt2q %zmm6, %zmm1, %zmm12
8657 ; AVX512F-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8658 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
8659 ; AVX512F-NEXT:    vpermt2q %zmm8, %zmm1, %zmm12
8660 ; AVX512F-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8661 ; AVX512F-NEXT:    vpermt2q %zmm9, %zmm1, %zmm18
8662 ; AVX512F-NEXT:    vmovdqu64 %zmm18, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8663 ; AVX512F-NEXT:    vpermt2q %zmm10, %zmm1, %zmm19
8664 ; AVX512F-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8665 ; AVX512F-NEXT:    vpermt2q %zmm14, %zmm1, %zmm21
8666 ; AVX512F-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8667 ; AVX512F-NEXT:    vpermt2q %zmm15, %zmm1, %zmm22
8668 ; AVX512F-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8669 ; AVX512F-NEXT:    vpermt2q %zmm20, %zmm1, %zmm24
8670 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm1 = [0,5,6,11,0,5,6,11]
8671 ; AVX512F-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3]
8672 ; AVX512F-NEXT:    vpermt2q %zmm7, %zmm1, %zmm25
8673 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
8674 ; AVX512F-NEXT:    vpermt2q %zmm6, %zmm1, %zmm12
8675 ; AVX512F-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8676 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
8677 ; AVX512F-NEXT:    vpermt2q %zmm8, %zmm1, %zmm12
8678 ; AVX512F-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8679 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
8680 ; AVX512F-NEXT:    vpermt2q %zmm9, %zmm1, %zmm12
8681 ; AVX512F-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8682 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
8683 ; AVX512F-NEXT:    vpermt2q %zmm10, %zmm1, %zmm12
8684 ; AVX512F-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8685 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
8686 ; AVX512F-NEXT:    vpermt2q %zmm14, %zmm1, %zmm12
8687 ; AVX512F-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8688 ; AVX512F-NEXT:    vpermt2q %zmm15, %zmm1, %zmm5
8689 ; AVX512F-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8690 ; AVX512F-NEXT:    vpermt2q %zmm20, %zmm1, %zmm2
8691 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8692 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm1 = [0,5,6,12,0,5,6,12]
8693 ; AVX512F-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3]
8694 ; AVX512F-NEXT:    vpermt2q %zmm7, %zmm1, %zmm0
8695 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8696 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
8697 ; AVX512F-NEXT:    vpermt2q %zmm6, %zmm1, %zmm12
8698 ; AVX512F-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8699 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
8700 ; AVX512F-NEXT:    vpermt2q %zmm8, %zmm1, %zmm12
8701 ; AVX512F-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8702 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
8703 ; AVX512F-NEXT:    vpermt2q %zmm9, %zmm1, %zmm12
8704 ; AVX512F-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8705 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
8706 ; AVX512F-NEXT:    vpermt2q %zmm10, %zmm1, %zmm12
8707 ; AVX512F-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8708 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
8709 ; AVX512F-NEXT:    vpermt2q %zmm14, %zmm1, %zmm12
8710 ; AVX512F-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8711 ; AVX512F-NEXT:    vpermt2q %zmm15, %zmm1, %zmm29
8712 ; AVX512F-NEXT:    vmovdqu64 %zmm29, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8713 ; AVX512F-NEXT:    vpermt2q %zmm20, %zmm1, %zmm16
8714 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm1 = [4,5,8,15,4,5,8,15]
8715 ; AVX512F-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3]
8716 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm18 # 64-byte Reload
8717 ; AVX512F-NEXT:    vpermt2q %zmm6, %zmm1, %zmm18
8718 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
8719 ; AVX512F-NEXT:    vpermt2q %zmm8, %zmm1, %zmm19
8720 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm21 # 64-byte Reload
8721 ; AVX512F-NEXT:    vpermt2q %zmm9, %zmm1, %zmm21
8722 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
8723 ; AVX512F-NEXT:    vpermt2q %zmm10, %zmm1, %zmm22
8724 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
8725 ; AVX512F-NEXT:    vpermt2q %zmm14, %zmm1, %zmm2
8726 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8727 ; AVX512F-NEXT:    vpermt2q %zmm15, %zmm1, %zmm11
8728 ; AVX512F-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8729 ; AVX512F-NEXT:    vpermt2q %zmm20, %zmm1, %zmm3
8730 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8731 ; AVX512F-NEXT:    vpermt2q %zmm7, %zmm1, %zmm31
8732 ; AVX512F-NEXT:    vmovdqu64 %zmm31, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8733 ; AVX512F-NEXT:    movb $24, %al
8734 ; AVX512F-NEXT:    kmovw %eax, %k2
8735 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8736 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
8737 ; AVX512F-NEXT:    vshufi64x2 {{.*#+}} zmm12 {%k2} = zmm0[4,5,4,5],zmm13[4,5,4,5]
8738 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm15 = [7,0,9,0,7,0,9,0]
8739 ; AVX512F-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3]
8740 ; AVX512F-NEXT:    vmovdqa64 %zmm13, %zmm20
8741 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm15, %zmm20
8742 ; AVX512F-NEXT:    vbroadcasti128 {{.*#+}} ymm3 = [4,11,4,11]
8743 ; AVX512F-NEXT:    # ymm3 = mem[0,1,0,1]
8744 ; AVX512F-NEXT:    vpermt2q %zmm13, %zmm3, %zmm0
8745 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8746 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8747 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
8748 ; AVX512F-NEXT:    vshufi64x2 {{.*#+}} zmm10 {%k2} = zmm0[4,5,4,5],zmm17[4,5,4,5]
8749 ; AVX512F-NEXT:    vmovdqa64 %zmm17, %zmm29
8750 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm15, %zmm29
8751 ; AVX512F-NEXT:    vpermt2q %zmm17, %zmm3, %zmm0
8752 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8753 ; AVX512F-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
8754 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
8755 ; AVX512F-NEXT:    vshufi64x2 {{.*#+}} zmm9 {%k2} = zmm0[4,5,4,5],zmm26[4,5,4,5]
8756 ; AVX512F-NEXT:    vmovdqa64 %zmm26, %zmm17
8757 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm15, %zmm17
8758 ; AVX512F-NEXT:    vpermt2q %zmm26, %zmm3, %zmm0
8759 ; AVX512F-NEXT:    vmovdqu64 %zmm0, (%rsp) # 64-byte Spill
8760 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
8761 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
8762 ; AVX512F-NEXT:    vshufi64x2 {{.*#+}} zmm8 {%k2} = zmm2[4,5,4,5],zmm4[4,5,4,5]
8763 ; AVX512F-NEXT:    vmovdqa64 %zmm4, %zmm0
8764 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm15, %zmm0
8765 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8766 ; AVX512F-NEXT:    vpermt2q %zmm4, %zmm3, %zmm2
8767 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8768 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8769 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
8770 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
8771 ; AVX512F-NEXT:    vshufi64x2 {{.*#+}} zmm7 {%k2} = zmm0[4,5,4,5],zmm1[4,5,4,5]
8772 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm2
8773 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm15, %zmm2
8774 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8775 ; AVX512F-NEXT:    vpermt2q %zmm1, %zmm3, %zmm0
8776 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8777 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8778 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
8779 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
8780 ; AVX512F-NEXT:    vshufi64x2 {{.*#+}} zmm6 {%k2} = zmm0[4,5,4,5],zmm1[4,5,4,5]
8781 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm2
8782 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm15, %zmm2
8783 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8784 ; AVX512F-NEXT:    vpermt2q %zmm1, %zmm3, %zmm0
8785 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8786 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8787 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
8788 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
8789 ; AVX512F-NEXT:    vshufi64x2 {{.*#+}} zmm31 {%k2} = zmm0[4,5,4,5],zmm2[4,5,4,5]
8790 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
8791 ; AVX512F-NEXT:    vmovdqa64 %zmm4, %zmm26
8792 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
8793 ; AVX512F-NEXT:    vpermt2q %zmm1, %zmm15, %zmm26
8794 ; AVX512F-NEXT:    vpermi2q %zmm0, %zmm2, %zmm15
8795 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm3, %zmm0
8796 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8797 ; AVX512F-NEXT:    vmovdqa64 %zmm4, %zmm0
8798 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
8799 ; AVX512F-NEXT:    vshufi64x2 {{.*#+}} zmm4 {%k2} = zmm1[4,5,4,5],zmm0[4,5,4,5]
8800 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm3, %zmm1
8801 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8802 ; AVX512F-NEXT:    vmovdqa {{.*#+}} xmm0 = [6,13]
8803 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
8804 ; AVX512F-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm1 # 64-byte Folded Reload
8805 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
8806 ; AVX512F-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm2 # 64-byte Folded Reload
8807 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
8808 ; AVX512F-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm3 # 64-byte Folded Reload
8809 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
8810 ; AVX512F-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm5 # 64-byte Folded Reload
8811 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
8812 ; AVX512F-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm11 # 64-byte Folded Reload
8813 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
8814 ; AVX512F-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm13 # 64-byte Folded Reload
8815 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
8816 ; AVX512F-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm14 # 64-byte Folded Reload
8817 ; AVX512F-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8818 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
8819 ; AVX512F-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm14 # 64-byte Folded Reload
8820 ; AVX512F-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8821 ; AVX512F-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm0 # 32-byte Folded Reload
8822 ; AVX512F-NEXT:    # ymm0 = ymm1[0,1,2,3],mem[4,5,6,7]
8823 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm0, %zmm18, %zmm0
8824 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8825 ; AVX512F-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm0 # 32-byte Folded Reload
8826 ; AVX512F-NEXT:    # ymm0 = ymm2[0,1,2,3],mem[4,5,6,7]
8827 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm0, %zmm19, %zmm0
8828 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8829 ; AVX512F-NEXT:    vpblendd $240, (%rsp), %ymm3, %ymm0 # 32-byte Folded Reload
8830 ; AVX512F-NEXT:    # ymm0 = ymm3[0,1,2,3],mem[4,5,6,7]
8831 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm0, %zmm21, %zmm21
8832 ; AVX512F-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm0 # 32-byte Folded Reload
8833 ; AVX512F-NEXT:    # ymm0 = ymm5[0,1,2,3],mem[4,5,6,7]
8834 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm0, %zmm22, %zmm0
8835 ; AVX512F-NEXT:    vmovdqu64 %zmm0, (%rsp) # 64-byte Spill
8836 ; AVX512F-NEXT:    movb $-32, %al
8837 ; AVX512F-NEXT:    kmovw %eax, %k1
8838 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8839 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm10 {%k1}
8840 ; AVX512F-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8841 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8842 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm12 {%k1}
8843 ; AVX512F-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8844 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8845 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
8846 ; AVX512F-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8847 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8848 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm9 {%k1}
8849 ; AVX512F-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8850 ; AVX512F-NEXT:    vmovdqa64 %zmm30, %zmm6 {%k1}
8851 ; AVX512F-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8852 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8853 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k1}
8854 ; AVX512F-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8855 ; AVX512F-NEXT:    vmovdqa64 %zmm28, %zmm4 {%k1}
8856 ; AVX512F-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8857 ; AVX512F-NEXT:    vmovdqa64 %zmm23, %zmm31 {%k1}
8858 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8859 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
8860 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k2}
8861 ; AVX512F-NEXT:    vmovdqa64 %zmm27, %zmm0 {%k1}
8862 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8863 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8864 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
8865 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k2}
8866 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
8867 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k1}
8868 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8869 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8870 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
8871 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k2}
8872 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
8873 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k1}
8874 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8875 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8876 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
8877 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k2}
8878 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
8879 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k1}
8880 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8881 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
8882 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8883 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
8884 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8885 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
8886 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8887 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm23 # 64-byte Reload
8888 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8889 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm23 {%k2}
8890 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8891 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm23 {%k1}
8892 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
8893 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8894 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k2}
8895 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8896 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k1}
8897 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8898 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
8899 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k2}
8900 ; AVX512F-NEXT:    vmovdqa64 %zmm24, %zmm0 {%k1}
8901 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm18
8902 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
8903 ; AVX512F-NEXT:    vmovdqa64 %zmm25, %zmm7 {%k1}
8904 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
8905 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8906 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm22 {%k1}
8907 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
8908 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8909 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k1}
8910 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm24 # 64-byte Reload
8911 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8912 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm24 {%k1}
8913 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm30 # 64-byte Reload
8914 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8915 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm30 {%k1}
8916 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm27 # 64-byte Reload
8917 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8918 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm27 {%k1}
8919 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
8920 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8921 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm28 {%k1}
8922 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm25 # 64-byte Reload
8923 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8924 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm25 {%k1}
8925 ; AVX512F-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm0 # 32-byte Folded Reload
8926 ; AVX512F-NEXT:    # ymm0 = ymm11[0,1,2,3],mem[4,5,6,7]
8927 ; AVX512F-NEXT:    vmovdqa 2752(%rdi), %ymm3
8928 ; AVX512F-NEXT:    vpalignr {{.*#+}} ymm3 = mem[8,9,10,11,12,13,14,15],ymm3[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm3[16,17,18,19,20,21,22,23]
8929 ; AVX512F-NEXT:    vextracti128 $1, %ymm3, %xmm3
8930 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm3, %zmm26, %zmm3
8931 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
8932 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm3 {%k1}
8933 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
8934 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm0, %zmm1, %zmm0
8935 ; AVX512F-NEXT:    vmovdqa 512(%rdi), %ymm1
8936 ; AVX512F-NEXT:    vpalignr {{.*#+}} ymm1 = mem[8,9,10,11,12,13,14,15],ymm1[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm1[16,17,18,19,20,21,22,23]
8937 ; AVX512F-NEXT:    vextracti128 $1, %ymm1, %xmm1
8938 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm1, %zmm20, %zmm6
8939 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
8940 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm6 {%k1}
8941 ; AVX512F-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm1 # 32-byte Folded Reload
8942 ; AVX512F-NEXT:    # ymm1 = ymm13[0,1,2,3],mem[4,5,6,7]
8943 ; AVX512F-NEXT:    vmovdqa 64(%rdi), %ymm4
8944 ; AVX512F-NEXT:    vpalignr {{.*#+}} ymm4 = mem[8,9,10,11,12,13,14,15],ymm4[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm4[16,17,18,19,20,21,22,23]
8945 ; AVX512F-NEXT:    vextracti128 $1, %ymm4, %xmm4
8946 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm4, %zmm29, %zmm14
8947 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
8948 ; AVX512F-NEXT:    vmovdqa64 %zmm4, %zmm14 {%k1}
8949 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
8950 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
8951 ; AVX512F-NEXT:    vmovdqa 1408(%rdi), %ymm4
8952 ; AVX512F-NEXT:    vpalignr {{.*#+}} ymm4 = mem[8,9,10,11,12,13,14,15],ymm4[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm4[16,17,18,19,20,21,22,23]
8953 ; AVX512F-NEXT:    vextracti128 $1, %ymm4, %xmm4
8954 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm4, %zmm17, %zmm5
8955 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
8956 ; AVX512F-NEXT:    vmovdqa64 %zmm4, %zmm5 {%k1}
8957 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
8958 ; AVX512F-NEXT:    vblendps $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload
8959 ; AVX512F-NEXT:    # ymm4 = mem[0,1,2,3],ymm4[4,5,6,7]
8960 ; AVX512F-NEXT:    vmovdqa 960(%rdi), %ymm8
8961 ; AVX512F-NEXT:    vpalignr {{.*#+}} ymm8 = mem[8,9,10,11,12,13,14,15],ymm8[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm8[16,17,18,19,20,21,22,23]
8962 ; AVX512F-NEXT:    vextracti128 $1, %ymm8, %xmm8
8963 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
8964 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm8, %zmm9, %zmm8
8965 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
8966 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm8 {%k1}
8967 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
8968 ; AVX512F-NEXT:    vinsertf64x4 $0, %ymm4, %zmm9, %zmm4
8969 ; AVX512F-NEXT:    vmovdqa 2304(%rdi), %ymm10
8970 ; AVX512F-NEXT:    vpalignr {{.*#+}} ymm10 = mem[8,9,10,11,12,13,14,15],ymm10[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm10[16,17,18,19,20,21,22,23]
8971 ; AVX512F-NEXT:    vextracti128 $1, %ymm10, %xmm10
8972 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
8973 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm10, %zmm9, %zmm10
8974 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
8975 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm10 {%k1}
8976 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
8977 ; AVX512F-NEXT:    vblendps $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm11 # 32-byte Folded Reload
8978 ; AVX512F-NEXT:    # ymm11 = mem[0,1,2,3],ymm9[4,5,6,7]
8979 ; AVX512F-NEXT:    vmovdqa 1856(%rdi), %ymm12
8980 ; AVX512F-NEXT:    vpalignr {{.*#+}} ymm12 = mem[8,9,10,11,12,13,14,15],ymm12[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm12[16,17,18,19,20,21,22,23]
8981 ; AVX512F-NEXT:    vextracti128 $1, %ymm12, %xmm12
8982 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
8983 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm12, %zmm9, %zmm12
8984 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
8985 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm12 {%k1}
8986 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
8987 ; AVX512F-NEXT:    vinsertf64x4 $0, %ymm11, %zmm9, %zmm11
8988 ; AVX512F-NEXT:    vmovdqa 3200(%rdi), %ymm13
8989 ; AVX512F-NEXT:    vpalignr {{.*#+}} ymm13 = mem[8,9,10,11,12,13,14,15],ymm13[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm13[16,17,18,19,20,21,22,23]
8990 ; AVX512F-NEXT:    vextracti128 $1, %ymm13, %xmm13
8991 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm13, %zmm15, %zmm9
8992 ; AVX512F-NEXT:    vmovdqa64 %zmm16, %zmm9 {%k1}
8993 ; AVX512F-NEXT:    vmovdqa64 %zmm31, 448(%rsi)
8994 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
8995 ; AVX512F-NEXT:    vmovaps %zmm13, 384(%rsi)
8996 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
8997 ; AVX512F-NEXT:    vmovaps %zmm13, 320(%rsi)
8998 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
8999 ; AVX512F-NEXT:    vmovaps %zmm13, 256(%rsi)
9000 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
9001 ; AVX512F-NEXT:    vmovaps %zmm13, 192(%rsi)
9002 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
9003 ; AVX512F-NEXT:    vmovaps %zmm13, 128(%rsi)
9004 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
9005 ; AVX512F-NEXT:    vmovaps %zmm13, 64(%rsi)
9006 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
9007 ; AVX512F-NEXT:    vmovaps %zmm13, (%rsi)
9008 ; AVX512F-NEXT:    vmovdqa64 %zmm18, 448(%rdx)
9009 ; AVX512F-NEXT:    vmovdqa64 %zmm2, 256(%rdx)
9010 ; AVX512F-NEXT:    vmovdqa64 %zmm23, 320(%rdx)
9011 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9012 ; AVX512F-NEXT:    vmovaps %zmm2, 128(%rdx)
9013 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9014 ; AVX512F-NEXT:    vmovaps %zmm2, 192(%rdx)
9015 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9016 ; AVX512F-NEXT:    vmovaps %zmm2, (%rdx)
9017 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9018 ; AVX512F-NEXT:    vmovaps %zmm2, 64(%rdx)
9019 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9020 ; AVX512F-NEXT:    vmovaps %zmm2, 384(%rdx)
9021 ; AVX512F-NEXT:    vmovdqa64 %zmm25, 448(%rcx)
9022 ; AVX512F-NEXT:    vmovdqa64 %zmm28, 256(%rcx)
9023 ; AVX512F-NEXT:    vmovdqa64 %zmm27, 320(%rcx)
9024 ; AVX512F-NEXT:    vmovdqa64 %zmm30, 128(%rcx)
9025 ; AVX512F-NEXT:    vmovdqa64 %zmm24, 192(%rcx)
9026 ; AVX512F-NEXT:    vmovdqa64 %zmm19, (%rcx)
9027 ; AVX512F-NEXT:    vmovdqa64 %zmm22, 64(%rcx)
9028 ; AVX512F-NEXT:    vmovdqa64 %zmm7, 384(%rcx)
9029 ; AVX512F-NEXT:    vmovdqa64 %zmm9, 448(%r8)
9030 ; AVX512F-NEXT:    vmovdqa64 %zmm12, 256(%r8)
9031 ; AVX512F-NEXT:    vmovdqa64 %zmm10, 320(%r8)
9032 ; AVX512F-NEXT:    vmovdqa64 %zmm8, 128(%r8)
9033 ; AVX512F-NEXT:    vmovdqa64 %zmm5, 192(%r8)
9034 ; AVX512F-NEXT:    vmovdqa64 %zmm14, (%r8)
9035 ; AVX512F-NEXT:    vmovdqa64 %zmm6, 64(%r8)
9036 ; AVX512F-NEXT:    vmovdqa64 %zmm3, 384(%r8)
9037 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9038 ; AVX512F-NEXT:    vmovaps %zmm3, 448(%r9)
9039 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9040 ; AVX512F-NEXT:    vmovaps %zmm3, 256(%r9)
9041 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9042 ; AVX512F-NEXT:    vmovaps %zmm3, 320(%r9)
9043 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9044 ; AVX512F-NEXT:    vmovaps %zmm3, 128(%r9)
9045 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9046 ; AVX512F-NEXT:    vmovaps %zmm3, 192(%r9)
9047 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9048 ; AVX512F-NEXT:    vmovaps %zmm3, (%r9)
9049 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9050 ; AVX512F-NEXT:    vmovaps %zmm3, 64(%r9)
9051 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9052 ; AVX512F-NEXT:    vmovaps %zmm3, 384(%r9)
9053 ; AVX512F-NEXT:    movq {{[0-9]+}}(%rsp), %rax
9054 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9055 ; AVX512F-NEXT:    vmovaps %zmm2, 448(%rax)
9056 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9057 ; AVX512F-NEXT:    vmovaps %zmm2, 256(%rax)
9058 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9059 ; AVX512F-NEXT:    vmovaps %zmm2, 320(%rax)
9060 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9061 ; AVX512F-NEXT:    vmovaps %zmm2, 128(%rax)
9062 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9063 ; AVX512F-NEXT:    vmovaps %zmm2, 192(%rax)
9064 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9065 ; AVX512F-NEXT:    vmovaps %zmm2, (%rax)
9066 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9067 ; AVX512F-NEXT:    vmovaps %zmm2, 64(%rax)
9068 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9069 ; AVX512F-NEXT:    vmovaps %zmm3, 384(%rax)
9070 ; AVX512F-NEXT:    movq {{[0-9]+}}(%rsp), %rax
9071 ; AVX512F-NEXT:    vmovaps %zmm11, 384(%rax)
9072 ; AVX512F-NEXT:    vmovaps %zmm4, 448(%rax)
9073 ; AVX512F-NEXT:    vmovdqa64 %zmm1, 256(%rax)
9074 ; AVX512F-NEXT:    vmovdqa64 %zmm0, 320(%rax)
9075 ; AVX512F-NEXT:    vmovups (%rsp), %zmm0 # 64-byte Reload
9076 ; AVX512F-NEXT:    vmovaps %zmm0, 128(%rax)
9077 ; AVX512F-NEXT:    vmovdqa64 %zmm21, 192(%rax)
9078 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9079 ; AVX512F-NEXT:    vmovaps %zmm0, (%rax)
9080 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9081 ; AVX512F-NEXT:    vmovaps %zmm0, 64(%rax)
9082 ; AVX512F-NEXT:    addq $7624, %rsp # imm = 0x1DC8
9083 ; AVX512F-NEXT:    vzeroupper
9084 ; AVX512F-NEXT:    retq
9086 ; AVX512BW-LABEL: load_i64_stride7_vf64:
9087 ; AVX512BW:       # %bb.0:
9088 ; AVX512BW-NEXT:    subq $7624, %rsp # imm = 0x1DC8
9089 ; AVX512BW-NEXT:    vmovdqa64 3328(%rdi), %zmm4
9090 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9091 ; AVX512BW-NEXT:    vmovdqa64 3264(%rdi), %zmm6
9092 ; AVX512BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9093 ; AVX512BW-NEXT:    vmovdqa64 3008(%rdi), %zmm25
9094 ; AVX512BW-NEXT:    vmovdqa64 2944(%rdi), %zmm18
9095 ; AVX512BW-NEXT:    vmovdqa64 2880(%rdi), %zmm2
9096 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9097 ; AVX512BW-NEXT:    vmovdqa64 2816(%rdi), %zmm1
9098 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9099 ; AVX512BW-NEXT:    vmovdqa64 2752(%rdi), %zmm30
9100 ; AVX512BW-NEXT:    vmovdqa64 2688(%rdi), %zmm5
9101 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9102 ; AVX512BW-NEXT:    vmovdqa64 2432(%rdi), %zmm19
9103 ; AVX512BW-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9104 ; AVX512BW-NEXT:    vmovdqa64 2368(%rdi), %zmm8
9105 ; AVX512BW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9106 ; AVX512BW-NEXT:    vmovdqa64 1984(%rdi), %zmm9
9107 ; AVX512BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9108 ; AVX512BW-NEXT:    vmovdqa64 1920(%rdi), %zmm3
9109 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9110 ; AVX512BW-NEXT:    vmovdqa64 1536(%rdi), %zmm10
9111 ; AVX512BW-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9112 ; AVX512BW-NEXT:    vmovdqa64 1472(%rdi), %zmm12
9113 ; AVX512BW-NEXT:    vmovdqu64 %zmm12, (%rsp) # 64-byte Spill
9114 ; AVX512BW-NEXT:    vmovdqa64 1088(%rdi), %zmm11
9115 ; AVX512BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9116 ; AVX512BW-NEXT:    vmovdqa64 1024(%rdi), %zmm13
9117 ; AVX512BW-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9118 ; AVX512BW-NEXT:    vmovdqa64 640(%rdi), %zmm16
9119 ; AVX512BW-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9120 ; AVX512BW-NEXT:    vmovdqa64 576(%rdi), %zmm14
9121 ; AVX512BW-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9122 ; AVX512BW-NEXT:    vmovdqa64 192(%rdi), %zmm17
9123 ; AVX512BW-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9124 ; AVX512BW-NEXT:    vmovdqa64 128(%rdi), %zmm15
9125 ; AVX512BW-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9126 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [14,0,0,7,14,0,0,7]
9127 ; AVX512BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
9128 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm0, %zmm1
9129 ; AVX512BW-NEXT:    vmovdqa 2704(%rdi), %xmm2
9130 ; AVX512BW-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0,1],mem[2,3]
9131 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm2, %zmm1, %zmm1
9132 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9133 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, %zmm1
9134 ; AVX512BW-NEXT:    vpermt2q %zmm16, %zmm0, %zmm1
9135 ; AVX512BW-NEXT:    vmovdqa 464(%rdi), %xmm2
9136 ; AVX512BW-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0,1],mem[2,3]
9137 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm2, %zmm1, %zmm1
9138 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9139 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm1
9140 ; AVX512BW-NEXT:    vpermt2q %zmm17, %zmm0, %zmm1
9141 ; AVX512BW-NEXT:    vmovdqa 16(%rdi), %xmm2
9142 ; AVX512BW-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0,1],mem[2,3]
9143 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm2, %zmm1, %zmm1
9144 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9145 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm1
9146 ; AVX512BW-NEXT:    vpermt2q %zmm10, %zmm0, %zmm1
9147 ; AVX512BW-NEXT:    vmovdqa 1360(%rdi), %xmm2
9148 ; AVX512BW-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0,1],mem[2,3]
9149 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm2, %zmm1, %zmm1
9150 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9151 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm1
9152 ; AVX512BW-NEXT:    vpermt2q %zmm11, %zmm0, %zmm1
9153 ; AVX512BW-NEXT:    vmovdqa 912(%rdi), %xmm2
9154 ; AVX512BW-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0,1],mem[2,3]
9155 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm2, %zmm1, %zmm1
9156 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9157 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm1
9158 ; AVX512BW-NEXT:    vpermt2q %zmm19, %zmm0, %zmm1
9159 ; AVX512BW-NEXT:    vmovdqa 2256(%rdi), %xmm2
9160 ; AVX512BW-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0,1],mem[2,3]
9161 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm2, %zmm1, %zmm1
9162 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9163 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm1
9164 ; AVX512BW-NEXT:    vpermt2q %zmm9, %zmm0, %zmm1
9165 ; AVX512BW-NEXT:    vmovdqa 1808(%rdi), %xmm2
9166 ; AVX512BW-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0,1],mem[2,3]
9167 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm2, %zmm1, %zmm1
9168 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9169 ; AVX512BW-NEXT:    vpermi2q %zmm4, %zmm6, %zmm0
9170 ; AVX512BW-NEXT:    vmovdqa 3152(%rdi), %xmm1
9171 ; AVX512BW-NEXT:    vpblendd {{.*#+}} xmm1 = xmm1[0,1],mem[2,3]
9172 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm1, %zmm0, %zmm0
9173 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9174 ; AVX512BW-NEXT:    vinserti128 $1, 2880(%rdi), %ymm0, %ymm0
9175 ; AVX512BW-NEXT:    vmovdqa 2816(%rdi), %ymm1
9176 ; AVX512BW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9177 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
9178 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} xmm9 = [4,11]
9179 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm1
9180 ; AVX512BW-NEXT:    vpermt2q %zmm30, %zmm9, %zmm1
9181 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
9182 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [0,7,14,0,0,7,14,0]
9183 ; AVX512BW-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
9184 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, %zmm16
9185 ; AVX512BW-NEXT:    vmovdqu64 %zmm18, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9186 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, %zmm1
9187 ; AVX512BW-NEXT:    vmovdqu64 %zmm25, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9188 ; AVX512BW-NEXT:    vpermt2q %zmm25, %zmm10, %zmm1
9189 ; AVX512BW-NEXT:    vmovdqa64 3072(%rdi), %zmm2
9190 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9191 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [4,5,6,13,4,5,6,13]
9192 ; AVX512BW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
9193 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm4, %zmm1
9194 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm1, %zmm0
9195 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9196 ; AVX512BW-NEXT:    vinserti128 $1, 640(%rdi), %ymm0, %ymm0
9197 ; AVX512BW-NEXT:    vmovdqa 576(%rdi), %ymm1
9198 ; AVX512BW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9199 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
9200 ; AVX512BW-NEXT:    vmovdqa64 512(%rdi), %zmm3
9201 ; AVX512BW-NEXT:    vmovdqa64 448(%rdi), %zmm2
9202 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm1
9203 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm12
9204 ; AVX512BW-NEXT:    vpermt2q %zmm3, %zmm9, %zmm1
9205 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm27
9206 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
9207 ; AVX512BW-NEXT:    vmovdqa64 768(%rdi), %zmm28
9208 ; AVX512BW-NEXT:    vmovdqa64 704(%rdi), %zmm1
9209 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9210 ; AVX512BW-NEXT:    vpermt2q %zmm28, %zmm10, %zmm1
9211 ; AVX512BW-NEXT:    vmovdqa64 832(%rdi), %zmm2
9212 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9213 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm4, %zmm1
9214 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm1, %zmm0
9215 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9216 ; AVX512BW-NEXT:    vinserti128 $1, 192(%rdi), %ymm0, %ymm0
9217 ; AVX512BW-NEXT:    vmovdqa 128(%rdi), %ymm1
9218 ; AVX512BW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9219 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
9220 ; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %zmm3
9221 ; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm8
9222 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm1
9223 ; AVX512BW-NEXT:    vpermt2q %zmm3, %zmm9, %zmm1
9224 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm31
9225 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
9226 ; AVX512BW-NEXT:    vmovdqa64 320(%rdi), %zmm18
9227 ; AVX512BW-NEXT:    vmovdqa64 256(%rdi), %zmm29
9228 ; AVX512BW-NEXT:    vmovdqa64 %zmm29, %zmm1
9229 ; AVX512BW-NEXT:    vmovdqu64 %zmm29, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9230 ; AVX512BW-NEXT:    vpermt2q %zmm18, %zmm10, %zmm1
9231 ; AVX512BW-NEXT:    vmovdqa64 384(%rdi), %zmm2
9232 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9233 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm4, %zmm1
9234 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm1, %zmm0
9235 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9236 ; AVX512BW-NEXT:    vinserti128 $1, 1536(%rdi), %ymm0, %ymm0
9237 ; AVX512BW-NEXT:    vmovdqa 1472(%rdi), %ymm1
9238 ; AVX512BW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9239 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
9240 ; AVX512BW-NEXT:    vmovdqa64 1408(%rdi), %zmm26
9241 ; AVX512BW-NEXT:    vmovdqa64 1344(%rdi), %zmm7
9242 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm1
9243 ; AVX512BW-NEXT:    vpermt2q %zmm26, %zmm9, %zmm1
9244 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
9245 ; AVX512BW-NEXT:    vmovdqa64 1664(%rdi), %zmm13
9246 ; AVX512BW-NEXT:    vmovdqa64 1600(%rdi), %zmm1
9247 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9248 ; AVX512BW-NEXT:    vpermt2q %zmm13, %zmm10, %zmm1
9249 ; AVX512BW-NEXT:    vmovdqa64 1728(%rdi), %zmm2
9250 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9251 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm4, %zmm1
9252 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm1, %zmm0
9253 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9254 ; AVX512BW-NEXT:    vinserti128 $1, 1088(%rdi), %ymm0, %ymm0
9255 ; AVX512BW-NEXT:    vmovdqa 1024(%rdi), %ymm1
9256 ; AVX512BW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9257 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
9258 ; AVX512BW-NEXT:    vmovdqa64 960(%rdi), %zmm19
9259 ; AVX512BW-NEXT:    vmovdqa64 896(%rdi), %zmm6
9260 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm1
9261 ; AVX512BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9262 ; AVX512BW-NEXT:    vpermt2q %zmm19, %zmm9, %zmm1
9263 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
9264 ; AVX512BW-NEXT:    vmovdqa64 1216(%rdi), %zmm22
9265 ; AVX512BW-NEXT:    vmovdqa64 1152(%rdi), %zmm1
9266 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9267 ; AVX512BW-NEXT:    vpermt2q %zmm22, %zmm10, %zmm1
9268 ; AVX512BW-NEXT:    vmovdqa64 1280(%rdi), %zmm2
9269 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9270 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm4, %zmm1
9271 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm1, %zmm0
9272 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9273 ; AVX512BW-NEXT:    vinserti128 $1, 2432(%rdi), %ymm0, %ymm0
9274 ; AVX512BW-NEXT:    vmovdqa 2368(%rdi), %ymm1
9275 ; AVX512BW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9276 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
9277 ; AVX512BW-NEXT:    vmovdqa64 2304(%rdi), %zmm20
9278 ; AVX512BW-NEXT:    vmovdqa64 2240(%rdi), %zmm5
9279 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm1
9280 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9281 ; AVX512BW-NEXT:    vpermt2q %zmm20, %zmm9, %zmm1
9282 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
9283 ; AVX512BW-NEXT:    vmovdqa64 2560(%rdi), %zmm15
9284 ; AVX512BW-NEXT:    vmovdqa64 2496(%rdi), %zmm1
9285 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9286 ; AVX512BW-NEXT:    vpermt2q %zmm15, %zmm10, %zmm1
9287 ; AVX512BW-NEXT:    vmovdqa64 2624(%rdi), %zmm3
9288 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9289 ; AVX512BW-NEXT:    vpermt2q %zmm3, %zmm4, %zmm1
9290 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm1, %zmm0
9291 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9292 ; AVX512BW-NEXT:    vinserti128 $1, 1984(%rdi), %ymm0, %ymm0
9293 ; AVX512BW-NEXT:    vmovdqa 1920(%rdi), %ymm1
9294 ; AVX512BW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9295 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
9296 ; AVX512BW-NEXT:    vmovdqa64 1856(%rdi), %zmm21
9297 ; AVX512BW-NEXT:    vmovdqa64 1792(%rdi), %zmm2
9298 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm1
9299 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9300 ; AVX512BW-NEXT:    vpermt2q %zmm21, %zmm9, %zmm1
9301 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
9302 ; AVX512BW-NEXT:    vmovdqa64 2112(%rdi), %zmm14
9303 ; AVX512BW-NEXT:    vmovdqa64 2048(%rdi), %zmm1
9304 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9305 ; AVX512BW-NEXT:    vpermt2q %zmm14, %zmm10, %zmm1
9306 ; AVX512BW-NEXT:    vmovdqa64 2176(%rdi), %zmm23
9307 ; AVX512BW-NEXT:    vpermt2q %zmm23, %zmm4, %zmm1
9308 ; AVX512BW-NEXT:    vmovdqu64 %zmm23, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9309 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm1, %zmm0
9310 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9311 ; AVX512BW-NEXT:    vinserti128 $1, 3328(%rdi), %ymm0, %ymm0
9312 ; AVX512BW-NEXT:    vmovdqa 3264(%rdi), %ymm1
9313 ; AVX512BW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9314 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
9315 ; AVX512BW-NEXT:    vmovdqa64 3200(%rdi), %zmm17
9316 ; AVX512BW-NEXT:    vmovdqa64 3136(%rdi), %zmm11
9317 ; AVX512BW-NEXT:    vpermi2q %zmm17, %zmm11, %zmm9
9318 ; AVX512BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9319 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm9[0,1,2,3],ymm0[4,5,6,7]
9320 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm9
9321 ; AVX512BW-NEXT:    vpermt2q %zmm31, %zmm10, %zmm9
9322 ; AVX512BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9323 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm1
9324 ; AVX512BW-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9325 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm9
9326 ; AVX512BW-NEXT:    vpermt2q %zmm27, %zmm10, %zmm9
9327 ; AVX512BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9328 ; AVX512BW-NEXT:    vpermt2q %zmm19, %zmm10, %zmm6
9329 ; AVX512BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9330 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm9
9331 ; AVX512BW-NEXT:    vpermt2q %zmm26, %zmm10, %zmm9
9332 ; AVX512BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9333 ; AVX512BW-NEXT:    vpermt2q %zmm21, %zmm10, %zmm2
9334 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9335 ; AVX512BW-NEXT:    vpermt2q %zmm20, %zmm10, %zmm5
9336 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9337 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
9338 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm9
9339 ; AVX512BW-NEXT:    vmovdqa64 %zmm30, %zmm6
9340 ; AVX512BW-NEXT:    vpermt2q %zmm30, %zmm10, %zmm9
9341 ; AVX512BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9342 ; AVX512BW-NEXT:    vpermt2q %zmm17, %zmm10, %zmm11
9343 ; AVX512BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9344 ; AVX512BW-NEXT:    vmovdqa64 3456(%rdi), %zmm24
9345 ; AVX512BW-NEXT:    vmovdqa64 3392(%rdi), %zmm2
9346 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9347 ; AVX512BW-NEXT:    vpermi2q %zmm24, %zmm2, %zmm10
9348 ; AVX512BW-NEXT:    vmovdqa64 3520(%rdi), %zmm30
9349 ; AVX512BW-NEXT:    vpermt2q %zmm30, %zmm4, %zmm10
9350 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm10, %zmm0
9351 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9352 ; AVX512BW-NEXT:    vmovdqa 2880(%rdi), %ymm0
9353 ; AVX512BW-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm4 # 32-byte Folded Reload
9354 ; AVX512BW-NEXT:    # ymm4 = mem[8,9,10,11,12,13,14,15],ymm0[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm0[16,17,18,19,20,21,22,23]
9355 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} xmm0 = [5,12]
9356 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm9
9357 ; AVX512BW-NEXT:    vpermt2q %zmm6, %zmm0, %zmm9
9358 ; AVX512BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9359 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm9 = ymm9[0,1,2,3],ymm4[4,5,6,7]
9360 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [9,0,7,0,9,0,7,0]
9361 ; AVX512BW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
9362 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, %zmm12
9363 ; AVX512BW-NEXT:    vpermt2q %zmm16, %zmm4, %zmm12
9364 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [4,5,6,14,4,5,6,14]
9365 ; AVX512BW-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
9366 ; AVX512BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm10, %zmm12 # 64-byte Folded Reload
9367 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm9, %zmm12, %zmm5
9368 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9369 ; AVX512BW-NEXT:    vmovdqa 640(%rdi), %ymm9
9370 ; AVX512BW-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm9 # 32-byte Folded Reload
9371 ; AVX512BW-NEXT:    # ymm9 = mem[8,9,10,11,12,13,14,15],ymm9[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm9[16,17,18,19,20,21,22,23]
9372 ; AVX512BW-NEXT:    vpermt2q %zmm27, %zmm0, %zmm1
9373 ; AVX512BW-NEXT:    vmovdqu64 %zmm27, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9374 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm9 = ymm1[0,1,2,3],ymm9[4,5,6,7]
9375 ; AVX512BW-NEXT:    vmovdqa64 %zmm28, %zmm12
9376 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm25 # 64-byte Reload
9377 ; AVX512BW-NEXT:    vpermt2q %zmm25, %zmm4, %zmm12
9378 ; AVX512BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm10, %zmm12 # 64-byte Folded Reload
9379 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm9, %zmm12, %zmm5
9380 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9381 ; AVX512BW-NEXT:    vmovdqa 192(%rdi), %ymm9
9382 ; AVX512BW-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm9 # 32-byte Folded Reload
9383 ; AVX512BW-NEXT:    # ymm9 = mem[8,9,10,11,12,13,14,15],ymm9[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm9[16,17,18,19,20,21,22,23]
9384 ; AVX512BW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9385 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm12
9386 ; AVX512BW-NEXT:    vmovdqu64 %zmm31, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9387 ; AVX512BW-NEXT:    vpermt2q %zmm31, %zmm0, %zmm12
9388 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm9 = ymm12[0,1,2,3],ymm9[4,5,6,7]
9389 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, %zmm12
9390 ; AVX512BW-NEXT:    vpermt2q %zmm29, %zmm4, %zmm12
9391 ; AVX512BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm10, %zmm12 # 64-byte Folded Reload
9392 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm9, %zmm12, %zmm5
9393 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9394 ; AVX512BW-NEXT:    vmovdqa 1536(%rdi), %ymm9
9395 ; AVX512BW-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm9 # 32-byte Folded Reload
9396 ; AVX512BW-NEXT:    # ymm9 = mem[8,9,10,11,12,13,14,15],ymm9[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm9[16,17,18,19,20,21,22,23]
9397 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm5
9398 ; AVX512BW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9399 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm12
9400 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, %zmm16
9401 ; AVX512BW-NEXT:    vmovdqu64 %zmm26, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9402 ; AVX512BW-NEXT:    vpermt2q %zmm26, %zmm0, %zmm12
9403 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm9 = ymm12[0,1,2,3],ymm9[4,5,6,7]
9404 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm12
9405 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm26 # 64-byte Reload
9406 ; AVX512BW-NEXT:    vpermt2q %zmm26, %zmm4, %zmm12
9407 ; AVX512BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm10, %zmm12 # 64-byte Folded Reload
9408 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm9, %zmm12, %zmm7
9409 ; AVX512BW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9410 ; AVX512BW-NEXT:    vmovdqa 1088(%rdi), %ymm9
9411 ; AVX512BW-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm9 # 32-byte Folded Reload
9412 ; AVX512BW-NEXT:    # ymm9 = mem[8,9,10,11,12,13,14,15],ymm9[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm9[16,17,18,19,20,21,22,23]
9413 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
9414 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm12
9415 ; AVX512BW-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9416 ; AVX512BW-NEXT:    vpermt2q %zmm19, %zmm0, %zmm12
9417 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm9 = ymm12[0,1,2,3],ymm9[4,5,6,7]
9418 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm12
9419 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm29 # 64-byte Reload
9420 ; AVX512BW-NEXT:    vpermt2q %zmm29, %zmm4, %zmm12
9421 ; AVX512BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm10, %zmm12 # 64-byte Folded Reload
9422 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm9, %zmm12, %zmm9
9423 ; AVX512BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9424 ; AVX512BW-NEXT:    vmovdqa 2432(%rdi), %ymm9
9425 ; AVX512BW-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm2 # 32-byte Folded Reload
9426 ; AVX512BW-NEXT:    # ymm2 = mem[8,9,10,11,12,13,14,15],ymm9[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm9[16,17,18,19,20,21,22,23]
9427 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
9428 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm9
9429 ; AVX512BW-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9430 ; AVX512BW-NEXT:    vpermt2q %zmm20, %zmm0, %zmm9
9431 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm9[0,1,2,3],ymm2[4,5,6,7]
9432 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm9
9433 ; AVX512BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm4, %zmm9 # 64-byte Folded Reload
9434 ; AVX512BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm10, %zmm9 # 64-byte Folded Reload
9435 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm2, %zmm9, %zmm2
9436 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9437 ; AVX512BW-NEXT:    vmovdqa 1984(%rdi), %ymm2
9438 ; AVX512BW-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
9439 ; AVX512BW-NEXT:    # ymm2 = mem[8,9,10,11,12,13,14,15],ymm2[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm2[16,17,18,19,20,21,22,23]
9440 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
9441 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm3
9442 ; AVX512BW-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9443 ; AVX512BW-NEXT:    vpermt2q %zmm21, %zmm0, %zmm3
9444 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
9445 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, %zmm3
9446 ; AVX512BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm4, %zmm3 # 64-byte Folded Reload
9447 ; AVX512BW-NEXT:    vpermt2q %zmm23, %zmm10, %zmm3
9448 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm2, %zmm3, %zmm2
9449 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9450 ; AVX512BW-NEXT:    vmovdqa 3328(%rdi), %ymm2
9451 ; AVX512BW-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm1 # 32-byte Folded Reload
9452 ; AVX512BW-NEXT:    # ymm1 = mem[8,9,10,11,12,13,14,15],ymm2[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm2[16,17,18,19,20,21,22,23]
9453 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9454 ; AVX512BW-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9455 ; AVX512BW-NEXT:    vpermi2q %zmm17, %zmm2, %zmm0
9456 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
9457 ; AVX512BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm4, %zmm6 # 64-byte Folded Reload
9458 ; AVX512BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9459 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, %zmm1
9460 ; AVX512BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm4, %zmm1 # 64-byte Folded Reload
9461 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9462 ; AVX512BW-NEXT:    vmovdqa64 %zmm31, %zmm1
9463 ; AVX512BW-NEXT:    vpermt2q %zmm8, %zmm4, %zmm1
9464 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9465 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, %zmm1
9466 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm4, %zmm1
9467 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9468 ; AVX512BW-NEXT:    vpermt2q %zmm7, %zmm4, %zmm19
9469 ; AVX512BW-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9470 ; AVX512BW-NEXT:    vpermt2q %zmm11, %zmm4, %zmm20
9471 ; AVX512BW-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9472 ; AVX512BW-NEXT:    vpermt2q %zmm9, %zmm4, %zmm21
9473 ; AVX512BW-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9474 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm4, %zmm17
9475 ; AVX512BW-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9476 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
9477 ; AVX512BW-NEXT:    vpermi2q %zmm8, %zmm24, %zmm4
9478 ; AVX512BW-NEXT:    vpermt2q %zmm30, %zmm10, %zmm4
9479 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
9480 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9481 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm23 = [10,3,10,3,10,3,10,3]
9482 ; AVX512BW-NEXT:    # zmm23 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9483 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, %zmm0
9484 ; AVX512BW-NEXT:    vpermt2q %zmm28, %zmm23, %zmm25
9485 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm27 = [11,4,11,4,11,4,11,4]
9486 ; AVX512BW-NEXT:    # zmm27 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9487 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1
9488 ; AVX512BW-NEXT:    vpermt2q %zmm28, %zmm27, %zmm1
9489 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9490 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm31 = [12,5,12,5,12,5,12,5]
9491 ; AVX512BW-NEXT:    # zmm31 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9492 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1
9493 ; AVX512BW-NEXT:    vpermt2q %zmm28, %zmm31, %zmm1
9494 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9495 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm12 = [13,6,13,6,13,6,13,6]
9496 ; AVX512BW-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9497 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1
9498 ; AVX512BW-NEXT:    vpermt2q %zmm28, %zmm12, %zmm1
9499 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9500 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm1 = [2,9,2,9,2,9,2,9]
9501 ; AVX512BW-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9502 ; AVX512BW-NEXT:    vpermt2q %zmm28, %zmm1, %zmm0
9503 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9504 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
9505 ; AVX512BW-NEXT:    vmovdqa64 %zmm28, %zmm0
9506 ; AVX512BW-NEXT:    vpermt2q %zmm18, %zmm23, %zmm0
9507 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9508 ; AVX512BW-NEXT:    vmovdqa64 %zmm28, %zmm0
9509 ; AVX512BW-NEXT:    vpermt2q %zmm18, %zmm27, %zmm0
9510 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9511 ; AVX512BW-NEXT:    vmovdqa64 %zmm28, %zmm0
9512 ; AVX512BW-NEXT:    vpermt2q %zmm18, %zmm31, %zmm0
9513 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9514 ; AVX512BW-NEXT:    vmovdqa64 %zmm28, %zmm0
9515 ; AVX512BW-NEXT:    vpermt2q %zmm18, %zmm12, %zmm0
9516 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9517 ; AVX512BW-NEXT:    vpermt2q %zmm18, %zmm1, %zmm28
9518 ; AVX512BW-NEXT:    vmovdqu64 %zmm28, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9519 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, %zmm0
9520 ; AVX512BW-NEXT:    vpermt2q %zmm13, %zmm23, %zmm0
9521 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm28
9522 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, %zmm0
9523 ; AVX512BW-NEXT:    vpermt2q %zmm13, %zmm27, %zmm0
9524 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9525 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, %zmm0
9526 ; AVX512BW-NEXT:    vpermt2q %zmm13, %zmm31, %zmm0
9527 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9528 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, %zmm0
9529 ; AVX512BW-NEXT:    vpermt2q %zmm13, %zmm12, %zmm0
9530 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9531 ; AVX512BW-NEXT:    vpermt2q %zmm13, %zmm1, %zmm26
9532 ; AVX512BW-NEXT:    vmovdqu64 %zmm26, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9533 ; AVX512BW-NEXT:    vmovdqa64 %zmm29, %zmm9
9534 ; AVX512BW-NEXT:    vpermt2q %zmm22, %zmm23, %zmm9
9535 ; AVX512BW-NEXT:    vmovdqa64 %zmm29, %zmm0
9536 ; AVX512BW-NEXT:    vpermt2q %zmm22, %zmm27, %zmm0
9537 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9538 ; AVX512BW-NEXT:    vmovdqa64 %zmm29, %zmm0
9539 ; AVX512BW-NEXT:    vpermt2q %zmm22, %zmm31, %zmm0
9540 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm17
9541 ; AVX512BW-NEXT:    vmovdqa64 %zmm29, %zmm0
9542 ; AVX512BW-NEXT:    vpermt2q %zmm22, %zmm12, %zmm0
9543 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm16
9544 ; AVX512BW-NEXT:    vpermt2q %zmm22, %zmm1, %zmm29
9545 ; AVX512BW-NEXT:    vmovdqu64 %zmm29, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9546 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm21 # 64-byte Reload
9547 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, %zmm0
9548 ; AVX512BW-NEXT:    vpermt2q %zmm15, %zmm23, %zmm0
9549 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm19
9550 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, %zmm10
9551 ; AVX512BW-NEXT:    vpermt2q %zmm15, %zmm27, %zmm10
9552 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, %zmm13
9553 ; AVX512BW-NEXT:    vpermt2q %zmm15, %zmm31, %zmm13
9554 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, %zmm0
9555 ; AVX512BW-NEXT:    vpermt2q %zmm15, %zmm12, %zmm0
9556 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9557 ; AVX512BW-NEXT:    vpermt2q %zmm15, %zmm1, %zmm21
9558 ; AVX512BW-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9559 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
9560 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm2
9561 ; AVX512BW-NEXT:    vpermt2q %zmm14, %zmm23, %zmm2
9562 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm22
9563 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm4
9564 ; AVX512BW-NEXT:    vpermt2q %zmm14, %zmm27, %zmm4
9565 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm3
9566 ; AVX512BW-NEXT:    vpermt2q %zmm14, %zmm31, %zmm3
9567 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm20
9568 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm7
9569 ; AVX512BW-NEXT:    vpermt2q %zmm14, %zmm12, %zmm7
9570 ; AVX512BW-NEXT:    vpermt2q %zmm14, %zmm1, %zmm5
9571 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm26 # 64-byte Reload
9572 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, %zmm3
9573 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm18 # 64-byte Reload
9574 ; AVX512BW-NEXT:    vpermt2q %zmm18, %zmm23, %zmm3
9575 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm29
9576 ; AVX512BW-NEXT:    vpermi2q %zmm24, %zmm8, %zmm23
9577 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9578 ; AVX512BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm12, %zmm0 # 64-byte Folded Reload
9579 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9580 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, %zmm2
9581 ; AVX512BW-NEXT:    vpermt2q %zmm18, %zmm27, %zmm2
9582 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, %zmm14
9583 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
9584 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
9585 ; AVX512BW-NEXT:    vpermt2q %zmm15, %zmm12, %zmm6
9586 ; AVX512BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9587 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
9588 ; AVX512BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm12, %zmm6 # 64-byte Folded Reload
9589 ; AVX512BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9590 ; AVX512BW-NEXT:    vmovdqu64 (%rsp), %zmm6 # 64-byte Reload
9591 ; AVX512BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm12, %zmm6 # 64-byte Folded Reload
9592 ; AVX512BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9593 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
9594 ; AVX512BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm12, %zmm6 # 64-byte Folded Reload
9595 ; AVX512BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9596 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
9597 ; AVX512BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm12, %zmm6 # 64-byte Folded Reload
9598 ; AVX512BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9599 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
9600 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
9601 ; AVX512BW-NEXT:    vpermt2q %zmm6, %zmm12, %zmm8
9602 ; AVX512BW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9603 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
9604 ; AVX512BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm12, %zmm8 # 64-byte Folded Reload
9605 ; AVX512BW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9606 ; AVX512BW-NEXT:    vpermi2q %zmm24, %zmm29, %zmm27
9607 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, %zmm0
9608 ; AVX512BW-NEXT:    vpermt2q %zmm18, %zmm31, %zmm0
9609 ; AVX512BW-NEXT:    vpermi2q %zmm24, %zmm29, %zmm31
9610 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, %zmm8
9611 ; AVX512BW-NEXT:    vpermt2q %zmm18, %zmm12, %zmm8
9612 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm18
9613 ; AVX512BW-NEXT:    vpermi2q %zmm24, %zmm29, %zmm12
9614 ; AVX512BW-NEXT:    vpermt2q %zmm24, %zmm1, %zmm29
9615 ; AVX512BW-NEXT:    vpermt2q %zmm14, %zmm1, %zmm26
9616 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm1 = [0,5,6,9,0,5,6,9]
9617 ; AVX512BW-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3]
9618 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
9619 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
9620 ; AVX512BW-NEXT:    vpermt2q %zmm8, %zmm1, %zmm11
9621 ; AVX512BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9622 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm21 # 64-byte Reload
9623 ; AVX512BW-NEXT:    vpermt2q %zmm21, %zmm1, %zmm25
9624 ; AVX512BW-NEXT:    vmovdqu64 %zmm25, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9625 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm24 # 64-byte Reload
9626 ; AVX512BW-NEXT:    vpermt2q %zmm24, %zmm1, %zmm9
9627 ; AVX512BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9628 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
9629 ; AVX512BW-NEXT:    vpermt2q %zmm14, %zmm1, %zmm28
9630 ; AVX512BW-NEXT:    vmovdqu64 %zmm28, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9631 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm25 # 64-byte Reload
9632 ; AVX512BW-NEXT:    vpermt2q %zmm25, %zmm1, %zmm22
9633 ; AVX512BW-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9634 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
9635 ; AVX512BW-NEXT:    vpermt2q %zmm11, %zmm1, %zmm19
9636 ; AVX512BW-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9637 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
9638 ; AVX512BW-NEXT:    vpermt2q %zmm19, %zmm1, %zmm3
9639 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9640 ; AVX512BW-NEXT:    vpermt2q %zmm30, %zmm1, %zmm23
9641 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm1 = [0,5,6,10,0,5,6,10]
9642 ; AVX512BW-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3]
9643 ; AVX512BW-NEXT:    vpermt2q %zmm19, %zmm1, %zmm2
9644 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9645 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
9646 ; AVX512BW-NEXT:    vpermt2q %zmm21, %zmm1, %zmm28
9647 ; AVX512BW-NEXT:    vmovdqu64 %zmm28, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9648 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9649 ; AVX512BW-NEXT:    vpermt2q %zmm8, %zmm1, %zmm2
9650 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9651 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
9652 ; AVX512BW-NEXT:    vpermt2q %zmm14, %zmm1, %zmm9
9653 ; AVX512BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9654 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
9655 ; AVX512BW-NEXT:    vpermt2q %zmm24, %zmm1, %zmm9
9656 ; AVX512BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9657 ; AVX512BW-NEXT:    vpermt2q %zmm11, %zmm1, %zmm10
9658 ; AVX512BW-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9659 ; AVX512BW-NEXT:    vpermt2q %zmm25, %zmm1, %zmm4
9660 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9661 ; AVX512BW-NEXT:    vpermt2q %zmm30, %zmm1, %zmm27
9662 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm1 = [0,5,6,11,0,5,6,11]
9663 ; AVX512BW-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3]
9664 ; AVX512BW-NEXT:    vpermt2q %zmm19, %zmm1, %zmm0
9665 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9666 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
9667 ; AVX512BW-NEXT:    vpermt2q %zmm21, %zmm1, %zmm28
9668 ; AVX512BW-NEXT:    vmovdqu64 %zmm28, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9669 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
9670 ; AVX512BW-NEXT:    vpermt2q %zmm8, %zmm1, %zmm28
9671 ; AVX512BW-NEXT:    vmovdqu64 %zmm28, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9672 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
9673 ; AVX512BW-NEXT:    vpermt2q %zmm14, %zmm1, %zmm9
9674 ; AVX512BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9675 ; AVX512BW-NEXT:    vpermt2q %zmm24, %zmm1, %zmm17
9676 ; AVX512BW-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9677 ; AVX512BW-NEXT:    vpermt2q %zmm11, %zmm1, %zmm13
9678 ; AVX512BW-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9679 ; AVX512BW-NEXT:    vpermt2q %zmm25, %zmm1, %zmm20
9680 ; AVX512BW-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9681 ; AVX512BW-NEXT:    vpermt2q %zmm30, %zmm1, %zmm31
9682 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm1 = [0,5,6,12,0,5,6,12]
9683 ; AVX512BW-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3]
9684 ; AVX512BW-NEXT:    vpermt2q %zmm19, %zmm1, %zmm18
9685 ; AVX512BW-NEXT:    vmovdqu64 %zmm18, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9686 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
9687 ; AVX512BW-NEXT:    vpermt2q %zmm21, %zmm1, %zmm28
9688 ; AVX512BW-NEXT:    vmovdqu64 %zmm28, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9689 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
9690 ; AVX512BW-NEXT:    vpermt2q %zmm8, %zmm1, %zmm28
9691 ; AVX512BW-NEXT:    vmovdqu64 %zmm28, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9692 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
9693 ; AVX512BW-NEXT:    vpermt2q %zmm14, %zmm1, %zmm28
9694 ; AVX512BW-NEXT:    vmovdqu64 %zmm28, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9695 ; AVX512BW-NEXT:    vpermt2q %zmm24, %zmm1, %zmm16
9696 ; AVX512BW-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9697 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
9698 ; AVX512BW-NEXT:    vpermt2q %zmm11, %zmm1, %zmm9
9699 ; AVX512BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9700 ; AVX512BW-NEXT:    vpermt2q %zmm25, %zmm1, %zmm7
9701 ; AVX512BW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9702 ; AVX512BW-NEXT:    vpermt2q %zmm30, %zmm1, %zmm12
9703 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm1 = [4,5,8,15,4,5,8,15]
9704 ; AVX512BW-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3]
9705 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
9706 ; AVX512BW-NEXT:    vpermt2q %zmm21, %zmm1, %zmm16
9707 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
9708 ; AVX512BW-NEXT:    vpermt2q %zmm8, %zmm1, %zmm17
9709 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm18 # 64-byte Reload
9710 ; AVX512BW-NEXT:    vpermt2q %zmm14, %zmm1, %zmm18
9711 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
9712 ; AVX512BW-NEXT:    vpermt2q %zmm24, %zmm1, %zmm20
9713 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm21 # 64-byte Reload
9714 ; AVX512BW-NEXT:    vpermt2q %zmm11, %zmm1, %zmm21
9715 ; AVX512BW-NEXT:    vpermt2q %zmm25, %zmm1, %zmm5
9716 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9717 ; AVX512BW-NEXT:    vpermt2q %zmm30, %zmm1, %zmm29
9718 ; AVX512BW-NEXT:    vpermt2q %zmm19, %zmm1, %zmm26
9719 ; AVX512BW-NEXT:    movb $24, %al
9720 ; AVX512BW-NEXT:    kmovd %eax, %k1
9721 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
9722 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
9723 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm22 {%k1} = zmm1[4,5,4,5],zmm15[4,5,4,5]
9724 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm30 = [7,0,9,0,7,0,9,0]
9725 ; AVX512BW-NEXT:    # zmm30 = mem[0,1,2,3,0,1,2,3]
9726 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm0
9727 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm30, %zmm0
9728 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9729 ; AVX512BW-NEXT:    vbroadcasti128 {{.*#+}} ymm2 = [4,11,4,11]
9730 ; AVX512BW-NEXT:    # ymm2 = mem[0,1,0,1]
9731 ; AVX512BW-NEXT:    vpermt2q %zmm15, %zmm2, %zmm1
9732 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9733 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9734 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
9735 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
9736 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm19 {%k1} = zmm3[4,5,4,5],zmm1[4,5,4,5]
9737 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm0
9738 ; AVX512BW-NEXT:    vpermt2q %zmm3, %zmm30, %zmm0
9739 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9740 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm2, %zmm3
9741 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9742 ; AVX512BW-NEXT:    vmovdqu64 (%rsp), %zmm3 # 64-byte Reload
9743 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
9744 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
9745 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm14 {%k1} = zmm3[4,5,4,5],zmm1[4,5,4,5]
9746 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm0
9747 ; AVX512BW-NEXT:    vpermt2q %zmm3, %zmm30, %zmm0
9748 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9749 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm2, %zmm3
9750 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, (%rsp) # 64-byte Spill
9751 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9752 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
9753 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm24 # 64-byte Reload
9754 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm24 {%k1} = zmm3[4,5,4,5],zmm1[4,5,4,5]
9755 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm0
9756 ; AVX512BW-NEXT:    vpermt2q %zmm3, %zmm30, %zmm0
9757 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9758 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm2, %zmm3
9759 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9760 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9761 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
9762 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
9763 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm11 {%k1} = zmm0[4,5,4,5],zmm1[4,5,4,5]
9764 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm3
9765 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm30, %zmm3
9766 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9767 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm2, %zmm0
9768 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9769 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9770 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
9771 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm10 {%k1} = zmm0[4,5,4,5],zmm6[4,5,4,5]
9772 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm3
9773 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm30, %zmm3
9774 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9775 ; AVX512BW-NEXT:    vpermt2q %zmm6, %zmm2, %zmm0
9776 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9777 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
9778 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
9779 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
9780 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm9 {%k1} = zmm15[4,5,4,5],zmm6[4,5,4,5]
9781 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9782 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm28
9783 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
9784 ; AVX512BW-NEXT:    vpermt2q %zmm13, %zmm30, %zmm28
9785 ; AVX512BW-NEXT:    vpermi2q %zmm15, %zmm6, %zmm30
9786 ; AVX512BW-NEXT:    vpermt2q %zmm6, %zmm2, %zmm15
9787 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm25 # 64-byte Reload
9788 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm25 {%k1} = zmm13[4,5,4,5],zmm3[4,5,4,5]
9789 ; AVX512BW-NEXT:    vpermt2q %zmm3, %zmm2, %zmm13
9790 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} xmm0 = [6,13]
9791 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9792 ; AVX512BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm2 # 64-byte Folded Reload
9793 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9794 ; AVX512BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm3 # 64-byte Folded Reload
9795 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
9796 ; AVX512BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm1 # 64-byte Folded Reload
9797 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
9798 ; AVX512BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm4 # 64-byte Folded Reload
9799 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
9800 ; AVX512BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm5 # 64-byte Folded Reload
9801 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
9802 ; AVX512BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm6 # 64-byte Folded Reload
9803 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
9804 ; AVX512BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm8 # 64-byte Folded Reload
9805 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
9806 ; AVX512BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm7 # 64-byte Folded Reload
9807 ; AVX512BW-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm0 # 32-byte Folded Reload
9808 ; AVX512BW-NEXT:    # ymm0 = ymm2[0,1,2,3],mem[4,5,6,7]
9809 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm16, %zmm0
9810 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9811 ; AVX512BW-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm0 # 32-byte Folded Reload
9812 ; AVX512BW-NEXT:    # ymm0 = ymm3[0,1,2,3],mem[4,5,6,7]
9813 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm17, %zmm17
9814 ; AVX512BW-NEXT:    vpblendd $240, (%rsp), %ymm1, %ymm0 # 32-byte Folded Reload
9815 ; AVX512BW-NEXT:    # ymm0 = ymm1[0,1,2,3],mem[4,5,6,7]
9816 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm18, %zmm0
9817 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9818 ; AVX512BW-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm0 # 32-byte Folded Reload
9819 ; AVX512BW-NEXT:    # ymm0 = ymm4[0,1,2,3],mem[4,5,6,7]
9820 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm20, %zmm0
9821 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, (%rsp) # 64-byte Spill
9822 ; AVX512BW-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm0 # 32-byte Folded Reload
9823 ; AVX512BW-NEXT:    # ymm0 = ymm5[0,1,2,3],mem[4,5,6,7]
9824 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm21, %zmm21
9825 ; AVX512BW-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm0 # 32-byte Folded Reload
9826 ; AVX512BW-NEXT:    # ymm0 = ymm6[0,1,2,3],mem[4,5,6,7]
9827 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
9828 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm1, %zmm0
9829 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9830 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm8[0,1,2,3],ymm15[4,5,6,7]
9831 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm29, %zmm29
9832 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm7[0,1,2,3],ymm13[4,5,6,7]
9833 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm26, %zmm0
9834 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9835 ; AVX512BW-NEXT:    movb $-32, %al
9836 ; AVX512BW-NEXT:    kmovd %eax, %k2
9837 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9838 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k2}
9839 ; AVX512BW-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9840 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm19
9841 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9842 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k2}
9843 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9844 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm24 {%k2}
9845 ; AVX512BW-NEXT:    vmovdqu64 %zmm24, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9846 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, %zmm24
9847 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9848 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm24 {%k2}
9849 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9850 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm10 {%k2}
9851 ; AVX512BW-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9852 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9853 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm11 {%k2}
9854 ; AVX512BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9855 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9856 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm25 {%k2}
9857 ; AVX512BW-NEXT:    vmovdqu64 %zmm25, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9858 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, %zmm9 {%k2}
9859 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm25
9860 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
9861 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9862 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm16 {%k1}
9863 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9864 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm16 {%k2}
9865 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, %zmm22
9866 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
9867 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9868 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
9869 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9870 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
9871 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9872 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
9873 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9874 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
9875 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9876 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
9877 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9878 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
9879 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9880 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm16 {%k1}
9881 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9882 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm16 {%k2}
9883 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
9884 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9885 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm11 {%k1}
9886 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9887 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm11 {%k2}
9888 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
9889 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
9890 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm10 {%k1}
9891 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
9892 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm10 {%k2}
9893 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9894 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
9895 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm2 {%k1}
9896 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
9897 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm2 {%k2}
9898 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9899 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
9900 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k1}
9901 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, %zmm0 {%k2}
9902 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm9
9903 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
9904 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9905 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm13 {%k2}
9906 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
9907 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9908 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm14 {%k2}
9909 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
9910 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9911 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm15 {%k2}
9912 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm18 # 64-byte Reload
9913 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9914 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm18 {%k2}
9915 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
9916 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9917 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm20 {%k2}
9918 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm23 # 64-byte Reload
9919 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9920 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm23 {%k2}
9921 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm26 # 64-byte Reload
9922 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9923 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k2}
9924 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm27 # 64-byte Reload
9925 ; AVX512BW-NEXT:    vmovdqa64 %zmm31, %zmm27 {%k2}
9926 ; AVX512BW-NEXT:    vmovdqa 2752(%rdi), %ymm0
9927 ; AVX512BW-NEXT:    vpalignr {{.*#+}} ymm0 = mem[8,9,10,11,12,13,14,15],ymm0[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm0[16,17,18,19,20,21,22,23]
9928 ; AVX512BW-NEXT:    vextracti128 $1, %ymm0, %xmm0
9929 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm0, %zmm28, %zmm1
9930 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9931 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
9932 ; AVX512BW-NEXT:    vmovdqa 512(%rdi), %ymm0
9933 ; AVX512BW-NEXT:    vpalignr {{.*#+}} ymm0 = mem[8,9,10,11,12,13,14,15],ymm0[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm0[16,17,18,19,20,21,22,23]
9934 ; AVX512BW-NEXT:    vextracti128 $1, %ymm0, %xmm0
9935 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9936 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm0, %zmm3, %zmm0
9937 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9938 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm0 {%k2}
9939 ; AVX512BW-NEXT:    vmovdqa 64(%rdi), %ymm3
9940 ; AVX512BW-NEXT:    vpalignr {{.*#+}} ymm3 = mem[8,9,10,11,12,13,14,15],ymm3[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm3[16,17,18,19,20,21,22,23]
9941 ; AVX512BW-NEXT:    vextracti128 $1, %ymm3, %xmm3
9942 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
9943 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm3, %zmm4, %zmm3
9944 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
9945 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm3 {%k2}
9946 ; AVX512BW-NEXT:    vmovdqa 1408(%rdi), %ymm4
9947 ; AVX512BW-NEXT:    vpalignr {{.*#+}} ymm4 = mem[8,9,10,11,12,13,14,15],ymm4[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm4[16,17,18,19,20,21,22,23]
9948 ; AVX512BW-NEXT:    vextracti128 $1, %ymm4, %xmm4
9949 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
9950 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm4, %zmm5, %zmm4
9951 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
9952 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm4 {%k2}
9953 ; AVX512BW-NEXT:    vmovdqa 960(%rdi), %ymm5
9954 ; AVX512BW-NEXT:    vpalignr {{.*#+}} ymm5 = mem[8,9,10,11,12,13,14,15],ymm5[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm5[16,17,18,19,20,21,22,23]
9955 ; AVX512BW-NEXT:    vextracti128 $1, %ymm5, %xmm5
9956 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
9957 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm5, %zmm6, %zmm5
9958 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
9959 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm5 {%k2}
9960 ; AVX512BW-NEXT:    vmovdqa 2304(%rdi), %ymm6
9961 ; AVX512BW-NEXT:    vpalignr {{.*#+}} ymm6 = mem[8,9,10,11,12,13,14,15],ymm6[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm6[16,17,18,19,20,21,22,23]
9962 ; AVX512BW-NEXT:    vextracti128 $1, %ymm6, %xmm6
9963 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
9964 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm6, %zmm7, %zmm6
9965 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
9966 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm6 {%k2}
9967 ; AVX512BW-NEXT:    vmovdqa 1856(%rdi), %ymm7
9968 ; AVX512BW-NEXT:    vpalignr {{.*#+}} ymm7 = mem[8,9,10,11,12,13,14,15],ymm7[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm7[16,17,18,19,20,21,22,23]
9969 ; AVX512BW-NEXT:    vextracti128 $1, %ymm7, %xmm7
9970 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
9971 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm7, %zmm8, %zmm7
9972 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
9973 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm7 {%k2}
9974 ; AVX512BW-NEXT:    vmovdqa 3200(%rdi), %ymm8
9975 ; AVX512BW-NEXT:    vpalignr {{.*#+}} ymm8 = mem[8,9,10,11,12,13,14,15],ymm8[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm8[16,17,18,19,20,21,22,23]
9976 ; AVX512BW-NEXT:    vextracti128 $1, %ymm8, %xmm8
9977 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm8, %zmm30, %zmm8
9978 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm8 {%k2}
9979 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, 448(%rsi)
9980 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
9981 ; AVX512BW-NEXT:    vmovaps %zmm12, 384(%rsi)
9982 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
9983 ; AVX512BW-NEXT:    vmovaps %zmm12, 320(%rsi)
9984 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
9985 ; AVX512BW-NEXT:    vmovaps %zmm12, 256(%rsi)
9986 ; AVX512BW-NEXT:    vmovdqa64 %zmm24, 192(%rsi)
9987 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
9988 ; AVX512BW-NEXT:    vmovaps %zmm12, 128(%rsi)
9989 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, 64(%rsi)
9990 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
9991 ; AVX512BW-NEXT:    vmovaps %zmm12, (%rsi)
9992 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, 448(%rdx)
9993 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, 256(%rdx)
9994 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, 320(%rdx)
9995 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, 128(%rdx)
9996 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, 192(%rdx)
9997 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9998 ; AVX512BW-NEXT:    vmovaps %zmm2, (%rdx)
9999 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10000 ; AVX512BW-NEXT:    vmovaps %zmm2, 64(%rdx)
10001 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, 384(%rdx)
10002 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, 448(%rcx)
10003 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, 256(%rcx)
10004 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, 320(%rcx)
10005 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, 128(%rcx)
10006 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, 192(%rcx)
10007 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, (%rcx)
10008 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, 64(%rcx)
10009 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, 384(%rcx)
10010 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, 448(%r8)
10011 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, 256(%r8)
10012 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, 320(%r8)
10013 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, 128(%r8)
10014 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, 192(%r8)
10015 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, (%r8)
10016 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, 64(%r8)
10017 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, 384(%r8)
10018 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10019 ; AVX512BW-NEXT:    vmovaps %zmm0, 448(%r9)
10020 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10021 ; AVX512BW-NEXT:    vmovaps %zmm0, 256(%r9)
10022 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10023 ; AVX512BW-NEXT:    vmovaps %zmm0, 320(%r9)
10024 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10025 ; AVX512BW-NEXT:    vmovaps %zmm0, 128(%r9)
10026 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10027 ; AVX512BW-NEXT:    vmovaps %zmm0, 192(%r9)
10028 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10029 ; AVX512BW-NEXT:    vmovaps %zmm0, (%r9)
10030 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10031 ; AVX512BW-NEXT:    vmovaps %zmm0, 64(%r9)
10032 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10033 ; AVX512BW-NEXT:    vmovaps %zmm0, 384(%r9)
10034 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
10035 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10036 ; AVX512BW-NEXT:    vmovaps %zmm0, 448(%rax)
10037 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10038 ; AVX512BW-NEXT:    vmovaps %zmm0, 256(%rax)
10039 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10040 ; AVX512BW-NEXT:    vmovaps %zmm0, 320(%rax)
10041 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10042 ; AVX512BW-NEXT:    vmovaps %zmm0, 128(%rax)
10043 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10044 ; AVX512BW-NEXT:    vmovaps %zmm0, 192(%rax)
10045 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10046 ; AVX512BW-NEXT:    vmovaps %zmm0, (%rax)
10047 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10048 ; AVX512BW-NEXT:    vmovaps %zmm0, 64(%rax)
10049 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10050 ; AVX512BW-NEXT:    vmovaps %zmm0, 384(%rax)
10051 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
10052 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10053 ; AVX512BW-NEXT:    vmovaps %zmm0, 384(%rax)
10054 ; AVX512BW-NEXT:    vmovdqa64 %zmm29, 448(%rax)
10055 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10056 ; AVX512BW-NEXT:    vmovaps %zmm0, 256(%rax)
10057 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, 320(%rax)
10058 ; AVX512BW-NEXT:    vmovups (%rsp), %zmm0 # 64-byte Reload
10059 ; AVX512BW-NEXT:    vmovaps %zmm0, 128(%rax)
10060 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10061 ; AVX512BW-NEXT:    vmovaps %zmm0, 192(%rax)
10062 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, (%rax)
10063 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10064 ; AVX512BW-NEXT:    vmovaps %zmm0, 64(%rax)
10065 ; AVX512BW-NEXT:    addq $7624, %rsp # imm = 0x1DC8
10066 ; AVX512BW-NEXT:    vzeroupper
10067 ; AVX512BW-NEXT:    retq
10068   %wide.vec = load <448 x i64>, ptr %in.vec, align 64
10069   %strided.vec0 = shufflevector <448 x i64> %wide.vec, <448 x i64> poison, <64 x i32> <i32 0, i32 7, i32 14, i32 21, i32 28, i32 35, i32 42, i32 49, i32 56, i32 63, i32 70, i32 77, i32 84, i32 91, i32 98, i32 105, i32 112, i32 119, i32 126, i32 133, i32 140, i32 147, i32 154, i32 161, i32 168, i32 175, i32 182, i32 189, i32 196, i32 203, i32 210, i32 217, i32 224, i32 231, i32 238, i32 245, i32 252, i32 259, i32 266, i32 273, i32 280, i32 287, i32 294, i32 301, i32 308, i32 315, i32 322, i32 329, i32 336, i32 343, i32 350, i32 357, i32 364, i32 371, i32 378, i32 385, i32 392, i32 399, i32 406, i32 413, i32 420, i32 427, i32 434, i32 441>
10070   %strided.vec1 = shufflevector <448 x i64> %wide.vec, <448 x i64> poison, <64 x i32> <i32 1, i32 8, i32 15, i32 22, i32 29, i32 36, i32 43, i32 50, i32 57, i32 64, i32 71, i32 78, i32 85, i32 92, i32 99, i32 106, i32 113, i32 120, i32 127, i32 134, i32 141, i32 148, i32 155, i32 162, i32 169, i32 176, i32 183, i32 190, i32 197, i32 204, i32 211, i32 218, i32 225, i32 232, i32 239, i32 246, i32 253, i32 260, i32 267, i32 274, i32 281, i32 288, i32 295, i32 302, i32 309, i32 316, i32 323, i32 330, i32 337, i32 344, i32 351, i32 358, i32 365, i32 372, i32 379, i32 386, i32 393, i32 400, i32 407, i32 414, i32 421, i32 428, i32 435, i32 442>
10071   %strided.vec2 = shufflevector <448 x i64> %wide.vec, <448 x i64> poison, <64 x i32> <i32 2, i32 9, i32 16, i32 23, i32 30, i32 37, i32 44, i32 51, i32 58, i32 65, i32 72, i32 79, i32 86, i32 93, i32 100, i32 107, i32 114, i32 121, i32 128, i32 135, i32 142, i32 149, i32 156, i32 163, i32 170, i32 177, i32 184, i32 191, i32 198, i32 205, i32 212, i32 219, i32 226, i32 233, i32 240, i32 247, i32 254, i32 261, i32 268, i32 275, i32 282, i32 289, i32 296, i32 303, i32 310, i32 317, i32 324, i32 331, i32 338, i32 345, i32 352, i32 359, i32 366, i32 373, i32 380, i32 387, i32 394, i32 401, i32 408, i32 415, i32 422, i32 429, i32 436, i32 443>
10072   %strided.vec3 = shufflevector <448 x i64> %wide.vec, <448 x i64> poison, <64 x i32> <i32 3, i32 10, i32 17, i32 24, i32 31, i32 38, i32 45, i32 52, i32 59, i32 66, i32 73, i32 80, i32 87, i32 94, i32 101, i32 108, i32 115, i32 122, i32 129, i32 136, i32 143, i32 150, i32 157, i32 164, i32 171, i32 178, i32 185, i32 192, i32 199, i32 206, i32 213, i32 220, i32 227, i32 234, i32 241, i32 248, i32 255, i32 262, i32 269, i32 276, i32 283, i32 290, i32 297, i32 304, i32 311, i32 318, i32 325, i32 332, i32 339, i32 346, i32 353, i32 360, i32 367, i32 374, i32 381, i32 388, i32 395, i32 402, i32 409, i32 416, i32 423, i32 430, i32 437, i32 444>
10073   %strided.vec4 = shufflevector <448 x i64> %wide.vec, <448 x i64> poison, <64 x i32> <i32 4, i32 11, i32 18, i32 25, i32 32, i32 39, i32 46, i32 53, i32 60, i32 67, i32 74, i32 81, i32 88, i32 95, i32 102, i32 109, i32 116, i32 123, i32 130, i32 137, i32 144, i32 151, i32 158, i32 165, i32 172, i32 179, i32 186, i32 193, i32 200, i32 207, i32 214, i32 221, i32 228, i32 235, i32 242, i32 249, i32 256, i32 263, i32 270, i32 277, i32 284, i32 291, i32 298, i32 305, i32 312, i32 319, i32 326, i32 333, i32 340, i32 347, i32 354, i32 361, i32 368, i32 375, i32 382, i32 389, i32 396, i32 403, i32 410, i32 417, i32 424, i32 431, i32 438, i32 445>
10074   %strided.vec5 = shufflevector <448 x i64> %wide.vec, <448 x i64> poison, <64 x i32> <i32 5, i32 12, i32 19, i32 26, i32 33, i32 40, i32 47, i32 54, i32 61, i32 68, i32 75, i32 82, i32 89, i32 96, i32 103, i32 110, i32 117, i32 124, i32 131, i32 138, i32 145, i32 152, i32 159, i32 166, i32 173, i32 180, i32 187, i32 194, i32 201, i32 208, i32 215, i32 222, i32 229, i32 236, i32 243, i32 250, i32 257, i32 264, i32 271, i32 278, i32 285, i32 292, i32 299, i32 306, i32 313, i32 320, i32 327, i32 334, i32 341, i32 348, i32 355, i32 362, i32 369, i32 376, i32 383, i32 390, i32 397, i32 404, i32 411, i32 418, i32 425, i32 432, i32 439, i32 446>
10075   %strided.vec6 = shufflevector <448 x i64> %wide.vec, <448 x i64> poison, <64 x i32> <i32 6, i32 13, i32 20, i32 27, i32 34, i32 41, i32 48, i32 55, i32 62, i32 69, i32 76, i32 83, i32 90, i32 97, i32 104, i32 111, i32 118, i32 125, i32 132, i32 139, i32 146, i32 153, i32 160, i32 167, i32 174, i32 181, i32 188, i32 195, i32 202, i32 209, i32 216, i32 223, i32 230, i32 237, i32 244, i32 251, i32 258, i32 265, i32 272, i32 279, i32 286, i32 293, i32 300, i32 307, i32 314, i32 321, i32 328, i32 335, i32 342, i32 349, i32 356, i32 363, i32 370, i32 377, i32 384, i32 391, i32 398, i32 405, i32 412, i32 419, i32 426, i32 433, i32 440, i32 447>
10076   store <64 x i64> %strided.vec0, ptr %out.vec0, align 64
10077   store <64 x i64> %strided.vec1, ptr %out.vec1, align 64
10078   store <64 x i64> %strided.vec2, ptr %out.vec2, align 64
10079   store <64 x i64> %strided.vec3, ptr %out.vec3, align 64
10080   store <64 x i64> %strided.vec4, ptr %out.vec4, align 64
10081   store <64 x i64> %strided.vec5, ptr %out.vec5, align 64
10082   store <64 x i64> %strided.vec6, ptr %out.vec6, align 64
10083   ret void
10085 ;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
10086 ; AVX: {{.*}}
10087 ; AVX1: {{.*}}
10088 ; AVX2: {{.*}}
10089 ; AVX2-FAST: {{.*}}
10090 ; AVX2-FAST-PERLANE: {{.*}}
10091 ; AVX2-SLOW: {{.*}}
10092 ; AVX512BW-FAST: {{.*}}
10093 ; AVX512BW-ONLY: {{.*}}
10094 ; AVX512BW-ONLY-FAST: {{.*}}
10095 ; AVX512BW-ONLY-SLOW: {{.*}}
10096 ; AVX512BW-SLOW: {{.*}}
10097 ; AVX512DQ-FAST: {{.*}}
10098 ; AVX512DQ-ONLY: {{.*}}
10099 ; AVX512DQ-SLOW: {{.*}}
10100 ; AVX512DQBW-FAST: {{.*}}
10101 ; AVX512DQBW-ONLY: {{.*}}
10102 ; AVX512DQBW-SLOW: {{.*}}
10103 ; AVX512F-FAST: {{.*}}
10104 ; AVX512F-ONLY: {{.*}}
10105 ; AVX512F-ONLY-FAST: {{.*}}
10106 ; AVX512F-ONLY-SLOW: {{.*}}
10107 ; AVX512F-SLOW: {{.*}}
10108 ; FALLBACK0: {{.*}}
10109 ; FALLBACK1: {{.*}}
10110 ; FALLBACK10: {{.*}}
10111 ; FALLBACK11: {{.*}}
10112 ; FALLBACK12: {{.*}}
10113 ; FALLBACK2: {{.*}}
10114 ; FALLBACK3: {{.*}}
10115 ; FALLBACK4: {{.*}}
10116 ; FALLBACK5: {{.*}}
10117 ; FALLBACK6: {{.*}}
10118 ; FALLBACK7: {{.*}}
10119 ; FALLBACK8: {{.*}}
10120 ; FALLBACK9: {{.*}}