[AArch64,ELF] Restrict MOVZ/MOVK to non-PIC large code model (#70178)
[llvm-project.git] / llvm / test / CodeGen / X86 / vector-interleaved-load-i64-stride-7.ll
blob864597f14e320ace9c763657c1a8a628200558db
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+sse2 | FileCheck %s --check-prefixes=SSE,FALLBACK0
3 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx  | FileCheck %s --check-prefixes=AVX,AVX1,AVX1-ONLY,FALLBACK1
4 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx2 | FileCheck %s --check-prefixes=AVX,AVX1,AVX2,AVX2-ONLY,AVX2-SLOW,FALLBACK2
5 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx2,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX,AVX1,AVX2,AVX2-ONLY,AVX2-FAST,FALLBACK3
6 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx2,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX,AVX1,AVX2,AVX2-ONLY,AVX2-FAST-PERLANE,FALLBACK4
7 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512F,AVX512-SLOW,AVX512F-SLOW,AVX512F-ONLY-SLOW,FALLBACK5
8 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512F,AVX512-FAST,AVX512F-FAST,AVX512F-ONLY-FAST,FALLBACK6
9 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512F,AVX512-SLOW,AVX512F-SLOW,AVX512DQ-SLOW,FALLBACK7
10 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512F,AVX512-FAST,AVX512F-FAST,AVX512DQ-FAST,FALLBACK8
11 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512bw | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512BW,AVX512-SLOW,AVX512BW-SLOW,AVX512BW-ONLY-SLOW,FALLBACK9
12 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512bw,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512BW,AVX512-FAST,AVX512BW-FAST,AVX512BW-ONLY-FAST,FALLBACK10
13 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq,+avx512bw | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512BW,AVX512-SLOW,AVX512BW-SLOW,AVX512DQBW-SLOW,FALLBACK11
14 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq,+avx512bw,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512BW,AVX512-FAST,AVX512BW-FAST,AVX512DQBW-FAST,FALLBACK12
16 ; These patterns are produced by LoopVectorizer for interleaved loads.
18 define void @load_i64_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), %zmm1
755 ; AVX512F-NEXT:    vmovdqa64 320(%rdi), %zmm4
756 ; AVX512F-NEXT:    vmovdqa64 256(%rdi), %zmm5
757 ; AVX512F-NEXT:    vmovdqa64 192(%rdi), %zmm6
758 ; AVX512F-NEXT:    vmovdqa64 128(%rdi), %zmm7
759 ; AVX512F-NEXT:    vmovdqa64 64(%rdi), %zmm2
760 ; AVX512F-NEXT:    vmovdqa64 (%rdi), %zmm3
761 ; AVX512F-NEXT:    vmovdqa {{.*#+}} ymm0 = <0,7,14,u>
762 ; AVX512F-NEXT:    vpermi2q %zmm2, %zmm3, %zmm0
763 ; AVX512F-NEXT:    movb $24, %al
764 ; AVX512F-NEXT:    kmovw %eax, %k2
765 ; AVX512F-NEXT:    vshufi64x2 {{.*#+}} zmm0 {%k2} = zmm7[4,5,4,5],zmm6[4,5,4,5]
766 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [10,3,10,3,10,3,10,3]
767 ; AVX512F-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
768 ; AVX512F-NEXT:    vpermi2q %zmm4, %zmm5, %zmm8
769 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm9 = [0,5,6,9,0,5,6,9]
770 ; AVX512F-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3]
771 ; AVX512F-NEXT:    vpermi2q %zmm1, %zmm8, %zmm9
772 ; AVX512F-NEXT:    movb $-32, %al
773 ; AVX512F-NEXT:    kmovw %eax, %k1
774 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm0 {%k1}
775 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [11,4,11,4,11,4,11,4]
776 ; AVX512F-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
777 ; AVX512F-NEXT:    vpermi2q %zmm4, %zmm5, %zmm8
778 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [0,5,6,10,0,5,6,10]
779 ; AVX512F-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
780 ; AVX512F-NEXT:    vpermi2q %zmm1, %zmm8, %zmm10
781 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm9 = [13,6,13,6,13,6,13,6]
782 ; AVX512F-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
783 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [14,0,0,7,14,0,0,7]
784 ; AVX512F-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
785 ; AVX512F-NEXT:    vpermi2q %zmm6, %zmm7, %zmm8
786 ; AVX512F-NEXT:    vmovdqa 16(%rdi), %xmm11
787 ; AVX512F-NEXT:    vpblendd {{.*#+}} xmm11 = xmm11[0,1],mem[2,3]
788 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm11, %zmm8, %zmm8
789 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm11 = [7,0,9,0,7,0,9,0]
790 ; AVX512F-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3]
791 ; AVX512F-NEXT:    vpermi2q %zmm7, %zmm6, %zmm11
792 ; AVX512F-NEXT:    vmovdqa 64(%rdi), %ymm12
793 ; 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]
794 ; AVX512F-NEXT:    vextracti128 $1, %ymm12, %xmm15
795 ; AVX512F-NEXT:    vinserti128 $1, 192(%rdi), %ymm0, %ymm13
796 ; AVX512F-NEXT:    vmovdqa 128(%rdi), %ymm12
797 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm13 = ymm12[0,1,2,3,4,5],ymm13[6,7]
798 ; AVX512F-NEXT:    vmovdqa {{.*#+}} xmm14 = [4,11]
799 ; AVX512F-NEXT:    vpermi2q %zmm2, %zmm3, %zmm14
800 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm13 = ymm14[0,1,2,3],ymm13[4,5,6,7]
801 ; AVX512F-NEXT:    vbroadcasti128 {{.*#+}} ymm14 = [4,11,4,11]
802 ; AVX512F-NEXT:    # ymm14 = mem[0,1,0,1]
803 ; AVX512F-NEXT:    vpermi2q %zmm6, %zmm7, %zmm14
804 ; AVX512F-NEXT:    vpermt2q %zmm6, %zmm9, %zmm7
805 ; AVX512F-NEXT:    vmovdqa {{.*#+}} ymm6 = <9,0,7,u>
806 ; AVX512F-NEXT:    vpermi2q %zmm3, %zmm2, %zmm6
807 ; AVX512F-NEXT:    vmovdqa64 %zmm7, %zmm6 {%k2}
808 ; AVX512F-NEXT:    vmovdqa64 %zmm10, %zmm6 {%k1}
809 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm7 = [12,5,12,5,12,5,12,5]
810 ; AVX512F-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
811 ; AVX512F-NEXT:    vpermi2q %zmm4, %zmm5, %zmm7
812 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [0,5,6,11,0,5,6,11]
813 ; AVX512F-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
814 ; AVX512F-NEXT:    vpermi2q %zmm1, %zmm7, %zmm10
815 ; AVX512F-NEXT:    movq {{[0-9]+}}(%rsp), %rax
816 ; AVX512F-NEXT:    movq {{[0-9]+}}(%rsp), %r10
817 ; AVX512F-NEXT:    vmovdqa64 %zmm10, %zmm8 {%k1}
818 ; AVX512F-NEXT:    vpermi2q %zmm4, %zmm5, %zmm9
819 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm7 = [0,5,6,12,0,5,6,12]
820 ; AVX512F-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3]
821 ; AVX512F-NEXT:    vpermi2q %zmm1, %zmm9, %zmm7
822 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm15, %zmm11, %zmm9
823 ; AVX512F-NEXT:    vmovdqa64 %zmm7, %zmm9 {%k1}
824 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm7 = [0,7,14,0,0,7,14,0]
825 ; AVX512F-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3]
826 ; AVX512F-NEXT:    vpermi2q %zmm4, %zmm5, %zmm7
827 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [4,5,6,13,4,5,6,13]
828 ; AVX512F-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
829 ; AVX512F-NEXT:    vpermi2q %zmm1, %zmm7, %zmm10
830 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm13, %zmm10, %zmm7
831 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [9,0,7,0,9,0,7,0]
832 ; AVX512F-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
833 ; AVX512F-NEXT:    vpermi2q %zmm5, %zmm4, %zmm10
834 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm11 = [4,5,6,14,4,5,6,14]
835 ; AVX512F-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3]
836 ; AVX512F-NEXT:    vpermi2q %zmm1, %zmm10, %zmm11
837 ; AVX512F-NEXT:    vmovdqa 192(%rdi), %ymm10
838 ; AVX512F-NEXT:    vpalignr {{.*#+}} ymm10 = ymm12[8,9,10,11,12,13,14,15],ymm10[0,1,2,3,4,5,6,7],ymm12[24,25,26,27,28,29,30,31],ymm10[16,17,18,19,20,21,22,23]
839 ; AVX512F-NEXT:    vmovdqa {{.*#+}} xmm12 = [5,12]
840 ; AVX512F-NEXT:    vpermi2q %zmm2, %zmm3, %zmm12
841 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm10 = ymm12[0,1,2,3],ymm10[4,5,6,7]
842 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm10, %zmm11, %zmm10
843 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm11 = [2,9,2,9,2,9,2,9]
844 ; AVX512F-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
845 ; AVX512F-NEXT:    vpermi2q %zmm4, %zmm5, %zmm11
846 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [4,5,8,15,4,5,8,15]
847 ; AVX512F-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
848 ; AVX512F-NEXT:    vpermi2q %zmm1, %zmm11, %zmm4
849 ; AVX512F-NEXT:    vmovdqa {{.*#+}} xmm1 = [6,13]
850 ; AVX512F-NEXT:    vpermi2q %zmm2, %zmm3, %zmm1
851 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm14[4,5,6,7]
852 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
853 ; AVX512F-NEXT:    vmovdqa64 %zmm0, (%rsi)
854 ; AVX512F-NEXT:    vmovdqa64 %zmm6, (%rdx)
855 ; AVX512F-NEXT:    vmovdqa64 %zmm8, (%rcx)
856 ; AVX512F-NEXT:    vmovdqa64 %zmm9, (%r8)
857 ; AVX512F-NEXT:    vmovdqa64 %zmm7, (%r9)
858 ; AVX512F-NEXT:    vmovdqa64 %zmm10, (%r10)
859 ; AVX512F-NEXT:    vmovdqa64 %zmm1, (%rax)
860 ; AVX512F-NEXT:    vzeroupper
861 ; AVX512F-NEXT:    retq
863 ; AVX512BW-LABEL: load_i64_stride7_vf8:
864 ; AVX512BW:       # %bb.0:
865 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
866 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %r10
867 ; AVX512BW-NEXT:    vmovdqa64 384(%rdi), %zmm1
868 ; AVX512BW-NEXT:    vmovdqa64 320(%rdi), %zmm4
869 ; AVX512BW-NEXT:    vmovdqa64 256(%rdi), %zmm5
870 ; AVX512BW-NEXT:    vmovdqa64 192(%rdi), %zmm6
871 ; AVX512BW-NEXT:    vmovdqa64 128(%rdi), %zmm7
872 ; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %zmm2
873 ; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm3
874 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} ymm0 = <0,7,14,u>
875 ; AVX512BW-NEXT:    vpermi2q %zmm2, %zmm3, %zmm0
876 ; AVX512BW-NEXT:    movb $24, %r11b
877 ; AVX512BW-NEXT:    kmovd %r11d, %k2
878 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm0 {%k2} = zmm7[4,5,4,5],zmm6[4,5,4,5]
879 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [10,3,10,3,10,3,10,3]
880 ; AVX512BW-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
881 ; AVX512BW-NEXT:    vpermi2q %zmm4, %zmm5, %zmm8
882 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm9 = [0,5,6,9,0,5,6,9]
883 ; AVX512BW-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3]
884 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm8, %zmm9
885 ; AVX512BW-NEXT:    movb $-32, %r11b
886 ; AVX512BW-NEXT:    kmovd %r11d, %k1
887 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm0 {%k1}
888 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [11,4,11,4,11,4,11,4]
889 ; AVX512BW-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
890 ; AVX512BW-NEXT:    vpermi2q %zmm4, %zmm5, %zmm8
891 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [0,5,6,10,0,5,6,10]
892 ; AVX512BW-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
893 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm8, %zmm10
894 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm9 = [13,6,13,6,13,6,13,6]
895 ; AVX512BW-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
896 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [14,0,0,7,14,0,0,7]
897 ; AVX512BW-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
898 ; AVX512BW-NEXT:    vpermi2q %zmm6, %zmm7, %zmm8
899 ; AVX512BW-NEXT:    vmovdqa 16(%rdi), %xmm11
900 ; AVX512BW-NEXT:    vpblendd {{.*#+}} xmm11 = xmm11[0,1],mem[2,3]
901 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm11, %zmm8, %zmm8
902 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm11 = [7,0,9,0,7,0,9,0]
903 ; AVX512BW-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3]
904 ; AVX512BW-NEXT:    vpermi2q %zmm7, %zmm6, %zmm11
905 ; AVX512BW-NEXT:    vinserti128 $1, 192(%rdi), %ymm0, %ymm13
906 ; AVX512BW-NEXT:    vmovdqa 128(%rdi), %ymm12
907 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm13 = ymm12[0,1,2,3,4,5],ymm13[6,7]
908 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} xmm14 = [4,11]
909 ; AVX512BW-NEXT:    vpermi2q %zmm2, %zmm3, %zmm14
910 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm13 = ymm14[0,1,2,3],ymm13[4,5,6,7]
911 ; AVX512BW-NEXT:    vbroadcasti128 {{.*#+}} ymm14 = [4,11,4,11]
912 ; AVX512BW-NEXT:    # ymm14 = mem[0,1,0,1]
913 ; AVX512BW-NEXT:    vpermi2q %zmm6, %zmm7, %zmm14
914 ; AVX512BW-NEXT:    vpermt2q %zmm6, %zmm9, %zmm7
915 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} ymm6 = <9,0,7,u>
916 ; AVX512BW-NEXT:    vpermi2q %zmm3, %zmm2, %zmm6
917 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm6 {%k2}
918 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm6 {%k1}
919 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm7 = [12,5,12,5,12,5,12,5]
920 ; AVX512BW-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
921 ; AVX512BW-NEXT:    vpermi2q %zmm4, %zmm5, %zmm7
922 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [0,5,6,11,0,5,6,11]
923 ; AVX512BW-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
924 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm7, %zmm10
925 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm8 {%k1}
926 ; AVX512BW-NEXT:    vpermi2q %zmm4, %zmm5, %zmm9
927 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm7 = [0,5,6,12,0,5,6,12]
928 ; AVX512BW-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3]
929 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm9, %zmm7
930 ; AVX512BW-NEXT:    vmovdqa 64(%rdi), %ymm9
931 ; AVX512BW-NEXT:    vpalignr {{.*#+}} 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]
932 ; AVX512BW-NEXT:    vextracti128 $1, %ymm9, %xmm9
933 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm9, %zmm11, %zmm9
934 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm9 {%k1}
935 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm7 = [0,7,14,0,0,7,14,0]
936 ; AVX512BW-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3]
937 ; AVX512BW-NEXT:    vpermi2q %zmm4, %zmm5, %zmm7
938 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [4,5,6,13,4,5,6,13]
939 ; AVX512BW-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
940 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm7, %zmm10
941 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm13, %zmm10, %zmm7
942 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [9,0,7,0,9,0,7,0]
943 ; AVX512BW-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
944 ; AVX512BW-NEXT:    vpermi2q %zmm5, %zmm4, %zmm10
945 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm11 = [4,5,6,14,4,5,6,14]
946 ; AVX512BW-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3]
947 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm10, %zmm11
948 ; AVX512BW-NEXT:    vmovdqa 192(%rdi), %ymm10
949 ; AVX512BW-NEXT:    vpalignr {{.*#+}} ymm10 = ymm12[8,9,10,11,12,13,14,15],ymm10[0,1,2,3,4,5,6,7],ymm12[24,25,26,27,28,29,30,31],ymm10[16,17,18,19,20,21,22,23]
950 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} xmm12 = [5,12]
951 ; AVX512BW-NEXT:    vpermi2q %zmm2, %zmm3, %zmm12
952 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm10 = ymm12[0,1,2,3],ymm10[4,5,6,7]
953 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm10, %zmm11, %zmm10
954 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm11 = [2,9,2,9,2,9,2,9]
955 ; AVX512BW-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
956 ; AVX512BW-NEXT:    vpermi2q %zmm4, %zmm5, %zmm11
957 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [4,5,8,15,4,5,8,15]
958 ; AVX512BW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
959 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm11, %zmm4
960 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} xmm1 = [6,13]
961 ; AVX512BW-NEXT:    vpermi2q %zmm2, %zmm3, %zmm1
962 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm14[4,5,6,7]
963 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
964 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, (%rsi)
965 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, (%rdx)
966 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, (%rcx)
967 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, (%r8)
968 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, (%r9)
969 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, (%r10)
970 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, (%rax)
971 ; AVX512BW-NEXT:    vzeroupper
972 ; AVX512BW-NEXT:    retq
973   %wide.vec = load <56 x i64>, ptr %in.vec, align 64
974   %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>
975   %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>
976   %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>
977   %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>
978   %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>
979   %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>
980   %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>
981   store <8 x i64> %strided.vec0, ptr %out.vec0, align 64
982   store <8 x i64> %strided.vec1, ptr %out.vec1, align 64
983   store <8 x i64> %strided.vec2, ptr %out.vec2, align 64
984   store <8 x i64> %strided.vec3, ptr %out.vec3, align 64
985   store <8 x i64> %strided.vec4, ptr %out.vec4, align 64
986   store <8 x i64> %strided.vec5, ptr %out.vec5, align 64
987   store <8 x i64> %strided.vec6, ptr %out.vec6, align 64
988   ret void
991 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 {
992 ; SSE-LABEL: load_i64_stride7_vf16:
993 ; SSE:       # %bb.0:
994 ; SSE-NEXT:    subq $536, %rsp # imm = 0x218
995 ; SSE-NEXT:    movapd 208(%rdi), %xmm3
996 ; SSE-NEXT:    movapd 96(%rdi), %xmm2
997 ; SSE-NEXT:    movapd 144(%rdi), %xmm4
998 ; SSE-NEXT:    movapd 192(%rdi), %xmm6
999 ; SSE-NEXT:    movapd 80(%rdi), %xmm5
1000 ; SSE-NEXT:    movapd 128(%rdi), %xmm8
1001 ; SSE-NEXT:    movapd 64(%rdi), %xmm10
1002 ; SSE-NEXT:    movapd 176(%rdi), %xmm11
1003 ; SSE-NEXT:    movapd (%rdi), %xmm12
1004 ; SSE-NEXT:    movapd 16(%rdi), %xmm9
1005 ; SSE-NEXT:    movapd 32(%rdi), %xmm7
1006 ; SSE-NEXT:    movapd 48(%rdi), %xmm0
1007 ; SSE-NEXT:    movapd 224(%rdi), %xmm13
1008 ; SSE-NEXT:    movapd 112(%rdi), %xmm14
1009 ; SSE-NEXT:    movapd 160(%rdi), %xmm1
1010 ; SSE-NEXT:    movapd %xmm0, %xmm15
1011 ; SSE-NEXT:    movsd {{.*#+}} xmm15 = xmm12[0],xmm15[1]
1012 ; SSE-NEXT:    movapd %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1013 ; SSE-NEXT:    shufpd {{.*#+}} xmm12 = xmm12[1],xmm10[0]
1014 ; SSE-NEXT:    movapd %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1015 ; SSE-NEXT:    movsd {{.*#+}} xmm10 = xmm9[0],xmm10[1]
1016 ; SSE-NEXT:    movapd %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1017 ; SSE-NEXT:    shufpd {{.*#+}} xmm9 = xmm9[1],xmm5[0]
1018 ; SSE-NEXT:    movapd %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1019 ; SSE-NEXT:    movsd {{.*#+}} xmm5 = xmm7[0],xmm5[1]
1020 ; SSE-NEXT:    movapd %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1021 ; SSE-NEXT:    shufpd {{.*#+}} xmm7 = xmm7[1],xmm2[0]
1022 ; SSE-NEXT:    movapd %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1023 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm0[0],xmm2[1]
1024 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1025 ; SSE-NEXT:    movapd %xmm1, %xmm0
1026 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm14[0],xmm0[1]
1027 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1028 ; SSE-NEXT:    shufpd {{.*#+}} xmm14 = xmm14[1],xmm11[0]
1029 ; SSE-NEXT:    movapd %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1030 ; SSE-NEXT:    movsd {{.*#+}} xmm11 = xmm8[0],xmm11[1]
1031 ; SSE-NEXT:    movapd %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1032 ; SSE-NEXT:    shufpd {{.*#+}} xmm8 = xmm8[1],xmm6[0]
1033 ; SSE-NEXT:    movapd %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1034 ; SSE-NEXT:    movsd {{.*#+}} xmm6 = xmm4[0],xmm6[1]
1035 ; SSE-NEXT:    movapd %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1036 ; SSE-NEXT:    shufpd {{.*#+}} xmm4 = xmm4[1],xmm3[0]
1037 ; SSE-NEXT:    movapd %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1038 ; SSE-NEXT:    movsd {{.*#+}} xmm3 = xmm1[0],xmm3[1]
1039 ; SSE-NEXT:    movapd %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1040 ; SSE-NEXT:    movapd 272(%rdi), %xmm0
1041 ; SSE-NEXT:    movapd %xmm0, %xmm1
1042 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm13[0],xmm1[1]
1043 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1044 ; SSE-NEXT:    movapd 288(%rdi), %xmm1
1045 ; SSE-NEXT:    shufpd {{.*#+}} xmm13 = xmm13[1],xmm1[0]
1046 ; SSE-NEXT:    movapd %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1047 ; SSE-NEXT:    movapd 240(%rdi), %xmm2
1048 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
1049 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1050 ; SSE-NEXT:    movapd 304(%rdi), %xmm1
1051 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
1052 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1053 ; SSE-NEXT:    movapd 256(%rdi), %xmm2
1054 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
1055 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1056 ; SSE-NEXT:    movapd 320(%rdi), %xmm1
1057 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
1058 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1059 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
1060 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1061 ; SSE-NEXT:    movapd 336(%rdi), %xmm2
1062 ; SSE-NEXT:    movapd 384(%rdi), %xmm0
1063 ; SSE-NEXT:    movapd %xmm0, %xmm1
1064 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
1065 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1066 ; SSE-NEXT:    movapd 400(%rdi), %xmm1
1067 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
1068 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1069 ; SSE-NEXT:    movapd 352(%rdi), %xmm2
1070 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
1071 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1072 ; SSE-NEXT:    movapd 416(%rdi), %xmm1
1073 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
1074 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1075 ; SSE-NEXT:    movapd 368(%rdi), %xmm2
1076 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
1077 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1078 ; SSE-NEXT:    movapd 432(%rdi), %xmm1
1079 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
1080 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1081 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
1082 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1083 ; SSE-NEXT:    movapd 448(%rdi), %xmm2
1084 ; SSE-NEXT:    movapd 496(%rdi), %xmm0
1085 ; SSE-NEXT:    movapd %xmm0, %xmm1
1086 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
1087 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1088 ; SSE-NEXT:    movapd 512(%rdi), %xmm1
1089 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
1090 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1091 ; SSE-NEXT:    movapd 464(%rdi), %xmm2
1092 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
1093 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1094 ; SSE-NEXT:    movapd 528(%rdi), %xmm1
1095 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
1096 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1097 ; SSE-NEXT:    movapd 480(%rdi), %xmm2
1098 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
1099 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1100 ; SSE-NEXT:    movapd 544(%rdi), %xmm1
1101 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
1102 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1103 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
1104 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1105 ; SSE-NEXT:    movapd 560(%rdi), %xmm13
1106 ; SSE-NEXT:    movapd 608(%rdi), %xmm0
1107 ; SSE-NEXT:    movapd %xmm0, %xmm1
1108 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm13[0],xmm1[1]
1109 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1110 ; SSE-NEXT:    movapd 624(%rdi), %xmm14
1111 ; SSE-NEXT:    shufpd {{.*#+}} xmm13 = xmm13[1],xmm14[0]
1112 ; SSE-NEXT:    movapd 576(%rdi), %xmm2
1113 ; SSE-NEXT:    movsd {{.*#+}} xmm14 = xmm2[0],xmm14[1]
1114 ; SSE-NEXT:    movapd 640(%rdi), %xmm1
1115 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
1116 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1117 ; SSE-NEXT:    movapd 592(%rdi), %xmm2
1118 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
1119 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1120 ; SSE-NEXT:    movapd 656(%rdi), %xmm1
1121 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
1122 ; SSE-NEXT:    movapd %xmm2, (%rsp) # 16-byte Spill
1123 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
1124 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1125 ; SSE-NEXT:    movapd 672(%rdi), %xmm6
1126 ; SSE-NEXT:    movapd 720(%rdi), %xmm0
1127 ; SSE-NEXT:    movapd %xmm0, %xmm7
1128 ; SSE-NEXT:    movsd {{.*#+}} xmm7 = xmm6[0],xmm7[1]
1129 ; SSE-NEXT:    movapd 736(%rdi), %xmm8
1130 ; SSE-NEXT:    shufpd {{.*#+}} xmm6 = xmm6[1],xmm8[0]
1131 ; SSE-NEXT:    movapd 688(%rdi), %xmm10
1132 ; SSE-NEXT:    movsd {{.*#+}} xmm8 = xmm10[0],xmm8[1]
1133 ; SSE-NEXT:    movapd 752(%rdi), %xmm12
1134 ; SSE-NEXT:    shufpd {{.*#+}} xmm10 = xmm10[1],xmm12[0]
1135 ; SSE-NEXT:    movapd 704(%rdi), %xmm15
1136 ; SSE-NEXT:    movsd {{.*#+}} xmm12 = xmm15[0],xmm12[1]
1137 ; SSE-NEXT:    movapd 768(%rdi), %xmm1
1138 ; SSE-NEXT:    shufpd {{.*#+}} xmm15 = xmm15[1],xmm1[0]
1139 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
1140 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1141 ; SSE-NEXT:    movapd 784(%rdi), %xmm0
1142 ; SSE-NEXT:    movapd 832(%rdi), %xmm4
1143 ; SSE-NEXT:    movapd %xmm4, %xmm2
1144 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm0[0],xmm2[1]
1145 ; SSE-NEXT:    movapd 848(%rdi), %xmm1
1146 ; SSE-NEXT:    shufpd {{.*#+}} xmm0 = xmm0[1],xmm1[0]
1147 ; SSE-NEXT:    movapd 800(%rdi), %xmm3
1148 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm3[0],xmm1[1]
1149 ; SSE-NEXT:    movapd 864(%rdi), %xmm5
1150 ; SSE-NEXT:    shufpd {{.*#+}} xmm3 = xmm3[1],xmm5[0]
1151 ; SSE-NEXT:    movapd 816(%rdi), %xmm9
1152 ; SSE-NEXT:    movsd {{.*#+}} xmm5 = xmm9[0],xmm5[1]
1153 ; SSE-NEXT:    movapd 880(%rdi), %xmm11
1154 ; SSE-NEXT:    shufpd {{.*#+}} xmm9 = xmm9[1],xmm11[0]
1155 ; SSE-NEXT:    movsd {{.*#+}} xmm11 = xmm4[0],xmm11[1]
1156 ; SSE-NEXT:    movapd %xmm7, 96(%rsi)
1157 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
1158 ; SSE-NEXT:    movaps %xmm4, 32(%rsi)
1159 ; SSE-NEXT:    movapd %xmm2, 112(%rsi)
1160 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
1161 ; SSE-NEXT:    movaps %xmm2, 48(%rsi)
1162 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
1163 ; SSE-NEXT:    movaps %xmm2, 64(%rsi)
1164 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
1165 ; SSE-NEXT:    movaps %xmm2, (%rsi)
1166 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
1167 ; SSE-NEXT:    movaps %xmm2, 80(%rsi)
1168 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
1169 ; SSE-NEXT:    movaps %xmm2, 16(%rsi)
1170 ; SSE-NEXT:    movapd %xmm6, 96(%rdx)
1171 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
1172 ; SSE-NEXT:    movaps %xmm2, 32(%rdx)
1173 ; SSE-NEXT:    movapd %xmm0, 112(%rdx)
1174 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1175 ; SSE-NEXT:    movaps %xmm0, 48(%rdx)
1176 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1177 ; SSE-NEXT:    movaps %xmm0, 64(%rdx)
1178 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1179 ; SSE-NEXT:    movaps %xmm0, (%rdx)
1180 ; SSE-NEXT:    movapd %xmm13, 80(%rdx)
1181 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1182 ; SSE-NEXT:    movaps %xmm0, 16(%rdx)
1183 ; SSE-NEXT:    movapd %xmm8, 96(%rcx)
1184 ; SSE-NEXT:    movapd %xmm1, 112(%rcx)
1185 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1186 ; SSE-NEXT:    movaps %xmm0, 64(%rcx)
1187 ; SSE-NEXT:    movapd %xmm14, 80(%rcx)
1188 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1189 ; SSE-NEXT:    movaps %xmm0, 32(%rcx)
1190 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1191 ; SSE-NEXT:    movaps %xmm0, 48(%rcx)
1192 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1193 ; SSE-NEXT:    movaps %xmm0, (%rcx)
1194 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1195 ; SSE-NEXT:    movaps %xmm0, 16(%rcx)
1196 ; SSE-NEXT:    movapd %xmm3, 112(%r8)
1197 ; SSE-NEXT:    movapd %xmm10, 96(%r8)
1198 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1199 ; SSE-NEXT:    movaps %xmm0, 80(%r8)
1200 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1201 ; SSE-NEXT:    movaps %xmm0, 64(%r8)
1202 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1203 ; SSE-NEXT:    movaps %xmm0, 48(%r8)
1204 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1205 ; SSE-NEXT:    movaps %xmm0, 32(%r8)
1206 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1207 ; SSE-NEXT:    movaps %xmm0, 16(%r8)
1208 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1209 ; SSE-NEXT:    movaps %xmm0, (%r8)
1210 ; SSE-NEXT:    movapd %xmm5, 112(%r9)
1211 ; SSE-NEXT:    movapd %xmm12, 96(%r9)
1212 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1213 ; SSE-NEXT:    movaps %xmm0, 80(%r9)
1214 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1215 ; SSE-NEXT:    movaps %xmm0, 64(%r9)
1216 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1217 ; SSE-NEXT:    movaps %xmm0, 48(%r9)
1218 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1219 ; SSE-NEXT:    movaps %xmm0, 32(%r9)
1220 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1221 ; SSE-NEXT:    movaps %xmm0, 16(%r9)
1222 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1223 ; SSE-NEXT:    movaps %xmm0, (%r9)
1224 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1225 ; SSE-NEXT:    movapd %xmm9, 112(%rax)
1226 ; SSE-NEXT:    movapd %xmm15, 96(%rax)
1227 ; SSE-NEXT:    movaps (%rsp), %xmm0 # 16-byte Reload
1228 ; SSE-NEXT:    movaps %xmm0, 80(%rax)
1229 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1230 ; SSE-NEXT:    movaps %xmm0, 64(%rax)
1231 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1232 ; SSE-NEXT:    movaps %xmm0, 48(%rax)
1233 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1234 ; SSE-NEXT:    movaps %xmm0, 32(%rax)
1235 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1236 ; SSE-NEXT:    movaps %xmm0, 16(%rax)
1237 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1238 ; SSE-NEXT:    movaps %xmm0, (%rax)
1239 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1240 ; SSE-NEXT:    movapd %xmm11, 112(%rax)
1241 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1242 ; SSE-NEXT:    movaps %xmm0, 96(%rax)
1243 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1244 ; SSE-NEXT:    movaps %xmm0, 80(%rax)
1245 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1246 ; SSE-NEXT:    movaps %xmm0, 64(%rax)
1247 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1248 ; SSE-NEXT:    movaps %xmm0, 48(%rax)
1249 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1250 ; SSE-NEXT:    movaps %xmm0, 32(%rax)
1251 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1252 ; SSE-NEXT:    movaps %xmm0, 16(%rax)
1253 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1254 ; SSE-NEXT:    movaps %xmm0, (%rax)
1255 ; SSE-NEXT:    addq $536, %rsp # imm = 0x218
1256 ; SSE-NEXT:    retq
1258 ; AVX1-ONLY-LABEL: load_i64_stride7_vf16:
1259 ; AVX1-ONLY:       # %bb.0:
1260 ; AVX1-ONLY-NEXT:    subq $552, %rsp # imm = 0x228
1261 ; AVX1-ONLY-NEXT:    vmovapd 544(%rdi), %ymm0
1262 ; AVX1-ONLY-NEXT:    vmovapd 96(%rdi), %ymm1
1263 ; AVX1-ONLY-NEXT:    vmovaps 768(%rdi), %ymm2
1264 ; AVX1-ONLY-NEXT:    vmovaps 320(%rdi), %ymm3
1265 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 384(%rdi), %ymm0, %ymm4
1266 ; AVX1-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1267 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm3[0,1,2,3,4,5],ymm4[6,7]
1268 ; AVX1-ONLY-NEXT:    vmovaps 224(%rdi), %xmm5
1269 ; AVX1-ONLY-NEXT:    vmovaps 272(%rdi), %xmm6
1270 ; AVX1-ONLY-NEXT:    vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1271 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm6 = xmm5[0,1],xmm6[2,3]
1272 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm6[0,1,2,3],ymm4[4,5,6,7]
1273 ; AVX1-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1274 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 832(%rdi), %ymm0, %ymm4
1275 ; AVX1-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1276 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm2[0,1,2,3,4,5],ymm4[6,7]
1277 ; AVX1-ONLY-NEXT:    vmovaps 672(%rdi), %xmm6
1278 ; AVX1-ONLY-NEXT:    vmovaps 720(%rdi), %xmm7
1279 ; AVX1-ONLY-NEXT:    vmovaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1280 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm7 = xmm6[0,1],xmm7[2,3]
1281 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm7[0,1,2,3],ymm4[4,5,6,7]
1282 ; AVX1-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1283 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 160(%rdi), %ymm0, %ymm4
1284 ; AVX1-ONLY-NEXT:    vmovupd %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1285 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm4 = ymm1[0,1,2],ymm4[3]
1286 ; AVX1-ONLY-NEXT:    vmovapd 48(%rdi), %xmm7
1287 ; AVX1-ONLY-NEXT:    vmovapd %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1288 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm7 = mem[0],xmm7[1]
1289 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm4 = ymm7[0,1],ymm4[2,3]
1290 ; AVX1-ONLY-NEXT:    vmovupd %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1291 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 608(%rdi), %ymm0, %ymm4
1292 ; AVX1-ONLY-NEXT:    vmovupd %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1293 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm4 = ymm0[0,1,2],ymm4[3]
1294 ; AVX1-ONLY-NEXT:    vmovapd 448(%rdi), %xmm7
1295 ; AVX1-ONLY-NEXT:    vmovapd 496(%rdi), %xmm8
1296 ; AVX1-ONLY-NEXT:    vmovapd %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1297 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm8 = xmm7[0],xmm8[1]
1298 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm4 = ymm8[0,1],ymm4[2,3]
1299 ; AVX1-ONLY-NEXT:    vmovupd %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1300 ; AVX1-ONLY-NEXT:    vmovdqa 288(%rdi), %xmm4
1301 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm4 = xmm5[8,9,10,11,12,13,14,15],xmm4[0,1,2,3,4,5,6,7]
1302 ; AVX1-ONLY-NEXT:    vmovapd 384(%rdi), %ymm5
1303 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm3 = ymm3[0],ymm5[0],ymm3[3],ymm5[2]
1304 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm3 = ymm4[0,1],ymm3[2,3]
1305 ; AVX1-ONLY-NEXT:    vmovupd %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1306 ; AVX1-ONLY-NEXT:    vmovdqa 736(%rdi), %xmm3
1307 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm3 = xmm6[8,9,10,11,12,13,14,15],xmm3[0,1,2,3,4,5,6,7]
1308 ; AVX1-ONLY-NEXT:    vmovapd 832(%rdi), %ymm4
1309 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm2 = ymm2[0],ymm4[0],ymm2[3],ymm4[2]
1310 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm3[0,1],ymm2[2,3]
1311 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1312 ; AVX1-ONLY-NEXT:    vmovapd 160(%rdi), %ymm2
1313 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[3],ymm2[2]
1314 ; AVX1-ONLY-NEXT:    vmovdqa 64(%rdi), %xmm6
1315 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm3 = mem[8,9,10,11,12,13,14,15],xmm6[0,1,2,3,4,5,6,7]
1316 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm3[0,1],ymm1[2,3]
1317 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1318 ; AVX1-ONLY-NEXT:    vmovapd 608(%rdi), %ymm8
1319 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm0[0],ymm8[0],ymm0[3],ymm8[2]
1320 ; AVX1-ONLY-NEXT:    vmovdqa 512(%rdi), %xmm9
1321 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = xmm7[8,9,10,11,12,13,14,15],xmm9[0,1,2,3,4,5,6,7]
1322 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
1323 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1324 ; AVX1-ONLY-NEXT:    vmovdqa 352(%rdi), %xmm1
1325 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm0
1326 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1,2],ymm5[3]
1327 ; AVX1-ONLY-NEXT:    vmovapd 240(%rdi), %xmm3
1328 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm5 = xmm3[0],mem[1]
1329 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm5[0,1],ymm0[2,3]
1330 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1331 ; AVX1-ONLY-NEXT:    vmovdqa 800(%rdi), %xmm7
1332 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm0
1333 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1,2],ymm4[3]
1334 ; AVX1-ONLY-NEXT:    vmovapd 688(%rdi), %xmm5
1335 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm4 = xmm5[0],mem[1]
1336 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm4[0,1],ymm0[2,3]
1337 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1338 ; AVX1-ONLY-NEXT:    vmovdqa 128(%rdi), %xmm4
1339 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
1340 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1,2],ymm2[3]
1341 ; AVX1-ONLY-NEXT:    vmovdqa 16(%rdi), %xmm10
1342 ; AVX1-ONLY-NEXT:    vpblendw {{.*#+}} xmm2 = xmm10[0,1,2,3],xmm6[4,5,6,7]
1343 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,3]
1344 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1345 ; AVX1-ONLY-NEXT:    vmovdqa 576(%rdi), %xmm2
1346 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
1347 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1,2],ymm8[3]
1348 ; AVX1-ONLY-NEXT:    vmovdqa 464(%rdi), %xmm6
1349 ; AVX1-ONLY-NEXT:    vpblendw {{.*#+}} xmm8 = xmm6[0,1,2,3],xmm9[4,5,6,7]
1350 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm8[0,1],ymm0[2,3]
1351 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1352 ; AVX1-ONLY-NEXT:    vmovapd 752(%rdi), %xmm12
1353 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm8 = ymm5[1],ymm12[0],ymm5[2],ymm12[2]
1354 ; AVX1-ONLY-NEXT:    vmovdqa 864(%rdi), %xmm5
1355 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm7 = xmm7[8,9,10,11,12,13,14,15],xmm5[0,1,2,3,4,5,6,7]
1356 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
1357 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm8[0,1],ymm7[2,3]
1358 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, (%rsp) # 32-byte Spill
1359 ; AVX1-ONLY-NEXT:    vmovapd 304(%rdi), %xmm7
1360 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm3 = ymm3[1],ymm7[0],ymm3[2],ymm7[2]
1361 ; AVX1-ONLY-NEXT:    vmovdqa 416(%rdi), %xmm8
1362 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = xmm1[8,9,10,11,12,13,14,15],xmm8[0,1,2,3,4,5,6,7]
1363 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
1364 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm3[0,1],ymm1[2,3]
1365 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1366 ; AVX1-ONLY-NEXT:    vmovapd 80(%rdi), %xmm11
1367 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm9 = ymm10[1],ymm11[0],ymm10[2],ymm11[2]
1368 ; AVX1-ONLY-NEXT:    vmovdqa 192(%rdi), %xmm10
1369 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm4 = xmm4[8,9,10,11,12,13,14,15],xmm10[0,1,2,3,4,5,6,7]
1370 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
1371 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm9[0,1],ymm4[2,3]
1372 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1373 ; AVX1-ONLY-NEXT:    vmovapd 528(%rdi), %xmm4
1374 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm6 = ymm6[1],ymm4[0],ymm6[2],ymm4[2]
1375 ; AVX1-ONLY-NEXT:    vmovdqa 640(%rdi), %xmm0
1376 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm2 = xmm2[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
1377 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
1378 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm13 = ymm6[0,1],ymm2[2,3]
1379 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm2
1380 ; AVX1-ONLY-NEXT:    vmovapd 352(%rdi), %ymm6
1381 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm6[0,1,2],ymm2[3]
1382 ; AVX1-ONLY-NEXT:    vmovapd 256(%rdi), %xmm8
1383 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm7 = xmm8[0],xmm7[1]
1384 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm14 = ymm7[0,1],ymm2[2,3]
1385 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm2
1386 ; AVX1-ONLY-NEXT:    vmovapd 800(%rdi), %ymm3
1387 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm3[0,1,2],ymm2[3]
1388 ; AVX1-ONLY-NEXT:    vmovapd 704(%rdi), %xmm5
1389 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm7 = xmm5[0],xmm12[1]
1390 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm12 = ymm7[0,1],ymm2[2,3]
1391 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
1392 ; AVX1-ONLY-NEXT:    vmovapd 576(%rdi), %ymm7
1393 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm7[0,1,2],ymm0[3]
1394 ; AVX1-ONLY-NEXT:    vmovapd 480(%rdi), %xmm1
1395 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm4 = xmm1[0],xmm4[1]
1396 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm9 = ymm4[0,1],ymm0[2,3]
1397 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm0
1398 ; AVX1-ONLY-NEXT:    vmovapd 128(%rdi), %ymm10
1399 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm10[0,1,2],ymm0[3]
1400 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm4 = mem[0],xmm11[1]
1401 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm11 = ymm4[0,1],ymm0[2,3]
1402 ; AVX1-ONLY-NEXT:    vmovapd 416(%rdi), %ymm2
1403 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm4 = ymm6[0],ymm2[0],ymm6[3],ymm2[2]
1404 ; AVX1-ONLY-NEXT:    vmovdqa 320(%rdi), %xmm6
1405 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm8 = xmm8[8,9,10,11,12,13,14,15],xmm6[0,1,2,3,4,5,6,7]
1406 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm8 = ymm8[0,1],ymm4[2,3]
1407 ; AVX1-ONLY-NEXT:    vmovapd 864(%rdi), %ymm4
1408 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm3 = ymm3[0],ymm4[0],ymm3[3],ymm4[2]
1409 ; AVX1-ONLY-NEXT:    vmovdqa 768(%rdi), %xmm0
1410 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm5 = xmm5[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
1411 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm5 = ymm5[0,1],ymm3[2,3]
1412 ; AVX1-ONLY-NEXT:    vmovdqa 544(%rdi), %xmm3
1413 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = xmm1[8,9,10,11,12,13,14,15],xmm3[0,1,2,3,4,5,6,7]
1414 ; AVX1-ONLY-NEXT:    vmovapd 640(%rdi), %ymm3
1415 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm7 = ymm7[0],ymm3[0],ymm7[3],ymm3[2]
1416 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm7 = ymm1[0,1],ymm7[2,3]
1417 ; AVX1-ONLY-NEXT:    vmovapd 192(%rdi), %ymm1
1418 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm10 = ymm10[0],ymm1[0],ymm10[3],ymm1[2]
1419 ; AVX1-ONLY-NEXT:    vmovdqa 96(%rdi), %xmm15
1420 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm15 = mem[8,9,10,11,12,13,14,15],xmm15[0,1,2,3,4,5,6,7]
1421 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm10 = ymm15[0,1],ymm10[2,3]
1422 ; AVX1-ONLY-NEXT:    vblendpd $7, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
1423 ; AVX1-ONLY-NEXT:    # ymm2 = mem[0,1,2],ymm2[3]
1424 ; AVX1-ONLY-NEXT:    vpblendw $15, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6, %xmm6 # 16-byte Folded Reload
1425 ; AVX1-ONLY-NEXT:    # xmm6 = mem[0,1,2,3],xmm6[4,5,6,7]
1426 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm6[0,1],ymm2[2,3]
1427 ; AVX1-ONLY-NEXT:    vblendpd $7, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload
1428 ; AVX1-ONLY-NEXT:    # ymm4 = mem[0,1,2],ymm4[3]
1429 ; AVX1-ONLY-NEXT:    vpblendw $15, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
1430 ; AVX1-ONLY-NEXT:    # xmm0 = mem[0,1,2,3],xmm0[4,5,6,7]
1431 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm4[2,3]
1432 ; AVX1-ONLY-NEXT:    vblendpd $7, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
1433 ; AVX1-ONLY-NEXT:    # ymm1 = mem[0,1,2],ymm1[3]
1434 ; AVX1-ONLY-NEXT:    vmovapd {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
1435 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm4 = xmm4[0],mem[1]
1436 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm4[0,1],ymm1[2,3]
1437 ; AVX1-ONLY-NEXT:    vblendpd $7, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
1438 ; AVX1-ONLY-NEXT:    # ymm3 = mem[0,1,2],ymm3[3]
1439 ; AVX1-ONLY-NEXT:    vmovapd {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
1440 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm4 = xmm4[0],mem[1]
1441 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm3 = ymm4[0,1],ymm3[2,3]
1442 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
1443 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, 64(%rsi)
1444 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
1445 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, (%rsi)
1446 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
1447 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, 96(%rsi)
1448 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
1449 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, 32(%rsi)
1450 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
1451 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, 64(%rdx)
1452 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
1453 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, (%rdx)
1454 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
1455 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, 96(%rdx)
1456 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
1457 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, 32(%rdx)
1458 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
1459 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, 64(%rcx)
1460 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
1461 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, (%rcx)
1462 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
1463 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, 96(%rcx)
1464 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
1465 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, 32(%rcx)
1466 ; AVX1-ONLY-NEXT:    vmovapd %ymm13, 64(%r8)
1467 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
1468 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, (%r8)
1469 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
1470 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, 32(%r8)
1471 ; AVX1-ONLY-NEXT:    vmovups (%rsp), %ymm4 # 32-byte Reload
1472 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, 96(%r8)
1473 ; AVX1-ONLY-NEXT:    vmovapd %ymm11, (%r9)
1474 ; AVX1-ONLY-NEXT:    vmovapd %ymm9, 64(%r9)
1475 ; AVX1-ONLY-NEXT:    vmovapd %ymm12, 96(%r9)
1476 ; AVX1-ONLY-NEXT:    vmovapd %ymm14, 32(%r9)
1477 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1478 ; AVX1-ONLY-NEXT:    vmovapd %ymm10, (%rax)
1479 ; AVX1-ONLY-NEXT:    vmovapd %ymm7, 64(%rax)
1480 ; AVX1-ONLY-NEXT:    vmovapd %ymm5, 96(%rax)
1481 ; AVX1-ONLY-NEXT:    vmovapd %ymm8, 32(%rax)
1482 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1483 ; AVX1-ONLY-NEXT:    vmovapd %ymm3, 64(%rax)
1484 ; AVX1-ONLY-NEXT:    vmovapd %ymm1, (%rax)
1485 ; AVX1-ONLY-NEXT:    vmovapd %ymm0, 96(%rax)
1486 ; AVX1-ONLY-NEXT:    vmovapd %ymm2, 32(%rax)
1487 ; AVX1-ONLY-NEXT:    addq $552, %rsp # imm = 0x228
1488 ; AVX1-ONLY-NEXT:    vzeroupper
1489 ; AVX1-ONLY-NEXT:    retq
1491 ; AVX2-ONLY-LABEL: load_i64_stride7_vf16:
1492 ; AVX2-ONLY:       # %bb.0:
1493 ; AVX2-ONLY-NEXT:    subq $520, %rsp # imm = 0x208
1494 ; AVX2-ONLY-NEXT:    vmovdqa 544(%rdi), %ymm0
1495 ; AVX2-ONLY-NEXT:    vmovdqa 96(%rdi), %ymm1
1496 ; AVX2-ONLY-NEXT:    vmovdqa 768(%rdi), %ymm2
1497 ; AVX2-ONLY-NEXT:    vmovdqa 320(%rdi), %ymm3
1498 ; AVX2-ONLY-NEXT:    vmovdqa 384(%rdi), %xmm4
1499 ; AVX2-ONLY-NEXT:    vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1500 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm4
1501 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm4 = ymm3[0,1,2,3,4,5],ymm4[6,7]
1502 ; AVX2-ONLY-NEXT:    vmovdqa 224(%rdi), %xmm5
1503 ; AVX2-ONLY-NEXT:    vmovdqa 272(%rdi), %xmm6
1504 ; AVX2-ONLY-NEXT:    vmovdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1505 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm6 = xmm5[0,1],xmm6[2,3]
1506 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm4 = ymm6[0,1,2,3],ymm4[4,5,6,7]
1507 ; AVX2-ONLY-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1508 ; AVX2-ONLY-NEXT:    vmovdqa 832(%rdi), %xmm4
1509 ; AVX2-ONLY-NEXT:    vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1510 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm4
1511 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm4 = ymm2[0,1,2,3,4,5],ymm4[6,7]
1512 ; AVX2-ONLY-NEXT:    vmovdqa 672(%rdi), %xmm6
1513 ; AVX2-ONLY-NEXT:    vmovdqa 720(%rdi), %xmm13
1514 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm7 = xmm6[0,1],xmm13[2,3]
1515 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm4 = ymm7[0,1,2,3],ymm4[4,5,6,7]
1516 ; AVX2-ONLY-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1517 ; AVX2-ONLY-NEXT:    vmovdqa 160(%rdi), %xmm4
1518 ; AVX2-ONLY-NEXT:    vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1519 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm4
1520 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm4 = ymm1[0,1,2,3,4,5],ymm4[6,7]
1521 ; AVX2-ONLY-NEXT:    vmovdqa 48(%rdi), %xmm11
1522 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm7 = mem[0,1],xmm11[2,3]
1523 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm4 = ymm7[0,1,2,3],ymm4[4,5,6,7]
1524 ; AVX2-ONLY-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1525 ; AVX2-ONLY-NEXT:    vmovdqa 608(%rdi), %xmm4
1526 ; AVX2-ONLY-NEXT:    vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1527 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm4
1528 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm4 = ymm0[0,1,2,3,4,5],ymm4[6,7]
1529 ; AVX2-ONLY-NEXT:    vmovdqa 448(%rdi), %xmm7
1530 ; AVX2-ONLY-NEXT:    vmovdqa 496(%rdi), %xmm8
1531 ; AVX2-ONLY-NEXT:    vmovdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1532 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm8 = xmm7[0,1],xmm8[2,3]
1533 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm4 = ymm8[0,1,2,3],ymm4[4,5,6,7]
1534 ; AVX2-ONLY-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1535 ; AVX2-ONLY-NEXT:    vmovdqa 288(%rdi), %xmm4
1536 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm4 = xmm5[8,9,10,11,12,13,14,15],xmm4[0,1,2,3,4,5,6,7]
1537 ; AVX2-ONLY-NEXT:    vmovdqa 384(%rdi), %ymm5
1538 ; 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]
1539 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
1540 ; AVX2-ONLY-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1541 ; AVX2-ONLY-NEXT:    vmovdqa 736(%rdi), %xmm3
1542 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm3 = xmm6[8,9,10,11,12,13,14,15],xmm3[0,1,2,3,4,5,6,7]
1543 ; AVX2-ONLY-NEXT:    vmovdqa 832(%rdi), %ymm4
1544 ; 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]
1545 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
1546 ; AVX2-ONLY-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1547 ; AVX2-ONLY-NEXT:    vmovdqa 160(%rdi), %ymm2
1548 ; 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]
1549 ; AVX2-ONLY-NEXT:    vmovdqa 64(%rdi), %xmm3
1550 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm6 = mem[8,9,10,11,12,13,14,15],xmm3[0,1,2,3,4,5,6,7]
1551 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm6[0,1,2,3],ymm1[4,5,6,7]
1552 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1553 ; AVX2-ONLY-NEXT:    vmovdqa 608(%rdi), %ymm1
1554 ; 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]
1555 ; AVX2-ONLY-NEXT:    vmovdqa 512(%rdi), %xmm6
1556 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm7 = xmm7[8,9,10,11,12,13,14,15],xmm6[0,1,2,3,4,5,6,7]
1557 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm7[0,1,2,3],ymm0[4,5,6,7]
1558 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1559 ; AVX2-ONLY-NEXT:    vpbroadcastq 352(%rdi), %ymm0
1560 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm5[1],ymm0[3],ymm5[3]
1561 ; AVX2-ONLY-NEXT:    vmovdqa 240(%rdi), %xmm5
1562 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm5 = xmm5[0,1],mem[2,3]
1563 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm5[0,1,2,3],ymm0[4,5,6,7]
1564 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1565 ; AVX2-ONLY-NEXT:    vpbroadcastq 800(%rdi), %ymm0
1566 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm4[1],ymm0[3],ymm4[3]
1567 ; AVX2-ONLY-NEXT:    vmovdqa 688(%rdi), %xmm4
1568 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm4 = xmm4[0,1],mem[2,3]
1569 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm4[0,1,2,3],ymm0[4,5,6,7]
1570 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1571 ; AVX2-ONLY-NEXT:    vpbroadcastq 128(%rdi), %ymm0
1572 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm2[1],ymm0[3],ymm2[3]
1573 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm2 = mem[0,1],xmm3[2,3]
1574 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
1575 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1576 ; AVX2-ONLY-NEXT:    vpbroadcastq 576(%rdi), %ymm0
1577 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
1578 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = mem[0,1],xmm6[2,3]
1579 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
1580 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1581 ; AVX2-ONLY-NEXT:    vmovdqa 736(%rdi), %ymm0
1582 ; 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]
1583 ; AVX2-ONLY-NEXT:    vmovdqa 864(%rdi), %xmm1
1584 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm2 = mem[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
1585 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
1586 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]
1587 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1588 ; AVX2-ONLY-NEXT:    vmovdqa 288(%rdi), %ymm0
1589 ; 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]
1590 ; AVX2-ONLY-NEXT:    vmovdqa 416(%rdi), %xmm2
1591 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm3 = mem[8,9,10,11,12,13,14,15],xmm2[0,1,2,3,4,5,6,7]
1592 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm3
1593 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm0 = ymm0[2,3],ymm3[2,3]
1594 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1595 ; AVX2-ONLY-NEXT:    vmovdqa 64(%rdi), %ymm0
1596 ; 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]
1597 ; AVX2-ONLY-NEXT:    vmovdqa 192(%rdi), %xmm10
1598 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm4 = mem[8,9,10,11,12,13,14,15],xmm10[0,1,2,3,4,5,6,7]
1599 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm4
1600 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm0 = ymm0[2,3],ymm4[2,3]
1601 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1602 ; AVX2-ONLY-NEXT:    vmovdqa 512(%rdi), %ymm0
1603 ; 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]
1604 ; AVX2-ONLY-NEXT:    vmovdqa 640(%rdi), %xmm4
1605 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm5 = mem[8,9,10,11,12,13,14,15],xmm4[0,1,2,3,4,5,6,7]
1606 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm5, %ymm0, %ymm5
1607 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm0 = ymm0[2,3],ymm5[2,3]
1608 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, (%rsp) # 32-byte Spill
1609 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm0
1610 ; AVX2-ONLY-NEXT:    vmovdqa 352(%rdi), %ymm6
1611 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm6[0,1,2,3,4,5],ymm0[6,7]
1612 ; AVX2-ONLY-NEXT:    vmovdqa 256(%rdi), %xmm8
1613 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm5 = xmm8[0,1],mem[2,3]
1614 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm5[0,1,2,3],ymm0[4,5,6,7]
1615 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1616 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm0
1617 ; AVX2-ONLY-NEXT:    vmovdqa 800(%rdi), %ymm3
1618 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm0[6,7]
1619 ; AVX2-ONLY-NEXT:    vmovdqa 704(%rdi), %xmm7
1620 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm5 = xmm7[0,1],mem[2,3]
1621 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm14 = ymm5[0,1,2,3],ymm0[4,5,6,7]
1622 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm0
1623 ; AVX2-ONLY-NEXT:    vmovdqa 576(%rdi), %ymm9
1624 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm9[0,1,2,3,4,5],ymm0[6,7]
1625 ; AVX2-ONLY-NEXT:    vmovdqa 480(%rdi), %xmm1
1626 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm5 = xmm1[0,1],mem[2,3]
1627 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm12 = ymm5[0,1,2,3],ymm0[4,5,6,7]
1628 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm10, %ymm0, %ymm0
1629 ; AVX2-ONLY-NEXT:    vmovdqa 128(%rdi), %ymm10
1630 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm10[0,1,2,3,4,5],ymm0[6,7]
1631 ; AVX2-ONLY-NEXT:    vmovdqa 32(%rdi), %xmm5
1632 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm5 = xmm5[0,1],mem[2,3]
1633 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm0[4,5,6,7]
1634 ; AVX2-ONLY-NEXT:    vmovdqa 416(%rdi), %ymm4
1635 ; 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]
1636 ; AVX2-ONLY-NEXT:    vmovdqa 320(%rdi), %xmm2
1637 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm8 = xmm8[8,9,10,11,12,13,14,15],xmm2[0,1,2,3,4,5,6,7]
1638 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm6 = ymm8[0,1,2,3],ymm6[4,5,6,7]
1639 ; AVX2-ONLY-NEXT:    vmovdqa 864(%rdi), %ymm8
1640 ; 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]
1641 ; AVX2-ONLY-NEXT:    vmovdqa 768(%rdi), %xmm0
1642 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm7 = xmm7[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
1643 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3],ymm3[4,5,6,7]
1644 ; AVX2-ONLY-NEXT:    vmovdqa 544(%rdi), %xmm3
1645 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = xmm1[8,9,10,11,12,13,14,15],xmm3[0,1,2,3,4,5,6,7]
1646 ; AVX2-ONLY-NEXT:    vmovdqa 640(%rdi), %ymm3
1647 ; 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]
1648 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm9[4,5,6,7]
1649 ; AVX2-ONLY-NEXT:    vmovdqa 192(%rdi), %ymm9
1650 ; 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]
1651 ; AVX2-ONLY-NEXT:    vmovdqa 96(%rdi), %xmm15
1652 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm15 = mem[8,9,10,11,12,13,14,15],xmm15[0,1,2,3,4,5,6,7]
1653 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm10 = ymm15[0,1,2,3],ymm10[4,5,6,7]
1654 ; AVX2-ONLY-NEXT:    vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 16-byte Folded Reload
1655 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm4 = ymm15[1],ymm4[1],ymm15[3],ymm4[3]
1656 ; AVX2-ONLY-NEXT:    vpblendd $3, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
1657 ; AVX2-ONLY-NEXT:    # xmm2 = mem[0,1],xmm2[2,3]
1658 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm15 = ymm2[0,1,2,3],ymm4[4,5,6,7]
1659 ; AVX2-ONLY-NEXT:    vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 16-byte Folded Reload
1660 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm2 = ymm2[1],ymm8[1],ymm2[3],ymm8[3]
1661 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm0 = xmm13[0,1],xmm0[2,3]
1662 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm13 = ymm0[0,1,2,3],ymm2[4,5,6,7]
1663 ; AVX2-ONLY-NEXT:    vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 16-byte Folded Reload
1664 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm9[1],ymm0[3],ymm9[3]
1665 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm2 = xmm11[0,1],mem[2,3]
1666 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm11 = ymm2[0,1,2,3],ymm0[4,5,6,7]
1667 ; AVX2-ONLY-NEXT:    vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 16-byte Folded Reload
1668 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm3[1],ymm0[3],ymm3[3]
1669 ; AVX2-ONLY-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
1670 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0,1],mem[2,3]
1671 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
1672 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1673 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 64(%rsi)
1674 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1675 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, (%rsi)
1676 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1677 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 96(%rsi)
1678 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1679 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 32(%rsi)
1680 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1681 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 64(%rdx)
1682 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1683 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, (%rdx)
1684 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1685 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 96(%rdx)
1686 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1687 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 32(%rdx)
1688 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1689 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 64(%rcx)
1690 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1691 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, (%rcx)
1692 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1693 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 96(%rcx)
1694 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1695 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 32(%rcx)
1696 ; AVX2-ONLY-NEXT:    vmovups (%rsp), %ymm2 # 32-byte Reload
1697 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 64(%r8)
1698 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1699 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, (%r8)
1700 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1701 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 32(%r8)
1702 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1703 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 96(%r8)
1704 ; AVX2-ONLY-NEXT:    vmovdqa %ymm5, (%r9)
1705 ; AVX2-ONLY-NEXT:    vmovdqa %ymm12, 64(%r9)
1706 ; AVX2-ONLY-NEXT:    vmovdqa %ymm14, 96(%r9)
1707 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1708 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 32(%r9)
1709 ; AVX2-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1710 ; AVX2-ONLY-NEXT:    vmovdqa %ymm10, (%rax)
1711 ; AVX2-ONLY-NEXT:    vmovdqa %ymm1, 64(%rax)
1712 ; AVX2-ONLY-NEXT:    vmovdqa %ymm7, 96(%rax)
1713 ; AVX2-ONLY-NEXT:    vmovdqa %ymm6, 32(%rax)
1714 ; AVX2-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1715 ; AVX2-ONLY-NEXT:    vmovdqa %ymm0, 64(%rax)
1716 ; AVX2-ONLY-NEXT:    vmovdqa %ymm11, (%rax)
1717 ; AVX2-ONLY-NEXT:    vmovdqa %ymm13, 96(%rax)
1718 ; AVX2-ONLY-NEXT:    vmovdqa %ymm15, 32(%rax)
1719 ; AVX2-ONLY-NEXT:    addq $520, %rsp # imm = 0x208
1720 ; AVX2-ONLY-NEXT:    vzeroupper
1721 ; AVX2-ONLY-NEXT:    retq
1723 ; AVX512F-LABEL: load_i64_stride7_vf16:
1724 ; AVX512F:       # %bb.0:
1725 ; AVX512F-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1726 ; AVX512F-NEXT:    movq {{[0-9]+}}(%rsp), %r10
1727 ; AVX512F-NEXT:    vmovdqa64 832(%rdi), %zmm28
1728 ; AVX512F-NEXT:    vmovdqa64 768(%rdi), %zmm30
1729 ; AVX512F-NEXT:    vmovdqa64 704(%rdi), %zmm0
1730 ; AVX512F-NEXT:    vmovdqa64 640(%rdi), %zmm25
1731 ; AVX512F-NEXT:    vmovdqa64 576(%rdi), %zmm2
1732 ; AVX512F-NEXT:    vmovdqa64 512(%rdi), %zmm24
1733 ; AVX512F-NEXT:    vmovdqa64 448(%rdi), %zmm6
1734 ; AVX512F-NEXT:    vmovdqa64 384(%rdi), %zmm14
1735 ; AVX512F-NEXT:    vmovdqa64 320(%rdi), %zmm15
1736 ; AVX512F-NEXT:    vmovdqa64 256(%rdi), %zmm9
1737 ; AVX512F-NEXT:    vmovdqa64 192(%rdi), %zmm27
1738 ; AVX512F-NEXT:    vmovdqa64 128(%rdi), %zmm10
1739 ; AVX512F-NEXT:    vmovdqa64 64(%rdi), %zmm26
1740 ; AVX512F-NEXT:    vmovdqa64 (%rdi), %zmm1
1741 ; AVX512F-NEXT:    vmovdqa {{.*#+}} ymm7 = <0,7,14,u>
1742 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm29
1743 ; AVX512F-NEXT:    vpermt2q %zmm26, %zmm7, %zmm29
1744 ; AVX512F-NEXT:    movb $24, %r11b
1745 ; AVX512F-NEXT:    kmovw %r11d, %k2
1746 ; AVX512F-NEXT:    vshufi64x2 {{.*#+}} zmm29 {%k2} = zmm10[4,5,4,5],zmm27[4,5,4,5]
1747 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm16 = [10,3,10,3,10,3,10,3]
1748 ; AVX512F-NEXT:    # zmm16 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1749 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm17
1750 ; AVX512F-NEXT:    vpermt2q %zmm15, %zmm16, %zmm17
1751 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm18 = [0,5,6,9,0,5,6,9]
1752 ; AVX512F-NEXT:    # zmm18 = mem[0,1,2,3,0,1,2,3]
1753 ; AVX512F-NEXT:    vpermt2q %zmm14, %zmm18, %zmm17
1754 ; AVX512F-NEXT:    movb $-32, %r11b
1755 ; AVX512F-NEXT:    kmovw %r11d, %k1
1756 ; AVX512F-NEXT:    vmovdqa64 %zmm17, %zmm29 {%k1}
1757 ; AVX512F-NEXT:    vpermi2q %zmm24, %zmm6, %zmm7
1758 ; AVX512F-NEXT:    vshufi64x2 {{.*#+}} zmm7 {%k2} = zmm2[4,5,4,5],zmm25[4,5,4,5]
1759 ; AVX512F-NEXT:    vpermi2q %zmm30, %zmm0, %zmm16
1760 ; AVX512F-NEXT:    vpermt2q %zmm28, %zmm18, %zmm16
1761 ; AVX512F-NEXT:    vmovdqa64 %zmm16, %zmm7 {%k1}
1762 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm18 = [11,4,11,4,11,4,11,4]
1763 ; AVX512F-NEXT:    # zmm18 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1764 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm19
1765 ; AVX512F-NEXT:    vpermt2q %zmm15, %zmm18, %zmm19
1766 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm20 = [0,5,6,10,0,5,6,10]
1767 ; AVX512F-NEXT:    # zmm20 = mem[0,1,2,3,0,1,2,3]
1768 ; AVX512F-NEXT:    vpermt2q %zmm14, %zmm20, %zmm19
1769 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm22 = [13,6,13,6,13,6,13,6]
1770 ; AVX512F-NEXT:    # zmm22 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1771 ; AVX512F-NEXT:    vmovdqa64 %zmm10, %zmm21
1772 ; AVX512F-NEXT:    vpermt2q %zmm27, %zmm22, %zmm21
1773 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} ymm16 = <9,0,7,u>
1774 ; AVX512F-NEXT:    vmovdqa64 %zmm26, %zmm17
1775 ; AVX512F-NEXT:    vpermt2q %zmm1, %zmm16, %zmm17
1776 ; AVX512F-NEXT:    vmovdqa64 %zmm21, %zmm17 {%k2}
1777 ; AVX512F-NEXT:    vmovdqa64 %zmm19, %zmm17 {%k1}
1778 ; AVX512F-NEXT:    vpermi2q %zmm30, %zmm0, %zmm18
1779 ; AVX512F-NEXT:    vpermt2q %zmm28, %zmm20, %zmm18
1780 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm19
1781 ; AVX512F-NEXT:    vpermt2q %zmm25, %zmm22, %zmm19
1782 ; AVX512F-NEXT:    vpermi2q %zmm6, %zmm24, %zmm16
1783 ; AVX512F-NEXT:    vmovdqa64 %zmm19, %zmm16 {%k2}
1784 ; AVX512F-NEXT:    vmovdqa64 %zmm18, %zmm16 {%k1}
1785 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm20 = [12,5,12,5,12,5,12,5]
1786 ; AVX512F-NEXT:    # zmm20 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1787 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm19
1788 ; AVX512F-NEXT:    vpermt2q %zmm15, %zmm20, %zmm19
1789 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm21 = [0,5,6,11,0,5,6,11]
1790 ; AVX512F-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3]
1791 ; AVX512F-NEXT:    vpermt2q %zmm14, %zmm21, %zmm19
1792 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm23 = [14,0,0,7,14,0,0,7]
1793 ; AVX512F-NEXT:    # zmm23 = mem[0,1,2,3,0,1,2,3]
1794 ; AVX512F-NEXT:    vmovdqa64 %zmm10, %zmm18
1795 ; AVX512F-NEXT:    vpermt2q %zmm27, %zmm23, %zmm18
1796 ; AVX512F-NEXT:    vmovdqa 16(%rdi), %xmm4
1797 ; AVX512F-NEXT:    vpblendd {{.*#+}} xmm4 = xmm4[0,1],mem[2,3]
1798 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm4, %zmm18, %zmm18
1799 ; AVX512F-NEXT:    vmovdqa64 %zmm19, %zmm18 {%k1}
1800 ; AVX512F-NEXT:    vpermi2q %zmm30, %zmm0, %zmm20
1801 ; AVX512F-NEXT:    vpermt2q %zmm28, %zmm21, %zmm20
1802 ; AVX512F-NEXT:    vpermi2q %zmm25, %zmm2, %zmm23
1803 ; AVX512F-NEXT:    vmovdqa 464(%rdi), %xmm4
1804 ; AVX512F-NEXT:    vpblendd {{.*#+}} xmm4 = xmm4[0,1],mem[2,3]
1805 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm4, %zmm23, %zmm19
1806 ; AVX512F-NEXT:    vmovdqa64 %zmm20, %zmm19 {%k1}
1807 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm4
1808 ; AVX512F-NEXT:    vpermt2q %zmm15, %zmm22, %zmm4
1809 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm21 = [0,5,6,12,0,5,6,12]
1810 ; AVX512F-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3]
1811 ; AVX512F-NEXT:    vpermt2q %zmm14, %zmm21, %zmm4
1812 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm23 = [7,0,9,0,7,0,9,0]
1813 ; AVX512F-NEXT:    # zmm23 = mem[0,1,2,3,0,1,2,3]
1814 ; AVX512F-NEXT:    vmovdqa64 %zmm27, %zmm20
1815 ; AVX512F-NEXT:    vpermt2q %zmm10, %zmm23, %zmm20
1816 ; AVX512F-NEXT:    vmovdqa 64(%rdi), %ymm5
1817 ; AVX512F-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]
1818 ; AVX512F-NEXT:    vextracti128 $1, %ymm5, %xmm5
1819 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm5, %zmm20, %zmm20
1820 ; AVX512F-NEXT:    vmovdqa64 %zmm4, %zmm20 {%k1}
1821 ; AVX512F-NEXT:    vpermi2q %zmm30, %zmm0, %zmm22
1822 ; AVX512F-NEXT:    vpermt2q %zmm28, %zmm21, %zmm22
1823 ; AVX512F-NEXT:    vpermi2q %zmm2, %zmm25, %zmm23
1824 ; AVX512F-NEXT:    vmovdqa 512(%rdi), %ymm4
1825 ; 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]
1826 ; AVX512F-NEXT:    vextracti128 $1, %ymm4, %xmm4
1827 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm4, %zmm23, %zmm21
1828 ; AVX512F-NEXT:    vmovdqa64 %zmm22, %zmm21 {%k1}
1829 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,7,14,0,0,7,14,0]
1830 ; AVX512F-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
1831 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm5
1832 ; AVX512F-NEXT:    vpermt2q %zmm15, %zmm4, %zmm5
1833 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm23 = [4,5,6,13,4,5,6,13]
1834 ; AVX512F-NEXT:    # zmm23 = mem[0,1,2,3,0,1,2,3]
1835 ; AVX512F-NEXT:    vpermt2q %zmm14, %zmm23, %zmm5
1836 ; AVX512F-NEXT:    vinserti128 $1, 192(%rdi), %ymm0, %ymm12
1837 ; AVX512F-NEXT:    vmovdqa 128(%rdi), %ymm13
1838 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm12 = ymm13[0,1,2,3,4,5],ymm12[6,7]
1839 ; AVX512F-NEXT:    vmovdqa {{.*#+}} xmm3 = [4,11]
1840 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm11
1841 ; AVX512F-NEXT:    vpermt2q %zmm26, %zmm3, %zmm11
1842 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm11 = ymm11[0,1,2,3],ymm12[4,5,6,7]
1843 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm11, %zmm5, %zmm22
1844 ; AVX512F-NEXT:    vpermi2q %zmm30, %zmm0, %zmm4
1845 ; AVX512F-NEXT:    vpermt2q %zmm28, %zmm23, %zmm4
1846 ; AVX512F-NEXT:    vinserti128 $1, 640(%rdi), %ymm0, %ymm5
1847 ; AVX512F-NEXT:    vmovdqa 576(%rdi), %ymm11
1848 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm5 = ymm11[0,1,2,3,4,5],ymm5[6,7]
1849 ; AVX512F-NEXT:    vpermi2q %zmm24, %zmm6, %zmm3
1850 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm5[4,5,6,7]
1851 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm3, %zmm4, %zmm23
1852 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm3 = [9,0,7,0,9,0,7,0]
1853 ; AVX512F-NEXT:    # zmm3 = mem[0,1,2,3,0,1,2,3]
1854 ; AVX512F-NEXT:    vmovdqa64 %zmm15, %zmm4
1855 ; AVX512F-NEXT:    vpermt2q %zmm9, %zmm3, %zmm4
1856 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [4,5,6,14,4,5,6,14]
1857 ; AVX512F-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
1858 ; AVX512F-NEXT:    vpermt2q %zmm14, %zmm5, %zmm4
1859 ; AVX512F-NEXT:    vmovdqa 192(%rdi), %ymm12
1860 ; AVX512F-NEXT:    vpalignr {{.*#+}} ymm12 = ymm13[8,9,10,11,12,13,14,15],ymm12[0,1,2,3,4,5,6,7],ymm13[24,25,26,27,28,29,30,31],ymm12[16,17,18,19,20,21,22,23]
1861 ; AVX512F-NEXT:    vmovdqa {{.*#+}} xmm13 = [5,12]
1862 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm8
1863 ; AVX512F-NEXT:    vpermt2q %zmm26, %zmm13, %zmm8
1864 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm12[4,5,6,7]
1865 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm8, %zmm4, %zmm31
1866 ; AVX512F-NEXT:    vpermi2q %zmm0, %zmm30, %zmm3
1867 ; AVX512F-NEXT:    vpermt2q %zmm28, %zmm5, %zmm3
1868 ; AVX512F-NEXT:    vmovdqa 640(%rdi), %ymm5
1869 ; AVX512F-NEXT:    vpalignr {{.*#+}} ymm5 = ymm11[8,9,10,11,12,13,14,15],ymm5[0,1,2,3,4,5,6,7],ymm11[24,25,26,27,28,29,30,31],ymm5[16,17,18,19,20,21,22,23]
1870 ; AVX512F-NEXT:    vpermi2q %zmm24, %zmm6, %zmm13
1871 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm5 = ymm13[0,1,2,3],ymm5[4,5,6,7]
1872 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm5, %zmm3, %zmm3
1873 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm5 = [2,9,2,9,2,9,2,9]
1874 ; AVX512F-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1875 ; AVX512F-NEXT:    vpermt2q %zmm15, %zmm5, %zmm9
1876 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [4,5,8,15,4,5,8,15]
1877 ; AVX512F-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
1878 ; AVX512F-NEXT:    vpermt2q %zmm14, %zmm8, %zmm9
1879 ; AVX512F-NEXT:    vbroadcasti128 {{.*#+}} ymm11 = [4,11,4,11]
1880 ; AVX512F-NEXT:    # ymm11 = mem[0,1,0,1]
1881 ; AVX512F-NEXT:    vpermt2q %zmm27, %zmm11, %zmm10
1882 ; AVX512F-NEXT:    vmovdqa {{.*#+}} xmm12 = [6,13]
1883 ; AVX512F-NEXT:    vpermt2q %zmm26, %zmm12, %zmm1
1884 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm10[4,5,6,7]
1885 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm1, %zmm9, %zmm1
1886 ; AVX512F-NEXT:    vpermt2q %zmm30, %zmm5, %zmm0
1887 ; AVX512F-NEXT:    vpermt2q %zmm28, %zmm8, %zmm0
1888 ; AVX512F-NEXT:    vpermt2q %zmm25, %zmm11, %zmm2
1889 ; AVX512F-NEXT:    vpermt2q %zmm24, %zmm12, %zmm6
1890 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm2 = ymm6[0,1,2,3],ymm2[4,5,6,7]
1891 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm0
1892 ; AVX512F-NEXT:    vmovdqa64 %zmm7, 64(%rsi)
1893 ; AVX512F-NEXT:    vmovdqa64 %zmm29, (%rsi)
1894 ; AVX512F-NEXT:    vmovdqa64 %zmm16, 64(%rdx)
1895 ; AVX512F-NEXT:    vmovdqa64 %zmm17, (%rdx)
1896 ; AVX512F-NEXT:    vmovdqa64 %zmm19, 64(%rcx)
1897 ; AVX512F-NEXT:    vmovdqa64 %zmm18, (%rcx)
1898 ; AVX512F-NEXT:    vmovdqa64 %zmm21, 64(%r8)
1899 ; AVX512F-NEXT:    vmovdqa64 %zmm20, (%r8)
1900 ; AVX512F-NEXT:    vmovdqa64 %zmm23, 64(%r9)
1901 ; AVX512F-NEXT:    vmovdqa64 %zmm22, (%r9)
1902 ; AVX512F-NEXT:    vmovdqa64 %zmm3, 64(%r10)
1903 ; AVX512F-NEXT:    vmovdqa64 %zmm31, (%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), %zmm30
1914 ; AVX512BW-NEXT:    vmovdqa64 768(%rdi), %zmm31
1915 ; AVX512BW-NEXT:    vmovdqa64 704(%rdi), %zmm0
1916 ; AVX512BW-NEXT:    vmovdqa64 640(%rdi), %zmm26
1917 ; AVX512BW-NEXT:    vmovdqa64 576(%rdi), %zmm2
1918 ; AVX512BW-NEXT:    vmovdqa64 512(%rdi), %zmm24
1919 ; AVX512BW-NEXT:    vmovdqa64 448(%rdi), %zmm6
1920 ; AVX512BW-NEXT:    vmovdqa64 384(%rdi), %zmm14
1921 ; AVX512BW-NEXT:    vmovdqa64 320(%rdi), %zmm15
1922 ; AVX512BW-NEXT:    vmovdqa64 256(%rdi), %zmm9
1923 ; AVX512BW-NEXT:    vmovdqa64 192(%rdi), %zmm28
1924 ; AVX512BW-NEXT:    vmovdqa64 128(%rdi), %zmm10
1925 ; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %zmm27
1926 ; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm1
1927 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} ymm7 = <0,7,14,u>
1928 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm29
1929 ; AVX512BW-NEXT:    vpermt2q %zmm27, %zmm7, %zmm29
1930 ; AVX512BW-NEXT:    movb $24, %r11b
1931 ; AVX512BW-NEXT:    kmovd %r11d, %k2
1932 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm29 {%k2} = zmm10[4,5,4,5],zmm28[4,5,4,5]
1933 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm16 = [10,3,10,3,10,3,10,3]
1934 ; AVX512BW-NEXT:    # zmm16 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1935 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm17
1936 ; AVX512BW-NEXT:    vpermt2q %zmm15, %zmm16, %zmm17
1937 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm18 = [0,5,6,9,0,5,6,9]
1938 ; AVX512BW-NEXT:    # zmm18 = mem[0,1,2,3,0,1,2,3]
1939 ; AVX512BW-NEXT:    vpermt2q %zmm14, %zmm18, %zmm17
1940 ; AVX512BW-NEXT:    movb $-32, %r11b
1941 ; AVX512BW-NEXT:    kmovd %r11d, %k1
1942 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm29 {%k1}
1943 ; AVX512BW-NEXT:    vpermi2q %zmm24, %zmm6, %zmm7
1944 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm7 {%k2} = zmm2[4,5,4,5],zmm26[4,5,4,5]
1945 ; AVX512BW-NEXT:    vpermi2q %zmm31, %zmm0, %zmm16
1946 ; AVX512BW-NEXT:    vpermt2q %zmm30, %zmm18, %zmm16
1947 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, %zmm7 {%k1}
1948 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm18 = [11,4,11,4,11,4,11,4]
1949 ; AVX512BW-NEXT:    # zmm18 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1950 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm19
1951 ; AVX512BW-NEXT:    vpermt2q %zmm15, %zmm18, %zmm19
1952 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm20 = [0,5,6,10,0,5,6,10]
1953 ; AVX512BW-NEXT:    # zmm20 = mem[0,1,2,3,0,1,2,3]
1954 ; AVX512BW-NEXT:    vpermt2q %zmm14, %zmm20, %zmm19
1955 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm22 = [13,6,13,6,13,6,13,6]
1956 ; AVX512BW-NEXT:    # zmm22 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1957 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm21
1958 ; AVX512BW-NEXT:    vpermt2q %zmm28, %zmm22, %zmm21
1959 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} ymm16 = <9,0,7,u>
1960 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, %zmm17
1961 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm16, %zmm17
1962 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, %zmm17 {%k2}
1963 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm17 {%k1}
1964 ; AVX512BW-NEXT:    vpermi2q %zmm31, %zmm0, %zmm18
1965 ; AVX512BW-NEXT:    vpermt2q %zmm30, %zmm20, %zmm18
1966 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm19
1967 ; AVX512BW-NEXT:    vpermt2q %zmm26, %zmm22, %zmm19
1968 ; AVX512BW-NEXT:    vpermi2q %zmm6, %zmm24, %zmm16
1969 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm16 {%k2}
1970 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, %zmm16 {%k1}
1971 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm20 = [12,5,12,5,12,5,12,5]
1972 ; AVX512BW-NEXT:    # zmm20 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1973 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm19
1974 ; AVX512BW-NEXT:    vpermt2q %zmm15, %zmm20, %zmm19
1975 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm21 = [0,5,6,11,0,5,6,11]
1976 ; AVX512BW-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3]
1977 ; AVX512BW-NEXT:    vpermt2q %zmm14, %zmm21, %zmm19
1978 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm23 = [14,0,0,7,14,0,0,7]
1979 ; AVX512BW-NEXT:    # zmm23 = mem[0,1,2,3,0,1,2,3]
1980 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm18
1981 ; AVX512BW-NEXT:    vpermt2q %zmm28, %zmm23, %zmm18
1982 ; AVX512BW-NEXT:    vmovdqa 16(%rdi), %xmm4
1983 ; AVX512BW-NEXT:    vpblendd {{.*#+}} xmm4 = xmm4[0,1],mem[2,3]
1984 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm4, %zmm18, %zmm18
1985 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm18 {%k1}
1986 ; AVX512BW-NEXT:    vpermi2q %zmm31, %zmm0, %zmm20
1987 ; AVX512BW-NEXT:    vpermt2q %zmm30, %zmm21, %zmm20
1988 ; AVX512BW-NEXT:    vpermi2q %zmm26, %zmm2, %zmm23
1989 ; AVX512BW-NEXT:    vmovdqa 464(%rdi), %xmm4
1990 ; AVX512BW-NEXT:    vpblendd {{.*#+}} xmm4 = xmm4[0,1],mem[2,3]
1991 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm4, %zmm23, %zmm19
1992 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, %zmm19 {%k1}
1993 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm4
1994 ; AVX512BW-NEXT:    vpermt2q %zmm15, %zmm22, %zmm4
1995 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm21 = [0,5,6,12,0,5,6,12]
1996 ; AVX512BW-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3]
1997 ; AVX512BW-NEXT:    vpermt2q %zmm14, %zmm21, %zmm4
1998 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm23 = [7,0,9,0,7,0,9,0]
1999 ; AVX512BW-NEXT:    # zmm23 = mem[0,1,2,3,0,1,2,3]
2000 ; AVX512BW-NEXT:    vmovdqa64 %zmm28, %zmm20
2001 ; AVX512BW-NEXT:    vpermt2q %zmm10, %zmm23, %zmm20
2002 ; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %ymm25
2003 ; AVX512BW-NEXT:    vpalignr {{.*#+}} ymm25 = mem[8,9,10,11,12,13,14,15],ymm25[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm25[16,17,18,19,20,21,22,23]
2004 ; AVX512BW-NEXT:    vextracti32x4 $1, %ymm25, %xmm25
2005 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm25, %zmm20, %zmm20
2006 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm20 {%k1}
2007 ; AVX512BW-NEXT:    vpermi2q %zmm31, %zmm0, %zmm22
2008 ; AVX512BW-NEXT:    vpermt2q %zmm30, %zmm21, %zmm22
2009 ; AVX512BW-NEXT:    vpermi2q %zmm2, %zmm26, %zmm23
2010 ; AVX512BW-NEXT:    vmovdqa 512(%rdi), %ymm4
2011 ; 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]
2012 ; AVX512BW-NEXT:    vextracti128 $1, %ymm4, %xmm4
2013 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm4, %zmm23, %zmm21
2014 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm21 {%k1}
2015 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,7,14,0,0,7,14,0]
2016 ; AVX512BW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
2017 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm22
2018 ; AVX512BW-NEXT:    vpermt2q %zmm15, %zmm4, %zmm22
2019 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm23 = [4,5,6,13,4,5,6,13]
2020 ; AVX512BW-NEXT:    # zmm23 = mem[0,1,2,3,0,1,2,3]
2021 ; AVX512BW-NEXT:    vpermt2q %zmm14, %zmm23, %zmm22
2022 ; AVX512BW-NEXT:    vinserti128 $1, 192(%rdi), %ymm0, %ymm5
2023 ; AVX512BW-NEXT:    vmovdqa 128(%rdi), %ymm12
2024 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm5 = ymm12[0,1,2,3,4,5],ymm5[6,7]
2025 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} xmm13 = [4,11]
2026 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm11
2027 ; AVX512BW-NEXT:    vpermt2q %zmm27, %zmm13, %zmm11
2028 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm5 = ymm11[0,1,2,3],ymm5[4,5,6,7]
2029 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm5, %zmm22, %zmm22
2030 ; AVX512BW-NEXT:    vpermi2q %zmm31, %zmm0, %zmm4
2031 ; AVX512BW-NEXT:    vpermt2q %zmm30, %zmm23, %zmm4
2032 ; AVX512BW-NEXT:    vinserti128 $1, 640(%rdi), %ymm0, %ymm5
2033 ; AVX512BW-NEXT:    vmovdqa 576(%rdi), %ymm11
2034 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm5 = ymm11[0,1,2,3,4,5],ymm5[6,7]
2035 ; AVX512BW-NEXT:    vpermi2q %zmm24, %zmm6, %zmm13
2036 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm5 = ymm13[0,1,2,3],ymm5[4,5,6,7]
2037 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm5, %zmm4, %zmm23
2038 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [9,0,7,0,9,0,7,0]
2039 ; AVX512BW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
2040 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm5
2041 ; AVX512BW-NEXT:    vpermt2q %zmm9, %zmm4, %zmm5
2042 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm13 = [4,5,6,14,4,5,6,14]
2043 ; AVX512BW-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3]
2044 ; AVX512BW-NEXT:    vpermt2q %zmm14, %zmm13, %zmm5
2045 ; AVX512BW-NEXT:    vmovdqa64 192(%rdi), %ymm25
2046 ; AVX512BW-NEXT:    vpalignr {{.*#+}} ymm12 = ymm12[8,9,10,11,12,13,14,15],ymm25[0,1,2,3,4,5,6,7],ymm12[24,25,26,27,28,29,30,31],ymm25[16,17,18,19,20,21,22,23]
2047 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} xmm3 = [5,12]
2048 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm8
2049 ; AVX512BW-NEXT:    vpermt2q %zmm27, %zmm3, %zmm8
2050 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm12[4,5,6,7]
2051 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm5, %zmm5
2052 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm31, %zmm4
2053 ; AVX512BW-NEXT:    vpermt2q %zmm30, %zmm13, %zmm4
2054 ; AVX512BW-NEXT:    vmovdqa 640(%rdi), %ymm8
2055 ; AVX512BW-NEXT:    vpalignr {{.*#+}} ymm8 = ymm11[8,9,10,11,12,13,14,15],ymm8[0,1,2,3,4,5,6,7],ymm11[24,25,26,27,28,29,30,31],ymm8[16,17,18,19,20,21,22,23]
2056 ; AVX512BW-NEXT:    vpermi2q %zmm24, %zmm6, %zmm3
2057 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm8[4,5,6,7]
2058 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm3, %zmm4, %zmm3
2059 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [2,9,2,9,2,9,2,9]
2060 ; AVX512BW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2061 ; AVX512BW-NEXT:    vpermt2q %zmm15, %zmm4, %zmm9
2062 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [4,5,8,15,4,5,8,15]
2063 ; AVX512BW-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
2064 ; AVX512BW-NEXT:    vpermt2q %zmm14, %zmm8, %zmm9
2065 ; AVX512BW-NEXT:    vbroadcasti128 {{.*#+}} ymm11 = [4,11,4,11]
2066 ; AVX512BW-NEXT:    # ymm11 = mem[0,1,0,1]
2067 ; AVX512BW-NEXT:    vpermt2q %zmm28, %zmm11, %zmm10
2068 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} xmm12 = [6,13]
2069 ; AVX512BW-NEXT:    vpermt2q %zmm27, %zmm12, %zmm1
2070 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm10[4,5,6,7]
2071 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm9, %zmm1
2072 ; AVX512BW-NEXT:    vpermt2q %zmm31, %zmm4, %zmm0
2073 ; AVX512BW-NEXT:    vpermt2q %zmm30, %zmm8, %zmm0
2074 ; AVX512BW-NEXT:    vpermt2q %zmm26, %zmm11, %zmm2
2075 ; AVX512BW-NEXT:    vpermt2q %zmm24, %zmm12, %zmm6
2076 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm6[0,1,2,3],ymm2[4,5,6,7]
2077 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm0
2078 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, 64(%rsi)
2079 ; AVX512BW-NEXT:    vmovdqa64 %zmm29, (%rsi)
2080 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, 64(%rdx)
2081 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, (%rdx)
2082 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, 64(%rcx)
2083 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, (%rcx)
2084 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, 64(%r8)
2085 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, (%r8)
2086 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, 64(%r9)
2087 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, (%r9)
2088 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, 64(%r10)
2089 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, (%r10)
2090 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, 64(%rax)
2091 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, (%rax)
2092 ; AVX512BW-NEXT:    vzeroupper
2093 ; AVX512BW-NEXT:    retq
2094   %wide.vec = load <112 x i64>, ptr %in.vec, align 64
2095   %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>
2096   %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>
2097   %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>
2098   %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>
2099   %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>
2100   %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>
2101   %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>
2102   store <16 x i64> %strided.vec0, ptr %out.vec0, align 64
2103   store <16 x i64> %strided.vec1, ptr %out.vec1, align 64
2104   store <16 x i64> %strided.vec2, ptr %out.vec2, align 64
2105   store <16 x i64> %strided.vec3, ptr %out.vec3, align 64
2106   store <16 x i64> %strided.vec4, ptr %out.vec4, align 64
2107   store <16 x i64> %strided.vec5, ptr %out.vec5, align 64
2108   store <16 x i64> %strided.vec6, ptr %out.vec6, align 64
2109   ret void
2112 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 {
2113 ; SSE-LABEL: load_i64_stride7_vf32:
2114 ; SSE:       # %bb.0:
2115 ; SSE-NEXT:    subq $1448, %rsp # imm = 0x5A8
2116 ; SSE-NEXT:    movapd 208(%rdi), %xmm3
2117 ; SSE-NEXT:    movapd 96(%rdi), %xmm2
2118 ; SSE-NEXT:    movapd 144(%rdi), %xmm4
2119 ; SSE-NEXT:    movapd 192(%rdi), %xmm6
2120 ; SSE-NEXT:    movapd 80(%rdi), %xmm5
2121 ; SSE-NEXT:    movapd 128(%rdi), %xmm8
2122 ; SSE-NEXT:    movapd 64(%rdi), %xmm10
2123 ; SSE-NEXT:    movapd 176(%rdi), %xmm11
2124 ; SSE-NEXT:    movapd (%rdi), %xmm12
2125 ; SSE-NEXT:    movapd 16(%rdi), %xmm9
2126 ; SSE-NEXT:    movapd 32(%rdi), %xmm7
2127 ; SSE-NEXT:    movapd 48(%rdi), %xmm0
2128 ; SSE-NEXT:    movapd 224(%rdi), %xmm13
2129 ; SSE-NEXT:    movapd 112(%rdi), %xmm14
2130 ; SSE-NEXT:    movapd 160(%rdi), %xmm1
2131 ; SSE-NEXT:    movapd %xmm0, %xmm15
2132 ; SSE-NEXT:    movsd {{.*#+}} xmm15 = xmm12[0],xmm15[1]
2133 ; SSE-NEXT:    movapd %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2134 ; SSE-NEXT:    shufpd {{.*#+}} xmm12 = xmm12[1],xmm10[0]
2135 ; SSE-NEXT:    movapd %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2136 ; SSE-NEXT:    movsd {{.*#+}} xmm10 = xmm9[0],xmm10[1]
2137 ; SSE-NEXT:    movapd %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2138 ; SSE-NEXT:    shufpd {{.*#+}} xmm9 = xmm9[1],xmm5[0]
2139 ; SSE-NEXT:    movapd %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2140 ; SSE-NEXT:    movsd {{.*#+}} xmm5 = xmm7[0],xmm5[1]
2141 ; SSE-NEXT:    movapd %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2142 ; SSE-NEXT:    shufpd {{.*#+}} xmm7 = xmm7[1],xmm2[0]
2143 ; SSE-NEXT:    movapd %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2144 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm0[0],xmm2[1]
2145 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2146 ; SSE-NEXT:    movapd %xmm1, %xmm0
2147 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm14[0],xmm0[1]
2148 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2149 ; SSE-NEXT:    shufpd {{.*#+}} xmm14 = xmm14[1],xmm11[0]
2150 ; SSE-NEXT:    movapd %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2151 ; SSE-NEXT:    movsd {{.*#+}} xmm11 = xmm8[0],xmm11[1]
2152 ; SSE-NEXT:    movapd %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2153 ; SSE-NEXT:    shufpd {{.*#+}} xmm8 = xmm8[1],xmm6[0]
2154 ; SSE-NEXT:    movapd %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2155 ; SSE-NEXT:    movsd {{.*#+}} xmm6 = xmm4[0],xmm6[1]
2156 ; SSE-NEXT:    movapd %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2157 ; SSE-NEXT:    shufpd {{.*#+}} xmm4 = xmm4[1],xmm3[0]
2158 ; SSE-NEXT:    movapd %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2159 ; SSE-NEXT:    movsd {{.*#+}} xmm3 = xmm1[0],xmm3[1]
2160 ; SSE-NEXT:    movapd %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2161 ; SSE-NEXT:    movapd 272(%rdi), %xmm0
2162 ; SSE-NEXT:    movapd %xmm0, %xmm1
2163 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm13[0],xmm1[1]
2164 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2165 ; SSE-NEXT:    movapd 288(%rdi), %xmm1
2166 ; SSE-NEXT:    shufpd {{.*#+}} xmm13 = xmm13[1],xmm1[0]
2167 ; SSE-NEXT:    movapd %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2168 ; SSE-NEXT:    movapd 240(%rdi), %xmm2
2169 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2170 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2171 ; SSE-NEXT:    movapd 304(%rdi), %xmm1
2172 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2173 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2174 ; SSE-NEXT:    movapd 256(%rdi), %xmm2
2175 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2176 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2177 ; SSE-NEXT:    movapd 320(%rdi), %xmm1
2178 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2179 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2180 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2181 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2182 ; SSE-NEXT:    movapd 336(%rdi), %xmm2
2183 ; SSE-NEXT:    movapd 384(%rdi), %xmm0
2184 ; SSE-NEXT:    movapd %xmm0, %xmm1
2185 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2186 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2187 ; SSE-NEXT:    movapd 400(%rdi), %xmm1
2188 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2189 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2190 ; SSE-NEXT:    movapd 352(%rdi), %xmm2
2191 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2192 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2193 ; SSE-NEXT:    movapd 416(%rdi), %xmm1
2194 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2195 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2196 ; SSE-NEXT:    movapd 368(%rdi), %xmm2
2197 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2198 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2199 ; SSE-NEXT:    movapd 432(%rdi), %xmm1
2200 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2201 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2202 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2203 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2204 ; SSE-NEXT:    movapd 448(%rdi), %xmm2
2205 ; SSE-NEXT:    movapd 496(%rdi), %xmm0
2206 ; SSE-NEXT:    movapd %xmm0, %xmm1
2207 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2208 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2209 ; SSE-NEXT:    movapd 512(%rdi), %xmm1
2210 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2211 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2212 ; SSE-NEXT:    movapd 464(%rdi), %xmm2
2213 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2214 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2215 ; SSE-NEXT:    movapd 528(%rdi), %xmm1
2216 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2217 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2218 ; SSE-NEXT:    movapd 480(%rdi), %xmm2
2219 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2220 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2221 ; SSE-NEXT:    movapd 544(%rdi), %xmm1
2222 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2223 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2224 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2225 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2226 ; SSE-NEXT:    movapd 560(%rdi), %xmm2
2227 ; SSE-NEXT:    movapd 608(%rdi), %xmm0
2228 ; SSE-NEXT:    movapd %xmm0, %xmm1
2229 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2230 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2231 ; SSE-NEXT:    movapd 624(%rdi), %xmm1
2232 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2233 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2234 ; SSE-NEXT:    movapd 576(%rdi), %xmm2
2235 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2236 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2237 ; SSE-NEXT:    movapd 640(%rdi), %xmm1
2238 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2239 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2240 ; SSE-NEXT:    movapd 592(%rdi), %xmm2
2241 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2242 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2243 ; SSE-NEXT:    movapd 656(%rdi), %xmm1
2244 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2245 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2246 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2247 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2248 ; SSE-NEXT:    movapd 672(%rdi), %xmm2
2249 ; SSE-NEXT:    movapd 720(%rdi), %xmm0
2250 ; SSE-NEXT:    movapd %xmm0, %xmm1
2251 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2252 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2253 ; SSE-NEXT:    movapd 736(%rdi), %xmm1
2254 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2255 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2256 ; SSE-NEXT:    movapd 688(%rdi), %xmm2
2257 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2258 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2259 ; SSE-NEXT:    movapd 752(%rdi), %xmm1
2260 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2261 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2262 ; SSE-NEXT:    movapd 704(%rdi), %xmm2
2263 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2264 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2265 ; SSE-NEXT:    movapd 768(%rdi), %xmm1
2266 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2267 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2268 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2269 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2270 ; SSE-NEXT:    movapd 784(%rdi), %xmm2
2271 ; SSE-NEXT:    movapd 832(%rdi), %xmm0
2272 ; SSE-NEXT:    movapd %xmm0, %xmm1
2273 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2274 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2275 ; SSE-NEXT:    movapd 848(%rdi), %xmm1
2276 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2277 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2278 ; SSE-NEXT:    movapd 800(%rdi), %xmm2
2279 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2280 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2281 ; SSE-NEXT:    movapd 864(%rdi), %xmm1
2282 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2283 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2284 ; SSE-NEXT:    movapd 816(%rdi), %xmm2
2285 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2286 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2287 ; SSE-NEXT:    movapd 880(%rdi), %xmm1
2288 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2289 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2290 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2291 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2292 ; SSE-NEXT:    movapd 896(%rdi), %xmm2
2293 ; SSE-NEXT:    movapd 944(%rdi), %xmm0
2294 ; SSE-NEXT:    movapd %xmm0, %xmm1
2295 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2296 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2297 ; SSE-NEXT:    movapd 960(%rdi), %xmm1
2298 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2299 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2300 ; SSE-NEXT:    movapd 912(%rdi), %xmm2
2301 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2302 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2303 ; SSE-NEXT:    movapd 976(%rdi), %xmm1
2304 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2305 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2306 ; SSE-NEXT:    movapd 928(%rdi), %xmm2
2307 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2308 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2309 ; SSE-NEXT:    movapd 992(%rdi), %xmm1
2310 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2311 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2312 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2313 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2314 ; SSE-NEXT:    movapd 1008(%rdi), %xmm2
2315 ; SSE-NEXT:    movapd 1056(%rdi), %xmm0
2316 ; SSE-NEXT:    movapd %xmm0, %xmm1
2317 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2318 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2319 ; SSE-NEXT:    movapd 1072(%rdi), %xmm1
2320 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2321 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2322 ; SSE-NEXT:    movapd 1024(%rdi), %xmm2
2323 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2324 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2325 ; SSE-NEXT:    movapd 1088(%rdi), %xmm1
2326 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2327 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2328 ; SSE-NEXT:    movapd 1040(%rdi), %xmm2
2329 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2330 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2331 ; SSE-NEXT:    movapd 1104(%rdi), %xmm1
2332 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2333 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2334 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2335 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2336 ; SSE-NEXT:    movapd 1120(%rdi), %xmm2
2337 ; SSE-NEXT:    movapd 1168(%rdi), %xmm0
2338 ; SSE-NEXT:    movapd %xmm0, %xmm1
2339 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2340 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2341 ; SSE-NEXT:    movapd 1184(%rdi), %xmm1
2342 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2343 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2344 ; SSE-NEXT:    movapd 1136(%rdi), %xmm2
2345 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2346 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2347 ; SSE-NEXT:    movapd 1200(%rdi), %xmm1
2348 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2349 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2350 ; SSE-NEXT:    movapd 1152(%rdi), %xmm2
2351 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2352 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2353 ; SSE-NEXT:    movapd 1216(%rdi), %xmm1
2354 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2355 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2356 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2357 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2358 ; SSE-NEXT:    movapd 1232(%rdi), %xmm2
2359 ; SSE-NEXT:    movapd 1280(%rdi), %xmm0
2360 ; SSE-NEXT:    movapd %xmm0, %xmm1
2361 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2362 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2363 ; SSE-NEXT:    movapd 1296(%rdi), %xmm1
2364 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2365 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2366 ; SSE-NEXT:    movapd 1248(%rdi), %xmm2
2367 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2368 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2369 ; SSE-NEXT:    movapd 1312(%rdi), %xmm1
2370 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2371 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2372 ; SSE-NEXT:    movapd 1264(%rdi), %xmm2
2373 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2374 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2375 ; SSE-NEXT:    movapd 1328(%rdi), %xmm1
2376 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2377 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2378 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2379 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2380 ; SSE-NEXT:    movapd 1344(%rdi), %xmm14
2381 ; SSE-NEXT:    movapd 1392(%rdi), %xmm0
2382 ; SSE-NEXT:    movapd %xmm0, %xmm1
2383 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm14[0],xmm1[1]
2384 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2385 ; SSE-NEXT:    movapd 1408(%rdi), %xmm1
2386 ; SSE-NEXT:    shufpd {{.*#+}} xmm14 = xmm14[1],xmm1[0]
2387 ; SSE-NEXT:    movapd 1360(%rdi), %xmm2
2388 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2389 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2390 ; SSE-NEXT:    movapd 1424(%rdi), %xmm1
2391 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2392 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2393 ; SSE-NEXT:    movapd 1376(%rdi), %xmm2
2394 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2395 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2396 ; SSE-NEXT:    movapd 1440(%rdi), %xmm1
2397 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2398 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2399 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2400 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2401 ; SSE-NEXT:    movapd 1456(%rdi), %xmm9
2402 ; SSE-NEXT:    movapd 1504(%rdi), %xmm0
2403 ; SSE-NEXT:    movapd %xmm0, %xmm12
2404 ; SSE-NEXT:    movsd {{.*#+}} xmm12 = xmm9[0],xmm12[1]
2405 ; SSE-NEXT:    movapd 1520(%rdi), %xmm13
2406 ; SSE-NEXT:    shufpd {{.*#+}} xmm9 = xmm9[1],xmm13[0]
2407 ; SSE-NEXT:    movapd 1472(%rdi), %xmm2
2408 ; SSE-NEXT:    movsd {{.*#+}} xmm13 = xmm2[0],xmm13[1]
2409 ; SSE-NEXT:    movapd 1536(%rdi), %xmm1
2410 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2411 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2412 ; SSE-NEXT:    movapd 1488(%rdi), %xmm2
2413 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2414 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2415 ; SSE-NEXT:    movapd 1552(%rdi), %xmm1
2416 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2417 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2418 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2419 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2420 ; SSE-NEXT:    movapd 1568(%rdi), %xmm6
2421 ; SSE-NEXT:    movapd 1616(%rdi), %xmm0
2422 ; SSE-NEXT:    movapd %xmm0, %xmm4
2423 ; SSE-NEXT:    movsd {{.*#+}} xmm4 = xmm6[0],xmm4[1]
2424 ; SSE-NEXT:    movapd 1632(%rdi), %xmm8
2425 ; SSE-NEXT:    shufpd {{.*#+}} xmm6 = xmm6[1],xmm8[0]
2426 ; SSE-NEXT:    movapd 1584(%rdi), %xmm11
2427 ; SSE-NEXT:    movsd {{.*#+}} xmm8 = xmm11[0],xmm8[1]
2428 ; SSE-NEXT:    movapd 1648(%rdi), %xmm1
2429 ; SSE-NEXT:    shufpd {{.*#+}} xmm11 = xmm11[1],xmm1[0]
2430 ; SSE-NEXT:    movapd 1600(%rdi), %xmm2
2431 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
2432 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2433 ; SSE-NEXT:    movapd 1664(%rdi), %xmm1
2434 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
2435 ; SSE-NEXT:    movapd %xmm2, (%rsp) # 16-byte Spill
2436 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2437 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2438 ; SSE-NEXT:    movapd 1680(%rdi), %xmm3
2439 ; SSE-NEXT:    movapd 1728(%rdi), %xmm2
2440 ; SSE-NEXT:    movapd %xmm2, %xmm1
2441 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm3[0],xmm1[1]
2442 ; SSE-NEXT:    movapd 1744(%rdi), %xmm5
2443 ; SSE-NEXT:    shufpd {{.*#+}} xmm3 = xmm3[1],xmm5[0]
2444 ; SSE-NEXT:    movapd 1696(%rdi), %xmm7
2445 ; SSE-NEXT:    movsd {{.*#+}} xmm5 = xmm7[0],xmm5[1]
2446 ; SSE-NEXT:    movapd 1760(%rdi), %xmm10
2447 ; SSE-NEXT:    shufpd {{.*#+}} xmm7 = xmm7[1],xmm10[0]
2448 ; SSE-NEXT:    movapd 1712(%rdi), %xmm15
2449 ; SSE-NEXT:    movsd {{.*#+}} xmm10 = xmm15[0],xmm10[1]
2450 ; SSE-NEXT:    movapd 1776(%rdi), %xmm0
2451 ; SSE-NEXT:    shufpd {{.*#+}} xmm15 = xmm15[1],xmm0[0]
2452 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm2[0],xmm0[1]
2453 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2454 ; SSE-NEXT:    movapd %xmm4, 224(%rsi)
2455 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2456 ; SSE-NEXT:    movaps %xmm0, 160(%rsi)
2457 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
2458 ; SSE-NEXT:    movaps %xmm2, 96(%rsi)
2459 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
2460 ; SSE-NEXT:    movaps %xmm2, 32(%rsi)
2461 ; SSE-NEXT:    movapd %xmm1, 240(%rsi)
2462 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2463 ; SSE-NEXT:    movaps %xmm0, 176(%rsi)
2464 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2465 ; SSE-NEXT:    movaps %xmm1, 112(%rsi)
2466 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2467 ; SSE-NEXT:    movaps %xmm1, 48(%rsi)
2468 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2469 ; SSE-NEXT:    movaps %xmm0, 192(%rsi)
2470 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2471 ; SSE-NEXT:    movaps %xmm1, 128(%rsi)
2472 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2473 ; SSE-NEXT:    movaps %xmm1, 64(%rsi)
2474 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2475 ; SSE-NEXT:    movaps %xmm1, (%rsi)
2476 ; SSE-NEXT:    movapd %xmm12, 208(%rsi)
2477 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2478 ; SSE-NEXT:    movaps %xmm1, 144(%rsi)
2479 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2480 ; SSE-NEXT:    movaps %xmm1, 80(%rsi)
2481 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2482 ; SSE-NEXT:    movaps %xmm1, 16(%rsi)
2483 ; SSE-NEXT:    movapd %xmm6, 224(%rdx)
2484 ; SSE-NEXT:    movapd %xmm3, 240(%rdx)
2485 ; SSE-NEXT:    movapd %xmm14, 192(%rdx)
2486 ; SSE-NEXT:    movapd %xmm9, 208(%rdx)
2487 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2488 ; SSE-NEXT:    movaps %xmm0, 160(%rdx)
2489 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2490 ; SSE-NEXT:    movaps %xmm0, 176(%rdx)
2491 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2492 ; SSE-NEXT:    movaps %xmm0, 128(%rdx)
2493 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2494 ; SSE-NEXT:    movaps %xmm0, 144(%rdx)
2495 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2496 ; SSE-NEXT:    movaps %xmm0, 96(%rdx)
2497 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2498 ; SSE-NEXT:    movaps %xmm0, 112(%rdx)
2499 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2500 ; SSE-NEXT:    movaps %xmm0, 64(%rdx)
2501 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2502 ; SSE-NEXT:    movaps %xmm0, 80(%rdx)
2503 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2504 ; SSE-NEXT:    movaps %xmm0, 32(%rdx)
2505 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2506 ; SSE-NEXT:    movaps %xmm0, 48(%rdx)
2507 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2508 ; SSE-NEXT:    movaps %xmm0, (%rdx)
2509 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2510 ; SSE-NEXT:    movaps %xmm0, 16(%rdx)
2511 ; SSE-NEXT:    movapd %xmm5, 240(%rcx)
2512 ; SSE-NEXT:    movapd %xmm8, 224(%rcx)
2513 ; SSE-NEXT:    movapd %xmm13, 208(%rcx)
2514 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2515 ; SSE-NEXT:    movaps %xmm0, 192(%rcx)
2516 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2517 ; SSE-NEXT:    movaps %xmm0, 176(%rcx)
2518 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2519 ; SSE-NEXT:    movaps %xmm0, 160(%rcx)
2520 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2521 ; SSE-NEXT:    movaps %xmm0, 144(%rcx)
2522 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2523 ; SSE-NEXT:    movaps %xmm0, 128(%rcx)
2524 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2525 ; SSE-NEXT:    movaps %xmm0, 112(%rcx)
2526 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2527 ; SSE-NEXT:    movaps %xmm0, 96(%rcx)
2528 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2529 ; SSE-NEXT:    movaps %xmm0, 80(%rcx)
2530 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2531 ; SSE-NEXT:    movaps %xmm0, 64(%rcx)
2532 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2533 ; SSE-NEXT:    movaps %xmm0, 48(%rcx)
2534 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2535 ; SSE-NEXT:    movaps %xmm0, 32(%rcx)
2536 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2537 ; SSE-NEXT:    movaps %xmm0, 16(%rcx)
2538 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2539 ; SSE-NEXT:    movaps %xmm0, (%rcx)
2540 ; SSE-NEXT:    movapd %xmm7, 240(%r8)
2541 ; SSE-NEXT:    movapd %xmm11, 224(%r8)
2542 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2543 ; SSE-NEXT:    movaps %xmm0, 208(%r8)
2544 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2545 ; SSE-NEXT:    movaps %xmm0, 192(%r8)
2546 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2547 ; SSE-NEXT:    movaps %xmm0, 176(%r8)
2548 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2549 ; SSE-NEXT:    movaps %xmm0, 160(%r8)
2550 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2551 ; SSE-NEXT:    movaps %xmm0, 144(%r8)
2552 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2553 ; SSE-NEXT:    movaps %xmm0, 128(%r8)
2554 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2555 ; SSE-NEXT:    movaps %xmm0, 112(%r8)
2556 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2557 ; SSE-NEXT:    movaps %xmm0, 96(%r8)
2558 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2559 ; SSE-NEXT:    movaps %xmm0, 80(%r8)
2560 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2561 ; SSE-NEXT:    movaps %xmm0, 64(%r8)
2562 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2563 ; SSE-NEXT:    movaps %xmm0, 48(%r8)
2564 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2565 ; SSE-NEXT:    movaps %xmm0, 32(%r8)
2566 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2567 ; SSE-NEXT:    movaps %xmm0, 16(%r8)
2568 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2569 ; SSE-NEXT:    movaps %xmm0, (%r8)
2570 ; SSE-NEXT:    movapd %xmm10, 240(%r9)
2571 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2572 ; SSE-NEXT:    movaps %xmm0, 224(%r9)
2573 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2574 ; SSE-NEXT:    movaps %xmm0, 208(%r9)
2575 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2576 ; SSE-NEXT:    movaps %xmm0, 192(%r9)
2577 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2578 ; SSE-NEXT:    movaps %xmm0, 176(%r9)
2579 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2580 ; SSE-NEXT:    movaps %xmm0, 160(%r9)
2581 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2582 ; SSE-NEXT:    movaps %xmm0, 144(%r9)
2583 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2584 ; SSE-NEXT:    movaps %xmm0, 128(%r9)
2585 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2586 ; SSE-NEXT:    movaps %xmm0, 112(%r9)
2587 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2588 ; SSE-NEXT:    movaps %xmm0, 96(%r9)
2589 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2590 ; SSE-NEXT:    movaps %xmm0, 80(%r9)
2591 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2592 ; SSE-NEXT:    movaps %xmm0, 64(%r9)
2593 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2594 ; SSE-NEXT:    movaps %xmm0, 48(%r9)
2595 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2596 ; SSE-NEXT:    movaps %xmm0, 32(%r9)
2597 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2598 ; SSE-NEXT:    movaps %xmm0, 16(%r9)
2599 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2600 ; SSE-NEXT:    movaps %xmm0, (%r9)
2601 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
2602 ; SSE-NEXT:    movapd %xmm15, 240(%rax)
2603 ; SSE-NEXT:    movaps (%rsp), %xmm0 # 16-byte Reload
2604 ; SSE-NEXT:    movaps %xmm0, 224(%rax)
2605 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2606 ; SSE-NEXT:    movaps %xmm0, 208(%rax)
2607 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2608 ; SSE-NEXT:    movaps %xmm0, 192(%rax)
2609 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2610 ; SSE-NEXT:    movaps %xmm0, 176(%rax)
2611 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2612 ; SSE-NEXT:    movaps %xmm0, 160(%rax)
2613 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2614 ; SSE-NEXT:    movaps %xmm0, 144(%rax)
2615 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2616 ; SSE-NEXT:    movaps %xmm0, 128(%rax)
2617 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2618 ; SSE-NEXT:    movaps %xmm0, 112(%rax)
2619 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2620 ; SSE-NEXT:    movaps %xmm0, 96(%rax)
2621 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2622 ; SSE-NEXT:    movaps %xmm0, 80(%rax)
2623 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2624 ; SSE-NEXT:    movaps %xmm0, 64(%rax)
2625 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2626 ; SSE-NEXT:    movaps %xmm0, 48(%rax)
2627 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2628 ; SSE-NEXT:    movaps %xmm0, 32(%rax)
2629 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2630 ; SSE-NEXT:    movaps %xmm0, 16(%rax)
2631 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2632 ; SSE-NEXT:    movaps %xmm0, (%rax)
2633 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
2634 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2635 ; SSE-NEXT:    movaps %xmm0, 240(%rax)
2636 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2637 ; SSE-NEXT:    movaps %xmm0, 224(%rax)
2638 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2639 ; SSE-NEXT:    movaps %xmm0, 208(%rax)
2640 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2641 ; SSE-NEXT:    movaps %xmm0, 192(%rax)
2642 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2643 ; SSE-NEXT:    movaps %xmm0, 176(%rax)
2644 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2645 ; SSE-NEXT:    movaps %xmm0, 160(%rax)
2646 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2647 ; SSE-NEXT:    movaps %xmm0, 144(%rax)
2648 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2649 ; SSE-NEXT:    movaps %xmm0, 128(%rax)
2650 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2651 ; SSE-NEXT:    movaps %xmm0, 112(%rax)
2652 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2653 ; SSE-NEXT:    movaps %xmm0, 96(%rax)
2654 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2655 ; SSE-NEXT:    movaps %xmm0, 80(%rax)
2656 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2657 ; SSE-NEXT:    movaps %xmm0, 64(%rax)
2658 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2659 ; SSE-NEXT:    movaps %xmm0, 48(%rax)
2660 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2661 ; SSE-NEXT:    movaps %xmm0, 32(%rax)
2662 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2663 ; SSE-NEXT:    movaps %xmm0, 16(%rax)
2664 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2665 ; SSE-NEXT:    movaps %xmm0, (%rax)
2666 ; SSE-NEXT:    addq $1448, %rsp # imm = 0x5A8
2667 ; SSE-NEXT:    retq
2669 ; AVX1-ONLY-LABEL: load_i64_stride7_vf32:
2670 ; AVX1-ONLY:       # %bb.0:
2671 ; AVX1-ONLY-NEXT:    subq $1736, %rsp # imm = 0x6C8
2672 ; AVX1-ONLY-NEXT:    vmovaps 1216(%rdi), %ymm1
2673 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2674 ; AVX1-ONLY-NEXT:    vmovaps 768(%rdi), %ymm3
2675 ; AVX1-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2676 ; AVX1-ONLY-NEXT:    vmovaps 320(%rdi), %ymm7
2677 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 384(%rdi), %ymm0, %ymm0
2678 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2679 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm7[0,1,2,3,4,5],ymm0[6,7]
2680 ; AVX1-ONLY-NEXT:    vmovaps 224(%rdi), %xmm5
2681 ; AVX1-ONLY-NEXT:    vmovaps 272(%rdi), %xmm2
2682 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2683 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm5[0,1],xmm2[2,3]
2684 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
2685 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2686 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 832(%rdi), %ymm0, %ymm0
2687 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2688 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm0[6,7]
2689 ; AVX1-ONLY-NEXT:    vmovaps 672(%rdi), %xmm6
2690 ; AVX1-ONLY-NEXT:    vmovaps 720(%rdi), %xmm2
2691 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2692 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm6[0,1],xmm2[2,3]
2693 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
2694 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2695 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 1280(%rdi), %ymm0, %ymm0
2696 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2697 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
2698 ; AVX1-ONLY-NEXT:    vmovaps 1120(%rdi), %xmm11
2699 ; AVX1-ONLY-NEXT:    vmovaps 1168(%rdi), %xmm2
2700 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2701 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm11[0,1],xmm2[2,3]
2702 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
2703 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2704 ; AVX1-ONLY-NEXT:    vmovaps 1664(%rdi), %ymm14
2705 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 1728(%rdi), %ymm0, %ymm0
2706 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2707 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm14[0,1,2,3,4,5],ymm0[6,7]
2708 ; AVX1-ONLY-NEXT:    vmovaps 1568(%rdi), %xmm8
2709 ; AVX1-ONLY-NEXT:    vmovaps 1616(%rdi), %xmm2
2710 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2711 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm8[0,1],xmm2[2,3]
2712 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
2713 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2714 ; AVX1-ONLY-NEXT:    vmovapd 96(%rdi), %ymm4
2715 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 160(%rdi), %ymm0, %ymm0
2716 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2717 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm4[0,1,2],ymm0[3]
2718 ; AVX1-ONLY-NEXT:    vmovapd 48(%rdi), %xmm1
2719 ; AVX1-ONLY-NEXT:    vmovapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2720 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm2 = mem[0],xmm1[1]
2721 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,3]
2722 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2723 ; AVX1-ONLY-NEXT:    vmovapd 544(%rdi), %ymm9
2724 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 608(%rdi), %ymm0, %ymm0
2725 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2726 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm9[0,1,2],ymm0[3]
2727 ; AVX1-ONLY-NEXT:    vmovapd 448(%rdi), %xmm10
2728 ; AVX1-ONLY-NEXT:    vmovapd 496(%rdi), %xmm1
2729 ; AVX1-ONLY-NEXT:    vmovapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2730 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm2 = xmm10[0],xmm1[1]
2731 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,3]
2732 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2733 ; AVX1-ONLY-NEXT:    vmovapd 992(%rdi), %ymm15
2734 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 1056(%rdi), %ymm0, %ymm0
2735 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2736 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm15[0,1,2],ymm0[3]
2737 ; AVX1-ONLY-NEXT:    vmovapd 896(%rdi), %xmm12
2738 ; AVX1-ONLY-NEXT:    vmovapd 944(%rdi), %xmm1
2739 ; AVX1-ONLY-NEXT:    vmovapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2740 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm2 = xmm12[0],xmm1[1]
2741 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,3]
2742 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2743 ; AVX1-ONLY-NEXT:    vmovapd 1440(%rdi), %ymm2
2744 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 1504(%rdi), %ymm0, %ymm0
2745 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2746 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm2[0,1,2],ymm0[3]
2747 ; AVX1-ONLY-NEXT:    vmovapd 1344(%rdi), %xmm3
2748 ; AVX1-ONLY-NEXT:    vmovapd 1392(%rdi), %xmm0
2749 ; AVX1-ONLY-NEXT:    vmovapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2750 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm13 = xmm3[0],xmm0[1]
2751 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm13[0,1],ymm1[2,3]
2752 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2753 ; AVX1-ONLY-NEXT:    vmovdqa 288(%rdi), %xmm0
2754 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm5 = xmm5[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
2755 ; AVX1-ONLY-NEXT:    vmovapd 384(%rdi), %ymm0
2756 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm7 = ymm7[0],ymm0[0],ymm7[3],ymm0[2]
2757 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm5 = ymm5[0,1],ymm7[2,3]
2758 ; AVX1-ONLY-NEXT:    vmovupd %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2759 ; AVX1-ONLY-NEXT:    vmovdqa 736(%rdi), %xmm5
2760 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm5 = xmm6[8,9,10,11,12,13,14,15],xmm5[0,1,2,3,4,5,6,7]
2761 ; AVX1-ONLY-NEXT:    vmovapd 832(%rdi), %ymm7
2762 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
2763 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm1 = ymm1[0],ymm7[0],ymm1[3],ymm7[2]
2764 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm5[0,1],ymm1[2,3]
2765 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2766 ; AVX1-ONLY-NEXT:    vmovdqa 1184(%rdi), %xmm1
2767 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = xmm11[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
2768 ; AVX1-ONLY-NEXT:    vmovapd 1280(%rdi), %ymm6
2769 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
2770 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm5 = ymm5[0],ymm6[0],ymm5[3],ymm6[2]
2771 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm1[0,1],ymm5[2,3]
2772 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2773 ; AVX1-ONLY-NEXT:    vmovdqa 1632(%rdi), %xmm1
2774 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = xmm8[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
2775 ; AVX1-ONLY-NEXT:    vmovapd 1728(%rdi), %ymm11
2776 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm5 = ymm14[0],ymm11[0],ymm14[3],ymm11[2]
2777 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm1[0,1],ymm5[2,3]
2778 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2779 ; AVX1-ONLY-NEXT:    vmovapd 160(%rdi), %ymm8
2780 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm4 = ymm4[0],ymm8[0],ymm4[3],ymm8[2]
2781 ; AVX1-ONLY-NEXT:    vmovdqa 64(%rdi), %xmm1
2782 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm5 = mem[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
2783 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm4 = ymm5[0,1],ymm4[2,3]
2784 ; AVX1-ONLY-NEXT:    vmovupd %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2785 ; AVX1-ONLY-NEXT:    vmovapd 608(%rdi), %ymm14
2786 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm5 = ymm9[0],ymm14[0],ymm9[3],ymm14[2]
2787 ; AVX1-ONLY-NEXT:    vmovdqa 512(%rdi), %xmm4
2788 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm9 = xmm10[8,9,10,11,12,13,14,15],xmm4[0,1,2,3,4,5,6,7]
2789 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm5 = ymm9[0,1],ymm5[2,3]
2790 ; AVX1-ONLY-NEXT:    vmovupd %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2791 ; AVX1-ONLY-NEXT:    vmovapd 1056(%rdi), %ymm13
2792 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm5 = ymm15[0],ymm13[0],ymm15[3],ymm13[2]
2793 ; AVX1-ONLY-NEXT:    vmovdqa 960(%rdi), %xmm15
2794 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm9 = xmm12[8,9,10,11,12,13,14,15],xmm15[0,1,2,3,4,5,6,7]
2795 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm5 = ymm9[0,1],ymm5[2,3]
2796 ; AVX1-ONLY-NEXT:    vmovupd %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2797 ; AVX1-ONLY-NEXT:    vmovapd 1504(%rdi), %ymm5
2798 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm2 = ymm2[0],ymm5[0],ymm2[3],ymm5[2]
2799 ; AVX1-ONLY-NEXT:    vmovdqa 1408(%rdi), %xmm9
2800 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm3 = xmm3[8,9,10,11,12,13,14,15],xmm9[0,1,2,3,4,5,6,7]
2801 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm3[0,1],ymm2[2,3]
2802 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2803 ; AVX1-ONLY-NEXT:    vmovdqa 352(%rdi), %xmm3
2804 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm2
2805 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm2[0,1,2],ymm0[3]
2806 ; AVX1-ONLY-NEXT:    vmovapd 240(%rdi), %xmm2
2807 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm10 = xmm2[0],mem[1]
2808 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm10[0,1],ymm0[2,3]
2809 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2810 ; AVX1-ONLY-NEXT:    vmovdqa 800(%rdi), %xmm0
2811 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm10
2812 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm7 = ymm10[0,1,2],ymm7[3]
2813 ; AVX1-ONLY-NEXT:    vmovapd 688(%rdi), %xmm10
2814 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm12 = xmm10[0],mem[1]
2815 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm7 = ymm12[0,1],ymm7[2,3]
2816 ; AVX1-ONLY-NEXT:    vmovupd %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2817 ; AVX1-ONLY-NEXT:    vmovaps 1248(%rdi), %xmm7
2818 ; AVX1-ONLY-NEXT:    vmovaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2819 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm12
2820 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm12 = ymm12[0,1,2],ymm6[3]
2821 ; AVX1-ONLY-NEXT:    vmovapd 1136(%rdi), %xmm6
2822 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm7 = xmm6[0],mem[1]
2823 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm7 = ymm7[0,1],ymm12[2,3]
2824 ; AVX1-ONLY-NEXT:    vmovupd %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2825 ; AVX1-ONLY-NEXT:    vmovaps 1696(%rdi), %xmm7
2826 ; AVX1-ONLY-NEXT:    vmovaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2827 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
2828 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm7 = ymm7[0,1,2],ymm11[3]
2829 ; AVX1-ONLY-NEXT:    vmovapd 1584(%rdi), %xmm11
2830 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm12 = xmm11[0],mem[1]
2831 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm7 = ymm12[0,1],ymm7[2,3]
2832 ; AVX1-ONLY-NEXT:    vmovupd %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2833 ; AVX1-ONLY-NEXT:    vmovdqa 128(%rdi), %xmm12
2834 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm7
2835 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm7 = ymm7[0,1,2],ymm8[3]
2836 ; AVX1-ONLY-NEXT:    vmovdqa 16(%rdi), %xmm8
2837 ; AVX1-ONLY-NEXT:    vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2838 ; AVX1-ONLY-NEXT:    vpblendw {{.*#+}} xmm1 = xmm8[0,1,2,3],xmm1[4,5,6,7]
2839 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm1[0,1],ymm7[2,3]
2840 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2841 ; AVX1-ONLY-NEXT:    vmovaps 576(%rdi), %xmm1
2842 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2843 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
2844 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm1[0,1,2],ymm14[3]
2845 ; AVX1-ONLY-NEXT:    vmovdqa 464(%rdi), %xmm8
2846 ; AVX1-ONLY-NEXT:    vpblendw {{.*#+}} xmm4 = xmm8[0,1,2,3],xmm4[4,5,6,7]
2847 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm4[0,1],ymm1[2,3]
2848 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2849 ; AVX1-ONLY-NEXT:    vmovdqa 1024(%rdi), %xmm14
2850 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm14, %ymm0, %ymm1
2851 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm4 = ymm1[0,1,2],ymm13[3]
2852 ; AVX1-ONLY-NEXT:    vmovdqa 912(%rdi), %xmm1
2853 ; AVX1-ONLY-NEXT:    vpblendw {{.*#+}} xmm7 = xmm1[0,1,2,3],xmm15[4,5,6,7]
2854 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm4 = ymm7[0,1],ymm4[2,3]
2855 ; AVX1-ONLY-NEXT:    vmovupd %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2856 ; AVX1-ONLY-NEXT:    vmovdqa 1472(%rdi), %xmm4
2857 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm7
2858 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm5 = ymm7[0,1,2],ymm5[3]
2859 ; AVX1-ONLY-NEXT:    vmovdqa 1360(%rdi), %xmm15
2860 ; AVX1-ONLY-NEXT:    vpblendw {{.*#+}} xmm7 = xmm15[0,1,2,3],xmm9[4,5,6,7]
2861 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm5 = ymm7[0,1],ymm5[2,3]
2862 ; AVX1-ONLY-NEXT:    vmovupd %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2863 ; AVX1-ONLY-NEXT:    vmovapd 304(%rdi), %xmm9
2864 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm2 = ymm2[1],ymm9[0],ymm2[2],ymm9[2]
2865 ; AVX1-ONLY-NEXT:    vmovdqa 416(%rdi), %xmm13
2866 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm3 = xmm3[8,9,10,11,12,13,14,15],xmm13[0,1,2,3,4,5,6,7]
2867 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
2868 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm2[0,1],ymm3[2,3]
2869 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2870 ; AVX1-ONLY-NEXT:    vmovapd 752(%rdi), %xmm5
2871 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm2 = ymm10[1],ymm5[0],ymm10[2],ymm5[2]
2872 ; AVX1-ONLY-NEXT:    vmovdqa 864(%rdi), %xmm10
2873 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm0 = xmm0[8,9,10,11,12,13,14,15],xmm10[0,1,2,3,4,5,6,7]
2874 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
2875 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,3]
2876 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2877 ; AVX1-ONLY-NEXT:    vmovapd 1200(%rdi), %xmm0
2878 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2879 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm6[1],ymm0[0],ymm6[2],ymm0[2]
2880 ; AVX1-ONLY-NEXT:    vmovdqa 1312(%rdi), %xmm6
2881 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6, %xmm2 # 16-byte Folded Reload
2882 ; AVX1-ONLY-NEXT:    # xmm2 = mem[8,9,10,11,12,13,14,15],xmm6[0,1,2,3,4,5,6,7]
2883 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
2884 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm2[2,3]
2885 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2886 ; AVX1-ONLY-NEXT:    vmovapd 1648(%rdi), %xmm0
2887 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2888 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm11[1],ymm0[0],ymm11[2],ymm0[2]
2889 ; AVX1-ONLY-NEXT:    vmovdqa 1760(%rdi), %xmm2
2890 ; AVX1-ONLY-NEXT:    vmovdqa %xmm2, (%rsp) # 16-byte Spill
2891 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
2892 ; AVX1-ONLY-NEXT:    # xmm2 = mem[8,9,10,11,12,13,14,15],xmm2[0,1,2,3,4,5,6,7]
2893 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
2894 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm2[2,3]
2895 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2896 ; AVX1-ONLY-NEXT:    vmovapd 1424(%rdi), %xmm0
2897 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2898 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm15[1],ymm0[0],ymm15[2],ymm0[2]
2899 ; AVX1-ONLY-NEXT:    vmovdqa 1536(%rdi), %xmm11
2900 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm2 = xmm4[8,9,10,11,12,13,14,15],xmm11[0,1,2,3,4,5,6,7]
2901 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
2902 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm2[2,3]
2903 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2904 ; AVX1-ONLY-NEXT:    vmovapd 976(%rdi), %xmm15
2905 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm1[1],ymm15[0],ymm1[2],ymm15[2]
2906 ; AVX1-ONLY-NEXT:    vmovdqa 1088(%rdi), %xmm1
2907 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm2 = xmm14[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
2908 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
2909 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm2[2,3]
2910 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2911 ; AVX1-ONLY-NEXT:    vmovapd 528(%rdi), %xmm0
2912 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm2 = ymm8[1],ymm0[0],ymm8[2],ymm0[2]
2913 ; AVX1-ONLY-NEXT:    vmovdqa 640(%rdi), %xmm4
2914 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm3 # 16-byte Folded Reload
2915 ; AVX1-ONLY-NEXT:    # xmm3 = mem[8,9,10,11,12,13,14,15],xmm4[0,1,2,3,4,5,6,7]
2916 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
2917 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm2[0,1],ymm3[2,3]
2918 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2919 ; AVX1-ONLY-NEXT:    vmovapd 80(%rdi), %xmm3
2920 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
2921 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm2 = ymm2[1],ymm3[0],ymm2[2],ymm3[2]
2922 ; AVX1-ONLY-NEXT:    vmovdqa 192(%rdi), %xmm7
2923 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm8 = xmm12[8,9,10,11,12,13,14,15],xmm7[0,1,2,3,4,5,6,7]
2924 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm8
2925 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm2[0,1],ymm8[2,3]
2926 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2927 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
2928 ; AVX1-ONLY-NEXT:    vmovapd 128(%rdi), %ymm2
2929 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm7 = ymm2[0,1,2],ymm7[3]
2930 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm3 = mem[0],xmm3[1]
2931 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm3 = ymm3[0,1],ymm7[2,3]
2932 ; AVX1-ONLY-NEXT:    vmovupd %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2933 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm13, %ymm0, %ymm3
2934 ; AVX1-ONLY-NEXT:    vmovapd 352(%rdi), %ymm7
2935 ; AVX1-ONLY-NEXT:    vmovupd %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2936 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm7 = ymm7[0,1,2],ymm3[3]
2937 ; AVX1-ONLY-NEXT:    vmovapd 256(%rdi), %xmm3
2938 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm8 = xmm3[0],xmm9[1]
2939 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm7 = ymm8[0,1],ymm7[2,3]
2940 ; AVX1-ONLY-NEXT:    vmovupd %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2941 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
2942 ; AVX1-ONLY-NEXT:    vmovapd 576(%rdi), %ymm7
2943 ; AVX1-ONLY-NEXT:    vmovupd %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2944 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm4 = ymm7[0,1,2],ymm4[3]
2945 ; AVX1-ONLY-NEXT:    vmovapd 480(%rdi), %xmm7
2946 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm0 = xmm7[0],xmm0[1]
2947 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm4[2,3]
2948 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2949 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm4
2950 ; AVX1-ONLY-NEXT:    vmovapd 800(%rdi), %ymm0
2951 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm4 = ymm0[0,1,2],ymm4[3]
2952 ; AVX1-ONLY-NEXT:    vmovapd 704(%rdi), %xmm14
2953 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm5 = xmm14[0],xmm5[1]
2954 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm4 = ymm5[0,1],ymm4[2,3]
2955 ; AVX1-ONLY-NEXT:    vmovupd %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2956 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
2957 ; AVX1-ONLY-NEXT:    vmovapd 1024(%rdi), %ymm4
2958 ; AVX1-ONLY-NEXT:    vmovupd %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2959 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm4[0,1,2],ymm1[3]
2960 ; AVX1-ONLY-NEXT:    vmovapd 928(%rdi), %xmm9
2961 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm4 = xmm9[0],xmm15[1]
2962 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm4[0,1],ymm1[2,3]
2963 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2964 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm4
2965 ; AVX1-ONLY-NEXT:    vmovapd 1248(%rdi), %ymm1
2966 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm4 = ymm1[0,1,2],ymm4[3]
2967 ; AVX1-ONLY-NEXT:    vmovapd 1152(%rdi), %xmm15
2968 ; AVX1-ONLY-NEXT:    vblendpd $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm5 # 16-byte Folded Reload
2969 ; AVX1-ONLY-NEXT:    # xmm5 = xmm15[0],mem[1]
2970 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm4 = ymm5[0,1],ymm4[2,3]
2971 ; AVX1-ONLY-NEXT:    vmovupd %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2972 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm11, %ymm0, %ymm4
2973 ; AVX1-ONLY-NEXT:    vmovaps 1472(%rdi), %ymm5
2974 ; AVX1-ONLY-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2975 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1,2,3,4,5],ymm4[6,7]
2976 ; AVX1-ONLY-NEXT:    vmovaps 1376(%rdi), %xmm8
2977 ; AVX1-ONLY-NEXT:    vblendps $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm8, %xmm5 # 16-byte Folded Reload
2978 ; AVX1-ONLY-NEXT:    # xmm5 = xmm8[0,1],mem[2,3]
2979 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1,2,3],ymm4[4,5,6,7]
2980 ; AVX1-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2981 ; AVX1-ONLY-NEXT:    vinsertf128 $1, (%rsp), %ymm0, %ymm4 # 16-byte Folded Reload
2982 ; AVX1-ONLY-NEXT:    vmovapd 1696(%rdi), %ymm12
2983 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm4 = ymm12[0,1,2],ymm4[3]
2984 ; AVX1-ONLY-NEXT:    vmovapd 1600(%rdi), %xmm13
2985 ; AVX1-ONLY-NEXT:    vblendpd $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm13, %xmm5 # 16-byte Folded Reload
2986 ; AVX1-ONLY-NEXT:    # xmm5 = xmm13[0],mem[1]
2987 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm4 = ymm5[0,1],ymm4[2,3]
2988 ; AVX1-ONLY-NEXT:    vmovupd %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2989 ; AVX1-ONLY-NEXT:    vmovapd 192(%rdi), %ymm11
2990 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm2 = ymm2[0],ymm11[0],ymm2[3],ymm11[2]
2991 ; AVX1-ONLY-NEXT:    vmovdqa 96(%rdi), %xmm4
2992 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm4 = mem[8,9,10,11,12,13,14,15],xmm4[0,1,2,3,4,5,6,7]
2993 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm4[0,1],ymm2[2,3]
2994 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2995 ; AVX1-ONLY-NEXT:    vmovapd 416(%rdi), %ymm10
2996 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
2997 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm2 = ymm2[0],ymm10[0],ymm2[3],ymm10[2]
2998 ; AVX1-ONLY-NEXT:    vmovdqa 320(%rdi), %xmm6
2999 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm3 = xmm3[8,9,10,11,12,13,14,15],xmm6[0,1,2,3,4,5,6,7]
3000 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm3[0,1],ymm2[2,3]
3001 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, (%rsp) # 32-byte Spill
3002 ; AVX1-ONLY-NEXT:    vmovdqa 544(%rdi), %xmm2
3003 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm2 = xmm7[8,9,10,11,12,13,14,15],xmm2[0,1,2,3,4,5,6,7]
3004 ; AVX1-ONLY-NEXT:    vmovapd 640(%rdi), %ymm5
3005 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3006 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm3 = ymm3[0],ymm5[0],ymm3[3],ymm5[2]
3007 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm2[0,1],ymm3[2,3]
3008 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3009 ; AVX1-ONLY-NEXT:    vmovapd 864(%rdi), %ymm7
3010 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm0[0],ymm7[0],ymm0[3],ymm7[2]
3011 ; AVX1-ONLY-NEXT:    vmovdqa 768(%rdi), %xmm4
3012 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm2 = xmm14[8,9,10,11,12,13,14,15],xmm4[0,1,2,3,4,5,6,7]
3013 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,3]
3014 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3015 ; AVX1-ONLY-NEXT:    vmovdqa 992(%rdi), %xmm0
3016 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm0 = xmm9[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
3017 ; AVX1-ONLY-NEXT:    vmovapd 1088(%rdi), %ymm3
3018 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
3019 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm2 = ymm2[0],ymm3[0],ymm2[3],ymm3[2]
3020 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm2[2,3]
3021 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3022 ; AVX1-ONLY-NEXT:    vmovapd 1312(%rdi), %ymm9
3023 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm1[0],ymm9[0],ymm1[3],ymm9[2]
3024 ; AVX1-ONLY-NEXT:    vmovdqa 1216(%rdi), %xmm2
3025 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = xmm15[8,9,10,11,12,13,14,15],xmm2[0,1,2,3,4,5,6,7]
3026 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm15 = ymm1[0,1],ymm0[2,3]
3027 ; AVX1-ONLY-NEXT:    vmovdqa 1440(%rdi), %xmm0
3028 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm0 = xmm8[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
3029 ; AVX1-ONLY-NEXT:    vmovapd 1536(%rdi), %ymm8
3030 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3031 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm1 = ymm1[0],ymm8[0],ymm1[3],ymm8[2]
3032 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3]
3033 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3034 ; AVX1-ONLY-NEXT:    vmovapd 1760(%rdi), %ymm1
3035 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm12 = ymm12[0],ymm1[0],ymm12[3],ymm1[2]
3036 ; AVX1-ONLY-NEXT:    vmovdqa 1664(%rdi), %xmm0
3037 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm13 = xmm13[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
3038 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm12 = ymm13[0,1],ymm12[2,3]
3039 ; AVX1-ONLY-NEXT:    vblendpd $7, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm11 # 32-byte Folded Reload
3040 ; AVX1-ONLY-NEXT:    # ymm11 = mem[0,1,2],ymm11[3]
3041 ; AVX1-ONLY-NEXT:    vmovapd {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload
3042 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm13 = xmm13[0],mem[1]
3043 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm14 = ymm13[0,1],ymm11[2,3]
3044 ; AVX1-ONLY-NEXT:    vblendpd $7, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
3045 ; AVX1-ONLY-NEXT:    # ymm10 = mem[0,1,2],ymm10[3]
3046 ; AVX1-ONLY-NEXT:    vpblendw $15, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6, %xmm6 # 16-byte Folded Reload
3047 ; AVX1-ONLY-NEXT:    # xmm6 = mem[0,1,2,3],xmm6[4,5,6,7]
3048 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm11 = ymm6[0,1],ymm10[2,3]
3049 ; AVX1-ONLY-NEXT:    vblendpd $7, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm5 # 32-byte Folded Reload
3050 ; AVX1-ONLY-NEXT:    # ymm5 = mem[0,1,2],ymm5[3]
3051 ; AVX1-ONLY-NEXT:    vmovapd {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
3052 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm6 = xmm6[0],mem[1]
3053 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm6 = ymm6[0,1],ymm5[2,3]
3054 ; AVX1-ONLY-NEXT:    vblendpd $7, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm5 # 32-byte Folded Reload
3055 ; AVX1-ONLY-NEXT:    # ymm5 = mem[0,1,2],ymm7[3]
3056 ; AVX1-ONLY-NEXT:    vpblendw $15, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload
3057 ; AVX1-ONLY-NEXT:    # xmm4 = mem[0,1,2,3],xmm4[4,5,6,7]
3058 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm5 = ymm4[0,1],ymm5[2,3]
3059 ; AVX1-ONLY-NEXT:    vblendpd $7, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
3060 ; AVX1-ONLY-NEXT:    # ymm3 = mem[0,1,2],ymm3[3]
3061 ; AVX1-ONLY-NEXT:    vmovapd {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
3062 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm4 = xmm4[0],mem[1]
3063 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm3 = ymm4[0,1],ymm3[2,3]
3064 ; AVX1-ONLY-NEXT:    vblendpd $7, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm4 # 32-byte Folded Reload
3065 ; AVX1-ONLY-NEXT:    # ymm4 = mem[0,1,2],ymm9[3]
3066 ; AVX1-ONLY-NEXT:    vpblendw $15, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
3067 ; AVX1-ONLY-NEXT:    # xmm2 = mem[0,1,2,3],xmm2[4,5,6,7]
3068 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm7 = ymm2[0,1],ymm4[2,3]
3069 ; AVX1-ONLY-NEXT:    vblendpd $7, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm2 # 32-byte Folded Reload
3070 ; AVX1-ONLY-NEXT:    # ymm2 = mem[0,1,2],ymm8[3]
3071 ; AVX1-ONLY-NEXT:    vmovapd {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
3072 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm4 = xmm4[0],mem[1]
3073 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm4 = ymm4[0,1],ymm2[2,3]
3074 ; AVX1-ONLY-NEXT:    vblendpd $7, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
3075 ; AVX1-ONLY-NEXT:    # ymm1 = mem[0,1,2],ymm1[3]
3076 ; AVX1-ONLY-NEXT:    vpblendw $15, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
3077 ; AVX1-ONLY-NEXT:    # xmm0 = mem[0,1,2,3],xmm0[4,5,6,7]
3078 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm10 = ymm0[0,1],ymm1[2,3]
3079 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3080 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 192(%rsi)
3081 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3082 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 128(%rsi)
3083 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3084 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 64(%rsi)
3085 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3086 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, (%rsi)
3087 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3088 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 224(%rsi)
3089 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3090 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 160(%rsi)
3091 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3092 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 96(%rsi)
3093 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3094 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 32(%rsi)
3095 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3096 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 192(%rdx)
3097 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3098 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 128(%rdx)
3099 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3100 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 64(%rdx)
3101 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3102 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, (%rdx)
3103 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3104 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 224(%rdx)
3105 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3106 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 160(%rdx)
3107 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3108 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 96(%rdx)
3109 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3110 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 32(%rdx)
3111 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3112 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 192(%rcx)
3113 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3114 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 128(%rcx)
3115 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3116 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 64(%rcx)
3117 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3118 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, (%rcx)
3119 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3120 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 224(%rcx)
3121 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3122 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 160(%rcx)
3123 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3124 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 96(%rcx)
3125 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3126 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 32(%rcx)
3127 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3128 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, (%r8)
3129 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3130 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 64(%r8)
3131 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3132 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 128(%r8)
3133 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3134 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 192(%r8)
3135 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3136 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 224(%r8)
3137 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3138 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 160(%r8)
3139 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3140 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 96(%r8)
3141 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3142 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 32(%r8)
3143 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3144 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 224(%r9)
3145 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3146 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 192(%r9)
3147 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3148 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 160(%r9)
3149 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3150 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 128(%r9)
3151 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3152 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 96(%r9)
3153 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3154 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 64(%r9)
3155 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3156 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 32(%r9)
3157 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3158 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, (%r9)
3159 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3160 ; AVX1-ONLY-NEXT:    vmovapd %ymm12, 224(%rax)
3161 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3162 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 192(%rax)
3163 ; AVX1-ONLY-NEXT:    vmovapd %ymm15, 160(%rax)
3164 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3165 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 128(%rax)
3166 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3167 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 96(%rax)
3168 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3169 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 64(%rax)
3170 ; AVX1-ONLY-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
3171 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 32(%rax)
3172 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3173 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, (%rax)
3174 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3175 ; AVX1-ONLY-NEXT:    vmovapd %ymm10, 224(%rax)
3176 ; AVX1-ONLY-NEXT:    vmovapd %ymm4, 192(%rax)
3177 ; AVX1-ONLY-NEXT:    vmovapd %ymm7, 160(%rax)
3178 ; AVX1-ONLY-NEXT:    vmovapd %ymm3, 128(%rax)
3179 ; AVX1-ONLY-NEXT:    vmovapd %ymm5, 96(%rax)
3180 ; AVX1-ONLY-NEXT:    vmovapd %ymm6, 64(%rax)
3181 ; AVX1-ONLY-NEXT:    vmovapd %ymm11, 32(%rax)
3182 ; AVX1-ONLY-NEXT:    vmovapd %ymm14, (%rax)
3183 ; AVX1-ONLY-NEXT:    addq $1736, %rsp # imm = 0x6C8
3184 ; AVX1-ONLY-NEXT:    vzeroupper
3185 ; AVX1-ONLY-NEXT:    retq
3187 ; AVX2-ONLY-LABEL: load_i64_stride7_vf32:
3188 ; AVX2-ONLY:       # %bb.0:
3189 ; AVX2-ONLY-NEXT:    subq $1576, %rsp # imm = 0x628
3190 ; AVX2-ONLY-NEXT:    vmovdqa 1216(%rdi), %ymm1
3191 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3192 ; AVX2-ONLY-NEXT:    vmovdqa 768(%rdi), %ymm6
3193 ; AVX2-ONLY-NEXT:    vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3194 ; AVX2-ONLY-NEXT:    vmovdqa 320(%rdi), %ymm2
3195 ; AVX2-ONLY-NEXT:    vmovdqa 384(%rdi), %xmm0
3196 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3197 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm3
3198 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm3 = ymm2[0,1,2,3,4,5],ymm3[6,7]
3199 ; AVX2-ONLY-NEXT:    vmovdqa 224(%rdi), %xmm4
3200 ; AVX2-ONLY-NEXT:    vmovdqa 272(%rdi), %xmm0
3201 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3202 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm5 = xmm4[0,1],xmm0[2,3]
3203 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm5[0,1,2,3],ymm3[4,5,6,7]
3204 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3205 ; AVX2-ONLY-NEXT:    vmovdqa 832(%rdi), %xmm0
3206 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3207 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm3
3208 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm3 = ymm6[0,1,2,3,4,5],ymm3[6,7]
3209 ; AVX2-ONLY-NEXT:    vmovdqa 672(%rdi), %xmm5
3210 ; AVX2-ONLY-NEXT:    vmovdqa 720(%rdi), %xmm0
3211 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3212 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm6 = xmm5[0,1],xmm0[2,3]
3213 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm6[0,1,2,3],ymm3[4,5,6,7]
3214 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3215 ; AVX2-ONLY-NEXT:    vmovdqa 1280(%rdi), %xmm0
3216 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3217 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm3
3218 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm3 = ymm1[0,1,2,3,4,5],ymm3[6,7]
3219 ; AVX2-ONLY-NEXT:    vmovdqa 1120(%rdi), %xmm6
3220 ; AVX2-ONLY-NEXT:    vmovdqa 1168(%rdi), %xmm0
3221 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3222 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm7 = xmm6[0,1],xmm0[2,3]
3223 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm7[0,1,2,3],ymm3[4,5,6,7]
3224 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3225 ; AVX2-ONLY-NEXT:    vmovdqa 1664(%rdi), %ymm3
3226 ; AVX2-ONLY-NEXT:    vmovdqa 1728(%rdi), %xmm0
3227 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3228 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm7
3229 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm7 = ymm3[0,1,2,3,4,5],ymm7[6,7]
3230 ; AVX2-ONLY-NEXT:    vmovdqa 1568(%rdi), %xmm8
3231 ; AVX2-ONLY-NEXT:    vmovdqa 1616(%rdi), %xmm0
3232 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3233 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm9 = xmm8[0,1],xmm0[2,3]
3234 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm9[0,1,2,3],ymm7[4,5,6,7]
3235 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3236 ; AVX2-ONLY-NEXT:    vmovdqa 96(%rdi), %ymm7
3237 ; AVX2-ONLY-NEXT:    vmovdqa 160(%rdi), %xmm0
3238 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3239 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm9
3240 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm9 = ymm7[0,1,2,3,4,5],ymm9[6,7]
3241 ; AVX2-ONLY-NEXT:    vmovdqa 48(%rdi), %xmm0
3242 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3243 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm10 = mem[0,1],xmm0[2,3]
3244 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm9[4,5,6,7]
3245 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3246 ; AVX2-ONLY-NEXT:    vmovdqa 544(%rdi), %ymm9
3247 ; AVX2-ONLY-NEXT:    vmovdqa 608(%rdi), %xmm0
3248 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3249 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm10
3250 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm11 = ymm9[0,1,2,3,4,5],ymm10[6,7]
3251 ; AVX2-ONLY-NEXT:    vmovdqa 448(%rdi), %xmm10
3252 ; AVX2-ONLY-NEXT:    vmovdqa 496(%rdi), %xmm0
3253 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3254 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm12 = xmm10[0,1],xmm0[2,3]
3255 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm12[0,1,2,3],ymm11[4,5,6,7]
3256 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3257 ; AVX2-ONLY-NEXT:    vmovdqa 992(%rdi), %ymm11
3258 ; AVX2-ONLY-NEXT:    vmovdqa 1056(%rdi), %xmm0
3259 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3260 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm12
3261 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm13 = ymm11[0,1,2,3,4,5],ymm12[6,7]
3262 ; AVX2-ONLY-NEXT:    vmovdqa 896(%rdi), %xmm12
3263 ; AVX2-ONLY-NEXT:    vmovdqa 944(%rdi), %xmm0
3264 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3265 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm14 = xmm12[0,1],xmm0[2,3]
3266 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm14[0,1,2,3],ymm13[4,5,6,7]
3267 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3268 ; AVX2-ONLY-NEXT:    vmovdqa 1440(%rdi), %ymm13
3269 ; AVX2-ONLY-NEXT:    vmovdqa 1504(%rdi), %xmm0
3270 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3271 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm14
3272 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm15 = ymm13[0,1,2,3,4,5],ymm14[6,7]
3273 ; AVX2-ONLY-NEXT:    vmovdqa 1344(%rdi), %xmm14
3274 ; AVX2-ONLY-NEXT:    vmovdqa 1392(%rdi), %xmm0
3275 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3276 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm0 = xmm14[0,1],xmm0[2,3]
3277 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm15[4,5,6,7]
3278 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3279 ; AVX2-ONLY-NEXT:    vmovdqa 288(%rdi), %xmm0
3280 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm0 = xmm4[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
3281 ; AVX2-ONLY-NEXT:    vmovdqa 384(%rdi), %ymm4
3282 ; 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]
3283 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
3284 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3285 ; AVX2-ONLY-NEXT:    vmovdqa 736(%rdi), %xmm0
3286 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm0 = xmm5[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
3287 ; AVX2-ONLY-NEXT:    vmovdqa 832(%rdi), %ymm2
3288 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm1 # 32-byte Folded Reload
3289 ; 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]
3290 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
3291 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3292 ; AVX2-ONLY-NEXT:    vmovdqa 1184(%rdi), %xmm0
3293 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm0 = xmm6[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
3294 ; AVX2-ONLY-NEXT:    vmovdqa 1280(%rdi), %ymm5
3295 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm1 # 32-byte Folded Reload
3296 ; 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]
3297 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
3298 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3299 ; AVX2-ONLY-NEXT:    vmovdqa 1632(%rdi), %xmm0
3300 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm0 = xmm8[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
3301 ; AVX2-ONLY-NEXT:    vmovdqa 1728(%rdi), %ymm8
3302 ; 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]
3303 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
3304 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3305 ; AVX2-ONLY-NEXT:    vmovdqa 160(%rdi), %ymm0
3306 ; 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]
3307 ; AVX2-ONLY-NEXT:    vmovdqa 64(%rdi), %xmm3
3308 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm6 = mem[8,9,10,11,12,13,14,15],xmm3[0,1,2,3,4,5,6,7]
3309 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm6[0,1,2,3],ymm1[4,5,6,7]
3310 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3311 ; AVX2-ONLY-NEXT:    vmovdqa 608(%rdi), %ymm1
3312 ; 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]
3313 ; AVX2-ONLY-NEXT:    vmovdqa 512(%rdi), %xmm7
3314 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm9 = xmm10[8,9,10,11,12,13,14,15],xmm7[0,1,2,3,4,5,6,7]
3315 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm6 = ymm9[0,1,2,3],ymm6[4,5,6,7]
3316 ; AVX2-ONLY-NEXT:    vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3317 ; AVX2-ONLY-NEXT:    vmovdqa 1056(%rdi), %ymm6
3318 ; 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]
3319 ; AVX2-ONLY-NEXT:    vmovdqa 960(%rdi), %xmm10
3320 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm11 = xmm12[8,9,10,11,12,13,14,15],xmm10[0,1,2,3,4,5,6,7]
3321 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm9 = ymm11[0,1,2,3],ymm9[4,5,6,7]
3322 ; AVX2-ONLY-NEXT:    vmovdqu %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3323 ; AVX2-ONLY-NEXT:    vmovdqa 1504(%rdi), %ymm9
3324 ; 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]
3325 ; AVX2-ONLY-NEXT:    vmovdqa 1408(%rdi), %xmm11
3326 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm13 = xmm14[8,9,10,11,12,13,14,15],xmm11[0,1,2,3,4,5,6,7]
3327 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm12 = ymm13[0,1,2,3],ymm12[4,5,6,7]
3328 ; AVX2-ONLY-NEXT:    vmovdqu %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3329 ; AVX2-ONLY-NEXT:    vpbroadcastq 352(%rdi), %ymm12
3330 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm4 = ymm12[1],ymm4[1],ymm12[3],ymm4[3]
3331 ; AVX2-ONLY-NEXT:    vmovdqa 240(%rdi), %xmm12
3332 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm12 = xmm12[0,1],mem[2,3]
3333 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm4 = ymm12[0,1,2,3],ymm4[4,5,6,7]
3334 ; AVX2-ONLY-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3335 ; AVX2-ONLY-NEXT:    vpbroadcastq 800(%rdi), %ymm4
3336 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm2 = ymm4[1],ymm2[1],ymm4[3],ymm2[3]
3337 ; AVX2-ONLY-NEXT:    vmovdqa 688(%rdi), %xmm4
3338 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm4 = xmm4[0,1],mem[2,3]
3339 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm4[0,1,2,3],ymm2[4,5,6,7]
3340 ; AVX2-ONLY-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3341 ; AVX2-ONLY-NEXT:    vpbroadcastq 1248(%rdi), %ymm2
3342 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm2 = ymm2[1],ymm5[1],ymm2[3],ymm5[3]
3343 ; AVX2-ONLY-NEXT:    vmovdqa 1136(%rdi), %xmm4
3344 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm4 = xmm4[0,1],mem[2,3]
3345 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm4[0,1,2,3],ymm2[4,5,6,7]
3346 ; AVX2-ONLY-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3347 ; AVX2-ONLY-NEXT:    vpbroadcastq 1696(%rdi), %ymm2
3348 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm2 = ymm2[1],ymm8[1],ymm2[3],ymm8[3]
3349 ; AVX2-ONLY-NEXT:    vmovdqa 1584(%rdi), %xmm4
3350 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm4 = xmm4[0,1],mem[2,3]
3351 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm4[0,1,2,3],ymm2[4,5,6,7]
3352 ; AVX2-ONLY-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3353 ; AVX2-ONLY-NEXT:    vpbroadcastq 128(%rdi), %ymm2
3354 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm2[1],ymm0[1],ymm2[3],ymm0[3]
3355 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm2 = mem[0,1],xmm3[2,3]
3356 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
3357 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3358 ; AVX2-ONLY-NEXT:    vpbroadcastq 576(%rdi), %ymm0
3359 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
3360 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = mem[0,1],xmm7[2,3]
3361 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3362 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3363 ; AVX2-ONLY-NEXT:    vpbroadcastq 1024(%rdi), %ymm0
3364 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm6[1],ymm0[3],ymm6[3]
3365 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = mem[0,1],xmm10[2,3]
3366 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3367 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3368 ; AVX2-ONLY-NEXT:    vpbroadcastq 1472(%rdi), %ymm0
3369 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm9[1],ymm0[3],ymm9[3]
3370 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = mem[0,1],xmm11[2,3]
3371 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3372 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3373 ; AVX2-ONLY-NEXT:    vmovdqa 288(%rdi), %ymm0
3374 ; 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]
3375 ; AVX2-ONLY-NEXT:    vmovdqa 416(%rdi), %xmm0
3376 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm2 = mem[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
3377 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
3378 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm1 = ymm1[2,3],ymm2[2,3]
3379 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3380 ; AVX2-ONLY-NEXT:    vmovdqa 736(%rdi), %ymm1
3381 ; 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]
3382 ; AVX2-ONLY-NEXT:    vmovdqa 864(%rdi), %xmm3
3383 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm2 = mem[8,9,10,11,12,13,14,15],xmm3[0,1,2,3,4,5,6,7]
3384 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
3385 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm1 = ymm1[2,3],ymm2[2,3]
3386 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3387 ; AVX2-ONLY-NEXT:    vmovdqa 1184(%rdi), %ymm1
3388 ; 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]
3389 ; AVX2-ONLY-NEXT:    vmovdqa 1312(%rdi), %xmm7
3390 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm2 = mem[8,9,10,11,12,13,14,15],xmm7[0,1,2,3,4,5,6,7]
3391 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
3392 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm1 = ymm1[2,3],ymm2[2,3]
3393 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3394 ; AVX2-ONLY-NEXT:    vmovdqa 1632(%rdi), %ymm1
3395 ; 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]
3396 ; AVX2-ONLY-NEXT:    vmovdqa 1760(%rdi), %xmm6
3397 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm2 = mem[8,9,10,11,12,13,14,15],xmm6[0,1,2,3,4,5,6,7]
3398 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
3399 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm1 = ymm1[2,3],ymm2[2,3]
3400 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3401 ; AVX2-ONLY-NEXT:    vmovdqa 1408(%rdi), %ymm1
3402 ; 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]
3403 ; AVX2-ONLY-NEXT:    vmovdqa 1536(%rdi), %xmm5
3404 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm2 = mem[8,9,10,11,12,13,14,15],xmm5[0,1,2,3,4,5,6,7]
3405 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
3406 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm1 = ymm1[2,3],ymm2[2,3]
3407 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3408 ; AVX2-ONLY-NEXT:    vmovdqa 960(%rdi), %ymm1
3409 ; 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]
3410 ; AVX2-ONLY-NEXT:    vmovdqa 1088(%rdi), %xmm4
3411 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm2 = mem[8,9,10,11,12,13,14,15],xmm4[0,1,2,3,4,5,6,7]
3412 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
3413 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm1 = ymm1[2,3],ymm2[2,3]
3414 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3415 ; AVX2-ONLY-NEXT:    vmovdqa 512(%rdi), %ymm1
3416 ; 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]
3417 ; AVX2-ONLY-NEXT:    vmovdqa 640(%rdi), %xmm8
3418 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm2 = mem[8,9,10,11,12,13,14,15],xmm8[0,1,2,3,4,5,6,7]
3419 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
3420 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm1 = ymm1[2,3],ymm2[2,3]
3421 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3422 ; AVX2-ONLY-NEXT:    vmovdqa 64(%rdi), %ymm1
3423 ; 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]
3424 ; AVX2-ONLY-NEXT:    vmovdqa 192(%rdi), %xmm2
3425 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm9 = mem[8,9,10,11,12,13,14,15],xmm2[0,1,2,3,4,5,6,7]
3426 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm9, %ymm0, %ymm9
3427 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm1 = ymm1[2,3],ymm9[2,3]
3428 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3429 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm1
3430 ; AVX2-ONLY-NEXT:    vmovdqa 128(%rdi), %ymm12
3431 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3,4,5],ymm1[6,7]
3432 ; AVX2-ONLY-NEXT:    vmovdqa 32(%rdi), %xmm2
3433 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0,1],mem[2,3]
3434 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
3435 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3436 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
3437 ; AVX2-ONLY-NEXT:    vmovdqa 352(%rdi), %ymm14
3438 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm14[0,1,2,3,4,5],ymm0[6,7]
3439 ; AVX2-ONLY-NEXT:    vmovdqa 256(%rdi), %xmm2
3440 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = xmm2[0,1],mem[2,3]
3441 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3442 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3443 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm8, %ymm0, %ymm0
3444 ; AVX2-ONLY-NEXT:    vmovdqa 576(%rdi), %ymm1
3445 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3446 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
3447 ; AVX2-ONLY-NEXT:    vmovdqa 480(%rdi), %xmm11
3448 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = xmm11[0,1],mem[2,3]
3449 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3450 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3451 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm0
3452 ; AVX2-ONLY-NEXT:    vmovdqa 800(%rdi), %ymm10
3453 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm10[0,1,2,3,4,5],ymm0[6,7]
3454 ; AVX2-ONLY-NEXT:    vmovdqa 704(%rdi), %xmm1
3455 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm3 = xmm1[0,1],mem[2,3]
3456 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm0[4,5,6,7]
3457 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3458 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm0
3459 ; AVX2-ONLY-NEXT:    vmovdqa 1024(%rdi), %ymm3
3460 ; AVX2-ONLY-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3461 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm0[6,7]
3462 ; AVX2-ONLY-NEXT:    vmovdqa 928(%rdi), %xmm4
3463 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm3 = xmm4[0,1],mem[2,3]
3464 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm0[4,5,6,7]
3465 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3466 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm7, %ymm0, %ymm0
3467 ; AVX2-ONLY-NEXT:    vmovdqa 1248(%rdi), %ymm8
3468 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm3 = ymm8[0,1,2,3,4,5],ymm0[6,7]
3469 ; AVX2-ONLY-NEXT:    vmovdqa 1152(%rdi), %xmm0
3470 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm7 = xmm0[0,1],mem[2,3]
3471 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm3 = ymm7[0,1,2,3],ymm3[4,5,6,7]
3472 ; AVX2-ONLY-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3473 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm5, %ymm0, %ymm3
3474 ; AVX2-ONLY-NEXT:    vmovdqa 1472(%rdi), %ymm15
3475 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm5 = ymm15[0,1,2,3,4,5],ymm3[6,7]
3476 ; AVX2-ONLY-NEXT:    vmovdqa 1376(%rdi), %xmm3
3477 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm7 = xmm3[0,1],mem[2,3]
3478 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm5 = ymm7[0,1,2,3],ymm5[4,5,6,7]
3479 ; AVX2-ONLY-NEXT:    vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3480 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm6, %ymm0, %ymm5
3481 ; AVX2-ONLY-NEXT:    vmovdqa 1696(%rdi), %ymm7
3482 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm5 = ymm7[0,1,2,3,4,5],ymm5[6,7]
3483 ; AVX2-ONLY-NEXT:    vmovdqa 1600(%rdi), %xmm9
3484 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm6 = xmm9[0,1],mem[2,3]
3485 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm5 = ymm6[0,1,2,3],ymm5[4,5,6,7]
3486 ; AVX2-ONLY-NEXT:    vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3487 ; AVX2-ONLY-NEXT:    vmovdqa 192(%rdi), %ymm13
3488 ; 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]
3489 ; AVX2-ONLY-NEXT:    vmovdqa 96(%rdi), %xmm6
3490 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm6 = mem[8,9,10,11,12,13,14,15],xmm6[0,1,2,3,4,5,6,7]
3491 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm5 = ymm6[0,1,2,3],ymm5[4,5,6,7]
3492 ; AVX2-ONLY-NEXT:    vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3493 ; AVX2-ONLY-NEXT:    vmovdqa 416(%rdi), %ymm12
3494 ; 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]
3495 ; AVX2-ONLY-NEXT:    vmovdqa 320(%rdi), %xmm6
3496 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm2 = xmm2[8,9,10,11,12,13,14,15],xmm6[0,1,2,3,4,5,6,7]
3497 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm5[4,5,6,7]
3498 ; AVX2-ONLY-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3499 ; AVX2-ONLY-NEXT:    vmovdqa 544(%rdi), %xmm2
3500 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm2 = xmm11[8,9,10,11,12,13,14,15],xmm2[0,1,2,3,4,5,6,7]
3501 ; AVX2-ONLY-NEXT:    vmovdqa 640(%rdi), %ymm5
3502 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm11 # 32-byte Folded Reload
3503 ; 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]
3504 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm11[4,5,6,7]
3505 ; AVX2-ONLY-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3506 ; AVX2-ONLY-NEXT:    vmovdqa 864(%rdi), %ymm11
3507 ; 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]
3508 ; AVX2-ONLY-NEXT:    vmovdqa 768(%rdi), %xmm10
3509 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = xmm1[8,9,10,11,12,13,14,15],xmm10[0,1,2,3,4,5,6,7]
3510 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]
3511 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3512 ; AVX2-ONLY-NEXT:    vmovdqa 992(%rdi), %xmm1
3513 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = xmm4[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
3514 ; AVX2-ONLY-NEXT:    vmovdqa 1088(%rdi), %ymm2
3515 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm4 # 32-byte Folded Reload
3516 ; 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]
3517 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
3518 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3519 ; AVX2-ONLY-NEXT:    vmovdqa 1312(%rdi), %ymm4
3520 ; 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]
3521 ; AVX2-ONLY-NEXT:    vmovdqa 1216(%rdi), %xmm8
3522 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm0 = xmm0[8,9,10,11,12,13,14,15],xmm8[0,1,2,3,4,5,6,7]
3523 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm14 = ymm0[0,1,2,3],ymm1[4,5,6,7]
3524 ; AVX2-ONLY-NEXT:    vmovdqa 1440(%rdi), %xmm0
3525 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = xmm3[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
3526 ; AVX2-ONLY-NEXT:    vmovdqa 1536(%rdi), %ymm0
3527 ; 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]
3528 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm15 = ymm1[0,1,2,3],ymm3[4,5,6,7]
3529 ; AVX2-ONLY-NEXT:    vmovdqa 1760(%rdi), %ymm3
3530 ; 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]
3531 ; AVX2-ONLY-NEXT:    vmovdqa 1664(%rdi), %xmm1
3532 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm9 = xmm9[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
3533 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm7 = ymm9[0,1,2,3],ymm7[4,5,6,7]
3534 ; AVX2-ONLY-NEXT:    vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 16-byte Folded Reload
3535 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm9 = ymm9[1],ymm13[1],ymm9[3],ymm13[3]
3536 ; AVX2-ONLY-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload
3537 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm13 = xmm13[0,1],mem[2,3]
3538 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm9 = ymm13[0,1,2,3],ymm9[4,5,6,7]
3539 ; AVX2-ONLY-NEXT:    vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 16-byte Folded Reload
3540 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm12 = ymm13[1],ymm12[1],ymm13[3],ymm12[3]
3541 ; AVX2-ONLY-NEXT:    vpblendd $3, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6, %xmm6 # 16-byte Folded Reload
3542 ; AVX2-ONLY-NEXT:    # xmm6 = mem[0,1],xmm6[2,3]
3543 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm12[4,5,6,7]
3544 ; AVX2-ONLY-NEXT:    vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 16-byte Folded Reload
3545 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm5 = ymm12[1],ymm5[1],ymm12[3],ymm5[3]
3546 ; AVX2-ONLY-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload
3547 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm12 = xmm12[0,1],mem[2,3]
3548 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm12 = ymm12[0,1,2,3],ymm5[4,5,6,7]
3549 ; AVX2-ONLY-NEXT:    vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 16-byte Folded Reload
3550 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm5 = ymm5[1],ymm11[1],ymm5[3],ymm11[3]
3551 ; AVX2-ONLY-NEXT:    vpblendd $3, {{[-0-9]+}}(%r{{[sb]}}p), %xmm10, %xmm10 # 16-byte Folded Reload
3552 ; AVX2-ONLY-NEXT:    # xmm10 = mem[0,1],xmm10[2,3]
3553 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm11 = ymm10[0,1,2,3],ymm5[4,5,6,7]
3554 ; AVX2-ONLY-NEXT:    vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 16-byte Folded Reload
3555 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm2 = ymm5[1],ymm2[1],ymm5[3],ymm2[3]
3556 ; AVX2-ONLY-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
3557 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm5 = xmm5[0,1],mem[2,3]
3558 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm5[0,1,2,3],ymm2[4,5,6,7]
3559 ; AVX2-ONLY-NEXT:    vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 16-byte Folded Reload
3560 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm4 = ymm5[1],ymm4[1],ymm5[3],ymm4[3]
3561 ; AVX2-ONLY-NEXT:    vpblendd $3, {{[-0-9]+}}(%r{{[sb]}}p), %xmm8, %xmm5 # 16-byte Folded Reload
3562 ; AVX2-ONLY-NEXT:    # xmm5 = mem[0,1],xmm8[2,3]
3563 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm4 = ymm5[0,1,2,3],ymm4[4,5,6,7]
3564 ; AVX2-ONLY-NEXT:    vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 16-byte Folded Reload
3565 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm5[1],ymm0[1],ymm5[3],ymm0[3]
3566 ; AVX2-ONLY-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
3567 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm5 = xmm5[0,1],mem[2,3]
3568 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm5[0,1,2,3],ymm0[4,5,6,7]
3569 ; AVX2-ONLY-NEXT:    vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 16-byte Folded Reload
3570 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm3 = ymm5[1],ymm3[1],ymm5[3],ymm3[3]
3571 ; AVX2-ONLY-NEXT:    vpblendd $3, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
3572 ; AVX2-ONLY-NEXT:    # xmm1 = mem[0,1],xmm1[2,3]
3573 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm10 = ymm1[0,1,2,3],ymm3[4,5,6,7]
3574 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3575 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 192(%rsi)
3576 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3577 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 128(%rsi)
3578 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3579 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 64(%rsi)
3580 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3581 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, (%rsi)
3582 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3583 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 224(%rsi)
3584 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3585 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 160(%rsi)
3586 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3587 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 96(%rsi)
3588 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3589 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 32(%rsi)
3590 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3591 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 192(%rdx)
3592 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3593 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 128(%rdx)
3594 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3595 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 64(%rdx)
3596 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3597 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, (%rdx)
3598 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3599 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 224(%rdx)
3600 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3601 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 160(%rdx)
3602 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3603 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 96(%rdx)
3604 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3605 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 32(%rdx)
3606 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3607 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 192(%rcx)
3608 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3609 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 128(%rcx)
3610 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3611 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 64(%rcx)
3612 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3613 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, (%rcx)
3614 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3615 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 224(%rcx)
3616 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3617 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 160(%rcx)
3618 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3619 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 96(%rcx)
3620 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3621 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 32(%rcx)
3622 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3623 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, (%r8)
3624 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3625 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 64(%r8)
3626 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3627 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 128(%r8)
3628 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3629 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 192(%r8)
3630 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3631 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 224(%r8)
3632 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3633 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 160(%r8)
3634 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3635 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 96(%r8)
3636 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3637 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 32(%r8)
3638 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3639 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 224(%r9)
3640 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3641 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 192(%r9)
3642 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3643 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 160(%r9)
3644 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3645 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 128(%r9)
3646 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3647 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 96(%r9)
3648 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3649 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 64(%r9)
3650 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3651 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 32(%r9)
3652 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3653 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, (%r9)
3654 ; AVX2-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3655 ; AVX2-ONLY-NEXT:    vmovdqa %ymm7, 224(%rax)
3656 ; AVX2-ONLY-NEXT:    vmovdqa %ymm15, 192(%rax)
3657 ; AVX2-ONLY-NEXT:    vmovdqa %ymm14, 160(%rax)
3658 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3659 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 128(%rax)
3660 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3661 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 96(%rax)
3662 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3663 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 64(%rax)
3664 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3665 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 32(%rax)
3666 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3667 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, (%rax)
3668 ; AVX2-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3669 ; AVX2-ONLY-NEXT:    vmovdqa %ymm10, 224(%rax)
3670 ; AVX2-ONLY-NEXT:    vmovdqa %ymm0, 192(%rax)
3671 ; AVX2-ONLY-NEXT:    vmovdqa %ymm4, 160(%rax)
3672 ; AVX2-ONLY-NEXT:    vmovdqa %ymm2, 128(%rax)
3673 ; AVX2-ONLY-NEXT:    vmovdqa %ymm11, 96(%rax)
3674 ; AVX2-ONLY-NEXT:    vmovdqa %ymm12, 64(%rax)
3675 ; AVX2-ONLY-NEXT:    vmovdqa %ymm6, 32(%rax)
3676 ; AVX2-ONLY-NEXT:    vmovdqa %ymm9, (%rax)
3677 ; AVX2-ONLY-NEXT:    addq $1576, %rsp # imm = 0x628
3678 ; AVX2-ONLY-NEXT:    vzeroupper
3679 ; AVX2-ONLY-NEXT:    retq
3681 ; AVX512F-ONLY-SLOW-LABEL: load_i64_stride7_vf32:
3682 ; AVX512F-ONLY-SLOW:       # %bb.0:
3683 ; AVX512F-ONLY-SLOW-NEXT:    subq $2216, %rsp # imm = 0x8A8
3684 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 1664(%rdi), %zmm21
3685 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 1600(%rdi), %zmm3
3686 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 1216(%rdi), %zmm1
3687 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 1152(%rdi), %zmm6
3688 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 1088(%rdi), %zmm11
3689 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3690 ; AVX512F-ONLY-SLOW-NEXT:    vmovaps 1024(%rdi), %zmm0
3691 ; AVX512F-ONLY-SLOW-NEXT:    vmovups %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3692 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 768(%rdi), %zmm2
3693 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 704(%rdi), %zmm9
3694 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 640(%rdi), %zmm15
3695 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 576(%rdi), %zmm10
3696 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 320(%rdi), %zmm0
3697 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 256(%rdi), %zmm26
3698 ; AVX512F-ONLY-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm7 = [10,3,10,3,10,3,10,3]
3699 ; AVX512F-ONLY-SLOW-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3700 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm26, %zmm8
3701 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm0, %zmm7, %zmm8
3702 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3703 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm9, %zmm8
3704 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm2, %zmm7, %zmm8
3705 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3706 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm6, %zmm8
3707 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm1, %zmm7, %zmm8
3708 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3709 ; AVX512F-ONLY-SLOW-NEXT:    vpermi2q %zmm21, %zmm3, %zmm7
3710 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3711 ; AVX512F-ONLY-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm7 = [11,4,11,4,11,4,11,4]
3712 ; AVX512F-ONLY-SLOW-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3713 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm6, %zmm8
3714 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm1, %zmm7, %zmm8
3715 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3716 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm7, %zmm13
3717 ; AVX512F-ONLY-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm7 = [13,6,13,6,13,6,13,6]
3718 ; AVX512F-ONLY-SLOW-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3719 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm9, %zmm8
3720 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm2, %zmm13, %zmm8
3721 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3722 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm26, %zmm8
3723 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm0, %zmm13, %zmm8
3724 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3725 ; AVX512F-ONLY-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm20 = [12,5,12,5,12,5,12,5]
3726 ; AVX512F-ONLY-SLOW-NEXT:    # zmm20 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3727 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm9, %zmm18
3728 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm2, %zmm20, %zmm18
3729 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm26, %zmm23
3730 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm0, %zmm20, %zmm23
3731 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm9, %zmm17
3732 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm2, %zmm7, %zmm17
3733 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm26, %zmm25
3734 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm0, %zmm7, %zmm25
3735 ; AVX512F-ONLY-SLOW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm28 = [0,7,14,0,0,7,14,0]
3736 ; AVX512F-ONLY-SLOW-NEXT:    # zmm28 = mem[0,1,2,3,0,1,2,3]
3737 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm9, %zmm8
3738 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm2, %zmm28, %zmm8
3739 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3740 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm26, %zmm16
3741 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm0, %zmm28, %zmm16
3742 ; AVX512F-ONLY-SLOW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm30 = [9,0,7,0,9,0,7,0]
3743 ; AVX512F-ONLY-SLOW-NEXT:    # zmm30 = mem[0,1,2,3,0,1,2,3]
3744 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm2, %zmm14
3745 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm9, %zmm30, %zmm14
3746 ; AVX512F-ONLY-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [2,9,2,9,2,9,2,9]
3747 ; AVX512F-ONLY-SLOW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3748 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm2, %zmm4, %zmm9
3749 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm0, %zmm8
3750 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm26, %zmm30, %zmm8
3751 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm0, %zmm4, %zmm26
3752 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
3753 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm7, %zmm2
3754 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm11, %zmm7, %zmm0
3755 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3756 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm10, %zmm11
3757 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm10, %zmm0
3758 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm15, %zmm10
3759 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm15, %zmm7, %zmm0
3760 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3761 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 192(%rdi), %zmm24
3762 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 128(%rdi), %zmm12
3763 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm12, %zmm0
3764 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm24, %zmm7, %zmm0
3765 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3766 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm3, %zmm5
3767 ; AVX512F-ONLY-SLOW-NEXT:    vpermi2q %zmm21, %zmm3, %zmm13
3768 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 1536(%rdi), %zmm15
3769 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 1472(%rdi), %zmm0
3770 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3771 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm15, %zmm7, %zmm0
3772 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3773 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm6, %zmm29
3774 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm1, %zmm20, %zmm29
3775 ; AVX512F-ONLY-SLOW-NEXT:    vpermi2q %zmm21, %zmm3, %zmm20
3776 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm6, %zmm31
3777 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm1, %zmm7, %zmm31
3778 ; AVX512F-ONLY-SLOW-NEXT:    vpermi2q %zmm21, %zmm3, %zmm2
3779 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm6, %zmm22
3780 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm1, %zmm28, %zmm22
3781 ; AVX512F-ONLY-SLOW-NEXT:    vpermi2q %zmm21, %zmm3, %zmm28
3782 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm1, %zmm3
3783 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm6, %zmm30, %zmm3
3784 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm6, %zmm0
3785 ; AVX512F-ONLY-SLOW-NEXT:    vpermi2q %zmm5, %zmm21, %zmm30
3786 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm21, %zmm4, %zmm5
3787 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm21
3788 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm1, %zmm4, %zmm0
3789 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 384(%rdi), %zmm1
3790 ; AVX512F-ONLY-SLOW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,5,6,9,0,5,6,9]
3791 ; AVX512F-ONLY-SLOW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
3792 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
3793 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm1, %zmm4, %zmm5
3794 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3795 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 832(%rdi), %zmm5
3796 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
3797 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm5, %zmm4, %zmm6
3798 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3799 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 1280(%rdi), %zmm6
3800 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
3801 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm6, %zmm4, %zmm7
3802 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3803 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 1728(%rdi), %zmm7
3804 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm27 # 64-byte Reload
3805 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm7, %zmm4, %zmm27
3806 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm27, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3807 ; AVX512F-ONLY-SLOW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,5,6,10,0,5,6,10]
3808 ; AVX512F-ONLY-SLOW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
3809 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
3810 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm6, %zmm4, %zmm19
3811 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3812 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
3813 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm5, %zmm4, %zmm19
3814 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3815 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
3816 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm1, %zmm4, %zmm19
3817 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3818 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm7, %zmm4, %zmm13
3819 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3820 ; AVX512F-ONLY-SLOW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,5,6,11,0,5,6,11]
3821 ; AVX512F-ONLY-SLOW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
3822 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm6, %zmm4, %zmm29
3823 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm5, %zmm4, %zmm18
3824 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm18, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3825 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm1, %zmm4, %zmm23
3826 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm23, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3827 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm7, %zmm4, %zmm20
3828 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3829 ; AVX512F-ONLY-SLOW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,5,6,12,0,5,6,12]
3830 ; AVX512F-ONLY-SLOW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
3831 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm6, %zmm4, %zmm31
3832 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm5, %zmm4, %zmm17
3833 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3834 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm1, %zmm4, %zmm25
3835 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm25, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3836 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm7, %zmm4, %zmm2
3837 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3838 ; AVX512F-ONLY-SLOW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [4,5,6,13,4,5,6,13]
3839 ; AVX512F-ONLY-SLOW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
3840 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm6, %zmm4, %zmm22
3841 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
3842 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm5, %zmm4, %zmm19
3843 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm1, %zmm4, %zmm16
3844 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3845 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm7, %zmm4, %zmm28
3846 ; AVX512F-ONLY-SLOW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [4,5,6,14,4,5,6,14]
3847 ; AVX512F-ONLY-SLOW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
3848 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm6, %zmm4, %zmm3
3849 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3850 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm5, %zmm4, %zmm14
3851 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3852 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm1, %zmm4, %zmm8
3853 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3854 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm7, %zmm4, %zmm30
3855 ; AVX512F-ONLY-SLOW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [4,5,8,15,4,5,8,15]
3856 ; AVX512F-ONLY-SLOW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
3857 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm5, %zmm4, %zmm9
3858 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3859 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm1, %zmm4, %zmm26
3860 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm26, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3861 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm7, %zmm4, %zmm21
3862 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3863 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm6, %zmm4, %zmm0
3864 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3865 ; AVX512F-ONLY-SLOW-NEXT:    movb $24, %al
3866 ; AVX512F-ONLY-SLOW-NEXT:    kmovw %eax, %k1
3867 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 512(%rdi), %zmm5
3868 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 448(%rdi), %zmm7
3869 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 {{.*#+}} ymm21 = <0,7,14,u>
3870 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm7, %zmm18
3871 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm5, %zmm21, %zmm18
3872 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm10, %zmm0
3873 ; AVX512F-ONLY-SLOW-NEXT:    vshufi64x2 {{.*#+}} zmm18 {%k1} = zmm11[4,5,4,5],zmm10[4,5,4,5]
3874 ; AVX512F-ONLY-SLOW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [14,0,0,7,14,0,0,7]
3875 ; AVX512F-ONLY-SLOW-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
3876 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm11, %zmm26
3877 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm0, %zmm10, %zmm26
3878 ; AVX512F-ONLY-SLOW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm16 = [7,0,9,0,7,0,9,0]
3879 ; AVX512F-ONLY-SLOW-NEXT:    # zmm16 = mem[0,1,2,3,0,1,2,3]
3880 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm0, %zmm27
3881 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm11, %zmm16, %zmm27
3882 ; AVX512F-ONLY-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} ymm20 = [4,11,4,11]
3883 ; AVX512F-ONLY-SLOW-NEXT:    # ymm20 = mem[0,1,2,3,0,1,2,3]
3884 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm0, %zmm20, %zmm11
3885 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3886 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 64(%rdi), %zmm1
3887 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 (%rdi), %zmm14
3888 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm14, %zmm17
3889 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm1, %zmm21, %zmm17
3890 ; AVX512F-ONLY-SLOW-NEXT:    vshufi64x2 {{.*#+}} zmm17 {%k1} = zmm12[4,5,4,5],zmm24[4,5,4,5]
3891 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm12, %zmm23
3892 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm24, %zmm10, %zmm23
3893 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm24, %zmm25
3894 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm12, %zmm16, %zmm25
3895 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm24, %zmm20, %zmm12
3896 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3897 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 960(%rdi), %zmm6
3898 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 896(%rdi), %zmm11
3899 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm11, %zmm12
3900 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm6, %zmm21, %zmm12
3901 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 1408(%rdi), %zmm4
3902 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 1344(%rdi), %zmm8
3903 ; AVX512F-ONLY-SLOW-NEXT:    vpermi2q %zmm4, %zmm8, %zmm21
3904 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
3905 ; AVX512F-ONLY-SLOW-NEXT:    vshufi64x2 {{.*#+}} zmm21 {%k1} = zmm3[4,5,4,5],zmm15[4,5,4,5]
3906 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
3907 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm2, %zmm0
3908 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
3909 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm9, %zmm10, %zmm0
3910 ; AVX512F-ONLY-SLOW-NEXT:    vpermi2q %zmm15, %zmm3, %zmm10
3911 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm9, %zmm24
3912 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm2, %zmm16, %zmm24
3913 ; AVX512F-ONLY-SLOW-NEXT:    vpermi2q %zmm3, %zmm15, %zmm16
3914 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm15, %zmm20, %zmm3
3915 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3916 ; AVX512F-ONLY-SLOW-NEXT:    vshufi64x2 {{.*#+}} zmm12 {%k1} = zmm2[4,5,4,5],zmm9[4,5,4,5]
3917 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm9, %zmm20, %zmm2
3918 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3919 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa 912(%rdi), %xmm2
3920 ; AVX512F-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0,1],mem[2,3]
3921 ; AVX512F-ONLY-SLOW-NEXT:    vinserti32x4 $0, %xmm2, %zmm0, %zmm0
3922 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3923 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa 464(%rdi), %xmm0
3924 ; AVX512F-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
3925 ; AVX512F-ONLY-SLOW-NEXT:    vinserti32x4 $0, %xmm0, %zmm26, %zmm0
3926 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3927 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa 16(%rdi), %xmm0
3928 ; AVX512F-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
3929 ; AVX512F-ONLY-SLOW-NEXT:    vinserti32x4 $0, %xmm0, %zmm23, %zmm26
3930 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa 1360(%rdi), %xmm0
3931 ; AVX512F-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
3932 ; AVX512F-ONLY-SLOW-NEXT:    vinserti32x4 $0, %xmm0, %zmm10, %zmm20
3933 ; AVX512F-ONLY-SLOW-NEXT:    vinserti128 $1, 1088(%rdi), %ymm0, %ymm0
3934 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa 1024(%rdi), %ymm2
3935 ; AVX512F-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3,4,5],ymm0[6,7]
3936 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa {{.*#+}} xmm10 = [4,11]
3937 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm11, %zmm13
3938 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm6, %zmm10, %zmm13
3939 ; AVX512F-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm13[0,1,2,3],ymm0[4,5,6,7]
3940 ; AVX512F-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm0, %zmm22, %zmm0
3941 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3942 ; AVX512F-ONLY-SLOW-NEXT:    vinserti128 $1, 640(%rdi), %ymm0, %ymm0
3943 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa 576(%rdi), %ymm3
3944 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3945 ; AVX512F-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm0[6,7]
3946 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm7, %zmm3
3947 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm5, %zmm10, %zmm3
3948 ; AVX512F-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm0[4,5,6,7]
3949 ; AVX512F-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm0, %zmm19, %zmm0
3950 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3951 ; AVX512F-ONLY-SLOW-NEXT:    vinserti128 $1, 192(%rdi), %ymm0, %ymm0
3952 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa 128(%rdi), %ymm3
3953 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu %ymm3, (%rsp) # 32-byte Spill
3954 ; AVX512F-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm0[6,7]
3955 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm14, %zmm3
3956 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm1, %zmm10, %zmm3
3957 ; AVX512F-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm0[4,5,6,7]
3958 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
3959 ; AVX512F-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm0, %zmm3, %zmm0
3960 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3961 ; AVX512F-ONLY-SLOW-NEXT:    vinserti128 $1, 1536(%rdi), %ymm0, %ymm0
3962 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa 1472(%rdi), %ymm3
3963 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3964 ; AVX512F-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm0[6,7]
3965 ; AVX512F-ONLY-SLOW-NEXT:    vpermi2q %zmm4, %zmm8, %zmm10
3966 ; AVX512F-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm0[4,5,6,7]
3967 ; AVX512F-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm0, %zmm28, %zmm28
3968 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa 1088(%rdi), %ymm0
3969 ; AVX512F-ONLY-SLOW-NEXT:    vpalignr {{.*#+}} ymm0 = 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]
3970 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %ymm0, %ymm23
3971 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa {{.*#+}} ymm0 = <9,0,7,u>
3972 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm3
3973 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm7, %zmm9
3974 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm7, %zmm0, %zmm3
3975 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa {{.*#+}} xmm2 = [5,12]
3976 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm7, %zmm13
3977 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm5, %zmm2, %zmm13
3978 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa {{.*#+}} xmm7 = [6,13]
3979 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm5, %zmm7, %zmm9
3980 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3981 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm1, %zmm5
3982 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm14, %zmm0, %zmm5
3983 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm14, %zmm10
3984 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm1, %zmm2, %zmm10
3985 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm1, %zmm7, %zmm14
3986 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm6, %zmm1
3987 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm11, %zmm0, %zmm1
3988 ; AVX512F-ONLY-SLOW-NEXT:    vpermi2q %zmm8, %zmm4, %zmm0
3989 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa 960(%rdi), %ymm15
3990 ; AVX512F-ONLY-SLOW-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]
3991 ; AVX512F-ONLY-SLOW-NEXT:    vextracti32x4 $1, %ymm15, %xmm19
3992 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa 512(%rdi), %ymm15
3993 ; AVX512F-ONLY-SLOW-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]
3994 ; AVX512F-ONLY-SLOW-NEXT:    vextracti128 $1, %ymm15, %xmm15
3995 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm11, %zmm9
3996 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm6, %zmm2, %zmm9
3997 ; AVX512F-ONLY-SLOW-NEXT:    vpermi2q %zmm4, %zmm8, %zmm2
3998 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm4, %zmm7, %zmm8
3999 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2q %zmm6, %zmm7, %zmm11
4000 ; AVX512F-ONLY-SLOW-NEXT:    movb $-32, %al
4001 ; AVX512F-ONLY-SLOW-NEXT:    kmovw %eax, %k2
4002 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4003 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm17 {%k2}
4004 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4005 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm18 {%k2}
4006 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4007 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm12 {%k2}
4008 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4009 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm21 {%k2}
4010 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4011 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm1 {%k1}
4012 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4013 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm1 {%k2}
4014 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4015 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm3 {%k1}
4016 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4017 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm3 {%k2}
4018 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4019 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm5 {%k1}
4020 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4021 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm5 {%k2}
4022 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4023 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm0 {%k1}
4024 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4025 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm0 {%k2}
4026 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
4027 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm29, %zmm22 {%k2}
4028 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4029 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm29 # 64-byte Reload
4030 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm29 {%k2}
4031 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4032 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm26 {%k2}
4033 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4034 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm20 {%k2}
4035 ; AVX512F-ONLY-SLOW-NEXT:    vinserti32x4 $0, %xmm19, %zmm24, %zmm4
4036 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm31, %zmm4 {%k2}
4037 ; AVX512F-ONLY-SLOW-NEXT:    vinserti32x4 $0, %xmm15, %zmm27, %zmm6
4038 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
4039 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm7, %zmm6 {%k2}
4040 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %ymm23, %ymm7
4041 ; AVX512F-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} ymm7 = ymm9[0,1,2,3],ymm7[4,5,6,7]
4042 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa 64(%rdi), %ymm9
4043 ; AVX512F-ONLY-SLOW-NEXT:    vpalignr {{.*#+}} 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]
4044 ; AVX512F-ONLY-SLOW-NEXT:    vextracti128 $1, %ymm9, %xmm9
4045 ; AVX512F-ONLY-SLOW-NEXT:    vinserti32x4 $0, %xmm9, %zmm25, %zmm9
4046 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
4047 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm15, %zmm9 {%k2}
4048 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
4049 ; AVX512F-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm7, %zmm15, %zmm19
4050 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa 640(%rdi), %ymm15
4051 ; AVX512F-ONLY-SLOW-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm15 # 32-byte Folded Reload
4052 ; AVX512F-ONLY-SLOW-NEXT:    # 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]
4053 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa 1408(%rdi), %ymm7
4054 ; AVX512F-ONLY-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]
4055 ; AVX512F-ONLY-SLOW-NEXT:    vextracti128 $1, %ymm7, %xmm7
4056 ; AVX512F-ONLY-SLOW-NEXT:    vinserti32x4 $0, %xmm7, %zmm16, %zmm7
4057 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
4058 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm16, %zmm7 {%k2}
4059 ; AVX512F-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} ymm13 = ymm13[0,1,2,3],ymm15[4,5,6,7]
4060 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
4061 ; AVX512F-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm13, %zmm15, %zmm13
4062 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa 192(%rdi), %ymm15
4063 ; AVX512F-ONLY-SLOW-NEXT:    vpalignr $8, (%rsp), %ymm15, %ymm15 # 32-byte Folded Reload
4064 ; AVX512F-ONLY-SLOW-NEXT:    # 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]
4065 ; AVX512F-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} ymm10 = ymm10[0,1,2,3],ymm15[4,5,6,7]
4066 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
4067 ; AVX512F-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm10, %zmm15, %zmm10
4068 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa 1536(%rdi), %ymm15
4069 ; AVX512F-ONLY-SLOW-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm15 # 32-byte Folded Reload
4070 ; AVX512F-ONLY-SLOW-NEXT:    # 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]
4071 ; AVX512F-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm15[4,5,6,7]
4072 ; AVX512F-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm2, %zmm30, %zmm2
4073 ; AVX512F-ONLY-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
4074 ; AVX512F-ONLY-SLOW-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm15 # 32-byte Folded Reload
4075 ; AVX512F-ONLY-SLOW-NEXT:    # ymm15 = ymm15[0,1,2,3],mem[4,5,6,7]
4076 ; AVX512F-ONLY-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
4077 ; AVX512F-ONLY-SLOW-NEXT:    vinsertf64x4 $0, %ymm15, %zmm16, %zmm15
4078 ; AVX512F-ONLY-SLOW-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
4079 ; AVX512F-ONLY-SLOW-NEXT:    # ymm14 = ymm14[0,1,2,3],mem[4,5,6,7]
4080 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
4081 ; AVX512F-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm14, %zmm16, %zmm14
4082 ; AVX512F-ONLY-SLOW-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
4083 ; AVX512F-ONLY-SLOW-NEXT:    # ymm8 = ymm8[0,1,2,3],mem[4,5,6,7]
4084 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
4085 ; AVX512F-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm8, %zmm16, %zmm8
4086 ; AVX512F-ONLY-SLOW-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm11 # 32-byte Folded Reload
4087 ; AVX512F-ONLY-SLOW-NEXT:    # ymm11 = ymm11[0,1,2,3],mem[4,5,6,7]
4088 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
4089 ; AVX512F-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm11, %zmm16, %zmm11
4090 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm21, 192(%rsi)
4091 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm12, 128(%rsi)
4092 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm18, 64(%rsi)
4093 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm17, (%rsi)
4094 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm0, 192(%rdx)
4095 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm5, (%rdx)
4096 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm3, 64(%rdx)
4097 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm1, 128(%rdx)
4098 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm20, 192(%rcx)
4099 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm26, (%rcx)
4100 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm29, 64(%rcx)
4101 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm22, 128(%rcx)
4102 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm7, 192(%r8)
4103 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm9, (%r8)
4104 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm6, 64(%r8)
4105 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm4, 128(%r8)
4106 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm28, 192(%r9)
4107 ; AVX512F-ONLY-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4108 ; AVX512F-ONLY-SLOW-NEXT:    vmovaps %zmm0, (%r9)
4109 ; AVX512F-ONLY-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4110 ; AVX512F-ONLY-SLOW-NEXT:    vmovaps %zmm0, 64(%r9)
4111 ; AVX512F-ONLY-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4112 ; AVX512F-ONLY-SLOW-NEXT:    vmovaps %zmm0, 128(%r9)
4113 ; AVX512F-ONLY-SLOW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
4114 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm2, 192(%rax)
4115 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm10, (%rax)
4116 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm13, 64(%rax)
4117 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm19, 128(%rax)
4118 ; AVX512F-ONLY-SLOW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
4119 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm11, 128(%rax)
4120 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm8, 192(%rax)
4121 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm14, (%rax)
4122 ; AVX512F-ONLY-SLOW-NEXT:    vmovaps %zmm15, 64(%rax)
4123 ; AVX512F-ONLY-SLOW-NEXT:    addq $2216, %rsp # imm = 0x8A8
4124 ; AVX512F-ONLY-SLOW-NEXT:    vzeroupper
4125 ; AVX512F-ONLY-SLOW-NEXT:    retq
4127 ; AVX512F-ONLY-FAST-LABEL: load_i64_stride7_vf32:
4128 ; AVX512F-ONLY-FAST:       # %bb.0:
4129 ; AVX512F-ONLY-FAST-NEXT:    subq $2216, %rsp # imm = 0x8A8
4130 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 1664(%rdi), %zmm21
4131 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 1600(%rdi), %zmm3
4132 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 1216(%rdi), %zmm1
4133 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 1152(%rdi), %zmm6
4134 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 1088(%rdi), %zmm11
4135 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4136 ; AVX512F-ONLY-FAST-NEXT:    vmovaps 1024(%rdi), %zmm0
4137 ; AVX512F-ONLY-FAST-NEXT:    vmovups %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4138 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 768(%rdi), %zmm2
4139 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 704(%rdi), %zmm9
4140 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 640(%rdi), %zmm15
4141 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 576(%rdi), %zmm10
4142 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 320(%rdi), %zmm0
4143 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 256(%rdi), %zmm26
4144 ; AVX512F-ONLY-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm7 = [10,3,10,3,10,3,10,3]
4145 ; AVX512F-ONLY-FAST-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4146 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm26, %zmm8
4147 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm0, %zmm7, %zmm8
4148 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4149 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm9, %zmm8
4150 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm2, %zmm7, %zmm8
4151 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4152 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm6, %zmm8
4153 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm1, %zmm7, %zmm8
4154 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4155 ; AVX512F-ONLY-FAST-NEXT:    vpermi2q %zmm21, %zmm3, %zmm7
4156 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4157 ; AVX512F-ONLY-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm7 = [11,4,11,4,11,4,11,4]
4158 ; AVX512F-ONLY-FAST-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4159 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm6, %zmm8
4160 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm1, %zmm7, %zmm8
4161 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4162 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm7, %zmm13
4163 ; AVX512F-ONLY-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm7 = [13,6,13,6,13,6,13,6]
4164 ; AVX512F-ONLY-FAST-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4165 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm9, %zmm8
4166 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm2, %zmm13, %zmm8
4167 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4168 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm26, %zmm8
4169 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm0, %zmm13, %zmm8
4170 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4171 ; AVX512F-ONLY-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm20 = [12,5,12,5,12,5,12,5]
4172 ; AVX512F-ONLY-FAST-NEXT:    # zmm20 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4173 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm9, %zmm18
4174 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm2, %zmm20, %zmm18
4175 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm26, %zmm23
4176 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm0, %zmm20, %zmm23
4177 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm9, %zmm17
4178 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm2, %zmm7, %zmm17
4179 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm26, %zmm25
4180 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm0, %zmm7, %zmm25
4181 ; AVX512F-ONLY-FAST-NEXT:    vbroadcasti64x4 {{.*#+}} zmm28 = [0,7,14,0,0,7,14,0]
4182 ; AVX512F-ONLY-FAST-NEXT:    # zmm28 = mem[0,1,2,3,0,1,2,3]
4183 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm9, %zmm8
4184 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm2, %zmm28, %zmm8
4185 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4186 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm26, %zmm16
4187 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm0, %zmm28, %zmm16
4188 ; AVX512F-ONLY-FAST-NEXT:    vbroadcasti64x4 {{.*#+}} zmm30 = [9,0,7,0,9,0,7,0]
4189 ; AVX512F-ONLY-FAST-NEXT:    # zmm30 = mem[0,1,2,3,0,1,2,3]
4190 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm2, %zmm14
4191 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm9, %zmm30, %zmm14
4192 ; AVX512F-ONLY-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [2,9,2,9,2,9,2,9]
4193 ; AVX512F-ONLY-FAST-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4194 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm2, %zmm4, %zmm9
4195 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm0, %zmm8
4196 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm26, %zmm30, %zmm8
4197 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm0, %zmm4, %zmm26
4198 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4199 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm7, %zmm2
4200 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm11, %zmm7, %zmm0
4201 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4202 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm10, %zmm11
4203 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm10, %zmm0
4204 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm15, %zmm10
4205 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm15, %zmm7, %zmm0
4206 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4207 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 192(%rdi), %zmm24
4208 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 128(%rdi), %zmm12
4209 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm12, %zmm0
4210 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm24, %zmm7, %zmm0
4211 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4212 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm3, %zmm5
4213 ; AVX512F-ONLY-FAST-NEXT:    vpermi2q %zmm21, %zmm3, %zmm13
4214 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 1536(%rdi), %zmm15
4215 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 1472(%rdi), %zmm0
4216 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4217 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm15, %zmm7, %zmm0
4218 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4219 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm6, %zmm29
4220 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm1, %zmm20, %zmm29
4221 ; AVX512F-ONLY-FAST-NEXT:    vpermi2q %zmm21, %zmm3, %zmm20
4222 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm6, %zmm31
4223 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm1, %zmm7, %zmm31
4224 ; AVX512F-ONLY-FAST-NEXT:    vpermi2q %zmm21, %zmm3, %zmm2
4225 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm6, %zmm22
4226 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm1, %zmm28, %zmm22
4227 ; AVX512F-ONLY-FAST-NEXT:    vpermi2q %zmm21, %zmm3, %zmm28
4228 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm1, %zmm3
4229 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm6, %zmm30, %zmm3
4230 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm6, %zmm0
4231 ; AVX512F-ONLY-FAST-NEXT:    vpermi2q %zmm5, %zmm21, %zmm30
4232 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm21, %zmm4, %zmm5
4233 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm5, %zmm21
4234 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm1, %zmm4, %zmm0
4235 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 384(%rdi), %zmm1
4236 ; AVX512F-ONLY-FAST-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,5,6,9,0,5,6,9]
4237 ; AVX512F-ONLY-FAST-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
4238 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
4239 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm1, %zmm4, %zmm5
4240 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4241 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 832(%rdi), %zmm5
4242 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
4243 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm5, %zmm4, %zmm6
4244 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4245 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 1280(%rdi), %zmm6
4246 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
4247 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm6, %zmm4, %zmm7
4248 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4249 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 1728(%rdi), %zmm7
4250 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm27 # 64-byte Reload
4251 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm7, %zmm4, %zmm27
4252 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm27, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4253 ; AVX512F-ONLY-FAST-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,5,6,10,0,5,6,10]
4254 ; AVX512F-ONLY-FAST-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
4255 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
4256 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm6, %zmm4, %zmm19
4257 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4258 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
4259 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm5, %zmm4, %zmm19
4260 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4261 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
4262 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm1, %zmm4, %zmm19
4263 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4264 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm7, %zmm4, %zmm13
4265 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4266 ; AVX512F-ONLY-FAST-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,5,6,11,0,5,6,11]
4267 ; AVX512F-ONLY-FAST-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
4268 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm6, %zmm4, %zmm29
4269 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm5, %zmm4, %zmm18
4270 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm18, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4271 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm1, %zmm4, %zmm23
4272 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm23, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4273 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm7, %zmm4, %zmm20
4274 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4275 ; AVX512F-ONLY-FAST-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,5,6,12,0,5,6,12]
4276 ; AVX512F-ONLY-FAST-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
4277 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm6, %zmm4, %zmm31
4278 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm5, %zmm4, %zmm17
4279 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4280 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm1, %zmm4, %zmm25
4281 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm25, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4282 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm7, %zmm4, %zmm2
4283 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4284 ; AVX512F-ONLY-FAST-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [4,5,6,13,4,5,6,13]
4285 ; AVX512F-ONLY-FAST-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
4286 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm6, %zmm4, %zmm22
4287 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
4288 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm5, %zmm4, %zmm19
4289 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm1, %zmm4, %zmm16
4290 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4291 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm7, %zmm4, %zmm28
4292 ; AVX512F-ONLY-FAST-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [4,5,6,14,4,5,6,14]
4293 ; AVX512F-ONLY-FAST-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
4294 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm6, %zmm4, %zmm3
4295 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4296 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm5, %zmm4, %zmm14
4297 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4298 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm1, %zmm4, %zmm8
4299 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4300 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm7, %zmm4, %zmm30
4301 ; AVX512F-ONLY-FAST-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [4,5,8,15,4,5,8,15]
4302 ; AVX512F-ONLY-FAST-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
4303 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm5, %zmm4, %zmm9
4304 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4305 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm1, %zmm4, %zmm26
4306 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm26, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4307 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm7, %zmm4, %zmm21
4308 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4309 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm6, %zmm4, %zmm0
4310 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4311 ; AVX512F-ONLY-FAST-NEXT:    movb $24, %al
4312 ; AVX512F-ONLY-FAST-NEXT:    kmovw %eax, %k1
4313 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 512(%rdi), %zmm5
4314 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 448(%rdi), %zmm7
4315 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 {{.*#+}} ymm21 = <0,7,14,u>
4316 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm7, %zmm18
4317 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm5, %zmm21, %zmm18
4318 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm10, %zmm0
4319 ; AVX512F-ONLY-FAST-NEXT:    vshufi64x2 {{.*#+}} zmm18 {%k1} = zmm11[4,5,4,5],zmm10[4,5,4,5]
4320 ; AVX512F-ONLY-FAST-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [14,0,0,7,14,0,0,7]
4321 ; AVX512F-ONLY-FAST-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
4322 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm11, %zmm26
4323 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm0, %zmm10, %zmm26
4324 ; AVX512F-ONLY-FAST-NEXT:    vbroadcasti64x4 {{.*#+}} zmm16 = [7,0,9,0,7,0,9,0]
4325 ; AVX512F-ONLY-FAST-NEXT:    # zmm16 = mem[0,1,2,3,0,1,2,3]
4326 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm0, %zmm27
4327 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm11, %zmm16, %zmm27
4328 ; AVX512F-ONLY-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} ymm20 = [4,11,4,11]
4329 ; AVX512F-ONLY-FAST-NEXT:    # ymm20 = mem[0,1,2,3,0,1,2,3]
4330 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm0, %zmm20, %zmm11
4331 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4332 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 64(%rdi), %zmm1
4333 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 (%rdi), %zmm14
4334 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm14, %zmm17
4335 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm1, %zmm21, %zmm17
4336 ; AVX512F-ONLY-FAST-NEXT:    vshufi64x2 {{.*#+}} zmm17 {%k1} = zmm12[4,5,4,5],zmm24[4,5,4,5]
4337 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm12, %zmm23
4338 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm24, %zmm10, %zmm23
4339 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm24, %zmm25
4340 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm12, %zmm16, %zmm25
4341 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm24, %zmm20, %zmm12
4342 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4343 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 960(%rdi), %zmm6
4344 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 896(%rdi), %zmm11
4345 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm11, %zmm12
4346 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm6, %zmm21, %zmm12
4347 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 1408(%rdi), %zmm4
4348 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 1344(%rdi), %zmm8
4349 ; AVX512F-ONLY-FAST-NEXT:    vpermi2q %zmm4, %zmm8, %zmm21
4350 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
4351 ; AVX512F-ONLY-FAST-NEXT:    vshufi64x2 {{.*#+}} zmm21 {%k1} = zmm3[4,5,4,5],zmm15[4,5,4,5]
4352 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
4353 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm2, %zmm0
4354 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
4355 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm9, %zmm10, %zmm0
4356 ; AVX512F-ONLY-FAST-NEXT:    vpermi2q %zmm15, %zmm3, %zmm10
4357 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm9, %zmm24
4358 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm2, %zmm16, %zmm24
4359 ; AVX512F-ONLY-FAST-NEXT:    vpermi2q %zmm3, %zmm15, %zmm16
4360 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm15, %zmm20, %zmm3
4361 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4362 ; AVX512F-ONLY-FAST-NEXT:    vshufi64x2 {{.*#+}} zmm12 {%k1} = zmm2[4,5,4,5],zmm9[4,5,4,5]
4363 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm9, %zmm20, %zmm2
4364 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4365 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa 912(%rdi), %xmm2
4366 ; AVX512F-ONLY-FAST-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0,1],mem[2,3]
4367 ; AVX512F-ONLY-FAST-NEXT:    vinserti32x4 $0, %xmm2, %zmm0, %zmm0
4368 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4369 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa 464(%rdi), %xmm0
4370 ; AVX512F-ONLY-FAST-NEXT:    vpblendd {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
4371 ; AVX512F-ONLY-FAST-NEXT:    vinserti32x4 $0, %xmm0, %zmm26, %zmm0
4372 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4373 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa 16(%rdi), %xmm0
4374 ; AVX512F-ONLY-FAST-NEXT:    vpblendd {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
4375 ; AVX512F-ONLY-FAST-NEXT:    vinserti32x4 $0, %xmm0, %zmm23, %zmm26
4376 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa 1360(%rdi), %xmm0
4377 ; AVX512F-ONLY-FAST-NEXT:    vpblendd {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
4378 ; AVX512F-ONLY-FAST-NEXT:    vinserti32x4 $0, %xmm0, %zmm10, %zmm20
4379 ; AVX512F-ONLY-FAST-NEXT:    vinserti128 $1, 1088(%rdi), %ymm0, %ymm0
4380 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa 1024(%rdi), %ymm2
4381 ; AVX512F-ONLY-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3,4,5],ymm0[6,7]
4382 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa {{.*#+}} xmm10 = [4,11]
4383 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm11, %zmm13
4384 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm6, %zmm10, %zmm13
4385 ; AVX512F-ONLY-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm13[0,1,2,3],ymm0[4,5,6,7]
4386 ; AVX512F-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm0, %zmm22, %zmm0
4387 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4388 ; AVX512F-ONLY-FAST-NEXT:    vinserti128 $1, 640(%rdi), %ymm0, %ymm0
4389 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa 576(%rdi), %ymm3
4390 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4391 ; AVX512F-ONLY-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm0[6,7]
4392 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm7, %zmm3
4393 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm5, %zmm10, %zmm3
4394 ; AVX512F-ONLY-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm0[4,5,6,7]
4395 ; AVX512F-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm0, %zmm19, %zmm0
4396 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4397 ; AVX512F-ONLY-FAST-NEXT:    vinserti128 $1, 192(%rdi), %ymm0, %ymm0
4398 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa 128(%rdi), %ymm3
4399 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu %ymm3, (%rsp) # 32-byte Spill
4400 ; AVX512F-ONLY-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm0[6,7]
4401 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm14, %zmm3
4402 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm1, %zmm10, %zmm3
4403 ; AVX512F-ONLY-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm0[4,5,6,7]
4404 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
4405 ; AVX512F-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm0, %zmm3, %zmm0
4406 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4407 ; AVX512F-ONLY-FAST-NEXT:    vinserti128 $1, 1536(%rdi), %ymm0, %ymm0
4408 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa 1472(%rdi), %ymm3
4409 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4410 ; AVX512F-ONLY-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm0[6,7]
4411 ; AVX512F-ONLY-FAST-NEXT:    vpermi2q %zmm4, %zmm8, %zmm10
4412 ; AVX512F-ONLY-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm0[4,5,6,7]
4413 ; AVX512F-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm0, %zmm28, %zmm28
4414 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa 1088(%rdi), %ymm0
4415 ; AVX512F-ONLY-FAST-NEXT:    vpalignr {{.*#+}} ymm0 = 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]
4416 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %ymm0, %ymm23
4417 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa {{.*#+}} ymm0 = <9,0,7,u>
4418 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm5, %zmm3
4419 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm7, %zmm9
4420 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm7, %zmm0, %zmm3
4421 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa {{.*#+}} xmm2 = [5,12]
4422 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm7, %zmm13
4423 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm5, %zmm2, %zmm13
4424 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa {{.*#+}} xmm7 = [6,13]
4425 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm5, %zmm7, %zmm9
4426 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4427 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm1, %zmm5
4428 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm14, %zmm0, %zmm5
4429 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm14, %zmm10
4430 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm1, %zmm2, %zmm10
4431 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm1, %zmm7, %zmm14
4432 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm6, %zmm1
4433 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm11, %zmm0, %zmm1
4434 ; AVX512F-ONLY-FAST-NEXT:    vpermi2q %zmm8, %zmm4, %zmm0
4435 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa 960(%rdi), %ymm15
4436 ; AVX512F-ONLY-FAST-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]
4437 ; AVX512F-ONLY-FAST-NEXT:    vextracti32x4 $1, %ymm15, %xmm19
4438 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa 512(%rdi), %ymm15
4439 ; AVX512F-ONLY-FAST-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]
4440 ; AVX512F-ONLY-FAST-NEXT:    vextracti128 $1, %ymm15, %xmm15
4441 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm11, %zmm9
4442 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm6, %zmm2, %zmm9
4443 ; AVX512F-ONLY-FAST-NEXT:    vpermi2q %zmm4, %zmm8, %zmm2
4444 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm4, %zmm7, %zmm8
4445 ; AVX512F-ONLY-FAST-NEXT:    vpermt2q %zmm6, %zmm7, %zmm11
4446 ; AVX512F-ONLY-FAST-NEXT:    movb $-32, %al
4447 ; AVX512F-ONLY-FAST-NEXT:    kmovw %eax, %k2
4448 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4449 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm4, %zmm17 {%k2}
4450 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4451 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm4, %zmm18 {%k2}
4452 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4453 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm4, %zmm12 {%k2}
4454 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4455 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm4, %zmm21 {%k2}
4456 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4457 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm4, %zmm1 {%k1}
4458 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4459 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm4, %zmm1 {%k2}
4460 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4461 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm4, %zmm3 {%k1}
4462 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4463 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm4, %zmm3 {%k2}
4464 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4465 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm4, %zmm5 {%k1}
4466 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4467 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm4, %zmm5 {%k2}
4468 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4469 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm4, %zmm0 {%k1}
4470 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4471 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm4, %zmm0 {%k2}
4472 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
4473 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm29, %zmm22 {%k2}
4474 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4475 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm29 # 64-byte Reload
4476 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm4, %zmm29 {%k2}
4477 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4478 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm4, %zmm26 {%k2}
4479 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4480 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm4, %zmm20 {%k2}
4481 ; AVX512F-ONLY-FAST-NEXT:    vinserti32x4 $0, %xmm19, %zmm24, %zmm4
4482 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm31, %zmm4 {%k2}
4483 ; AVX512F-ONLY-FAST-NEXT:    vinserti32x4 $0, %xmm15, %zmm27, %zmm6
4484 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
4485 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm7, %zmm6 {%k2}
4486 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %ymm23, %ymm7
4487 ; AVX512F-ONLY-FAST-NEXT:    vpblendd {{.*#+}} ymm7 = ymm9[0,1,2,3],ymm7[4,5,6,7]
4488 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa 64(%rdi), %ymm9
4489 ; AVX512F-ONLY-FAST-NEXT:    vpalignr {{.*#+}} 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]
4490 ; AVX512F-ONLY-FAST-NEXT:    vextracti128 $1, %ymm9, %xmm9
4491 ; AVX512F-ONLY-FAST-NEXT:    vinserti32x4 $0, %xmm9, %zmm25, %zmm9
4492 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
4493 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm15, %zmm9 {%k2}
4494 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
4495 ; AVX512F-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm7, %zmm15, %zmm19
4496 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa 640(%rdi), %ymm15
4497 ; AVX512F-ONLY-FAST-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm15 # 32-byte Folded Reload
4498 ; AVX512F-ONLY-FAST-NEXT:    # 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]
4499 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa 1408(%rdi), %ymm7
4500 ; AVX512F-ONLY-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]
4501 ; AVX512F-ONLY-FAST-NEXT:    vextracti128 $1, %ymm7, %xmm7
4502 ; AVX512F-ONLY-FAST-NEXT:    vinserti32x4 $0, %xmm7, %zmm16, %zmm7
4503 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
4504 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm16, %zmm7 {%k2}
4505 ; AVX512F-ONLY-FAST-NEXT:    vpblendd {{.*#+}} ymm13 = ymm13[0,1,2,3],ymm15[4,5,6,7]
4506 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
4507 ; AVX512F-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm13, %zmm15, %zmm13
4508 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa 192(%rdi), %ymm15
4509 ; AVX512F-ONLY-FAST-NEXT:    vpalignr $8, (%rsp), %ymm15, %ymm15 # 32-byte Folded Reload
4510 ; AVX512F-ONLY-FAST-NEXT:    # 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]
4511 ; AVX512F-ONLY-FAST-NEXT:    vpblendd {{.*#+}} ymm10 = ymm10[0,1,2,3],ymm15[4,5,6,7]
4512 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
4513 ; AVX512F-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm10, %zmm15, %zmm10
4514 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa 1536(%rdi), %ymm15
4515 ; AVX512F-ONLY-FAST-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm15 # 32-byte Folded Reload
4516 ; AVX512F-ONLY-FAST-NEXT:    # 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]
4517 ; AVX512F-ONLY-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm15[4,5,6,7]
4518 ; AVX512F-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm2, %zmm30, %zmm2
4519 ; AVX512F-ONLY-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
4520 ; AVX512F-ONLY-FAST-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm15 # 32-byte Folded Reload
4521 ; AVX512F-ONLY-FAST-NEXT:    # ymm15 = ymm15[0,1,2,3],mem[4,5,6,7]
4522 ; AVX512F-ONLY-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
4523 ; AVX512F-ONLY-FAST-NEXT:    vinsertf64x4 $0, %ymm15, %zmm16, %zmm15
4524 ; AVX512F-ONLY-FAST-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
4525 ; AVX512F-ONLY-FAST-NEXT:    # ymm14 = ymm14[0,1,2,3],mem[4,5,6,7]
4526 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
4527 ; AVX512F-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm14, %zmm16, %zmm14
4528 ; AVX512F-ONLY-FAST-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
4529 ; AVX512F-ONLY-FAST-NEXT:    # ymm8 = ymm8[0,1,2,3],mem[4,5,6,7]
4530 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
4531 ; AVX512F-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm8, %zmm16, %zmm8
4532 ; AVX512F-ONLY-FAST-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm11 # 32-byte Folded Reload
4533 ; AVX512F-ONLY-FAST-NEXT:    # ymm11 = ymm11[0,1,2,3],mem[4,5,6,7]
4534 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
4535 ; AVX512F-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm11, %zmm16, %zmm11
4536 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm21, 192(%rsi)
4537 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm12, 128(%rsi)
4538 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm18, 64(%rsi)
4539 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm17, (%rsi)
4540 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm0, 192(%rdx)
4541 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm5, (%rdx)
4542 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm3, 64(%rdx)
4543 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm1, 128(%rdx)
4544 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm20, 192(%rcx)
4545 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm26, (%rcx)
4546 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm29, 64(%rcx)
4547 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm22, 128(%rcx)
4548 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm7, 192(%r8)
4549 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm9, (%r8)
4550 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm6, 64(%r8)
4551 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm4, 128(%r8)
4552 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm28, 192(%r9)
4553 ; AVX512F-ONLY-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4554 ; AVX512F-ONLY-FAST-NEXT:    vmovaps %zmm0, (%r9)
4555 ; AVX512F-ONLY-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4556 ; AVX512F-ONLY-FAST-NEXT:    vmovaps %zmm0, 64(%r9)
4557 ; AVX512F-ONLY-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4558 ; AVX512F-ONLY-FAST-NEXT:    vmovaps %zmm0, 128(%r9)
4559 ; AVX512F-ONLY-FAST-NEXT:    movq {{[0-9]+}}(%rsp), %rax
4560 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm2, 192(%rax)
4561 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm10, (%rax)
4562 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm13, 64(%rax)
4563 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm19, 128(%rax)
4564 ; AVX512F-ONLY-FAST-NEXT:    movq {{[0-9]+}}(%rsp), %rax
4565 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm11, 128(%rax)
4566 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm8, 192(%rax)
4567 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm14, (%rax)
4568 ; AVX512F-ONLY-FAST-NEXT:    vmovaps %zmm15, 64(%rax)
4569 ; AVX512F-ONLY-FAST-NEXT:    addq $2216, %rsp # imm = 0x8A8
4570 ; AVX512F-ONLY-FAST-NEXT:    vzeroupper
4571 ; AVX512F-ONLY-FAST-NEXT:    retq
4573 ; AVX512DQ-SLOW-LABEL: load_i64_stride7_vf32:
4574 ; AVX512DQ-SLOW:       # %bb.0:
4575 ; AVX512DQ-SLOW-NEXT:    subq $2216, %rsp # imm = 0x8A8
4576 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 1664(%rdi), %zmm21
4577 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 1600(%rdi), %zmm3
4578 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 1216(%rdi), %zmm1
4579 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 1152(%rdi), %zmm6
4580 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 1088(%rdi), %zmm11
4581 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4582 ; AVX512DQ-SLOW-NEXT:    vmovaps 1024(%rdi), %zmm0
4583 ; AVX512DQ-SLOW-NEXT:    vmovups %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4584 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 768(%rdi), %zmm2
4585 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 704(%rdi), %zmm9
4586 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 640(%rdi), %zmm15
4587 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 576(%rdi), %zmm10
4588 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 320(%rdi), %zmm0
4589 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 256(%rdi), %zmm26
4590 ; AVX512DQ-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm7 = [10,3,10,3,10,3,10,3]
4591 ; AVX512DQ-SLOW-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4592 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm26, %zmm8
4593 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm0, %zmm7, %zmm8
4594 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4595 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm9, %zmm8
4596 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm2, %zmm7, %zmm8
4597 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4598 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm6, %zmm8
4599 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm1, %zmm7, %zmm8
4600 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4601 ; AVX512DQ-SLOW-NEXT:    vpermi2q %zmm21, %zmm3, %zmm7
4602 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4603 ; AVX512DQ-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm7 = [11,4,11,4,11,4,11,4]
4604 ; AVX512DQ-SLOW-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4605 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm6, %zmm8
4606 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm1, %zmm7, %zmm8
4607 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4608 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm7, %zmm13
4609 ; AVX512DQ-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm7 = [13,6,13,6,13,6,13,6]
4610 ; AVX512DQ-SLOW-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4611 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm9, %zmm8
4612 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm2, %zmm13, %zmm8
4613 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4614 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm26, %zmm8
4615 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm0, %zmm13, %zmm8
4616 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4617 ; AVX512DQ-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm20 = [12,5,12,5,12,5,12,5]
4618 ; AVX512DQ-SLOW-NEXT:    # zmm20 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4619 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm9, %zmm18
4620 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm2, %zmm20, %zmm18
4621 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm26, %zmm23
4622 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm0, %zmm20, %zmm23
4623 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm9, %zmm17
4624 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm2, %zmm7, %zmm17
4625 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm26, %zmm25
4626 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm0, %zmm7, %zmm25
4627 ; AVX512DQ-SLOW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm28 = [0,7,14,0,0,7,14,0]
4628 ; AVX512DQ-SLOW-NEXT:    # zmm28 = mem[0,1,2,3,0,1,2,3]
4629 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm9, %zmm8
4630 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm2, %zmm28, %zmm8
4631 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4632 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm26, %zmm16
4633 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm0, %zmm28, %zmm16
4634 ; AVX512DQ-SLOW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm30 = [9,0,7,0,9,0,7,0]
4635 ; AVX512DQ-SLOW-NEXT:    # zmm30 = mem[0,1,2,3,0,1,2,3]
4636 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm2, %zmm14
4637 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm9, %zmm30, %zmm14
4638 ; AVX512DQ-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [2,9,2,9,2,9,2,9]
4639 ; AVX512DQ-SLOW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4640 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm2, %zmm4, %zmm9
4641 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm0, %zmm8
4642 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm26, %zmm30, %zmm8
4643 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm0, %zmm4, %zmm26
4644 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4645 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm7, %zmm2
4646 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm11, %zmm7, %zmm0
4647 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4648 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm10, %zmm11
4649 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm10, %zmm0
4650 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm15, %zmm10
4651 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm15, %zmm7, %zmm0
4652 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4653 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 192(%rdi), %zmm24
4654 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 128(%rdi), %zmm12
4655 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm12, %zmm0
4656 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm24, %zmm7, %zmm0
4657 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4658 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm3, %zmm5
4659 ; AVX512DQ-SLOW-NEXT:    vpermi2q %zmm21, %zmm3, %zmm13
4660 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 1536(%rdi), %zmm15
4661 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 1472(%rdi), %zmm0
4662 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4663 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm15, %zmm7, %zmm0
4664 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4665 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm6, %zmm29
4666 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm1, %zmm20, %zmm29
4667 ; AVX512DQ-SLOW-NEXT:    vpermi2q %zmm21, %zmm3, %zmm20
4668 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm6, %zmm31
4669 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm1, %zmm7, %zmm31
4670 ; AVX512DQ-SLOW-NEXT:    vpermi2q %zmm21, %zmm3, %zmm2
4671 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm6, %zmm22
4672 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm1, %zmm28, %zmm22
4673 ; AVX512DQ-SLOW-NEXT:    vpermi2q %zmm21, %zmm3, %zmm28
4674 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm1, %zmm3
4675 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm6, %zmm30, %zmm3
4676 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm6, %zmm0
4677 ; AVX512DQ-SLOW-NEXT:    vpermi2q %zmm5, %zmm21, %zmm30
4678 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm21, %zmm4, %zmm5
4679 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm21
4680 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm1, %zmm4, %zmm0
4681 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 384(%rdi), %zmm1
4682 ; AVX512DQ-SLOW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,5,6,9,0,5,6,9]
4683 ; AVX512DQ-SLOW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
4684 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
4685 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm1, %zmm4, %zmm5
4686 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4687 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 832(%rdi), %zmm5
4688 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
4689 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm5, %zmm4, %zmm6
4690 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4691 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 1280(%rdi), %zmm6
4692 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
4693 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm6, %zmm4, %zmm7
4694 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4695 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 1728(%rdi), %zmm7
4696 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm27 # 64-byte Reload
4697 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm7, %zmm4, %zmm27
4698 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm27, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4699 ; AVX512DQ-SLOW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,5,6,10,0,5,6,10]
4700 ; AVX512DQ-SLOW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
4701 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
4702 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm6, %zmm4, %zmm19
4703 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4704 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
4705 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm5, %zmm4, %zmm19
4706 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4707 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
4708 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm1, %zmm4, %zmm19
4709 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4710 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm7, %zmm4, %zmm13
4711 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4712 ; AVX512DQ-SLOW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,5,6,11,0,5,6,11]
4713 ; AVX512DQ-SLOW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
4714 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm6, %zmm4, %zmm29
4715 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm5, %zmm4, %zmm18
4716 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm18, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4717 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm1, %zmm4, %zmm23
4718 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm23, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4719 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm7, %zmm4, %zmm20
4720 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4721 ; AVX512DQ-SLOW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,5,6,12,0,5,6,12]
4722 ; AVX512DQ-SLOW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
4723 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm6, %zmm4, %zmm31
4724 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm5, %zmm4, %zmm17
4725 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4726 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm1, %zmm4, %zmm25
4727 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm25, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4728 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm7, %zmm4, %zmm2
4729 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4730 ; AVX512DQ-SLOW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [4,5,6,13,4,5,6,13]
4731 ; AVX512DQ-SLOW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
4732 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm6, %zmm4, %zmm22
4733 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
4734 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm5, %zmm4, %zmm19
4735 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm1, %zmm4, %zmm16
4736 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4737 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm7, %zmm4, %zmm28
4738 ; AVX512DQ-SLOW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [4,5,6,14,4,5,6,14]
4739 ; AVX512DQ-SLOW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
4740 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm6, %zmm4, %zmm3
4741 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4742 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm5, %zmm4, %zmm14
4743 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4744 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm1, %zmm4, %zmm8
4745 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4746 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm7, %zmm4, %zmm30
4747 ; AVX512DQ-SLOW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [4,5,8,15,4,5,8,15]
4748 ; AVX512DQ-SLOW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
4749 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm5, %zmm4, %zmm9
4750 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4751 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm1, %zmm4, %zmm26
4752 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm26, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4753 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm7, %zmm4, %zmm21
4754 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4755 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm6, %zmm4, %zmm0
4756 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4757 ; AVX512DQ-SLOW-NEXT:    movb $24, %al
4758 ; AVX512DQ-SLOW-NEXT:    kmovw %eax, %k1
4759 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 512(%rdi), %zmm5
4760 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 448(%rdi), %zmm7
4761 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 {{.*#+}} ymm21 = <0,7,14,u>
4762 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm7, %zmm18
4763 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm5, %zmm21, %zmm18
4764 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm10, %zmm0
4765 ; AVX512DQ-SLOW-NEXT:    vshufi64x2 {{.*#+}} zmm18 {%k1} = zmm11[4,5,4,5],zmm10[4,5,4,5]
4766 ; AVX512DQ-SLOW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [14,0,0,7,14,0,0,7]
4767 ; AVX512DQ-SLOW-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
4768 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm11, %zmm26
4769 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm0, %zmm10, %zmm26
4770 ; AVX512DQ-SLOW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm16 = [7,0,9,0,7,0,9,0]
4771 ; AVX512DQ-SLOW-NEXT:    # zmm16 = mem[0,1,2,3,0,1,2,3]
4772 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm0, %zmm27
4773 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm11, %zmm16, %zmm27
4774 ; AVX512DQ-SLOW-NEXT:    vbroadcasti64x2 {{.*#+}} ymm20 = [4,11,4,11]
4775 ; AVX512DQ-SLOW-NEXT:    # ymm20 = mem[0,1,0,1]
4776 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm0, %zmm20, %zmm11
4777 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4778 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 64(%rdi), %zmm1
4779 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 (%rdi), %zmm14
4780 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm14, %zmm17
4781 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm1, %zmm21, %zmm17
4782 ; AVX512DQ-SLOW-NEXT:    vshufi64x2 {{.*#+}} zmm17 {%k1} = zmm12[4,5,4,5],zmm24[4,5,4,5]
4783 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm12, %zmm23
4784 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm24, %zmm10, %zmm23
4785 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm24, %zmm25
4786 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm12, %zmm16, %zmm25
4787 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm24, %zmm20, %zmm12
4788 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4789 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 960(%rdi), %zmm6
4790 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 896(%rdi), %zmm11
4791 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm11, %zmm12
4792 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm6, %zmm21, %zmm12
4793 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 1408(%rdi), %zmm4
4794 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 1344(%rdi), %zmm8
4795 ; AVX512DQ-SLOW-NEXT:    vpermi2q %zmm4, %zmm8, %zmm21
4796 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
4797 ; AVX512DQ-SLOW-NEXT:    vshufi64x2 {{.*#+}} zmm21 {%k1} = zmm3[4,5,4,5],zmm15[4,5,4,5]
4798 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
4799 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm2, %zmm0
4800 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
4801 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm9, %zmm10, %zmm0
4802 ; AVX512DQ-SLOW-NEXT:    vpermi2q %zmm15, %zmm3, %zmm10
4803 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm9, %zmm24
4804 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm2, %zmm16, %zmm24
4805 ; AVX512DQ-SLOW-NEXT:    vpermi2q %zmm3, %zmm15, %zmm16
4806 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm15, %zmm20, %zmm3
4807 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4808 ; AVX512DQ-SLOW-NEXT:    vshufi64x2 {{.*#+}} zmm12 {%k1} = zmm2[4,5,4,5],zmm9[4,5,4,5]
4809 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm9, %zmm20, %zmm2
4810 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4811 ; AVX512DQ-SLOW-NEXT:    vmovdqa 912(%rdi), %xmm2
4812 ; AVX512DQ-SLOW-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0,1],mem[2,3]
4813 ; AVX512DQ-SLOW-NEXT:    vinserti32x4 $0, %xmm2, %zmm0, %zmm0
4814 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4815 ; AVX512DQ-SLOW-NEXT:    vmovdqa 464(%rdi), %xmm0
4816 ; AVX512DQ-SLOW-NEXT:    vpblendd {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
4817 ; AVX512DQ-SLOW-NEXT:    vinserti32x4 $0, %xmm0, %zmm26, %zmm0
4818 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4819 ; AVX512DQ-SLOW-NEXT:    vmovdqa 16(%rdi), %xmm0
4820 ; AVX512DQ-SLOW-NEXT:    vpblendd {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
4821 ; AVX512DQ-SLOW-NEXT:    vinserti32x4 $0, %xmm0, %zmm23, %zmm26
4822 ; AVX512DQ-SLOW-NEXT:    vmovdqa 1360(%rdi), %xmm0
4823 ; AVX512DQ-SLOW-NEXT:    vpblendd {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
4824 ; AVX512DQ-SLOW-NEXT:    vinserti32x4 $0, %xmm0, %zmm10, %zmm20
4825 ; AVX512DQ-SLOW-NEXT:    vinserti128 $1, 1088(%rdi), %ymm0, %ymm0
4826 ; AVX512DQ-SLOW-NEXT:    vmovdqa 1024(%rdi), %ymm2
4827 ; AVX512DQ-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3,4,5],ymm0[6,7]
4828 ; AVX512DQ-SLOW-NEXT:    vmovdqa {{.*#+}} xmm10 = [4,11]
4829 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm11, %zmm13
4830 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm6, %zmm10, %zmm13
4831 ; AVX512DQ-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm13[0,1,2,3],ymm0[4,5,6,7]
4832 ; AVX512DQ-SLOW-NEXT:    vinserti64x4 $0, %ymm0, %zmm22, %zmm0
4833 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4834 ; AVX512DQ-SLOW-NEXT:    vinserti128 $1, 640(%rdi), %ymm0, %ymm0
4835 ; AVX512DQ-SLOW-NEXT:    vmovdqa 576(%rdi), %ymm3
4836 ; AVX512DQ-SLOW-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4837 ; AVX512DQ-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm0[6,7]
4838 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm7, %zmm3
4839 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm5, %zmm10, %zmm3
4840 ; AVX512DQ-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm0[4,5,6,7]
4841 ; AVX512DQ-SLOW-NEXT:    vinserti64x4 $0, %ymm0, %zmm19, %zmm0
4842 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4843 ; AVX512DQ-SLOW-NEXT:    vinserti128 $1, 192(%rdi), %ymm0, %ymm0
4844 ; AVX512DQ-SLOW-NEXT:    vmovdqa 128(%rdi), %ymm3
4845 ; AVX512DQ-SLOW-NEXT:    vmovdqu %ymm3, (%rsp) # 32-byte Spill
4846 ; AVX512DQ-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm0[6,7]
4847 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm14, %zmm3
4848 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm1, %zmm10, %zmm3
4849 ; AVX512DQ-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm0[4,5,6,7]
4850 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
4851 ; AVX512DQ-SLOW-NEXT:    vinserti64x4 $0, %ymm0, %zmm3, %zmm0
4852 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4853 ; AVX512DQ-SLOW-NEXT:    vinserti128 $1, 1536(%rdi), %ymm0, %ymm0
4854 ; AVX512DQ-SLOW-NEXT:    vmovdqa 1472(%rdi), %ymm3
4855 ; AVX512DQ-SLOW-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4856 ; AVX512DQ-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm0[6,7]
4857 ; AVX512DQ-SLOW-NEXT:    vpermi2q %zmm4, %zmm8, %zmm10
4858 ; AVX512DQ-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm0[4,5,6,7]
4859 ; AVX512DQ-SLOW-NEXT:    vinserti64x4 $0, %ymm0, %zmm28, %zmm28
4860 ; AVX512DQ-SLOW-NEXT:    vmovdqa 1088(%rdi), %ymm0
4861 ; AVX512DQ-SLOW-NEXT:    vpalignr {{.*#+}} ymm0 = 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]
4862 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %ymm0, %ymm23
4863 ; AVX512DQ-SLOW-NEXT:    vmovdqa {{.*#+}} ymm0 = <9,0,7,u>
4864 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm3
4865 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm7, %zmm9
4866 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm7, %zmm0, %zmm3
4867 ; AVX512DQ-SLOW-NEXT:    vmovdqa {{.*#+}} xmm2 = [5,12]
4868 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm7, %zmm13
4869 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm5, %zmm2, %zmm13
4870 ; AVX512DQ-SLOW-NEXT:    vmovdqa {{.*#+}} xmm7 = [6,13]
4871 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm5, %zmm7, %zmm9
4872 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4873 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm1, %zmm5
4874 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm14, %zmm0, %zmm5
4875 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm14, %zmm10
4876 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm1, %zmm2, %zmm10
4877 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm1, %zmm7, %zmm14
4878 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm6, %zmm1
4879 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm11, %zmm0, %zmm1
4880 ; AVX512DQ-SLOW-NEXT:    vpermi2q %zmm8, %zmm4, %zmm0
4881 ; AVX512DQ-SLOW-NEXT:    vmovdqa 960(%rdi), %ymm15
4882 ; AVX512DQ-SLOW-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]
4883 ; AVX512DQ-SLOW-NEXT:    vextracti32x4 $1, %ymm15, %xmm19
4884 ; AVX512DQ-SLOW-NEXT:    vmovdqa 512(%rdi), %ymm15
4885 ; AVX512DQ-SLOW-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]
4886 ; AVX512DQ-SLOW-NEXT:    vextracti128 $1, %ymm15, %xmm15
4887 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm11, %zmm9
4888 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm6, %zmm2, %zmm9
4889 ; AVX512DQ-SLOW-NEXT:    vpermi2q %zmm4, %zmm8, %zmm2
4890 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm4, %zmm7, %zmm8
4891 ; AVX512DQ-SLOW-NEXT:    vpermt2q %zmm6, %zmm7, %zmm11
4892 ; AVX512DQ-SLOW-NEXT:    movb $-32, %al
4893 ; AVX512DQ-SLOW-NEXT:    kmovw %eax, %k2
4894 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4895 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm17 {%k2}
4896 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4897 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm18 {%k2}
4898 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4899 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm12 {%k2}
4900 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4901 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm21 {%k2}
4902 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4903 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm1 {%k1}
4904 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4905 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm1 {%k2}
4906 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4907 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm3 {%k1}
4908 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4909 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm3 {%k2}
4910 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4911 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm5 {%k1}
4912 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4913 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm5 {%k2}
4914 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4915 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm0 {%k1}
4916 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4917 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm0 {%k2}
4918 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
4919 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm29, %zmm22 {%k2}
4920 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4921 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm29 # 64-byte Reload
4922 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm29 {%k2}
4923 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4924 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm26 {%k2}
4925 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4926 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm20 {%k2}
4927 ; AVX512DQ-SLOW-NEXT:    vinserti32x4 $0, %xmm19, %zmm24, %zmm4
4928 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm31, %zmm4 {%k2}
4929 ; AVX512DQ-SLOW-NEXT:    vinserti32x4 $0, %xmm15, %zmm27, %zmm6
4930 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
4931 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm7, %zmm6 {%k2}
4932 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %ymm23, %ymm7
4933 ; AVX512DQ-SLOW-NEXT:    vpblendd {{.*#+}} ymm7 = ymm9[0,1,2,3],ymm7[4,5,6,7]
4934 ; AVX512DQ-SLOW-NEXT:    vmovdqa 64(%rdi), %ymm9
4935 ; AVX512DQ-SLOW-NEXT:    vpalignr {{.*#+}} 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]
4936 ; AVX512DQ-SLOW-NEXT:    vextracti128 $1, %ymm9, %xmm9
4937 ; AVX512DQ-SLOW-NEXT:    vinserti32x4 $0, %xmm9, %zmm25, %zmm9
4938 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
4939 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm15, %zmm9 {%k2}
4940 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
4941 ; AVX512DQ-SLOW-NEXT:    vinserti64x4 $0, %ymm7, %zmm15, %zmm19
4942 ; AVX512DQ-SLOW-NEXT:    vmovdqa 640(%rdi), %ymm15
4943 ; AVX512DQ-SLOW-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm15 # 32-byte Folded Reload
4944 ; AVX512DQ-SLOW-NEXT:    # 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]
4945 ; AVX512DQ-SLOW-NEXT:    vmovdqa 1408(%rdi), %ymm7
4946 ; AVX512DQ-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]
4947 ; AVX512DQ-SLOW-NEXT:    vextracti128 $1, %ymm7, %xmm7
4948 ; AVX512DQ-SLOW-NEXT:    vinserti32x4 $0, %xmm7, %zmm16, %zmm7
4949 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
4950 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm16, %zmm7 {%k2}
4951 ; AVX512DQ-SLOW-NEXT:    vpblendd {{.*#+}} ymm13 = ymm13[0,1,2,3],ymm15[4,5,6,7]
4952 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
4953 ; AVX512DQ-SLOW-NEXT:    vinserti64x4 $0, %ymm13, %zmm15, %zmm13
4954 ; AVX512DQ-SLOW-NEXT:    vmovdqa 192(%rdi), %ymm15
4955 ; AVX512DQ-SLOW-NEXT:    vpalignr $8, (%rsp), %ymm15, %ymm15 # 32-byte Folded Reload
4956 ; AVX512DQ-SLOW-NEXT:    # 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]
4957 ; AVX512DQ-SLOW-NEXT:    vpblendd {{.*#+}} ymm10 = ymm10[0,1,2,3],ymm15[4,5,6,7]
4958 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
4959 ; AVX512DQ-SLOW-NEXT:    vinserti64x4 $0, %ymm10, %zmm15, %zmm10
4960 ; AVX512DQ-SLOW-NEXT:    vmovdqa 1536(%rdi), %ymm15
4961 ; AVX512DQ-SLOW-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm15 # 32-byte Folded Reload
4962 ; AVX512DQ-SLOW-NEXT:    # 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]
4963 ; AVX512DQ-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm15[4,5,6,7]
4964 ; AVX512DQ-SLOW-NEXT:    vinserti64x4 $0, %ymm2, %zmm30, %zmm2
4965 ; AVX512DQ-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
4966 ; AVX512DQ-SLOW-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm15 # 32-byte Folded Reload
4967 ; AVX512DQ-SLOW-NEXT:    # ymm15 = ymm15[0,1,2,3],mem[4,5,6,7]
4968 ; AVX512DQ-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
4969 ; AVX512DQ-SLOW-NEXT:    vinsertf64x4 $0, %ymm15, %zmm16, %zmm15
4970 ; AVX512DQ-SLOW-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
4971 ; AVX512DQ-SLOW-NEXT:    # ymm14 = ymm14[0,1,2,3],mem[4,5,6,7]
4972 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
4973 ; AVX512DQ-SLOW-NEXT:    vinserti64x4 $0, %ymm14, %zmm16, %zmm14
4974 ; AVX512DQ-SLOW-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
4975 ; AVX512DQ-SLOW-NEXT:    # ymm8 = ymm8[0,1,2,3],mem[4,5,6,7]
4976 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
4977 ; AVX512DQ-SLOW-NEXT:    vinserti64x4 $0, %ymm8, %zmm16, %zmm8
4978 ; AVX512DQ-SLOW-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm11 # 32-byte Folded Reload
4979 ; AVX512DQ-SLOW-NEXT:    # ymm11 = ymm11[0,1,2,3],mem[4,5,6,7]
4980 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
4981 ; AVX512DQ-SLOW-NEXT:    vinserti64x4 $0, %ymm11, %zmm16, %zmm11
4982 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm21, 192(%rsi)
4983 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm12, 128(%rsi)
4984 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm18, 64(%rsi)
4985 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm17, (%rsi)
4986 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm0, 192(%rdx)
4987 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm5, (%rdx)
4988 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm3, 64(%rdx)
4989 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm1, 128(%rdx)
4990 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm20, 192(%rcx)
4991 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm26, (%rcx)
4992 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm29, 64(%rcx)
4993 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm22, 128(%rcx)
4994 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm7, 192(%r8)
4995 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm9, (%r8)
4996 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm6, 64(%r8)
4997 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm4, 128(%r8)
4998 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm28, 192(%r9)
4999 ; AVX512DQ-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5000 ; AVX512DQ-SLOW-NEXT:    vmovaps %zmm0, (%r9)
5001 ; AVX512DQ-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5002 ; AVX512DQ-SLOW-NEXT:    vmovaps %zmm0, 64(%r9)
5003 ; AVX512DQ-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5004 ; AVX512DQ-SLOW-NEXT:    vmovaps %zmm0, 128(%r9)
5005 ; AVX512DQ-SLOW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
5006 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm2, 192(%rax)
5007 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm10, (%rax)
5008 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm13, 64(%rax)
5009 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm19, 128(%rax)
5010 ; AVX512DQ-SLOW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
5011 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm11, 128(%rax)
5012 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm8, 192(%rax)
5013 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm14, (%rax)
5014 ; AVX512DQ-SLOW-NEXT:    vmovaps %zmm15, 64(%rax)
5015 ; AVX512DQ-SLOW-NEXT:    addq $2216, %rsp # imm = 0x8A8
5016 ; AVX512DQ-SLOW-NEXT:    vzeroupper
5017 ; AVX512DQ-SLOW-NEXT:    retq
5019 ; AVX512DQ-FAST-LABEL: load_i64_stride7_vf32:
5020 ; AVX512DQ-FAST:       # %bb.0:
5021 ; AVX512DQ-FAST-NEXT:    subq $2216, %rsp # imm = 0x8A8
5022 ; AVX512DQ-FAST-NEXT:    vmovdqa64 1664(%rdi), %zmm21
5023 ; AVX512DQ-FAST-NEXT:    vmovdqa64 1600(%rdi), %zmm3
5024 ; AVX512DQ-FAST-NEXT:    vmovdqa64 1216(%rdi), %zmm1
5025 ; AVX512DQ-FAST-NEXT:    vmovdqa64 1152(%rdi), %zmm6
5026 ; AVX512DQ-FAST-NEXT:    vmovdqa64 1088(%rdi), %zmm11
5027 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5028 ; AVX512DQ-FAST-NEXT:    vmovaps 1024(%rdi), %zmm0
5029 ; AVX512DQ-FAST-NEXT:    vmovups %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5030 ; AVX512DQ-FAST-NEXT:    vmovdqa64 768(%rdi), %zmm2
5031 ; AVX512DQ-FAST-NEXT:    vmovdqa64 704(%rdi), %zmm9
5032 ; AVX512DQ-FAST-NEXT:    vmovdqa64 640(%rdi), %zmm15
5033 ; AVX512DQ-FAST-NEXT:    vmovdqa64 576(%rdi), %zmm10
5034 ; AVX512DQ-FAST-NEXT:    vmovdqa64 320(%rdi), %zmm0
5035 ; AVX512DQ-FAST-NEXT:    vmovdqa64 256(%rdi), %zmm26
5036 ; AVX512DQ-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm7 = [10,3,10,3,10,3,10,3]
5037 ; AVX512DQ-FAST-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5038 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm26, %zmm8
5039 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm0, %zmm7, %zmm8
5040 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5041 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm9, %zmm8
5042 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm2, %zmm7, %zmm8
5043 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5044 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm6, %zmm8
5045 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm1, %zmm7, %zmm8
5046 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5047 ; AVX512DQ-FAST-NEXT:    vpermi2q %zmm21, %zmm3, %zmm7
5048 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5049 ; AVX512DQ-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm7 = [11,4,11,4,11,4,11,4]
5050 ; AVX512DQ-FAST-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5051 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm6, %zmm8
5052 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm1, %zmm7, %zmm8
5053 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5054 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm7, %zmm13
5055 ; AVX512DQ-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm7 = [13,6,13,6,13,6,13,6]
5056 ; AVX512DQ-FAST-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5057 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm9, %zmm8
5058 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm2, %zmm13, %zmm8
5059 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5060 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm26, %zmm8
5061 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm0, %zmm13, %zmm8
5062 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5063 ; AVX512DQ-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm20 = [12,5,12,5,12,5,12,5]
5064 ; AVX512DQ-FAST-NEXT:    # zmm20 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5065 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm9, %zmm18
5066 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm2, %zmm20, %zmm18
5067 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm26, %zmm23
5068 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm0, %zmm20, %zmm23
5069 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm9, %zmm17
5070 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm2, %zmm7, %zmm17
5071 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm26, %zmm25
5072 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm0, %zmm7, %zmm25
5073 ; AVX512DQ-FAST-NEXT:    vbroadcasti64x4 {{.*#+}} zmm28 = [0,7,14,0,0,7,14,0]
5074 ; AVX512DQ-FAST-NEXT:    # zmm28 = mem[0,1,2,3,0,1,2,3]
5075 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm9, %zmm8
5076 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm2, %zmm28, %zmm8
5077 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5078 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm26, %zmm16
5079 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm0, %zmm28, %zmm16
5080 ; AVX512DQ-FAST-NEXT:    vbroadcasti64x4 {{.*#+}} zmm30 = [9,0,7,0,9,0,7,0]
5081 ; AVX512DQ-FAST-NEXT:    # zmm30 = mem[0,1,2,3,0,1,2,3]
5082 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm2, %zmm14
5083 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm9, %zmm30, %zmm14
5084 ; AVX512DQ-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [2,9,2,9,2,9,2,9]
5085 ; AVX512DQ-FAST-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5086 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm2, %zmm4, %zmm9
5087 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm0, %zmm8
5088 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm26, %zmm30, %zmm8
5089 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm0, %zmm4, %zmm26
5090 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5091 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm7, %zmm2
5092 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm11, %zmm7, %zmm0
5093 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5094 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm10, %zmm11
5095 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm10, %zmm0
5096 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm15, %zmm10
5097 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm15, %zmm7, %zmm0
5098 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5099 ; AVX512DQ-FAST-NEXT:    vmovdqa64 192(%rdi), %zmm24
5100 ; AVX512DQ-FAST-NEXT:    vmovdqa64 128(%rdi), %zmm12
5101 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm12, %zmm0
5102 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm24, %zmm7, %zmm0
5103 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5104 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm3, %zmm5
5105 ; AVX512DQ-FAST-NEXT:    vpermi2q %zmm21, %zmm3, %zmm13
5106 ; AVX512DQ-FAST-NEXT:    vmovdqa64 1536(%rdi), %zmm15
5107 ; AVX512DQ-FAST-NEXT:    vmovdqa64 1472(%rdi), %zmm0
5108 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5109 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm15, %zmm7, %zmm0
5110 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5111 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm6, %zmm29
5112 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm1, %zmm20, %zmm29
5113 ; AVX512DQ-FAST-NEXT:    vpermi2q %zmm21, %zmm3, %zmm20
5114 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm6, %zmm31
5115 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm1, %zmm7, %zmm31
5116 ; AVX512DQ-FAST-NEXT:    vpermi2q %zmm21, %zmm3, %zmm2
5117 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm6, %zmm22
5118 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm1, %zmm28, %zmm22
5119 ; AVX512DQ-FAST-NEXT:    vpermi2q %zmm21, %zmm3, %zmm28
5120 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm1, %zmm3
5121 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm6, %zmm30, %zmm3
5122 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm6, %zmm0
5123 ; AVX512DQ-FAST-NEXT:    vpermi2q %zmm5, %zmm21, %zmm30
5124 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm21, %zmm4, %zmm5
5125 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm5, %zmm21
5126 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm1, %zmm4, %zmm0
5127 ; AVX512DQ-FAST-NEXT:    vmovdqa64 384(%rdi), %zmm1
5128 ; AVX512DQ-FAST-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,5,6,9,0,5,6,9]
5129 ; AVX512DQ-FAST-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
5130 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
5131 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm1, %zmm4, %zmm5
5132 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5133 ; AVX512DQ-FAST-NEXT:    vmovdqa64 832(%rdi), %zmm5
5134 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
5135 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm5, %zmm4, %zmm6
5136 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5137 ; AVX512DQ-FAST-NEXT:    vmovdqa64 1280(%rdi), %zmm6
5138 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
5139 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm6, %zmm4, %zmm7
5140 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5141 ; AVX512DQ-FAST-NEXT:    vmovdqa64 1728(%rdi), %zmm7
5142 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm27 # 64-byte Reload
5143 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm7, %zmm4, %zmm27
5144 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm27, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5145 ; AVX512DQ-FAST-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,5,6,10,0,5,6,10]
5146 ; AVX512DQ-FAST-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
5147 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
5148 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm6, %zmm4, %zmm19
5149 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5150 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
5151 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm5, %zmm4, %zmm19
5152 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5153 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
5154 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm1, %zmm4, %zmm19
5155 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5156 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm7, %zmm4, %zmm13
5157 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5158 ; AVX512DQ-FAST-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,5,6,11,0,5,6,11]
5159 ; AVX512DQ-FAST-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
5160 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm6, %zmm4, %zmm29
5161 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm5, %zmm4, %zmm18
5162 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm18, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5163 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm1, %zmm4, %zmm23
5164 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm23, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5165 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm7, %zmm4, %zmm20
5166 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5167 ; AVX512DQ-FAST-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,5,6,12,0,5,6,12]
5168 ; AVX512DQ-FAST-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
5169 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm6, %zmm4, %zmm31
5170 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm5, %zmm4, %zmm17
5171 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5172 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm1, %zmm4, %zmm25
5173 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm25, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5174 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm7, %zmm4, %zmm2
5175 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5176 ; AVX512DQ-FAST-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [4,5,6,13,4,5,6,13]
5177 ; AVX512DQ-FAST-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
5178 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm6, %zmm4, %zmm22
5179 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
5180 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm5, %zmm4, %zmm19
5181 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm1, %zmm4, %zmm16
5182 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5183 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm7, %zmm4, %zmm28
5184 ; AVX512DQ-FAST-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [4,5,6,14,4,5,6,14]
5185 ; AVX512DQ-FAST-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
5186 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm6, %zmm4, %zmm3
5187 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5188 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm5, %zmm4, %zmm14
5189 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5190 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm1, %zmm4, %zmm8
5191 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5192 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm7, %zmm4, %zmm30
5193 ; AVX512DQ-FAST-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [4,5,8,15,4,5,8,15]
5194 ; AVX512DQ-FAST-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
5195 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm5, %zmm4, %zmm9
5196 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5197 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm1, %zmm4, %zmm26
5198 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm26, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5199 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm7, %zmm4, %zmm21
5200 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5201 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm6, %zmm4, %zmm0
5202 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5203 ; AVX512DQ-FAST-NEXT:    movb $24, %al
5204 ; AVX512DQ-FAST-NEXT:    kmovw %eax, %k1
5205 ; AVX512DQ-FAST-NEXT:    vmovdqa64 512(%rdi), %zmm5
5206 ; AVX512DQ-FAST-NEXT:    vmovdqa64 448(%rdi), %zmm7
5207 ; AVX512DQ-FAST-NEXT:    vmovdqa64 {{.*#+}} ymm21 = <0,7,14,u>
5208 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm7, %zmm18
5209 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm5, %zmm21, %zmm18
5210 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm10, %zmm0
5211 ; AVX512DQ-FAST-NEXT:    vshufi64x2 {{.*#+}} zmm18 {%k1} = zmm11[4,5,4,5],zmm10[4,5,4,5]
5212 ; AVX512DQ-FAST-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [14,0,0,7,14,0,0,7]
5213 ; AVX512DQ-FAST-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
5214 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm11, %zmm26
5215 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm0, %zmm10, %zmm26
5216 ; AVX512DQ-FAST-NEXT:    vbroadcasti64x4 {{.*#+}} zmm16 = [7,0,9,0,7,0,9,0]
5217 ; AVX512DQ-FAST-NEXT:    # zmm16 = mem[0,1,2,3,0,1,2,3]
5218 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm0, %zmm27
5219 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm11, %zmm16, %zmm27
5220 ; AVX512DQ-FAST-NEXT:    vbroadcasti64x2 {{.*#+}} ymm20 = [4,11,4,11]
5221 ; AVX512DQ-FAST-NEXT:    # ymm20 = mem[0,1,0,1]
5222 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm0, %zmm20, %zmm11
5223 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5224 ; AVX512DQ-FAST-NEXT:    vmovdqa64 64(%rdi), %zmm1
5225 ; AVX512DQ-FAST-NEXT:    vmovdqa64 (%rdi), %zmm14
5226 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm14, %zmm17
5227 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm1, %zmm21, %zmm17
5228 ; AVX512DQ-FAST-NEXT:    vshufi64x2 {{.*#+}} zmm17 {%k1} = zmm12[4,5,4,5],zmm24[4,5,4,5]
5229 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm12, %zmm23
5230 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm24, %zmm10, %zmm23
5231 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm24, %zmm25
5232 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm12, %zmm16, %zmm25
5233 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm24, %zmm20, %zmm12
5234 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5235 ; AVX512DQ-FAST-NEXT:    vmovdqa64 960(%rdi), %zmm6
5236 ; AVX512DQ-FAST-NEXT:    vmovdqa64 896(%rdi), %zmm11
5237 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm11, %zmm12
5238 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm6, %zmm21, %zmm12
5239 ; AVX512DQ-FAST-NEXT:    vmovdqa64 1408(%rdi), %zmm4
5240 ; AVX512DQ-FAST-NEXT:    vmovdqa64 1344(%rdi), %zmm8
5241 ; AVX512DQ-FAST-NEXT:    vpermi2q %zmm4, %zmm8, %zmm21
5242 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
5243 ; AVX512DQ-FAST-NEXT:    vshufi64x2 {{.*#+}} zmm21 {%k1} = zmm3[4,5,4,5],zmm15[4,5,4,5]
5244 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
5245 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm2, %zmm0
5246 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
5247 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm9, %zmm10, %zmm0
5248 ; AVX512DQ-FAST-NEXT:    vpermi2q %zmm15, %zmm3, %zmm10
5249 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm9, %zmm24
5250 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm2, %zmm16, %zmm24
5251 ; AVX512DQ-FAST-NEXT:    vpermi2q %zmm3, %zmm15, %zmm16
5252 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm15, %zmm20, %zmm3
5253 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5254 ; AVX512DQ-FAST-NEXT:    vshufi64x2 {{.*#+}} zmm12 {%k1} = zmm2[4,5,4,5],zmm9[4,5,4,5]
5255 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm9, %zmm20, %zmm2
5256 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5257 ; AVX512DQ-FAST-NEXT:    vmovdqa 912(%rdi), %xmm2
5258 ; AVX512DQ-FAST-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0,1],mem[2,3]
5259 ; AVX512DQ-FAST-NEXT:    vinserti32x4 $0, %xmm2, %zmm0, %zmm0
5260 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5261 ; AVX512DQ-FAST-NEXT:    vmovdqa 464(%rdi), %xmm0
5262 ; AVX512DQ-FAST-NEXT:    vpblendd {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
5263 ; AVX512DQ-FAST-NEXT:    vinserti32x4 $0, %xmm0, %zmm26, %zmm0
5264 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5265 ; AVX512DQ-FAST-NEXT:    vmovdqa 16(%rdi), %xmm0
5266 ; AVX512DQ-FAST-NEXT:    vpblendd {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
5267 ; AVX512DQ-FAST-NEXT:    vinserti32x4 $0, %xmm0, %zmm23, %zmm26
5268 ; AVX512DQ-FAST-NEXT:    vmovdqa 1360(%rdi), %xmm0
5269 ; AVX512DQ-FAST-NEXT:    vpblendd {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
5270 ; AVX512DQ-FAST-NEXT:    vinserti32x4 $0, %xmm0, %zmm10, %zmm20
5271 ; AVX512DQ-FAST-NEXT:    vinserti128 $1, 1088(%rdi), %ymm0, %ymm0
5272 ; AVX512DQ-FAST-NEXT:    vmovdqa 1024(%rdi), %ymm2
5273 ; AVX512DQ-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3,4,5],ymm0[6,7]
5274 ; AVX512DQ-FAST-NEXT:    vmovdqa {{.*#+}} xmm10 = [4,11]
5275 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm11, %zmm13
5276 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm6, %zmm10, %zmm13
5277 ; AVX512DQ-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm13[0,1,2,3],ymm0[4,5,6,7]
5278 ; AVX512DQ-FAST-NEXT:    vinserti64x4 $0, %ymm0, %zmm22, %zmm0
5279 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5280 ; AVX512DQ-FAST-NEXT:    vinserti128 $1, 640(%rdi), %ymm0, %ymm0
5281 ; AVX512DQ-FAST-NEXT:    vmovdqa 576(%rdi), %ymm3
5282 ; AVX512DQ-FAST-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5283 ; AVX512DQ-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm0[6,7]
5284 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm7, %zmm3
5285 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm5, %zmm10, %zmm3
5286 ; AVX512DQ-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm0[4,5,6,7]
5287 ; AVX512DQ-FAST-NEXT:    vinserti64x4 $0, %ymm0, %zmm19, %zmm0
5288 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5289 ; AVX512DQ-FAST-NEXT:    vinserti128 $1, 192(%rdi), %ymm0, %ymm0
5290 ; AVX512DQ-FAST-NEXT:    vmovdqa 128(%rdi), %ymm3
5291 ; AVX512DQ-FAST-NEXT:    vmovdqu %ymm3, (%rsp) # 32-byte Spill
5292 ; AVX512DQ-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm0[6,7]
5293 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm14, %zmm3
5294 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm1, %zmm10, %zmm3
5295 ; AVX512DQ-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm0[4,5,6,7]
5296 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
5297 ; AVX512DQ-FAST-NEXT:    vinserti64x4 $0, %ymm0, %zmm3, %zmm0
5298 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5299 ; AVX512DQ-FAST-NEXT:    vinserti128 $1, 1536(%rdi), %ymm0, %ymm0
5300 ; AVX512DQ-FAST-NEXT:    vmovdqa 1472(%rdi), %ymm3
5301 ; AVX512DQ-FAST-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5302 ; AVX512DQ-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm0[6,7]
5303 ; AVX512DQ-FAST-NEXT:    vpermi2q %zmm4, %zmm8, %zmm10
5304 ; AVX512DQ-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm0[4,5,6,7]
5305 ; AVX512DQ-FAST-NEXT:    vinserti64x4 $0, %ymm0, %zmm28, %zmm28
5306 ; AVX512DQ-FAST-NEXT:    vmovdqa 1088(%rdi), %ymm0
5307 ; AVX512DQ-FAST-NEXT:    vpalignr {{.*#+}} ymm0 = 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]
5308 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %ymm0, %ymm23
5309 ; AVX512DQ-FAST-NEXT:    vmovdqa {{.*#+}} ymm0 = <9,0,7,u>
5310 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm5, %zmm3
5311 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm7, %zmm9
5312 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm7, %zmm0, %zmm3
5313 ; AVX512DQ-FAST-NEXT:    vmovdqa {{.*#+}} xmm2 = [5,12]
5314 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm7, %zmm13
5315 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm5, %zmm2, %zmm13
5316 ; AVX512DQ-FAST-NEXT:    vmovdqa {{.*#+}} xmm7 = [6,13]
5317 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm5, %zmm7, %zmm9
5318 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5319 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm1, %zmm5
5320 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm14, %zmm0, %zmm5
5321 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm14, %zmm10
5322 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm1, %zmm2, %zmm10
5323 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm1, %zmm7, %zmm14
5324 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm6, %zmm1
5325 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm11, %zmm0, %zmm1
5326 ; AVX512DQ-FAST-NEXT:    vpermi2q %zmm8, %zmm4, %zmm0
5327 ; AVX512DQ-FAST-NEXT:    vmovdqa 960(%rdi), %ymm15
5328 ; AVX512DQ-FAST-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]
5329 ; AVX512DQ-FAST-NEXT:    vextracti32x4 $1, %ymm15, %xmm19
5330 ; AVX512DQ-FAST-NEXT:    vmovdqa 512(%rdi), %ymm15
5331 ; AVX512DQ-FAST-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]
5332 ; AVX512DQ-FAST-NEXT:    vextracti128 $1, %ymm15, %xmm15
5333 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm11, %zmm9
5334 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm6, %zmm2, %zmm9
5335 ; AVX512DQ-FAST-NEXT:    vpermi2q %zmm4, %zmm8, %zmm2
5336 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm4, %zmm7, %zmm8
5337 ; AVX512DQ-FAST-NEXT:    vpermt2q %zmm6, %zmm7, %zmm11
5338 ; AVX512DQ-FAST-NEXT:    movb $-32, %al
5339 ; AVX512DQ-FAST-NEXT:    kmovw %eax, %k2
5340 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
5341 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm4, %zmm17 {%k2}
5342 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
5343 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm4, %zmm18 {%k2}
5344 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
5345 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm4, %zmm12 {%k2}
5346 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
5347 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm4, %zmm21 {%k2}
5348 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
5349 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm4, %zmm1 {%k1}
5350 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
5351 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm4, %zmm1 {%k2}
5352 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
5353 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm4, %zmm3 {%k1}
5354 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
5355 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm4, %zmm3 {%k2}
5356 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
5357 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm4, %zmm5 {%k1}
5358 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
5359 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm4, %zmm5 {%k2}
5360 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
5361 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm4, %zmm0 {%k1}
5362 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
5363 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm4, %zmm0 {%k2}
5364 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
5365 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm29, %zmm22 {%k2}
5366 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
5367 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm29 # 64-byte Reload
5368 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm4, %zmm29 {%k2}
5369 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
5370 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm4, %zmm26 {%k2}
5371 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
5372 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm4, %zmm20 {%k2}
5373 ; AVX512DQ-FAST-NEXT:    vinserti32x4 $0, %xmm19, %zmm24, %zmm4
5374 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm31, %zmm4 {%k2}
5375 ; AVX512DQ-FAST-NEXT:    vinserti32x4 $0, %xmm15, %zmm27, %zmm6
5376 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
5377 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm7, %zmm6 {%k2}
5378 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %ymm23, %ymm7
5379 ; AVX512DQ-FAST-NEXT:    vpblendd {{.*#+}} ymm7 = ymm9[0,1,2,3],ymm7[4,5,6,7]
5380 ; AVX512DQ-FAST-NEXT:    vmovdqa 64(%rdi), %ymm9
5381 ; AVX512DQ-FAST-NEXT:    vpalignr {{.*#+}} 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]
5382 ; AVX512DQ-FAST-NEXT:    vextracti128 $1, %ymm9, %xmm9
5383 ; AVX512DQ-FAST-NEXT:    vinserti32x4 $0, %xmm9, %zmm25, %zmm9
5384 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
5385 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm15, %zmm9 {%k2}
5386 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
5387 ; AVX512DQ-FAST-NEXT:    vinserti64x4 $0, %ymm7, %zmm15, %zmm19
5388 ; AVX512DQ-FAST-NEXT:    vmovdqa 640(%rdi), %ymm15
5389 ; AVX512DQ-FAST-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm15 # 32-byte Folded Reload
5390 ; AVX512DQ-FAST-NEXT:    # 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]
5391 ; AVX512DQ-FAST-NEXT:    vmovdqa 1408(%rdi), %ymm7
5392 ; AVX512DQ-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]
5393 ; AVX512DQ-FAST-NEXT:    vextracti128 $1, %ymm7, %xmm7
5394 ; AVX512DQ-FAST-NEXT:    vinserti32x4 $0, %xmm7, %zmm16, %zmm7
5395 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
5396 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm16, %zmm7 {%k2}
5397 ; AVX512DQ-FAST-NEXT:    vpblendd {{.*#+}} ymm13 = ymm13[0,1,2,3],ymm15[4,5,6,7]
5398 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
5399 ; AVX512DQ-FAST-NEXT:    vinserti64x4 $0, %ymm13, %zmm15, %zmm13
5400 ; AVX512DQ-FAST-NEXT:    vmovdqa 192(%rdi), %ymm15
5401 ; AVX512DQ-FAST-NEXT:    vpalignr $8, (%rsp), %ymm15, %ymm15 # 32-byte Folded Reload
5402 ; AVX512DQ-FAST-NEXT:    # 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]
5403 ; AVX512DQ-FAST-NEXT:    vpblendd {{.*#+}} ymm10 = ymm10[0,1,2,3],ymm15[4,5,6,7]
5404 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
5405 ; AVX512DQ-FAST-NEXT:    vinserti64x4 $0, %ymm10, %zmm15, %zmm10
5406 ; AVX512DQ-FAST-NEXT:    vmovdqa 1536(%rdi), %ymm15
5407 ; AVX512DQ-FAST-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm15 # 32-byte Folded Reload
5408 ; AVX512DQ-FAST-NEXT:    # 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]
5409 ; AVX512DQ-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm15[4,5,6,7]
5410 ; AVX512DQ-FAST-NEXT:    vinserti64x4 $0, %ymm2, %zmm30, %zmm2
5411 ; AVX512DQ-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
5412 ; AVX512DQ-FAST-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm15 # 32-byte Folded Reload
5413 ; AVX512DQ-FAST-NEXT:    # ymm15 = ymm15[0,1,2,3],mem[4,5,6,7]
5414 ; AVX512DQ-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
5415 ; AVX512DQ-FAST-NEXT:    vinsertf64x4 $0, %ymm15, %zmm16, %zmm15
5416 ; AVX512DQ-FAST-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
5417 ; AVX512DQ-FAST-NEXT:    # ymm14 = ymm14[0,1,2,3],mem[4,5,6,7]
5418 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
5419 ; AVX512DQ-FAST-NEXT:    vinserti64x4 $0, %ymm14, %zmm16, %zmm14
5420 ; AVX512DQ-FAST-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
5421 ; AVX512DQ-FAST-NEXT:    # ymm8 = ymm8[0,1,2,3],mem[4,5,6,7]
5422 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
5423 ; AVX512DQ-FAST-NEXT:    vinserti64x4 $0, %ymm8, %zmm16, %zmm8
5424 ; AVX512DQ-FAST-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm11 # 32-byte Folded Reload
5425 ; AVX512DQ-FAST-NEXT:    # ymm11 = ymm11[0,1,2,3],mem[4,5,6,7]
5426 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
5427 ; AVX512DQ-FAST-NEXT:    vinserti64x4 $0, %ymm11, %zmm16, %zmm11
5428 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm21, 192(%rsi)
5429 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm12, 128(%rsi)
5430 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm18, 64(%rsi)
5431 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm17, (%rsi)
5432 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm0, 192(%rdx)
5433 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm5, (%rdx)
5434 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm3, 64(%rdx)
5435 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm1, 128(%rdx)
5436 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm20, 192(%rcx)
5437 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm26, (%rcx)
5438 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm29, 64(%rcx)
5439 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm22, 128(%rcx)
5440 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm7, 192(%r8)
5441 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm9, (%r8)
5442 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm6, 64(%r8)
5443 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm4, 128(%r8)
5444 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm28, 192(%r9)
5445 ; AVX512DQ-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5446 ; AVX512DQ-FAST-NEXT:    vmovaps %zmm0, (%r9)
5447 ; AVX512DQ-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5448 ; AVX512DQ-FAST-NEXT:    vmovaps %zmm0, 64(%r9)
5449 ; AVX512DQ-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5450 ; AVX512DQ-FAST-NEXT:    vmovaps %zmm0, 128(%r9)
5451 ; AVX512DQ-FAST-NEXT:    movq {{[0-9]+}}(%rsp), %rax
5452 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm2, 192(%rax)
5453 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm10, (%rax)
5454 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm13, 64(%rax)
5455 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm19, 128(%rax)
5456 ; AVX512DQ-FAST-NEXT:    movq {{[0-9]+}}(%rsp), %rax
5457 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm11, 128(%rax)
5458 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm8, 192(%rax)
5459 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm14, (%rax)
5460 ; AVX512DQ-FAST-NEXT:    vmovaps %zmm15, 64(%rax)
5461 ; AVX512DQ-FAST-NEXT:    addq $2216, %rsp # imm = 0x8A8
5462 ; AVX512DQ-FAST-NEXT:    vzeroupper
5463 ; AVX512DQ-FAST-NEXT:    retq
5465 ; AVX512BW-ONLY-SLOW-LABEL: load_i64_stride7_vf32:
5466 ; AVX512BW-ONLY-SLOW:       # %bb.0:
5467 ; AVX512BW-ONLY-SLOW-NEXT:    subq $2152, %rsp # imm = 0x868
5468 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 1664(%rdi), %zmm21
5469 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 1600(%rdi), %zmm31
5470 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 1216(%rdi), %zmm2
5471 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 1152(%rdi), %zmm6
5472 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 1088(%rdi), %zmm12
5473 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5474 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 1024(%rdi), %zmm3
5475 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5476 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 768(%rdi), %zmm1
5477 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 704(%rdi), %zmm10
5478 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 640(%rdi), %zmm11
5479 ; AVX512BW-ONLY-SLOW-NEXT:    vmovaps 576(%rdi), %zmm0
5480 ; AVX512BW-ONLY-SLOW-NEXT:    vmovups %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5481 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 320(%rdi), %zmm0
5482 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 256(%rdi), %zmm5
5483 ; AVX512BW-ONLY-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm7 = [10,3,10,3,10,3,10,3]
5484 ; AVX512BW-ONLY-SLOW-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5485 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm8
5486 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm0, %zmm7, %zmm8
5487 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5488 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm10, %zmm8
5489 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm1, %zmm7, %zmm8
5490 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5491 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm6, %zmm8
5492 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm2, %zmm7, %zmm8
5493 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5494 ; AVX512BW-ONLY-SLOW-NEXT:    vpermi2q %zmm21, %zmm31, %zmm7
5495 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5496 ; AVX512BW-ONLY-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm7 = [11,4,11,4,11,4,11,4]
5497 ; AVX512BW-ONLY-SLOW-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5498 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm6, %zmm8
5499 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm2, %zmm7, %zmm8
5500 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5501 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm7, %zmm13
5502 ; AVX512BW-ONLY-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm7 = [13,6,13,6,13,6,13,6]
5503 ; AVX512BW-ONLY-SLOW-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5504 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm10, %zmm8
5505 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm1, %zmm13, %zmm8
5506 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5507 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm8
5508 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm18
5509 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm0, %zmm13, %zmm18
5510 ; AVX512BW-ONLY-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm19 = [12,5,12,5,12,5,12,5]
5511 ; AVX512BW-ONLY-SLOW-NEXT:    # zmm19 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5512 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm10, %zmm17
5513 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm1, %zmm19, %zmm17
5514 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm22
5515 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm0, %zmm19, %zmm22
5516 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm22, %zmm23
5517 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm10, %zmm16
5518 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm1, %zmm7, %zmm16
5519 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm22
5520 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm0, %zmm7, %zmm22
5521 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm22, %zmm24
5522 ; AVX512BW-ONLY-SLOW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm28 = [0,7,14,0,0,7,14,0]
5523 ; AVX512BW-ONLY-SLOW-NEXT:    # zmm28 = mem[0,1,2,3,0,1,2,3]
5524 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm10, %zmm15
5525 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm1, %zmm28, %zmm15
5526 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm25
5527 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm0, %zmm28, %zmm25
5528 ; AVX512BW-ONLY-SLOW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm29 = [9,0,7,0,9,0,7,0]
5529 ; AVX512BW-ONLY-SLOW-NEXT:    # zmm29 = mem[0,1,2,3,0,1,2,3]
5530 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm1, %zmm26
5531 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm10, %zmm29, %zmm26
5532 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm26, %zmm30
5533 ; AVX512BW-ONLY-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [2,9,2,9,2,9,2,9]
5534 ; AVX512BW-ONLY-SLOW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5535 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm1, %zmm4, %zmm10
5536 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm0, %zmm9
5537 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm8, %zmm29, %zmm9
5538 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm0, %zmm4, %zmm8
5539 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm7, %zmm1
5540 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm12, %zmm7, %zmm3
5541 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5542 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
5543 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm14, %zmm0
5544 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm11, %zmm7, %zmm0
5545 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5546 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 192(%rdi), %zmm22
5547 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 128(%rdi), %zmm0
5548 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5549 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm22, %zmm7, %zmm0
5550 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5551 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm31, %zmm5
5552 ; AVX512BW-ONLY-SLOW-NEXT:    vpermi2q %zmm21, %zmm31, %zmm13
5553 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 1536(%rdi), %zmm3
5554 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 1472(%rdi), %zmm0
5555 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5556 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm3, %zmm7, %zmm0
5557 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5558 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm6, %zmm0
5559 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm6, %zmm31
5560 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm2, %zmm19, %zmm31
5561 ; AVX512BW-ONLY-SLOW-NEXT:    vpermi2q %zmm21, %zmm5, %zmm19
5562 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm19, %zmm26
5563 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm6, %zmm27
5564 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm2, %zmm7, %zmm27
5565 ; AVX512BW-ONLY-SLOW-NEXT:    vpermi2q %zmm21, %zmm5, %zmm1
5566 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm6, %zmm20
5567 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm2, %zmm28, %zmm20
5568 ; AVX512BW-ONLY-SLOW-NEXT:    vpermi2q %zmm21, %zmm5, %zmm28
5569 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm2, %zmm12
5570 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm6, %zmm29, %zmm12
5571 ; AVX512BW-ONLY-SLOW-NEXT:    vpermi2q %zmm5, %zmm21, %zmm29
5572 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm21, %zmm4, %zmm5
5573 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm21
5574 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm2, %zmm4, %zmm0
5575 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 384(%rdi), %zmm2
5576 ; AVX512BW-ONLY-SLOW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,5,6,9,0,5,6,9]
5577 ; AVX512BW-ONLY-SLOW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
5578 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
5579 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm2, %zmm4, %zmm5
5580 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5581 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 832(%rdi), %zmm5
5582 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
5583 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm5, %zmm4, %zmm6
5584 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5585 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 1280(%rdi), %zmm6
5586 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
5587 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm6, %zmm4, %zmm7
5588 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5589 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 1728(%rdi), %zmm7
5590 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
5591 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm7, %zmm4, %zmm19
5592 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5593 ; AVX512BW-ONLY-SLOW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,5,6,10,0,5,6,10]
5594 ; AVX512BW-ONLY-SLOW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
5595 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
5596 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm6, %zmm4, %zmm19
5597 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5598 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
5599 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm5, %zmm4, %zmm19
5600 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5601 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm2, %zmm4, %zmm18
5602 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm18, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5603 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm7, %zmm4, %zmm13
5604 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5605 ; AVX512BW-ONLY-SLOW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,5,6,11,0,5,6,11]
5606 ; AVX512BW-ONLY-SLOW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
5607 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm6, %zmm4, %zmm31
5608 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm5, %zmm4, %zmm17
5609 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5610 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm2, %zmm4, %zmm23
5611 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm23, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5612 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm7, %zmm4, %zmm26
5613 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm26, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5614 ; AVX512BW-ONLY-SLOW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,5,6,12,0,5,6,12]
5615 ; AVX512BW-ONLY-SLOW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
5616 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm6, %zmm4, %zmm27
5617 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm5, %zmm4, %zmm16
5618 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5619 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm2, %zmm4, %zmm24
5620 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm24, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5621 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm7, %zmm4, %zmm1
5622 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5623 ; AVX512BW-ONLY-SLOW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [4,5,6,13,4,5,6,13]
5624 ; AVX512BW-ONLY-SLOW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
5625 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm6, %zmm4, %zmm20
5626 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm5, %zmm4, %zmm15
5627 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5628 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm2, %zmm4, %zmm25
5629 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm25, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5630 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm7, %zmm4, %zmm28
5631 ; AVX512BW-ONLY-SLOW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [4,5,6,14,4,5,6,14]
5632 ; AVX512BW-ONLY-SLOW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
5633 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm6, %zmm4, %zmm12
5634 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm5, %zmm4, %zmm30
5635 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5636 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm2, %zmm4, %zmm9
5637 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5638 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm7, %zmm4, %zmm29
5639 ; AVX512BW-ONLY-SLOW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [4,5,8,15,4,5,8,15]
5640 ; AVX512BW-ONLY-SLOW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
5641 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm5, %zmm4, %zmm10
5642 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5643 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm2, %zmm4, %zmm8
5644 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5645 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm7, %zmm4, %zmm21
5646 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5647 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm6, %zmm4, %zmm0
5648 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5649 ; AVX512BW-ONLY-SLOW-NEXT:    movb $24, %al
5650 ; AVX512BW-ONLY-SLOW-NEXT:    kmovd %eax, %k1
5651 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 512(%rdi), %zmm2
5652 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 448(%rdi), %zmm15
5653 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 {{.*#+}} ymm21 = <0,7,14,u>
5654 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm15, %zmm24
5655 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm2, %zmm21, %zmm24
5656 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm11, %zmm0
5657 ; AVX512BW-ONLY-SLOW-NEXT:    vshufi64x2 {{.*#+}} zmm24 {%k1} = zmm14[4,5,4,5],zmm11[4,5,4,5]
5658 ; AVX512BW-ONLY-SLOW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm11 = [14,0,0,7,14,0,0,7]
5659 ; AVX512BW-ONLY-SLOW-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3]
5660 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm14, %zmm13
5661 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm0, %zmm11, %zmm13
5662 ; AVX512BW-ONLY-SLOW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm17 = [7,0,9,0,7,0,9,0]
5663 ; AVX512BW-ONLY-SLOW-NEXT:    # zmm17 = mem[0,1,2,3,0,1,2,3]
5664 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm0, %zmm26
5665 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm14, %zmm17, %zmm26
5666 ; AVX512BW-ONLY-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} ymm19 = [4,11,4,11]
5667 ; AVX512BW-ONLY-SLOW-NEXT:    # ymm19 = mem[0,1,2,3,0,1,2,3]
5668 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm0, %zmm19, %zmm14
5669 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5670 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 64(%rdi), %zmm4
5671 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 (%rdi), %zmm14
5672 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm14, %zmm18
5673 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm4, %zmm21, %zmm18
5674 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5675 ; AVX512BW-ONLY-SLOW-NEXT:    vshufi64x2 {{.*#+}} zmm18 {%k1} = zmm0[4,5,4,5],zmm22[4,5,4,5]
5676 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm0, %zmm23
5677 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm22, %zmm11, %zmm23
5678 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm22, %zmm30
5679 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm0, %zmm17, %zmm30
5680 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm22, %zmm19, %zmm0
5681 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5682 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 960(%rdi), %zmm7
5683 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 896(%rdi), %zmm10
5684 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm10, %zmm16
5685 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm7, %zmm21, %zmm16
5686 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 1408(%rdi), %zmm5
5687 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 1344(%rdi), %zmm8
5688 ; AVX512BW-ONLY-SLOW-NEXT:    vpermi2q %zmm5, %zmm8, %zmm21
5689 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
5690 ; AVX512BW-ONLY-SLOW-NEXT:    vshufi64x2 {{.*#+}} zmm21 {%k1} = zmm6[4,5,4,5],zmm3[4,5,4,5]
5691 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
5692 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm1, %zmm0
5693 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
5694 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm22, %zmm11, %zmm0
5695 ; AVX512BW-ONLY-SLOW-NEXT:    vpermi2q %zmm3, %zmm6, %zmm11
5696 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm22, %zmm25
5697 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm1, %zmm17, %zmm25
5698 ; AVX512BW-ONLY-SLOW-NEXT:    vpermi2q %zmm6, %zmm3, %zmm17
5699 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm3, %zmm19, %zmm6
5700 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5701 ; AVX512BW-ONLY-SLOW-NEXT:    vshufi64x2 {{.*#+}} zmm16 {%k1} = zmm1[4,5,4,5],zmm22[4,5,4,5]
5702 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm22, %zmm19, %zmm1
5703 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5704 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa 912(%rdi), %xmm1
5705 ; AVX512BW-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} xmm1 = xmm1[0,1],mem[2,3]
5706 ; AVX512BW-ONLY-SLOW-NEXT:    vinserti32x4 $0, %xmm1, %zmm0, %zmm0
5707 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5708 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa 464(%rdi), %xmm0
5709 ; AVX512BW-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
5710 ; AVX512BW-ONLY-SLOW-NEXT:    vinserti32x4 $0, %xmm0, %zmm13, %zmm0
5711 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5712 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa 16(%rdi), %xmm0
5713 ; AVX512BW-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
5714 ; AVX512BW-ONLY-SLOW-NEXT:    vinserti32x4 $0, %xmm0, %zmm23, %zmm23
5715 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa 1360(%rdi), %xmm0
5716 ; AVX512BW-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
5717 ; AVX512BW-ONLY-SLOW-NEXT:    vinserti32x4 $0, %xmm0, %zmm11, %zmm22
5718 ; AVX512BW-ONLY-SLOW-NEXT:    vinserti128 $1, 1088(%rdi), %ymm0, %ymm0
5719 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa 1024(%rdi), %ymm1
5720 ; AVX512BW-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
5721 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %ymm1, %ymm19
5722 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa {{.*#+}} xmm1 = [4,11]
5723 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm10, %zmm11
5724 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm7, %zmm1, %zmm11
5725 ; AVX512BW-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm11[0,1,2,3],ymm0[4,5,6,7]
5726 ; AVX512BW-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm0, %zmm20, %zmm0
5727 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5728 ; AVX512BW-ONLY-SLOW-NEXT:    vinserti128 $1, 640(%rdi), %ymm0, %ymm0
5729 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa 576(%rdi), %ymm3
5730 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5731 ; AVX512BW-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm0[6,7]
5732 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm15, %zmm3
5733 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm2, %zmm1, %zmm3
5734 ; AVX512BW-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm0[4,5,6,7]
5735 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
5736 ; AVX512BW-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm0, %zmm3, %zmm0
5737 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5738 ; AVX512BW-ONLY-SLOW-NEXT:    vinserti128 $1, 192(%rdi), %ymm0, %ymm0
5739 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa 128(%rdi), %ymm3
5740 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5741 ; AVX512BW-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm0[6,7]
5742 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm14, %zmm3
5743 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm4, %zmm1, %zmm3
5744 ; AVX512BW-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm0[4,5,6,7]
5745 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
5746 ; AVX512BW-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm0, %zmm3, %zmm0
5747 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5748 ; AVX512BW-ONLY-SLOW-NEXT:    vinserti128 $1, 1536(%rdi), %ymm0, %ymm0
5749 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa 1472(%rdi), %ymm3
5750 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5751 ; AVX512BW-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm0[6,7]
5752 ; AVX512BW-ONLY-SLOW-NEXT:    vpermi2q %zmm5, %zmm8, %zmm1
5753 ; AVX512BW-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
5754 ; AVX512BW-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm0, %zmm28, %zmm0
5755 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5756 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa {{.*#+}} ymm0 = <9,0,7,u>
5757 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm2, %zmm3
5758 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm15, %zmm0, %zmm3
5759 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa {{.*#+}} xmm1 = [5,12]
5760 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm15, %zmm13
5761 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm2, %zmm1, %zmm13
5762 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa {{.*#+}} xmm6 = [6,13]
5763 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm2, %zmm6, %zmm15
5764 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm2
5765 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm14, %zmm0, %zmm2
5766 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm14, %zmm11
5767 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm4, %zmm1, %zmm11
5768 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm4, %zmm6, %zmm14
5769 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm7, %zmm4
5770 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm10, %zmm0, %zmm4
5771 ; AVX512BW-ONLY-SLOW-NEXT:    vpermi2q %zmm8, %zmm5, %zmm0
5772 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm10, %zmm9
5773 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm7, %zmm1, %zmm9
5774 ; AVX512BW-ONLY-SLOW-NEXT:    vpermi2q %zmm5, %zmm8, %zmm1
5775 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm5, %zmm6, %zmm8
5776 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2q %zmm7, %zmm6, %zmm10
5777 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa 1088(%rdi), %ymm5
5778 ; AVX512BW-ONLY-SLOW-NEXT:    vpalignr {{.*#+}} ymm5 = ymm19[8,9,10,11,12,13,14,15],ymm5[0,1,2,3,4,5,6,7],ymm19[24,25,26,27,28,29,30,31],ymm5[16,17,18,19,20,21,22,23]
5779 ; AVX512BW-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} ymm5 = ymm9[0,1,2,3],ymm5[4,5,6,7]
5780 ; AVX512BW-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm5, %zmm12, %zmm28
5781 ; AVX512BW-ONLY-SLOW-NEXT:    movb $-32, %al
5782 ; AVX512BW-ONLY-SLOW-NEXT:    kmovd %eax, %k2
5783 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
5784 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm18 {%k2}
5785 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
5786 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm24 {%k2}
5787 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
5788 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm16 {%k2}
5789 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
5790 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm21 {%k2}
5791 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
5792 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm4 {%k1}
5793 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
5794 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm4 {%k2}
5795 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
5796 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm3 {%k1}
5797 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
5798 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm3 {%k2}
5799 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
5800 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm2 {%k1}
5801 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
5802 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm2 {%k2}
5803 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
5804 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm0 {%k1}
5805 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
5806 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm0 {%k2}
5807 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
5808 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm31, %zmm12 {%k2}
5809 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
5810 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
5811 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm19 {%k2}
5812 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
5813 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm23 {%k2}
5814 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
5815 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm22 {%k2}
5816 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa 960(%rdi), %ymm6
5817 ; AVX512BW-ONLY-SLOW-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]
5818 ; AVX512BW-ONLY-SLOW-NEXT:    vextracti128 $1, %ymm6, %xmm6
5819 ; AVX512BW-ONLY-SLOW-NEXT:    vinserti32x4 $0, %xmm6, %zmm25, %zmm6
5820 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm27, %zmm6 {%k2}
5821 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa 512(%rdi), %ymm7
5822 ; AVX512BW-ONLY-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]
5823 ; AVX512BW-ONLY-SLOW-NEXT:    vextracti128 $1, %ymm7, %xmm7
5824 ; AVX512BW-ONLY-SLOW-NEXT:    vinserti32x4 $0, %xmm7, %zmm26, %zmm7
5825 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
5826 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm7 {%k2}
5827 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa 64(%rdi), %ymm9
5828 ; AVX512BW-ONLY-SLOW-NEXT:    vpalignr {{.*#+}} 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]
5829 ; AVX512BW-ONLY-SLOW-NEXT:    vextracti128 $1, %ymm9, %xmm9
5830 ; AVX512BW-ONLY-SLOW-NEXT:    vinserti32x4 $0, %xmm9, %zmm30, %zmm9
5831 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
5832 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm9 {%k2}
5833 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 1408(%rdi), %ymm20
5834 ; AVX512BW-ONLY-SLOW-NEXT:    vpalignr {{.*#+}} ymm20 = mem[8,9,10,11,12,13,14,15],ymm20[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm20[16,17,18,19,20,21,22,23]
5835 ; AVX512BW-ONLY-SLOW-NEXT:    vextracti32x4 $1, %ymm20, %xmm20
5836 ; AVX512BW-ONLY-SLOW-NEXT:    vinserti32x4 $0, %xmm20, %zmm17, %zmm17
5837 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
5838 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm17 {%k2}
5839 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 640(%rdi), %ymm20
5840 ; AVX512BW-ONLY-SLOW-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm20, %ymm5 # 32-byte Folded Reload
5841 ; AVX512BW-ONLY-SLOW-NEXT:    # ymm5 = mem[8,9,10,11,12,13,14,15],ymm20[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm20[16,17,18,19,20,21,22,23]
5842 ; AVX512BW-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} ymm5 = ymm13[0,1,2,3],ymm5[4,5,6,7]
5843 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
5844 ; AVX512BW-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm5, %zmm13, %zmm5
5845 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa 192(%rdi), %ymm13
5846 ; AVX512BW-ONLY-SLOW-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm13 # 32-byte Folded Reload
5847 ; AVX512BW-ONLY-SLOW-NEXT:    # 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]
5848 ; AVX512BW-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} ymm11 = ymm11[0,1,2,3],ymm13[4,5,6,7]
5849 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
5850 ; AVX512BW-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm11, %zmm13, %zmm11
5851 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa 1536(%rdi), %ymm13
5852 ; AVX512BW-ONLY-SLOW-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm13 # 32-byte Folded Reload
5853 ; AVX512BW-ONLY-SLOW-NEXT:    # 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]
5854 ; AVX512BW-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm13[4,5,6,7]
5855 ; AVX512BW-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm1, %zmm29, %zmm1
5856 ; AVX512BW-ONLY-SLOW-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm13 # 32-byte Folded Reload
5857 ; AVX512BW-ONLY-SLOW-NEXT:    # ymm13 = ymm15[0,1,2,3],mem[4,5,6,7]
5858 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
5859 ; AVX512BW-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm13, %zmm15, %zmm13
5860 ; AVX512BW-ONLY-SLOW-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
5861 ; AVX512BW-ONLY-SLOW-NEXT:    # ymm14 = ymm14[0,1,2,3],mem[4,5,6,7]
5862 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
5863 ; AVX512BW-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm14, %zmm15, %zmm14
5864 ; AVX512BW-ONLY-SLOW-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
5865 ; AVX512BW-ONLY-SLOW-NEXT:    # ymm8 = ymm8[0,1,2,3],mem[4,5,6,7]
5866 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
5867 ; AVX512BW-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm8, %zmm15, %zmm8
5868 ; AVX512BW-ONLY-SLOW-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
5869 ; AVX512BW-ONLY-SLOW-NEXT:    # ymm10 = ymm10[0,1,2,3],mem[4,5,6,7]
5870 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
5871 ; AVX512BW-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm10, %zmm15, %zmm10
5872 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm21, 192(%rsi)
5873 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm16, 128(%rsi)
5874 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm24, 64(%rsi)
5875 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm18, (%rsi)
5876 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm0, 192(%rdx)
5877 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm2, (%rdx)
5878 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm3, 64(%rdx)
5879 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm4, 128(%rdx)
5880 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm22, 192(%rcx)
5881 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm23, (%rcx)
5882 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm19, 64(%rcx)
5883 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm12, 128(%rcx)
5884 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm17, 192(%r8)
5885 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm9, (%r8)
5886 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm7, 64(%r8)
5887 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm6, 128(%r8)
5888 ; AVX512BW-ONLY-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5889 ; AVX512BW-ONLY-SLOW-NEXT:    vmovaps %zmm0, 192(%r9)
5890 ; AVX512BW-ONLY-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5891 ; AVX512BW-ONLY-SLOW-NEXT:    vmovaps %zmm0, (%r9)
5892 ; AVX512BW-ONLY-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5893 ; AVX512BW-ONLY-SLOW-NEXT:    vmovaps %zmm0, 64(%r9)
5894 ; AVX512BW-ONLY-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5895 ; AVX512BW-ONLY-SLOW-NEXT:    vmovaps %zmm0, 128(%r9)
5896 ; AVX512BW-ONLY-SLOW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
5897 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm1, 192(%rax)
5898 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm11, (%rax)
5899 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm5, 64(%rax)
5900 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm28, 128(%rax)
5901 ; AVX512BW-ONLY-SLOW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
5902 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm10, 128(%rax)
5903 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm8, 192(%rax)
5904 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm14, (%rax)
5905 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm13, 64(%rax)
5906 ; AVX512BW-ONLY-SLOW-NEXT:    addq $2152, %rsp # imm = 0x868
5907 ; AVX512BW-ONLY-SLOW-NEXT:    vzeroupper
5908 ; AVX512BW-ONLY-SLOW-NEXT:    retq
5910 ; AVX512BW-ONLY-FAST-LABEL: load_i64_stride7_vf32:
5911 ; AVX512BW-ONLY-FAST:       # %bb.0:
5912 ; AVX512BW-ONLY-FAST-NEXT:    subq $2152, %rsp # imm = 0x868
5913 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 1664(%rdi), %zmm21
5914 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 1600(%rdi), %zmm31
5915 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 1216(%rdi), %zmm2
5916 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 1152(%rdi), %zmm6
5917 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 1088(%rdi), %zmm12
5918 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5919 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 1024(%rdi), %zmm3
5920 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5921 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 768(%rdi), %zmm1
5922 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 704(%rdi), %zmm10
5923 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 640(%rdi), %zmm11
5924 ; AVX512BW-ONLY-FAST-NEXT:    vmovaps 576(%rdi), %zmm0
5925 ; AVX512BW-ONLY-FAST-NEXT:    vmovups %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5926 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 320(%rdi), %zmm0
5927 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 256(%rdi), %zmm5
5928 ; AVX512BW-ONLY-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm7 = [10,3,10,3,10,3,10,3]
5929 ; AVX512BW-ONLY-FAST-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5930 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm5, %zmm8
5931 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm0, %zmm7, %zmm8
5932 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5933 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm10, %zmm8
5934 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm1, %zmm7, %zmm8
5935 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5936 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm6, %zmm8
5937 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm2, %zmm7, %zmm8
5938 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5939 ; AVX512BW-ONLY-FAST-NEXT:    vpermi2q %zmm21, %zmm31, %zmm7
5940 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5941 ; AVX512BW-ONLY-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm7 = [11,4,11,4,11,4,11,4]
5942 ; AVX512BW-ONLY-FAST-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5943 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm6, %zmm8
5944 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm2, %zmm7, %zmm8
5945 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5946 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm7, %zmm13
5947 ; AVX512BW-ONLY-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm7 = [13,6,13,6,13,6,13,6]
5948 ; AVX512BW-ONLY-FAST-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5949 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm10, %zmm8
5950 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm1, %zmm13, %zmm8
5951 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5952 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm5, %zmm8
5953 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm5, %zmm18
5954 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm0, %zmm13, %zmm18
5955 ; AVX512BW-ONLY-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm19 = [12,5,12,5,12,5,12,5]
5956 ; AVX512BW-ONLY-FAST-NEXT:    # zmm19 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5957 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm10, %zmm17
5958 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm1, %zmm19, %zmm17
5959 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm5, %zmm22
5960 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm0, %zmm19, %zmm22
5961 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm22, %zmm23
5962 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm10, %zmm16
5963 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm1, %zmm7, %zmm16
5964 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm5, %zmm22
5965 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm0, %zmm7, %zmm22
5966 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm22, %zmm24
5967 ; AVX512BW-ONLY-FAST-NEXT:    vbroadcasti64x4 {{.*#+}} zmm28 = [0,7,14,0,0,7,14,0]
5968 ; AVX512BW-ONLY-FAST-NEXT:    # zmm28 = mem[0,1,2,3,0,1,2,3]
5969 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm10, %zmm15
5970 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm1, %zmm28, %zmm15
5971 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm5, %zmm25
5972 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm0, %zmm28, %zmm25
5973 ; AVX512BW-ONLY-FAST-NEXT:    vbroadcasti64x4 {{.*#+}} zmm29 = [9,0,7,0,9,0,7,0]
5974 ; AVX512BW-ONLY-FAST-NEXT:    # zmm29 = mem[0,1,2,3,0,1,2,3]
5975 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm1, %zmm26
5976 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm10, %zmm29, %zmm26
5977 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm26, %zmm30
5978 ; AVX512BW-ONLY-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [2,9,2,9,2,9,2,9]
5979 ; AVX512BW-ONLY-FAST-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5980 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm1, %zmm4, %zmm10
5981 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm0, %zmm9
5982 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm8, %zmm29, %zmm9
5983 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm0, %zmm4, %zmm8
5984 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm7, %zmm1
5985 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm12, %zmm7, %zmm3
5986 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5987 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
5988 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm14, %zmm0
5989 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm11, %zmm7, %zmm0
5990 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5991 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 192(%rdi), %zmm22
5992 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 128(%rdi), %zmm0
5993 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5994 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm22, %zmm7, %zmm0
5995 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5996 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm31, %zmm5
5997 ; AVX512BW-ONLY-FAST-NEXT:    vpermi2q %zmm21, %zmm31, %zmm13
5998 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 1536(%rdi), %zmm3
5999 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 1472(%rdi), %zmm0
6000 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6001 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm3, %zmm7, %zmm0
6002 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6003 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm6, %zmm0
6004 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm6, %zmm31
6005 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm2, %zmm19, %zmm31
6006 ; AVX512BW-ONLY-FAST-NEXT:    vpermi2q %zmm21, %zmm5, %zmm19
6007 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm19, %zmm26
6008 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm6, %zmm27
6009 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm2, %zmm7, %zmm27
6010 ; AVX512BW-ONLY-FAST-NEXT:    vpermi2q %zmm21, %zmm5, %zmm1
6011 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm6, %zmm20
6012 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm2, %zmm28, %zmm20
6013 ; AVX512BW-ONLY-FAST-NEXT:    vpermi2q %zmm21, %zmm5, %zmm28
6014 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm2, %zmm12
6015 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm6, %zmm29, %zmm12
6016 ; AVX512BW-ONLY-FAST-NEXT:    vpermi2q %zmm5, %zmm21, %zmm29
6017 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm21, %zmm4, %zmm5
6018 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm5, %zmm21
6019 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm2, %zmm4, %zmm0
6020 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 384(%rdi), %zmm2
6021 ; AVX512BW-ONLY-FAST-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,5,6,9,0,5,6,9]
6022 ; AVX512BW-ONLY-FAST-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
6023 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
6024 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm2, %zmm4, %zmm5
6025 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6026 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 832(%rdi), %zmm5
6027 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
6028 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm5, %zmm4, %zmm6
6029 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6030 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 1280(%rdi), %zmm6
6031 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
6032 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm6, %zmm4, %zmm7
6033 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6034 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 1728(%rdi), %zmm7
6035 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
6036 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm7, %zmm4, %zmm19
6037 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6038 ; AVX512BW-ONLY-FAST-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,5,6,10,0,5,6,10]
6039 ; AVX512BW-ONLY-FAST-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
6040 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
6041 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm6, %zmm4, %zmm19
6042 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6043 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
6044 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm5, %zmm4, %zmm19
6045 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6046 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm2, %zmm4, %zmm18
6047 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm18, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6048 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm7, %zmm4, %zmm13
6049 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6050 ; AVX512BW-ONLY-FAST-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,5,6,11,0,5,6,11]
6051 ; AVX512BW-ONLY-FAST-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
6052 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm6, %zmm4, %zmm31
6053 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm5, %zmm4, %zmm17
6054 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6055 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm2, %zmm4, %zmm23
6056 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm23, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6057 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm7, %zmm4, %zmm26
6058 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm26, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6059 ; AVX512BW-ONLY-FAST-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,5,6,12,0,5,6,12]
6060 ; AVX512BW-ONLY-FAST-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
6061 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm6, %zmm4, %zmm27
6062 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm5, %zmm4, %zmm16
6063 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6064 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm2, %zmm4, %zmm24
6065 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm24, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6066 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm7, %zmm4, %zmm1
6067 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6068 ; AVX512BW-ONLY-FAST-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [4,5,6,13,4,5,6,13]
6069 ; AVX512BW-ONLY-FAST-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
6070 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm6, %zmm4, %zmm20
6071 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm5, %zmm4, %zmm15
6072 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6073 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm2, %zmm4, %zmm25
6074 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm25, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6075 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm7, %zmm4, %zmm28
6076 ; AVX512BW-ONLY-FAST-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [4,5,6,14,4,5,6,14]
6077 ; AVX512BW-ONLY-FAST-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
6078 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm6, %zmm4, %zmm12
6079 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm5, %zmm4, %zmm30
6080 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6081 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm2, %zmm4, %zmm9
6082 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6083 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm7, %zmm4, %zmm29
6084 ; AVX512BW-ONLY-FAST-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [4,5,8,15,4,5,8,15]
6085 ; AVX512BW-ONLY-FAST-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
6086 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm5, %zmm4, %zmm10
6087 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6088 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm2, %zmm4, %zmm8
6089 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6090 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm7, %zmm4, %zmm21
6091 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6092 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm6, %zmm4, %zmm0
6093 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6094 ; AVX512BW-ONLY-FAST-NEXT:    movb $24, %al
6095 ; AVX512BW-ONLY-FAST-NEXT:    kmovd %eax, %k1
6096 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 512(%rdi), %zmm2
6097 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 448(%rdi), %zmm15
6098 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 {{.*#+}} ymm21 = <0,7,14,u>
6099 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm15, %zmm24
6100 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm2, %zmm21, %zmm24
6101 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm11, %zmm0
6102 ; AVX512BW-ONLY-FAST-NEXT:    vshufi64x2 {{.*#+}} zmm24 {%k1} = zmm14[4,5,4,5],zmm11[4,5,4,5]
6103 ; AVX512BW-ONLY-FAST-NEXT:    vbroadcasti64x4 {{.*#+}} zmm11 = [14,0,0,7,14,0,0,7]
6104 ; AVX512BW-ONLY-FAST-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3]
6105 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm14, %zmm13
6106 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm0, %zmm11, %zmm13
6107 ; AVX512BW-ONLY-FAST-NEXT:    vbroadcasti64x4 {{.*#+}} zmm17 = [7,0,9,0,7,0,9,0]
6108 ; AVX512BW-ONLY-FAST-NEXT:    # zmm17 = mem[0,1,2,3,0,1,2,3]
6109 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm0, %zmm26
6110 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm14, %zmm17, %zmm26
6111 ; AVX512BW-ONLY-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} ymm19 = [4,11,4,11]
6112 ; AVX512BW-ONLY-FAST-NEXT:    # ymm19 = mem[0,1,2,3,0,1,2,3]
6113 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm0, %zmm19, %zmm14
6114 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6115 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 64(%rdi), %zmm4
6116 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 (%rdi), %zmm14
6117 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm14, %zmm18
6118 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm4, %zmm21, %zmm18
6119 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6120 ; AVX512BW-ONLY-FAST-NEXT:    vshufi64x2 {{.*#+}} zmm18 {%k1} = zmm0[4,5,4,5],zmm22[4,5,4,5]
6121 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm0, %zmm23
6122 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm22, %zmm11, %zmm23
6123 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm22, %zmm30
6124 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm0, %zmm17, %zmm30
6125 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm22, %zmm19, %zmm0
6126 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6127 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 960(%rdi), %zmm7
6128 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 896(%rdi), %zmm10
6129 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm10, %zmm16
6130 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm7, %zmm21, %zmm16
6131 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 1408(%rdi), %zmm5
6132 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 1344(%rdi), %zmm8
6133 ; AVX512BW-ONLY-FAST-NEXT:    vpermi2q %zmm5, %zmm8, %zmm21
6134 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
6135 ; AVX512BW-ONLY-FAST-NEXT:    vshufi64x2 {{.*#+}} zmm21 {%k1} = zmm6[4,5,4,5],zmm3[4,5,4,5]
6136 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
6137 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm1, %zmm0
6138 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
6139 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm22, %zmm11, %zmm0
6140 ; AVX512BW-ONLY-FAST-NEXT:    vpermi2q %zmm3, %zmm6, %zmm11
6141 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm22, %zmm25
6142 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm1, %zmm17, %zmm25
6143 ; AVX512BW-ONLY-FAST-NEXT:    vpermi2q %zmm6, %zmm3, %zmm17
6144 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm3, %zmm19, %zmm6
6145 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6146 ; AVX512BW-ONLY-FAST-NEXT:    vshufi64x2 {{.*#+}} zmm16 {%k1} = zmm1[4,5,4,5],zmm22[4,5,4,5]
6147 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm22, %zmm19, %zmm1
6148 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6149 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa 912(%rdi), %xmm1
6150 ; AVX512BW-ONLY-FAST-NEXT:    vpblendd {{.*#+}} xmm1 = xmm1[0,1],mem[2,3]
6151 ; AVX512BW-ONLY-FAST-NEXT:    vinserti32x4 $0, %xmm1, %zmm0, %zmm0
6152 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6153 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa 464(%rdi), %xmm0
6154 ; AVX512BW-ONLY-FAST-NEXT:    vpblendd {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
6155 ; AVX512BW-ONLY-FAST-NEXT:    vinserti32x4 $0, %xmm0, %zmm13, %zmm0
6156 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6157 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa 16(%rdi), %xmm0
6158 ; AVX512BW-ONLY-FAST-NEXT:    vpblendd {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
6159 ; AVX512BW-ONLY-FAST-NEXT:    vinserti32x4 $0, %xmm0, %zmm23, %zmm23
6160 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa 1360(%rdi), %xmm0
6161 ; AVX512BW-ONLY-FAST-NEXT:    vpblendd {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
6162 ; AVX512BW-ONLY-FAST-NEXT:    vinserti32x4 $0, %xmm0, %zmm11, %zmm22
6163 ; AVX512BW-ONLY-FAST-NEXT:    vinserti128 $1, 1088(%rdi), %ymm0, %ymm0
6164 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa 1024(%rdi), %ymm1
6165 ; AVX512BW-ONLY-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
6166 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %ymm1, %ymm19
6167 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa {{.*#+}} xmm1 = [4,11]
6168 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm10, %zmm11
6169 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm7, %zmm1, %zmm11
6170 ; AVX512BW-ONLY-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm11[0,1,2,3],ymm0[4,5,6,7]
6171 ; AVX512BW-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm0, %zmm20, %zmm0
6172 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6173 ; AVX512BW-ONLY-FAST-NEXT:    vinserti128 $1, 640(%rdi), %ymm0, %ymm0
6174 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa 576(%rdi), %ymm3
6175 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6176 ; AVX512BW-ONLY-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm0[6,7]
6177 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm15, %zmm3
6178 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm2, %zmm1, %zmm3
6179 ; AVX512BW-ONLY-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm0[4,5,6,7]
6180 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
6181 ; AVX512BW-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm0, %zmm3, %zmm0
6182 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6183 ; AVX512BW-ONLY-FAST-NEXT:    vinserti128 $1, 192(%rdi), %ymm0, %ymm0
6184 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa 128(%rdi), %ymm3
6185 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6186 ; AVX512BW-ONLY-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm0[6,7]
6187 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm14, %zmm3
6188 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm4, %zmm1, %zmm3
6189 ; AVX512BW-ONLY-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm0[4,5,6,7]
6190 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
6191 ; AVX512BW-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm0, %zmm3, %zmm0
6192 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6193 ; AVX512BW-ONLY-FAST-NEXT:    vinserti128 $1, 1536(%rdi), %ymm0, %ymm0
6194 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa 1472(%rdi), %ymm3
6195 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6196 ; AVX512BW-ONLY-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm0[6,7]
6197 ; AVX512BW-ONLY-FAST-NEXT:    vpermi2q %zmm5, %zmm8, %zmm1
6198 ; AVX512BW-ONLY-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
6199 ; AVX512BW-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm0, %zmm28, %zmm0
6200 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6201 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa {{.*#+}} ymm0 = <9,0,7,u>
6202 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm2, %zmm3
6203 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm15, %zmm0, %zmm3
6204 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa {{.*#+}} xmm1 = [5,12]
6205 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm15, %zmm13
6206 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm2, %zmm1, %zmm13
6207 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa {{.*#+}} xmm6 = [6,13]
6208 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm2, %zmm6, %zmm15
6209 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm4, %zmm2
6210 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm14, %zmm0, %zmm2
6211 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm14, %zmm11
6212 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm4, %zmm1, %zmm11
6213 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm4, %zmm6, %zmm14
6214 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm7, %zmm4
6215 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm10, %zmm0, %zmm4
6216 ; AVX512BW-ONLY-FAST-NEXT:    vpermi2q %zmm8, %zmm5, %zmm0
6217 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm10, %zmm9
6218 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm7, %zmm1, %zmm9
6219 ; AVX512BW-ONLY-FAST-NEXT:    vpermi2q %zmm5, %zmm8, %zmm1
6220 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm5, %zmm6, %zmm8
6221 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2q %zmm7, %zmm6, %zmm10
6222 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa 1088(%rdi), %ymm5
6223 ; AVX512BW-ONLY-FAST-NEXT:    vpalignr {{.*#+}} ymm5 = ymm19[8,9,10,11,12,13,14,15],ymm5[0,1,2,3,4,5,6,7],ymm19[24,25,26,27,28,29,30,31],ymm5[16,17,18,19,20,21,22,23]
6224 ; AVX512BW-ONLY-FAST-NEXT:    vpblendd {{.*#+}} ymm5 = ymm9[0,1,2,3],ymm5[4,5,6,7]
6225 ; AVX512BW-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm5, %zmm12, %zmm28
6226 ; AVX512BW-ONLY-FAST-NEXT:    movb $-32, %al
6227 ; AVX512BW-ONLY-FAST-NEXT:    kmovd %eax, %k2
6228 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
6229 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm5, %zmm18 {%k2}
6230 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
6231 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm5, %zmm24 {%k2}
6232 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
6233 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm5, %zmm16 {%k2}
6234 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
6235 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm5, %zmm21 {%k2}
6236 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
6237 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm5, %zmm4 {%k1}
6238 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
6239 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm5, %zmm4 {%k2}
6240 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
6241 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm5, %zmm3 {%k1}
6242 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
6243 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm5, %zmm3 {%k2}
6244 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
6245 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm5, %zmm2 {%k1}
6246 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
6247 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm5, %zmm2 {%k2}
6248 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
6249 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm5, %zmm0 {%k1}
6250 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
6251 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm5, %zmm0 {%k2}
6252 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
6253 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm31, %zmm12 {%k2}
6254 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
6255 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
6256 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm5, %zmm19 {%k2}
6257 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
6258 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm5, %zmm23 {%k2}
6259 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
6260 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm5, %zmm22 {%k2}
6261 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa 960(%rdi), %ymm6
6262 ; AVX512BW-ONLY-FAST-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]
6263 ; AVX512BW-ONLY-FAST-NEXT:    vextracti128 $1, %ymm6, %xmm6
6264 ; AVX512BW-ONLY-FAST-NEXT:    vinserti32x4 $0, %xmm6, %zmm25, %zmm6
6265 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm27, %zmm6 {%k2}
6266 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa 512(%rdi), %ymm7
6267 ; AVX512BW-ONLY-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]
6268 ; AVX512BW-ONLY-FAST-NEXT:    vextracti128 $1, %ymm7, %xmm7
6269 ; AVX512BW-ONLY-FAST-NEXT:    vinserti32x4 $0, %xmm7, %zmm26, %zmm7
6270 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
6271 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm5, %zmm7 {%k2}
6272 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa 64(%rdi), %ymm9
6273 ; AVX512BW-ONLY-FAST-NEXT:    vpalignr {{.*#+}} 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]
6274 ; AVX512BW-ONLY-FAST-NEXT:    vextracti128 $1, %ymm9, %xmm9
6275 ; AVX512BW-ONLY-FAST-NEXT:    vinserti32x4 $0, %xmm9, %zmm30, %zmm9
6276 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
6277 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm5, %zmm9 {%k2}
6278 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 1408(%rdi), %ymm20
6279 ; AVX512BW-ONLY-FAST-NEXT:    vpalignr {{.*#+}} ymm20 = mem[8,9,10,11,12,13,14,15],ymm20[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm20[16,17,18,19,20,21,22,23]
6280 ; AVX512BW-ONLY-FAST-NEXT:    vextracti32x4 $1, %ymm20, %xmm20
6281 ; AVX512BW-ONLY-FAST-NEXT:    vinserti32x4 $0, %xmm20, %zmm17, %zmm17
6282 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
6283 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm5, %zmm17 {%k2}
6284 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 640(%rdi), %ymm20
6285 ; AVX512BW-ONLY-FAST-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm20, %ymm5 # 32-byte Folded Reload
6286 ; AVX512BW-ONLY-FAST-NEXT:    # ymm5 = mem[8,9,10,11,12,13,14,15],ymm20[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm20[16,17,18,19,20,21,22,23]
6287 ; AVX512BW-ONLY-FAST-NEXT:    vpblendd {{.*#+}} ymm5 = ymm13[0,1,2,3],ymm5[4,5,6,7]
6288 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
6289 ; AVX512BW-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm5, %zmm13, %zmm5
6290 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa 192(%rdi), %ymm13
6291 ; AVX512BW-ONLY-FAST-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm13 # 32-byte Folded Reload
6292 ; AVX512BW-ONLY-FAST-NEXT:    # 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]
6293 ; AVX512BW-ONLY-FAST-NEXT:    vpblendd {{.*#+}} ymm11 = ymm11[0,1,2,3],ymm13[4,5,6,7]
6294 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
6295 ; AVX512BW-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm11, %zmm13, %zmm11
6296 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa 1536(%rdi), %ymm13
6297 ; AVX512BW-ONLY-FAST-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm13 # 32-byte Folded Reload
6298 ; AVX512BW-ONLY-FAST-NEXT:    # 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]
6299 ; AVX512BW-ONLY-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm13[4,5,6,7]
6300 ; AVX512BW-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm1, %zmm29, %zmm1
6301 ; AVX512BW-ONLY-FAST-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm13 # 32-byte Folded Reload
6302 ; AVX512BW-ONLY-FAST-NEXT:    # ymm13 = ymm15[0,1,2,3],mem[4,5,6,7]
6303 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
6304 ; AVX512BW-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm13, %zmm15, %zmm13
6305 ; AVX512BW-ONLY-FAST-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
6306 ; AVX512BW-ONLY-FAST-NEXT:    # ymm14 = ymm14[0,1,2,3],mem[4,5,6,7]
6307 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
6308 ; AVX512BW-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm14, %zmm15, %zmm14
6309 ; AVX512BW-ONLY-FAST-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
6310 ; AVX512BW-ONLY-FAST-NEXT:    # ymm8 = ymm8[0,1,2,3],mem[4,5,6,7]
6311 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
6312 ; AVX512BW-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm8, %zmm15, %zmm8
6313 ; AVX512BW-ONLY-FAST-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
6314 ; AVX512BW-ONLY-FAST-NEXT:    # ymm10 = ymm10[0,1,2,3],mem[4,5,6,7]
6315 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
6316 ; AVX512BW-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm10, %zmm15, %zmm10
6317 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm21, 192(%rsi)
6318 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm16, 128(%rsi)
6319 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm24, 64(%rsi)
6320 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm18, (%rsi)
6321 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm0, 192(%rdx)
6322 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm2, (%rdx)
6323 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm3, 64(%rdx)
6324 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm4, 128(%rdx)
6325 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm22, 192(%rcx)
6326 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm23, (%rcx)
6327 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm19, 64(%rcx)
6328 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm12, 128(%rcx)
6329 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm17, 192(%r8)
6330 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm9, (%r8)
6331 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm7, 64(%r8)
6332 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm6, 128(%r8)
6333 ; AVX512BW-ONLY-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6334 ; AVX512BW-ONLY-FAST-NEXT:    vmovaps %zmm0, 192(%r9)
6335 ; AVX512BW-ONLY-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6336 ; AVX512BW-ONLY-FAST-NEXT:    vmovaps %zmm0, (%r9)
6337 ; AVX512BW-ONLY-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6338 ; AVX512BW-ONLY-FAST-NEXT:    vmovaps %zmm0, 64(%r9)
6339 ; AVX512BW-ONLY-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6340 ; AVX512BW-ONLY-FAST-NEXT:    vmovaps %zmm0, 128(%r9)
6341 ; AVX512BW-ONLY-FAST-NEXT:    movq {{[0-9]+}}(%rsp), %rax
6342 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm1, 192(%rax)
6343 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm11, (%rax)
6344 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm5, 64(%rax)
6345 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm28, 128(%rax)
6346 ; AVX512BW-ONLY-FAST-NEXT:    movq {{[0-9]+}}(%rsp), %rax
6347 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm10, 128(%rax)
6348 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm8, 192(%rax)
6349 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm14, (%rax)
6350 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm13, 64(%rax)
6351 ; AVX512BW-ONLY-FAST-NEXT:    addq $2152, %rsp # imm = 0x868
6352 ; AVX512BW-ONLY-FAST-NEXT:    vzeroupper
6353 ; AVX512BW-ONLY-FAST-NEXT:    retq
6355 ; AVX512DQBW-SLOW-LABEL: load_i64_stride7_vf32:
6356 ; AVX512DQBW-SLOW:       # %bb.0:
6357 ; AVX512DQBW-SLOW-NEXT:    subq $2152, %rsp # imm = 0x868
6358 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 1664(%rdi), %zmm21
6359 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 1600(%rdi), %zmm31
6360 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 1216(%rdi), %zmm2
6361 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 1152(%rdi), %zmm6
6362 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 1088(%rdi), %zmm12
6363 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6364 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 1024(%rdi), %zmm3
6365 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6366 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 768(%rdi), %zmm1
6367 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 704(%rdi), %zmm10
6368 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 640(%rdi), %zmm11
6369 ; AVX512DQBW-SLOW-NEXT:    vmovaps 576(%rdi), %zmm0
6370 ; AVX512DQBW-SLOW-NEXT:    vmovups %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6371 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 320(%rdi), %zmm0
6372 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 256(%rdi), %zmm5
6373 ; AVX512DQBW-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm7 = [10,3,10,3,10,3,10,3]
6374 ; AVX512DQBW-SLOW-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
6375 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm8
6376 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm0, %zmm7, %zmm8
6377 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6378 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm10, %zmm8
6379 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm1, %zmm7, %zmm8
6380 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6381 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm6, %zmm8
6382 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm2, %zmm7, %zmm8
6383 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6384 ; AVX512DQBW-SLOW-NEXT:    vpermi2q %zmm21, %zmm31, %zmm7
6385 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6386 ; AVX512DQBW-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm7 = [11,4,11,4,11,4,11,4]
6387 ; AVX512DQBW-SLOW-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
6388 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm6, %zmm8
6389 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm2, %zmm7, %zmm8
6390 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6391 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm7, %zmm13
6392 ; AVX512DQBW-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm7 = [13,6,13,6,13,6,13,6]
6393 ; AVX512DQBW-SLOW-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
6394 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm10, %zmm8
6395 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm1, %zmm13, %zmm8
6396 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6397 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm8
6398 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm18
6399 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm0, %zmm13, %zmm18
6400 ; AVX512DQBW-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm19 = [12,5,12,5,12,5,12,5]
6401 ; AVX512DQBW-SLOW-NEXT:    # zmm19 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
6402 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm10, %zmm17
6403 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm1, %zmm19, %zmm17
6404 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm22
6405 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm0, %zmm19, %zmm22
6406 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm22, %zmm23
6407 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm10, %zmm16
6408 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm1, %zmm7, %zmm16
6409 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm22
6410 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm0, %zmm7, %zmm22
6411 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm22, %zmm24
6412 ; AVX512DQBW-SLOW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm28 = [0,7,14,0,0,7,14,0]
6413 ; AVX512DQBW-SLOW-NEXT:    # zmm28 = mem[0,1,2,3,0,1,2,3]
6414 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm10, %zmm15
6415 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm1, %zmm28, %zmm15
6416 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm25
6417 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm0, %zmm28, %zmm25
6418 ; AVX512DQBW-SLOW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm29 = [9,0,7,0,9,0,7,0]
6419 ; AVX512DQBW-SLOW-NEXT:    # zmm29 = mem[0,1,2,3,0,1,2,3]
6420 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm1, %zmm26
6421 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm10, %zmm29, %zmm26
6422 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm26, %zmm30
6423 ; AVX512DQBW-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [2,9,2,9,2,9,2,9]
6424 ; AVX512DQBW-SLOW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
6425 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm1, %zmm4, %zmm10
6426 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm0, %zmm9
6427 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm8, %zmm29, %zmm9
6428 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm0, %zmm4, %zmm8
6429 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm7, %zmm1
6430 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm12, %zmm7, %zmm3
6431 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6432 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
6433 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm14, %zmm0
6434 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm11, %zmm7, %zmm0
6435 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6436 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 192(%rdi), %zmm22
6437 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 128(%rdi), %zmm0
6438 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6439 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm22, %zmm7, %zmm0
6440 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6441 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm31, %zmm5
6442 ; AVX512DQBW-SLOW-NEXT:    vpermi2q %zmm21, %zmm31, %zmm13
6443 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 1536(%rdi), %zmm3
6444 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 1472(%rdi), %zmm0
6445 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6446 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm3, %zmm7, %zmm0
6447 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6448 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm6, %zmm0
6449 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm6, %zmm31
6450 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm2, %zmm19, %zmm31
6451 ; AVX512DQBW-SLOW-NEXT:    vpermi2q %zmm21, %zmm5, %zmm19
6452 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm19, %zmm26
6453 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm6, %zmm27
6454 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm2, %zmm7, %zmm27
6455 ; AVX512DQBW-SLOW-NEXT:    vpermi2q %zmm21, %zmm5, %zmm1
6456 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm6, %zmm20
6457 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm2, %zmm28, %zmm20
6458 ; AVX512DQBW-SLOW-NEXT:    vpermi2q %zmm21, %zmm5, %zmm28
6459 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm2, %zmm12
6460 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm6, %zmm29, %zmm12
6461 ; AVX512DQBW-SLOW-NEXT:    vpermi2q %zmm5, %zmm21, %zmm29
6462 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm21, %zmm4, %zmm5
6463 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm21
6464 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm2, %zmm4, %zmm0
6465 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 384(%rdi), %zmm2
6466 ; AVX512DQBW-SLOW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,5,6,9,0,5,6,9]
6467 ; AVX512DQBW-SLOW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
6468 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
6469 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm2, %zmm4, %zmm5
6470 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6471 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 832(%rdi), %zmm5
6472 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
6473 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm5, %zmm4, %zmm6
6474 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6475 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 1280(%rdi), %zmm6
6476 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
6477 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm6, %zmm4, %zmm7
6478 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6479 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 1728(%rdi), %zmm7
6480 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
6481 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm7, %zmm4, %zmm19
6482 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6483 ; AVX512DQBW-SLOW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,5,6,10,0,5,6,10]
6484 ; AVX512DQBW-SLOW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
6485 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
6486 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm6, %zmm4, %zmm19
6487 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6488 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
6489 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm5, %zmm4, %zmm19
6490 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6491 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm2, %zmm4, %zmm18
6492 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm18, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6493 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm7, %zmm4, %zmm13
6494 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6495 ; AVX512DQBW-SLOW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,5,6,11,0,5,6,11]
6496 ; AVX512DQBW-SLOW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
6497 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm6, %zmm4, %zmm31
6498 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm5, %zmm4, %zmm17
6499 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6500 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm2, %zmm4, %zmm23
6501 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm23, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6502 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm7, %zmm4, %zmm26
6503 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm26, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6504 ; AVX512DQBW-SLOW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,5,6,12,0,5,6,12]
6505 ; AVX512DQBW-SLOW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
6506 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm6, %zmm4, %zmm27
6507 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm5, %zmm4, %zmm16
6508 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6509 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm2, %zmm4, %zmm24
6510 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm24, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6511 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm7, %zmm4, %zmm1
6512 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6513 ; AVX512DQBW-SLOW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [4,5,6,13,4,5,6,13]
6514 ; AVX512DQBW-SLOW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
6515 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm6, %zmm4, %zmm20
6516 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm5, %zmm4, %zmm15
6517 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6518 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm2, %zmm4, %zmm25
6519 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm25, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6520 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm7, %zmm4, %zmm28
6521 ; AVX512DQBW-SLOW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [4,5,6,14,4,5,6,14]
6522 ; AVX512DQBW-SLOW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
6523 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm6, %zmm4, %zmm12
6524 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm5, %zmm4, %zmm30
6525 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6526 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm2, %zmm4, %zmm9
6527 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6528 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm7, %zmm4, %zmm29
6529 ; AVX512DQBW-SLOW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [4,5,8,15,4,5,8,15]
6530 ; AVX512DQBW-SLOW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
6531 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm5, %zmm4, %zmm10
6532 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6533 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm2, %zmm4, %zmm8
6534 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6535 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm7, %zmm4, %zmm21
6536 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6537 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm6, %zmm4, %zmm0
6538 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6539 ; AVX512DQBW-SLOW-NEXT:    movb $24, %al
6540 ; AVX512DQBW-SLOW-NEXT:    kmovd %eax, %k1
6541 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 512(%rdi), %zmm2
6542 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 448(%rdi), %zmm15
6543 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 {{.*#+}} ymm21 = <0,7,14,u>
6544 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm15, %zmm24
6545 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm2, %zmm21, %zmm24
6546 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm11, %zmm0
6547 ; AVX512DQBW-SLOW-NEXT:    vshufi64x2 {{.*#+}} zmm24 {%k1} = zmm14[4,5,4,5],zmm11[4,5,4,5]
6548 ; AVX512DQBW-SLOW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm11 = [14,0,0,7,14,0,0,7]
6549 ; AVX512DQBW-SLOW-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3]
6550 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm14, %zmm13
6551 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm0, %zmm11, %zmm13
6552 ; AVX512DQBW-SLOW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm17 = [7,0,9,0,7,0,9,0]
6553 ; AVX512DQBW-SLOW-NEXT:    # zmm17 = mem[0,1,2,3,0,1,2,3]
6554 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm0, %zmm26
6555 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm14, %zmm17, %zmm26
6556 ; AVX512DQBW-SLOW-NEXT:    vbroadcasti64x2 {{.*#+}} ymm19 = [4,11,4,11]
6557 ; AVX512DQBW-SLOW-NEXT:    # ymm19 = mem[0,1,0,1]
6558 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm0, %zmm19, %zmm14
6559 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6560 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 64(%rdi), %zmm4
6561 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 (%rdi), %zmm14
6562 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm14, %zmm18
6563 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm4, %zmm21, %zmm18
6564 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6565 ; AVX512DQBW-SLOW-NEXT:    vshufi64x2 {{.*#+}} zmm18 {%k1} = zmm0[4,5,4,5],zmm22[4,5,4,5]
6566 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm0, %zmm23
6567 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm22, %zmm11, %zmm23
6568 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm22, %zmm30
6569 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm0, %zmm17, %zmm30
6570 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm22, %zmm19, %zmm0
6571 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6572 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 960(%rdi), %zmm7
6573 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 896(%rdi), %zmm10
6574 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm10, %zmm16
6575 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm7, %zmm21, %zmm16
6576 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 1408(%rdi), %zmm5
6577 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 1344(%rdi), %zmm8
6578 ; AVX512DQBW-SLOW-NEXT:    vpermi2q %zmm5, %zmm8, %zmm21
6579 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
6580 ; AVX512DQBW-SLOW-NEXT:    vshufi64x2 {{.*#+}} zmm21 {%k1} = zmm6[4,5,4,5],zmm3[4,5,4,5]
6581 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
6582 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm1, %zmm0
6583 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
6584 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm22, %zmm11, %zmm0
6585 ; AVX512DQBW-SLOW-NEXT:    vpermi2q %zmm3, %zmm6, %zmm11
6586 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm22, %zmm25
6587 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm1, %zmm17, %zmm25
6588 ; AVX512DQBW-SLOW-NEXT:    vpermi2q %zmm6, %zmm3, %zmm17
6589 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm3, %zmm19, %zmm6
6590 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6591 ; AVX512DQBW-SLOW-NEXT:    vshufi64x2 {{.*#+}} zmm16 {%k1} = zmm1[4,5,4,5],zmm22[4,5,4,5]
6592 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm22, %zmm19, %zmm1
6593 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6594 ; AVX512DQBW-SLOW-NEXT:    vmovdqa 912(%rdi), %xmm1
6595 ; AVX512DQBW-SLOW-NEXT:    vpblendd {{.*#+}} xmm1 = xmm1[0,1],mem[2,3]
6596 ; AVX512DQBW-SLOW-NEXT:    vinserti32x4 $0, %xmm1, %zmm0, %zmm0
6597 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6598 ; AVX512DQBW-SLOW-NEXT:    vmovdqa 464(%rdi), %xmm0
6599 ; AVX512DQBW-SLOW-NEXT:    vpblendd {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
6600 ; AVX512DQBW-SLOW-NEXT:    vinserti32x4 $0, %xmm0, %zmm13, %zmm0
6601 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6602 ; AVX512DQBW-SLOW-NEXT:    vmovdqa 16(%rdi), %xmm0
6603 ; AVX512DQBW-SLOW-NEXT:    vpblendd {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
6604 ; AVX512DQBW-SLOW-NEXT:    vinserti32x4 $0, %xmm0, %zmm23, %zmm23
6605 ; AVX512DQBW-SLOW-NEXT:    vmovdqa 1360(%rdi), %xmm0
6606 ; AVX512DQBW-SLOW-NEXT:    vpblendd {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
6607 ; AVX512DQBW-SLOW-NEXT:    vinserti32x4 $0, %xmm0, %zmm11, %zmm22
6608 ; AVX512DQBW-SLOW-NEXT:    vinserti128 $1, 1088(%rdi), %ymm0, %ymm0
6609 ; AVX512DQBW-SLOW-NEXT:    vmovdqa 1024(%rdi), %ymm1
6610 ; AVX512DQBW-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
6611 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %ymm1, %ymm19
6612 ; AVX512DQBW-SLOW-NEXT:    vmovdqa {{.*#+}} xmm1 = [4,11]
6613 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm10, %zmm11
6614 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm7, %zmm1, %zmm11
6615 ; AVX512DQBW-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm11[0,1,2,3],ymm0[4,5,6,7]
6616 ; AVX512DQBW-SLOW-NEXT:    vinserti64x4 $0, %ymm0, %zmm20, %zmm0
6617 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6618 ; AVX512DQBW-SLOW-NEXT:    vinserti128 $1, 640(%rdi), %ymm0, %ymm0
6619 ; AVX512DQBW-SLOW-NEXT:    vmovdqa 576(%rdi), %ymm3
6620 ; AVX512DQBW-SLOW-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6621 ; AVX512DQBW-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm0[6,7]
6622 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm15, %zmm3
6623 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm2, %zmm1, %zmm3
6624 ; AVX512DQBW-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm0[4,5,6,7]
6625 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
6626 ; AVX512DQBW-SLOW-NEXT:    vinserti64x4 $0, %ymm0, %zmm3, %zmm0
6627 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6628 ; AVX512DQBW-SLOW-NEXT:    vinserti128 $1, 192(%rdi), %ymm0, %ymm0
6629 ; AVX512DQBW-SLOW-NEXT:    vmovdqa 128(%rdi), %ymm3
6630 ; AVX512DQBW-SLOW-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6631 ; AVX512DQBW-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm0[6,7]
6632 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm14, %zmm3
6633 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm4, %zmm1, %zmm3
6634 ; AVX512DQBW-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm0[4,5,6,7]
6635 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
6636 ; AVX512DQBW-SLOW-NEXT:    vinserti64x4 $0, %ymm0, %zmm3, %zmm0
6637 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6638 ; AVX512DQBW-SLOW-NEXT:    vinserti128 $1, 1536(%rdi), %ymm0, %ymm0
6639 ; AVX512DQBW-SLOW-NEXT:    vmovdqa 1472(%rdi), %ymm3
6640 ; AVX512DQBW-SLOW-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6641 ; AVX512DQBW-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm0[6,7]
6642 ; AVX512DQBW-SLOW-NEXT:    vpermi2q %zmm5, %zmm8, %zmm1
6643 ; AVX512DQBW-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
6644 ; AVX512DQBW-SLOW-NEXT:    vinserti64x4 $0, %ymm0, %zmm28, %zmm0
6645 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6646 ; AVX512DQBW-SLOW-NEXT:    vmovdqa {{.*#+}} ymm0 = <9,0,7,u>
6647 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm2, %zmm3
6648 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm15, %zmm0, %zmm3
6649 ; AVX512DQBW-SLOW-NEXT:    vmovdqa {{.*#+}} xmm1 = [5,12]
6650 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm15, %zmm13
6651 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm2, %zmm1, %zmm13
6652 ; AVX512DQBW-SLOW-NEXT:    vmovdqa {{.*#+}} xmm6 = [6,13]
6653 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm2, %zmm6, %zmm15
6654 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm2
6655 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm14, %zmm0, %zmm2
6656 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm14, %zmm11
6657 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm4, %zmm1, %zmm11
6658 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm4, %zmm6, %zmm14
6659 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm7, %zmm4
6660 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm10, %zmm0, %zmm4
6661 ; AVX512DQBW-SLOW-NEXT:    vpermi2q %zmm8, %zmm5, %zmm0
6662 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm10, %zmm9
6663 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm7, %zmm1, %zmm9
6664 ; AVX512DQBW-SLOW-NEXT:    vpermi2q %zmm5, %zmm8, %zmm1
6665 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm5, %zmm6, %zmm8
6666 ; AVX512DQBW-SLOW-NEXT:    vpermt2q %zmm7, %zmm6, %zmm10
6667 ; AVX512DQBW-SLOW-NEXT:    vmovdqa 1088(%rdi), %ymm5
6668 ; AVX512DQBW-SLOW-NEXT:    vpalignr {{.*#+}} ymm5 = ymm19[8,9,10,11,12,13,14,15],ymm5[0,1,2,3,4,5,6,7],ymm19[24,25,26,27,28,29,30,31],ymm5[16,17,18,19,20,21,22,23]
6669 ; AVX512DQBW-SLOW-NEXT:    vpblendd {{.*#+}} ymm5 = ymm9[0,1,2,3],ymm5[4,5,6,7]
6670 ; AVX512DQBW-SLOW-NEXT:    vinserti64x4 $0, %ymm5, %zmm12, %zmm28
6671 ; AVX512DQBW-SLOW-NEXT:    movb $-32, %al
6672 ; AVX512DQBW-SLOW-NEXT:    kmovd %eax, %k2
6673 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
6674 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm18 {%k2}
6675 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
6676 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm24 {%k2}
6677 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
6678 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm16 {%k2}
6679 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
6680 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm21 {%k2}
6681 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
6682 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm4 {%k1}
6683 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
6684 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm4 {%k2}
6685 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
6686 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm3 {%k1}
6687 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
6688 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm3 {%k2}
6689 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
6690 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm2 {%k1}
6691 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
6692 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm2 {%k2}
6693 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
6694 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm0 {%k1}
6695 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
6696 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm0 {%k2}
6697 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
6698 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm31, %zmm12 {%k2}
6699 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
6700 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
6701 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm19 {%k2}
6702 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
6703 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm23 {%k2}
6704 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
6705 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm22 {%k2}
6706 ; AVX512DQBW-SLOW-NEXT:    vmovdqa 960(%rdi), %ymm6
6707 ; AVX512DQBW-SLOW-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]
6708 ; AVX512DQBW-SLOW-NEXT:    vextracti128 $1, %ymm6, %xmm6
6709 ; AVX512DQBW-SLOW-NEXT:    vinserti32x4 $0, %xmm6, %zmm25, %zmm6
6710 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm27, %zmm6 {%k2}
6711 ; AVX512DQBW-SLOW-NEXT:    vmovdqa 512(%rdi), %ymm7
6712 ; AVX512DQBW-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]
6713 ; AVX512DQBW-SLOW-NEXT:    vextracti128 $1, %ymm7, %xmm7
6714 ; AVX512DQBW-SLOW-NEXT:    vinserti32x4 $0, %xmm7, %zmm26, %zmm7
6715 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
6716 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm7 {%k2}
6717 ; AVX512DQBW-SLOW-NEXT:    vmovdqa 64(%rdi), %ymm9
6718 ; AVX512DQBW-SLOW-NEXT:    vpalignr {{.*#+}} 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]
6719 ; AVX512DQBW-SLOW-NEXT:    vextracti128 $1, %ymm9, %xmm9
6720 ; AVX512DQBW-SLOW-NEXT:    vinserti32x4 $0, %xmm9, %zmm30, %zmm9
6721 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
6722 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm9 {%k2}
6723 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 1408(%rdi), %ymm20
6724 ; AVX512DQBW-SLOW-NEXT:    vpalignr {{.*#+}} ymm20 = mem[8,9,10,11,12,13,14,15],ymm20[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm20[16,17,18,19,20,21,22,23]
6725 ; AVX512DQBW-SLOW-NEXT:    vextracti32x4 $1, %ymm20, %xmm20
6726 ; AVX512DQBW-SLOW-NEXT:    vinserti32x4 $0, %xmm20, %zmm17, %zmm17
6727 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
6728 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm5, %zmm17 {%k2}
6729 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 640(%rdi), %ymm20
6730 ; AVX512DQBW-SLOW-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm20, %ymm5 # 32-byte Folded Reload
6731 ; AVX512DQBW-SLOW-NEXT:    # ymm5 = mem[8,9,10,11,12,13,14,15],ymm20[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm20[16,17,18,19,20,21,22,23]
6732 ; AVX512DQBW-SLOW-NEXT:    vpblendd {{.*#+}} ymm5 = ymm13[0,1,2,3],ymm5[4,5,6,7]
6733 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
6734 ; AVX512DQBW-SLOW-NEXT:    vinserti64x4 $0, %ymm5, %zmm13, %zmm5
6735 ; AVX512DQBW-SLOW-NEXT:    vmovdqa 192(%rdi), %ymm13
6736 ; AVX512DQBW-SLOW-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm13 # 32-byte Folded Reload
6737 ; AVX512DQBW-SLOW-NEXT:    # 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]
6738 ; AVX512DQBW-SLOW-NEXT:    vpblendd {{.*#+}} ymm11 = ymm11[0,1,2,3],ymm13[4,5,6,7]
6739 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
6740 ; AVX512DQBW-SLOW-NEXT:    vinserti64x4 $0, %ymm11, %zmm13, %zmm11
6741 ; AVX512DQBW-SLOW-NEXT:    vmovdqa 1536(%rdi), %ymm13
6742 ; AVX512DQBW-SLOW-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm13 # 32-byte Folded Reload
6743 ; AVX512DQBW-SLOW-NEXT:    # 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]
6744 ; AVX512DQBW-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm13[4,5,6,7]
6745 ; AVX512DQBW-SLOW-NEXT:    vinserti64x4 $0, %ymm1, %zmm29, %zmm1
6746 ; AVX512DQBW-SLOW-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm13 # 32-byte Folded Reload
6747 ; AVX512DQBW-SLOW-NEXT:    # ymm13 = ymm15[0,1,2,3],mem[4,5,6,7]
6748 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
6749 ; AVX512DQBW-SLOW-NEXT:    vinserti64x4 $0, %ymm13, %zmm15, %zmm13
6750 ; AVX512DQBW-SLOW-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
6751 ; AVX512DQBW-SLOW-NEXT:    # ymm14 = ymm14[0,1,2,3],mem[4,5,6,7]
6752 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
6753 ; AVX512DQBW-SLOW-NEXT:    vinserti64x4 $0, %ymm14, %zmm15, %zmm14
6754 ; AVX512DQBW-SLOW-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
6755 ; AVX512DQBW-SLOW-NEXT:    # ymm8 = ymm8[0,1,2,3],mem[4,5,6,7]
6756 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
6757 ; AVX512DQBW-SLOW-NEXT:    vinserti64x4 $0, %ymm8, %zmm15, %zmm8
6758 ; AVX512DQBW-SLOW-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
6759 ; AVX512DQBW-SLOW-NEXT:    # ymm10 = ymm10[0,1,2,3],mem[4,5,6,7]
6760 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
6761 ; AVX512DQBW-SLOW-NEXT:    vinserti64x4 $0, %ymm10, %zmm15, %zmm10
6762 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm21, 192(%rsi)
6763 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm16, 128(%rsi)
6764 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm24, 64(%rsi)
6765 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm18, (%rsi)
6766 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm0, 192(%rdx)
6767 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm2, (%rdx)
6768 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm3, 64(%rdx)
6769 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm4, 128(%rdx)
6770 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm22, 192(%rcx)
6771 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm23, (%rcx)
6772 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm19, 64(%rcx)
6773 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm12, 128(%rcx)
6774 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm17, 192(%r8)
6775 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm9, (%r8)
6776 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm7, 64(%r8)
6777 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm6, 128(%r8)
6778 ; AVX512DQBW-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6779 ; AVX512DQBW-SLOW-NEXT:    vmovaps %zmm0, 192(%r9)
6780 ; AVX512DQBW-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6781 ; AVX512DQBW-SLOW-NEXT:    vmovaps %zmm0, (%r9)
6782 ; AVX512DQBW-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6783 ; AVX512DQBW-SLOW-NEXT:    vmovaps %zmm0, 64(%r9)
6784 ; AVX512DQBW-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6785 ; AVX512DQBW-SLOW-NEXT:    vmovaps %zmm0, 128(%r9)
6786 ; AVX512DQBW-SLOW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
6787 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm1, 192(%rax)
6788 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm11, (%rax)
6789 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm5, 64(%rax)
6790 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm28, 128(%rax)
6791 ; AVX512DQBW-SLOW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
6792 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm10, 128(%rax)
6793 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm8, 192(%rax)
6794 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm14, (%rax)
6795 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm13, 64(%rax)
6796 ; AVX512DQBW-SLOW-NEXT:    addq $2152, %rsp # imm = 0x868
6797 ; AVX512DQBW-SLOW-NEXT:    vzeroupper
6798 ; AVX512DQBW-SLOW-NEXT:    retq
6800 ; AVX512DQBW-FAST-LABEL: load_i64_stride7_vf32:
6801 ; AVX512DQBW-FAST:       # %bb.0:
6802 ; AVX512DQBW-FAST-NEXT:    subq $2152, %rsp # imm = 0x868
6803 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 1664(%rdi), %zmm21
6804 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 1600(%rdi), %zmm31
6805 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 1216(%rdi), %zmm2
6806 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 1152(%rdi), %zmm6
6807 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 1088(%rdi), %zmm12
6808 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6809 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 1024(%rdi), %zmm3
6810 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6811 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 768(%rdi), %zmm1
6812 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 704(%rdi), %zmm10
6813 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 640(%rdi), %zmm11
6814 ; AVX512DQBW-FAST-NEXT:    vmovaps 576(%rdi), %zmm0
6815 ; AVX512DQBW-FAST-NEXT:    vmovups %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6816 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 320(%rdi), %zmm0
6817 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 256(%rdi), %zmm5
6818 ; AVX512DQBW-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm7 = [10,3,10,3,10,3,10,3]
6819 ; AVX512DQBW-FAST-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
6820 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm5, %zmm8
6821 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm0, %zmm7, %zmm8
6822 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6823 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm10, %zmm8
6824 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm1, %zmm7, %zmm8
6825 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6826 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm6, %zmm8
6827 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm2, %zmm7, %zmm8
6828 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6829 ; AVX512DQBW-FAST-NEXT:    vpermi2q %zmm21, %zmm31, %zmm7
6830 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6831 ; AVX512DQBW-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm7 = [11,4,11,4,11,4,11,4]
6832 ; AVX512DQBW-FAST-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
6833 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm6, %zmm8
6834 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm2, %zmm7, %zmm8
6835 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6836 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm7, %zmm13
6837 ; AVX512DQBW-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm7 = [13,6,13,6,13,6,13,6]
6838 ; AVX512DQBW-FAST-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
6839 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm10, %zmm8
6840 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm1, %zmm13, %zmm8
6841 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6842 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm5, %zmm8
6843 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm5, %zmm18
6844 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm0, %zmm13, %zmm18
6845 ; AVX512DQBW-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm19 = [12,5,12,5,12,5,12,5]
6846 ; AVX512DQBW-FAST-NEXT:    # zmm19 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
6847 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm10, %zmm17
6848 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm1, %zmm19, %zmm17
6849 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm5, %zmm22
6850 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm0, %zmm19, %zmm22
6851 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm22, %zmm23
6852 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm10, %zmm16
6853 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm1, %zmm7, %zmm16
6854 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm5, %zmm22
6855 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm0, %zmm7, %zmm22
6856 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm22, %zmm24
6857 ; AVX512DQBW-FAST-NEXT:    vbroadcasti64x4 {{.*#+}} zmm28 = [0,7,14,0,0,7,14,0]
6858 ; AVX512DQBW-FAST-NEXT:    # zmm28 = mem[0,1,2,3,0,1,2,3]
6859 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm10, %zmm15
6860 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm1, %zmm28, %zmm15
6861 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm5, %zmm25
6862 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm0, %zmm28, %zmm25
6863 ; AVX512DQBW-FAST-NEXT:    vbroadcasti64x4 {{.*#+}} zmm29 = [9,0,7,0,9,0,7,0]
6864 ; AVX512DQBW-FAST-NEXT:    # zmm29 = mem[0,1,2,3,0,1,2,3]
6865 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm1, %zmm26
6866 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm10, %zmm29, %zmm26
6867 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm26, %zmm30
6868 ; AVX512DQBW-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [2,9,2,9,2,9,2,9]
6869 ; AVX512DQBW-FAST-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
6870 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm1, %zmm4, %zmm10
6871 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm0, %zmm9
6872 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm8, %zmm29, %zmm9
6873 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm0, %zmm4, %zmm8
6874 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm7, %zmm1
6875 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm12, %zmm7, %zmm3
6876 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6877 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
6878 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm14, %zmm0
6879 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm11, %zmm7, %zmm0
6880 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6881 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 192(%rdi), %zmm22
6882 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 128(%rdi), %zmm0
6883 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6884 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm22, %zmm7, %zmm0
6885 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6886 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm31, %zmm5
6887 ; AVX512DQBW-FAST-NEXT:    vpermi2q %zmm21, %zmm31, %zmm13
6888 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 1536(%rdi), %zmm3
6889 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 1472(%rdi), %zmm0
6890 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6891 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm3, %zmm7, %zmm0
6892 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6893 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm6, %zmm0
6894 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm6, %zmm31
6895 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm2, %zmm19, %zmm31
6896 ; AVX512DQBW-FAST-NEXT:    vpermi2q %zmm21, %zmm5, %zmm19
6897 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm19, %zmm26
6898 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm6, %zmm27
6899 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm2, %zmm7, %zmm27
6900 ; AVX512DQBW-FAST-NEXT:    vpermi2q %zmm21, %zmm5, %zmm1
6901 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm6, %zmm20
6902 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm2, %zmm28, %zmm20
6903 ; AVX512DQBW-FAST-NEXT:    vpermi2q %zmm21, %zmm5, %zmm28
6904 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm2, %zmm12
6905 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm6, %zmm29, %zmm12
6906 ; AVX512DQBW-FAST-NEXT:    vpermi2q %zmm5, %zmm21, %zmm29
6907 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm21, %zmm4, %zmm5
6908 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm5, %zmm21
6909 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm2, %zmm4, %zmm0
6910 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 384(%rdi), %zmm2
6911 ; AVX512DQBW-FAST-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,5,6,9,0,5,6,9]
6912 ; AVX512DQBW-FAST-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
6913 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
6914 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm2, %zmm4, %zmm5
6915 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6916 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 832(%rdi), %zmm5
6917 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
6918 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm5, %zmm4, %zmm6
6919 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6920 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 1280(%rdi), %zmm6
6921 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
6922 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm6, %zmm4, %zmm7
6923 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6924 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 1728(%rdi), %zmm7
6925 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
6926 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm7, %zmm4, %zmm19
6927 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6928 ; AVX512DQBW-FAST-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,5,6,10,0,5,6,10]
6929 ; AVX512DQBW-FAST-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
6930 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
6931 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm6, %zmm4, %zmm19
6932 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6933 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
6934 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm5, %zmm4, %zmm19
6935 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6936 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm2, %zmm4, %zmm18
6937 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm18, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6938 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm7, %zmm4, %zmm13
6939 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6940 ; AVX512DQBW-FAST-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,5,6,11,0,5,6,11]
6941 ; AVX512DQBW-FAST-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
6942 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm6, %zmm4, %zmm31
6943 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm5, %zmm4, %zmm17
6944 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6945 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm2, %zmm4, %zmm23
6946 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm23, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6947 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm7, %zmm4, %zmm26
6948 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm26, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6949 ; AVX512DQBW-FAST-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,5,6,12,0,5,6,12]
6950 ; AVX512DQBW-FAST-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
6951 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm6, %zmm4, %zmm27
6952 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm5, %zmm4, %zmm16
6953 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6954 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm2, %zmm4, %zmm24
6955 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm24, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6956 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm7, %zmm4, %zmm1
6957 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6958 ; AVX512DQBW-FAST-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [4,5,6,13,4,5,6,13]
6959 ; AVX512DQBW-FAST-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
6960 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm6, %zmm4, %zmm20
6961 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm5, %zmm4, %zmm15
6962 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6963 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm2, %zmm4, %zmm25
6964 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm25, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6965 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm7, %zmm4, %zmm28
6966 ; AVX512DQBW-FAST-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [4,5,6,14,4,5,6,14]
6967 ; AVX512DQBW-FAST-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
6968 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm6, %zmm4, %zmm12
6969 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm5, %zmm4, %zmm30
6970 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6971 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm2, %zmm4, %zmm9
6972 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6973 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm7, %zmm4, %zmm29
6974 ; AVX512DQBW-FAST-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [4,5,8,15,4,5,8,15]
6975 ; AVX512DQBW-FAST-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
6976 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm5, %zmm4, %zmm10
6977 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6978 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm2, %zmm4, %zmm8
6979 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6980 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm7, %zmm4, %zmm21
6981 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6982 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm6, %zmm4, %zmm0
6983 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6984 ; AVX512DQBW-FAST-NEXT:    movb $24, %al
6985 ; AVX512DQBW-FAST-NEXT:    kmovd %eax, %k1
6986 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 512(%rdi), %zmm2
6987 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 448(%rdi), %zmm15
6988 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 {{.*#+}} ymm21 = <0,7,14,u>
6989 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm15, %zmm24
6990 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm2, %zmm21, %zmm24
6991 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm11, %zmm0
6992 ; AVX512DQBW-FAST-NEXT:    vshufi64x2 {{.*#+}} zmm24 {%k1} = zmm14[4,5,4,5],zmm11[4,5,4,5]
6993 ; AVX512DQBW-FAST-NEXT:    vbroadcasti64x4 {{.*#+}} zmm11 = [14,0,0,7,14,0,0,7]
6994 ; AVX512DQBW-FAST-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3]
6995 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm14, %zmm13
6996 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm0, %zmm11, %zmm13
6997 ; AVX512DQBW-FAST-NEXT:    vbroadcasti64x4 {{.*#+}} zmm17 = [7,0,9,0,7,0,9,0]
6998 ; AVX512DQBW-FAST-NEXT:    # zmm17 = mem[0,1,2,3,0,1,2,3]
6999 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm0, %zmm26
7000 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm14, %zmm17, %zmm26
7001 ; AVX512DQBW-FAST-NEXT:    vbroadcasti64x2 {{.*#+}} ymm19 = [4,11,4,11]
7002 ; AVX512DQBW-FAST-NEXT:    # ymm19 = mem[0,1,0,1]
7003 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm0, %zmm19, %zmm14
7004 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7005 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 64(%rdi), %zmm4
7006 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 (%rdi), %zmm14
7007 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm14, %zmm18
7008 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm4, %zmm21, %zmm18
7009 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7010 ; AVX512DQBW-FAST-NEXT:    vshufi64x2 {{.*#+}} zmm18 {%k1} = zmm0[4,5,4,5],zmm22[4,5,4,5]
7011 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm0, %zmm23
7012 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm22, %zmm11, %zmm23
7013 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm22, %zmm30
7014 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm0, %zmm17, %zmm30
7015 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm22, %zmm19, %zmm0
7016 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7017 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 960(%rdi), %zmm7
7018 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 896(%rdi), %zmm10
7019 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm10, %zmm16
7020 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm7, %zmm21, %zmm16
7021 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 1408(%rdi), %zmm5
7022 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 1344(%rdi), %zmm8
7023 ; AVX512DQBW-FAST-NEXT:    vpermi2q %zmm5, %zmm8, %zmm21
7024 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
7025 ; AVX512DQBW-FAST-NEXT:    vshufi64x2 {{.*#+}} zmm21 {%k1} = zmm6[4,5,4,5],zmm3[4,5,4,5]
7026 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
7027 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm1, %zmm0
7028 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
7029 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm22, %zmm11, %zmm0
7030 ; AVX512DQBW-FAST-NEXT:    vpermi2q %zmm3, %zmm6, %zmm11
7031 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm22, %zmm25
7032 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm1, %zmm17, %zmm25
7033 ; AVX512DQBW-FAST-NEXT:    vpermi2q %zmm6, %zmm3, %zmm17
7034 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm3, %zmm19, %zmm6
7035 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7036 ; AVX512DQBW-FAST-NEXT:    vshufi64x2 {{.*#+}} zmm16 {%k1} = zmm1[4,5,4,5],zmm22[4,5,4,5]
7037 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm22, %zmm19, %zmm1
7038 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7039 ; AVX512DQBW-FAST-NEXT:    vmovdqa 912(%rdi), %xmm1
7040 ; AVX512DQBW-FAST-NEXT:    vpblendd {{.*#+}} xmm1 = xmm1[0,1],mem[2,3]
7041 ; AVX512DQBW-FAST-NEXT:    vinserti32x4 $0, %xmm1, %zmm0, %zmm0
7042 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7043 ; AVX512DQBW-FAST-NEXT:    vmovdqa 464(%rdi), %xmm0
7044 ; AVX512DQBW-FAST-NEXT:    vpblendd {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
7045 ; AVX512DQBW-FAST-NEXT:    vinserti32x4 $0, %xmm0, %zmm13, %zmm0
7046 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7047 ; AVX512DQBW-FAST-NEXT:    vmovdqa 16(%rdi), %xmm0
7048 ; AVX512DQBW-FAST-NEXT:    vpblendd {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
7049 ; AVX512DQBW-FAST-NEXT:    vinserti32x4 $0, %xmm0, %zmm23, %zmm23
7050 ; AVX512DQBW-FAST-NEXT:    vmovdqa 1360(%rdi), %xmm0
7051 ; AVX512DQBW-FAST-NEXT:    vpblendd {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
7052 ; AVX512DQBW-FAST-NEXT:    vinserti32x4 $0, %xmm0, %zmm11, %zmm22
7053 ; AVX512DQBW-FAST-NEXT:    vinserti128 $1, 1088(%rdi), %ymm0, %ymm0
7054 ; AVX512DQBW-FAST-NEXT:    vmovdqa 1024(%rdi), %ymm1
7055 ; AVX512DQBW-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7056 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %ymm1, %ymm19
7057 ; AVX512DQBW-FAST-NEXT:    vmovdqa {{.*#+}} xmm1 = [4,11]
7058 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm10, %zmm11
7059 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm7, %zmm1, %zmm11
7060 ; AVX512DQBW-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm11[0,1,2,3],ymm0[4,5,6,7]
7061 ; AVX512DQBW-FAST-NEXT:    vinserti64x4 $0, %ymm0, %zmm20, %zmm0
7062 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7063 ; AVX512DQBW-FAST-NEXT:    vinserti128 $1, 640(%rdi), %ymm0, %ymm0
7064 ; AVX512DQBW-FAST-NEXT:    vmovdqa 576(%rdi), %ymm3
7065 ; AVX512DQBW-FAST-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7066 ; AVX512DQBW-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm0[6,7]
7067 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm15, %zmm3
7068 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm2, %zmm1, %zmm3
7069 ; AVX512DQBW-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm0[4,5,6,7]
7070 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
7071 ; AVX512DQBW-FAST-NEXT:    vinserti64x4 $0, %ymm0, %zmm3, %zmm0
7072 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7073 ; AVX512DQBW-FAST-NEXT:    vinserti128 $1, 192(%rdi), %ymm0, %ymm0
7074 ; AVX512DQBW-FAST-NEXT:    vmovdqa 128(%rdi), %ymm3
7075 ; AVX512DQBW-FAST-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7076 ; AVX512DQBW-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm0[6,7]
7077 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm14, %zmm3
7078 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm4, %zmm1, %zmm3
7079 ; AVX512DQBW-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm0[4,5,6,7]
7080 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
7081 ; AVX512DQBW-FAST-NEXT:    vinserti64x4 $0, %ymm0, %zmm3, %zmm0
7082 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7083 ; AVX512DQBW-FAST-NEXT:    vinserti128 $1, 1536(%rdi), %ymm0, %ymm0
7084 ; AVX512DQBW-FAST-NEXT:    vmovdqa 1472(%rdi), %ymm3
7085 ; AVX512DQBW-FAST-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7086 ; AVX512DQBW-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm0[6,7]
7087 ; AVX512DQBW-FAST-NEXT:    vpermi2q %zmm5, %zmm8, %zmm1
7088 ; AVX512DQBW-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7089 ; AVX512DQBW-FAST-NEXT:    vinserti64x4 $0, %ymm0, %zmm28, %zmm0
7090 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
7091 ; AVX512DQBW-FAST-NEXT:    vmovdqa {{.*#+}} ymm0 = <9,0,7,u>
7092 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm2, %zmm3
7093 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm15, %zmm0, %zmm3
7094 ; AVX512DQBW-FAST-NEXT:    vmovdqa {{.*#+}} xmm1 = [5,12]
7095 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm15, %zmm13
7096 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm2, %zmm1, %zmm13
7097 ; AVX512DQBW-FAST-NEXT:    vmovdqa {{.*#+}} xmm6 = [6,13]
7098 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm2, %zmm6, %zmm15
7099 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm4, %zmm2
7100 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm14, %zmm0, %zmm2
7101 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm14, %zmm11
7102 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm4, %zmm1, %zmm11
7103 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm4, %zmm6, %zmm14
7104 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm7, %zmm4
7105 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm10, %zmm0, %zmm4
7106 ; AVX512DQBW-FAST-NEXT:    vpermi2q %zmm8, %zmm5, %zmm0
7107 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm10, %zmm9
7108 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm7, %zmm1, %zmm9
7109 ; AVX512DQBW-FAST-NEXT:    vpermi2q %zmm5, %zmm8, %zmm1
7110 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm5, %zmm6, %zmm8
7111 ; AVX512DQBW-FAST-NEXT:    vpermt2q %zmm7, %zmm6, %zmm10
7112 ; AVX512DQBW-FAST-NEXT:    vmovdqa 1088(%rdi), %ymm5
7113 ; AVX512DQBW-FAST-NEXT:    vpalignr {{.*#+}} ymm5 = ymm19[8,9,10,11,12,13,14,15],ymm5[0,1,2,3,4,5,6,7],ymm19[24,25,26,27,28,29,30,31],ymm5[16,17,18,19,20,21,22,23]
7114 ; AVX512DQBW-FAST-NEXT:    vpblendd {{.*#+}} ymm5 = ymm9[0,1,2,3],ymm5[4,5,6,7]
7115 ; AVX512DQBW-FAST-NEXT:    vinserti64x4 $0, %ymm5, %zmm12, %zmm28
7116 ; AVX512DQBW-FAST-NEXT:    movb $-32, %al
7117 ; AVX512DQBW-FAST-NEXT:    kmovd %eax, %k2
7118 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
7119 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm5, %zmm18 {%k2}
7120 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
7121 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm5, %zmm24 {%k2}
7122 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
7123 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm5, %zmm16 {%k2}
7124 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
7125 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm5, %zmm21 {%k2}
7126 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
7127 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm5, %zmm4 {%k1}
7128 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
7129 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm5, %zmm4 {%k2}
7130 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
7131 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm5, %zmm3 {%k1}
7132 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
7133 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm5, %zmm3 {%k2}
7134 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
7135 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm5, %zmm2 {%k1}
7136 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
7137 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm5, %zmm2 {%k2}
7138 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
7139 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm5, %zmm0 {%k1}
7140 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
7141 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm5, %zmm0 {%k2}
7142 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
7143 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm31, %zmm12 {%k2}
7144 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
7145 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
7146 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm5, %zmm19 {%k2}
7147 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
7148 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm5, %zmm23 {%k2}
7149 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
7150 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm5, %zmm22 {%k2}
7151 ; AVX512DQBW-FAST-NEXT:    vmovdqa 960(%rdi), %ymm6
7152 ; AVX512DQBW-FAST-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]
7153 ; AVX512DQBW-FAST-NEXT:    vextracti128 $1, %ymm6, %xmm6
7154 ; AVX512DQBW-FAST-NEXT:    vinserti32x4 $0, %xmm6, %zmm25, %zmm6
7155 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm27, %zmm6 {%k2}
7156 ; AVX512DQBW-FAST-NEXT:    vmovdqa 512(%rdi), %ymm7
7157 ; AVX512DQBW-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]
7158 ; AVX512DQBW-FAST-NEXT:    vextracti128 $1, %ymm7, %xmm7
7159 ; AVX512DQBW-FAST-NEXT:    vinserti32x4 $0, %xmm7, %zmm26, %zmm7
7160 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
7161 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm5, %zmm7 {%k2}
7162 ; AVX512DQBW-FAST-NEXT:    vmovdqa 64(%rdi), %ymm9
7163 ; AVX512DQBW-FAST-NEXT:    vpalignr {{.*#+}} 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]
7164 ; AVX512DQBW-FAST-NEXT:    vextracti128 $1, %ymm9, %xmm9
7165 ; AVX512DQBW-FAST-NEXT:    vinserti32x4 $0, %xmm9, %zmm30, %zmm9
7166 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
7167 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm5, %zmm9 {%k2}
7168 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 1408(%rdi), %ymm20
7169 ; AVX512DQBW-FAST-NEXT:    vpalignr {{.*#+}} ymm20 = mem[8,9,10,11,12,13,14,15],ymm20[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm20[16,17,18,19,20,21,22,23]
7170 ; AVX512DQBW-FAST-NEXT:    vextracti32x4 $1, %ymm20, %xmm20
7171 ; AVX512DQBW-FAST-NEXT:    vinserti32x4 $0, %xmm20, %zmm17, %zmm17
7172 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
7173 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm5, %zmm17 {%k2}
7174 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 640(%rdi), %ymm20
7175 ; AVX512DQBW-FAST-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm20, %ymm5 # 32-byte Folded Reload
7176 ; AVX512DQBW-FAST-NEXT:    # ymm5 = mem[8,9,10,11,12,13,14,15],ymm20[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm20[16,17,18,19,20,21,22,23]
7177 ; AVX512DQBW-FAST-NEXT:    vpblendd {{.*#+}} ymm5 = ymm13[0,1,2,3],ymm5[4,5,6,7]
7178 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
7179 ; AVX512DQBW-FAST-NEXT:    vinserti64x4 $0, %ymm5, %zmm13, %zmm5
7180 ; AVX512DQBW-FAST-NEXT:    vmovdqa 192(%rdi), %ymm13
7181 ; AVX512DQBW-FAST-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm13 # 32-byte Folded Reload
7182 ; AVX512DQBW-FAST-NEXT:    # 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]
7183 ; AVX512DQBW-FAST-NEXT:    vpblendd {{.*#+}} ymm11 = ymm11[0,1,2,3],ymm13[4,5,6,7]
7184 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
7185 ; AVX512DQBW-FAST-NEXT:    vinserti64x4 $0, %ymm11, %zmm13, %zmm11
7186 ; AVX512DQBW-FAST-NEXT:    vmovdqa 1536(%rdi), %ymm13
7187 ; AVX512DQBW-FAST-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm13 # 32-byte Folded Reload
7188 ; AVX512DQBW-FAST-NEXT:    # 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]
7189 ; AVX512DQBW-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm13[4,5,6,7]
7190 ; AVX512DQBW-FAST-NEXT:    vinserti64x4 $0, %ymm1, %zmm29, %zmm1
7191 ; AVX512DQBW-FAST-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm13 # 32-byte Folded Reload
7192 ; AVX512DQBW-FAST-NEXT:    # ymm13 = ymm15[0,1,2,3],mem[4,5,6,7]
7193 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
7194 ; AVX512DQBW-FAST-NEXT:    vinserti64x4 $0, %ymm13, %zmm15, %zmm13
7195 ; AVX512DQBW-FAST-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
7196 ; AVX512DQBW-FAST-NEXT:    # ymm14 = ymm14[0,1,2,3],mem[4,5,6,7]
7197 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
7198 ; AVX512DQBW-FAST-NEXT:    vinserti64x4 $0, %ymm14, %zmm15, %zmm14
7199 ; AVX512DQBW-FAST-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
7200 ; AVX512DQBW-FAST-NEXT:    # ymm8 = ymm8[0,1,2,3],mem[4,5,6,7]
7201 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
7202 ; AVX512DQBW-FAST-NEXT:    vinserti64x4 $0, %ymm8, %zmm15, %zmm8
7203 ; AVX512DQBW-FAST-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
7204 ; AVX512DQBW-FAST-NEXT:    # ymm10 = ymm10[0,1,2,3],mem[4,5,6,7]
7205 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
7206 ; AVX512DQBW-FAST-NEXT:    vinserti64x4 $0, %ymm10, %zmm15, %zmm10
7207 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm21, 192(%rsi)
7208 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm16, 128(%rsi)
7209 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm24, 64(%rsi)
7210 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm18, (%rsi)
7211 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm0, 192(%rdx)
7212 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm2, (%rdx)
7213 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm3, 64(%rdx)
7214 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm4, 128(%rdx)
7215 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm22, 192(%rcx)
7216 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm23, (%rcx)
7217 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm19, 64(%rcx)
7218 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm12, 128(%rcx)
7219 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm17, 192(%r8)
7220 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm9, (%r8)
7221 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm7, 64(%r8)
7222 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm6, 128(%r8)
7223 ; AVX512DQBW-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7224 ; AVX512DQBW-FAST-NEXT:    vmovaps %zmm0, 192(%r9)
7225 ; AVX512DQBW-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7226 ; AVX512DQBW-FAST-NEXT:    vmovaps %zmm0, (%r9)
7227 ; AVX512DQBW-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7228 ; AVX512DQBW-FAST-NEXT:    vmovaps %zmm0, 64(%r9)
7229 ; AVX512DQBW-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
7230 ; AVX512DQBW-FAST-NEXT:    vmovaps %zmm0, 128(%r9)
7231 ; AVX512DQBW-FAST-NEXT:    movq {{[0-9]+}}(%rsp), %rax
7232 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm1, 192(%rax)
7233 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm11, (%rax)
7234 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm5, 64(%rax)
7235 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm28, 128(%rax)
7236 ; AVX512DQBW-FAST-NEXT:    movq {{[0-9]+}}(%rsp), %rax
7237 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm10, 128(%rax)
7238 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm8, 192(%rax)
7239 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm14, (%rax)
7240 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm13, 64(%rax)
7241 ; AVX512DQBW-FAST-NEXT:    addq $2152, %rsp # imm = 0x868
7242 ; AVX512DQBW-FAST-NEXT:    vzeroupper
7243 ; AVX512DQBW-FAST-NEXT:    retq
7244   %wide.vec = load <224 x i64>, ptr %in.vec, align 64
7245   %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>
7246   %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>
7247   %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>
7248   %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>
7249   %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>
7250   %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>
7251   %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>
7252   store <32 x i64> %strided.vec0, ptr %out.vec0, align 64
7253   store <32 x i64> %strided.vec1, ptr %out.vec1, align 64
7254   store <32 x i64> %strided.vec2, ptr %out.vec2, align 64
7255   store <32 x i64> %strided.vec3, ptr %out.vec3, align 64
7256   store <32 x i64> %strided.vec4, ptr %out.vec4, align 64
7257   store <32 x i64> %strided.vec5, ptr %out.vec5, align 64
7258   store <32 x i64> %strided.vec6, ptr %out.vec6, align 64
7259   ret void
7262 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 {
7263 ; SSE-LABEL: load_i64_stride7_vf64:
7264 ; SSE:       # %bb.0:
7265 ; SSE-NEXT:    subq $3240, %rsp # imm = 0xCA8
7266 ; SSE-NEXT:    movapd 208(%rdi), %xmm3
7267 ; SSE-NEXT:    movapd 96(%rdi), %xmm2
7268 ; SSE-NEXT:    movapd 144(%rdi), %xmm4
7269 ; SSE-NEXT:    movapd 192(%rdi), %xmm6
7270 ; SSE-NEXT:    movapd 80(%rdi), %xmm5
7271 ; SSE-NEXT:    movapd 128(%rdi), %xmm8
7272 ; SSE-NEXT:    movapd 176(%rdi), %xmm11
7273 ; SSE-NEXT:    movapd 64(%rdi), %xmm10
7274 ; SSE-NEXT:    movapd (%rdi), %xmm12
7275 ; SSE-NEXT:    movapd 16(%rdi), %xmm9
7276 ; SSE-NEXT:    movapd 32(%rdi), %xmm7
7277 ; SSE-NEXT:    movapd 48(%rdi), %xmm0
7278 ; SSE-NEXT:    movapd 224(%rdi), %xmm13
7279 ; SSE-NEXT:    movapd 112(%rdi), %xmm14
7280 ; SSE-NEXT:    movapd 160(%rdi), %xmm1
7281 ; SSE-NEXT:    movapd %xmm0, %xmm15
7282 ; SSE-NEXT:    movsd {{.*#+}} xmm15 = xmm12[0],xmm15[1]
7283 ; SSE-NEXT:    movapd %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7284 ; SSE-NEXT:    shufpd {{.*#+}} xmm12 = xmm12[1],xmm10[0]
7285 ; SSE-NEXT:    movapd %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7286 ; SSE-NEXT:    movsd {{.*#+}} xmm10 = xmm9[0],xmm10[1]
7287 ; SSE-NEXT:    movapd %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7288 ; SSE-NEXT:    shufpd {{.*#+}} xmm9 = xmm9[1],xmm5[0]
7289 ; SSE-NEXT:    movapd %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7290 ; SSE-NEXT:    movsd {{.*#+}} xmm5 = xmm7[0],xmm5[1]
7291 ; SSE-NEXT:    movapd %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7292 ; SSE-NEXT:    shufpd {{.*#+}} xmm7 = xmm7[1],xmm2[0]
7293 ; SSE-NEXT:    movapd %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7294 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm0[0],xmm2[1]
7295 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7296 ; SSE-NEXT:    movapd %xmm1, %xmm0
7297 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm14[0],xmm0[1]
7298 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7299 ; SSE-NEXT:    shufpd {{.*#+}} xmm14 = xmm14[1],xmm11[0]
7300 ; SSE-NEXT:    movapd %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7301 ; SSE-NEXT:    movsd {{.*#+}} xmm11 = xmm8[0],xmm11[1]
7302 ; SSE-NEXT:    movapd %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7303 ; SSE-NEXT:    shufpd {{.*#+}} xmm8 = xmm8[1],xmm6[0]
7304 ; SSE-NEXT:    movapd %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7305 ; SSE-NEXT:    movsd {{.*#+}} xmm6 = xmm4[0],xmm6[1]
7306 ; SSE-NEXT:    movapd %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7307 ; SSE-NEXT:    shufpd {{.*#+}} xmm4 = xmm4[1],xmm3[0]
7308 ; SSE-NEXT:    movapd %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7309 ; SSE-NEXT:    movsd {{.*#+}} xmm3 = xmm1[0],xmm3[1]
7310 ; SSE-NEXT:    movapd %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7311 ; SSE-NEXT:    movapd 272(%rdi), %xmm0
7312 ; SSE-NEXT:    movapd %xmm0, %xmm1
7313 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm13[0],xmm1[1]
7314 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7315 ; SSE-NEXT:    movapd 288(%rdi), %xmm1
7316 ; SSE-NEXT:    shufpd {{.*#+}} xmm13 = xmm13[1],xmm1[0]
7317 ; SSE-NEXT:    movapd %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7318 ; SSE-NEXT:    movapd 240(%rdi), %xmm2
7319 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7320 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7321 ; SSE-NEXT:    movapd 304(%rdi), %xmm1
7322 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7323 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7324 ; SSE-NEXT:    movapd 256(%rdi), %xmm2
7325 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7326 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7327 ; SSE-NEXT:    movapd 320(%rdi), %xmm1
7328 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7329 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7330 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
7331 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7332 ; SSE-NEXT:    movapd 336(%rdi), %xmm2
7333 ; SSE-NEXT:    movapd 384(%rdi), %xmm0
7334 ; SSE-NEXT:    movapd %xmm0, %xmm1
7335 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7336 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7337 ; SSE-NEXT:    movapd 400(%rdi), %xmm1
7338 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7339 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7340 ; SSE-NEXT:    movapd 352(%rdi), %xmm2
7341 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7342 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7343 ; SSE-NEXT:    movapd 416(%rdi), %xmm1
7344 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7345 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7346 ; SSE-NEXT:    movapd 368(%rdi), %xmm2
7347 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7348 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7349 ; SSE-NEXT:    movapd 432(%rdi), %xmm1
7350 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7351 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7352 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
7353 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7354 ; SSE-NEXT:    movapd 448(%rdi), %xmm2
7355 ; SSE-NEXT:    movapd 496(%rdi), %xmm0
7356 ; SSE-NEXT:    movapd %xmm0, %xmm1
7357 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7358 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7359 ; SSE-NEXT:    movapd 512(%rdi), %xmm1
7360 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7361 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7362 ; SSE-NEXT:    movapd 464(%rdi), %xmm2
7363 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7364 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7365 ; SSE-NEXT:    movapd 528(%rdi), %xmm1
7366 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7367 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7368 ; SSE-NEXT:    movapd 480(%rdi), %xmm2
7369 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7370 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7371 ; SSE-NEXT:    movapd 544(%rdi), %xmm1
7372 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7373 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7374 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
7375 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7376 ; SSE-NEXT:    movapd 560(%rdi), %xmm2
7377 ; SSE-NEXT:    movapd 608(%rdi), %xmm0
7378 ; SSE-NEXT:    movapd %xmm0, %xmm1
7379 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7380 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7381 ; SSE-NEXT:    movapd 624(%rdi), %xmm1
7382 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7383 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7384 ; SSE-NEXT:    movapd 576(%rdi), %xmm2
7385 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7386 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7387 ; SSE-NEXT:    movapd 640(%rdi), %xmm1
7388 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7389 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7390 ; SSE-NEXT:    movapd 592(%rdi), %xmm2
7391 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7392 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7393 ; SSE-NEXT:    movapd 656(%rdi), %xmm1
7394 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7395 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7396 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
7397 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7398 ; SSE-NEXT:    movapd 672(%rdi), %xmm2
7399 ; SSE-NEXT:    movapd 720(%rdi), %xmm0
7400 ; SSE-NEXT:    movapd %xmm0, %xmm1
7401 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7402 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7403 ; SSE-NEXT:    movapd 736(%rdi), %xmm1
7404 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7405 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7406 ; SSE-NEXT:    movapd 688(%rdi), %xmm2
7407 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7408 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7409 ; SSE-NEXT:    movapd 752(%rdi), %xmm1
7410 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7411 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7412 ; SSE-NEXT:    movapd 704(%rdi), %xmm2
7413 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7414 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7415 ; SSE-NEXT:    movapd 768(%rdi), %xmm1
7416 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7417 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7418 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
7419 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7420 ; SSE-NEXT:    movapd 784(%rdi), %xmm2
7421 ; SSE-NEXT:    movapd 832(%rdi), %xmm0
7422 ; SSE-NEXT:    movapd %xmm0, %xmm1
7423 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7424 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7425 ; SSE-NEXT:    movapd 848(%rdi), %xmm1
7426 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7427 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7428 ; SSE-NEXT:    movapd 800(%rdi), %xmm2
7429 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7430 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7431 ; SSE-NEXT:    movapd 864(%rdi), %xmm1
7432 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7433 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7434 ; SSE-NEXT:    movapd 816(%rdi), %xmm2
7435 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7436 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7437 ; SSE-NEXT:    movapd 880(%rdi), %xmm1
7438 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7439 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7440 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
7441 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7442 ; SSE-NEXT:    movapd 896(%rdi), %xmm2
7443 ; SSE-NEXT:    movapd 944(%rdi), %xmm0
7444 ; SSE-NEXT:    movapd %xmm0, %xmm1
7445 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7446 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7447 ; SSE-NEXT:    movapd 960(%rdi), %xmm1
7448 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7449 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7450 ; SSE-NEXT:    movapd 912(%rdi), %xmm2
7451 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7452 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7453 ; SSE-NEXT:    movapd 976(%rdi), %xmm1
7454 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7455 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7456 ; SSE-NEXT:    movapd 928(%rdi), %xmm2
7457 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7458 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7459 ; SSE-NEXT:    movapd 992(%rdi), %xmm1
7460 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7461 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7462 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
7463 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7464 ; SSE-NEXT:    movapd 1008(%rdi), %xmm2
7465 ; SSE-NEXT:    movapd 1056(%rdi), %xmm0
7466 ; SSE-NEXT:    movapd %xmm0, %xmm1
7467 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7468 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7469 ; SSE-NEXT:    movapd 1072(%rdi), %xmm1
7470 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7471 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7472 ; SSE-NEXT:    movapd 1024(%rdi), %xmm2
7473 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7474 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7475 ; SSE-NEXT:    movapd 1088(%rdi), %xmm1
7476 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7477 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7478 ; SSE-NEXT:    movapd 1040(%rdi), %xmm2
7479 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7480 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7481 ; SSE-NEXT:    movapd 1104(%rdi), %xmm1
7482 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7483 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7484 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
7485 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7486 ; SSE-NEXT:    movapd 1120(%rdi), %xmm2
7487 ; SSE-NEXT:    movapd 1168(%rdi), %xmm0
7488 ; SSE-NEXT:    movapd %xmm0, %xmm1
7489 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7490 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7491 ; SSE-NEXT:    movapd 1184(%rdi), %xmm1
7492 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7493 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7494 ; SSE-NEXT:    movapd 1136(%rdi), %xmm2
7495 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7496 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7497 ; SSE-NEXT:    movapd 1200(%rdi), %xmm1
7498 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7499 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7500 ; SSE-NEXT:    movapd 1152(%rdi), %xmm2
7501 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7502 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7503 ; SSE-NEXT:    movapd 1216(%rdi), %xmm1
7504 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7505 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7506 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
7507 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7508 ; SSE-NEXT:    movapd 1232(%rdi), %xmm2
7509 ; SSE-NEXT:    movapd 1280(%rdi), %xmm0
7510 ; SSE-NEXT:    movapd %xmm0, %xmm1
7511 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7512 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7513 ; SSE-NEXT:    movapd 1296(%rdi), %xmm1
7514 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7515 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7516 ; SSE-NEXT:    movapd 1248(%rdi), %xmm2
7517 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7518 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7519 ; SSE-NEXT:    movapd 1312(%rdi), %xmm1
7520 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7521 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7522 ; SSE-NEXT:    movapd 1264(%rdi), %xmm2
7523 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7524 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7525 ; SSE-NEXT:    movapd 1328(%rdi), %xmm1
7526 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7527 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7528 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
7529 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7530 ; SSE-NEXT:    movapd 1344(%rdi), %xmm2
7531 ; SSE-NEXT:    movapd 1392(%rdi), %xmm0
7532 ; SSE-NEXT:    movapd %xmm0, %xmm1
7533 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7534 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7535 ; SSE-NEXT:    movapd 1408(%rdi), %xmm1
7536 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7537 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7538 ; SSE-NEXT:    movapd 1360(%rdi), %xmm2
7539 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7540 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7541 ; SSE-NEXT:    movapd 1424(%rdi), %xmm1
7542 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7543 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7544 ; SSE-NEXT:    movapd 1376(%rdi), %xmm2
7545 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7546 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7547 ; SSE-NEXT:    movapd 1440(%rdi), %xmm1
7548 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7549 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7550 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
7551 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7552 ; SSE-NEXT:    movapd 1456(%rdi), %xmm2
7553 ; SSE-NEXT:    movapd 1504(%rdi), %xmm0
7554 ; SSE-NEXT:    movapd %xmm0, %xmm1
7555 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7556 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7557 ; SSE-NEXT:    movapd 1520(%rdi), %xmm1
7558 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7559 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7560 ; SSE-NEXT:    movapd 1472(%rdi), %xmm2
7561 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7562 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7563 ; SSE-NEXT:    movapd 1536(%rdi), %xmm1
7564 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7565 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7566 ; SSE-NEXT:    movapd 1488(%rdi), %xmm2
7567 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7568 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7569 ; SSE-NEXT:    movapd 1552(%rdi), %xmm1
7570 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7571 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7572 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
7573 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7574 ; SSE-NEXT:    movapd 1568(%rdi), %xmm2
7575 ; SSE-NEXT:    movapd 1616(%rdi), %xmm0
7576 ; SSE-NEXT:    movapd %xmm0, %xmm1
7577 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7578 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7579 ; SSE-NEXT:    movapd 1632(%rdi), %xmm1
7580 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7581 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7582 ; SSE-NEXT:    movapd 1584(%rdi), %xmm2
7583 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7584 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7585 ; SSE-NEXT:    movapd 1648(%rdi), %xmm1
7586 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7587 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7588 ; SSE-NEXT:    movapd 1600(%rdi), %xmm2
7589 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7590 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7591 ; SSE-NEXT:    movapd 1664(%rdi), %xmm1
7592 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7593 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7594 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
7595 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7596 ; SSE-NEXT:    movapd 1680(%rdi), %xmm2
7597 ; SSE-NEXT:    movapd 1728(%rdi), %xmm0
7598 ; SSE-NEXT:    movapd %xmm0, %xmm1
7599 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7600 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7601 ; SSE-NEXT:    movapd 1744(%rdi), %xmm1
7602 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7603 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7604 ; SSE-NEXT:    movapd 1696(%rdi), %xmm2
7605 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7606 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7607 ; SSE-NEXT:    movapd 1760(%rdi), %xmm1
7608 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7609 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7610 ; SSE-NEXT:    movapd 1712(%rdi), %xmm2
7611 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7612 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7613 ; SSE-NEXT:    movapd 1776(%rdi), %xmm1
7614 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7615 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7616 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
7617 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7618 ; SSE-NEXT:    movapd 1792(%rdi), %xmm2
7619 ; SSE-NEXT:    movapd 1840(%rdi), %xmm0
7620 ; SSE-NEXT:    movapd %xmm0, %xmm1
7621 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7622 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7623 ; SSE-NEXT:    movapd 1856(%rdi), %xmm1
7624 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7625 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7626 ; SSE-NEXT:    movapd 1808(%rdi), %xmm2
7627 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7628 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7629 ; SSE-NEXT:    movapd 1872(%rdi), %xmm1
7630 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7631 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7632 ; SSE-NEXT:    movapd 1824(%rdi), %xmm2
7633 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7634 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7635 ; SSE-NEXT:    movapd 1888(%rdi), %xmm1
7636 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7637 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7638 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
7639 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7640 ; SSE-NEXT:    movapd 1904(%rdi), %xmm2
7641 ; SSE-NEXT:    movapd 1952(%rdi), %xmm0
7642 ; SSE-NEXT:    movapd %xmm0, %xmm1
7643 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7644 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7645 ; SSE-NEXT:    movapd 1968(%rdi), %xmm1
7646 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7647 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7648 ; SSE-NEXT:    movapd 1920(%rdi), %xmm2
7649 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7650 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7651 ; SSE-NEXT:    movapd 1984(%rdi), %xmm1
7652 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7653 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7654 ; SSE-NEXT:    movapd 1936(%rdi), %xmm2
7655 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7656 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7657 ; SSE-NEXT:    movapd 2000(%rdi), %xmm1
7658 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7659 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7660 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
7661 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7662 ; SSE-NEXT:    movapd 2016(%rdi), %xmm2
7663 ; SSE-NEXT:    movapd 2064(%rdi), %xmm0
7664 ; SSE-NEXT:    movapd %xmm0, %xmm1
7665 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7666 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7667 ; SSE-NEXT:    movapd 2080(%rdi), %xmm1
7668 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7669 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7670 ; SSE-NEXT:    movapd 2032(%rdi), %xmm2
7671 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7672 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7673 ; SSE-NEXT:    movapd 2096(%rdi), %xmm1
7674 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7675 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7676 ; SSE-NEXT:    movapd 2048(%rdi), %xmm2
7677 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7678 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7679 ; SSE-NEXT:    movapd 2112(%rdi), %xmm1
7680 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7681 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7682 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
7683 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7684 ; SSE-NEXT:    movapd 2128(%rdi), %xmm2
7685 ; SSE-NEXT:    movapd 2176(%rdi), %xmm0
7686 ; SSE-NEXT:    movapd %xmm0, %xmm1
7687 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7688 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7689 ; SSE-NEXT:    movapd 2192(%rdi), %xmm1
7690 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7691 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7692 ; SSE-NEXT:    movapd 2144(%rdi), %xmm2
7693 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7694 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7695 ; SSE-NEXT:    movapd 2208(%rdi), %xmm1
7696 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7697 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7698 ; SSE-NEXT:    movapd 2160(%rdi), %xmm2
7699 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7700 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7701 ; SSE-NEXT:    movapd 2224(%rdi), %xmm1
7702 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7703 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7704 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
7705 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7706 ; SSE-NEXT:    movapd 2240(%rdi), %xmm2
7707 ; SSE-NEXT:    movapd 2288(%rdi), %xmm0
7708 ; SSE-NEXT:    movapd %xmm0, %xmm1
7709 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7710 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7711 ; SSE-NEXT:    movapd 2304(%rdi), %xmm1
7712 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7713 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7714 ; SSE-NEXT:    movapd 2256(%rdi), %xmm2
7715 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7716 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7717 ; SSE-NEXT:    movapd 2320(%rdi), %xmm1
7718 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7719 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7720 ; SSE-NEXT:    movapd 2272(%rdi), %xmm2
7721 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7722 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7723 ; SSE-NEXT:    movapd 2336(%rdi), %xmm1
7724 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7725 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7726 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
7727 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7728 ; SSE-NEXT:    movapd 2352(%rdi), %xmm2
7729 ; SSE-NEXT:    movapd 2400(%rdi), %xmm0
7730 ; SSE-NEXT:    movapd %xmm0, %xmm1
7731 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7732 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7733 ; SSE-NEXT:    movapd 2416(%rdi), %xmm1
7734 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7735 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7736 ; SSE-NEXT:    movapd 2368(%rdi), %xmm2
7737 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7738 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7739 ; SSE-NEXT:    movapd 2432(%rdi), %xmm1
7740 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7741 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7742 ; SSE-NEXT:    movapd 2384(%rdi), %xmm2
7743 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7744 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7745 ; SSE-NEXT:    movapd 2448(%rdi), %xmm1
7746 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7747 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7748 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
7749 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7750 ; SSE-NEXT:    movapd 2464(%rdi), %xmm2
7751 ; SSE-NEXT:    movapd 2512(%rdi), %xmm0
7752 ; SSE-NEXT:    movapd %xmm0, %xmm1
7753 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7754 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7755 ; SSE-NEXT:    movapd 2528(%rdi), %xmm1
7756 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7757 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7758 ; SSE-NEXT:    movapd 2480(%rdi), %xmm2
7759 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7760 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7761 ; SSE-NEXT:    movapd 2544(%rdi), %xmm1
7762 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7763 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7764 ; SSE-NEXT:    movapd 2496(%rdi), %xmm2
7765 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7766 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7767 ; SSE-NEXT:    movapd 2560(%rdi), %xmm1
7768 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7769 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7770 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
7771 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7772 ; SSE-NEXT:    movapd 2576(%rdi), %xmm2
7773 ; SSE-NEXT:    movapd 2624(%rdi), %xmm0
7774 ; SSE-NEXT:    movapd %xmm0, %xmm1
7775 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7776 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7777 ; SSE-NEXT:    movapd 2640(%rdi), %xmm1
7778 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7779 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7780 ; SSE-NEXT:    movapd 2592(%rdi), %xmm2
7781 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7782 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7783 ; SSE-NEXT:    movapd 2656(%rdi), %xmm1
7784 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7785 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7786 ; SSE-NEXT:    movapd 2608(%rdi), %xmm2
7787 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7788 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7789 ; SSE-NEXT:    movapd 2672(%rdi), %xmm1
7790 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7791 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7792 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
7793 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7794 ; SSE-NEXT:    movapd 2688(%rdi), %xmm2
7795 ; SSE-NEXT:    movapd 2736(%rdi), %xmm0
7796 ; SSE-NEXT:    movapd %xmm0, %xmm1
7797 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7798 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7799 ; SSE-NEXT:    movapd 2752(%rdi), %xmm1
7800 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7801 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7802 ; SSE-NEXT:    movapd 2704(%rdi), %xmm2
7803 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7804 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7805 ; SSE-NEXT:    movapd 2768(%rdi), %xmm1
7806 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7807 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7808 ; SSE-NEXT:    movapd 2720(%rdi), %xmm2
7809 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7810 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7811 ; SSE-NEXT:    movapd 2784(%rdi), %xmm1
7812 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7813 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7814 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
7815 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7816 ; SSE-NEXT:    movapd 2800(%rdi), %xmm2
7817 ; SSE-NEXT:    movapd 2848(%rdi), %xmm0
7818 ; SSE-NEXT:    movapd %xmm0, %xmm1
7819 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7820 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7821 ; SSE-NEXT:    movapd 2864(%rdi), %xmm1
7822 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7823 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7824 ; SSE-NEXT:    movapd 2816(%rdi), %xmm2
7825 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7826 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7827 ; SSE-NEXT:    movapd 2880(%rdi), %xmm1
7828 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7829 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7830 ; SSE-NEXT:    movapd 2832(%rdi), %xmm2
7831 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7832 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7833 ; SSE-NEXT:    movapd 2896(%rdi), %xmm1
7834 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7835 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7836 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
7837 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7838 ; SSE-NEXT:    movapd 2912(%rdi), %xmm2
7839 ; SSE-NEXT:    movapd 2960(%rdi), %xmm0
7840 ; SSE-NEXT:    movapd %xmm0, %xmm1
7841 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7842 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7843 ; SSE-NEXT:    movapd 2976(%rdi), %xmm1
7844 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7845 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7846 ; SSE-NEXT:    movapd 2928(%rdi), %xmm2
7847 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7848 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7849 ; SSE-NEXT:    movapd 2992(%rdi), %xmm1
7850 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7851 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7852 ; SSE-NEXT:    movapd 2944(%rdi), %xmm2
7853 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7854 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7855 ; SSE-NEXT:    movapd 3008(%rdi), %xmm1
7856 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7857 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7858 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
7859 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7860 ; SSE-NEXT:    movapd 3024(%rdi), %xmm2
7861 ; SSE-NEXT:    movapd 3072(%rdi), %xmm0
7862 ; SSE-NEXT:    movapd %xmm0, %xmm14
7863 ; SSE-NEXT:    movsd {{.*#+}} xmm14 = xmm2[0],xmm14[1]
7864 ; SSE-NEXT:    movapd 3088(%rdi), %xmm1
7865 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7866 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7867 ; SSE-NEXT:    movapd 3040(%rdi), %xmm2
7868 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7869 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7870 ; SSE-NEXT:    movapd 3104(%rdi), %xmm1
7871 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7872 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7873 ; SSE-NEXT:    movapd 3056(%rdi), %xmm2
7874 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7875 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7876 ; SSE-NEXT:    movapd 3120(%rdi), %xmm1
7877 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7878 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7879 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
7880 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7881 ; SSE-NEXT:    movapd 3136(%rdi), %xmm12
7882 ; SSE-NEXT:    movapd 3184(%rdi), %xmm0
7883 ; SSE-NEXT:    movapd %xmm0, %xmm10
7884 ; SSE-NEXT:    movsd {{.*#+}} xmm10 = xmm12[0],xmm10[1]
7885 ; SSE-NEXT:    movapd 3200(%rdi), %xmm1
7886 ; SSE-NEXT:    shufpd {{.*#+}} xmm12 = xmm12[1],xmm1[0]
7887 ; SSE-NEXT:    movapd 3152(%rdi), %xmm2
7888 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7889 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7890 ; SSE-NEXT:    movapd 3216(%rdi), %xmm1
7891 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7892 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7893 ; SSE-NEXT:    movapd 3168(%rdi), %xmm2
7894 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7895 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7896 ; SSE-NEXT:    movapd 3232(%rdi), %xmm1
7897 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7898 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7899 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
7900 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7901 ; SSE-NEXT:    movapd 3248(%rdi), %xmm9
7902 ; SSE-NEXT:    movapd 3296(%rdi), %xmm0
7903 ; SSE-NEXT:    movapd %xmm0, %xmm7
7904 ; SSE-NEXT:    movsd {{.*#+}} xmm7 = xmm9[0],xmm7[1]
7905 ; SSE-NEXT:    movapd 3312(%rdi), %xmm15
7906 ; SSE-NEXT:    shufpd {{.*#+}} xmm9 = xmm9[1],xmm15[0]
7907 ; SSE-NEXT:    movapd 3264(%rdi), %xmm2
7908 ; SSE-NEXT:    movsd {{.*#+}} xmm15 = xmm2[0],xmm15[1]
7909 ; SSE-NEXT:    movapd 3328(%rdi), %xmm1
7910 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7911 ; SSE-NEXT:    movapd %xmm2, (%rsp) # 16-byte Spill
7912 ; SSE-NEXT:    movapd 3280(%rdi), %xmm2
7913 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7914 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7915 ; SSE-NEXT:    movapd 3344(%rdi), %xmm1
7916 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7917 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7918 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
7919 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7920 ; SSE-NEXT:    movapd 3360(%rdi), %xmm6
7921 ; SSE-NEXT:    movapd 3408(%rdi), %xmm0
7922 ; SSE-NEXT:    movapd %xmm0, %xmm4
7923 ; SSE-NEXT:    movsd {{.*#+}} xmm4 = xmm6[0],xmm4[1]
7924 ; SSE-NEXT:    movapd 3424(%rdi), %xmm11
7925 ; SSE-NEXT:    shufpd {{.*#+}} xmm6 = xmm6[1],xmm11[0]
7926 ; SSE-NEXT:    movapd 3376(%rdi), %xmm2
7927 ; SSE-NEXT:    movsd {{.*#+}} xmm11 = xmm2[0],xmm11[1]
7928 ; SSE-NEXT:    movapd 3440(%rdi), %xmm1
7929 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7930 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7931 ; SSE-NEXT:    movapd 3392(%rdi), %xmm2
7932 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
7933 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7934 ; SSE-NEXT:    movapd 3456(%rdi), %xmm1
7935 ; SSE-NEXT:    shufpd {{.*#+}} xmm2 = xmm2[1],xmm1[0]
7936 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7937 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
7938 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7939 ; SSE-NEXT:    movapd 3472(%rdi), %xmm5
7940 ; SSE-NEXT:    movapd 3520(%rdi), %xmm3
7941 ; SSE-NEXT:    movapd %xmm3, %xmm2
7942 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm5[0],xmm2[1]
7943 ; SSE-NEXT:    movapd 3536(%rdi), %xmm8
7944 ; SSE-NEXT:    shufpd {{.*#+}} xmm5 = xmm5[1],xmm8[0]
7945 ; SSE-NEXT:    movapd 3488(%rdi), %xmm13
7946 ; SSE-NEXT:    movsd {{.*#+}} xmm8 = xmm13[0],xmm8[1]
7947 ; SSE-NEXT:    movapd 3552(%rdi), %xmm0
7948 ; SSE-NEXT:    shufpd {{.*#+}} xmm13 = xmm13[1],xmm0[0]
7949 ; SSE-NEXT:    movapd 3504(%rdi), %xmm1
7950 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
7951 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7952 ; SSE-NEXT:    movapd %xmm1, %xmm0
7953 ; SSE-NEXT:    movapd 3568(%rdi), %xmm1
7954 ; SSE-NEXT:    shufpd {{.*#+}} xmm0 = xmm0[1],xmm1[0]
7955 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7956 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm3[0],xmm1[1]
7957 ; SSE-NEXT:    movapd %xmm2, 496(%rsi)
7958 ; SSE-NEXT:    movapd %xmm4, 480(%rsi)
7959 ; SSE-NEXT:    movapd %xmm7, 464(%rsi)
7960 ; SSE-NEXT:    movapd %xmm10, 448(%rsi)
7961 ; SSE-NEXT:    movapd %xmm14, 432(%rsi)
7962 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7963 ; SSE-NEXT:    movaps %xmm0, 416(%rsi)
7964 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7965 ; SSE-NEXT:    movaps %xmm0, 400(%rsi)
7966 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7967 ; SSE-NEXT:    movaps %xmm0, 384(%rsi)
7968 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7969 ; SSE-NEXT:    movaps %xmm0, 368(%rsi)
7970 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7971 ; SSE-NEXT:    movaps %xmm0, 352(%rsi)
7972 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7973 ; SSE-NEXT:    movaps %xmm0, 336(%rsi)
7974 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7975 ; SSE-NEXT:    movaps %xmm0, 320(%rsi)
7976 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7977 ; SSE-NEXT:    movaps %xmm0, 304(%rsi)
7978 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7979 ; SSE-NEXT:    movaps %xmm0, 288(%rsi)
7980 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7981 ; SSE-NEXT:    movaps %xmm0, 272(%rsi)
7982 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7983 ; SSE-NEXT:    movaps %xmm0, 256(%rsi)
7984 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7985 ; SSE-NEXT:    movaps %xmm0, 240(%rsi)
7986 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7987 ; SSE-NEXT:    movaps %xmm0, 224(%rsi)
7988 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7989 ; SSE-NEXT:    movaps %xmm0, 208(%rsi)
7990 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7991 ; SSE-NEXT:    movaps %xmm0, 192(%rsi)
7992 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7993 ; SSE-NEXT:    movaps %xmm0, 176(%rsi)
7994 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7995 ; SSE-NEXT:    movaps %xmm0, 160(%rsi)
7996 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7997 ; SSE-NEXT:    movaps %xmm0, 144(%rsi)
7998 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7999 ; SSE-NEXT:    movaps %xmm0, 128(%rsi)
8000 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8001 ; SSE-NEXT:    movaps %xmm0, 112(%rsi)
8002 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8003 ; SSE-NEXT:    movaps %xmm0, 96(%rsi)
8004 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8005 ; SSE-NEXT:    movaps %xmm0, 80(%rsi)
8006 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8007 ; SSE-NEXT:    movaps %xmm0, 64(%rsi)
8008 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8009 ; SSE-NEXT:    movaps %xmm0, 48(%rsi)
8010 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8011 ; SSE-NEXT:    movaps %xmm0, 32(%rsi)
8012 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8013 ; SSE-NEXT:    movaps %xmm0, 16(%rsi)
8014 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8015 ; SSE-NEXT:    movaps %xmm0, (%rsi)
8016 ; SSE-NEXT:    movapd %xmm5, 496(%rdx)
8017 ; SSE-NEXT:    movapd %xmm6, 480(%rdx)
8018 ; SSE-NEXT:    movapd %xmm9, 464(%rdx)
8019 ; SSE-NEXT:    movapd %xmm12, 448(%rdx)
8020 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8021 ; SSE-NEXT:    movaps %xmm0, 432(%rdx)
8022 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8023 ; SSE-NEXT:    movaps %xmm0, 416(%rdx)
8024 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8025 ; SSE-NEXT:    movaps %xmm0, 400(%rdx)
8026 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8027 ; SSE-NEXT:    movaps %xmm0, 384(%rdx)
8028 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8029 ; SSE-NEXT:    movaps %xmm0, 368(%rdx)
8030 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8031 ; SSE-NEXT:    movaps %xmm0, 352(%rdx)
8032 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8033 ; SSE-NEXT:    movaps %xmm0, 336(%rdx)
8034 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8035 ; SSE-NEXT:    movaps %xmm0, 320(%rdx)
8036 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8037 ; SSE-NEXT:    movaps %xmm0, 304(%rdx)
8038 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8039 ; SSE-NEXT:    movaps %xmm0, 288(%rdx)
8040 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8041 ; SSE-NEXT:    movaps %xmm0, 272(%rdx)
8042 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8043 ; SSE-NEXT:    movaps %xmm0, 256(%rdx)
8044 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8045 ; SSE-NEXT:    movaps %xmm0, 240(%rdx)
8046 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8047 ; SSE-NEXT:    movaps %xmm0, 224(%rdx)
8048 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8049 ; SSE-NEXT:    movaps %xmm0, 208(%rdx)
8050 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8051 ; SSE-NEXT:    movaps %xmm0, 192(%rdx)
8052 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8053 ; SSE-NEXT:    movaps %xmm0, 176(%rdx)
8054 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8055 ; SSE-NEXT:    movaps %xmm0, 160(%rdx)
8056 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8057 ; SSE-NEXT:    movaps %xmm0, 144(%rdx)
8058 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8059 ; SSE-NEXT:    movaps %xmm0, 128(%rdx)
8060 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8061 ; SSE-NEXT:    movaps %xmm0, 112(%rdx)
8062 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8063 ; SSE-NEXT:    movaps %xmm0, 96(%rdx)
8064 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8065 ; SSE-NEXT:    movaps %xmm0, 80(%rdx)
8066 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8067 ; SSE-NEXT:    movaps %xmm0, 64(%rdx)
8068 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8069 ; SSE-NEXT:    movaps %xmm0, 48(%rdx)
8070 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8071 ; SSE-NEXT:    movaps %xmm0, 32(%rdx)
8072 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8073 ; SSE-NEXT:    movaps %xmm0, 16(%rdx)
8074 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8075 ; SSE-NEXT:    movaps %xmm0, (%rdx)
8076 ; SSE-NEXT:    movapd %xmm8, 496(%rcx)
8077 ; SSE-NEXT:    movapd %xmm11, 480(%rcx)
8078 ; SSE-NEXT:    movapd %xmm15, 464(%rcx)
8079 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8080 ; SSE-NEXT:    movaps %xmm0, 448(%rcx)
8081 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8082 ; SSE-NEXT:    movaps %xmm0, 432(%rcx)
8083 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8084 ; SSE-NEXT:    movaps %xmm0, 416(%rcx)
8085 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8086 ; SSE-NEXT:    movaps %xmm0, 400(%rcx)
8087 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8088 ; SSE-NEXT:    movaps %xmm0, 384(%rcx)
8089 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8090 ; SSE-NEXT:    movaps %xmm0, 368(%rcx)
8091 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8092 ; SSE-NEXT:    movaps %xmm0, 352(%rcx)
8093 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8094 ; SSE-NEXT:    movaps %xmm0, 336(%rcx)
8095 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8096 ; SSE-NEXT:    movaps %xmm0, 320(%rcx)
8097 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8098 ; SSE-NEXT:    movaps %xmm0, 304(%rcx)
8099 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8100 ; SSE-NEXT:    movaps %xmm0, 288(%rcx)
8101 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8102 ; SSE-NEXT:    movaps %xmm0, 272(%rcx)
8103 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8104 ; SSE-NEXT:    movaps %xmm0, 256(%rcx)
8105 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8106 ; SSE-NEXT:    movaps %xmm0, 240(%rcx)
8107 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8108 ; SSE-NEXT:    movaps %xmm0, 224(%rcx)
8109 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8110 ; SSE-NEXT:    movaps %xmm0, 208(%rcx)
8111 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8112 ; SSE-NEXT:    movaps %xmm0, 192(%rcx)
8113 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8114 ; SSE-NEXT:    movaps %xmm0, 176(%rcx)
8115 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8116 ; SSE-NEXT:    movaps %xmm0, 160(%rcx)
8117 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8118 ; SSE-NEXT:    movaps %xmm0, 144(%rcx)
8119 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8120 ; SSE-NEXT:    movaps %xmm0, 128(%rcx)
8121 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8122 ; SSE-NEXT:    movaps %xmm0, 112(%rcx)
8123 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8124 ; SSE-NEXT:    movaps %xmm0, 96(%rcx)
8125 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8126 ; SSE-NEXT:    movaps %xmm0, 80(%rcx)
8127 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8128 ; SSE-NEXT:    movaps %xmm0, 64(%rcx)
8129 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8130 ; SSE-NEXT:    movaps %xmm0, 48(%rcx)
8131 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8132 ; SSE-NEXT:    movaps %xmm0, 32(%rcx)
8133 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8134 ; SSE-NEXT:    movaps %xmm0, 16(%rcx)
8135 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8136 ; SSE-NEXT:    movaps %xmm0, (%rcx)
8137 ; SSE-NEXT:    movapd %xmm13, 496(%r8)
8138 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8139 ; SSE-NEXT:    movaps %xmm0, 480(%r8)
8140 ; SSE-NEXT:    movaps (%rsp), %xmm0 # 16-byte Reload
8141 ; SSE-NEXT:    movaps %xmm0, 464(%r8)
8142 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8143 ; SSE-NEXT:    movaps %xmm0, 448(%r8)
8144 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8145 ; SSE-NEXT:    movaps %xmm0, 432(%r8)
8146 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8147 ; SSE-NEXT:    movaps %xmm0, 416(%r8)
8148 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8149 ; SSE-NEXT:    movaps %xmm0, 400(%r8)
8150 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8151 ; SSE-NEXT:    movaps %xmm0, 384(%r8)
8152 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8153 ; SSE-NEXT:    movaps %xmm0, 368(%r8)
8154 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8155 ; SSE-NEXT:    movaps %xmm0, 352(%r8)
8156 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8157 ; SSE-NEXT:    movaps %xmm0, 336(%r8)
8158 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8159 ; SSE-NEXT:    movaps %xmm0, 320(%r8)
8160 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8161 ; SSE-NEXT:    movaps %xmm0, 304(%r8)
8162 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8163 ; SSE-NEXT:    movaps %xmm0, 288(%r8)
8164 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8165 ; SSE-NEXT:    movaps %xmm0, 272(%r8)
8166 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8167 ; SSE-NEXT:    movaps %xmm0, 256(%r8)
8168 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8169 ; SSE-NEXT:    movaps %xmm0, 240(%r8)
8170 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8171 ; SSE-NEXT:    movaps %xmm0, 224(%r8)
8172 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8173 ; SSE-NEXT:    movaps %xmm0, 208(%r8)
8174 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8175 ; SSE-NEXT:    movaps %xmm0, 192(%r8)
8176 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8177 ; SSE-NEXT:    movaps %xmm0, 176(%r8)
8178 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8179 ; SSE-NEXT:    movaps %xmm0, 160(%r8)
8180 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8181 ; SSE-NEXT:    movaps %xmm0, 144(%r8)
8182 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8183 ; SSE-NEXT:    movaps %xmm0, 128(%r8)
8184 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8185 ; SSE-NEXT:    movaps %xmm0, 112(%r8)
8186 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8187 ; SSE-NEXT:    movaps %xmm0, 96(%r8)
8188 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8189 ; SSE-NEXT:    movaps %xmm0, 80(%r8)
8190 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8191 ; SSE-NEXT:    movaps %xmm0, 64(%r8)
8192 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8193 ; SSE-NEXT:    movaps %xmm0, 48(%r8)
8194 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8195 ; SSE-NEXT:    movaps %xmm0, 32(%r8)
8196 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8197 ; SSE-NEXT:    movaps %xmm0, 16(%r8)
8198 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8199 ; SSE-NEXT:    movaps %xmm0, (%r8)
8200 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8201 ; SSE-NEXT:    movaps %xmm0, 496(%r9)
8202 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8203 ; SSE-NEXT:    movaps %xmm0, 480(%r9)
8204 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8205 ; SSE-NEXT:    movaps %xmm0, 464(%r9)
8206 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8207 ; SSE-NEXT:    movaps %xmm0, 448(%r9)
8208 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8209 ; SSE-NEXT:    movaps %xmm0, 432(%r9)
8210 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8211 ; SSE-NEXT:    movaps %xmm0, 416(%r9)
8212 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8213 ; SSE-NEXT:    movaps %xmm0, 400(%r9)
8214 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8215 ; SSE-NEXT:    movaps %xmm0, 384(%r9)
8216 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8217 ; SSE-NEXT:    movaps %xmm0, 368(%r9)
8218 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8219 ; SSE-NEXT:    movaps %xmm0, 352(%r9)
8220 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8221 ; SSE-NEXT:    movaps %xmm0, 336(%r9)
8222 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8223 ; SSE-NEXT:    movaps %xmm0, 320(%r9)
8224 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8225 ; SSE-NEXT:    movaps %xmm0, 304(%r9)
8226 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8227 ; SSE-NEXT:    movaps %xmm0, 288(%r9)
8228 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8229 ; SSE-NEXT:    movaps %xmm0, 272(%r9)
8230 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8231 ; SSE-NEXT:    movaps %xmm0, 256(%r9)
8232 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8233 ; SSE-NEXT:    movaps %xmm0, 240(%r9)
8234 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8235 ; SSE-NEXT:    movaps %xmm0, 224(%r9)
8236 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8237 ; SSE-NEXT:    movaps %xmm0, 208(%r9)
8238 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8239 ; SSE-NEXT:    movaps %xmm0, 192(%r9)
8240 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8241 ; SSE-NEXT:    movaps %xmm0, 176(%r9)
8242 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8243 ; SSE-NEXT:    movaps %xmm0, 160(%r9)
8244 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8245 ; SSE-NEXT:    movaps %xmm0, 144(%r9)
8246 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8247 ; SSE-NEXT:    movaps %xmm0, 128(%r9)
8248 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8249 ; SSE-NEXT:    movaps %xmm0, 112(%r9)
8250 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8251 ; SSE-NEXT:    movaps %xmm0, 96(%r9)
8252 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8253 ; SSE-NEXT:    movaps %xmm0, 80(%r9)
8254 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8255 ; SSE-NEXT:    movaps %xmm0, 64(%r9)
8256 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8257 ; SSE-NEXT:    movaps %xmm0, 48(%r9)
8258 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8259 ; SSE-NEXT:    movaps %xmm0, 32(%r9)
8260 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8261 ; SSE-NEXT:    movaps %xmm0, 16(%r9)
8262 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8263 ; SSE-NEXT:    movaps %xmm0, (%r9)
8264 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
8265 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8266 ; SSE-NEXT:    movaps %xmm0, 496(%rax)
8267 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8268 ; SSE-NEXT:    movaps %xmm0, 480(%rax)
8269 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8270 ; SSE-NEXT:    movaps %xmm0, 464(%rax)
8271 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8272 ; SSE-NEXT:    movaps %xmm0, 448(%rax)
8273 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8274 ; SSE-NEXT:    movaps %xmm0, 432(%rax)
8275 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8276 ; SSE-NEXT:    movaps %xmm0, 416(%rax)
8277 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8278 ; SSE-NEXT:    movaps %xmm0, 400(%rax)
8279 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8280 ; SSE-NEXT:    movaps %xmm0, 384(%rax)
8281 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8282 ; SSE-NEXT:    movaps %xmm0, 368(%rax)
8283 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8284 ; SSE-NEXT:    movaps %xmm0, 352(%rax)
8285 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8286 ; SSE-NEXT:    movaps %xmm0, 336(%rax)
8287 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8288 ; SSE-NEXT:    movaps %xmm0, 320(%rax)
8289 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8290 ; SSE-NEXT:    movaps %xmm0, 304(%rax)
8291 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8292 ; SSE-NEXT:    movaps %xmm0, 288(%rax)
8293 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8294 ; SSE-NEXT:    movaps %xmm0, 272(%rax)
8295 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8296 ; SSE-NEXT:    movaps %xmm0, 256(%rax)
8297 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8298 ; SSE-NEXT:    movaps %xmm0, 240(%rax)
8299 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8300 ; SSE-NEXT:    movaps %xmm0, 224(%rax)
8301 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8302 ; SSE-NEXT:    movaps %xmm0, 208(%rax)
8303 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8304 ; SSE-NEXT:    movaps %xmm0, 192(%rax)
8305 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8306 ; SSE-NEXT:    movaps %xmm0, 176(%rax)
8307 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8308 ; SSE-NEXT:    movaps %xmm0, 160(%rax)
8309 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8310 ; SSE-NEXT:    movaps %xmm0, 144(%rax)
8311 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8312 ; SSE-NEXT:    movaps %xmm0, 128(%rax)
8313 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8314 ; SSE-NEXT:    movaps %xmm0, 112(%rax)
8315 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8316 ; SSE-NEXT:    movaps %xmm0, 96(%rax)
8317 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8318 ; SSE-NEXT:    movaps %xmm0, 80(%rax)
8319 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8320 ; SSE-NEXT:    movaps %xmm0, 64(%rax)
8321 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8322 ; SSE-NEXT:    movaps %xmm0, 48(%rax)
8323 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8324 ; SSE-NEXT:    movaps %xmm0, 32(%rax)
8325 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8326 ; SSE-NEXT:    movaps %xmm0, 16(%rax)
8327 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8328 ; SSE-NEXT:    movaps %xmm0, (%rax)
8329 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
8330 ; SSE-NEXT:    movapd %xmm1, 496(%rax)
8331 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8332 ; SSE-NEXT:    movaps %xmm0, 480(%rax)
8333 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8334 ; SSE-NEXT:    movaps %xmm0, 464(%rax)
8335 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8336 ; SSE-NEXT:    movaps %xmm0, 448(%rax)
8337 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8338 ; SSE-NEXT:    movaps %xmm0, 432(%rax)
8339 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8340 ; SSE-NEXT:    movaps %xmm0, 416(%rax)
8341 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8342 ; SSE-NEXT:    movaps %xmm0, 400(%rax)
8343 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8344 ; SSE-NEXT:    movaps %xmm0, 384(%rax)
8345 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8346 ; SSE-NEXT:    movaps %xmm0, 368(%rax)
8347 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8348 ; SSE-NEXT:    movaps %xmm0, 352(%rax)
8349 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8350 ; SSE-NEXT:    movaps %xmm0, 336(%rax)
8351 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8352 ; SSE-NEXT:    movaps %xmm0, 320(%rax)
8353 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8354 ; SSE-NEXT:    movaps %xmm0, 304(%rax)
8355 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8356 ; SSE-NEXT:    movaps %xmm0, 288(%rax)
8357 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8358 ; SSE-NEXT:    movaps %xmm0, 272(%rax)
8359 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8360 ; SSE-NEXT:    movaps %xmm0, 256(%rax)
8361 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8362 ; SSE-NEXT:    movaps %xmm0, 240(%rax)
8363 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8364 ; SSE-NEXT:    movaps %xmm0, 224(%rax)
8365 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8366 ; SSE-NEXT:    movaps %xmm0, 208(%rax)
8367 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8368 ; SSE-NEXT:    movaps %xmm0, 192(%rax)
8369 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8370 ; SSE-NEXT:    movaps %xmm0, 176(%rax)
8371 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8372 ; SSE-NEXT:    movaps %xmm0, 160(%rax)
8373 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8374 ; SSE-NEXT:    movaps %xmm0, 144(%rax)
8375 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8376 ; SSE-NEXT:    movaps %xmm0, 128(%rax)
8377 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8378 ; SSE-NEXT:    movaps %xmm0, 112(%rax)
8379 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8380 ; SSE-NEXT:    movaps %xmm0, 96(%rax)
8381 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8382 ; SSE-NEXT:    movaps %xmm0, 80(%rax)
8383 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8384 ; SSE-NEXT:    movaps %xmm0, 64(%rax)
8385 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8386 ; SSE-NEXT:    movaps %xmm0, 48(%rax)
8387 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8388 ; SSE-NEXT:    movaps %xmm0, 32(%rax)
8389 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8390 ; SSE-NEXT:    movaps %xmm0, 16(%rax)
8391 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8392 ; SSE-NEXT:    movaps %xmm0, (%rax)
8393 ; SSE-NEXT:    addq $3240, %rsp # imm = 0xCA8
8394 ; SSE-NEXT:    retq
8396 ; AVX1-ONLY-LABEL: load_i64_stride7_vf64:
8397 ; AVX1-ONLY:       # %bb.0:
8398 ; AVX1-ONLY-NEXT:    subq $4232, %rsp # imm = 0x1088
8399 ; AVX1-ONLY-NEXT:    vmovaps 1216(%rdi), %ymm3
8400 ; AVX1-ONLY-NEXT:    vmovaps 768(%rdi), %ymm4
8401 ; AVX1-ONLY-NEXT:    vmovaps 320(%rdi), %ymm5
8402 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 384(%rdi), %ymm0, %ymm0
8403 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8404 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm5[0,1,2,3,4,5],ymm0[6,7]
8405 ; AVX1-ONLY-NEXT:    vmovaps 224(%rdi), %xmm10
8406 ; AVX1-ONLY-NEXT:    vmovaps 272(%rdi), %xmm1
8407 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8408 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm10[0,1],xmm1[2,3]
8409 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
8410 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8411 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 832(%rdi), %ymm0, %ymm0
8412 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8413 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3,4,5],ymm0[6,7]
8414 ; AVX1-ONLY-NEXT:    vmovaps 672(%rdi), %xmm11
8415 ; AVX1-ONLY-NEXT:    vmovaps 720(%rdi), %xmm1
8416 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8417 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm11[0,1],xmm1[2,3]
8418 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
8419 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8420 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 1280(%rdi), %ymm0, %ymm0
8421 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8422 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm0[6,7]
8423 ; AVX1-ONLY-NEXT:    vmovaps 1120(%rdi), %xmm12
8424 ; AVX1-ONLY-NEXT:    vmovaps 1168(%rdi), %xmm1
8425 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8426 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm12[0,1],xmm1[2,3]
8427 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
8428 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8429 ; AVX1-ONLY-NEXT:    vmovapd 1664(%rdi), %ymm6
8430 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 1728(%rdi), %ymm0, %ymm0
8431 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8432 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm6[0,1,2],ymm0[3]
8433 ; AVX1-ONLY-NEXT:    vmovapd 1568(%rdi), %xmm2
8434 ; AVX1-ONLY-NEXT:    vmovapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8435 ; AVX1-ONLY-NEXT:    vmovapd 1616(%rdi), %xmm1
8436 ; AVX1-ONLY-NEXT:    vmovapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8437 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
8438 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
8439 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8440 ; AVX1-ONLY-NEXT:    vmovapd 2112(%rdi), %ymm7
8441 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 2176(%rdi), %ymm0, %ymm0
8442 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8443 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm7[0,1,2],ymm0[3]
8444 ; AVX1-ONLY-NEXT:    vmovapd 2016(%rdi), %xmm2
8445 ; AVX1-ONLY-NEXT:    vmovapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8446 ; AVX1-ONLY-NEXT:    vmovapd 2064(%rdi), %xmm1
8447 ; AVX1-ONLY-NEXT:    vmovapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8448 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
8449 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
8450 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8451 ; AVX1-ONLY-NEXT:    vmovapd 2560(%rdi), %ymm8
8452 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 2624(%rdi), %ymm0, %ymm0
8453 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8454 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm8[0,1,2],ymm0[3]
8455 ; AVX1-ONLY-NEXT:    vmovapd 2464(%rdi), %xmm2
8456 ; AVX1-ONLY-NEXT:    vmovapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8457 ; AVX1-ONLY-NEXT:    vmovapd 2512(%rdi), %xmm1
8458 ; AVX1-ONLY-NEXT:    vmovapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8459 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm1 = xmm2[0],xmm1[1]
8460 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
8461 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8462 ; AVX1-ONLY-NEXT:    vmovaps 3008(%rdi), %ymm1
8463 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8464 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 3072(%rdi), %ymm0, %ymm0
8465 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8466 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm0[6,7]
8467 ; AVX1-ONLY-NEXT:    vmovaps 2912(%rdi), %xmm0
8468 ; AVX1-ONLY-NEXT:    vmovaps 2960(%rdi), %xmm2
8469 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8470 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm0[0,1],xmm2[2,3]
8471 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
8472 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8473 ; AVX1-ONLY-NEXT:    vmovaps 3456(%rdi), %ymm2
8474 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8475 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 3520(%rdi), %ymm0, %ymm1
8476 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8477 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
8478 ; AVX1-ONLY-NEXT:    vmovaps 3360(%rdi), %xmm15
8479 ; AVX1-ONLY-NEXT:    vmovaps 3408(%rdi), %xmm2
8480 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8481 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm15[0,1],xmm2[2,3]
8482 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
8483 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8484 ; AVX1-ONLY-NEXT:    vmovaps 96(%rdi), %ymm2
8485 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8486 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 160(%rdi), %ymm0, %ymm1
8487 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8488 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
8489 ; AVX1-ONLY-NEXT:    vmovaps 48(%rdi), %xmm2
8490 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8491 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = mem[0,1],xmm2[2,3]
8492 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
8493 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8494 ; AVX1-ONLY-NEXT:    vmovaps 544(%rdi), %ymm2
8495 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8496 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 608(%rdi), %ymm0, %ymm1
8497 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8498 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
8499 ; AVX1-ONLY-NEXT:    vmovaps 448(%rdi), %xmm9
8500 ; AVX1-ONLY-NEXT:    vmovaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8501 ; AVX1-ONLY-NEXT:    vmovaps 496(%rdi), %xmm2
8502 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8503 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm9[0,1],xmm2[2,3]
8504 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
8505 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8506 ; AVX1-ONLY-NEXT:    vmovaps 992(%rdi), %ymm2
8507 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8508 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 1056(%rdi), %ymm0, %ymm1
8509 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8510 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
8511 ; AVX1-ONLY-NEXT:    vmovaps 896(%rdi), %xmm9
8512 ; AVX1-ONLY-NEXT:    vmovaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8513 ; AVX1-ONLY-NEXT:    vmovaps 944(%rdi), %xmm2
8514 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8515 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm9[0,1],xmm2[2,3]
8516 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
8517 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8518 ; AVX1-ONLY-NEXT:    vmovaps 1440(%rdi), %ymm2
8519 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8520 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 1504(%rdi), %ymm0, %ymm1
8521 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8522 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
8523 ; AVX1-ONLY-NEXT:    vmovaps 1344(%rdi), %xmm9
8524 ; AVX1-ONLY-NEXT:    vmovaps 1392(%rdi), %xmm2
8525 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8526 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm9[0,1],xmm2[2,3]
8527 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
8528 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8529 ; AVX1-ONLY-NEXT:    vmovaps 1888(%rdi), %ymm2
8530 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8531 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 1952(%rdi), %ymm0, %ymm1
8532 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8533 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
8534 ; AVX1-ONLY-NEXT:    vmovaps 1792(%rdi), %xmm13
8535 ; AVX1-ONLY-NEXT:    vmovaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8536 ; AVX1-ONLY-NEXT:    vmovaps 1840(%rdi), %xmm2
8537 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8538 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm13[0,1],xmm2[2,3]
8539 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
8540 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8541 ; AVX1-ONLY-NEXT:    vmovaps 2336(%rdi), %ymm2
8542 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8543 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 2400(%rdi), %ymm0, %ymm1
8544 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8545 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
8546 ; AVX1-ONLY-NEXT:    vmovaps 2240(%rdi), %xmm13
8547 ; AVX1-ONLY-NEXT:    vmovaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8548 ; AVX1-ONLY-NEXT:    vmovaps 2288(%rdi), %xmm2
8549 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8550 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm13[0,1],xmm2[2,3]
8551 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
8552 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8553 ; AVX1-ONLY-NEXT:    vmovaps 2784(%rdi), %ymm2
8554 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8555 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 2848(%rdi), %ymm0, %ymm1
8556 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8557 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
8558 ; AVX1-ONLY-NEXT:    vmovaps 2688(%rdi), %xmm13
8559 ; AVX1-ONLY-NEXT:    vmovaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8560 ; AVX1-ONLY-NEXT:    vmovaps 2736(%rdi), %xmm2
8561 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8562 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm13[0,1],xmm2[2,3]
8563 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
8564 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8565 ; AVX1-ONLY-NEXT:    vmovaps 3232(%rdi), %ymm2
8566 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8567 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 3296(%rdi), %ymm0, %ymm1
8568 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8569 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
8570 ; AVX1-ONLY-NEXT:    vmovaps 3136(%rdi), %xmm13
8571 ; AVX1-ONLY-NEXT:    vmovaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8572 ; AVX1-ONLY-NEXT:    vmovaps 3184(%rdi), %xmm2
8573 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8574 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm13[0,1],xmm2[2,3]
8575 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
8576 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8577 ; AVX1-ONLY-NEXT:    vmovdqa 288(%rdi), %xmm1
8578 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = xmm10[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
8579 ; AVX1-ONLY-NEXT:    vmovapd 384(%rdi), %ymm2
8580 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8581 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm2 = ymm5[0],ymm2[0],ymm5[3],ymm2[2]
8582 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3]
8583 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8584 ; AVX1-ONLY-NEXT:    vmovdqa 736(%rdi), %xmm1
8585 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = xmm11[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
8586 ; AVX1-ONLY-NEXT:    vmovapd 832(%rdi), %ymm14
8587 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm2 = ymm4[0],ymm14[0],ymm4[3],ymm14[2]
8588 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3]
8589 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8590 ; AVX1-ONLY-NEXT:    vmovdqa 1184(%rdi), %xmm1
8591 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = xmm12[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
8592 ; AVX1-ONLY-NEXT:    vmovapd 1280(%rdi), %ymm13
8593 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm2 = ymm3[0],ymm13[0],ymm3[3],ymm13[2]
8594 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3]
8595 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8596 ; AVX1-ONLY-NEXT:    vmovdqa 1632(%rdi), %xmm1
8597 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
8598 ; AVX1-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
8599 ; AVX1-ONLY-NEXT:    vmovapd 1728(%rdi), %ymm12
8600 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm2 = ymm6[0],ymm12[0],ymm6[3],ymm12[2]
8601 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3]
8602 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8603 ; AVX1-ONLY-NEXT:    vmovdqa 2080(%rdi), %xmm1
8604 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
8605 ; AVX1-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
8606 ; AVX1-ONLY-NEXT:    vmovapd 2176(%rdi), %ymm11
8607 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm2 = ymm7[0],ymm11[0],ymm7[3],ymm11[2]
8608 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3]
8609 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8610 ; AVX1-ONLY-NEXT:    vmovdqa 2528(%rdi), %xmm1
8611 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
8612 ; AVX1-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
8613 ; AVX1-ONLY-NEXT:    vmovapd 2624(%rdi), %ymm10
8614 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm2 = ymm8[0],ymm10[0],ymm8[3],ymm10[2]
8615 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3]
8616 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8617 ; AVX1-ONLY-NEXT:    vmovdqa 2976(%rdi), %xmm1
8618 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm0 = xmm0[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
8619 ; AVX1-ONLY-NEXT:    vmovapd 3072(%rdi), %ymm2
8620 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8621 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8622 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[3],ymm2[2]
8623 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3]
8624 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8625 ; AVX1-ONLY-NEXT:    vmovdqa 3424(%rdi), %xmm0
8626 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm0 = xmm15[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
8627 ; AVX1-ONLY-NEXT:    vmovapd 3520(%rdi), %ymm15
8628 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8629 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm1 = ymm1[0],ymm15[0],ymm1[3],ymm15[2]
8630 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3]
8631 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8632 ; AVX1-ONLY-NEXT:    vmovapd 160(%rdi), %ymm0
8633 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8634 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8635 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[3],ymm0[2]
8636 ; AVX1-ONLY-NEXT:    vmovdqa 64(%rdi), %xmm1
8637 ; AVX1-ONLY-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8638 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = mem[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
8639 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
8640 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8641 ; AVX1-ONLY-NEXT:    vmovapd 608(%rdi), %ymm0
8642 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8643 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8644 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[3],ymm0[2]
8645 ; AVX1-ONLY-NEXT:    vmovdqa 512(%rdi), %xmm1
8646 ; AVX1-ONLY-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8647 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
8648 ; AVX1-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
8649 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
8650 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8651 ; AVX1-ONLY-NEXT:    vmovapd 1056(%rdi), %ymm0
8652 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8653 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8654 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[3],ymm0[2]
8655 ; AVX1-ONLY-NEXT:    vmovdqa 960(%rdi), %xmm1
8656 ; AVX1-ONLY-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8657 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
8658 ; AVX1-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
8659 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
8660 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8661 ; AVX1-ONLY-NEXT:    vmovapd 1504(%rdi), %ymm0
8662 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8663 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8664 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[3],ymm0[2]
8665 ; AVX1-ONLY-NEXT:    vmovdqa 1408(%rdi), %xmm1
8666 ; AVX1-ONLY-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8667 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = xmm9[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
8668 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
8669 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8670 ; AVX1-ONLY-NEXT:    vmovapd 1952(%rdi), %ymm9
8671 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8672 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm0[0],ymm9[0],ymm0[3],ymm9[2]
8673 ; AVX1-ONLY-NEXT:    vmovdqa 1856(%rdi), %xmm1
8674 ; AVX1-ONLY-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8675 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
8676 ; AVX1-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
8677 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
8678 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8679 ; AVX1-ONLY-NEXT:    vmovapd 2400(%rdi), %ymm6
8680 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8681 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm0[0],ymm6[0],ymm0[3],ymm6[2]
8682 ; AVX1-ONLY-NEXT:    vmovdqa 2304(%rdi), %xmm8
8683 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm8, %xmm1 # 16-byte Folded Reload
8684 ; AVX1-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm8[0,1,2,3,4,5,6,7]
8685 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
8686 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8687 ; AVX1-ONLY-NEXT:    vmovapd 2848(%rdi), %ymm4
8688 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8689 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm0[0],ymm4[0],ymm0[3],ymm4[2]
8690 ; AVX1-ONLY-NEXT:    vmovdqa 2752(%rdi), %xmm5
8691 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm1 # 16-byte Folded Reload
8692 ; AVX1-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm5[0,1,2,3,4,5,6,7]
8693 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
8694 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8695 ; AVX1-ONLY-NEXT:    vmovapd 3296(%rdi), %ymm2
8696 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8697 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm0[0],ymm2[0],ymm0[3],ymm2[2]
8698 ; AVX1-ONLY-NEXT:    vmovdqa 3200(%rdi), %xmm3
8699 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm7 # 16-byte Folded Reload
8700 ; AVX1-ONLY-NEXT:    # xmm7 = mem[8,9,10,11,12,13,14,15],xmm3[0,1,2,3,4,5,6,7]
8701 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm7[0,1],ymm0[2,3]
8702 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8703 ; AVX1-ONLY-NEXT:    vmovaps 352(%rdi), %xmm0
8704 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8705 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
8706 ; AVX1-ONLY-NEXT:    vblendps $192, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload
8707 ; AVX1-ONLY-NEXT:    # ymm1 = ymm0[0,1,2,3,4,5],mem[6,7]
8708 ; AVX1-ONLY-NEXT:    vmovaps 240(%rdi), %xmm0
8709 ; AVX1-ONLY-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
8710 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm7 = xmm0[0,1],mem[2,3]
8711 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm7[0,1,2,3],ymm1[4,5,6,7]
8712 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8713 ; AVX1-ONLY-NEXT:    vmovaps 800(%rdi), %xmm0
8714 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8715 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
8716 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1,2],ymm14[3]
8717 ; AVX1-ONLY-NEXT:    vmovapd 688(%rdi), %xmm7
8718 ; AVX1-ONLY-NEXT:    vmovupd %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8719 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm7 = xmm7[0],mem[1]
8720 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm7[0,1],ymm0[2,3]
8721 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8722 ; AVX1-ONLY-NEXT:    vmovaps 1248(%rdi), %xmm0
8723 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8724 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
8725 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1,2],ymm13[3]
8726 ; AVX1-ONLY-NEXT:    vmovapd 1136(%rdi), %xmm7
8727 ; AVX1-ONLY-NEXT:    vmovupd %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8728 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm7 = xmm7[0],mem[1]
8729 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm7[0,1],ymm0[2,3]
8730 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8731 ; AVX1-ONLY-NEXT:    vmovaps 1696(%rdi), %xmm0
8732 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8733 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
8734 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1,2],ymm12[3]
8735 ; AVX1-ONLY-NEXT:    vmovapd 1584(%rdi), %xmm7
8736 ; AVX1-ONLY-NEXT:    vmovupd %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8737 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm7 = xmm7[0],mem[1]
8738 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm7[0,1],ymm0[2,3]
8739 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8740 ; AVX1-ONLY-NEXT:    vmovaps 2144(%rdi), %xmm0
8741 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8742 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
8743 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1,2],ymm11[3]
8744 ; AVX1-ONLY-NEXT:    vmovapd 2032(%rdi), %xmm7
8745 ; AVX1-ONLY-NEXT:    vmovupd %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8746 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm7 = xmm7[0],mem[1]
8747 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm7[0,1],ymm0[2,3]
8748 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8749 ; AVX1-ONLY-NEXT:    vmovaps 2592(%rdi), %xmm0
8750 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8751 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
8752 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1,2],ymm10[3]
8753 ; AVX1-ONLY-NEXT:    vmovapd 2480(%rdi), %xmm7
8754 ; AVX1-ONLY-NEXT:    vmovupd %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8755 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm7 = xmm7[0],mem[1]
8756 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm7[0,1],ymm0[2,3]
8757 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8758 ; AVX1-ONLY-NEXT:    vmovaps 3040(%rdi), %xmm0
8759 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8760 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
8761 ; AVX1-ONLY-NEXT:    vblendps $192, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
8762 ; AVX1-ONLY-NEXT:    # ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
8763 ; AVX1-ONLY-NEXT:    vmovaps 2928(%rdi), %xmm7
8764 ; AVX1-ONLY-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8765 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0,1],mem[2,3]
8766 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm7[0,1,2,3],ymm0[4,5,6,7]
8767 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8768 ; AVX1-ONLY-NEXT:    vmovaps 3488(%rdi), %xmm0
8769 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8770 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
8771 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1,2],ymm15[3]
8772 ; AVX1-ONLY-NEXT:    vmovapd 3376(%rdi), %xmm1
8773 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8774 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm7 = xmm1[0],mem[1]
8775 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm7[0,1],ymm0[2,3]
8776 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8777 ; AVX1-ONLY-NEXT:    vmovaps 3264(%rdi), %xmm0
8778 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8779 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
8780 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1,2],ymm2[3]
8781 ; AVX1-ONLY-NEXT:    vmovdqa 3152(%rdi), %xmm2
8782 ; AVX1-ONLY-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8783 ; AVX1-ONLY-NEXT:    vpblendw {{.*#+}} xmm1 = xmm2[0,1,2,3],xmm3[4,5,6,7]
8784 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
8785 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8786 ; AVX1-ONLY-NEXT:    vmovaps 2816(%rdi), %xmm0
8787 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8788 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
8789 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1,2],ymm4[3]
8790 ; AVX1-ONLY-NEXT:    vmovdqa 2704(%rdi), %xmm1
8791 ; AVX1-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8792 ; AVX1-ONLY-NEXT:    vpblendw {{.*#+}} xmm1 = xmm1[0,1,2,3],xmm5[4,5,6,7]
8793 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
8794 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8795 ; AVX1-ONLY-NEXT:    vmovdqa 2368(%rdi), %xmm14
8796 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm14, %ymm0, %ymm0
8797 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1,2],ymm6[3]
8798 ; AVX1-ONLY-NEXT:    vmovdqa 2256(%rdi), %xmm10
8799 ; AVX1-ONLY-NEXT:    vpblendw {{.*#+}} xmm1 = xmm10[0,1,2,3],xmm8[4,5,6,7]
8800 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
8801 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8802 ; AVX1-ONLY-NEXT:    vmovdqa 1920(%rdi), %xmm8
8803 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm1
8804 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm1[0,1,2],ymm9[3]
8805 ; AVX1-ONLY-NEXT:    vmovapd 1808(%rdi), %xmm5
8806 ; AVX1-ONLY-NEXT:    vblendpd $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm2 # 16-byte Folded Reload
8807 ; AVX1-ONLY-NEXT:    # xmm2 = xmm5[0],mem[1]
8808 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3]
8809 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8810 ; AVX1-ONLY-NEXT:    vmovdqa 1472(%rdi), %xmm7
8811 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm1
8812 ; AVX1-ONLY-NEXT:    vblendpd $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
8813 ; AVX1-ONLY-NEXT:    # ymm1 = ymm1[0,1,2],mem[3]
8814 ; AVX1-ONLY-NEXT:    vmovapd 1360(%rdi), %xmm3
8815 ; AVX1-ONLY-NEXT:    vblendpd $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm2 # 16-byte Folded Reload
8816 ; AVX1-ONLY-NEXT:    # xmm2 = xmm3[0],mem[1]
8817 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3]
8818 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8819 ; AVX1-ONLY-NEXT:    vmovdqa 1024(%rdi), %xmm4
8820 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm1
8821 ; AVX1-ONLY-NEXT:    vblendpd $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
8822 ; AVX1-ONLY-NEXT:    # ymm2 = ymm1[0,1,2],mem[3]
8823 ; AVX1-ONLY-NEXT:    vmovapd 912(%rdi), %xmm1
8824 ; AVX1-ONLY-NEXT:    vblendpd $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm6 # 16-byte Folded Reload
8825 ; AVX1-ONLY-NEXT:    # xmm6 = xmm1[0],mem[1]
8826 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm6[0,1],ymm2[2,3]
8827 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8828 ; AVX1-ONLY-NEXT:    vmovdqa 576(%rdi), %xmm9
8829 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm9, %ymm0, %ymm2
8830 ; AVX1-ONLY-NEXT:    vblendpd $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
8831 ; AVX1-ONLY-NEXT:    # ymm2 = ymm2[0,1,2],mem[3]
8832 ; AVX1-ONLY-NEXT:    vmovapd 464(%rdi), %xmm6
8833 ; AVX1-ONLY-NEXT:    vblendpd $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6, %xmm11 # 16-byte Folded Reload
8834 ; AVX1-ONLY-NEXT:    # xmm11 = xmm6[0],mem[1]
8835 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm11[0,1],ymm2[2,3]
8836 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8837 ; AVX1-ONLY-NEXT:    vmovdqa 128(%rdi), %xmm2
8838 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm11
8839 ; AVX1-ONLY-NEXT:    vblendpd $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm11 # 32-byte Folded Reload
8840 ; AVX1-ONLY-NEXT:    # ymm11 = ymm11[0,1,2],mem[3]
8841 ; AVX1-ONLY-NEXT:    vmovapd 16(%rdi), %xmm12
8842 ; AVX1-ONLY-NEXT:    vblendpd $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm12, %xmm13 # 16-byte Folded Reload
8843 ; AVX1-ONLY-NEXT:    # xmm13 = xmm12[0],mem[1]
8844 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm11 = ymm13[0,1],ymm11[2,3]
8845 ; AVX1-ONLY-NEXT:    vmovupd %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8846 ; AVX1-ONLY-NEXT:    vmovapd 80(%rdi), %xmm13
8847 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm11 = ymm12[1],ymm13[0],ymm12[2],ymm13[2]
8848 ; AVX1-ONLY-NEXT:    vmovdqa 192(%rdi), %xmm12
8849 ; AVX1-ONLY-NEXT:    vmovdqa %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8850 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm2 = xmm2[8,9,10,11,12,13,14,15],xmm12[0,1,2,3,4,5,6,7]
8851 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
8852 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm11[0,1],ymm2[2,3]
8853 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8854 ; AVX1-ONLY-NEXT:    vmovapd 304(%rdi), %xmm2
8855 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8856 ; AVX1-ONLY-NEXT:    vmovupd (%rsp), %ymm0 # 32-byte Reload
8857 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm2 = ymm0[1],ymm2[0],ymm0[2],ymm2[2]
8858 ; AVX1-ONLY-NEXT:    vmovdqa 416(%rdi), %xmm0
8859 ; AVX1-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8860 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm11 # 16-byte Folded Reload
8861 ; AVX1-ONLY-NEXT:    # xmm11 = mem[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
8862 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm11, %ymm0, %ymm11
8863 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm2[0,1],ymm11[2,3]
8864 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8865 ; AVX1-ONLY-NEXT:    vmovapd 528(%rdi), %xmm11
8866 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm6 = ymm6[1],ymm11[0],ymm6[2],ymm11[2]
8867 ; AVX1-ONLY-NEXT:    vmovdqa 640(%rdi), %xmm2
8868 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm9 = xmm9[8,9,10,11,12,13,14,15],xmm2[0,1,2,3,4,5,6,7]
8869 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm9, %ymm0, %ymm9
8870 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm6 = ymm6[0,1],ymm9[2,3]
8871 ; AVX1-ONLY-NEXT:    vmovupd %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8872 ; AVX1-ONLY-NEXT:    vmovapd 752(%rdi), %xmm9
8873 ; AVX1-ONLY-NEXT:    vmovupd %ymm9, (%rsp) # 32-byte Spill
8874 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
8875 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm6 = ymm6[1],ymm9[0],ymm6[2],ymm9[2]
8876 ; AVX1-ONLY-NEXT:    vmovdqa 864(%rdi), %xmm0
8877 ; AVX1-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8878 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm9 # 16-byte Folded Reload
8879 ; AVX1-ONLY-NEXT:    # xmm9 = mem[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
8880 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm9, %ymm0, %ymm9
8881 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm6 = ymm6[0,1],ymm9[2,3]
8882 ; AVX1-ONLY-NEXT:    vmovupd %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8883 ; AVX1-ONLY-NEXT:    vmovapd 976(%rdi), %xmm9
8884 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm6 = ymm1[1],ymm9[0],ymm1[2],ymm9[2]
8885 ; AVX1-ONLY-NEXT:    vmovdqa 1088(%rdi), %xmm1
8886 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm4 = xmm4[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
8887 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
8888 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm4 = ymm6[0,1],ymm4[2,3]
8889 ; AVX1-ONLY-NEXT:    vmovupd %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8890 ; AVX1-ONLY-NEXT:    vmovapd 1200(%rdi), %xmm6
8891 ; AVX1-ONLY-NEXT:    vmovupd %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8892 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
8893 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm4 = ymm4[1],ymm6[0],ymm4[2],ymm6[2]
8894 ; AVX1-ONLY-NEXT:    vmovdqa 1312(%rdi), %xmm0
8895 ; AVX1-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8896 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm6 # 16-byte Folded Reload
8897 ; AVX1-ONLY-NEXT:    # xmm6 = mem[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
8898 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
8899 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm4 = ymm4[0,1],ymm6[2,3]
8900 ; AVX1-ONLY-NEXT:    vmovupd %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8901 ; AVX1-ONLY-NEXT:    vmovapd 1424(%rdi), %xmm0
8902 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8903 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm3 = ymm3[1],ymm0[0],ymm3[2],ymm0[2]
8904 ; AVX1-ONLY-NEXT:    vmovdqa 1536(%rdi), %xmm0
8905 ; AVX1-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8906 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm4 = xmm7[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
8907 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
8908 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm3 = ymm3[0,1],ymm4[2,3]
8909 ; AVX1-ONLY-NEXT:    vmovupd %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8910 ; AVX1-ONLY-NEXT:    vmovapd 1648(%rdi), %xmm7
8911 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
8912 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm3 = ymm3[1],ymm7[0],ymm3[2],ymm7[2]
8913 ; AVX1-ONLY-NEXT:    vmovdqa 1760(%rdi), %xmm0
8914 ; AVX1-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8915 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm4 # 16-byte Folded Reload
8916 ; AVX1-ONLY-NEXT:    # xmm4 = mem[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
8917 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
8918 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm3 = ymm3[0,1],ymm4[2,3]
8919 ; AVX1-ONLY-NEXT:    vmovupd %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8920 ; AVX1-ONLY-NEXT:    vmovapd 1872(%rdi), %xmm0
8921 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8922 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm3 = ymm5[1],ymm0[0],ymm5[2],ymm0[2]
8923 ; AVX1-ONLY-NEXT:    vmovdqa 1984(%rdi), %xmm0
8924 ; AVX1-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8925 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm0 = xmm8[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
8926 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
8927 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm3[0,1],ymm0[2,3]
8928 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8929 ; AVX1-ONLY-NEXT:    vmovapd 2096(%rdi), %xmm3
8930 ; AVX1-ONLY-NEXT:    vmovupd %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8931 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8932 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm0[1],ymm3[0],ymm0[2],ymm3[2]
8933 ; AVX1-ONLY-NEXT:    vmovdqa 2208(%rdi), %xmm3
8934 ; AVX1-ONLY-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8935 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm3 # 16-byte Folded Reload
8936 ; AVX1-ONLY-NEXT:    # xmm3 = mem[8,9,10,11,12,13,14,15],xmm3[0,1,2,3,4,5,6,7]
8937 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
8938 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm3[2,3]
8939 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8940 ; AVX1-ONLY-NEXT:    vmovapd 2320(%rdi), %xmm0
8941 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8942 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm10[1],ymm0[0],ymm10[2],ymm0[2]
8943 ; AVX1-ONLY-NEXT:    vmovdqa 2432(%rdi), %xmm3
8944 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm4 = xmm14[8,9,10,11,12,13,14,15],xmm3[0,1,2,3,4,5,6,7]
8945 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
8946 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm4[2,3]
8947 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8948 ; AVX1-ONLY-NEXT:    vmovapd 2544(%rdi), %xmm14
8949 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8950 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm0[1],ymm14[0],ymm0[2],ymm14[2]
8951 ; AVX1-ONLY-NEXT:    vmovdqa 2656(%rdi), %xmm4
8952 ; AVX1-ONLY-NEXT:    vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8953 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload
8954 ; AVX1-ONLY-NEXT:    # xmm4 = mem[8,9,10,11,12,13,14,15],xmm4[0,1,2,3,4,5,6,7]
8955 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
8956 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm4[2,3]
8957 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8958 ; AVX1-ONLY-NEXT:    vmovapd 2768(%rdi), %xmm4
8959 ; AVX1-ONLY-NEXT:    vmovupd %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8960 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8961 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm4 = ymm0[1],ymm4[0],ymm0[2],ymm4[2]
8962 ; AVX1-ONLY-NEXT:    vmovdqa 2880(%rdi), %xmm8
8963 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm8, %xmm5 # 16-byte Folded Reload
8964 ; AVX1-ONLY-NEXT:    # xmm5 = mem[8,9,10,11,12,13,14,15],xmm8[0,1,2,3,4,5,6,7]
8965 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
8966 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm4 = ymm4[0,1],ymm5[2,3]
8967 ; AVX1-ONLY-NEXT:    vmovupd %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8968 ; AVX1-ONLY-NEXT:    vmovapd 2992(%rdi), %xmm5
8969 ; AVX1-ONLY-NEXT:    vmovupd %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8970 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
8971 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm4 = ymm4[1],ymm5[0],ymm4[2],ymm5[2]
8972 ; AVX1-ONLY-NEXT:    vmovdqa 3104(%rdi), %xmm5
8973 ; AVX1-ONLY-NEXT:    vmovdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8974 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm5 # 16-byte Folded Reload
8975 ; AVX1-ONLY-NEXT:    # xmm5 = mem[8,9,10,11,12,13,14,15],xmm5[0,1,2,3,4,5,6,7]
8976 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
8977 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm4 = ymm4[0,1],ymm5[2,3]
8978 ; AVX1-ONLY-NEXT:    vmovupd %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8979 ; AVX1-ONLY-NEXT:    vmovapd 3216(%rdi), %xmm5
8980 ; AVX1-ONLY-NEXT:    vmovupd %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8981 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
8982 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm4 = ymm4[1],ymm5[0],ymm4[2],ymm5[2]
8983 ; AVX1-ONLY-NEXT:    vmovdqa 3328(%rdi), %xmm0
8984 ; AVX1-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8985 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm5 # 16-byte Folded Reload
8986 ; AVX1-ONLY-NEXT:    # xmm5 = mem[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
8987 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
8988 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm4 = ymm4[0,1],ymm5[2,3]
8989 ; AVX1-ONLY-NEXT:    vmovupd %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8990 ; AVX1-ONLY-NEXT:    vmovapd 3440(%rdi), %xmm5
8991 ; AVX1-ONLY-NEXT:    vmovupd %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8992 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
8993 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm5 = ymm4[1],ymm5[0],ymm4[2],ymm5[2]
8994 ; AVX1-ONLY-NEXT:    vmovdqa 3552(%rdi), %xmm4
8995 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm6 # 16-byte Folded Reload
8996 ; AVX1-ONLY-NEXT:    # xmm6 = mem[8,9,10,11,12,13,14,15],xmm4[0,1,2,3,4,5,6,7]
8997 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
8998 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm5 = ymm5[0,1],ymm6[2,3]
8999 ; AVX1-ONLY-NEXT:    vmovupd %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9000 ; AVX1-ONLY-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm5 # 16-byte Folded Reload
9001 ; AVX1-ONLY-NEXT:    vmovapd 128(%rdi), %ymm6
9002 ; AVX1-ONLY-NEXT:    vmovupd %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9003 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm5 = ymm6[0,1,2],ymm5[3]
9004 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm6 = mem[0],xmm13[1]
9005 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm5 = ymm6[0,1],ymm5[2,3]
9006 ; AVX1-ONLY-NEXT:    vmovupd %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9007 ; AVX1-ONLY-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm5 # 16-byte Folded Reload
9008 ; AVX1-ONLY-NEXT:    vmovapd 352(%rdi), %ymm13
9009 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm5 = ymm13[0,1,2],ymm5[3]
9010 ; AVX1-ONLY-NEXT:    vmovapd 256(%rdi), %xmm6
9011 ; AVX1-ONLY-NEXT:    vmovapd %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9012 ; AVX1-ONLY-NEXT:    vblendpd $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6, %xmm6 # 16-byte Folded Reload
9013 ; AVX1-ONLY-NEXT:    # xmm6 = xmm6[0],mem[1]
9014 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm5 = ymm6[0,1],ymm5[2,3]
9015 ; AVX1-ONLY-NEXT:    vmovupd %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9016 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
9017 ; AVX1-ONLY-NEXT:    vmovapd 576(%rdi), %ymm6
9018 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm6[0,1,2],ymm2[3]
9019 ; AVX1-ONLY-NEXT:    vmovapd 480(%rdi), %xmm0
9020 ; AVX1-ONLY-NEXT:    vmovapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9021 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm5 = xmm0[0],xmm11[1]
9022 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm5[0,1],ymm2[2,3]
9023 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9024 ; AVX1-ONLY-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 16-byte Folded Reload
9025 ; AVX1-ONLY-NEXT:    vmovapd 800(%rdi), %ymm11
9026 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm11[0,1,2],ymm2[3]
9027 ; AVX1-ONLY-NEXT:    vmovapd 704(%rdi), %xmm5
9028 ; AVX1-ONLY-NEXT:    vmovapd %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9029 ; AVX1-ONLY-NEXT:    vblendpd $2, (%rsp), %xmm5, %xmm5 # 16-byte Folded Reload
9030 ; AVX1-ONLY-NEXT:    # xmm5 = xmm5[0],mem[1]
9031 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm2 = ymm5[0,1],ymm2[2,3]
9032 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9033 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
9034 ; AVX1-ONLY-NEXT:    vmovapd 1024(%rdi), %ymm5
9035 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm5[0,1,2],ymm1[3]
9036 ; AVX1-ONLY-NEXT:    vmovapd 928(%rdi), %xmm0
9037 ; AVX1-ONLY-NEXT:    vmovapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9038 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm2 = xmm0[0],xmm9[1]
9039 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3]
9040 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, (%rsp) # 32-byte Spill
9041 ; AVX1-ONLY-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 16-byte Folded Reload
9042 ; AVX1-ONLY-NEXT:    vmovaps 1248(%rdi), %ymm0
9043 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9044 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3,4,5],ymm1[6,7]
9045 ; AVX1-ONLY-NEXT:    vmovaps 1152(%rdi), %xmm0
9046 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9047 ; AVX1-ONLY-NEXT:    vblendps $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm2 # 16-byte Folded Reload
9048 ; AVX1-ONLY-NEXT:    # xmm2 = xmm0[0,1],mem[2,3]
9049 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
9050 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9051 ; AVX1-ONLY-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 16-byte Folded Reload
9052 ; AVX1-ONLY-NEXT:    vmovaps 1472(%rdi), %ymm9
9053 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm9[0,1,2,3,4,5],ymm1[6,7]
9054 ; AVX1-ONLY-NEXT:    vmovaps 1376(%rdi), %xmm15
9055 ; AVX1-ONLY-NEXT:    vblendps $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm2 # 16-byte Folded Reload
9056 ; AVX1-ONLY-NEXT:    # xmm2 = xmm15[0,1],mem[2,3]
9057 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
9058 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9059 ; AVX1-ONLY-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 16-byte Folded Reload
9060 ; AVX1-ONLY-NEXT:    vmovapd 1696(%rdi), %ymm0
9061 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9062 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm0[0,1,2],ymm1[3]
9063 ; AVX1-ONLY-NEXT:    vmovapd 1600(%rdi), %xmm0
9064 ; AVX1-ONLY-NEXT:    vmovapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9065 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm2 = xmm0[0],xmm7[1]
9066 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3]
9067 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9068 ; AVX1-ONLY-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 16-byte Folded Reload
9069 ; AVX1-ONLY-NEXT:    vmovaps 1920(%rdi), %ymm7
9070 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm7[0,1,2,3,4,5],ymm1[6,7]
9071 ; AVX1-ONLY-NEXT:    vmovaps 1824(%rdi), %xmm12
9072 ; AVX1-ONLY-NEXT:    vblendps $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm12, %xmm2 # 16-byte Folded Reload
9073 ; AVX1-ONLY-NEXT:    # xmm2 = xmm12[0,1],mem[2,3]
9074 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
9075 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9076 ; AVX1-ONLY-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 16-byte Folded Reload
9077 ; AVX1-ONLY-NEXT:    vmovapd 2144(%rdi), %ymm10
9078 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm10[0,1,2],ymm1[3]
9079 ; AVX1-ONLY-NEXT:    vmovapd 2048(%rdi), %xmm0
9080 ; AVX1-ONLY-NEXT:    vmovapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9081 ; AVX1-ONLY-NEXT:    vblendpd $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm2 # 16-byte Folded Reload
9082 ; AVX1-ONLY-NEXT:    # xmm2 = xmm0[0],mem[1]
9083 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3]
9084 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9085 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm1
9086 ; AVX1-ONLY-NEXT:    vmovapd 2368(%rdi), %ymm3
9087 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm3[0,1,2],ymm1[3]
9088 ; AVX1-ONLY-NEXT:    vmovapd 2272(%rdi), %xmm0
9089 ; AVX1-ONLY-NEXT:    vmovapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9090 ; AVX1-ONLY-NEXT:    vblendpd $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm2 # 16-byte Folded Reload
9091 ; AVX1-ONLY-NEXT:    # xmm2 = xmm0[0],mem[1]
9092 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3]
9093 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9094 ; AVX1-ONLY-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 16-byte Folded Reload
9095 ; AVX1-ONLY-NEXT:    vmovapd 2592(%rdi), %ymm0
9096 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9097 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm0[0,1,2],ymm1[3]
9098 ; AVX1-ONLY-NEXT:    vmovapd 2496(%rdi), %xmm0
9099 ; AVX1-ONLY-NEXT:    vmovapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9100 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm2 = xmm0[0],xmm14[1]
9101 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3]
9102 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9103 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm0
9104 ; AVX1-ONLY-NEXT:    vmovapd 2816(%rdi), %ymm2
9105 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm2[0,1,2],ymm0[3]
9106 ; AVX1-ONLY-NEXT:    vmovapd 2720(%rdi), %xmm1
9107 ; AVX1-ONLY-NEXT:    vmovapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9108 ; AVX1-ONLY-NEXT:    vblendpd $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
9109 ; AVX1-ONLY-NEXT:    # xmm1 = xmm1[0],mem[1]
9110 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
9111 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9112 ; AVX1-ONLY-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
9113 ; AVX1-ONLY-NEXT:    vmovaps 3040(%rdi), %ymm1
9114 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9115 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
9116 ; AVX1-ONLY-NEXT:    vmovaps 2944(%rdi), %xmm1
9117 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9118 ; AVX1-ONLY-NEXT:    vblendps $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
9119 ; AVX1-ONLY-NEXT:    # xmm1 = xmm1[0,1],mem[2,3]
9120 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
9121 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9122 ; AVX1-ONLY-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
9123 ; AVX1-ONLY-NEXT:    vmovapd 3264(%rdi), %ymm14
9124 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm14[0,1,2],ymm0[3]
9125 ; AVX1-ONLY-NEXT:    vmovapd 3168(%rdi), %xmm1
9126 ; AVX1-ONLY-NEXT:    vmovapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9127 ; AVX1-ONLY-NEXT:    vblendpd $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
9128 ; AVX1-ONLY-NEXT:    # xmm1 = xmm1[0],mem[1]
9129 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
9130 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9131 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
9132 ; AVX1-ONLY-NEXT:    vmovaps 3488(%rdi), %ymm1
9133 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9134 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
9135 ; AVX1-ONLY-NEXT:    vmovaps 3392(%rdi), %xmm1
9136 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9137 ; AVX1-ONLY-NEXT:    vblendps $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
9138 ; AVX1-ONLY-NEXT:    # xmm1 = xmm1[0,1],mem[2,3]
9139 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
9140 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9141 ; AVX1-ONLY-NEXT:    vmovapd 192(%rdi), %ymm1
9142 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9143 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9144 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[3],ymm1[2]
9145 ; AVX1-ONLY-NEXT:    vmovdqa 96(%rdi), %xmm1
9146 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = mem[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
9147 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
9148 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9149 ; AVX1-ONLY-NEXT:    vmovapd 416(%rdi), %ymm0
9150 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9151 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm13[0],ymm0[0],ymm13[3],ymm0[2]
9152 ; AVX1-ONLY-NEXT:    vmovdqa 320(%rdi), %xmm1
9153 ; AVX1-ONLY-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9154 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
9155 ; AVX1-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
9156 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
9157 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9158 ; AVX1-ONLY-NEXT:    vmovdqa 544(%rdi), %xmm0
9159 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
9160 ; AVX1-ONLY-NEXT:    # xmm0 = mem[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
9161 ; AVX1-ONLY-NEXT:    vmovapd 640(%rdi), %ymm1
9162 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9163 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm1 = ymm6[0],ymm1[0],ymm6[3],ymm1[2]
9164 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3]
9165 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9166 ; AVX1-ONLY-NEXT:    vmovapd 864(%rdi), %ymm0
9167 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9168 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm11[0],ymm0[0],ymm11[3],ymm0[2]
9169 ; AVX1-ONLY-NEXT:    vmovdqa 768(%rdi), %xmm1
9170 ; AVX1-ONLY-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9171 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
9172 ; AVX1-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
9173 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
9174 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9175 ; AVX1-ONLY-NEXT:    vmovdqa 992(%rdi), %xmm0
9176 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
9177 ; AVX1-ONLY-NEXT:    # xmm0 = mem[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
9178 ; AVX1-ONLY-NEXT:    vmovapd 1088(%rdi), %ymm1
9179 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9180 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm1 = ymm5[0],ymm1[0],ymm5[3],ymm1[2]
9181 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3]
9182 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9183 ; AVX1-ONLY-NEXT:    vmovapd 1312(%rdi), %ymm1
9184 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9185 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9186 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[3],ymm1[2]
9187 ; AVX1-ONLY-NEXT:    vmovdqa 1216(%rdi), %xmm1
9188 ; AVX1-ONLY-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9189 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
9190 ; AVX1-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
9191 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
9192 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9193 ; AVX1-ONLY-NEXT:    vmovdqa 1440(%rdi), %xmm0
9194 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm0 = xmm15[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
9195 ; AVX1-ONLY-NEXT:    vmovapd 1536(%rdi), %ymm15
9196 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm1 = ymm9[0],ymm15[0],ymm9[3],ymm15[2]
9197 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3]
9198 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9199 ; AVX1-ONLY-NEXT:    vmovapd 1760(%rdi), %ymm1
9200 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9201 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9202 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[3],ymm1[2]
9203 ; AVX1-ONLY-NEXT:    vmovdqa 1664(%rdi), %xmm13
9204 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm13, %xmm1 # 16-byte Folded Reload
9205 ; AVX1-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm13[0,1,2,3,4,5,6,7]
9206 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
9207 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9208 ; AVX1-ONLY-NEXT:    vmovdqa 1888(%rdi), %xmm0
9209 ; AVX1-ONLY-NEXT:    vpalignr {{.*#+}} xmm0 = xmm12[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
9210 ; AVX1-ONLY-NEXT:    vmovapd 1984(%rdi), %ymm11
9211 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm1 = ymm7[0],ymm11[0],ymm7[3],ymm11[2]
9212 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3]
9213 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9214 ; AVX1-ONLY-NEXT:    vmovapd 2208(%rdi), %ymm12
9215 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm10[0],ymm12[0],ymm10[3],ymm12[2]
9216 ; AVX1-ONLY-NEXT:    vmovdqa 2112(%rdi), %xmm10
9217 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm10, %xmm1 # 16-byte Folded Reload
9218 ; AVX1-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm10[0,1,2,3,4,5,6,7]
9219 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
9220 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9221 ; AVX1-ONLY-NEXT:    vmovdqa 2336(%rdi), %xmm0
9222 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
9223 ; AVX1-ONLY-NEXT:    # xmm0 = mem[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
9224 ; AVX1-ONLY-NEXT:    vmovapd 2432(%rdi), %ymm9
9225 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm1 = ymm3[0],ymm9[0],ymm3[3],ymm9[2]
9226 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3]
9227 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9228 ; AVX1-ONLY-NEXT:    vmovapd 2656(%rdi), %ymm8
9229 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9230 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm0[0],ymm8[0],ymm0[3],ymm8[2]
9231 ; AVX1-ONLY-NEXT:    vmovdqa 2560(%rdi), %xmm7
9232 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7, %xmm1 # 16-byte Folded Reload
9233 ; AVX1-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm7[0,1,2,3,4,5,6,7]
9234 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
9235 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9236 ; AVX1-ONLY-NEXT:    vmovdqa 2784(%rdi), %xmm0
9237 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
9238 ; AVX1-ONLY-NEXT:    # xmm0 = mem[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
9239 ; AVX1-ONLY-NEXT:    vmovapd 2880(%rdi), %ymm5
9240 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm1 = ymm2[0],ymm5[0],ymm2[3],ymm5[2]
9241 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3]
9242 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9243 ; AVX1-ONLY-NEXT:    vmovapd 3104(%rdi), %ymm6
9244 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9245 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm0[0],ymm6[0],ymm0[3],ymm6[2]
9246 ; AVX1-ONLY-NEXT:    vmovdqa 3008(%rdi), %xmm4
9247 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm1 # 16-byte Folded Reload
9248 ; AVX1-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm4[0,1,2,3,4,5,6,7]
9249 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
9250 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9251 ; AVX1-ONLY-NEXT:    vmovdqa 3232(%rdi), %xmm0
9252 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
9253 ; AVX1-ONLY-NEXT:    # xmm0 = mem[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
9254 ; AVX1-ONLY-NEXT:    vmovapd 3328(%rdi), %ymm3
9255 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm2 = ymm14[0],ymm3[0],ymm14[3],ymm3[2]
9256 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm2[2,3]
9257 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9258 ; AVX1-ONLY-NEXT:    vmovapd 3552(%rdi), %ymm2
9259 ; AVX1-ONLY-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9260 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm0 = ymm0[0],ymm2[0],ymm0[3],ymm2[2]
9261 ; AVX1-ONLY-NEXT:    vmovdqa 3456(%rdi), %xmm1
9262 ; AVX1-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm14 # 16-byte Folded Reload
9263 ; AVX1-ONLY-NEXT:    # xmm14 = mem[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
9264 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm14[0,1],ymm0[2,3]
9265 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9266 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9267 ; AVX1-ONLY-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
9268 ; AVX1-ONLY-NEXT:    # ymm0 = mem[0,1,2,3,4,5],ymm0[6,7]
9269 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
9270 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm14 = xmm14[0,1],mem[2,3]
9271 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm14[0,1,2,3],ymm0[4,5,6,7]
9272 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9273 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9274 ; AVX1-ONLY-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
9275 ; AVX1-ONLY-NEXT:    # ymm0 = mem[0,1,2,3,4,5],ymm0[6,7]
9276 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
9277 ; AVX1-ONLY-NEXT:    vblendps $3, {{[-0-9]+}}(%r{{[sb]}}p), %xmm14, %xmm14 # 16-byte Folded Reload
9278 ; AVX1-ONLY-NEXT:    # xmm14 = mem[0,1],xmm14[2,3]
9279 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm14[0,1,2,3],ymm0[4,5,6,7]
9280 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9281 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9282 ; AVX1-ONLY-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
9283 ; AVX1-ONLY-NEXT:    # ymm0 = mem[0,1,2,3,4,5],ymm0[6,7]
9284 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
9285 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm14 = xmm14[0,1],mem[2,3]
9286 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm14[0,1,2,3],ymm0[4,5,6,7]
9287 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9288 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9289 ; AVX1-ONLY-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
9290 ; AVX1-ONLY-NEXT:    # ymm0 = mem[0,1,2,3,4,5],ymm0[6,7]
9291 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
9292 ; AVX1-ONLY-NEXT:    vblendps $3, {{[-0-9]+}}(%r{{[sb]}}p), %xmm14, %xmm14 # 16-byte Folded Reload
9293 ; AVX1-ONLY-NEXT:    # xmm14 = mem[0,1],xmm14[2,3]
9294 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm14[0,1,2,3],ymm0[4,5,6,7]
9295 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9296 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9297 ; AVX1-ONLY-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
9298 ; AVX1-ONLY-NEXT:    # ymm0 = mem[0,1,2,3,4,5],ymm0[6,7]
9299 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
9300 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm14 = xmm14[0,1],mem[2,3]
9301 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm14[0,1,2,3],ymm0[4,5,6,7]
9302 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9303 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9304 ; AVX1-ONLY-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
9305 ; AVX1-ONLY-NEXT:    # ymm0 = mem[0,1,2,3,4,5],ymm0[6,7]
9306 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
9307 ; AVX1-ONLY-NEXT:    vblendps $3, {{[-0-9]+}}(%r{{[sb]}}p), %xmm14, %xmm14 # 16-byte Folded Reload
9308 ; AVX1-ONLY-NEXT:    # xmm14 = mem[0,1],xmm14[2,3]
9309 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm14[0,1,2,3],ymm0[4,5,6,7]
9310 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9311 ; AVX1-ONLY-NEXT:    vblendpd $7, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm0 # 32-byte Folded Reload
9312 ; AVX1-ONLY-NEXT:    # ymm0 = mem[0,1,2],ymm15[3]
9313 ; AVX1-ONLY-NEXT:    vmovapd {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
9314 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm14 = xmm14[0],mem[1]
9315 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm15 = ymm14[0,1],ymm0[2,3]
9316 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9317 ; AVX1-ONLY-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
9318 ; AVX1-ONLY-NEXT:    # ymm0 = mem[0,1,2,3,4,5],ymm0[6,7]
9319 ; AVX1-ONLY-NEXT:    vpblendw $15, {{[-0-9]+}}(%r{{[sb]}}p), %xmm13, %xmm13 # 16-byte Folded Reload
9320 ; AVX1-ONLY-NEXT:    # xmm13 = mem[0,1,2,3],xmm13[4,5,6,7]
9321 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm14 = ymm13[0,1,2,3],ymm0[4,5,6,7]
9322 ; AVX1-ONLY-NEXT:    vblendpd $7, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm0 # 32-byte Folded Reload
9323 ; AVX1-ONLY-NEXT:    # ymm0 = mem[0,1,2],ymm11[3]
9324 ; AVX1-ONLY-NEXT:    vmovapd {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload
9325 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm11 = xmm11[0],mem[1]
9326 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm11 = ymm11[0,1],ymm0[2,3]
9327 ; AVX1-ONLY-NEXT:    vblendpd $7, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm0 # 32-byte Folded Reload
9328 ; AVX1-ONLY-NEXT:    # ymm0 = mem[0,1,2],ymm12[3]
9329 ; AVX1-ONLY-NEXT:    vpblendw $15, {{[-0-9]+}}(%r{{[sb]}}p), %xmm10, %xmm10 # 16-byte Folded Reload
9330 ; AVX1-ONLY-NEXT:    # xmm10 = mem[0,1,2,3],xmm10[4,5,6,7]
9331 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm10 = ymm10[0,1],ymm0[2,3]
9332 ; AVX1-ONLY-NEXT:    vblendpd $7, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm0 # 32-byte Folded Reload
9333 ; AVX1-ONLY-NEXT:    # ymm0 = mem[0,1,2],ymm9[3]
9334 ; AVX1-ONLY-NEXT:    vmovapd {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload
9335 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm9 = xmm9[0],mem[1]
9336 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm9 = ymm9[0,1],ymm0[2,3]
9337 ; AVX1-ONLY-NEXT:    vblendpd $7, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm0 # 32-byte Folded Reload
9338 ; AVX1-ONLY-NEXT:    # ymm0 = mem[0,1,2],ymm8[3]
9339 ; AVX1-ONLY-NEXT:    vpblendw $15, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7, %xmm7 # 16-byte Folded Reload
9340 ; AVX1-ONLY-NEXT:    # xmm7 = mem[0,1,2,3],xmm7[4,5,6,7]
9341 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm8 = ymm7[0,1],ymm0[2,3]
9342 ; AVX1-ONLY-NEXT:    vblendpd $7, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm0 # 32-byte Folded Reload
9343 ; AVX1-ONLY-NEXT:    # ymm0 = mem[0,1,2],ymm5[3]
9344 ; AVX1-ONLY-NEXT:    vmovapd {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
9345 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm5 = xmm5[0],mem[1]
9346 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm5 = ymm5[0,1],ymm0[2,3]
9347 ; AVX1-ONLY-NEXT:    vblendpd $7, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm0 # 32-byte Folded Reload
9348 ; AVX1-ONLY-NEXT:    # ymm0 = mem[0,1,2],ymm6[3]
9349 ; AVX1-ONLY-NEXT:    vpblendw $15, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload
9350 ; AVX1-ONLY-NEXT:    # xmm4 = mem[0,1,2,3],xmm4[4,5,6,7]
9351 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm4 = ymm4[0,1],ymm0[2,3]
9352 ; AVX1-ONLY-NEXT:    vblendpd $7, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm0 # 32-byte Folded Reload
9353 ; AVX1-ONLY-NEXT:    # ymm0 = mem[0,1,2],ymm3[3]
9354 ; AVX1-ONLY-NEXT:    vmovapd {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
9355 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} xmm3 = xmm3[0],mem[1]
9356 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm3 = ymm3[0,1],ymm0[2,3]
9357 ; AVX1-ONLY-NEXT:    vblendpd $7, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm0 # 32-byte Folded Reload
9358 ; AVX1-ONLY-NEXT:    # ymm0 = mem[0,1,2],ymm2[3]
9359 ; AVX1-ONLY-NEXT:    vpblendw $15, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
9360 ; AVX1-ONLY-NEXT:    # xmm1 = mem[0,1,2,3],xmm1[4,5,6,7]
9361 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
9362 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9363 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 448(%rsi)
9364 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9365 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 384(%rsi)
9366 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9367 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 320(%rsi)
9368 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9369 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 256(%rsi)
9370 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9371 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 192(%rsi)
9372 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9373 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 128(%rsi)
9374 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9375 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 64(%rsi)
9376 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9377 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, (%rsi)
9378 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9379 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 480(%rsi)
9380 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9381 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 416(%rsi)
9382 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9383 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 352(%rsi)
9384 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9385 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 288(%rsi)
9386 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9387 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 224(%rsi)
9388 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9389 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 160(%rsi)
9390 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9391 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 96(%rsi)
9392 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9393 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 32(%rsi)
9394 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9395 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 448(%rdx)
9396 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9397 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 384(%rdx)
9398 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9399 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 320(%rdx)
9400 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9401 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 256(%rdx)
9402 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9403 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 192(%rdx)
9404 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9405 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 128(%rdx)
9406 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9407 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 64(%rdx)
9408 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9409 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, (%rdx)
9410 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9411 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 480(%rdx)
9412 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9413 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 416(%rdx)
9414 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9415 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 352(%rdx)
9416 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9417 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 288(%rdx)
9418 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9419 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 224(%rdx)
9420 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9421 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 160(%rdx)
9422 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9423 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 96(%rdx)
9424 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9425 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 32(%rdx)
9426 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9427 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, (%rcx)
9428 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9429 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 64(%rcx)
9430 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9431 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 128(%rcx)
9432 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9433 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 192(%rcx)
9434 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9435 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 256(%rcx)
9436 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9437 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 320(%rcx)
9438 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9439 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 384(%rcx)
9440 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9441 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 448(%rcx)
9442 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9443 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 480(%rcx)
9444 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9445 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 416(%rcx)
9446 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9447 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 352(%rcx)
9448 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9449 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 288(%rcx)
9450 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9451 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 224(%rcx)
9452 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9453 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 160(%rcx)
9454 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9455 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 96(%rcx)
9456 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9457 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 32(%rcx)
9458 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9459 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 480(%r8)
9460 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9461 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 448(%r8)
9462 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9463 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 416(%r8)
9464 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9465 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 384(%r8)
9466 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9467 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 352(%r8)
9468 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9469 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 320(%r8)
9470 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9471 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 288(%r8)
9472 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9473 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 256(%r8)
9474 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9475 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 224(%r8)
9476 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9477 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 192(%r8)
9478 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9479 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 160(%r8)
9480 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9481 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 128(%r8)
9482 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9483 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 96(%r8)
9484 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9485 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 64(%r8)
9486 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9487 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 32(%r8)
9488 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9489 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, (%r8)
9490 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9491 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 480(%r9)
9492 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9493 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 448(%r9)
9494 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9495 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 416(%r9)
9496 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9497 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 384(%r9)
9498 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9499 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 352(%r9)
9500 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9501 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 320(%r9)
9502 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9503 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 288(%r9)
9504 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9505 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 256(%r9)
9506 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9507 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 224(%r9)
9508 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9509 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 192(%r9)
9510 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9511 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 160(%r9)
9512 ; AVX1-ONLY-NEXT:    vmovups (%rsp), %ymm1 # 32-byte Reload
9513 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 128(%r9)
9514 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9515 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 96(%r9)
9516 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9517 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 64(%r9)
9518 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9519 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 32(%r9)
9520 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9521 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, (%r9)
9522 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
9523 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9524 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 480(%rax)
9525 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9526 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 448(%rax)
9527 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9528 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 416(%rax)
9529 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9530 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 384(%rax)
9531 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9532 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 352(%rax)
9533 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9534 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 320(%rax)
9535 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9536 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 288(%rax)
9537 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9538 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 256(%rax)
9539 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9540 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 224(%rax)
9541 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9542 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 192(%rax)
9543 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9544 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 160(%rax)
9545 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9546 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 128(%rax)
9547 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9548 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 96(%rax)
9549 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9550 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 64(%rax)
9551 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9552 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 32(%rax)
9553 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9554 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, (%rax)
9555 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
9556 ; AVX1-ONLY-NEXT:    vmovapd %ymm0, 480(%rax)
9557 ; AVX1-ONLY-NEXT:    vmovapd %ymm3, 448(%rax)
9558 ; AVX1-ONLY-NEXT:    vmovapd %ymm4, 416(%rax)
9559 ; AVX1-ONLY-NEXT:    vmovapd %ymm5, 384(%rax)
9560 ; AVX1-ONLY-NEXT:    vmovapd %ymm8, 352(%rax)
9561 ; AVX1-ONLY-NEXT:    vmovapd %ymm9, 320(%rax)
9562 ; AVX1-ONLY-NEXT:    vmovapd %ymm10, 288(%rax)
9563 ; AVX1-ONLY-NEXT:    vmovapd %ymm11, 256(%rax)
9564 ; AVX1-ONLY-NEXT:    vmovaps %ymm14, 224(%rax)
9565 ; AVX1-ONLY-NEXT:    vmovapd %ymm15, 192(%rax)
9566 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9567 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 160(%rax)
9568 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9569 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 128(%rax)
9570 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9571 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 96(%rax)
9572 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9573 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 64(%rax)
9574 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9575 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 32(%rax)
9576 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9577 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, (%rax)
9578 ; AVX1-ONLY-NEXT:    addq $4232, %rsp # imm = 0x1088
9579 ; AVX1-ONLY-NEXT:    vzeroupper
9580 ; AVX1-ONLY-NEXT:    retq
9582 ; AVX2-ONLY-LABEL: load_i64_stride7_vf64:
9583 ; AVX2-ONLY:       # %bb.0:
9584 ; AVX2-ONLY-NEXT:    subq $3928, %rsp # imm = 0xF58
9585 ; AVX2-ONLY-NEXT:    vmovdqa 1216(%rdi), %ymm4
9586 ; AVX2-ONLY-NEXT:    vmovdqa 768(%rdi), %ymm5
9587 ; AVX2-ONLY-NEXT:    vmovdqa 320(%rdi), %ymm6
9588 ; AVX2-ONLY-NEXT:    vmovdqa 384(%rdi), %xmm0
9589 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9590 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
9591 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm6[0,1,2,3,4,5],ymm0[6,7]
9592 ; AVX2-ONLY-NEXT:    vmovdqa 224(%rdi), %xmm9
9593 ; AVX2-ONLY-NEXT:    vmovdqa 272(%rdi), %xmm1
9594 ; AVX2-ONLY-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9595 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = xmm9[0,1],xmm1[2,3]
9596 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
9597 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9598 ; AVX2-ONLY-NEXT:    vmovdqa 832(%rdi), %xmm0
9599 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9600 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
9601 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm5[0,1,2,3,4,5],ymm0[6,7]
9602 ; AVX2-ONLY-NEXT:    vmovdqa 672(%rdi), %xmm10
9603 ; AVX2-ONLY-NEXT:    vmovdqa 720(%rdi), %xmm1
9604 ; AVX2-ONLY-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9605 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = xmm10[0,1],xmm1[2,3]
9606 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
9607 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9608 ; AVX2-ONLY-NEXT:    vmovdqa 1280(%rdi), %xmm0
9609 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9610 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
9611 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm4[0,1,2,3,4,5],ymm0[6,7]
9612 ; AVX2-ONLY-NEXT:    vmovdqa 1120(%rdi), %xmm11
9613 ; AVX2-ONLY-NEXT:    vmovdqa 1168(%rdi), %xmm1
9614 ; AVX2-ONLY-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9615 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = xmm11[0,1],xmm1[2,3]
9616 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
9617 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9618 ; AVX2-ONLY-NEXT:    vmovdqa 1664(%rdi), %ymm7
9619 ; AVX2-ONLY-NEXT:    vmovdqa 1728(%rdi), %xmm0
9620 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9621 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
9622 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm7[0,1,2,3,4,5],ymm0[6,7]
9623 ; AVX2-ONLY-NEXT:    vmovdqa 1568(%rdi), %xmm12
9624 ; AVX2-ONLY-NEXT:    vmovdqa 1616(%rdi), %xmm1
9625 ; AVX2-ONLY-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9626 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = xmm12[0,1],xmm1[2,3]
9627 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
9628 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9629 ; AVX2-ONLY-NEXT:    vmovdqa 2112(%rdi), %ymm8
9630 ; AVX2-ONLY-NEXT:    vmovdqa 2176(%rdi), %xmm0
9631 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9632 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
9633 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm8[0,1,2,3,4,5],ymm0[6,7]
9634 ; AVX2-ONLY-NEXT:    vmovdqa 2016(%rdi), %xmm2
9635 ; AVX2-ONLY-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9636 ; AVX2-ONLY-NEXT:    vmovdqa 2064(%rdi), %xmm1
9637 ; AVX2-ONLY-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9638 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
9639 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
9640 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9641 ; AVX2-ONLY-NEXT:    vmovdqa 2560(%rdi), %ymm13
9642 ; AVX2-ONLY-NEXT:    vmovdqa 2624(%rdi), %xmm0
9643 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9644 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
9645 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm13[0,1,2,3,4,5],ymm0[6,7]
9646 ; AVX2-ONLY-NEXT:    vmovdqa 2464(%rdi), %xmm2
9647 ; AVX2-ONLY-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9648 ; AVX2-ONLY-NEXT:    vmovdqa 2512(%rdi), %xmm1
9649 ; AVX2-ONLY-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9650 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
9651 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
9652 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9653 ; AVX2-ONLY-NEXT:    vmovdqa 3008(%rdi), %ymm14
9654 ; AVX2-ONLY-NEXT:    vmovdqa 3072(%rdi), %xmm0
9655 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9656 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
9657 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm14[0,1,2,3,4,5],ymm0[6,7]
9658 ; AVX2-ONLY-NEXT:    vmovdqa 2912(%rdi), %xmm2
9659 ; AVX2-ONLY-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9660 ; AVX2-ONLY-NEXT:    vmovdqa 2960(%rdi), %xmm1
9661 ; AVX2-ONLY-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9662 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
9663 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
9664 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9665 ; AVX2-ONLY-NEXT:    vmovaps 3456(%rdi), %ymm1
9666 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9667 ; AVX2-ONLY-NEXT:    vmovaps 3520(%rdi), %xmm0
9668 ; AVX2-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9669 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
9670 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
9671 ; AVX2-ONLY-NEXT:    vmovaps 3360(%rdi), %xmm2
9672 ; AVX2-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9673 ; AVX2-ONLY-NEXT:    vmovaps 3408(%rdi), %xmm1
9674 ; AVX2-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9675 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
9676 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
9677 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9678 ; AVX2-ONLY-NEXT:    vmovaps 96(%rdi), %ymm1
9679 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9680 ; AVX2-ONLY-NEXT:    vmovaps 160(%rdi), %xmm0
9681 ; AVX2-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9682 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
9683 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
9684 ; AVX2-ONLY-NEXT:    vmovaps 48(%rdi), %xmm1
9685 ; AVX2-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9686 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = mem[0,1],xmm1[2,3]
9687 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
9688 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9689 ; AVX2-ONLY-NEXT:    vmovdqa 544(%rdi), %ymm1
9690 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9691 ; AVX2-ONLY-NEXT:    vmovdqa 608(%rdi), %xmm0
9692 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9693 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
9694 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm0[6,7]
9695 ; AVX2-ONLY-NEXT:    vmovdqa 448(%rdi), %xmm0
9696 ; AVX2-ONLY-NEXT:    vmovdqa 496(%rdi), %xmm2
9697 ; AVX2-ONLY-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9698 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm2 = xmm0[0,1],xmm2[2,3]
9699 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
9700 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9701 ; AVX2-ONLY-NEXT:    vmovdqa 992(%rdi), %ymm1
9702 ; AVX2-ONLY-NEXT:    vmovdqa 1056(%rdi), %xmm2
9703 ; AVX2-ONLY-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9704 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
9705 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm1[0,1,2,3,4,5],ymm2[6,7]
9706 ; AVX2-ONLY-NEXT:    vmovdqa 896(%rdi), %xmm15
9707 ; AVX2-ONLY-NEXT:    vmovdqa %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9708 ; AVX2-ONLY-NEXT:    vmovdqa 944(%rdi), %xmm3
9709 ; AVX2-ONLY-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9710 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm3 = xmm15[0,1],xmm3[2,3]
9711 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
9712 ; AVX2-ONLY-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9713 ; AVX2-ONLY-NEXT:    vmovdqa 1440(%rdi), %ymm3
9714 ; AVX2-ONLY-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9715 ; AVX2-ONLY-NEXT:    vmovdqa 1504(%rdi), %xmm2
9716 ; AVX2-ONLY-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9717 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
9718 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3,4,5],ymm2[6,7]
9719 ; AVX2-ONLY-NEXT:    vmovdqa 1344(%rdi), %xmm15
9720 ; AVX2-ONLY-NEXT:    vmovdqa %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9721 ; AVX2-ONLY-NEXT:    vmovdqa 1392(%rdi), %xmm3
9722 ; AVX2-ONLY-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9723 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm3 = xmm15[0,1],xmm3[2,3]
9724 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
9725 ; AVX2-ONLY-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9726 ; AVX2-ONLY-NEXT:    vmovdqa 1888(%rdi), %ymm3
9727 ; AVX2-ONLY-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9728 ; AVX2-ONLY-NEXT:    vmovdqa 1952(%rdi), %xmm2
9729 ; AVX2-ONLY-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9730 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
9731 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3,4,5],ymm2[6,7]
9732 ; AVX2-ONLY-NEXT:    vmovdqa 1792(%rdi), %xmm15
9733 ; AVX2-ONLY-NEXT:    vmovdqa %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9734 ; AVX2-ONLY-NEXT:    vmovdqa 1840(%rdi), %xmm3
9735 ; AVX2-ONLY-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9736 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm3 = xmm15[0,1],xmm3[2,3]
9737 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
9738 ; AVX2-ONLY-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9739 ; AVX2-ONLY-NEXT:    vmovdqa 2336(%rdi), %ymm3
9740 ; AVX2-ONLY-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9741 ; AVX2-ONLY-NEXT:    vmovdqa 2400(%rdi), %xmm2
9742 ; AVX2-ONLY-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9743 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
9744 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3,4,5],ymm2[6,7]
9745 ; AVX2-ONLY-NEXT:    vmovdqa 2240(%rdi), %xmm15
9746 ; AVX2-ONLY-NEXT:    vmovdqa %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9747 ; AVX2-ONLY-NEXT:    vmovdqa 2288(%rdi), %xmm3
9748 ; AVX2-ONLY-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9749 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm3 = xmm15[0,1],xmm3[2,3]
9750 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
9751 ; AVX2-ONLY-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9752 ; AVX2-ONLY-NEXT:    vmovdqa 2784(%rdi), %ymm3
9753 ; AVX2-ONLY-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9754 ; AVX2-ONLY-NEXT:    vmovdqa 2848(%rdi), %xmm2
9755 ; AVX2-ONLY-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9756 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
9757 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3,4,5],ymm2[6,7]
9758 ; AVX2-ONLY-NEXT:    vmovdqa 2688(%rdi), %xmm15
9759 ; AVX2-ONLY-NEXT:    vmovdqa %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9760 ; AVX2-ONLY-NEXT:    vmovdqa 2736(%rdi), %xmm3
9761 ; AVX2-ONLY-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9762 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm3 = xmm15[0,1],xmm3[2,3]
9763 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
9764 ; AVX2-ONLY-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9765 ; AVX2-ONLY-NEXT:    vmovdqa 3232(%rdi), %ymm3
9766 ; AVX2-ONLY-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9767 ; AVX2-ONLY-NEXT:    vmovdqa 3296(%rdi), %xmm2
9768 ; AVX2-ONLY-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9769 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
9770 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3,4,5],ymm2[6,7]
9771 ; AVX2-ONLY-NEXT:    vmovdqa 3136(%rdi), %xmm15
9772 ; AVX2-ONLY-NEXT:    vmovdqa %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9773 ; AVX2-ONLY-NEXT:    vmovdqa 3184(%rdi), %xmm3
9774 ; AVX2-ONLY-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9775 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm3 = xmm15[0,1],xmm3[2,3]
9776 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
9777 ; AVX2-ONLY-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9778 ; AVX2-ONLY-NEXT:    vmovdqa 288(%rdi), %xmm2
9779 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm2 = xmm9[8,9,10,11,12,13,14,15],xmm2[0,1,2,3,4,5,6,7]
9780 ; AVX2-ONLY-NEXT:    vmovdqa 384(%rdi), %ymm3
9781 ; AVX2-ONLY-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9782 ; 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]
9783 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
9784 ; AVX2-ONLY-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9785 ; AVX2-ONLY-NEXT:    vmovdqa 736(%rdi), %xmm2
9786 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm2 = xmm10[8,9,10,11,12,13,14,15],xmm2[0,1,2,3,4,5,6,7]
9787 ; AVX2-ONLY-NEXT:    vmovdqa 832(%rdi), %ymm3
9788 ; AVX2-ONLY-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9789 ; 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]
9790 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
9791 ; AVX2-ONLY-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9792 ; AVX2-ONLY-NEXT:    vmovdqa 1184(%rdi), %xmm2
9793 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm2 = xmm11[8,9,10,11,12,13,14,15],xmm2[0,1,2,3,4,5,6,7]
9794 ; AVX2-ONLY-NEXT:    vmovdqa 1280(%rdi), %ymm3
9795 ; AVX2-ONLY-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9796 ; 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]
9797 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
9798 ; AVX2-ONLY-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9799 ; AVX2-ONLY-NEXT:    vmovdqa 1632(%rdi), %xmm2
9800 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm2 = xmm12[8,9,10,11,12,13,14,15],xmm2[0,1,2,3,4,5,6,7]
9801 ; AVX2-ONLY-NEXT:    vmovdqa 1728(%rdi), %ymm15
9802 ; 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]
9803 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
9804 ; AVX2-ONLY-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9805 ; AVX2-ONLY-NEXT:    vmovdqa 2080(%rdi), %xmm2
9806 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
9807 ; AVX2-ONLY-NEXT:    # xmm2 = mem[8,9,10,11,12,13,14,15],xmm2[0,1,2,3,4,5,6,7]
9808 ; AVX2-ONLY-NEXT:    vmovdqa 2176(%rdi), %ymm12
9809 ; 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]
9810 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
9811 ; AVX2-ONLY-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9812 ; AVX2-ONLY-NEXT:    vmovdqa 2528(%rdi), %xmm2
9813 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
9814 ; AVX2-ONLY-NEXT:    # xmm2 = mem[8,9,10,11,12,13,14,15],xmm2[0,1,2,3,4,5,6,7]
9815 ; AVX2-ONLY-NEXT:    vmovdqa 2624(%rdi), %ymm11
9816 ; 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]
9817 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
9818 ; AVX2-ONLY-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9819 ; AVX2-ONLY-NEXT:    vmovdqa 2976(%rdi), %xmm2
9820 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
9821 ; AVX2-ONLY-NEXT:    # xmm2 = mem[8,9,10,11,12,13,14,15],xmm2[0,1,2,3,4,5,6,7]
9822 ; AVX2-ONLY-NEXT:    vmovdqa 3072(%rdi), %ymm10
9823 ; 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]
9824 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
9825 ; AVX2-ONLY-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9826 ; AVX2-ONLY-NEXT:    vmovdqa 3424(%rdi), %xmm2
9827 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
9828 ; AVX2-ONLY-NEXT:    # xmm2 = mem[8,9,10,11,12,13,14,15],xmm2[0,1,2,3,4,5,6,7]
9829 ; AVX2-ONLY-NEXT:    vmovdqa 3520(%rdi), %ymm9
9830 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm3 # 32-byte Folded Reload
9831 ; 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]
9832 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
9833 ; AVX2-ONLY-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9834 ; AVX2-ONLY-NEXT:    vmovdqa 160(%rdi), %ymm2
9835 ; AVX2-ONLY-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9836 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
9837 ; 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]
9838 ; AVX2-ONLY-NEXT:    vmovdqa 64(%rdi), %xmm3
9839 ; AVX2-ONLY-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9840 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm3 = mem[8,9,10,11,12,13,14,15],xmm3[0,1,2,3,4,5,6,7]
9841 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
9842 ; AVX2-ONLY-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9843 ; AVX2-ONLY-NEXT:    vmovdqa 608(%rdi), %ymm2
9844 ; AVX2-ONLY-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9845 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
9846 ; 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]
9847 ; AVX2-ONLY-NEXT:    vmovdqa 512(%rdi), %xmm3
9848 ; AVX2-ONLY-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9849 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm0 = xmm0[8,9,10,11,12,13,14,15],xmm3[0,1,2,3,4,5,6,7]
9850 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
9851 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9852 ; AVX2-ONLY-NEXT:    vmovdqa 1056(%rdi), %ymm0
9853 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9854 ; 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]
9855 ; AVX2-ONLY-NEXT:    vmovdqa 960(%rdi), %xmm1
9856 ; AVX2-ONLY-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9857 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
9858 ; AVX2-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
9859 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
9860 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9861 ; AVX2-ONLY-NEXT:    vmovdqa 1504(%rdi), %ymm0
9862 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9863 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
9864 ; 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]
9865 ; AVX2-ONLY-NEXT:    vmovdqa 1408(%rdi), %xmm13
9866 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm13, %xmm1 # 16-byte Folded Reload
9867 ; AVX2-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm13[0,1,2,3,4,5,6,7]
9868 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
9869 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9870 ; AVX2-ONLY-NEXT:    vmovdqa 1952(%rdi), %ymm8
9871 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm0 # 32-byte Folded Reload
9872 ; 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]
9873 ; AVX2-ONLY-NEXT:    vmovdqa 1856(%rdi), %xmm7
9874 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7, %xmm1 # 16-byte Folded Reload
9875 ; AVX2-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm7[0,1,2,3,4,5,6,7]
9876 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
9877 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9878 ; AVX2-ONLY-NEXT:    vmovdqa 2400(%rdi), %ymm6
9879 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm0 # 32-byte Folded Reload
9880 ; 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]
9881 ; AVX2-ONLY-NEXT:    vmovdqa 2304(%rdi), %xmm5
9882 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm1 # 16-byte Folded Reload
9883 ; AVX2-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm5[0,1,2,3,4,5,6,7]
9884 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
9885 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9886 ; AVX2-ONLY-NEXT:    vmovdqa 2848(%rdi), %ymm4
9887 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm0 # 32-byte Folded Reload
9888 ; 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]
9889 ; AVX2-ONLY-NEXT:    vmovdqa 2752(%rdi), %xmm3
9890 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm1 # 16-byte Folded Reload
9891 ; AVX2-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm3[0,1,2,3,4,5,6,7]
9892 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
9893 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9894 ; AVX2-ONLY-NEXT:    vmovdqa 3296(%rdi), %ymm2
9895 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm0 # 32-byte Folded Reload
9896 ; 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]
9897 ; AVX2-ONLY-NEXT:    vmovdqa 3200(%rdi), %xmm1
9898 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm14 # 16-byte Folded Reload
9899 ; AVX2-ONLY-NEXT:    # xmm14 = mem[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
9900 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm14[0,1,2,3],ymm0[4,5,6,7]
9901 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9902 ; AVX2-ONLY-NEXT:    vbroadcastsd 352(%rdi), %ymm0
9903 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
9904 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
9905 ; AVX2-ONLY-NEXT:    vmovaps 240(%rdi), %xmm14
9906 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm14 = xmm14[0,1],mem[2,3]
9907 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm14[0,1,2,3],ymm0[4,5,6,7]
9908 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9909 ; AVX2-ONLY-NEXT:    vbroadcastsd 800(%rdi), %ymm0
9910 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
9911 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
9912 ; AVX2-ONLY-NEXT:    vmovaps 688(%rdi), %xmm14
9913 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm14 = xmm14[0,1],mem[2,3]
9914 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm14[0,1,2,3],ymm0[4,5,6,7]
9915 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9916 ; AVX2-ONLY-NEXT:    vbroadcastsd 1248(%rdi), %ymm0
9917 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
9918 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
9919 ; AVX2-ONLY-NEXT:    vmovaps 1136(%rdi), %xmm14
9920 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm14 = xmm14[0,1],mem[2,3]
9921 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm14[0,1,2,3],ymm0[4,5,6,7]
9922 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9923 ; AVX2-ONLY-NEXT:    vpbroadcastq 1696(%rdi), %ymm0
9924 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm15[1],ymm0[3],ymm15[3]
9925 ; AVX2-ONLY-NEXT:    vmovdqa 1584(%rdi), %xmm14
9926 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm14 = xmm14[0,1],mem[2,3]
9927 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm14[0,1,2,3],ymm0[4,5,6,7]
9928 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9929 ; AVX2-ONLY-NEXT:    vpbroadcastq 2144(%rdi), %ymm0
9930 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm12[1],ymm0[3],ymm12[3]
9931 ; AVX2-ONLY-NEXT:    vmovdqa 2032(%rdi), %xmm12
9932 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm12 = xmm12[0,1],mem[2,3]
9933 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm12[0,1,2,3],ymm0[4,5,6,7]
9934 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9935 ; AVX2-ONLY-NEXT:    vpbroadcastq 2592(%rdi), %ymm0
9936 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm11[1],ymm0[3],ymm11[3]
9937 ; AVX2-ONLY-NEXT:    vmovdqa 2480(%rdi), %xmm11
9938 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm11 = xmm11[0,1],mem[2,3]
9939 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm11[0,1,2,3],ymm0[4,5,6,7]
9940 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9941 ; AVX2-ONLY-NEXT:    vpbroadcastq 3040(%rdi), %ymm0
9942 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm10[1],ymm0[3],ymm10[3]
9943 ; AVX2-ONLY-NEXT:    vmovdqa 2928(%rdi), %xmm10
9944 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm10 = xmm10[0,1],mem[2,3]
9945 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm0[4,5,6,7]
9946 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9947 ; AVX2-ONLY-NEXT:    vpbroadcastq 3488(%rdi), %ymm0
9948 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm9[1],ymm0[3],ymm9[3]
9949 ; AVX2-ONLY-NEXT:    vmovdqa 3376(%rdi), %xmm9
9950 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm9 = xmm9[0,1],mem[2,3]
9951 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm9[0,1,2,3],ymm0[4,5,6,7]
9952 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9953 ; AVX2-ONLY-NEXT:    vpbroadcastq 3264(%rdi), %ymm0
9954 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm2[1],ymm0[3],ymm2[3]
9955 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = mem[0,1],xmm1[2,3]
9956 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
9957 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9958 ; AVX2-ONLY-NEXT:    vpbroadcastq 2816(%rdi), %ymm0
9959 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm4[1],ymm0[3],ymm4[3]
9960 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = mem[0,1],xmm3[2,3]
9961 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
9962 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9963 ; AVX2-ONLY-NEXT:    vpbroadcastq 2368(%rdi), %ymm0
9964 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm6[1],ymm0[3],ymm6[3]
9965 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = mem[0,1],xmm5[2,3]
9966 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
9967 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9968 ; AVX2-ONLY-NEXT:    vpbroadcastq 1920(%rdi), %ymm0
9969 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm8[1],ymm0[3],ymm8[3]
9970 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = mem[0,1],xmm7[2,3]
9971 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
9972 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9973 ; AVX2-ONLY-NEXT:    vpbroadcastq 1472(%rdi), %ymm0
9974 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
9975 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
9976 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = mem[0,1],xmm13[2,3]
9977 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
9978 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9979 ; AVX2-ONLY-NEXT:    vbroadcastsd 1024(%rdi), %ymm0
9980 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
9981 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
9982 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
9983 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = mem[0,1],xmm1[2,3]
9984 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
9985 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9986 ; AVX2-ONLY-NEXT:    vbroadcastsd 576(%rdi), %ymm0
9987 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
9988 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
9989 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
9990 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = mem[0,1],xmm1[2,3]
9991 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
9992 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9993 ; AVX2-ONLY-NEXT:    vbroadcastsd 128(%rdi), %ymm0
9994 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
9995 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
9996 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
9997 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = mem[0,1],xmm1[2,3]
9998 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
9999 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10000 ; AVX2-ONLY-NEXT:    vmovdqa 64(%rdi), %ymm0
10001 ; 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]
10002 ; AVX2-ONLY-NEXT:    vmovdqa 192(%rdi), %xmm13
10003 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = mem[8,9,10,11,12,13,14,15],xmm13[0,1,2,3,4,5,6,7]
10004 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm1
10005 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm0 = ymm0[2,3],ymm1[2,3]
10006 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10007 ; AVX2-ONLY-NEXT:    vmovdqa 288(%rdi), %ymm0
10008 ; 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]
10009 ; AVX2-ONLY-NEXT:    vmovdqa 416(%rdi), %xmm12
10010 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = mem[8,9,10,11,12,13,14,15],xmm12[0,1,2,3,4,5,6,7]
10011 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm1
10012 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm0 = ymm0[2,3],ymm1[2,3]
10013 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10014 ; AVX2-ONLY-NEXT:    vmovdqa 512(%rdi), %ymm0
10015 ; 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]
10016 ; AVX2-ONLY-NEXT:    vmovdqa 640(%rdi), %xmm11
10017 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = mem[8,9,10,11,12,13,14,15],xmm11[0,1,2,3,4,5,6,7]
10018 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm1
10019 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm0 = ymm0[2,3],ymm1[2,3]
10020 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10021 ; AVX2-ONLY-NEXT:    vmovdqa 736(%rdi), %ymm0
10022 ; 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]
10023 ; AVX2-ONLY-NEXT:    vmovdqa 864(%rdi), %xmm10
10024 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = mem[8,9,10,11,12,13,14,15],xmm10[0,1,2,3,4,5,6,7]
10025 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm1
10026 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm0 = ymm0[2,3],ymm1[2,3]
10027 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10028 ; AVX2-ONLY-NEXT:    vmovdqa 960(%rdi), %ymm0
10029 ; 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]
10030 ; AVX2-ONLY-NEXT:    vmovdqa 1088(%rdi), %xmm9
10031 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = mem[8,9,10,11,12,13,14,15],xmm9[0,1,2,3,4,5,6,7]
10032 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm1
10033 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm0 = ymm0[2,3],ymm1[2,3]
10034 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10035 ; AVX2-ONLY-NEXT:    vmovdqa 1184(%rdi), %ymm0
10036 ; 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]
10037 ; AVX2-ONLY-NEXT:    vmovdqa 1312(%rdi), %xmm8
10038 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = mem[8,9,10,11,12,13,14,15],xmm8[0,1,2,3,4,5,6,7]
10039 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm1
10040 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm0 = ymm0[2,3],ymm1[2,3]
10041 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10042 ; AVX2-ONLY-NEXT:    vmovdqa 1408(%rdi), %ymm0
10043 ; 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]
10044 ; AVX2-ONLY-NEXT:    vmovdqa 1536(%rdi), %xmm7
10045 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = mem[8,9,10,11,12,13,14,15],xmm7[0,1,2,3,4,5,6,7]
10046 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm1
10047 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm0 = ymm0[2,3],ymm1[2,3]
10048 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10049 ; AVX2-ONLY-NEXT:    vmovdqa 1632(%rdi), %ymm0
10050 ; 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]
10051 ; AVX2-ONLY-NEXT:    vmovdqa 1760(%rdi), %xmm6
10052 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = mem[8,9,10,11,12,13,14,15],xmm6[0,1,2,3,4,5,6,7]
10053 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm1
10054 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm0 = ymm0[2,3],ymm1[2,3]
10055 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10056 ; AVX2-ONLY-NEXT:    vmovdqa 1856(%rdi), %ymm0
10057 ; 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]
10058 ; AVX2-ONLY-NEXT:    vmovdqa 1984(%rdi), %xmm5
10059 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = mem[8,9,10,11,12,13,14,15],xmm5[0,1,2,3,4,5,6,7]
10060 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm1
10061 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm0 = ymm0[2,3],ymm1[2,3]
10062 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10063 ; AVX2-ONLY-NEXT:    vmovdqa 2080(%rdi), %ymm0
10064 ; 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]
10065 ; AVX2-ONLY-NEXT:    vmovdqa 2208(%rdi), %xmm3
10066 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = mem[8,9,10,11,12,13,14,15],xmm3[0,1,2,3,4,5,6,7]
10067 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm1
10068 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm0 = ymm0[2,3],ymm1[2,3]
10069 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10070 ; AVX2-ONLY-NEXT:    vmovdqa 2304(%rdi), %ymm0
10071 ; 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]
10072 ; AVX2-ONLY-NEXT:    vmovdqa 2432(%rdi), %xmm2
10073 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = mem[8,9,10,11,12,13,14,15],xmm2[0,1,2,3,4,5,6,7]
10074 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm1
10075 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm0 = ymm0[2,3],ymm1[2,3]
10076 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10077 ; AVX2-ONLY-NEXT:    vmovdqa 2528(%rdi), %ymm0
10078 ; 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]
10079 ; AVX2-ONLY-NEXT:    vmovdqa 2656(%rdi), %xmm14
10080 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm4 = mem[8,9,10,11,12,13,14,15],xmm14[0,1,2,3,4,5,6,7]
10081 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm4
10082 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm1 = ymm1[2,3],ymm4[2,3]
10083 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10084 ; AVX2-ONLY-NEXT:    vmovdqa 2752(%rdi), %ymm1
10085 ; 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]
10086 ; AVX2-ONLY-NEXT:    vmovdqa 2880(%rdi), %xmm0
10087 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10088 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm4 = mem[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
10089 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm4
10090 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm1 = ymm1[2,3],ymm4[2,3]
10091 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10092 ; AVX2-ONLY-NEXT:    vmovdqa 2976(%rdi), %ymm1
10093 ; 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]
10094 ; AVX2-ONLY-NEXT:    vmovdqa 3104(%rdi), %xmm4
10095 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm15 = mem[8,9,10,11,12,13,14,15],xmm4[0,1,2,3,4,5,6,7]
10096 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm15, %ymm0, %ymm15
10097 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm1 = ymm1[2,3],ymm15[2,3]
10098 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10099 ; AVX2-ONLY-NEXT:    vmovdqa 3200(%rdi), %ymm1
10100 ; 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]
10101 ; AVX2-ONLY-NEXT:    vmovdqa 3328(%rdi), %xmm0
10102 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10103 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = mem[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
10104 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm1
10105 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm1 = ymm15[2,3],ymm1[2,3]
10106 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10107 ; AVX2-ONLY-NEXT:    vmovdqa 3424(%rdi), %ymm1
10108 ; 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]
10109 ; AVX2-ONLY-NEXT:    vmovdqa 3552(%rdi), %xmm0
10110 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10111 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm15 = mem[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
10112 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm15, %ymm0, %ymm15
10113 ; AVX2-ONLY-NEXT:    vperm2i128 {{.*#+}} ymm1 = ymm1[2,3],ymm15[2,3]
10114 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10115 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm13, %ymm0, %ymm1
10116 ; AVX2-ONLY-NEXT:    vmovdqa 128(%rdi), %ymm15
10117 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm15[0,1,2,3,4,5],ymm1[6,7]
10118 ; AVX2-ONLY-NEXT:    vmovdqa 32(%rdi), %xmm13
10119 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm13 = xmm13[0,1],mem[2,3]
10120 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm13[0,1,2,3],ymm1[4,5,6,7]
10121 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10122 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm12, %ymm0, %ymm1
10123 ; AVX2-ONLY-NEXT:    vmovdqa 352(%rdi), %ymm13
10124 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm13[0,1,2,3,4,5],ymm1[6,7]
10125 ; AVX2-ONLY-NEXT:    vmovdqa 256(%rdi), %xmm0
10126 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10127 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm12 = xmm0[0,1],mem[2,3]
10128 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
10129 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10130 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm11, %ymm0, %ymm1
10131 ; AVX2-ONLY-NEXT:    vmovdqa 576(%rdi), %ymm12
10132 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3,4,5],ymm1[6,7]
10133 ; AVX2-ONLY-NEXT:    vmovdqa 480(%rdi), %xmm0
10134 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10135 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm11 = xmm0[0,1],mem[2,3]
10136 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm11[0,1,2,3],ymm1[4,5,6,7]
10137 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10138 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm10, %ymm0, %ymm1
10139 ; AVX2-ONLY-NEXT:    vmovdqa 800(%rdi), %ymm11
10140 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm11[0,1,2,3,4,5],ymm1[6,7]
10141 ; AVX2-ONLY-NEXT:    vmovdqa 704(%rdi), %xmm0
10142 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10143 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm10 = xmm0[0,1],mem[2,3]
10144 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm10[0,1,2,3],ymm1[4,5,6,7]
10145 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10146 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm9, %ymm0, %ymm1
10147 ; AVX2-ONLY-NEXT:    vmovdqa 1024(%rdi), %ymm10
10148 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm10[0,1,2,3,4,5],ymm1[6,7]
10149 ; AVX2-ONLY-NEXT:    vmovdqa 928(%rdi), %xmm0
10150 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10151 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm9 = xmm0[0,1],mem[2,3]
10152 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm9[0,1,2,3],ymm1[4,5,6,7]
10153 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10154 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm8, %ymm0, %ymm1
10155 ; AVX2-ONLY-NEXT:    vmovdqa 1248(%rdi), %ymm9
10156 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm9[0,1,2,3,4,5],ymm1[6,7]
10157 ; AVX2-ONLY-NEXT:    vmovdqa 1152(%rdi), %xmm0
10158 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10159 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm8 = xmm0[0,1],mem[2,3]
10160 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm8[0,1,2,3],ymm1[4,5,6,7]
10161 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10162 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm7, %ymm0, %ymm1
10163 ; AVX2-ONLY-NEXT:    vmovdqa 1472(%rdi), %ymm8
10164 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm8[0,1,2,3,4,5],ymm1[6,7]
10165 ; AVX2-ONLY-NEXT:    vmovdqa 1376(%rdi), %xmm0
10166 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10167 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm7 = xmm0[0,1],mem[2,3]
10168 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm7[0,1,2,3],ymm1[4,5,6,7]
10169 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10170 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm6, %ymm0, %ymm1
10171 ; AVX2-ONLY-NEXT:    vmovdqa 1696(%rdi), %ymm7
10172 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm7[0,1,2,3,4,5],ymm1[6,7]
10173 ; AVX2-ONLY-NEXT:    vmovdqa 1600(%rdi), %xmm0
10174 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10175 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm6 = xmm0[0,1],mem[2,3]
10176 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm6[0,1,2,3],ymm1[4,5,6,7]
10177 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10178 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm5, %ymm0, %ymm1
10179 ; AVX2-ONLY-NEXT:    vmovdqa 1920(%rdi), %ymm6
10180 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm6[0,1,2,3,4,5],ymm1[6,7]
10181 ; AVX2-ONLY-NEXT:    vmovdqa 1824(%rdi), %xmm0
10182 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10183 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm5 = xmm0[0,1],mem[2,3]
10184 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm5[0,1,2,3],ymm1[4,5,6,7]
10185 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10186 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm1
10187 ; AVX2-ONLY-NEXT:    vmovdqa 2144(%rdi), %ymm5
10188 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm5[0,1,2,3,4,5],ymm1[6,7]
10189 ; AVX2-ONLY-NEXT:    vmovdqa 2048(%rdi), %xmm0
10190 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10191 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm3 = xmm0[0,1],mem[2,3]
10192 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm1[4,5,6,7]
10193 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10194 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm1
10195 ; AVX2-ONLY-NEXT:    vmovdqa 2368(%rdi), %ymm3
10196 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm3[0,1,2,3,4,5],ymm1[6,7]
10197 ; AVX2-ONLY-NEXT:    vmovdqa 2272(%rdi), %xmm0
10198 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10199 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm2 = xmm0[0,1],mem[2,3]
10200 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
10201 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10202 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm14, %ymm0, %ymm0
10203 ; AVX2-ONLY-NEXT:    vmovdqa 2592(%rdi), %ymm1
10204 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10205 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
10206 ; AVX2-ONLY-NEXT:    vmovdqa 2496(%rdi), %xmm1
10207 ; AVX2-ONLY-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10208 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = xmm1[0,1],mem[2,3]
10209 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
10210 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10211 ; AVX2-ONLY-NEXT:    vinserti128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
10212 ; AVX2-ONLY-NEXT:    vmovdqa 2816(%rdi), %ymm2
10213 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3,4,5],ymm0[6,7]
10214 ; AVX2-ONLY-NEXT:    vmovdqa 2720(%rdi), %xmm1
10215 ; AVX2-ONLY-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10216 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = xmm1[0,1],mem[2,3]
10217 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
10218 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10219 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm0
10220 ; AVX2-ONLY-NEXT:    vmovdqa 3040(%rdi), %ymm1
10221 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10222 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
10223 ; AVX2-ONLY-NEXT:    vmovdqa 2944(%rdi), %xmm1
10224 ; AVX2-ONLY-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10225 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = xmm1[0,1],mem[2,3]
10226 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
10227 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10228 ; AVX2-ONLY-NEXT:    vinserti128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
10229 ; AVX2-ONLY-NEXT:    vmovdqa 3264(%rdi), %ymm1
10230 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, (%rsp) # 32-byte Spill
10231 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
10232 ; AVX2-ONLY-NEXT:    vmovdqa 3168(%rdi), %xmm1
10233 ; AVX2-ONLY-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10234 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = xmm1[0,1],mem[2,3]
10235 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
10236 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10237 ; AVX2-ONLY-NEXT:    vinserti128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
10238 ; AVX2-ONLY-NEXT:    vmovdqa 3488(%rdi), %ymm1
10239 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10240 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
10241 ; AVX2-ONLY-NEXT:    vmovdqa 3392(%rdi), %xmm1
10242 ; AVX2-ONLY-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10243 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = xmm1[0,1],mem[2,3]
10244 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
10245 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10246 ; AVX2-ONLY-NEXT:    vmovdqa 192(%rdi), %ymm0
10247 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10248 ; 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]
10249 ; AVX2-ONLY-NEXT:    vmovdqa 96(%rdi), %xmm1
10250 ; AVX2-ONLY-NEXT:    vpalignr {{.*#+}} xmm1 = mem[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
10251 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
10252 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10253 ; AVX2-ONLY-NEXT:    vmovdqa 416(%rdi), %ymm0
10254 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10255 ; 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]
10256 ; AVX2-ONLY-NEXT:    vmovdqa 320(%rdi), %xmm1
10257 ; AVX2-ONLY-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10258 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
10259 ; AVX2-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
10260 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
10261 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10262 ; AVX2-ONLY-NEXT:    vmovdqa 544(%rdi), %xmm0
10263 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
10264 ; AVX2-ONLY-NEXT:    # xmm0 = mem[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
10265 ; AVX2-ONLY-NEXT:    vmovdqa 640(%rdi), %ymm1
10266 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10267 ; 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]
10268 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
10269 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10270 ; AVX2-ONLY-NEXT:    vmovdqa 864(%rdi), %ymm0
10271 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10272 ; 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]
10273 ; AVX2-ONLY-NEXT:    vmovdqa 768(%rdi), %xmm1
10274 ; AVX2-ONLY-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10275 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
10276 ; AVX2-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
10277 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
10278 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10279 ; AVX2-ONLY-NEXT:    vmovdqa 992(%rdi), %xmm0
10280 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
10281 ; AVX2-ONLY-NEXT:    # xmm0 = mem[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
10282 ; AVX2-ONLY-NEXT:    vmovdqa 1088(%rdi), %ymm1
10283 ; AVX2-ONLY-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10284 ; 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]
10285 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
10286 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10287 ; AVX2-ONLY-NEXT:    vmovdqa 1312(%rdi), %ymm0
10288 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10289 ; 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]
10290 ; AVX2-ONLY-NEXT:    vmovdqa 1216(%rdi), %xmm1
10291 ; AVX2-ONLY-NEXT:    vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10292 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
10293 ; AVX2-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
10294 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
10295 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10296 ; AVX2-ONLY-NEXT:    vmovdqa 1440(%rdi), %xmm0
10297 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
10298 ; AVX2-ONLY-NEXT:    # xmm0 = mem[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
10299 ; AVX2-ONLY-NEXT:    vmovdqa 1536(%rdi), %ymm14
10300 ; 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]
10301 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
10302 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10303 ; AVX2-ONLY-NEXT:    vmovdqa 1760(%rdi), %ymm0
10304 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10305 ; 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]
10306 ; AVX2-ONLY-NEXT:    vmovdqa 1664(%rdi), %xmm13
10307 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm13, %xmm1 # 16-byte Folded Reload
10308 ; AVX2-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm13[0,1,2,3,4,5,6,7]
10309 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
10310 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10311 ; AVX2-ONLY-NEXT:    vmovdqa 1888(%rdi), %xmm0
10312 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
10313 ; AVX2-ONLY-NEXT:    # xmm0 = mem[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
10314 ; AVX2-ONLY-NEXT:    vmovdqa 1984(%rdi), %ymm10
10315 ; 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]
10316 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
10317 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10318 ; AVX2-ONLY-NEXT:    vmovdqa 2208(%rdi), %ymm12
10319 ; 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]
10320 ; AVX2-ONLY-NEXT:    vmovdqa 2112(%rdi), %xmm11
10321 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm11, %xmm1 # 16-byte Folded Reload
10322 ; AVX2-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm11[0,1,2,3,4,5,6,7]
10323 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
10324 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10325 ; AVX2-ONLY-NEXT:    vmovdqa 2336(%rdi), %xmm0
10326 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
10327 ; AVX2-ONLY-NEXT:    # xmm0 = mem[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
10328 ; AVX2-ONLY-NEXT:    vmovdqa 2432(%rdi), %ymm8
10329 ; 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]
10330 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
10331 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10332 ; AVX2-ONLY-NEXT:    vmovdqa 2656(%rdi), %ymm9
10333 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm0 # 32-byte Folded Reload
10334 ; 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]
10335 ; AVX2-ONLY-NEXT:    vmovdqa 2560(%rdi), %xmm7
10336 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7, %xmm1 # 16-byte Folded Reload
10337 ; AVX2-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm7[0,1,2,3,4,5,6,7]
10338 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
10339 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10340 ; AVX2-ONLY-NEXT:    vmovdqa 2784(%rdi), %xmm0
10341 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
10342 ; AVX2-ONLY-NEXT:    # xmm0 = mem[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
10343 ; AVX2-ONLY-NEXT:    vmovdqa 2880(%rdi), %ymm4
10344 ; 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]
10345 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
10346 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10347 ; AVX2-ONLY-NEXT:    vmovdqa 3104(%rdi), %ymm6
10348 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm0 # 32-byte Folded Reload
10349 ; 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]
10350 ; AVX2-ONLY-NEXT:    vmovdqa 3008(%rdi), %xmm5
10351 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm1 # 16-byte Folded Reload
10352 ; AVX2-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm5[0,1,2,3,4,5,6,7]
10353 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
10354 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10355 ; AVX2-ONLY-NEXT:    vmovdqa 3232(%rdi), %xmm0
10356 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm1 # 16-byte Folded Reload
10357 ; AVX2-ONLY-NEXT:    # xmm1 = mem[8,9,10,11,12,13,14,15],xmm0[0,1,2,3,4,5,6,7]
10358 ; AVX2-ONLY-NEXT:    vmovdqa 3328(%rdi), %ymm3
10359 ; AVX2-ONLY-NEXT:    vpalignr $8, (%rsp), %ymm3, %ymm2 # 32-byte Folded Reload
10360 ; 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]
10361 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm2[4,5,6,7]
10362 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, (%rsp) # 32-byte Spill
10363 ; AVX2-ONLY-NEXT:    vmovdqa 3552(%rdi), %ymm2
10364 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm0 # 32-byte Folded Reload
10365 ; 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]
10366 ; AVX2-ONLY-NEXT:    vmovdqa 3456(%rdi), %xmm1
10367 ; AVX2-ONLY-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm15 # 16-byte Folded Reload
10368 ; AVX2-ONLY-NEXT:    # xmm15 = mem[8,9,10,11,12,13,14,15],xmm1[0,1,2,3,4,5,6,7]
10369 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm15[0,1,2,3],ymm0[4,5,6,7]
10370 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10371 ; AVX2-ONLY-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 16-byte Folded Reload
10372 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
10373 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
10374 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
10375 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm15 = xmm15[0,1],mem[2,3]
10376 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm15[0,1,2,3],ymm0[4,5,6,7]
10377 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10378 ; AVX2-ONLY-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 16-byte Folded Reload
10379 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
10380 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
10381 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
10382 ; AVX2-ONLY-NEXT:    vblendps $3, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload
10383 ; AVX2-ONLY-NEXT:    # xmm15 = mem[0,1],xmm15[2,3]
10384 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm15[0,1,2,3],ymm0[4,5,6,7]
10385 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10386 ; AVX2-ONLY-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 16-byte Folded Reload
10387 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
10388 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
10389 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
10390 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm15 = xmm15[0,1],mem[2,3]
10391 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm15[0,1,2,3],ymm0[4,5,6,7]
10392 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10393 ; AVX2-ONLY-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 16-byte Folded Reload
10394 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
10395 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
10396 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
10397 ; AVX2-ONLY-NEXT:    vblendps $3, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload
10398 ; AVX2-ONLY-NEXT:    # xmm15 = mem[0,1],xmm15[2,3]
10399 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm15[0,1,2,3],ymm0[4,5,6,7]
10400 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10401 ; AVX2-ONLY-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 16-byte Folded Reload
10402 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
10403 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
10404 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
10405 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm15 = xmm15[0,1],mem[2,3]
10406 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm15[0,1,2,3],ymm0[4,5,6,7]
10407 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10408 ; AVX2-ONLY-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 16-byte Folded Reload
10409 ; AVX2-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
10410 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
10411 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
10412 ; AVX2-ONLY-NEXT:    vblendps $3, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload
10413 ; AVX2-ONLY-NEXT:    # xmm15 = mem[0,1],xmm15[2,3]
10414 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm15[0,1,2,3],ymm0[4,5,6,7]
10415 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10416 ; AVX2-ONLY-NEXT:    vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 16-byte Folded Reload
10417 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm14[1],ymm0[3],ymm14[3]
10418 ; AVX2-ONLY-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
10419 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm14 = xmm14[0,1],mem[2,3]
10420 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm14[0,1,2,3],ymm0[4,5,6,7]
10421 ; AVX2-ONLY-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10422 ; AVX2-ONLY-NEXT:    vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 16-byte Folded Reload
10423 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
10424 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
10425 ; AVX2-ONLY-NEXT:    vpblendd $3, {{[-0-9]+}}(%r{{[sb]}}p), %xmm13, %xmm13 # 16-byte Folded Reload
10426 ; AVX2-ONLY-NEXT:    # xmm13 = mem[0,1],xmm13[2,3]
10427 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm15 = ymm13[0,1,2,3],ymm0[4,5,6,7]
10428 ; AVX2-ONLY-NEXT:    vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 16-byte Folded Reload
10429 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm10[1],ymm0[3],ymm10[3]
10430 ; AVX2-ONLY-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
10431 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm10 = xmm10[0,1],mem[2,3]
10432 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm13 = ymm10[0,1,2,3],ymm0[4,5,6,7]
10433 ; AVX2-ONLY-NEXT:    vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 16-byte Folded Reload
10434 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm12[1],ymm0[3],ymm12[3]
10435 ; AVX2-ONLY-NEXT:    vpblendd $3, {{[-0-9]+}}(%r{{[sb]}}p), %xmm11, %xmm10 # 16-byte Folded Reload
10436 ; AVX2-ONLY-NEXT:    # xmm10 = mem[0,1],xmm11[2,3]
10437 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm11 = ymm10[0,1,2,3],ymm0[4,5,6,7]
10438 ; AVX2-ONLY-NEXT:    vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 16-byte Folded Reload
10439 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm8[1],ymm0[3],ymm8[3]
10440 ; AVX2-ONLY-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
10441 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm8 = xmm8[0,1],mem[2,3]
10442 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm10 = ymm8[0,1,2,3],ymm0[4,5,6,7]
10443 ; AVX2-ONLY-NEXT:    vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 16-byte Folded Reload
10444 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm9[1],ymm0[3],ymm9[3]
10445 ; AVX2-ONLY-NEXT:    vpblendd $3, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7, %xmm7 # 16-byte Folded Reload
10446 ; AVX2-ONLY-NEXT:    # xmm7 = mem[0,1],xmm7[2,3]
10447 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3],ymm0[4,5,6,7]
10448 ; AVX2-ONLY-NEXT:    vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 16-byte Folded Reload
10449 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm4[1],ymm0[3],ymm4[3]
10450 ; AVX2-ONLY-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
10451 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm4 = xmm4[0,1],mem[2,3]
10452 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm8 = ymm4[0,1,2,3],ymm0[4,5,6,7]
10453 ; AVX2-ONLY-NEXT:    vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 16-byte Folded Reload
10454 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm6[1],ymm0[3],ymm6[3]
10455 ; AVX2-ONLY-NEXT:    vpblendd $3, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm4 # 16-byte Folded Reload
10456 ; AVX2-ONLY-NEXT:    # xmm4 = mem[0,1],xmm5[2,3]
10457 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm0[4,5,6,7]
10458 ; AVX2-ONLY-NEXT:    vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 16-byte Folded Reload
10459 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm3[1],ymm0[3],ymm3[3]
10460 ; AVX2-ONLY-NEXT:    vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
10461 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm3 = xmm3[0,1],mem[2,3]
10462 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm0[4,5,6,7]
10463 ; AVX2-ONLY-NEXT:    vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 16-byte Folded Reload
10464 ; AVX2-ONLY-NEXT:    vpunpckhqdq {{.*#+}} ymm2 = ymm3[1],ymm2[1],ymm3[3],ymm2[3]
10465 ; AVX2-ONLY-NEXT:    vpblendd $3, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
10466 ; AVX2-ONLY-NEXT:    # xmm1 = mem[0,1],xmm1[2,3]
10467 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm14 = ymm1[0,1,2,3],ymm2[4,5,6,7]
10468 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10469 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 448(%rsi)
10470 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10471 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 384(%rsi)
10472 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10473 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 320(%rsi)
10474 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10475 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 256(%rsi)
10476 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10477 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 192(%rsi)
10478 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10479 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 128(%rsi)
10480 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10481 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 64(%rsi)
10482 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10483 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, (%rsi)
10484 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10485 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 480(%rsi)
10486 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10487 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 416(%rsi)
10488 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10489 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 352(%rsi)
10490 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10491 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 288(%rsi)
10492 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10493 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 224(%rsi)
10494 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10495 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 160(%rsi)
10496 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10497 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 96(%rsi)
10498 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10499 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 32(%rsi)
10500 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10501 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 448(%rdx)
10502 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10503 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 384(%rdx)
10504 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10505 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 320(%rdx)
10506 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10507 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 256(%rdx)
10508 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10509 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 192(%rdx)
10510 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10511 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 128(%rdx)
10512 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10513 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 64(%rdx)
10514 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10515 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, (%rdx)
10516 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10517 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 480(%rdx)
10518 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10519 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 416(%rdx)
10520 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10521 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 352(%rdx)
10522 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10523 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 288(%rdx)
10524 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10525 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 224(%rdx)
10526 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10527 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 160(%rdx)
10528 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10529 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 96(%rdx)
10530 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10531 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 32(%rdx)
10532 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10533 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, (%rcx)
10534 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10535 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 64(%rcx)
10536 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10537 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 128(%rcx)
10538 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10539 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 192(%rcx)
10540 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10541 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 256(%rcx)
10542 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10543 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 320(%rcx)
10544 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10545 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 384(%rcx)
10546 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10547 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 448(%rcx)
10548 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10549 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 480(%rcx)
10550 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10551 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 416(%rcx)
10552 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10553 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 352(%rcx)
10554 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10555 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 288(%rcx)
10556 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10557 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 224(%rcx)
10558 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10559 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 160(%rcx)
10560 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10561 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 96(%rcx)
10562 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10563 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 32(%rcx)
10564 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10565 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 480(%r8)
10566 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10567 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 448(%r8)
10568 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10569 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 416(%r8)
10570 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10571 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 384(%r8)
10572 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10573 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 352(%r8)
10574 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10575 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 320(%r8)
10576 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10577 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 288(%r8)
10578 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10579 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 256(%r8)
10580 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10581 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 224(%r8)
10582 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10583 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 192(%r8)
10584 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10585 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 160(%r8)
10586 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10587 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 128(%r8)
10588 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10589 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 96(%r8)
10590 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10591 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 64(%r8)
10592 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10593 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 32(%r8)
10594 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10595 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, (%r8)
10596 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10597 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 480(%r9)
10598 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10599 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 448(%r9)
10600 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10601 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 416(%r9)
10602 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10603 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 384(%r9)
10604 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10605 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 352(%r9)
10606 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10607 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 320(%r9)
10608 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10609 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 288(%r9)
10610 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10611 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 256(%r9)
10612 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10613 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 224(%r9)
10614 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10615 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 192(%r9)
10616 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10617 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 160(%r9)
10618 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10619 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 128(%r9)
10620 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10621 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 96(%r9)
10622 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10623 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 64(%r9)
10624 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10625 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 32(%r9)
10626 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10627 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, (%r9)
10628 ; AVX2-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
10629 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10630 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 480(%rax)
10631 ; AVX2-ONLY-NEXT:    vmovups (%rsp), %ymm1 # 32-byte Reload
10632 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 448(%rax)
10633 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10634 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 416(%rax)
10635 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10636 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 384(%rax)
10637 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10638 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 352(%rax)
10639 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10640 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 320(%rax)
10641 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10642 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 288(%rax)
10643 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10644 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 256(%rax)
10645 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10646 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 224(%rax)
10647 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10648 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 192(%rax)
10649 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10650 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 160(%rax)
10651 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10652 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 128(%rax)
10653 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10654 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 96(%rax)
10655 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10656 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 64(%rax)
10657 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10658 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 32(%rax)
10659 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10660 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, (%rax)
10661 ; AVX2-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
10662 ; AVX2-ONLY-NEXT:    vmovdqa %ymm14, 480(%rax)
10663 ; AVX2-ONLY-NEXT:    vmovdqa %ymm0, 448(%rax)
10664 ; AVX2-ONLY-NEXT:    vmovdqa %ymm4, 416(%rax)
10665 ; AVX2-ONLY-NEXT:    vmovdqa %ymm8, 384(%rax)
10666 ; AVX2-ONLY-NEXT:    vmovdqa %ymm7, 352(%rax)
10667 ; AVX2-ONLY-NEXT:    vmovdqa %ymm10, 320(%rax)
10668 ; AVX2-ONLY-NEXT:    vmovdqa %ymm11, 288(%rax)
10669 ; AVX2-ONLY-NEXT:    vmovdqa %ymm13, 256(%rax)
10670 ; AVX2-ONLY-NEXT:    vmovdqa %ymm15, 224(%rax)
10671 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10672 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 192(%rax)
10673 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10674 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 160(%rax)
10675 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10676 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 128(%rax)
10677 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10678 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 96(%rax)
10679 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10680 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 64(%rax)
10681 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10682 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 32(%rax)
10683 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10684 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, (%rax)
10685 ; AVX2-ONLY-NEXT:    addq $3928, %rsp # imm = 0xF58
10686 ; AVX2-ONLY-NEXT:    vzeroupper
10687 ; AVX2-ONLY-NEXT:    retq
10689 ; AVX512F-LABEL: load_i64_stride7_vf64:
10690 ; AVX512F:       # %bb.0:
10691 ; AVX512F-NEXT:    subq $6728, %rsp # imm = 0x1A48
10692 ; AVX512F-NEXT:    vmovdqa64 3328(%rdi), %zmm17
10693 ; AVX512F-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10694 ; AVX512F-NEXT:    vmovdqa64 3264(%rdi), %zmm3
10695 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10696 ; AVX512F-NEXT:    vmovdqa64 3008(%rdi), %zmm19
10697 ; AVX512F-NEXT:    vmovdqa64 2944(%rdi), %zmm22
10698 ; AVX512F-NEXT:    vmovdqa64 2880(%rdi), %zmm2
10699 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10700 ; AVX512F-NEXT:    vmovdqa64 2816(%rdi), %zmm1
10701 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10702 ; AVX512F-NEXT:    vmovdqa64 2752(%rdi), %zmm0
10703 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10704 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm20
10705 ; AVX512F-NEXT:    vmovdqa64 2688(%rdi), %zmm15
10706 ; AVX512F-NEXT:    vmovdqa64 2432(%rdi), %zmm4
10707 ; AVX512F-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10708 ; AVX512F-NEXT:    vmovdqa64 2368(%rdi), %zmm5
10709 ; AVX512F-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10710 ; AVX512F-NEXT:    vmovdqa64 1984(%rdi), %zmm7
10711 ; AVX512F-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10712 ; AVX512F-NEXT:    vmovdqa64 1920(%rdi), %zmm8
10713 ; AVX512F-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10714 ; AVX512F-NEXT:    vmovdqa64 1536(%rdi), %zmm9
10715 ; AVX512F-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10716 ; AVX512F-NEXT:    vmovdqa64 1472(%rdi), %zmm10
10717 ; AVX512F-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10718 ; AVX512F-NEXT:    vmovdqa64 1088(%rdi), %zmm13
10719 ; AVX512F-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10720 ; AVX512F-NEXT:    vmovdqa64 1024(%rdi), %zmm11
10721 ; AVX512F-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10722 ; AVX512F-NEXT:    vmovdqa64 640(%rdi), %zmm14
10723 ; AVX512F-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10724 ; AVX512F-NEXT:    vmovdqa64 576(%rdi), %zmm6
10725 ; AVX512F-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10726 ; AVX512F-NEXT:    vmovdqa64 192(%rdi), %zmm18
10727 ; AVX512F-NEXT:    vmovdqu64 %zmm18, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10728 ; AVX512F-NEXT:    vmovdqa64 128(%rdi), %zmm12
10729 ; AVX512F-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10730 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [14,0,0,7,14,0,0,7]
10731 ; AVX512F-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
10732 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm0, %zmm1
10733 ; AVX512F-NEXT:    vmovdqa 2704(%rdi), %xmm2
10734 ; AVX512F-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0,1],mem[2,3]
10735 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm2, %zmm1, %zmm1
10736 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10737 ; AVX512F-NEXT:    vmovdqa64 %zmm6, %zmm1
10738 ; AVX512F-NEXT:    vpermt2q %zmm14, %zmm0, %zmm1
10739 ; AVX512F-NEXT:    vmovdqa 464(%rdi), %xmm2
10740 ; AVX512F-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0,1],mem[2,3]
10741 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm2, %zmm1, %zmm1
10742 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10743 ; AVX512F-NEXT:    vmovdqa64 %zmm12, %zmm1
10744 ; AVX512F-NEXT:    vpermt2q %zmm18, %zmm0, %zmm1
10745 ; AVX512F-NEXT:    vmovdqa 16(%rdi), %xmm2
10746 ; AVX512F-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0,1],mem[2,3]
10747 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm2, %zmm1, %zmm1
10748 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10749 ; AVX512F-NEXT:    vmovdqa64 %zmm10, %zmm1
10750 ; AVX512F-NEXT:    vpermt2q %zmm9, %zmm0, %zmm1
10751 ; AVX512F-NEXT:    vmovdqa 1360(%rdi), %xmm2
10752 ; AVX512F-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0,1],mem[2,3]
10753 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm2, %zmm1, %zmm1
10754 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10755 ; AVX512F-NEXT:    vmovdqa64 %zmm11, %zmm1
10756 ; AVX512F-NEXT:    vpermt2q %zmm13, %zmm0, %zmm1
10757 ; AVX512F-NEXT:    vmovdqa 912(%rdi), %xmm2
10758 ; AVX512F-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0,1],mem[2,3]
10759 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm2, %zmm1, %zmm1
10760 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10761 ; AVX512F-NEXT:    vmovdqa64 %zmm5, %zmm1
10762 ; AVX512F-NEXT:    vpermt2q %zmm4, %zmm0, %zmm1
10763 ; AVX512F-NEXT:    vmovdqa 2256(%rdi), %xmm2
10764 ; AVX512F-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0,1],mem[2,3]
10765 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm2, %zmm1, %zmm1
10766 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10767 ; AVX512F-NEXT:    vmovdqa64 %zmm8, %zmm1
10768 ; AVX512F-NEXT:    vpermt2q %zmm7, %zmm0, %zmm1
10769 ; AVX512F-NEXT:    vmovdqa 1808(%rdi), %xmm2
10770 ; AVX512F-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0,1],mem[2,3]
10771 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm2, %zmm1, %zmm1
10772 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10773 ; AVX512F-NEXT:    vpermi2q %zmm17, %zmm3, %zmm0
10774 ; AVX512F-NEXT:    vmovdqa 3152(%rdi), %xmm1
10775 ; AVX512F-NEXT:    vpblendd {{.*#+}} xmm1 = xmm1[0,1],mem[2,3]
10776 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm1, %zmm0, %zmm0
10777 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10778 ; AVX512F-NEXT:    vinserti128 $1, 2880(%rdi), %ymm0, %ymm1
10779 ; AVX512F-NEXT:    vmovdqa 2816(%rdi), %ymm0
10780 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm1 = ymm0[0,1,2,3,4,5],ymm1[6,7]
10781 ; AVX512F-NEXT:    vmovdqa64 %ymm0, %ymm16
10782 ; AVX512F-NEXT:    vmovdqa {{.*#+}} xmm5 = [4,11]
10783 ; AVX512F-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10784 ; AVX512F-NEXT:    vmovdqa64 %zmm15, %zmm2
10785 ; AVX512F-NEXT:    vpermt2q %zmm20, %zmm5, %zmm2
10786 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
10787 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,7,14,0,0,7,14,0]
10788 ; AVX512F-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
10789 ; AVX512F-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10790 ; AVX512F-NEXT:    vmovdqa64 %zmm22, %zmm2
10791 ; AVX512F-NEXT:    vmovdqa64 %zmm19, %zmm18
10792 ; AVX512F-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10793 ; AVX512F-NEXT:    vpermt2q %zmm19, %zmm4, %zmm2
10794 ; AVX512F-NEXT:    vmovdqa64 3072(%rdi), %zmm0
10795 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10796 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm9 = [4,5,6,13,4,5,6,13]
10797 ; AVX512F-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3]
10798 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm9, %zmm2
10799 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm1, %zmm2, %zmm1
10800 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10801 ; AVX512F-NEXT:    vinserti128 $1, 640(%rdi), %ymm0, %ymm1
10802 ; AVX512F-NEXT:    vmovdqa 576(%rdi), %ymm2
10803 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
10804 ; AVX512F-NEXT:    vmovdqa64 512(%rdi), %zmm28
10805 ; AVX512F-NEXT:    vmovdqa64 448(%rdi), %zmm3
10806 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10807 ; AVX512F-NEXT:    vpermt2q %zmm28, %zmm5, %zmm3
10808 ; AVX512F-NEXT:    vmovdqu64 %zmm28, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10809 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm1[4,5,6,7]
10810 ; AVX512F-NEXT:    vmovdqa64 768(%rdi), %zmm13
10811 ; AVX512F-NEXT:    vmovdqa64 704(%rdi), %zmm3
10812 ; AVX512F-NEXT:    vmovdqu64 %zmm3, (%rsp) # 64-byte Spill
10813 ; AVX512F-NEXT:    vpermt2q %zmm13, %zmm4, %zmm3
10814 ; AVX512F-NEXT:    vmovdqa64 832(%rdi), %zmm7
10815 ; AVX512F-NEXT:    vpermt2q %zmm7, %zmm9, %zmm3
10816 ; AVX512F-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10817 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm1, %zmm3, %zmm1
10818 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10819 ; AVX512F-NEXT:    vinserti128 $1, 192(%rdi), %ymm0, %ymm1
10820 ; AVX512F-NEXT:    vmovdqa 128(%rdi), %ymm0
10821 ; AVX512F-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10822 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm1 = ymm0[0,1,2,3,4,5],ymm1[6,7]
10823 ; AVX512F-NEXT:    vmovdqa64 64(%rdi), %zmm6
10824 ; AVX512F-NEXT:    vmovdqa64 (%rdi), %zmm3
10825 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10826 ; AVX512F-NEXT:    vpermt2q %zmm6, %zmm5, %zmm3
10827 ; AVX512F-NEXT:    vmovdqa64 %zmm6, %zmm30
10828 ; AVX512F-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10829 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm1[4,5,6,7]
10830 ; AVX512F-NEXT:    vmovdqa64 320(%rdi), %zmm10
10831 ; AVX512F-NEXT:    vmovdqa64 256(%rdi), %zmm3
10832 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10833 ; AVX512F-NEXT:    vpermt2q %zmm10, %zmm4, %zmm3
10834 ; AVX512F-NEXT:    vmovdqa64 384(%rdi), %zmm27
10835 ; AVX512F-NEXT:    vpermt2q %zmm27, %zmm9, %zmm3
10836 ; AVX512F-NEXT:    vmovdqu64 %zmm27, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10837 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm1, %zmm3, %zmm1
10838 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10839 ; AVX512F-NEXT:    vinserti128 $1, 1536(%rdi), %ymm0, %ymm1
10840 ; AVX512F-NEXT:    vmovdqa 1472(%rdi), %ymm3
10841 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm1 = ymm3[0,1,2,3,4,5],ymm1[6,7]
10842 ; AVX512F-NEXT:    vmovdqa64 1408(%rdi), %zmm25
10843 ; AVX512F-NEXT:    vmovdqa64 1344(%rdi), %zmm6
10844 ; AVX512F-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10845 ; AVX512F-NEXT:    vpermt2q %zmm25, %zmm5, %zmm6
10846 ; AVX512F-NEXT:    vmovdqu64 %zmm25, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10847 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm1 = ymm6[0,1,2,3],ymm1[4,5,6,7]
10848 ; AVX512F-NEXT:    vmovdqa64 1664(%rdi), %zmm14
10849 ; AVX512F-NEXT:    vmovdqa64 1600(%rdi), %zmm6
10850 ; AVX512F-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10851 ; AVX512F-NEXT:    vpermt2q %zmm14, %zmm4, %zmm6
10852 ; AVX512F-NEXT:    vmovdqa64 1728(%rdi), %zmm0
10853 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10854 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm9, %zmm6
10855 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm1, %zmm6, %zmm1
10856 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10857 ; AVX512F-NEXT:    vinserti128 $1, 1088(%rdi), %ymm0, %ymm1
10858 ; AVX512F-NEXT:    vmovdqa 1024(%rdi), %ymm0
10859 ; AVX512F-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10860 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm1 = ymm0[0,1,2,3,4,5],ymm1[6,7]
10861 ; AVX512F-NEXT:    vmovdqa64 960(%rdi), %zmm19
10862 ; AVX512F-NEXT:    vmovdqa64 896(%rdi), %zmm8
10863 ; AVX512F-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10864 ; AVX512F-NEXT:    vpermt2q %zmm19, %zmm5, %zmm8
10865 ; AVX512F-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10866 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm1 = ymm8[0,1,2,3],ymm1[4,5,6,7]
10867 ; AVX512F-NEXT:    vmovdqa64 1216(%rdi), %zmm20
10868 ; AVX512F-NEXT:    vmovdqa64 1152(%rdi), %zmm8
10869 ; AVX512F-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10870 ; AVX512F-NEXT:    vpermt2q %zmm20, %zmm4, %zmm8
10871 ; AVX512F-NEXT:    vmovdqa64 1280(%rdi), %zmm0
10872 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10873 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm9, %zmm8
10874 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm1, %zmm8, %zmm1
10875 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10876 ; AVX512F-NEXT:    vinserti128 $1, 2432(%rdi), %ymm0, %ymm1
10877 ; AVX512F-NEXT:    vmovdqa 2368(%rdi), %ymm0
10878 ; AVX512F-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10879 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm1 = ymm0[0,1,2,3,4,5],ymm1[6,7]
10880 ; AVX512F-NEXT:    vmovdqa64 2304(%rdi), %zmm0
10881 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10882 ; AVX512F-NEXT:    vmovdqa64 2240(%rdi), %zmm8
10883 ; AVX512F-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10884 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm5, %zmm8
10885 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm1 = ymm8[0,1,2,3],ymm1[4,5,6,7]
10886 ; AVX512F-NEXT:    vmovdqa64 2560(%rdi), %zmm21
10887 ; AVX512F-NEXT:    vmovdqa64 2496(%rdi), %zmm8
10888 ; AVX512F-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10889 ; AVX512F-NEXT:    vpermt2q %zmm21, %zmm4, %zmm8
10890 ; AVX512F-NEXT:    vmovdqa64 2624(%rdi), %zmm26
10891 ; AVX512F-NEXT:    vpermt2q %zmm26, %zmm9, %zmm8
10892 ; AVX512F-NEXT:    vmovdqu64 %zmm26, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10893 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm1, %zmm8, %zmm1
10894 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10895 ; AVX512F-NEXT:    vinserti128 $1, 1984(%rdi), %ymm0, %ymm1
10896 ; AVX512F-NEXT:    vmovdqa 1920(%rdi), %ymm0
10897 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm1 = ymm0[0,1,2,3,4,5],ymm1[6,7]
10898 ; AVX512F-NEXT:    vmovdqa64 %ymm0, %ymm29
10899 ; AVX512F-NEXT:    vmovdqa64 1856(%rdi), %zmm17
10900 ; AVX512F-NEXT:    vmovdqa64 1792(%rdi), %zmm8
10901 ; AVX512F-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10902 ; AVX512F-NEXT:    vpermt2q %zmm17, %zmm5, %zmm8
10903 ; AVX512F-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10904 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm1[4,5,6,7]
10905 ; AVX512F-NEXT:    vmovdqa64 2112(%rdi), %zmm1
10906 ; AVX512F-NEXT:    vmovdqa64 2048(%rdi), %zmm11
10907 ; AVX512F-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10908 ; AVX512F-NEXT:    vpermt2q %zmm1, %zmm4, %zmm11
10909 ; AVX512F-NEXT:    vmovdqa64 2176(%rdi), %zmm0
10910 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm9, %zmm11
10911 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm24
10912 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10913 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm8, %zmm11, %zmm8
10914 ; AVX512F-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10915 ; AVX512F-NEXT:    vinserti128 $1, 3328(%rdi), %ymm0, %ymm8
10916 ; AVX512F-NEXT:    vmovdqa 3264(%rdi), %ymm12
10917 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm8 = ymm12[0,1,2,3,4,5],ymm8[6,7]
10918 ; AVX512F-NEXT:    vmovdqa64 3200(%rdi), %zmm11
10919 ; AVX512F-NEXT:    vmovdqa64 3136(%rdi), %zmm6
10920 ; AVX512F-NEXT:    vpermi2q %zmm11, %zmm6, %zmm5
10921 ; AVX512F-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10922 ; AVX512F-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10923 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm8 = ymm5[0,1,2,3],ymm8[4,5,6,7]
10924 ; AVX512F-NEXT:    vmovdqa64 3456(%rdi), %zmm5
10925 ; AVX512F-NEXT:    vmovdqa64 3392(%rdi), %zmm31
10926 ; AVX512F-NEXT:    vpermi2q %zmm5, %zmm31, %zmm4
10927 ; AVX512F-NEXT:    vmovdqa64 3520(%rdi), %zmm0
10928 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm9, %zmm4
10929 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm23
10930 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10931 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm8, %zmm4, %zmm4
10932 ; AVX512F-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10933 ; AVX512F-NEXT:    vmovdqa 2880(%rdi), %ymm4
10934 ; AVX512F-NEXT:    vmovdqa64 %ymm16, %ymm0
10935 ; AVX512F-NEXT:    vpalignr {{.*#+}} ymm4 = ymm0[8,9,10,11,12,13,14,15],ymm4[0,1,2,3,4,5,6,7],ymm0[24,25,26,27,28,29,30,31],ymm4[16,17,18,19,20,21,22,23]
10936 ; AVX512F-NEXT:    vmovdqa {{.*#+}} xmm0 = [5,12]
10937 ; AVX512F-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm15 # 64-byte Folded Reload
10938 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm9 = ymm15[0,1,2,3],ymm4[4,5,6,7]
10939 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [9,0,7,0,9,0,7,0]
10940 ; AVX512F-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
10941 ; AVX512F-NEXT:    vmovdqa64 %zmm18, %zmm16
10942 ; AVX512F-NEXT:    vpermt2q %zmm22, %zmm4, %zmm16
10943 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [4,5,6,14,4,5,6,14]
10944 ; AVX512F-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
10945 ; AVX512F-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm8, %zmm16 # 64-byte Folded Reload
10946 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm9, %zmm16, %zmm9
10947 ; AVX512F-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10948 ; AVX512F-NEXT:    vmovdqa 640(%rdi), %ymm9
10949 ; AVX512F-NEXT:    vpalignr {{.*#+}} ymm2 = ymm2[8,9,10,11,12,13,14,15],ymm9[0,1,2,3,4,5,6,7],ymm2[24,25,26,27,28,29,30,31],ymm9[16,17,18,19,20,21,22,23]
10950 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
10951 ; AVX512F-NEXT:    vpermt2q %zmm28, %zmm0, %zmm9
10952 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm2 = ymm9[0,1,2,3],ymm2[4,5,6,7]
10953 ; AVX512F-NEXT:    vmovdqa64 %zmm13, %zmm9
10954 ; AVX512F-NEXT:    vmovdqu64 (%rsp), %zmm15 # 64-byte Reload
10955 ; AVX512F-NEXT:    vpermt2q %zmm15, %zmm4, %zmm9
10956 ; AVX512F-NEXT:    vpermt2q %zmm7, %zmm8, %zmm9
10957 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm2, %zmm9, %zmm2
10958 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10959 ; AVX512F-NEXT:    vmovdqa 192(%rdi), %ymm2
10960 ; AVX512F-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
10961 ; AVX512F-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]
10962 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
10963 ; AVX512F-NEXT:    vpermt2q %zmm30, %zmm0, %zmm7
10964 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm2 = ymm7[0,1,2,3],ymm2[4,5,6,7]
10965 ; AVX512F-NEXT:    vmovdqa64 %zmm10, %zmm7
10966 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
10967 ; AVX512F-NEXT:    vpermt2q %zmm9, %zmm4, %zmm7
10968 ; AVX512F-NEXT:    vpermt2q %zmm27, %zmm8, %zmm7
10969 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm2, %zmm7, %zmm2
10970 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10971 ; AVX512F-NEXT:    vmovdqa 1536(%rdi), %ymm2
10972 ; AVX512F-NEXT:    vpalignr {{.*#+}} ymm2 = ymm3[8,9,10,11,12,13,14,15],ymm2[0,1,2,3,4,5,6,7],ymm3[24,25,26,27,28,29,30,31],ymm2[16,17,18,19,20,21,22,23]
10973 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10974 ; AVX512F-NEXT:    vpermt2q %zmm25, %zmm0, %zmm3
10975 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
10976 ; AVX512F-NEXT:    vmovdqa64 %zmm14, %zmm3
10977 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm25 # 64-byte Reload
10978 ; AVX512F-NEXT:    vpermt2q %zmm25, %zmm4, %zmm3
10979 ; AVX512F-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm8, %zmm3 # 64-byte Folded Reload
10980 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm2, %zmm3, %zmm2
10981 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10982 ; AVX512F-NEXT:    vmovdqa 1088(%rdi), %ymm2
10983 ; AVX512F-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
10984 ; AVX512F-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]
10985 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10986 ; AVX512F-NEXT:    vpermt2q %zmm19, %zmm0, %zmm3
10987 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
10988 ; AVX512F-NEXT:    vmovdqa64 %zmm20, %zmm3
10989 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm30 # 64-byte Reload
10990 ; AVX512F-NEXT:    vpermt2q %zmm30, %zmm4, %zmm3
10991 ; AVX512F-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm8, %zmm3 # 64-byte Folded Reload
10992 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm2, %zmm3, %zmm2
10993 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10994 ; AVX512F-NEXT:    vmovdqa 2432(%rdi), %ymm2
10995 ; AVX512F-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
10996 ; AVX512F-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]
10997 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10998 ; AVX512F-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm3 # 64-byte Folded Reload
10999 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
11000 ; AVX512F-NEXT:    vmovdqa64 %zmm21, %zmm3
11001 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
11002 ; AVX512F-NEXT:    vpermt2q %zmm19, %zmm4, %zmm3
11003 ; AVX512F-NEXT:    vpermt2q %zmm26, %zmm8, %zmm3
11004 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm2, %zmm3, %zmm2
11005 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11006 ; AVX512F-NEXT:    vmovdqa 1984(%rdi), %ymm2
11007 ; AVX512F-NEXT:    vmovdqa64 %ymm29, %ymm3
11008 ; AVX512F-NEXT:    vpalignr {{.*#+}} ymm2 = ymm3[8,9,10,11,12,13,14,15],ymm2[0,1,2,3,4,5,6,7],ymm3[24,25,26,27,28,29,30,31],ymm2[16,17,18,19,20,21,22,23]
11009 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
11010 ; AVX512F-NEXT:    vpermt2q %zmm17, %zmm0, %zmm3
11011 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
11012 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm3
11013 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm27 # 64-byte Reload
11014 ; AVX512F-NEXT:    vpermt2q %zmm27, %zmm4, %zmm3
11015 ; AVX512F-NEXT:    vpermt2q %zmm24, %zmm8, %zmm3
11016 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm2, %zmm3, %zmm2
11017 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11018 ; AVX512F-NEXT:    vmovdqa 3328(%rdi), %ymm2
11019 ; AVX512F-NEXT:    vpalignr {{.*#+}} ymm2 = ymm12[8,9,10,11,12,13,14,15],ymm2[0,1,2,3,4,5,6,7],ymm12[24,25,26,27,28,29,30,31],ymm2[16,17,18,19,20,21,22,23]
11020 ; AVX512F-NEXT:    vpermi2q %zmm11, %zmm6, %zmm0
11021 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
11022 ; AVX512F-NEXT:    vpermi2q %zmm31, %zmm5, %zmm4
11023 ; AVX512F-NEXT:    vpermt2q %zmm23, %zmm8, %zmm4
11024 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
11025 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11026 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm26 = [10,3,10,3,10,3,10,3]
11027 ; AVX512F-NEXT:    # zmm26 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
11028 ; AVX512F-NEXT:    vmovdqa64 %zmm15, %zmm4
11029 ; AVX512F-NEXT:    vmovdqa64 %zmm15, %zmm0
11030 ; AVX512F-NEXT:    vpermt2q %zmm13, %zmm26, %zmm0
11031 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11032 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [11,4,11,4,11,4,11,4]
11033 ; AVX512F-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
11034 ; AVX512F-NEXT:    vmovdqa64 %zmm15, %zmm2
11035 ; AVX512F-NEXT:    vpermt2q %zmm13, %zmm0, %zmm2
11036 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11037 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm3
11038 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm7 = [12,5,12,5,12,5,12,5]
11039 ; AVX512F-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
11040 ; AVX512F-NEXT:    vmovdqa64 %zmm15, %zmm0
11041 ; AVX512F-NEXT:    vpermt2q %zmm13, %zmm7, %zmm0
11042 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11043 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm12 = [13,6,13,6,13,6,13,6]
11044 ; AVX512F-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
11045 ; AVX512F-NEXT:    vmovdqa64 %zmm15, %zmm0
11046 ; AVX512F-NEXT:    vpermt2q %zmm13, %zmm12, %zmm0
11047 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11048 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [2,9,2,9,2,9,2,9]
11049 ; AVX512F-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
11050 ; AVX512F-NEXT:    vpermt2q %zmm13, %zmm0, %zmm4
11051 ; AVX512F-NEXT:    vmovdqu64 %zmm4, (%rsp) # 64-byte Spill
11052 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm17
11053 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm2
11054 ; AVX512F-NEXT:    vpermt2q %zmm10, %zmm26, %zmm2
11055 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11056 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm2
11057 ; AVX512F-NEXT:    vpermt2q %zmm10, %zmm3, %zmm2
11058 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11059 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm2
11060 ; AVX512F-NEXT:    vpermt2q %zmm10, %zmm7, %zmm2
11061 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11062 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm2
11063 ; AVX512F-NEXT:    vpermt2q %zmm10, %zmm12, %zmm2
11064 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11065 ; AVX512F-NEXT:    vpermt2q %zmm10, %zmm0, %zmm17
11066 ; AVX512F-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11067 ; AVX512F-NEXT:    vmovdqa64 %zmm25, %zmm2
11068 ; AVX512F-NEXT:    vpermt2q %zmm14, %zmm26, %zmm2
11069 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11070 ; AVX512F-NEXT:    vmovdqa64 %zmm25, %zmm2
11071 ; AVX512F-NEXT:    vpermt2q %zmm14, %zmm3, %zmm2
11072 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11073 ; AVX512F-NEXT:    vmovdqa64 %zmm25, %zmm2
11074 ; AVX512F-NEXT:    vpermt2q %zmm14, %zmm7, %zmm2
11075 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11076 ; AVX512F-NEXT:    vmovdqa64 %zmm25, %zmm2
11077 ; AVX512F-NEXT:    vpermt2q %zmm14, %zmm12, %zmm2
11078 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11079 ; AVX512F-NEXT:    vpermt2q %zmm14, %zmm0, %zmm25
11080 ; AVX512F-NEXT:    vmovdqu64 %zmm25, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11081 ; AVX512F-NEXT:    vmovdqa64 %zmm30, %zmm2
11082 ; AVX512F-NEXT:    vpermt2q %zmm20, %zmm26, %zmm2
11083 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm13
11084 ; AVX512F-NEXT:    vmovdqa64 %zmm30, %zmm24
11085 ; AVX512F-NEXT:    vpermt2q %zmm20, %zmm3, %zmm24
11086 ; AVX512F-NEXT:    vmovdqa64 %zmm30, %zmm25
11087 ; AVX512F-NEXT:    vpermt2q %zmm20, %zmm7, %zmm25
11088 ; AVX512F-NEXT:    vmovdqa64 %zmm30, %zmm2
11089 ; AVX512F-NEXT:    vpermt2q %zmm20, %zmm12, %zmm2
11090 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11091 ; AVX512F-NEXT:    vpermt2q %zmm20, %zmm0, %zmm30
11092 ; AVX512F-NEXT:    vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11093 ; AVX512F-NEXT:    vmovdqa64 %zmm19, %zmm15
11094 ; AVX512F-NEXT:    vpermt2q %zmm21, %zmm26, %zmm15
11095 ; AVX512F-NEXT:    vmovdqa64 %zmm19, %zmm18
11096 ; AVX512F-NEXT:    vpermt2q %zmm21, %zmm3, %zmm18
11097 ; AVX512F-NEXT:    vmovdqa64 %zmm19, %zmm22
11098 ; AVX512F-NEXT:    vpermt2q %zmm21, %zmm7, %zmm22
11099 ; AVX512F-NEXT:    vmovdqa64 %zmm19, %zmm23
11100 ; AVX512F-NEXT:    vpermt2q %zmm21, %zmm12, %zmm23
11101 ; AVX512F-NEXT:    vpermt2q %zmm21, %zmm0, %zmm19
11102 ; AVX512F-NEXT:    vmovdqa64 %zmm27, %zmm9
11103 ; AVX512F-NEXT:    vpermt2q %zmm1, %zmm26, %zmm9
11104 ; AVX512F-NEXT:    vmovdqa64 %zmm27, %zmm11
11105 ; AVX512F-NEXT:    vpermt2q %zmm1, %zmm3, %zmm11
11106 ; AVX512F-NEXT:    vmovdqa64 %zmm27, %zmm17
11107 ; AVX512F-NEXT:    vpermt2q %zmm1, %zmm7, %zmm17
11108 ; AVX512F-NEXT:    vmovdqa64 %zmm27, %zmm8
11109 ; AVX512F-NEXT:    vpermt2q %zmm1, %zmm12, %zmm8
11110 ; AVX512F-NEXT:    vmovdqa64 %zmm8, %zmm21
11111 ; AVX512F-NEXT:    vpermt2q %zmm1, %zmm0, %zmm27
11112 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
11113 ; AVX512F-NEXT:    vmovdqa64 %zmm20, %zmm4
11114 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
11115 ; AVX512F-NEXT:    vpermt2q %zmm1, %zmm26, %zmm4
11116 ; AVX512F-NEXT:    vpermi2q %zmm5, %zmm31, %zmm26
11117 ; AVX512F-NEXT:    vmovdqa64 %zmm20, %zmm30
11118 ; AVX512F-NEXT:    vmovdqa64 %zmm3, %zmm2
11119 ; AVX512F-NEXT:    vpermt2q %zmm1, %zmm3, %zmm30
11120 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm16
11121 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
11122 ; AVX512F-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm12, %zmm1 # 64-byte Folded Reload
11123 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11124 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
11125 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm29 # 64-byte Reload
11126 ; AVX512F-NEXT:    vpermt2q %zmm29, %zmm12, %zmm1
11127 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11128 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
11129 ; AVX512F-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm12, %zmm1 # 64-byte Folded Reload
11130 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11131 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
11132 ; AVX512F-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm12, %zmm1 # 64-byte Folded Reload
11133 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11134 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
11135 ; AVX512F-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm12, %zmm1 # 64-byte Folded Reload
11136 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11137 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
11138 ; AVX512F-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm12, %zmm1 # 64-byte Folded Reload
11139 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11140 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
11141 ; AVX512F-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm12, %zmm1 # 64-byte Folded Reload
11142 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11143 ; AVX512F-NEXT:    vmovdqa64 %zmm31, %zmm8
11144 ; AVX512F-NEXT:    vpermi2q %zmm5, %zmm31, %zmm2
11145 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
11146 ; AVX512F-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm12, %zmm1 # 64-byte Folded Reload
11147 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11148 ; AVX512F-NEXT:    vmovdqa64 %zmm20, %zmm28
11149 ; AVX512F-NEXT:    vpermt2q %zmm16, %zmm7, %zmm28
11150 ; AVX512F-NEXT:    vpermi2q %zmm5, %zmm31, %zmm7
11151 ; AVX512F-NEXT:    vmovdqa64 %zmm20, %zmm3
11152 ; AVX512F-NEXT:    vpermt2q %zmm16, %zmm12, %zmm3
11153 ; AVX512F-NEXT:    vpermi2q %zmm5, %zmm31, %zmm12
11154 ; AVX512F-NEXT:    vpermt2q %zmm5, %zmm0, %zmm8
11155 ; AVX512F-NEXT:    vpermt2q %zmm16, %zmm0, %zmm20
11156 ; AVX512F-NEXT:    vmovdqa64 %zmm20, %zmm1
11157 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [0,5,6,9,0,5,6,9]
11158 ; AVX512F-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
11159 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
11160 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
11161 ; AVX512F-NEXT:    vpermt2q %zmm10, %zmm0, %zmm5
11162 ; AVX512F-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11163 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
11164 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
11165 ; AVX512F-NEXT:    vpermt2q %zmm6, %zmm0, %zmm5
11166 ; AVX512F-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11167 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
11168 ; AVX512F-NEXT:    vpermt2q %zmm16, %zmm0, %zmm13
11169 ; AVX512F-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11170 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
11171 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
11172 ; AVX512F-NEXT:    vpermt2q %zmm14, %zmm0, %zmm5
11173 ; AVX512F-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11174 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
11175 ; AVX512F-NEXT:    vpermt2q %zmm13, %zmm0, %zmm9
11176 ; AVX512F-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11177 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
11178 ; AVX512F-NEXT:    vpermt2q %zmm31, %zmm0, %zmm15
11179 ; AVX512F-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11180 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
11181 ; AVX512F-NEXT:    vpermt2q %zmm5, %zmm0, %zmm4
11182 ; AVX512F-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11183 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
11184 ; AVX512F-NEXT:    vpermt2q %zmm15, %zmm0, %zmm26
11185 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [0,5,6,10,0,5,6,10]
11186 ; AVX512F-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
11187 ; AVX512F-NEXT:    vpermt2q %zmm5, %zmm0, %zmm30
11188 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
11189 ; AVX512F-NEXT:    vpermt2q %zmm6, %zmm0, %zmm20
11190 ; AVX512F-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11191 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
11192 ; AVX512F-NEXT:    vpermt2q %zmm10, %zmm0, %zmm20
11193 ; AVX512F-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11194 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
11195 ; AVX512F-NEXT:    vpermt2q %zmm14, %zmm0, %zmm20
11196 ; AVX512F-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11197 ; AVX512F-NEXT:    vpermt2q %zmm16, %zmm0, %zmm24
11198 ; AVX512F-NEXT:    vmovdqu64 %zmm24, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11199 ; AVX512F-NEXT:    vpermt2q %zmm31, %zmm0, %zmm18
11200 ; AVX512F-NEXT:    vmovdqu64 %zmm18, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11201 ; AVX512F-NEXT:    vpermt2q %zmm13, %zmm0, %zmm11
11202 ; AVX512F-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11203 ; AVX512F-NEXT:    vpermt2q %zmm15, %zmm0, %zmm2
11204 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11205 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [0,5,6,11,0,5,6,11]
11206 ; AVX512F-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
11207 ; AVX512F-NEXT:    vpermt2q %zmm5, %zmm0, %zmm28
11208 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
11209 ; AVX512F-NEXT:    vpermt2q %zmm6, %zmm0, %zmm4
11210 ; AVX512F-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11211 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
11212 ; AVX512F-NEXT:    vpermt2q %zmm10, %zmm0, %zmm9
11213 ; AVX512F-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11214 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
11215 ; AVX512F-NEXT:    vpermt2q %zmm14, %zmm0, %zmm9
11216 ; AVX512F-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11217 ; AVX512F-NEXT:    vpermt2q %zmm16, %zmm0, %zmm25
11218 ; AVX512F-NEXT:    vmovdqu64 %zmm25, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11219 ; AVX512F-NEXT:    vpermt2q %zmm31, %zmm0, %zmm22
11220 ; AVX512F-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11221 ; AVX512F-NEXT:    vpermt2q %zmm13, %zmm0, %zmm17
11222 ; AVX512F-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11223 ; AVX512F-NEXT:    vpermt2q %zmm15, %zmm0, %zmm7
11224 ; AVX512F-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11225 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [0,5,6,12,0,5,6,12]
11226 ; AVX512F-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
11227 ; AVX512F-NEXT:    vpermt2q %zmm5, %zmm0, %zmm3
11228 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11229 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
11230 ; AVX512F-NEXT:    vpermt2q %zmm6, %zmm0, %zmm4
11231 ; AVX512F-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11232 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
11233 ; AVX512F-NEXT:    vpermt2q %zmm10, %zmm0, %zmm4
11234 ; AVX512F-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11235 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11236 ; AVX512F-NEXT:    vpermt2q %zmm14, %zmm0, %zmm2
11237 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11238 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
11239 ; AVX512F-NEXT:    vpermt2q %zmm16, %zmm0, %zmm4
11240 ; AVX512F-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11241 ; AVX512F-NEXT:    vpermt2q %zmm31, %zmm0, %zmm23
11242 ; AVX512F-NEXT:    vmovdqu64 %zmm23, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11243 ; AVX512F-NEXT:    vpermt2q %zmm13, %zmm0, %zmm21
11244 ; AVX512F-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11245 ; AVX512F-NEXT:    vpermt2q %zmm15, %zmm0, %zmm12
11246 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [4,5,8,15,4,5,8,15]
11247 ; AVX512F-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
11248 ; AVX512F-NEXT:    vmovdqu64 (%rsp), %zmm2 # 64-byte Reload
11249 ; AVX512F-NEXT:    vpermt2q %zmm6, %zmm0, %zmm2
11250 ; AVX512F-NEXT:    vmovdqu64 %zmm2, (%rsp) # 64-byte Spill
11251 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11252 ; AVX512F-NEXT:    vpermt2q %zmm10, %zmm0, %zmm2
11253 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11254 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11255 ; AVX512F-NEXT:    vpermt2q %zmm14, %zmm0, %zmm2
11256 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11257 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11258 ; AVX512F-NEXT:    vpermt2q %zmm16, %zmm0, %zmm2
11259 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11260 ; AVX512F-NEXT:    vpermt2q %zmm31, %zmm0, %zmm19
11261 ; AVX512F-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11262 ; AVX512F-NEXT:    vpermt2q %zmm13, %zmm0, %zmm27
11263 ; AVX512F-NEXT:    vmovdqu64 %zmm27, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11264 ; AVX512F-NEXT:    vpermt2q %zmm15, %zmm0, %zmm8
11265 ; AVX512F-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11266 ; AVX512F-NEXT:    vpermt2q %zmm5, %zmm0, %zmm1
11267 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11268 ; AVX512F-NEXT:    movb $24, %al
11269 ; AVX512F-NEXT:    kmovw %eax, %k1
11270 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} ymm23 = <0,7,14,u>
11271 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm21 # 64-byte Reload
11272 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
11273 ; AVX512F-NEXT:    vpermt2q %zmm16, %zmm23, %zmm21
11274 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
11275 ; AVX512F-NEXT:    vmovdqa64 %zmm29, %zmm17
11276 ; AVX512F-NEXT:    vshufi64x2 {{.*#+}} zmm21 {%k1} = zmm13[4,5,4,5],zmm29[4,5,4,5]
11277 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm29 = [7,0,9,0,7,0,9,0]
11278 ; AVX512F-NEXT:    # zmm29 = mem[0,1,2,3,0,1,2,3]
11279 ; AVX512F-NEXT:    vmovdqa64 %zmm17, %zmm0
11280 ; AVX512F-NEXT:    vpermt2q %zmm13, %zmm29, %zmm0
11281 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11282 ; AVX512F-NEXT:    vbroadcasti128 {{.*#+}} ymm6 = [4,11,4,11]
11283 ; AVX512F-NEXT:    # ymm6 = mem[0,1,0,1]
11284 ; AVX512F-NEXT:    vpermt2q %zmm17, %zmm6, %zmm13
11285 ; AVX512F-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11286 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm24 # 64-byte Reload
11287 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
11288 ; AVX512F-NEXT:    vpermt2q %zmm20, %zmm23, %zmm24
11289 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
11290 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm25 # 64-byte Reload
11291 ; AVX512F-NEXT:    vshufi64x2 {{.*#+}} zmm24 {%k1} = zmm1[4,5,4,5],zmm25[4,5,4,5]
11292 ; AVX512F-NEXT:    vmovdqa64 %zmm25, %zmm0
11293 ; AVX512F-NEXT:    vpermt2q %zmm1, %zmm29, %zmm0
11294 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11295 ; AVX512F-NEXT:    vpermt2q %zmm25, %zmm6, %zmm1
11296 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11297 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
11298 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
11299 ; AVX512F-NEXT:    vpermt2q %zmm9, %zmm23, %zmm31
11300 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
11301 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
11302 ; AVX512F-NEXT:    vshufi64x2 {{.*#+}} zmm31 {%k1} = zmm1[4,5,4,5],zmm17[4,5,4,5]
11303 ; AVX512F-NEXT:    vmovdqa64 %zmm17, %zmm0
11304 ; AVX512F-NEXT:    vpermt2q %zmm1, %zmm29, %zmm0
11305 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11306 ; AVX512F-NEXT:    vpermt2q %zmm17, %zmm6, %zmm1
11307 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11308 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm25 # 64-byte Reload
11309 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
11310 ; AVX512F-NEXT:    vpermt2q %zmm7, %zmm23, %zmm25
11311 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
11312 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
11313 ; AVX512F-NEXT:    vshufi64x2 {{.*#+}} zmm25 {%k1} = zmm1[4,5,4,5],zmm5[4,5,4,5]
11314 ; AVX512F-NEXT:    vmovdqa64 %zmm5, %zmm0
11315 ; AVX512F-NEXT:    vpermt2q %zmm1, %zmm29, %zmm0
11316 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11317 ; AVX512F-NEXT:    vpermt2q %zmm5, %zmm6, %zmm1
11318 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11319 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
11320 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm18 # 64-byte Reload
11321 ; AVX512F-NEXT:    vpermt2q %zmm18, %zmm23, %zmm19
11322 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
11323 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
11324 ; AVX512F-NEXT:    vshufi64x2 {{.*#+}} zmm19 {%k1} = zmm1[4,5,4,5],zmm3[4,5,4,5]
11325 ; AVX512F-NEXT:    vmovdqa64 %zmm3, %zmm0
11326 ; AVX512F-NEXT:    vpermt2q %zmm1, %zmm29, %zmm0
11327 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11328 ; AVX512F-NEXT:    vpermt2q %zmm3, %zmm6, %zmm1
11329 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11330 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
11331 ; AVX512F-NEXT:    vmovdqa64 %zmm15, %zmm17
11332 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
11333 ; AVX512F-NEXT:    vpermt2q %zmm14, %zmm23, %zmm17
11334 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
11335 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
11336 ; AVX512F-NEXT:    vshufi64x2 {{.*#+}} zmm17 {%k1} = zmm1[4,5,4,5],zmm3[4,5,4,5]
11337 ; AVX512F-NEXT:    vmovdqa64 %zmm3, %zmm0
11338 ; AVX512F-NEXT:    vpermt2q %zmm1, %zmm29, %zmm0
11339 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11340 ; AVX512F-NEXT:    vpermt2q %zmm3, %zmm6, %zmm1
11341 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11342 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
11343 ; AVX512F-NEXT:    vmovdqa64 %zmm8, %zmm11
11344 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11345 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm23, %zmm11
11346 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
11347 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
11348 ; AVX512F-NEXT:    vpermi2q %zmm13, %zmm10, %zmm23
11349 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11350 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
11351 ; AVX512F-NEXT:    vshufi64x2 {{.*#+}} zmm23 {%k1} = zmm2[4,5,4,5],zmm4[4,5,4,5]
11352 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
11353 ; AVX512F-NEXT:    vmovdqa64 %zmm5, %zmm22
11354 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
11355 ; AVX512F-NEXT:    vpermt2q %zmm1, %zmm29, %zmm22
11356 ; AVX512F-NEXT:    vpermi2q %zmm2, %zmm4, %zmm29
11357 ; AVX512F-NEXT:    vpermt2q %zmm4, %zmm6, %zmm2
11358 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11359 ; AVX512F-NEXT:    vshufi64x2 {{.*#+}} zmm11 {%k1} = zmm1[4,5,4,5],zmm5[4,5,4,5]
11360 ; AVX512F-NEXT:    vpermt2q %zmm5, %zmm6, %zmm1
11361 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11362 ; AVX512F-NEXT:    vmovdqa {{.*#+}} ymm3 = <9,0,7,u>
11363 ; AVX512F-NEXT:    vmovdqa64 %zmm16, %zmm4
11364 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11365 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm3, %zmm16
11366 ; AVX512F-NEXT:    vmovdqa {{.*#+}} xmm1 = [6,13]
11367 ; AVX512F-NEXT:    vpermt2q %zmm4, %zmm1, %zmm2
11368 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11369 ; AVX512F-NEXT:    vmovdqa64 %zmm20, %zmm4
11370 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11371 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm3, %zmm20
11372 ; AVX512F-NEXT:    vpermt2q %zmm4, %zmm1, %zmm2
11373 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11374 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm4
11375 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11376 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm3, %zmm9
11377 ; AVX512F-NEXT:    vpermt2q %zmm4, %zmm1, %zmm2
11378 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11379 ; AVX512F-NEXT:    vmovdqa64 %zmm7, %zmm4
11380 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11381 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm3, %zmm7
11382 ; AVX512F-NEXT:    vpermt2q %zmm4, %zmm1, %zmm2
11383 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11384 ; AVX512F-NEXT:    vmovdqa64 %zmm18, %zmm6
11385 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11386 ; AVX512F-NEXT:    vpermt2q %zmm2, %zmm3, %zmm6
11387 ; AVX512F-NEXT:    vpermt2q %zmm18, %zmm1, %zmm2
11388 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11389 ; AVX512F-NEXT:    vmovdqa64 %zmm14, %zmm5
11390 ; AVX512F-NEXT:    vpermt2q %zmm15, %zmm3, %zmm5
11391 ; AVX512F-NEXT:    vpermt2q %zmm14, %zmm1, %zmm15
11392 ; AVX512F-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11393 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm4
11394 ; AVX512F-NEXT:    vpermt2q %zmm8, %zmm3, %zmm4
11395 ; AVX512F-NEXT:    vpermi2q %zmm10, %zmm13, %zmm3
11396 ; AVX512F-NEXT:    vpermt2q %zmm13, %zmm1, %zmm10
11397 ; AVX512F-NEXT:    vmovdqa64 %zmm10, %zmm14
11398 ; AVX512F-NEXT:    vpermt2q %zmm0, %zmm1, %zmm8
11399 ; AVX512F-NEXT:    vmovdqa64 %zmm8, %zmm13
11400 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11401 ; AVX512F-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload
11402 ; AVX512F-NEXT:    # ymm1 = ymm0[0,1,2,3],mem[4,5,6,7]
11403 ; AVX512F-NEXT:    vmovups (%rsp), %zmm0 # 64-byte Reload
11404 ; AVX512F-NEXT:    vinsertf64x4 $0, %ymm1, %zmm0, %zmm0
11405 ; AVX512F-NEXT:    vmovups %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11406 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11407 ; AVX512F-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload
11408 ; AVX512F-NEXT:    # ymm1 = ymm0[0,1,2,3],mem[4,5,6,7]
11409 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11410 ; AVX512F-NEXT:    vinsertf64x4 $0, %ymm1, %zmm0, %zmm0
11411 ; AVX512F-NEXT:    vmovups %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11412 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11413 ; AVX512F-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload
11414 ; AVX512F-NEXT:    # ymm1 = ymm0[0,1,2,3],mem[4,5,6,7]
11415 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11416 ; AVX512F-NEXT:    vinsertf64x4 $0, %ymm1, %zmm0, %zmm0
11417 ; AVX512F-NEXT:    vmovups %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11418 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11419 ; AVX512F-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload
11420 ; AVX512F-NEXT:    # ymm1 = ymm0[0,1,2,3],mem[4,5,6,7]
11421 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11422 ; AVX512F-NEXT:    vinsertf64x4 $0, %ymm1, %zmm0, %zmm0
11423 ; AVX512F-NEXT:    vmovups %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11424 ; AVX512F-NEXT:    movb $-32, %al
11425 ; AVX512F-NEXT:    kmovw %eax, %k2
11426 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11427 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm24 {%k2}
11428 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11429 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm21 {%k2}
11430 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11431 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm25 {%k2}
11432 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11433 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k2}
11434 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11435 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm17 {%k2}
11436 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11437 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k2}
11438 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11439 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm11 {%k2}
11440 ; AVX512F-NEXT:    vmovdqa64 %zmm26, %zmm23 {%k2}
11441 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11442 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k1}
11443 ; AVX512F-NEXT:    vmovdqa64 %zmm30, %zmm4 {%k2}
11444 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11445 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm16 {%k1}
11446 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11447 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm16 {%k2}
11448 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11449 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm20 {%k1}
11450 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11451 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm20 {%k2}
11452 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11453 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm9 {%k1}
11454 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11455 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm9 {%k2}
11456 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11457 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k1}
11458 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11459 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k2}
11460 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11461 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
11462 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11463 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k2}
11464 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11465 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm5 {%k1}
11466 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11467 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm5 {%k2}
11468 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11469 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k1}
11470 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11471 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k2}
11472 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11473 ; AVX512F-NEXT:    vmovdqa64 %zmm28, %zmm0 {%k2}
11474 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11475 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm30 # 64-byte Reload
11476 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11477 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm30 {%k2}
11478 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm27 # 64-byte Reload
11479 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11480 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm27 {%k2}
11481 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
11482 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11483 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm10 {%k2}
11484 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm18 # 64-byte Reload
11485 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11486 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm18 {%k2}
11487 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
11488 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11489 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k2}
11490 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
11491 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11492 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
11493 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11494 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
11495 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11496 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
11497 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11498 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11499 ; AVX512F-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload
11500 ; AVX512F-NEXT:    # ymm1 = ymm0[0,1,2,3],mem[4,5,6,7]
11501 ; AVX512F-NEXT:    vmovdqa 2752(%rdi), %ymm15
11502 ; 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]
11503 ; AVX512F-NEXT:    vextracti128 $1, %ymm15, %xmm15
11504 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm15, %zmm22, %zmm28
11505 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11506 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm28 {%k2}
11507 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11508 ; AVX512F-NEXT:    vinsertf64x4 $0, %ymm1, %zmm0, %zmm0
11509 ; AVX512F-NEXT:    vmovups %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11510 ; AVX512F-NEXT:    vmovdqa 512(%rdi), %ymm15
11511 ; 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]
11512 ; AVX512F-NEXT:    vextracti128 $1, %ymm15, %xmm15
11513 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11514 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm15, %zmm0, %zmm2
11515 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11516 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k2}
11517 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11518 ; AVX512F-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm15 # 32-byte Folded Reload
11519 ; AVX512F-NEXT:    # ymm15 = ymm0[0,1,2,3],mem[4,5,6,7]
11520 ; AVX512F-NEXT:    vmovdqa 64(%rdi), %ymm1
11521 ; 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]
11522 ; AVX512F-NEXT:    vextracti128 $1, %ymm1, %xmm1
11523 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11524 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm1, %zmm0, %zmm22
11525 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11526 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm22 {%k2}
11527 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11528 ; AVX512F-NEXT:    vinsertf64x4 $0, %ymm15, %zmm0, %zmm0
11529 ; AVX512F-NEXT:    vmovups %zmm0, (%rsp) # 64-byte Spill
11530 ; AVX512F-NEXT:    vmovdqa 1408(%rdi), %ymm15
11531 ; 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]
11532 ; AVX512F-NEXT:    vextracti128 $1, %ymm15, %xmm15
11533 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11534 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm15, %zmm0, %zmm26
11535 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11536 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k2}
11537 ; AVX512F-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm1 # 32-byte Folded Reload
11538 ; AVX512F-NEXT:    # ymm1 = ymm14[0,1,2,3],mem[4,5,6,7]
11539 ; AVX512F-NEXT:    vmovdqa 960(%rdi), %ymm14
11540 ; 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]
11541 ; AVX512F-NEXT:    vextracti128 $1, %ymm14, %xmm14
11542 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11543 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm14, %zmm0, %zmm14
11544 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11545 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm14 {%k2}
11546 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11547 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm1, %zmm0, %zmm0
11548 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11549 ; AVX512F-NEXT:    vmovdqa 2304(%rdi), %ymm1
11550 ; 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]
11551 ; AVX512F-NEXT:    vextracti128 $1, %ymm1, %xmm1
11552 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11553 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm1, %zmm0, %zmm1
11554 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11555 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
11556 ; AVX512F-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm15 # 32-byte Folded Reload
11557 ; AVX512F-NEXT:    # ymm15 = ymm13[0,1,2,3],mem[4,5,6,7]
11558 ; AVX512F-NEXT:    vmovdqa 1856(%rdi), %ymm13
11559 ; 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]
11560 ; AVX512F-NEXT:    vextracti128 $1, %ymm13, %xmm13
11561 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11562 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm13, %zmm0, %zmm13
11563 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11564 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm13 {%k2}
11565 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11566 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm15, %zmm0, %zmm0
11567 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11568 ; AVX512F-NEXT:    vmovdqa 3200(%rdi), %ymm15
11569 ; 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]
11570 ; AVX512F-NEXT:    vextracti128 $1, %ymm15, %xmm15
11571 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm15, %zmm29, %zmm15
11572 ; AVX512F-NEXT:    vmovdqa64 %zmm12, %zmm15 {%k2}
11573 ; AVX512F-NEXT:    vmovdqa64 %zmm23, 448(%rsi)
11574 ; AVX512F-NEXT:    vmovdqa64 %zmm11, 384(%rsi)
11575 ; AVX512F-NEXT:    vmovdqa64 %zmm19, 320(%rsi)
11576 ; AVX512F-NEXT:    vmovdqa64 %zmm17, 256(%rsi)
11577 ; AVX512F-NEXT:    vmovdqa64 %zmm31, 192(%rsi)
11578 ; AVX512F-NEXT:    vmovdqa64 %zmm25, 128(%rsi)
11579 ; AVX512F-NEXT:    vmovdqa64 %zmm21, 64(%rsi)
11580 ; AVX512F-NEXT:    vmovdqa64 %zmm24, (%rsi)
11581 ; AVX512F-NEXT:    vmovdqa64 %zmm3, 448(%rdx)
11582 ; AVX512F-NEXT:    vmovdqa64 %zmm5, 256(%rdx)
11583 ; AVX512F-NEXT:    vmovdqa64 %zmm6, 320(%rdx)
11584 ; AVX512F-NEXT:    vmovdqa64 %zmm7, 128(%rdx)
11585 ; AVX512F-NEXT:    vmovdqa64 %zmm9, 192(%rdx)
11586 ; AVX512F-NEXT:    vmovdqa64 %zmm20, (%rdx)
11587 ; AVX512F-NEXT:    vmovdqa64 %zmm16, 64(%rdx)
11588 ; AVX512F-NEXT:    vmovdqa64 %zmm4, 384(%rdx)
11589 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11590 ; AVX512F-NEXT:    vmovaps %zmm0, 448(%rcx)
11591 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11592 ; AVX512F-NEXT:    vmovaps %zmm0, 256(%rcx)
11593 ; AVX512F-NEXT:    vmovdqa64 %zmm8, 320(%rcx)
11594 ; AVX512F-NEXT:    vmovdqa64 %zmm18, 128(%rcx)
11595 ; AVX512F-NEXT:    vmovdqa64 %zmm10, 192(%rcx)
11596 ; AVX512F-NEXT:    vmovdqa64 %zmm27, (%rcx)
11597 ; AVX512F-NEXT:    vmovdqa64 %zmm30, 64(%rcx)
11598 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11599 ; AVX512F-NEXT:    vmovaps %zmm0, 384(%rcx)
11600 ; AVX512F-NEXT:    vmovdqa64 %zmm15, 448(%r8)
11601 ; AVX512F-NEXT:    vmovdqa64 %zmm13, 256(%r8)
11602 ; AVX512F-NEXT:    vmovdqa64 %zmm1, 320(%r8)
11603 ; AVX512F-NEXT:    vmovdqa64 %zmm14, 128(%r8)
11604 ; AVX512F-NEXT:    vmovdqa64 %zmm26, 192(%r8)
11605 ; AVX512F-NEXT:    vmovdqa64 %zmm22, (%r8)
11606 ; AVX512F-NEXT:    vmovdqa64 %zmm2, 64(%r8)
11607 ; AVX512F-NEXT:    vmovdqa64 %zmm28, 384(%r8)
11608 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11609 ; AVX512F-NEXT:    vmovaps %zmm0, 448(%r9)
11610 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11611 ; AVX512F-NEXT:    vmovaps %zmm0, 256(%r9)
11612 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11613 ; AVX512F-NEXT:    vmovaps %zmm0, 320(%r9)
11614 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11615 ; AVX512F-NEXT:    vmovaps %zmm0, 128(%r9)
11616 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11617 ; AVX512F-NEXT:    vmovaps %zmm0, 192(%r9)
11618 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11619 ; AVX512F-NEXT:    vmovaps %zmm0, (%r9)
11620 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11621 ; AVX512F-NEXT:    vmovaps %zmm0, 64(%r9)
11622 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11623 ; AVX512F-NEXT:    vmovaps %zmm0, 384(%r9)
11624 ; AVX512F-NEXT:    movq {{[0-9]+}}(%rsp), %rax
11625 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11626 ; AVX512F-NEXT:    vmovaps %zmm0, 448(%rax)
11627 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11628 ; AVX512F-NEXT:    vmovaps %zmm0, 256(%rax)
11629 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11630 ; AVX512F-NEXT:    vmovaps %zmm0, 320(%rax)
11631 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11632 ; AVX512F-NEXT:    vmovaps %zmm0, 128(%rax)
11633 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11634 ; AVX512F-NEXT:    vmovaps %zmm0, 192(%rax)
11635 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11636 ; AVX512F-NEXT:    vmovaps %zmm0, (%rax)
11637 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11638 ; AVX512F-NEXT:    vmovaps %zmm0, 64(%rax)
11639 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11640 ; AVX512F-NEXT:    vmovaps %zmm0, 384(%rax)
11641 ; AVX512F-NEXT:    movq {{[0-9]+}}(%rsp), %rax
11642 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11643 ; AVX512F-NEXT:    vmovaps %zmm0, 384(%rax)
11644 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11645 ; AVX512F-NEXT:    vmovaps %zmm0, 448(%rax)
11646 ; AVX512F-NEXT:    vmovups (%rsp), %zmm0 # 64-byte Reload
11647 ; AVX512F-NEXT:    vmovaps %zmm0, 256(%rax)
11648 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11649 ; AVX512F-NEXT:    vmovaps %zmm0, 320(%rax)
11650 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11651 ; AVX512F-NEXT:    vmovaps %zmm0, 128(%rax)
11652 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11653 ; AVX512F-NEXT:    vmovaps %zmm0, 192(%rax)
11654 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11655 ; AVX512F-NEXT:    vmovaps %zmm0, (%rax)
11656 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11657 ; AVX512F-NEXT:    vmovaps %zmm0, 64(%rax)
11658 ; AVX512F-NEXT:    addq $6728, %rsp # imm = 0x1A48
11659 ; AVX512F-NEXT:    vzeroupper
11660 ; AVX512F-NEXT:    retq
11662 ; AVX512BW-LABEL: load_i64_stride7_vf64:
11663 ; AVX512BW:       # %bb.0:
11664 ; AVX512BW-NEXT:    subq $6664, %rsp # imm = 0x1A08
11665 ; AVX512BW-NEXT:    vmovdqa64 3328(%rdi), %zmm17
11666 ; AVX512BW-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11667 ; AVX512BW-NEXT:    vmovdqa64 3264(%rdi), %zmm4
11668 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11669 ; AVX512BW-NEXT:    vmovdqa64 3008(%rdi), %zmm19
11670 ; AVX512BW-NEXT:    vmovdqa64 2944(%rdi), %zmm18
11671 ; AVX512BW-NEXT:    vmovdqu64 %zmm18, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11672 ; AVX512BW-NEXT:    vmovdqa64 2880(%rdi), %zmm2
11673 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11674 ; AVX512BW-NEXT:    vmovdqa64 2816(%rdi), %zmm1
11675 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11676 ; AVX512BW-NEXT:    vmovdqa64 2752(%rdi), %zmm20
11677 ; AVX512BW-NEXT:    vmovdqa64 2688(%rdi), %zmm15
11678 ; AVX512BW-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11679 ; AVX512BW-NEXT:    vmovdqa64 2432(%rdi), %zmm5
11680 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11681 ; AVX512BW-NEXT:    vmovdqa64 2368(%rdi), %zmm6
11682 ; AVX512BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11683 ; AVX512BW-NEXT:    vmovdqa64 1984(%rdi), %zmm8
11684 ; AVX512BW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11685 ; AVX512BW-NEXT:    vmovdqa64 1920(%rdi), %zmm9
11686 ; AVX512BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11687 ; AVX512BW-NEXT:    vmovdqa64 1536(%rdi), %zmm10
11688 ; AVX512BW-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11689 ; AVX512BW-NEXT:    vmovdqa64 1472(%rdi), %zmm11
11690 ; AVX512BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11691 ; AVX512BW-NEXT:    vmovdqa64 1088(%rdi), %zmm12
11692 ; AVX512BW-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11693 ; AVX512BW-NEXT:    vmovdqa64 1024(%rdi), %zmm13
11694 ; AVX512BW-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11695 ; AVX512BW-NEXT:    vmovdqa64 640(%rdi), %zmm16
11696 ; AVX512BW-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11697 ; AVX512BW-NEXT:    vmovdqa64 576(%rdi), %zmm7
11698 ; AVX512BW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11699 ; AVX512BW-NEXT:    vmovdqa64 192(%rdi), %zmm14
11700 ; AVX512BW-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11701 ; AVX512BW-NEXT:    vmovdqa64 128(%rdi), %zmm3
11702 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11703 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [14,0,0,7,14,0,0,7]
11704 ; AVX512BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
11705 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm0, %zmm1
11706 ; AVX512BW-NEXT:    vmovdqa 2704(%rdi), %xmm2
11707 ; AVX512BW-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0,1],mem[2,3]
11708 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm2, %zmm1, %zmm1
11709 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11710 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm1
11711 ; AVX512BW-NEXT:    vpermt2q %zmm16, %zmm0, %zmm1
11712 ; AVX512BW-NEXT:    vmovdqa 464(%rdi), %xmm2
11713 ; AVX512BW-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0,1],mem[2,3]
11714 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm2, %zmm1, %zmm1
11715 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11716 ; AVX512BW-NEXT:    vpermt2q %zmm14, %zmm0, %zmm3
11717 ; AVX512BW-NEXT:    vmovdqa 16(%rdi), %xmm2
11718 ; AVX512BW-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0,1],mem[2,3]
11719 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm2, %zmm3, %zmm1
11720 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11721 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm1
11722 ; AVX512BW-NEXT:    vpermt2q %zmm10, %zmm0, %zmm1
11723 ; AVX512BW-NEXT:    vmovdqa 1360(%rdi), %xmm2
11724 ; AVX512BW-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0,1],mem[2,3]
11725 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm2, %zmm1, %zmm1
11726 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11727 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm1
11728 ; AVX512BW-NEXT:    vpermt2q %zmm12, %zmm0, %zmm1
11729 ; AVX512BW-NEXT:    vmovdqa 912(%rdi), %xmm2
11730 ; AVX512BW-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0,1],mem[2,3]
11731 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm2, %zmm1, %zmm1
11732 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11733 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm1
11734 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm0, %zmm1
11735 ; AVX512BW-NEXT:    vmovdqa 2256(%rdi), %xmm2
11736 ; AVX512BW-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0,1],mem[2,3]
11737 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm2, %zmm1, %zmm1
11738 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11739 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm1
11740 ; AVX512BW-NEXT:    vpermt2q %zmm8, %zmm0, %zmm1
11741 ; AVX512BW-NEXT:    vmovdqa 1808(%rdi), %xmm2
11742 ; AVX512BW-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0,1],mem[2,3]
11743 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm2, %zmm1, %zmm1
11744 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11745 ; AVX512BW-NEXT:    vpermi2q %zmm17, %zmm4, %zmm0
11746 ; AVX512BW-NEXT:    vmovdqa 3152(%rdi), %xmm1
11747 ; AVX512BW-NEXT:    vpblendd {{.*#+}} xmm1 = xmm1[0,1],mem[2,3]
11748 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm1, %zmm0, %zmm0
11749 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11750 ; AVX512BW-NEXT:    vinserti128 $1, 2880(%rdi), %ymm0, %ymm1
11751 ; AVX512BW-NEXT:    vmovdqa 2816(%rdi), %ymm0
11752 ; AVX512BW-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11753 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm0[0,1,2,3,4,5],ymm1[6,7]
11754 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} xmm5 = [4,11]
11755 ; AVX512BW-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11756 ; AVX512BW-NEXT:    vpermt2q %zmm20, %zmm5, %zmm15
11757 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm15[0,1,2,3],ymm1[4,5,6,7]
11758 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,7,14,0,0,7,14,0]
11759 ; AVX512BW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
11760 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, %zmm2
11761 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm15
11762 ; AVX512BW-NEXT:    vpermt2q %zmm19, %zmm4, %zmm2
11763 ; AVX512BW-NEXT:    vmovdqa64 3072(%rdi), %zmm0
11764 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11765 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [4,5,6,13,4,5,6,13]
11766 ; AVX512BW-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
11767 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm8, %zmm2
11768 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm2, %zmm1
11769 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11770 ; AVX512BW-NEXT:    vinserti128 $1, 640(%rdi), %ymm0, %ymm2
11771 ; AVX512BW-NEXT:    vmovdqa 576(%rdi), %ymm1
11772 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm1[0,1,2,3,4,5],ymm2[6,7]
11773 ; AVX512BW-NEXT:    vmovdqa64 512(%rdi), %zmm0
11774 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11775 ; AVX512BW-NEXT:    vmovdqa64 448(%rdi), %zmm3
11776 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11777 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm5, %zmm3
11778 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
11779 ; AVX512BW-NEXT:    vmovdqa64 768(%rdi), %zmm25
11780 ; AVX512BW-NEXT:    vmovdqa64 704(%rdi), %zmm3
11781 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11782 ; AVX512BW-NEXT:    vpermt2q %zmm25, %zmm4, %zmm3
11783 ; AVX512BW-NEXT:    vmovdqa64 832(%rdi), %zmm7
11784 ; AVX512BW-NEXT:    vpermt2q %zmm7, %zmm8, %zmm3
11785 ; AVX512BW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11786 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm2, %zmm3, %zmm2
11787 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11788 ; AVX512BW-NEXT:    vinserti128 $1, 192(%rdi), %ymm0, %ymm2
11789 ; AVX512BW-NEXT:    vmovdqa 128(%rdi), %ymm0
11790 ; AVX512BW-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11791 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm0[0,1,2,3,4,5],ymm2[6,7]
11792 ; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %zmm13
11793 ; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm3
11794 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11795 ; AVX512BW-NEXT:    vpermt2q %zmm13, %zmm5, %zmm3
11796 ; AVX512BW-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11797 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
11798 ; AVX512BW-NEXT:    vmovdqa64 320(%rdi), %zmm14
11799 ; AVX512BW-NEXT:    vmovdqa64 256(%rdi), %zmm3
11800 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, (%rsp) # 64-byte Spill
11801 ; AVX512BW-NEXT:    vpermt2q %zmm14, %zmm4, %zmm3
11802 ; AVX512BW-NEXT:    vmovdqa64 384(%rdi), %zmm30
11803 ; AVX512BW-NEXT:    vpermt2q %zmm30, %zmm8, %zmm3
11804 ; AVX512BW-NEXT:    vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11805 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm2, %zmm3, %zmm2
11806 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11807 ; AVX512BW-NEXT:    vinserti128 $1, 1536(%rdi), %ymm0, %ymm2
11808 ; AVX512BW-NEXT:    vmovdqa 1472(%rdi), %ymm3
11809 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3,4,5],ymm2[6,7]
11810 ; AVX512BW-NEXT:    vmovdqa64 1408(%rdi), %zmm29
11811 ; AVX512BW-NEXT:    vmovdqa64 1344(%rdi), %zmm6
11812 ; AVX512BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11813 ; AVX512BW-NEXT:    vpermt2q %zmm29, %zmm5, %zmm6
11814 ; AVX512BW-NEXT:    vmovdqu64 %zmm29, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11815 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm2[4,5,6,7]
11816 ; AVX512BW-NEXT:    vmovdqa64 1664(%rdi), %zmm2
11817 ; AVX512BW-NEXT:    vmovdqa64 1600(%rdi), %zmm9
11818 ; AVX512BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11819 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm4, %zmm9
11820 ; AVX512BW-NEXT:    vmovdqa64 1728(%rdi), %zmm28
11821 ; AVX512BW-NEXT:    vpermt2q %zmm28, %zmm8, %zmm9
11822 ; AVX512BW-NEXT:    vmovdqu64 %zmm28, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11823 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm6, %zmm9, %zmm6
11824 ; AVX512BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11825 ; AVX512BW-NEXT:    vinserti128 $1, 1088(%rdi), %ymm0, %ymm9
11826 ; AVX512BW-NEXT:    vmovdqa 1024(%rdi), %ymm0
11827 ; AVX512BW-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11828 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm9 = ymm0[0,1,2,3,4,5],ymm9[6,7]
11829 ; AVX512BW-NEXT:    vmovdqa64 960(%rdi), %zmm27
11830 ; AVX512BW-NEXT:    vmovdqa64 896(%rdi), %zmm10
11831 ; AVX512BW-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11832 ; AVX512BW-NEXT:    vpermt2q %zmm27, %zmm5, %zmm10
11833 ; AVX512BW-NEXT:    vmovdqu64 %zmm27, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11834 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm9 = ymm10[0,1,2,3],ymm9[4,5,6,7]
11835 ; AVX512BW-NEXT:    vmovdqa64 1216(%rdi), %zmm22
11836 ; AVX512BW-NEXT:    vmovdqa64 1152(%rdi), %zmm10
11837 ; AVX512BW-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11838 ; AVX512BW-NEXT:    vpermt2q %zmm22, %zmm4, %zmm10
11839 ; AVX512BW-NEXT:    vmovdqa64 1280(%rdi), %zmm24
11840 ; AVX512BW-NEXT:    vpermt2q %zmm24, %zmm8, %zmm10
11841 ; AVX512BW-NEXT:    vmovdqu64 %zmm24, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11842 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm9, %zmm10, %zmm9
11843 ; AVX512BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11844 ; AVX512BW-NEXT:    vinserti128 $1, 2432(%rdi), %ymm0, %ymm9
11845 ; AVX512BW-NEXT:    vmovdqa 2368(%rdi), %ymm0
11846 ; AVX512BW-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11847 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm9 = ymm0[0,1,2,3,4,5],ymm9[6,7]
11848 ; AVX512BW-NEXT:    vmovdqa64 2304(%rdi), %zmm21
11849 ; AVX512BW-NEXT:    vmovdqa64 2240(%rdi), %zmm10
11850 ; AVX512BW-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11851 ; AVX512BW-NEXT:    vpermt2q %zmm21, %zmm5, %zmm10
11852 ; AVX512BW-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11853 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm9 = ymm10[0,1,2,3],ymm9[4,5,6,7]
11854 ; AVX512BW-NEXT:    vmovdqa64 2560(%rdi), %zmm31
11855 ; AVX512BW-NEXT:    vmovdqa64 2496(%rdi), %zmm10
11856 ; AVX512BW-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11857 ; AVX512BW-NEXT:    vpermt2q %zmm31, %zmm4, %zmm10
11858 ; AVX512BW-NEXT:    vmovdqa64 2624(%rdi), %zmm19
11859 ; AVX512BW-NEXT:    vpermt2q %zmm19, %zmm8, %zmm10
11860 ; AVX512BW-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11861 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm9, %zmm10, %zmm9
11862 ; AVX512BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11863 ; AVX512BW-NEXT:    vinserti128 $1, 1984(%rdi), %ymm0, %ymm9
11864 ; AVX512BW-NEXT:    vmovdqa 1920(%rdi), %ymm0
11865 ; AVX512BW-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11866 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm9 = ymm0[0,1,2,3,4,5],ymm9[6,7]
11867 ; AVX512BW-NEXT:    vmovdqa64 1856(%rdi), %zmm18
11868 ; AVX512BW-NEXT:    vmovdqa64 1792(%rdi), %zmm11
11869 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm12
11870 ; AVX512BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11871 ; AVX512BW-NEXT:    vpermt2q %zmm18, %zmm5, %zmm12
11872 ; AVX512BW-NEXT:    vmovdqu64 %zmm18, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11873 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm9 = ymm12[0,1,2,3],ymm9[4,5,6,7]
11874 ; AVX512BW-NEXT:    vmovdqa64 2112(%rdi), %zmm17
11875 ; AVX512BW-NEXT:    vmovdqa64 2048(%rdi), %zmm12
11876 ; AVX512BW-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11877 ; AVX512BW-NEXT:    vpermt2q %zmm17, %zmm4, %zmm12
11878 ; AVX512BW-NEXT:    vmovdqa64 2176(%rdi), %zmm0
11879 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm8, %zmm12
11880 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm23
11881 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11882 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm9, %zmm12, %zmm9
11883 ; AVX512BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11884 ; AVX512BW-NEXT:    vinserti128 $1, 3328(%rdi), %ymm0, %ymm9
11885 ; AVX512BW-NEXT:    vmovdqa 3264(%rdi), %ymm12
11886 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm9 = ymm12[0,1,2,3,4,5],ymm9[6,7]
11887 ; AVX512BW-NEXT:    vmovdqa64 3200(%rdi), %zmm26
11888 ; AVX512BW-NEXT:    vmovdqa64 3136(%rdi), %zmm10
11889 ; AVX512BW-NEXT:    vpermi2q %zmm26, %zmm10, %zmm5
11890 ; AVX512BW-NEXT:    vmovdqu64 %zmm26, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11891 ; AVX512BW-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11892 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm9[4,5,6,7]
11893 ; AVX512BW-NEXT:    vmovdqa64 3456(%rdi), %zmm6
11894 ; AVX512BW-NEXT:    vmovdqa64 3392(%rdi), %zmm0
11895 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11896 ; AVX512BW-NEXT:    vpermi2q %zmm6, %zmm0, %zmm4
11897 ; AVX512BW-NEXT:    vmovdqa64 3520(%rdi), %zmm0
11898 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm8, %zmm4
11899 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm16
11900 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11901 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm5, %zmm4, %zmm4
11902 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11903 ; AVX512BW-NEXT:    vmovdqa 2880(%rdi), %ymm4
11904 ; AVX512BW-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload
11905 ; AVX512BW-NEXT:    # 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]
11906 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} xmm0 = [5,12]
11907 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
11908 ; AVX512BW-NEXT:    vpermt2q %zmm20, %zmm0, %zmm5
11909 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm5[0,1,2,3],ymm4[4,5,6,7]
11910 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [9,0,7,0,9,0,7,0]
11911 ; AVX512BW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
11912 ; AVX512BW-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11913 ; AVX512BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm4, %zmm15 # 64-byte Folded Reload
11914 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [4,5,6,14,4,5,6,14]
11915 ; AVX512BW-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
11916 ; AVX512BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm5, %zmm15 # 64-byte Folded Reload
11917 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm15, %zmm8
11918 ; AVX512BW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11919 ; AVX512BW-NEXT:    vmovdqa 640(%rdi), %ymm8
11920 ; AVX512BW-NEXT:    vpalignr {{.*#+}} ymm1 = ymm1[8,9,10,11,12,13,14,15],ymm8[0,1,2,3,4,5,6,7],ymm1[24,25,26,27,28,29,30,31],ymm8[16,17,18,19,20,21,22,23]
11921 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
11922 ; AVX512BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm8 # 64-byte Folded Reload
11923 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm8[0,1,2,3],ymm1[4,5,6,7]
11924 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, %zmm8
11925 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
11926 ; AVX512BW-NEXT:    vpermt2q %zmm15, %zmm4, %zmm8
11927 ; AVX512BW-NEXT:    vpermt2q %zmm7, %zmm5, %zmm8
11928 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm8, %zmm1
11929 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11930 ; AVX512BW-NEXT:    vmovdqa 192(%rdi), %ymm1
11931 ; AVX512BW-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
11932 ; AVX512BW-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]
11933 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
11934 ; AVX512BW-NEXT:    vpermt2q %zmm13, %zmm0, %zmm7
11935 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm7[0,1,2,3],ymm1[4,5,6,7]
11936 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, %zmm7
11937 ; AVX512BW-NEXT:    vmovdqu64 (%rsp), %zmm9 # 64-byte Reload
11938 ; AVX512BW-NEXT:    vpermt2q %zmm9, %zmm4, %zmm7
11939 ; AVX512BW-NEXT:    vpermt2q %zmm30, %zmm5, %zmm7
11940 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm7, %zmm1
11941 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11942 ; AVX512BW-NEXT:    vmovdqa 1536(%rdi), %ymm1
11943 ; AVX512BW-NEXT:    vpalignr {{.*#+}} ymm1 = ymm3[8,9,10,11,12,13,14,15],ymm1[0,1,2,3,4,5,6,7],ymm3[24,25,26,27,28,29,30,31],ymm1[16,17,18,19,20,21,22,23]
11944 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
11945 ; AVX512BW-NEXT:    vpermt2q %zmm29, %zmm0, %zmm3
11946 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm1[4,5,6,7]
11947 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm3
11948 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
11949 ; AVX512BW-NEXT:    vpermt2q %zmm8, %zmm4, %zmm3
11950 ; AVX512BW-NEXT:    vpermt2q %zmm28, %zmm5, %zmm3
11951 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm3, %zmm1
11952 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11953 ; AVX512BW-NEXT:    vmovdqa 1088(%rdi), %ymm1
11954 ; AVX512BW-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
11955 ; AVX512BW-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]
11956 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
11957 ; AVX512BW-NEXT:    vpermt2q %zmm27, %zmm0, %zmm3
11958 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm1[4,5,6,7]
11959 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm3
11960 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm27 # 64-byte Reload
11961 ; AVX512BW-NEXT:    vpermt2q %zmm27, %zmm4, %zmm3
11962 ; AVX512BW-NEXT:    vpermt2q %zmm24, %zmm5, %zmm3
11963 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm3, %zmm1
11964 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11965 ; AVX512BW-NEXT:    vmovdqa 2432(%rdi), %ymm1
11966 ; AVX512BW-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
11967 ; AVX512BW-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]
11968 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
11969 ; AVX512BW-NEXT:    vpermt2q %zmm21, %zmm0, %zmm3
11970 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm1[4,5,6,7]
11971 ; AVX512BW-NEXT:    vmovdqa64 %zmm31, %zmm3
11972 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
11973 ; AVX512BW-NEXT:    vpermt2q %zmm28, %zmm4, %zmm3
11974 ; AVX512BW-NEXT:    vpermt2q %zmm19, %zmm5, %zmm3
11975 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm3, %zmm1
11976 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11977 ; AVX512BW-NEXT:    vmovdqa 1984(%rdi), %ymm1
11978 ; AVX512BW-NEXT:    vpalignr $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
11979 ; AVX512BW-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]
11980 ; AVX512BW-NEXT:    vpermt2q %zmm18, %zmm0, %zmm11
11981 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm11[0,1,2,3],ymm1[4,5,6,7]
11982 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm3
11983 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm30 # 64-byte Reload
11984 ; AVX512BW-NEXT:    vpermt2q %zmm30, %zmm4, %zmm3
11985 ; AVX512BW-NEXT:    vpermt2q %zmm23, %zmm5, %zmm3
11986 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm3, %zmm1
11987 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11988 ; AVX512BW-NEXT:    vmovdqa 3328(%rdi), %ymm1
11989 ; AVX512BW-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]
11990 ; AVX512BW-NEXT:    vpermi2q %zmm26, %zmm10, %zmm0
11991 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
11992 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
11993 ; AVX512BW-NEXT:    vpermi2q %zmm7, %zmm6, %zmm4
11994 ; AVX512BW-NEXT:    vpermt2q %zmm16, %zmm5, %zmm4
11995 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
11996 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11997 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm19 = [10,3,10,3,10,3,10,3]
11998 ; AVX512BW-NEXT:    # zmm19 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
11999 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm1
12000 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm21
12001 ; AVX512BW-NEXT:    vpermt2q %zmm25, %zmm19, %zmm21
12002 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm20 = [11,4,11,4,11,4,11,4]
12003 ; AVX512BW-NEXT:    # zmm20 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
12004 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm0
12005 ; AVX512BW-NEXT:    vpermt2q %zmm25, %zmm20, %zmm0
12006 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12007 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm18 = [12,5,12,5,12,5,12,5]
12008 ; AVX512BW-NEXT:    # zmm18 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
12009 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm0
12010 ; AVX512BW-NEXT:    vpermt2q %zmm25, %zmm18, %zmm0
12011 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12012 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm11 = [13,6,13,6,13,6,13,6]
12013 ; AVX512BW-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
12014 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm0
12015 ; AVX512BW-NEXT:    vpermt2q %zmm25, %zmm11, %zmm0
12016 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12017 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [2,9,2,9,2,9,2,9]
12018 ; AVX512BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
12019 ; AVX512BW-NEXT:    vpermt2q %zmm25, %zmm0, %zmm1
12020 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12021 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm29
12022 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm12
12023 ; AVX512BW-NEXT:    vpermt2q %zmm14, %zmm19, %zmm12
12024 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm1
12025 ; AVX512BW-NEXT:    vpermt2q %zmm14, %zmm20, %zmm1
12026 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12027 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm1
12028 ; AVX512BW-NEXT:    vpermt2q %zmm14, %zmm18, %zmm1
12029 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12030 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm1
12031 ; AVX512BW-NEXT:    vpermt2q %zmm14, %zmm11, %zmm1
12032 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12033 ; AVX512BW-NEXT:    vpermt2q %zmm14, %zmm0, %zmm29
12034 ; AVX512BW-NEXT:    vmovdqu64 %zmm29, (%rsp) # 64-byte Spill
12035 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm24
12036 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm1
12037 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm19, %zmm1
12038 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12039 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm1
12040 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm20, %zmm1
12041 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12042 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm1
12043 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm18, %zmm1
12044 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12045 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm1
12046 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm11, %zmm1
12047 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12048 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm0, %zmm24
12049 ; AVX512BW-NEXT:    vmovdqu64 %zmm24, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12050 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, %zmm9
12051 ; AVX512BW-NEXT:    vpermt2q %zmm22, %zmm19, %zmm9
12052 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, %zmm1
12053 ; AVX512BW-NEXT:    vpermt2q %zmm22, %zmm20, %zmm1
12054 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12055 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, %zmm1
12056 ; AVX512BW-NEXT:    vpermt2q %zmm22, %zmm18, %zmm1
12057 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12058 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, %zmm1
12059 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, %zmm2
12060 ; AVX512BW-NEXT:    vpermt2q %zmm22, %zmm11, %zmm1
12061 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm27
12062 ; AVX512BW-NEXT:    vpermt2q %zmm22, %zmm0, %zmm2
12063 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12064 ; AVX512BW-NEXT:    vmovdqa64 %zmm28, %zmm10
12065 ; AVX512BW-NEXT:    vpermt2q %zmm31, %zmm19, %zmm10
12066 ; AVX512BW-NEXT:    vmovdqa64 %zmm28, %zmm14
12067 ; AVX512BW-NEXT:    vpermt2q %zmm31, %zmm20, %zmm14
12068 ; AVX512BW-NEXT:    vmovdqa64 %zmm28, %zmm15
12069 ; AVX512BW-NEXT:    vpermt2q %zmm31, %zmm18, %zmm15
12070 ; AVX512BW-NEXT:    vmovdqa64 %zmm28, %zmm16
12071 ; AVX512BW-NEXT:    vpermt2q %zmm31, %zmm11, %zmm16
12072 ; AVX512BW-NEXT:    vpermt2q %zmm31, %zmm0, %zmm28
12073 ; AVX512BW-NEXT:    vmovdqu64 %zmm28, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12074 ; AVX512BW-NEXT:    vmovdqa64 %zmm30, %zmm1
12075 ; AVX512BW-NEXT:    vpermt2q %zmm17, %zmm19, %zmm1
12076 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm26
12077 ; AVX512BW-NEXT:    vmovdqa64 %zmm30, %zmm5
12078 ; AVX512BW-NEXT:    vpermt2q %zmm17, %zmm20, %zmm5
12079 ; AVX512BW-NEXT:    vmovdqa64 %zmm30, %zmm8
12080 ; AVX512BW-NEXT:    vpermt2q %zmm17, %zmm18, %zmm8
12081 ; AVX512BW-NEXT:    vmovdqa64 %zmm30, %zmm13
12082 ; AVX512BW-NEXT:    vpermt2q %zmm17, %zmm11, %zmm13
12083 ; AVX512BW-NEXT:    vpermt2q %zmm17, %zmm0, %zmm30
12084 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
12085 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm4
12086 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12087 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm19, %zmm4
12088 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm24
12089 ; AVX512BW-NEXT:    vpermi2q %zmm6, %zmm7, %zmm19
12090 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm3
12091 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm20, %zmm3
12092 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm17
12093 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12094 ; AVX512BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm11, %zmm1 # 64-byte Folded Reload
12095 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12096 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12097 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
12098 ; AVX512BW-NEXT:    vpermt2q %zmm31, %zmm11, %zmm1
12099 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12100 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12101 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm25 # 64-byte Reload
12102 ; AVX512BW-NEXT:    vpermt2q %zmm25, %zmm11, %zmm1
12103 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12104 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12105 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm23 # 64-byte Reload
12106 ; AVX512BW-NEXT:    vpermt2q %zmm23, %zmm11, %zmm1
12107 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12108 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12109 ; AVX512BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm11, %zmm1 # 64-byte Folded Reload
12110 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12111 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12112 ; AVX512BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm11, %zmm1 # 64-byte Folded Reload
12113 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12114 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12115 ; AVX512BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm11, %zmm1 # 64-byte Folded Reload
12116 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12117 ; AVX512BW-NEXT:    vpermi2q %zmm6, %zmm7, %zmm20
12118 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12119 ; AVX512BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm11, %zmm1 # 64-byte Folded Reload
12120 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12121 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm29
12122 ; AVX512BW-NEXT:    vpermt2q %zmm17, %zmm18, %zmm29
12123 ; AVX512BW-NEXT:    vpermi2q %zmm6, %zmm7, %zmm18
12124 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm1
12125 ; AVX512BW-NEXT:    vpermt2q %zmm17, %zmm11, %zmm1
12126 ; AVX512BW-NEXT:    vpermi2q %zmm6, %zmm7, %zmm11
12127 ; AVX512BW-NEXT:    vpermt2q %zmm6, %zmm0, %zmm24
12128 ; AVX512BW-NEXT:    vpermt2q %zmm17, %zmm0, %zmm22
12129 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [0,5,6,9,0,5,6,9]
12130 ; AVX512BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
12131 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
12132 ; AVX512BW-NEXT:    vpermt2q %zmm7, %zmm0, %zmm12
12133 ; AVX512BW-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12134 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
12135 ; AVX512BW-NEXT:    vpermt2q %zmm6, %zmm0, %zmm21
12136 ; AVX512BW-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12137 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
12138 ; AVX512BW-NEXT:    vpermt2q %zmm12, %zmm0, %zmm9
12139 ; AVX512BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12140 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
12141 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
12142 ; AVX512BW-NEXT:    vpermt2q %zmm9, %zmm0, %zmm17
12143 ; AVX512BW-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12144 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
12145 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm0, %zmm26
12146 ; AVX512BW-NEXT:    vmovdqu64 %zmm26, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12147 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm26 # 64-byte Reload
12148 ; AVX512BW-NEXT:    vpermt2q %zmm26, %zmm0, %zmm10
12149 ; AVX512BW-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12150 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
12151 ; AVX512BW-NEXT:    vpermt2q %zmm28, %zmm0, %zmm4
12152 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12153 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
12154 ; AVX512BW-NEXT:    vpermt2q %zmm4, %zmm0, %zmm19
12155 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [0,5,6,10,0,5,6,10]
12156 ; AVX512BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
12157 ; AVX512BW-NEXT:    vpermt2q %zmm28, %zmm0, %zmm3
12158 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12159 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
12160 ; AVX512BW-NEXT:    vpermt2q %zmm6, %zmm0, %zmm17
12161 ; AVX512BW-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12162 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
12163 ; AVX512BW-NEXT:    vpermt2q %zmm7, %zmm0, %zmm17
12164 ; AVX512BW-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12165 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
12166 ; AVX512BW-NEXT:    vpermt2q %zmm9, %zmm0, %zmm17
12167 ; AVX512BW-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12168 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
12169 ; AVX512BW-NEXT:    vpermt2q %zmm12, %zmm0, %zmm17
12170 ; AVX512BW-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12171 ; AVX512BW-NEXT:    vpermt2q %zmm26, %zmm0, %zmm14
12172 ; AVX512BW-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12173 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm0, %zmm5
12174 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12175 ; AVX512BW-NEXT:    vpermt2q %zmm4, %zmm0, %zmm20
12176 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [0,5,6,11,0,5,6,11]
12177 ; AVX512BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
12178 ; AVX512BW-NEXT:    vpermt2q %zmm28, %zmm0, %zmm29
12179 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
12180 ; AVX512BW-NEXT:    vpermt2q %zmm6, %zmm0, %zmm17
12181 ; AVX512BW-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12182 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
12183 ; AVX512BW-NEXT:    vpermt2q %zmm7, %zmm0, %zmm17
12184 ; AVX512BW-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12185 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
12186 ; AVX512BW-NEXT:    vpermt2q %zmm9, %zmm0, %zmm17
12187 ; AVX512BW-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12188 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
12189 ; AVX512BW-NEXT:    vpermt2q %zmm12, %zmm0, %zmm17
12190 ; AVX512BW-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12191 ; AVX512BW-NEXT:    vpermt2q %zmm26, %zmm0, %zmm15
12192 ; AVX512BW-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12193 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm0, %zmm8
12194 ; AVX512BW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12195 ; AVX512BW-NEXT:    vpermt2q %zmm4, %zmm0, %zmm18
12196 ; AVX512BW-NEXT:    vmovdqu64 %zmm18, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12197 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [0,5,6,12,0,5,6,12]
12198 ; AVX512BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
12199 ; AVX512BW-NEXT:    vpermt2q %zmm28, %zmm0, %zmm1
12200 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12201 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
12202 ; AVX512BW-NEXT:    vpermt2q %zmm6, %zmm0, %zmm17
12203 ; AVX512BW-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12204 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
12205 ; AVX512BW-NEXT:    vpermt2q %zmm7, %zmm0, %zmm17
12206 ; AVX512BW-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12207 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
12208 ; AVX512BW-NEXT:    vpermt2q %zmm9, %zmm0, %zmm17
12209 ; AVX512BW-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12210 ; AVX512BW-NEXT:    vpermt2q %zmm12, %zmm0, %zmm27
12211 ; AVX512BW-NEXT:    vmovdqu64 %zmm27, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12212 ; AVX512BW-NEXT:    vpermt2q %zmm26, %zmm0, %zmm16
12213 ; AVX512BW-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12214 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm1
12215 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm0, %zmm13
12216 ; AVX512BW-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12217 ; AVX512BW-NEXT:    vpermt2q %zmm4, %zmm0, %zmm11
12218 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [4,5,8,15,4,5,8,15]
12219 ; AVX512BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
12220 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
12221 ; AVX512BW-NEXT:    vpermt2q %zmm6, %zmm0, %zmm2
12222 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12223 ; AVX512BW-NEXT:    vmovdqu64 (%rsp), %zmm2 # 64-byte Reload
12224 ; AVX512BW-NEXT:    vpermt2q %zmm7, %zmm0, %zmm2
12225 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, (%rsp) # 64-byte Spill
12226 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
12227 ; AVX512BW-NEXT:    vpermt2q %zmm9, %zmm0, %zmm2
12228 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12229 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
12230 ; AVX512BW-NEXT:    vpermt2q %zmm12, %zmm0, %zmm2
12231 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12232 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
12233 ; AVX512BW-NEXT:    vpermt2q %zmm26, %zmm0, %zmm2
12234 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12235 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm0, %zmm30
12236 ; AVX512BW-NEXT:    vpermt2q %zmm4, %zmm0, %zmm24
12237 ; AVX512BW-NEXT:    vpermt2q %zmm28, %zmm0, %zmm22
12238 ; AVX512BW-NEXT:    movb $24, %al
12239 ; AVX512BW-NEXT:    kmovd %eax, %k1
12240 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} ymm16 = <0,7,14,u>
12241 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12242 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
12243 ; AVX512BW-NEXT:    vpermt2q %zmm12, %zmm16, %zmm1
12244 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12245 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm1 {%k1} = zmm0[4,5,4,5],zmm31[4,5,4,5]
12246 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12247 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm26 = [7,0,9,0,7,0,9,0]
12248 ; AVX512BW-NEXT:    # zmm26 = mem[0,1,2,3,0,1,2,3]
12249 ; AVX512BW-NEXT:    vmovdqa64 %zmm31, %zmm1
12250 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm26, %zmm1
12251 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12252 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1
12253 ; AVX512BW-NEXT:    vbroadcasti128 {{.*#+}} ymm0 = [4,11,4,11]
12254 ; AVX512BW-NEXT:    # ymm0 = mem[0,1,0,1]
12255 ; AVX512BW-NEXT:    vpermt2q %zmm31, %zmm0, %zmm1
12256 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12257 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm18 # 64-byte Reload
12258 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
12259 ; AVX512BW-NEXT:    vpermt2q %zmm7, %zmm16, %zmm18
12260 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12261 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm18 {%k1} = zmm1[4,5,4,5],zmm25[4,5,4,5]
12262 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, %zmm2
12263 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm26, %zmm2
12264 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12265 ; AVX512BW-NEXT:    vpermt2q %zmm25, %zmm0, %zmm1
12266 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12267 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm27 # 64-byte Reload
12268 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
12269 ; AVX512BW-NEXT:    vpermt2q %zmm31, %zmm16, %zmm27
12270 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12271 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm27 {%k1} = zmm1[4,5,4,5],zmm23[4,5,4,5]
12272 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, %zmm2
12273 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm26, %zmm2
12274 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12275 ; AVX512BW-NEXT:    vpermt2q %zmm23, %zmm0, %zmm1
12276 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12277 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm25 # 64-byte Reload
12278 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
12279 ; AVX512BW-NEXT:    vpermt2q %zmm6, %zmm16, %zmm25
12280 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12281 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
12282 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm25 {%k1} = zmm1[4,5,4,5],zmm9[4,5,4,5]
12283 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm2
12284 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm26, %zmm2
12285 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12286 ; AVX512BW-NEXT:    vpermt2q %zmm9, %zmm0, %zmm1
12287 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12288 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm23 # 64-byte Reload
12289 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
12290 ; AVX512BW-NEXT:    vpermt2q %zmm17, %zmm16, %zmm23
12291 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12292 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
12293 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm23 {%k1} = zmm1[4,5,4,5],zmm3[4,5,4,5]
12294 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm2
12295 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm26, %zmm2
12296 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12297 ; AVX512BW-NEXT:    vpermt2q %zmm3, %zmm0, %zmm1
12298 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12299 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
12300 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
12301 ; AVX512BW-NEXT:    vpermt2q %zmm14, %zmm16, %zmm13
12302 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12303 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
12304 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm13 {%k1} = zmm1[4,5,4,5],zmm3[4,5,4,5]
12305 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm2
12306 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm26, %zmm2
12307 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12308 ; AVX512BW-NEXT:    vpermt2q %zmm3, %zmm0, %zmm1
12309 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12310 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
12311 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm10
12312 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
12313 ; AVX512BW-NEXT:    vpermt2q %zmm3, %zmm16, %zmm10
12314 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
12315 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
12316 ; AVX512BW-NEXT:    vpermi2q %zmm28, %zmm15, %zmm16
12317 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12318 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
12319 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm16 {%k1} = zmm1[4,5,4,5],zmm2[4,5,4,5]
12320 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
12321 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm21
12322 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
12323 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm26, %zmm21
12324 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm2, %zmm26
12325 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm0, %zmm1
12326 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12327 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm1
12328 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm10 {%k1} = zmm5[4,5,4,5],zmm4[4,5,4,5]
12329 ; AVX512BW-NEXT:    vpermt2q %zmm4, %zmm0, %zmm1
12330 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12331 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} ymm0 = <9,0,7,u>
12332 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm4
12333 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
12334 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm0, %zmm12
12335 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} xmm1 = [6,13]
12336 ; AVX512BW-NEXT:    vpermt2q %zmm4, %zmm1, %zmm2
12337 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12338 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm9
12339 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
12340 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm0, %zmm9
12341 ; AVX512BW-NEXT:    vpermt2q %zmm7, %zmm1, %zmm2
12342 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12343 ; AVX512BW-NEXT:    vmovdqa64 %zmm31, %zmm7
12344 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
12345 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm0, %zmm7
12346 ; AVX512BW-NEXT:    vpermt2q %zmm31, %zmm1, %zmm2
12347 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12348 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm4
12349 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
12350 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm0, %zmm6
12351 ; AVX512BW-NEXT:    vpermt2q %zmm4, %zmm1, %zmm2
12352 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12353 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm5
12354 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
12355 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm0, %zmm5
12356 ; AVX512BW-NEXT:    vpermt2q %zmm17, %zmm1, %zmm2
12357 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12358 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, %zmm2
12359 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
12360 ; AVX512BW-NEXT:    vpermt2q %zmm4, %zmm0, %zmm2
12361 ; AVX512BW-NEXT:    vpermt2q %zmm14, %zmm1, %zmm4
12362 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm14
12363 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm4
12364 ; AVX512BW-NEXT:    vpermt2q %zmm8, %zmm0, %zmm4
12365 ; AVX512BW-NEXT:    vpermi2q %zmm15, %zmm28, %zmm0
12366 ; AVX512BW-NEXT:    vpermt2q %zmm28, %zmm1, %zmm15
12367 ; AVX512BW-NEXT:    vpermt2q %zmm3, %zmm1, %zmm8
12368 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12369 ; AVX512BW-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
12370 ; AVX512BW-NEXT:    # ymm1 = ymm1[0,1,2,3],mem[4,5,6,7]
12371 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
12372 ; AVX512BW-NEXT:    vinsertf64x4 $0, %ymm1, %zmm3, %zmm1
12373 ; AVX512BW-NEXT:    vmovups %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12374 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12375 ; AVX512BW-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
12376 ; AVX512BW-NEXT:    # ymm1 = ymm1[0,1,2,3],mem[4,5,6,7]
12377 ; AVX512BW-NEXT:    vmovups (%rsp), %zmm3 # 64-byte Reload
12378 ; AVX512BW-NEXT:    vinsertf64x4 $0, %ymm1, %zmm3, %zmm1
12379 ; AVX512BW-NEXT:    vmovups %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12380 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12381 ; AVX512BW-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
12382 ; AVX512BW-NEXT:    # ymm1 = ymm1[0,1,2,3],mem[4,5,6,7]
12383 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
12384 ; AVX512BW-NEXT:    vinsertf64x4 $0, %ymm1, %zmm3, %zmm1
12385 ; AVX512BW-NEXT:    vmovups %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12386 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12387 ; AVX512BW-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
12388 ; AVX512BW-NEXT:    # ymm1 = ymm1[0,1,2,3],mem[4,5,6,7]
12389 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
12390 ; AVX512BW-NEXT:    vinsertf64x4 $0, %ymm1, %zmm3, %zmm1
12391 ; AVX512BW-NEXT:    vmovups %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12392 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12393 ; AVX512BW-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
12394 ; AVX512BW-NEXT:    # ymm1 = ymm1[0,1,2,3],mem[4,5,6,7]
12395 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
12396 ; AVX512BW-NEXT:    vinsertf64x4 $0, %ymm1, %zmm3, %zmm1
12397 ; AVX512BW-NEXT:    vmovups %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12398 ; AVX512BW-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm1 # 32-byte Folded Reload
12399 ; AVX512BW-NEXT:    # ymm1 = ymm14[0,1,2,3],mem[4,5,6,7]
12400 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm30, %zmm1
12401 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12402 ; AVX512BW-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm1 # 32-byte Folded Reload
12403 ; AVX512BW-NEXT:    # ymm1 = ymm15[0,1,2,3],mem[4,5,6,7]
12404 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm24, %zmm1
12405 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, (%rsp) # 64-byte Spill
12406 ; AVX512BW-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm1 # 32-byte Folded Reload
12407 ; AVX512BW-NEXT:    # ymm1 = ymm8[0,1,2,3],mem[4,5,6,7]
12408 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm22, %zmm1
12409 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12410 ; AVX512BW-NEXT:    movb $-32, %al
12411 ; AVX512BW-NEXT:    kmovd %eax, %k2
12412 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12413 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm18 {%k2}
12414 ; AVX512BW-NEXT:    vmovdqu64 %zmm18, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12415 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12416 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
12417 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm1 {%k2}
12418 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12419 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12420 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm25 {%k2}
12421 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12422 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm27 {%k2}
12423 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12424 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm13 {%k2}
12425 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12426 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm23 {%k2}
12427 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12428 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm10 {%k2}
12429 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm16 {%k2}
12430 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12431 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
12432 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12433 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k2}
12434 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12435 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm12 {%k1}
12436 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12437 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm12 {%k2}
12438 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12439 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm9 {%k1}
12440 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12441 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm9 {%k2}
12442 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12443 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm7 {%k1}
12444 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12445 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm7 {%k2}
12446 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12447 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm6 {%k1}
12448 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12449 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm6 {%k2}
12450 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12451 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm5 {%k1}
12452 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12453 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm5 {%k2}
12454 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12455 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm2 {%k1}
12456 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12457 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm2 {%k2}
12458 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12459 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k1}
12460 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, %zmm0 {%k2}
12461 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
12462 ; AVX512BW-NEXT:    vmovdqa64 %zmm29, %zmm31 {%k2}
12463 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
12464 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12465 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm28 {%k2}
12466 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm29 # 64-byte Reload
12467 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12468 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm29 {%k2}
12469 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm30 # 64-byte Reload
12470 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12471 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm30 {%k2}
12472 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
12473 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12474 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm15 {%k2}
12475 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
12476 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12477 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm14 {%k2}
12478 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
12479 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12480 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm8 {%k2}
12481 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
12482 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12483 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm3 {%k2}
12484 ; AVX512BW-NEXT:    vmovdqa 2752(%rdi), %ymm1
12485 ; 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]
12486 ; AVX512BW-NEXT:    vextracti128 $1, %ymm1, %xmm1
12487 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm1, %zmm21, %zmm17
12488 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12489 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm17 {%k2}
12490 ; AVX512BW-NEXT:    vmovdqa 512(%rdi), %ymm1
12491 ; 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]
12492 ; AVX512BW-NEXT:    vextracti128 $1, %ymm1, %xmm1
12493 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm18 # 64-byte Reload
12494 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm1, %zmm18, %zmm1
12495 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm18 # 64-byte Reload
12496 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, %zmm1 {%k2}
12497 ; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %ymm18
12498 ; AVX512BW-NEXT:    vpalignr {{.*#+}} ymm18 = mem[8,9,10,11,12,13,14,15],ymm18[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm18[16,17,18,19,20,21,22,23]
12499 ; AVX512BW-NEXT:    vextracti32x4 $1, %ymm18, %xmm18
12500 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
12501 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm18, %zmm19, %zmm18
12502 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
12503 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm18 {%k2}
12504 ; AVX512BW-NEXT:    vmovdqa64 1408(%rdi), %ymm19
12505 ; AVX512BW-NEXT:    vpalignr {{.*#+}} ymm19 = mem[8,9,10,11,12,13,14,15],ymm19[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm19[16,17,18,19,20,21,22,23]
12506 ; AVX512BW-NEXT:    vextracti32x4 $1, %ymm19, %xmm19
12507 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
12508 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm19, %zmm20, %zmm19
12509 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
12510 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, %zmm19 {%k2}
12511 ; AVX512BW-NEXT:    vmovdqa64 960(%rdi), %ymm20
12512 ; AVX512BW-NEXT:    vpalignr {{.*#+}} ymm20 = mem[8,9,10,11,12,13,14,15],ymm20[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm20[16,17,18,19,20,21,22,23]
12513 ; AVX512BW-NEXT:    vextracti32x4 $1, %ymm20, %xmm20
12514 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm21 # 64-byte Reload
12515 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm20, %zmm21, %zmm20
12516 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm21 # 64-byte Reload
12517 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, %zmm20 {%k2}
12518 ; AVX512BW-NEXT:    vmovdqa64 2304(%rdi), %ymm22
12519 ; AVX512BW-NEXT:    vpalignr {{.*#+}} ymm22 = mem[8,9,10,11,12,13,14,15],ymm22[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm22[16,17,18,19,20,21,22,23]
12520 ; AVX512BW-NEXT:    vextracti32x4 $1, %ymm22, %xmm22
12521 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm21 # 64-byte Reload
12522 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm22, %zmm21, %zmm22
12523 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm21 # 64-byte Reload
12524 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, %zmm22 {%k2}
12525 ; AVX512BW-NEXT:    vmovdqa64 1856(%rdi), %ymm24
12526 ; AVX512BW-NEXT:    vpalignr {{.*#+}} ymm24 = mem[8,9,10,11,12,13,14,15],ymm24[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm24[16,17,18,19,20,21,22,23]
12527 ; AVX512BW-NEXT:    vextracti32x4 $1, %ymm24, %xmm24
12528 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm21 # 64-byte Reload
12529 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm24, %zmm21, %zmm21
12530 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm24 # 64-byte Reload
12531 ; AVX512BW-NEXT:    vmovdqa64 %zmm24, %zmm21 {%k2}
12532 ; AVX512BW-NEXT:    vmovdqa64 3200(%rdi), %ymm24
12533 ; AVX512BW-NEXT:    vpalignr {{.*#+}} ymm24 = mem[8,9,10,11,12,13,14,15],ymm24[0,1,2,3,4,5,6,7],mem[24,25,26,27,28,29,30,31],ymm24[16,17,18,19,20,21,22,23]
12534 ; AVX512BW-NEXT:    vextracti32x4 $1, %ymm24, %xmm24
12535 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm24, %zmm26, %zmm24
12536 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm24 {%k2}
12537 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, 448(%rsi)
12538 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, 384(%rsi)
12539 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, 320(%rsi)
12540 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, 256(%rsi)
12541 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, 192(%rsi)
12542 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, 128(%rsi)
12543 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
12544 ; AVX512BW-NEXT:    vmovaps %zmm10, 64(%rsi)
12545 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
12546 ; AVX512BW-NEXT:    vmovaps %zmm10, (%rsi)
12547 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, 448(%rdx)
12548 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, 256(%rdx)
12549 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, 320(%rdx)
12550 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, 128(%rdx)
12551 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, 192(%rdx)
12552 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, (%rdx)
12553 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, 64(%rdx)
12554 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, 384(%rdx)
12555 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, 448(%rcx)
12556 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, 256(%rcx)
12557 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, 320(%rcx)
12558 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, 128(%rcx)
12559 ; AVX512BW-NEXT:    vmovdqa64 %zmm30, 192(%rcx)
12560 ; AVX512BW-NEXT:    vmovdqa64 %zmm29, (%rcx)
12561 ; AVX512BW-NEXT:    vmovdqa64 %zmm28, 64(%rcx)
12562 ; AVX512BW-NEXT:    vmovdqa64 %zmm31, 384(%rcx)
12563 ; AVX512BW-NEXT:    vmovdqa64 %zmm24, 448(%r8)
12564 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, 256(%r8)
12565 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, 320(%r8)
12566 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, 128(%r8)
12567 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, 192(%r8)
12568 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, (%r8)
12569 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, 64(%r8)
12570 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, 384(%r8)
12571 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12572 ; AVX512BW-NEXT:    vmovaps %zmm0, 448(%r9)
12573 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12574 ; AVX512BW-NEXT:    vmovaps %zmm0, 256(%r9)
12575 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12576 ; AVX512BW-NEXT:    vmovaps %zmm0, 320(%r9)
12577 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12578 ; AVX512BW-NEXT:    vmovaps %zmm0, 128(%r9)
12579 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12580 ; AVX512BW-NEXT:    vmovaps %zmm0, 192(%r9)
12581 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12582 ; AVX512BW-NEXT:    vmovaps %zmm0, (%r9)
12583 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12584 ; AVX512BW-NEXT:    vmovaps %zmm0, 64(%r9)
12585 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12586 ; AVX512BW-NEXT:    vmovaps %zmm0, 384(%r9)
12587 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
12588 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12589 ; AVX512BW-NEXT:    vmovaps %zmm0, 448(%rax)
12590 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12591 ; AVX512BW-NEXT:    vmovaps %zmm0, 256(%rax)
12592 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12593 ; AVX512BW-NEXT:    vmovaps %zmm0, 320(%rax)
12594 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12595 ; AVX512BW-NEXT:    vmovaps %zmm0, 128(%rax)
12596 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12597 ; AVX512BW-NEXT:    vmovaps %zmm0, 192(%rax)
12598 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12599 ; AVX512BW-NEXT:    vmovaps %zmm0, (%rax)
12600 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12601 ; AVX512BW-NEXT:    vmovaps %zmm0, 64(%rax)
12602 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12603 ; AVX512BW-NEXT:    vmovaps %zmm0, 384(%rax)
12604 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
12605 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12606 ; AVX512BW-NEXT:    vmovaps %zmm0, 384(%rax)
12607 ; AVX512BW-NEXT:    vmovups (%rsp), %zmm0 # 64-byte Reload
12608 ; AVX512BW-NEXT:    vmovaps %zmm0, 448(%rax)
12609 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12610 ; AVX512BW-NEXT:    vmovaps %zmm0, 256(%rax)
12611 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12612 ; AVX512BW-NEXT:    vmovaps %zmm0, 320(%rax)
12613 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12614 ; AVX512BW-NEXT:    vmovaps %zmm0, 128(%rax)
12615 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12616 ; AVX512BW-NEXT:    vmovaps %zmm0, 192(%rax)
12617 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12618 ; AVX512BW-NEXT:    vmovaps %zmm0, (%rax)
12619 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12620 ; AVX512BW-NEXT:    vmovaps %zmm0, 64(%rax)
12621 ; AVX512BW-NEXT:    addq $6664, %rsp # imm = 0x1A08
12622 ; AVX512BW-NEXT:    vzeroupper
12623 ; AVX512BW-NEXT:    retq
12624   %wide.vec = load <448 x i64>, ptr %in.vec, align 64
12625   %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>
12626   %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>
12627   %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>
12628   %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>
12629   %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>
12630   %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>
12631   %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>
12632   store <64 x i64> %strided.vec0, ptr %out.vec0, align 64
12633   store <64 x i64> %strided.vec1, ptr %out.vec1, align 64
12634   store <64 x i64> %strided.vec2, ptr %out.vec2, align 64
12635   store <64 x i64> %strided.vec3, ptr %out.vec3, align 64
12636   store <64 x i64> %strided.vec4, ptr %out.vec4, align 64
12637   store <64 x i64> %strided.vec5, ptr %out.vec5, align 64
12638   store <64 x i64> %strided.vec6, ptr %out.vec6, align 64
12639   ret void
12641 ;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
12642 ; AVX: {{.*}}
12643 ; AVX1: {{.*}}
12644 ; AVX2: {{.*}}
12645 ; AVX2-FAST: {{.*}}
12646 ; AVX2-FAST-PERLANE: {{.*}}
12647 ; AVX2-SLOW: {{.*}}
12648 ; AVX512BW-FAST: {{.*}}
12649 ; AVX512BW-SLOW: {{.*}}
12650 ; AVX512F-FAST: {{.*}}
12651 ; AVX512F-SLOW: {{.*}}
12652 ; FALLBACK0: {{.*}}
12653 ; FALLBACK1: {{.*}}
12654 ; FALLBACK10: {{.*}}
12655 ; FALLBACK11: {{.*}}
12656 ; FALLBACK12: {{.*}}
12657 ; FALLBACK2: {{.*}}
12658 ; FALLBACK3: {{.*}}
12659 ; FALLBACK4: {{.*}}
12660 ; FALLBACK5: {{.*}}
12661 ; FALLBACK6: {{.*}}
12662 ; FALLBACK7: {{.*}}
12663 ; FALLBACK8: {{.*}}
12664 ; FALLBACK9: {{.*}}