[Reland][Runtimes] Merge 'compile_commands.json' files from runtimes build (#116303)
[llvm-project.git] / llvm / test / CodeGen / X86 / vector-interleaved-load-i32-stride-8.ll
blobcd0891385faffe89482d2c16962ec28bac0504be
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
3 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx  | FileCheck %s --check-prefixes=AVX
4 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx2 | FileCheck %s --check-prefixes=AVX2
5 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx2,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX2-FP
6 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx2,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX2-FCP
7 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl | FileCheck %s --check-prefixes=AVX512
8 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX512-FCP
9 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq | FileCheck %s --check-prefixes=AVX512DQ
10 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX512DQ-FCP
11 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512bw | FileCheck %s --check-prefixes=AVX512BW
12 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512bw,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX512BW-FCP
13 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq,+avx512bw | FileCheck %s --check-prefixes=AVX512DQ-BW
14 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq,+avx512bw,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX512DQ-BW-FCP
16 ; These patterns are produced by LoopVectorizer for interleaved loads.
18 define void @load_i32_stride8_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, ptr %out.vec7) nounwind {
19 ; SSE-LABEL: load_i32_stride8_vf2:
20 ; SSE:       # %bb.0:
21 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
22 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %r10
23 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %r11
24 ; SSE-NEXT:    movdqa (%rdi), %xmm0
25 ; SSE-NEXT:    movdqa 16(%rdi), %xmm1
26 ; SSE-NEXT:    movdqa 32(%rdi), %xmm2
27 ; SSE-NEXT:    movdqa 48(%rdi), %xmm3
28 ; SSE-NEXT:    movdqa %xmm0, %xmm4
29 ; SSE-NEXT:    punpckldq {{.*#+}} xmm4 = xmm4[0],xmm2[0],xmm4[1],xmm2[1]
30 ; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm4[2,3,2,3]
31 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm2[2],xmm0[3],xmm2[3]
32 ; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm0[2,3,2,3]
33 ; SSE-NEXT:    movdqa %xmm1, %xmm6
34 ; SSE-NEXT:    punpckldq {{.*#+}} xmm6 = xmm6[0],xmm3[0],xmm6[1],xmm3[1]
35 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm6[2,3,2,3]
36 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm3[2],xmm1[3],xmm3[3]
37 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm1[2,3,2,3]
38 ; SSE-NEXT:    movq %xmm4, (%rsi)
39 ; SSE-NEXT:    movq %xmm5, (%rdx)
40 ; SSE-NEXT:    movq %xmm0, (%rcx)
41 ; SSE-NEXT:    movq %xmm2, (%r8)
42 ; SSE-NEXT:    movq %xmm6, (%r9)
43 ; SSE-NEXT:    movq %xmm7, (%r11)
44 ; SSE-NEXT:    movq %xmm1, (%r10)
45 ; SSE-NEXT:    movq %xmm3, (%rax)
46 ; SSE-NEXT:    retq
48 ; AVX-LABEL: load_i32_stride8_vf2:
49 ; AVX:       # %bb.0:
50 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax
51 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %r10
52 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %r11
53 ; AVX-NEXT:    vmovaps (%rdi), %ymm0
54 ; AVX-NEXT:    vmovaps 32(%rdi), %ymm1
55 ; AVX-NEXT:    vmovdqa 32(%rdi), %xmm2
56 ; AVX-NEXT:    vmovdqa (%rdi), %xmm3
57 ; AVX-NEXT:    vpunpckldq {{.*#+}} xmm4 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
58 ; AVX-NEXT:    vpshufd {{.*#+}} xmm5 = xmm3[1,1,1,1]
59 ; AVX-NEXT:    vpblendw {{.*#+}} xmm5 = xmm5[0,1],xmm2[2,3],xmm5[4,5,6,7]
60 ; AVX-NEXT:    vpunpckhdq {{.*#+}} xmm2 = xmm3[2],xmm2[2],xmm3[3],xmm2[3]
61 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm3 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]
62 ; AVX-NEXT:    vextractf128 $1, %ymm3, %xmm3
63 ; AVX-NEXT:    vshufps {{.*#+}} ymm6 = ymm1[1,0],ymm0[1,0],ymm1[5,4],ymm0[5,4]
64 ; AVX-NEXT:    vshufps {{.*#+}} ymm6 = ymm6[2,0,2,3,6,4,6,7]
65 ; AVX-NEXT:    vextractf128 $1, %ymm6, %xmm6
66 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm7 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
67 ; AVX-NEXT:    vextractf128 $1, %ymm7, %xmm7
68 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[3,0],ymm0[3,0],ymm1[7,4],ymm0[7,4]
69 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,0,2,3,6,4,6,7]
70 ; AVX-NEXT:    vextractf128 $1, %ymm0, %xmm0
71 ; AVX-NEXT:    vmovq %xmm4, (%rsi)
72 ; AVX-NEXT:    vmovq %xmm5, (%rdx)
73 ; AVX-NEXT:    vmovq %xmm2, (%rcx)
74 ; AVX-NEXT:    vpextrq $1, %xmm2, (%r8)
75 ; AVX-NEXT:    vmovlps %xmm3, (%r9)
76 ; AVX-NEXT:    vmovlps %xmm6, (%r11)
77 ; AVX-NEXT:    vmovlps %xmm7, (%r10)
78 ; AVX-NEXT:    vmovlps %xmm0, (%rax)
79 ; AVX-NEXT:    vzeroupper
80 ; AVX-NEXT:    retq
82 ; AVX2-LABEL: load_i32_stride8_vf2:
83 ; AVX2:       # %bb.0:
84 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rax
85 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %r10
86 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %r11
87 ; AVX2-NEXT:    vmovaps 32(%rdi), %ymm0
88 ; AVX2-NEXT:    vmovaps (%rdi), %ymm1
89 ; AVX2-NEXT:    vmovdqa (%rdi), %xmm2
90 ; AVX2-NEXT:    vmovdqa 32(%rdi), %xmm3
91 ; AVX2-NEXT:    vpunpckldq {{.*#+}} xmm4 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]
92 ; AVX2-NEXT:    vpshufd {{.*#+}} xmm5 = xmm2[1,1,1,1]
93 ; AVX2-NEXT:    vpblendd {{.*#+}} xmm5 = xmm5[0],xmm3[1],xmm5[2,3]
94 ; AVX2-NEXT:    vpunpckhdq {{.*#+}} xmm2 = xmm2[2],xmm3[2],xmm2[3],xmm3[3]
95 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm3 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
96 ; AVX2-NEXT:    vextractf128 $1, %ymm3, %xmm3
97 ; AVX2-NEXT:    vshufps {{.*#+}} ymm6 = ymm1[1,1,1,1,5,5,5,5]
98 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0],ymm0[1],ymm6[2,3,4],ymm0[5],ymm6[6,7]
99 ; AVX2-NEXT:    vextractf128 $1, %ymm6, %xmm6
100 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm0 = ymm1[2],ymm0[2],ymm1[3],ymm0[3],ymm1[6],ymm0[6],ymm1[7],ymm0[7]
101 ; AVX2-NEXT:    vextractf128 $1, %ymm0, %xmm1
102 ; AVX2-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]
103 ; AVX2-NEXT:    vextractf128 $1, %ymm0, %xmm0
104 ; AVX2-NEXT:    vmovq %xmm4, (%rsi)
105 ; AVX2-NEXT:    vmovq %xmm5, (%rdx)
106 ; AVX2-NEXT:    vmovq %xmm2, (%rcx)
107 ; AVX2-NEXT:    vpextrq $1, %xmm2, (%r8)
108 ; AVX2-NEXT:    vmovlps %xmm3, (%r9)
109 ; AVX2-NEXT:    vmovlps %xmm6, (%r11)
110 ; AVX2-NEXT:    vmovlps %xmm1, (%r10)
111 ; AVX2-NEXT:    vmovlps %xmm0, (%rax)
112 ; AVX2-NEXT:    vzeroupper
113 ; AVX2-NEXT:    retq
115 ; AVX2-FP-LABEL: load_i32_stride8_vf2:
116 ; AVX2-FP:       # %bb.0:
117 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
118 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
119 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %r11
120 ; AVX2-FP-NEXT:    vmovaps 32(%rdi), %ymm0
121 ; AVX2-FP-NEXT:    vmovaps (%rdi), %ymm1
122 ; AVX2-FP-NEXT:    vmovdqa (%rdi), %xmm2
123 ; AVX2-FP-NEXT:    vmovdqa 32(%rdi), %xmm3
124 ; AVX2-FP-NEXT:    vpunpckldq {{.*#+}} xmm4 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]
125 ; AVX2-FP-NEXT:    vpshufd {{.*#+}} xmm5 = xmm2[1,1,1,1]
126 ; AVX2-FP-NEXT:    vpblendd {{.*#+}} xmm5 = xmm5[0],xmm3[1],xmm5[2,3]
127 ; AVX2-FP-NEXT:    vpunpckhdq {{.*#+}} xmm2 = xmm2[2],xmm3[2],xmm2[3],xmm3[3]
128 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm3 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
129 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm3, %xmm3
130 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm6 = ymm1[1,1,1,1,5,5,5,5]
131 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0],ymm0[1],ymm6[2,3,4],ymm0[5],ymm6[6,7]
132 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm6, %xmm6
133 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm0 = ymm1[2],ymm0[2],ymm1[3],ymm0[3],ymm1[6],ymm0[6],ymm1[7],ymm0[7]
134 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm0, %xmm1
135 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]
136 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm0, %xmm0
137 ; AVX2-FP-NEXT:    vmovq %xmm4, (%rsi)
138 ; AVX2-FP-NEXT:    vmovq %xmm5, (%rdx)
139 ; AVX2-FP-NEXT:    vmovq %xmm2, (%rcx)
140 ; AVX2-FP-NEXT:    vpextrq $1, %xmm2, (%r8)
141 ; AVX2-FP-NEXT:    vmovlps %xmm3, (%r9)
142 ; AVX2-FP-NEXT:    vmovlps %xmm6, (%r11)
143 ; AVX2-FP-NEXT:    vmovlps %xmm1, (%r10)
144 ; AVX2-FP-NEXT:    vmovlps %xmm0, (%rax)
145 ; AVX2-FP-NEXT:    vzeroupper
146 ; AVX2-FP-NEXT:    retq
148 ; AVX2-FCP-LABEL: load_i32_stride8_vf2:
149 ; AVX2-FCP:       # %bb.0:
150 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
151 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
152 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11
153 ; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %ymm0
154 ; AVX2-FCP-NEXT:    vmovaps (%rdi), %ymm1
155 ; AVX2-FCP-NEXT:    vmovdqa (%rdi), %xmm2
156 ; AVX2-FCP-NEXT:    vmovdqa 32(%rdi), %xmm3
157 ; AVX2-FCP-NEXT:    vpunpckldq {{.*#+}} xmm4 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]
158 ; AVX2-FCP-NEXT:    vpshufd {{.*#+}} xmm5 = xmm2[1,1,1,1]
159 ; AVX2-FCP-NEXT:    vpblendd {{.*#+}} xmm5 = xmm5[0],xmm3[1],xmm5[2,3]
160 ; AVX2-FCP-NEXT:    vpunpckhdq {{.*#+}} xmm2 = xmm2[2],xmm3[2],xmm2[3],xmm3[3]
161 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm3 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
162 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm3, %xmm3
163 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm6 = ymm1[1,1,1,1,5,5,5,5]
164 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0],ymm0[1],ymm6[2,3,4],ymm0[5],ymm6[6,7]
165 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm6, %xmm6
166 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm0 = ymm1[2],ymm0[2],ymm1[3],ymm0[3],ymm1[6],ymm0[6],ymm1[7],ymm0[7]
167 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm0, %xmm1
168 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]
169 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm0, %xmm0
170 ; AVX2-FCP-NEXT:    vmovq %xmm4, (%rsi)
171 ; AVX2-FCP-NEXT:    vmovq %xmm5, (%rdx)
172 ; AVX2-FCP-NEXT:    vmovq %xmm2, (%rcx)
173 ; AVX2-FCP-NEXT:    vpextrq $1, %xmm2, (%r8)
174 ; AVX2-FCP-NEXT:    vmovlps %xmm3, (%r9)
175 ; AVX2-FCP-NEXT:    vmovlps %xmm6, (%r11)
176 ; AVX2-FCP-NEXT:    vmovlps %xmm1, (%r10)
177 ; AVX2-FCP-NEXT:    vmovlps %xmm0, (%rax)
178 ; AVX2-FCP-NEXT:    vzeroupper
179 ; AVX2-FCP-NEXT:    retq
181 ; AVX512-LABEL: load_i32_stride8_vf2:
182 ; AVX512:       # %bb.0:
183 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax
184 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %r10
185 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %r11
186 ; AVX512-NEXT:    vmovdqa (%rdi), %xmm0
187 ; AVX512-NEXT:    vmovdqa 32(%rdi), %xmm1
188 ; AVX512-NEXT:    vpunpckldq {{.*#+}} xmm2 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
189 ; AVX512-NEXT:    vpshufd {{.*#+}} xmm3 = xmm0[1,1,1,1]
190 ; AVX512-NEXT:    vpblendd {{.*#+}} xmm3 = xmm3[0],xmm1[1],xmm3[2,3]
191 ; AVX512-NEXT:    vpunpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]
192 ; AVX512-NEXT:    vmovaps 32(%rdi), %ymm1
193 ; AVX512-NEXT:    vmovaps (%rdi), %ymm4
194 ; AVX512-NEXT:    vunpcklps {{.*#+}} ymm5 = ymm4[0],ymm1[0],ymm4[1],ymm1[1],ymm4[4],ymm1[4],ymm4[5],ymm1[5]
195 ; AVX512-NEXT:    vextractf128 $1, %ymm5, %xmm5
196 ; AVX512-NEXT:    vshufps {{.*#+}} ymm6 = ymm4[1,1,1,1,5,5,5,5]
197 ; AVX512-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0],ymm1[1],ymm6[2,3,4],ymm1[5],ymm6[6,7]
198 ; AVX512-NEXT:    vextractf128 $1, %ymm6, %xmm6
199 ; AVX512-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm4[2],ymm1[2],ymm4[3],ymm1[3],ymm4[6],ymm1[6],ymm4[7],ymm1[7]
200 ; AVX512-NEXT:    vextractf128 $1, %ymm1, %xmm4
201 ; AVX512-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[2,3,2,3,6,7,6,7]
202 ; AVX512-NEXT:    vextractf128 $1, %ymm1, %xmm1
203 ; AVX512-NEXT:    vmovq %xmm2, (%rsi)
204 ; AVX512-NEXT:    vmovq %xmm3, (%rdx)
205 ; AVX512-NEXT:    vmovq %xmm0, (%rcx)
206 ; AVX512-NEXT:    vpextrq $1, %xmm0, (%r8)
207 ; AVX512-NEXT:    vmovlps %xmm5, (%r9)
208 ; AVX512-NEXT:    vmovlps %xmm6, (%r11)
209 ; AVX512-NEXT:    vmovlps %xmm4, (%r10)
210 ; AVX512-NEXT:    vmovlps %xmm1, (%rax)
211 ; AVX512-NEXT:    vzeroupper
212 ; AVX512-NEXT:    retq
214 ; AVX512-FCP-LABEL: load_i32_stride8_vf2:
215 ; AVX512-FCP:       # %bb.0:
216 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
217 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
218 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11
219 ; AVX512-FCP-NEXT:    vmovdqa (%rdi), %xmm0
220 ; AVX512-FCP-NEXT:    vmovdqa 32(%rdi), %xmm1
221 ; AVX512-FCP-NEXT:    vpunpckldq {{.*#+}} xmm2 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
222 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm3 = [1,5,0,0]
223 ; AVX512-FCP-NEXT:    vpermi2d %xmm1, %xmm0, %xmm3
224 ; AVX512-FCP-NEXT:    vpunpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]
225 ; AVX512-FCP-NEXT:    vmovdqa 32(%rdi), %ymm1
226 ; AVX512-FCP-NEXT:    vmovdqa (%rdi), %ymm4
227 ; AVX512-FCP-NEXT:    vpunpckldq {{.*#+}} ymm5 = ymm4[0],ymm1[0],ymm4[1],ymm1[1],ymm4[4],ymm1[4],ymm4[5],ymm1[5]
228 ; AVX512-FCP-NEXT:    vextracti128 $1, %ymm5, %xmm5
229 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm6 = [5,13,5,5]
230 ; AVX512-FCP-NEXT:    vpermi2d %ymm1, %ymm4, %ymm6
231 ; AVX512-FCP-NEXT:    vpunpckhdq {{.*#+}} ymm1 = ymm4[2],ymm1[2],ymm4[3],ymm1[3],ymm4[6],ymm1[6],ymm4[7],ymm1[7]
232 ; AVX512-FCP-NEXT:    vextracti128 $1, %ymm1, %xmm4
233 ; AVX512-FCP-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[2,3,2,3,6,7,6,7]
234 ; AVX512-FCP-NEXT:    vextracti128 $1, %ymm1, %xmm1
235 ; AVX512-FCP-NEXT:    vmovq %xmm2, (%rsi)
236 ; AVX512-FCP-NEXT:    vmovq %xmm3, (%rdx)
237 ; AVX512-FCP-NEXT:    vmovq %xmm0, (%rcx)
238 ; AVX512-FCP-NEXT:    vpextrq $1, %xmm0, (%r8)
239 ; AVX512-FCP-NEXT:    vmovq %xmm5, (%r9)
240 ; AVX512-FCP-NEXT:    vmovq %xmm6, (%r11)
241 ; AVX512-FCP-NEXT:    vmovq %xmm4, (%r10)
242 ; AVX512-FCP-NEXT:    vmovq %xmm1, (%rax)
243 ; AVX512-FCP-NEXT:    vzeroupper
244 ; AVX512-FCP-NEXT:    retq
246 ; AVX512DQ-LABEL: load_i32_stride8_vf2:
247 ; AVX512DQ:       # %bb.0:
248 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %rax
249 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %r10
250 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %r11
251 ; AVX512DQ-NEXT:    vmovdqa (%rdi), %xmm0
252 ; AVX512DQ-NEXT:    vmovdqa 32(%rdi), %xmm1
253 ; AVX512DQ-NEXT:    vpunpckldq {{.*#+}} xmm2 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
254 ; AVX512DQ-NEXT:    vpshufd {{.*#+}} xmm3 = xmm0[1,1,1,1]
255 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} xmm3 = xmm3[0],xmm1[1],xmm3[2,3]
256 ; AVX512DQ-NEXT:    vpunpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]
257 ; AVX512DQ-NEXT:    vmovaps 32(%rdi), %ymm1
258 ; AVX512DQ-NEXT:    vmovaps (%rdi), %ymm4
259 ; AVX512DQ-NEXT:    vunpcklps {{.*#+}} ymm5 = ymm4[0],ymm1[0],ymm4[1],ymm1[1],ymm4[4],ymm1[4],ymm4[5],ymm1[5]
260 ; AVX512DQ-NEXT:    vextractf128 $1, %ymm5, %xmm5
261 ; AVX512DQ-NEXT:    vshufps {{.*#+}} ymm6 = ymm4[1,1,1,1,5,5,5,5]
262 ; AVX512DQ-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0],ymm1[1],ymm6[2,3,4],ymm1[5],ymm6[6,7]
263 ; AVX512DQ-NEXT:    vextractf128 $1, %ymm6, %xmm6
264 ; AVX512DQ-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm4[2],ymm1[2],ymm4[3],ymm1[3],ymm4[6],ymm1[6],ymm4[7],ymm1[7]
265 ; AVX512DQ-NEXT:    vextractf128 $1, %ymm1, %xmm4
266 ; AVX512DQ-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[2,3,2,3,6,7,6,7]
267 ; AVX512DQ-NEXT:    vextractf128 $1, %ymm1, %xmm1
268 ; AVX512DQ-NEXT:    vmovq %xmm2, (%rsi)
269 ; AVX512DQ-NEXT:    vmovq %xmm3, (%rdx)
270 ; AVX512DQ-NEXT:    vmovq %xmm0, (%rcx)
271 ; AVX512DQ-NEXT:    vpextrq $1, %xmm0, (%r8)
272 ; AVX512DQ-NEXT:    vmovlps %xmm5, (%r9)
273 ; AVX512DQ-NEXT:    vmovlps %xmm6, (%r11)
274 ; AVX512DQ-NEXT:    vmovlps %xmm4, (%r10)
275 ; AVX512DQ-NEXT:    vmovlps %xmm1, (%rax)
276 ; AVX512DQ-NEXT:    vzeroupper
277 ; AVX512DQ-NEXT:    retq
279 ; AVX512DQ-FCP-LABEL: load_i32_stride8_vf2:
280 ; AVX512DQ-FCP:       # %bb.0:
281 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
282 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
283 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11
284 ; AVX512DQ-FCP-NEXT:    vmovdqa (%rdi), %xmm0
285 ; AVX512DQ-FCP-NEXT:    vmovdqa 32(%rdi), %xmm1
286 ; AVX512DQ-FCP-NEXT:    vpunpckldq {{.*#+}} xmm2 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
287 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm3 = [1,5,0,0]
288 ; AVX512DQ-FCP-NEXT:    vpermi2d %xmm1, %xmm0, %xmm3
289 ; AVX512DQ-FCP-NEXT:    vpunpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]
290 ; AVX512DQ-FCP-NEXT:    vmovdqa 32(%rdi), %ymm1
291 ; AVX512DQ-FCP-NEXT:    vmovdqa (%rdi), %ymm4
292 ; AVX512DQ-FCP-NEXT:    vpunpckldq {{.*#+}} ymm5 = ymm4[0],ymm1[0],ymm4[1],ymm1[1],ymm4[4],ymm1[4],ymm4[5],ymm1[5]
293 ; AVX512DQ-FCP-NEXT:    vextracti128 $1, %ymm5, %xmm5
294 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm6 = [5,13,5,5]
295 ; AVX512DQ-FCP-NEXT:    vpermi2d %ymm1, %ymm4, %ymm6
296 ; AVX512DQ-FCP-NEXT:    vpunpckhdq {{.*#+}} ymm1 = ymm4[2],ymm1[2],ymm4[3],ymm1[3],ymm4[6],ymm1[6],ymm4[7],ymm1[7]
297 ; AVX512DQ-FCP-NEXT:    vextracti128 $1, %ymm1, %xmm4
298 ; AVX512DQ-FCP-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[2,3,2,3,6,7,6,7]
299 ; AVX512DQ-FCP-NEXT:    vextracti128 $1, %ymm1, %xmm1
300 ; AVX512DQ-FCP-NEXT:    vmovq %xmm2, (%rsi)
301 ; AVX512DQ-FCP-NEXT:    vmovq %xmm3, (%rdx)
302 ; AVX512DQ-FCP-NEXT:    vmovq %xmm0, (%rcx)
303 ; AVX512DQ-FCP-NEXT:    vpextrq $1, %xmm0, (%r8)
304 ; AVX512DQ-FCP-NEXT:    vmovq %xmm5, (%r9)
305 ; AVX512DQ-FCP-NEXT:    vmovq %xmm6, (%r11)
306 ; AVX512DQ-FCP-NEXT:    vmovq %xmm4, (%r10)
307 ; AVX512DQ-FCP-NEXT:    vmovq %xmm1, (%rax)
308 ; AVX512DQ-FCP-NEXT:    vzeroupper
309 ; AVX512DQ-FCP-NEXT:    retq
311 ; AVX512BW-LABEL: load_i32_stride8_vf2:
312 ; AVX512BW:       # %bb.0:
313 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
314 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %r10
315 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %r11
316 ; AVX512BW-NEXT:    vmovdqa (%rdi), %xmm0
317 ; AVX512BW-NEXT:    vmovdqa 32(%rdi), %xmm1
318 ; AVX512BW-NEXT:    vpunpckldq {{.*#+}} xmm2 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
319 ; AVX512BW-NEXT:    vpshufd {{.*#+}} xmm3 = xmm0[1,1,1,1]
320 ; AVX512BW-NEXT:    vpblendd {{.*#+}} xmm3 = xmm3[0],xmm1[1],xmm3[2,3]
321 ; AVX512BW-NEXT:    vpunpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]
322 ; AVX512BW-NEXT:    vmovaps 32(%rdi), %ymm1
323 ; AVX512BW-NEXT:    vmovaps (%rdi), %ymm4
324 ; AVX512BW-NEXT:    vunpcklps {{.*#+}} ymm5 = ymm4[0],ymm1[0],ymm4[1],ymm1[1],ymm4[4],ymm1[4],ymm4[5],ymm1[5]
325 ; AVX512BW-NEXT:    vextractf128 $1, %ymm5, %xmm5
326 ; AVX512BW-NEXT:    vshufps {{.*#+}} ymm6 = ymm4[1,1,1,1,5,5,5,5]
327 ; AVX512BW-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0],ymm1[1],ymm6[2,3,4],ymm1[5],ymm6[6,7]
328 ; AVX512BW-NEXT:    vextractf128 $1, %ymm6, %xmm6
329 ; AVX512BW-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm4[2],ymm1[2],ymm4[3],ymm1[3],ymm4[6],ymm1[6],ymm4[7],ymm1[7]
330 ; AVX512BW-NEXT:    vextractf128 $1, %ymm1, %xmm4
331 ; AVX512BW-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[2,3,2,3,6,7,6,7]
332 ; AVX512BW-NEXT:    vextractf128 $1, %ymm1, %xmm1
333 ; AVX512BW-NEXT:    vmovq %xmm2, (%rsi)
334 ; AVX512BW-NEXT:    vmovq %xmm3, (%rdx)
335 ; AVX512BW-NEXT:    vmovq %xmm0, (%rcx)
336 ; AVX512BW-NEXT:    vpextrq $1, %xmm0, (%r8)
337 ; AVX512BW-NEXT:    vmovlps %xmm5, (%r9)
338 ; AVX512BW-NEXT:    vmovlps %xmm6, (%r11)
339 ; AVX512BW-NEXT:    vmovlps %xmm4, (%r10)
340 ; AVX512BW-NEXT:    vmovlps %xmm1, (%rax)
341 ; AVX512BW-NEXT:    vzeroupper
342 ; AVX512BW-NEXT:    retq
344 ; AVX512BW-FCP-LABEL: load_i32_stride8_vf2:
345 ; AVX512BW-FCP:       # %bb.0:
346 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
347 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
348 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11
349 ; AVX512BW-FCP-NEXT:    vmovdqa (%rdi), %xmm0
350 ; AVX512BW-FCP-NEXT:    vmovdqa 32(%rdi), %xmm1
351 ; AVX512BW-FCP-NEXT:    vpunpckldq {{.*#+}} xmm2 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
352 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm3 = [1,5,0,0]
353 ; AVX512BW-FCP-NEXT:    vpermi2d %xmm1, %xmm0, %xmm3
354 ; AVX512BW-FCP-NEXT:    vpunpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]
355 ; AVX512BW-FCP-NEXT:    vmovdqa 32(%rdi), %ymm1
356 ; AVX512BW-FCP-NEXT:    vmovdqa (%rdi), %ymm4
357 ; AVX512BW-FCP-NEXT:    vpunpckldq {{.*#+}} ymm5 = ymm4[0],ymm1[0],ymm4[1],ymm1[1],ymm4[4],ymm1[4],ymm4[5],ymm1[5]
358 ; AVX512BW-FCP-NEXT:    vextracti128 $1, %ymm5, %xmm5
359 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm6 = [5,13,5,5]
360 ; AVX512BW-FCP-NEXT:    vpermi2d %ymm1, %ymm4, %ymm6
361 ; AVX512BW-FCP-NEXT:    vpunpckhdq {{.*#+}} ymm1 = ymm4[2],ymm1[2],ymm4[3],ymm1[3],ymm4[6],ymm1[6],ymm4[7],ymm1[7]
362 ; AVX512BW-FCP-NEXT:    vextracti128 $1, %ymm1, %xmm4
363 ; AVX512BW-FCP-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[2,3,2,3,6,7,6,7]
364 ; AVX512BW-FCP-NEXT:    vextracti128 $1, %ymm1, %xmm1
365 ; AVX512BW-FCP-NEXT:    vmovq %xmm2, (%rsi)
366 ; AVX512BW-FCP-NEXT:    vmovq %xmm3, (%rdx)
367 ; AVX512BW-FCP-NEXT:    vmovq %xmm0, (%rcx)
368 ; AVX512BW-FCP-NEXT:    vpextrq $1, %xmm0, (%r8)
369 ; AVX512BW-FCP-NEXT:    vmovq %xmm5, (%r9)
370 ; AVX512BW-FCP-NEXT:    vmovq %xmm6, (%r11)
371 ; AVX512BW-FCP-NEXT:    vmovq %xmm4, (%r10)
372 ; AVX512BW-FCP-NEXT:    vmovq %xmm1, (%rax)
373 ; AVX512BW-FCP-NEXT:    vzeroupper
374 ; AVX512BW-FCP-NEXT:    retq
376 ; AVX512DQ-BW-LABEL: load_i32_stride8_vf2:
377 ; AVX512DQ-BW:       # %bb.0:
378 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
379 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %r10
380 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %r11
381 ; AVX512DQ-BW-NEXT:    vmovdqa (%rdi), %xmm0
382 ; AVX512DQ-BW-NEXT:    vmovdqa 32(%rdi), %xmm1
383 ; AVX512DQ-BW-NEXT:    vpunpckldq {{.*#+}} xmm2 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
384 ; AVX512DQ-BW-NEXT:    vpshufd {{.*#+}} xmm3 = xmm0[1,1,1,1]
385 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} xmm3 = xmm3[0],xmm1[1],xmm3[2,3]
386 ; AVX512DQ-BW-NEXT:    vpunpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]
387 ; AVX512DQ-BW-NEXT:    vmovaps 32(%rdi), %ymm1
388 ; AVX512DQ-BW-NEXT:    vmovaps (%rdi), %ymm4
389 ; AVX512DQ-BW-NEXT:    vunpcklps {{.*#+}} ymm5 = ymm4[0],ymm1[0],ymm4[1],ymm1[1],ymm4[4],ymm1[4],ymm4[5],ymm1[5]
390 ; AVX512DQ-BW-NEXT:    vextractf128 $1, %ymm5, %xmm5
391 ; AVX512DQ-BW-NEXT:    vshufps {{.*#+}} ymm6 = ymm4[1,1,1,1,5,5,5,5]
392 ; AVX512DQ-BW-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0],ymm1[1],ymm6[2,3,4],ymm1[5],ymm6[6,7]
393 ; AVX512DQ-BW-NEXT:    vextractf128 $1, %ymm6, %xmm6
394 ; AVX512DQ-BW-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm4[2],ymm1[2],ymm4[3],ymm1[3],ymm4[6],ymm1[6],ymm4[7],ymm1[7]
395 ; AVX512DQ-BW-NEXT:    vextractf128 $1, %ymm1, %xmm4
396 ; AVX512DQ-BW-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[2,3,2,3,6,7,6,7]
397 ; AVX512DQ-BW-NEXT:    vextractf128 $1, %ymm1, %xmm1
398 ; AVX512DQ-BW-NEXT:    vmovq %xmm2, (%rsi)
399 ; AVX512DQ-BW-NEXT:    vmovq %xmm3, (%rdx)
400 ; AVX512DQ-BW-NEXT:    vmovq %xmm0, (%rcx)
401 ; AVX512DQ-BW-NEXT:    vpextrq $1, %xmm0, (%r8)
402 ; AVX512DQ-BW-NEXT:    vmovlps %xmm5, (%r9)
403 ; AVX512DQ-BW-NEXT:    vmovlps %xmm6, (%r11)
404 ; AVX512DQ-BW-NEXT:    vmovlps %xmm4, (%r10)
405 ; AVX512DQ-BW-NEXT:    vmovlps %xmm1, (%rax)
406 ; AVX512DQ-BW-NEXT:    vzeroupper
407 ; AVX512DQ-BW-NEXT:    retq
409 ; AVX512DQ-BW-FCP-LABEL: load_i32_stride8_vf2:
410 ; AVX512DQ-BW-FCP:       # %bb.0:
411 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
412 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
413 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11
414 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rdi), %xmm0
415 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 32(%rdi), %xmm1
416 ; AVX512DQ-BW-FCP-NEXT:    vpunpckldq {{.*#+}} xmm2 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
417 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm3 = [1,5,0,0]
418 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %xmm1, %xmm0, %xmm3
419 ; AVX512DQ-BW-FCP-NEXT:    vpunpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]
420 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 32(%rdi), %ymm1
421 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rdi), %ymm4
422 ; AVX512DQ-BW-FCP-NEXT:    vpunpckldq {{.*#+}} ymm5 = ymm4[0],ymm1[0],ymm4[1],ymm1[1],ymm4[4],ymm1[4],ymm4[5],ymm1[5]
423 ; AVX512DQ-BW-FCP-NEXT:    vextracti128 $1, %ymm5, %xmm5
424 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm6 = [5,13,5,5]
425 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %ymm1, %ymm4, %ymm6
426 ; AVX512DQ-BW-FCP-NEXT:    vpunpckhdq {{.*#+}} ymm1 = ymm4[2],ymm1[2],ymm4[3],ymm1[3],ymm4[6],ymm1[6],ymm4[7],ymm1[7]
427 ; AVX512DQ-BW-FCP-NEXT:    vextracti128 $1, %ymm1, %xmm4
428 ; AVX512DQ-BW-FCP-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[2,3,2,3,6,7,6,7]
429 ; AVX512DQ-BW-FCP-NEXT:    vextracti128 $1, %ymm1, %xmm1
430 ; AVX512DQ-BW-FCP-NEXT:    vmovq %xmm2, (%rsi)
431 ; AVX512DQ-BW-FCP-NEXT:    vmovq %xmm3, (%rdx)
432 ; AVX512DQ-BW-FCP-NEXT:    vmovq %xmm0, (%rcx)
433 ; AVX512DQ-BW-FCP-NEXT:    vpextrq $1, %xmm0, (%r8)
434 ; AVX512DQ-BW-FCP-NEXT:    vmovq %xmm5, (%r9)
435 ; AVX512DQ-BW-FCP-NEXT:    vmovq %xmm6, (%r11)
436 ; AVX512DQ-BW-FCP-NEXT:    vmovq %xmm4, (%r10)
437 ; AVX512DQ-BW-FCP-NEXT:    vmovq %xmm1, (%rax)
438 ; AVX512DQ-BW-FCP-NEXT:    vzeroupper
439 ; AVX512DQ-BW-FCP-NEXT:    retq
440   %wide.vec = load <16 x i32>, ptr %in.vec, align 64
441   %strided.vec0 = shufflevector <16 x i32> %wide.vec, <16 x i32> poison, <2 x i32> <i32 0, i32 8>
442   %strided.vec1 = shufflevector <16 x i32> %wide.vec, <16 x i32> poison, <2 x i32> <i32 1, i32 9>
443   %strided.vec2 = shufflevector <16 x i32> %wide.vec, <16 x i32> poison, <2 x i32> <i32 2, i32 10>
444   %strided.vec3 = shufflevector <16 x i32> %wide.vec, <16 x i32> poison, <2 x i32> <i32 3, i32 11>
445   %strided.vec4 = shufflevector <16 x i32> %wide.vec, <16 x i32> poison, <2 x i32> <i32 4, i32 12>
446   %strided.vec5 = shufflevector <16 x i32> %wide.vec, <16 x i32> poison, <2 x i32> <i32 5, i32 13>
447   %strided.vec6 = shufflevector <16 x i32> %wide.vec, <16 x i32> poison, <2 x i32> <i32 6, i32 14>
448   %strided.vec7 = shufflevector <16 x i32> %wide.vec, <16 x i32> poison, <2 x i32> <i32 7, i32 15>
449   store <2 x i32> %strided.vec0, ptr %out.vec0, align 64
450   store <2 x i32> %strided.vec1, ptr %out.vec1, align 64
451   store <2 x i32> %strided.vec2, ptr %out.vec2, align 64
452   store <2 x i32> %strided.vec3, ptr %out.vec3, align 64
453   store <2 x i32> %strided.vec4, ptr %out.vec4, align 64
454   store <2 x i32> %strided.vec5, ptr %out.vec5, align 64
455   store <2 x i32> %strided.vec6, ptr %out.vec6, align 64
456   store <2 x i32> %strided.vec7, ptr %out.vec7, align 64
457   ret void
460 define void @load_i32_stride8_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, ptr %out.vec7) nounwind {
461 ; SSE-LABEL: load_i32_stride8_vf4:
462 ; SSE:       # %bb.0:
463 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
464 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %r10
465 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %r11
466 ; SSE-NEXT:    movaps 112(%rdi), %xmm3
467 ; SSE-NEXT:    movaps 80(%rdi), %xmm2
468 ; SSE-NEXT:    movaps (%rdi), %xmm1
469 ; SSE-NEXT:    movaps 16(%rdi), %xmm0
470 ; SSE-NEXT:    movaps 32(%rdi), %xmm4
471 ; SSE-NEXT:    movaps 48(%rdi), %xmm5
472 ; SSE-NEXT:    movaps 96(%rdi), %xmm6
473 ; SSE-NEXT:    movaps 64(%rdi), %xmm7
474 ; SSE-NEXT:    movaps %xmm7, %xmm8
475 ; SSE-NEXT:    unpcklps {{.*#+}} xmm8 = xmm8[0],xmm6[0],xmm8[1],xmm6[1]
476 ; SSE-NEXT:    movaps %xmm1, %xmm9
477 ; SSE-NEXT:    unpcklps {{.*#+}} xmm9 = xmm9[0],xmm4[0],xmm9[1],xmm4[1]
478 ; SSE-NEXT:    movaps %xmm9, %xmm10
479 ; SSE-NEXT:    movlhps {{.*#+}} xmm10 = xmm10[0],xmm8[0]
480 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm9 = xmm9[1],xmm8[1]
481 ; SSE-NEXT:    unpckhps {{.*#+}} xmm7 = xmm7[2],xmm6[2],xmm7[3],xmm6[3]
482 ; SSE-NEXT:    unpckhps {{.*#+}} xmm1 = xmm1[2],xmm4[2],xmm1[3],xmm4[3]
483 ; SSE-NEXT:    movaps %xmm1, %xmm4
484 ; SSE-NEXT:    movlhps {{.*#+}} xmm4 = xmm4[0],xmm7[0]
485 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm7[1]
486 ; SSE-NEXT:    movaps %xmm2, %xmm6
487 ; SSE-NEXT:    unpcklps {{.*#+}} xmm6 = xmm6[0],xmm3[0],xmm6[1],xmm3[1]
488 ; SSE-NEXT:    movaps %xmm0, %xmm7
489 ; SSE-NEXT:    unpcklps {{.*#+}} xmm7 = xmm7[0],xmm5[0],xmm7[1],xmm5[1]
490 ; SSE-NEXT:    movaps %xmm7, %xmm8
491 ; SSE-NEXT:    movlhps {{.*#+}} xmm8 = xmm8[0],xmm6[0]
492 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm7 = xmm7[1],xmm6[1]
493 ; SSE-NEXT:    unpckhps {{.*#+}} xmm2 = xmm2[2],xmm3[2],xmm2[3],xmm3[3]
494 ; SSE-NEXT:    unpckhps {{.*#+}} xmm0 = xmm0[2],xmm5[2],xmm0[3],xmm5[3]
495 ; SSE-NEXT:    movaps %xmm0, %xmm3
496 ; SSE-NEXT:    movlhps {{.*#+}} xmm3 = xmm3[0],xmm2[0]
497 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
498 ; SSE-NEXT:    movaps %xmm10, (%rsi)
499 ; SSE-NEXT:    movaps %xmm9, (%rdx)
500 ; SSE-NEXT:    movaps %xmm4, (%rcx)
501 ; SSE-NEXT:    movaps %xmm1, (%r8)
502 ; SSE-NEXT:    movaps %xmm8, (%r9)
503 ; SSE-NEXT:    movaps %xmm7, (%r11)
504 ; SSE-NEXT:    movaps %xmm3, (%r10)
505 ; SSE-NEXT:    movaps %xmm0, (%rax)
506 ; SSE-NEXT:    retq
508 ; AVX-LABEL: load_i32_stride8_vf4:
509 ; AVX:       # %bb.0:
510 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax
511 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %r10
512 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %r11
513 ; AVX-NEXT:    vmovaps (%rdi), %ymm0
514 ; AVX-NEXT:    vmovaps 32(%rdi), %ymm1
515 ; AVX-NEXT:    vmovaps 64(%rdi), %ymm2
516 ; AVX-NEXT:    vmovaps 96(%rdi), %ymm3
517 ; AVX-NEXT:    vmovaps 32(%rdi), %xmm5
518 ; AVX-NEXT:    vmovaps (%rdi), %xmm6
519 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm4 = xmm6[0],xmm5[0],xmm6[1],xmm5[1]
520 ; AVX-NEXT:    vmovaps 96(%rdi), %xmm7
521 ; AVX-NEXT:    vmovaps 64(%rdi), %xmm8
522 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm9 = xmm8[0],xmm7[0],xmm8[1],xmm7[1]
523 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm4 = xmm4[0],xmm9[0]
524 ; AVX-NEXT:    vshufps {{.*#+}} xmm10 = xmm6[1,1,1,1]
525 ; AVX-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0],xmm5[1],xmm10[2,3]
526 ; AVX-NEXT:    vblendps {{.*#+}} xmm9 = xmm10[0,1],xmm9[2,3]
527 ; AVX-NEXT:    vshufps {{.*#+}} xmm10 = xmm7[2,2,2,2]
528 ; AVX-NEXT:    vblendps {{.*#+}} xmm10 = xmm8[0,1,2],xmm10[3]
529 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm6[2],xmm5[2],xmm6[3],xmm5[3]
530 ; AVX-NEXT:    vblendps {{.*#+}} xmm6 = xmm5[0,1],xmm10[2,3]
531 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm7 = xmm8[2],xmm7[2],xmm8[3],xmm7[3]
532 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm5 = xmm5[1],xmm7[1]
533 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm7 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
534 ; AVX-NEXT:    vshufps {{.*#+}} ymm7 = ymm7[0,1,2,0,4,5,6,4]
535 ; AVX-NEXT:    vextractf128 $1, %ymm7, %xmm7
536 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm8 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]
537 ; AVX-NEXT:    vextractf128 $1, %ymm8, %xmm8
538 ; AVX-NEXT:    vblendps {{.*#+}} xmm7 = xmm8[0,1],xmm7[2,3]
539 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm8 = ymm2[0],ymm3[0],ymm2[1],ymm3[1],ymm2[4],ymm3[4],ymm2[5],ymm3[5]
540 ; AVX-NEXT:    vextractf128 $1, %ymm8, %xmm8
541 ; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm1[1,0],ymm0[1,0],ymm1[5,4],ymm0[5,4]
542 ; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm10[2,0,2,3,6,4,6,7]
543 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
544 ; AVX-NEXT:    vblendps {{.*#+}} xmm8 = xmm10[0,1],xmm8[2,3]
545 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm10 = ymm3[1],ymm2[1],ymm3[3],ymm2[3]
546 ; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm10[0,1,2,0,4,5,6,4]
547 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
548 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm11 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
549 ; AVX-NEXT:    vextractf128 $1, %ymm11, %xmm11
550 ; AVX-NEXT:    vblendps {{.*#+}} xmm10 = xmm11[0,1],xmm10[2,3]
551 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm2[2],ymm3[2],ymm2[3],ymm3[3],ymm2[6],ymm3[6],ymm2[7],ymm3[7]
552 ; AVX-NEXT:    vextractf128 $1, %ymm2, %xmm2
553 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[3,0],ymm0[3,0],ymm1[7,4],ymm0[7,4]
554 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,0,2,3,6,4,6,7]
555 ; AVX-NEXT:    vextractf128 $1, %ymm0, %xmm0
556 ; AVX-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm2[2,3]
557 ; AVX-NEXT:    vmovaps %xmm4, (%rsi)
558 ; AVX-NEXT:    vmovaps %xmm9, (%rdx)
559 ; AVX-NEXT:    vmovaps %xmm6, (%rcx)
560 ; AVX-NEXT:    vmovaps %xmm5, (%r8)
561 ; AVX-NEXT:    vmovaps %xmm7, (%r9)
562 ; AVX-NEXT:    vmovaps %xmm8, (%r11)
563 ; AVX-NEXT:    vmovaps %xmm10, (%r10)
564 ; AVX-NEXT:    vmovaps %xmm0, (%rax)
565 ; AVX-NEXT:    vzeroupper
566 ; AVX-NEXT:    retq
568 ; AVX2-LABEL: load_i32_stride8_vf4:
569 ; AVX2:       # %bb.0:
570 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rax
571 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %r10
572 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %r11
573 ; AVX2-NEXT:    vmovaps 96(%rdi), %ymm0
574 ; AVX2-NEXT:    vmovaps 64(%rdi), %ymm1
575 ; AVX2-NEXT:    vmovaps 32(%rdi), %ymm2
576 ; AVX2-NEXT:    vmovaps (%rdi), %ymm3
577 ; AVX2-NEXT:    vmovaps 96(%rdi), %xmm4
578 ; AVX2-NEXT:    vbroadcastss %xmm4, %xmm5
579 ; AVX2-NEXT:    vmovaps (%rdi), %xmm6
580 ; AVX2-NEXT:    vmovaps 32(%rdi), %xmm7
581 ; AVX2-NEXT:    vmovaps 64(%rdi), %xmm8
582 ; AVX2-NEXT:    vbroadcastss %xmm8, %xmm9
583 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm9[0],xmm5[0],xmm9[1],xmm5[1]
584 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm9 = xmm6[0],xmm7[0],xmm6[1],xmm7[1]
585 ; AVX2-NEXT:    vblendps {{.*#+}} xmm5 = xmm9[0,1],xmm5[2,3]
586 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm9 = xmm8[0],xmm4[0],xmm8[1],xmm4[1]
587 ; AVX2-NEXT:    vshufps {{.*#+}} xmm10 = xmm6[1,1,1,1]
588 ; AVX2-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0],xmm7[1],xmm10[2,3]
589 ; AVX2-NEXT:    vblendps {{.*#+}} xmm9 = xmm10[0,1],xmm9[2,3]
590 ; AVX2-NEXT:    vshufps {{.*#+}} xmm10 = xmm4[2,2,2,2]
591 ; AVX2-NEXT:    vblendps {{.*#+}} xmm10 = xmm8[0,1,2],xmm10[3]
592 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm6 = xmm6[2],xmm7[2],xmm6[3],xmm7[3]
593 ; AVX2-NEXT:    vblendps {{.*#+}} xmm7 = xmm6[0,1],xmm10[2,3]
594 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm8[2],xmm4[2],xmm8[3],xmm4[3]
595 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm4 = xmm6[1],xmm4[1]
596 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm6 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
597 ; AVX2-NEXT:    vextractf128 $1, %ymm6, %xmm6
598 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm8 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
599 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm10 = ymm8[2,2,2,2]
600 ; AVX2-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0,1],xmm10[2,3]
601 ; AVX2-NEXT:    vextractf128 $1, %ymm8, %xmm8
602 ; AVX2-NEXT:    vshufps {{.*#+}} ymm10 = ymm3[1,1,1,1,5,5,5,5]
603 ; AVX2-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0],ymm2[1],ymm10[2,3,4],ymm2[5],ymm10[6,7]
604 ; AVX2-NEXT:    vextractf128 $1, %ymm10, %xmm10
605 ; AVX2-NEXT:    vblendps {{.*#+}} xmm8 = xmm10[0,1],xmm8[2,3]
606 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm3[2],ymm2[2],ymm3[3],ymm2[3],ymm3[6],ymm2[6],ymm3[7],ymm2[7]
607 ; AVX2-NEXT:    vextractf128 $1, %ymm2, %xmm3
608 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm0 = ymm1[2],ymm0[2],ymm1[3],ymm0[3],ymm1[6],ymm0[6],ymm1[7],ymm0[7]
609 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm0[2,2,2,2]
610 ; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm3[0,1],xmm1[2,3]
611 ; AVX2-NEXT:    vextractf128 $1, %ymm0, %xmm0
612 ; AVX2-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[2,3,2,3,6,7,6,7]
613 ; AVX2-NEXT:    vextractf128 $1, %ymm2, %xmm2
614 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm2[0,1],xmm0[2,3]
615 ; AVX2-NEXT:    vmovaps %xmm5, (%rsi)
616 ; AVX2-NEXT:    vmovaps %xmm9, (%rdx)
617 ; AVX2-NEXT:    vmovaps %xmm7, (%rcx)
618 ; AVX2-NEXT:    vmovaps %xmm4, (%r8)
619 ; AVX2-NEXT:    vmovaps %xmm6, (%r9)
620 ; AVX2-NEXT:    vmovaps %xmm8, (%r11)
621 ; AVX2-NEXT:    vmovaps %xmm1, (%r10)
622 ; AVX2-NEXT:    vmovaps %xmm0, (%rax)
623 ; AVX2-NEXT:    vzeroupper
624 ; AVX2-NEXT:    retq
626 ; AVX2-FP-LABEL: load_i32_stride8_vf4:
627 ; AVX2-FP:       # %bb.0:
628 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
629 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
630 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %r11
631 ; AVX2-FP-NEXT:    vmovaps 96(%rdi), %ymm0
632 ; AVX2-FP-NEXT:    vmovaps 64(%rdi), %ymm1
633 ; AVX2-FP-NEXT:    vmovaps 32(%rdi), %ymm2
634 ; AVX2-FP-NEXT:    vmovaps (%rdi), %ymm3
635 ; AVX2-FP-NEXT:    vmovaps 96(%rdi), %xmm4
636 ; AVX2-FP-NEXT:    vbroadcastss %xmm4, %xmm5
637 ; AVX2-FP-NEXT:    vmovaps (%rdi), %xmm6
638 ; AVX2-FP-NEXT:    vmovaps 32(%rdi), %xmm7
639 ; AVX2-FP-NEXT:    vmovaps 64(%rdi), %xmm8
640 ; AVX2-FP-NEXT:    vbroadcastss %xmm8, %xmm9
641 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm9[0],xmm5[0],xmm9[1],xmm5[1]
642 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm9 = xmm6[0],xmm7[0],xmm6[1],xmm7[1]
643 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm5 = xmm9[0,1],xmm5[2,3]
644 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm9 = xmm8[0],xmm4[0],xmm8[1],xmm4[1]
645 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm10 = xmm6[1,1,1,1]
646 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0],xmm7[1],xmm10[2,3]
647 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm9 = xmm10[0,1],xmm9[2,3]
648 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm10 = xmm4[2,2,2,2]
649 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm10 = xmm8[0,1,2],xmm10[3]
650 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm6 = xmm6[2],xmm7[2],xmm6[3],xmm7[3]
651 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm7 = xmm6[0,1],xmm10[2,3]
652 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm8[2],xmm4[2],xmm8[3],xmm4[3]
653 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm4 = xmm6[1],xmm4[1]
654 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm6 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
655 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm6, %xmm6
656 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm8 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
657 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm10 = ymm8[2,2,2,2]
658 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0,1],xmm10[2,3]
659 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm8, %xmm8
660 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm10 = ymm3[1,1,1,1,5,5,5,5]
661 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0],ymm2[1],ymm10[2,3,4],ymm2[5],ymm10[6,7]
662 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm10, %xmm10
663 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm8 = xmm10[0,1],xmm8[2,3]
664 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm3[2],ymm2[2],ymm3[3],ymm2[3],ymm3[6],ymm2[6],ymm3[7],ymm2[7]
665 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm2, %xmm3
666 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm0 = ymm1[2],ymm0[2],ymm1[3],ymm0[3],ymm1[6],ymm0[6],ymm1[7],ymm0[7]
667 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm0[2,2,2,2]
668 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm3[0,1],xmm1[2,3]
669 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm0, %xmm0
670 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[2,3,2,3,6,7,6,7]
671 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm2, %xmm2
672 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm2[0,1],xmm0[2,3]
673 ; AVX2-FP-NEXT:    vmovaps %xmm5, (%rsi)
674 ; AVX2-FP-NEXT:    vmovaps %xmm9, (%rdx)
675 ; AVX2-FP-NEXT:    vmovaps %xmm7, (%rcx)
676 ; AVX2-FP-NEXT:    vmovaps %xmm4, (%r8)
677 ; AVX2-FP-NEXT:    vmovaps %xmm6, (%r9)
678 ; AVX2-FP-NEXT:    vmovaps %xmm8, (%r11)
679 ; AVX2-FP-NEXT:    vmovaps %xmm1, (%r10)
680 ; AVX2-FP-NEXT:    vmovaps %xmm0, (%rax)
681 ; AVX2-FP-NEXT:    vzeroupper
682 ; AVX2-FP-NEXT:    retq
684 ; AVX2-FCP-LABEL: load_i32_stride8_vf4:
685 ; AVX2-FCP:       # %bb.0:
686 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
687 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
688 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11
689 ; AVX2-FCP-NEXT:    vmovaps 96(%rdi), %ymm0
690 ; AVX2-FCP-NEXT:    vmovaps 64(%rdi), %ymm1
691 ; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %ymm2
692 ; AVX2-FCP-NEXT:    vmovaps (%rdi), %ymm3
693 ; AVX2-FCP-NEXT:    vmovaps 96(%rdi), %xmm4
694 ; AVX2-FCP-NEXT:    vbroadcastss %xmm4, %xmm5
695 ; AVX2-FCP-NEXT:    vmovaps (%rdi), %xmm6
696 ; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %xmm7
697 ; AVX2-FCP-NEXT:    vmovaps 64(%rdi), %xmm8
698 ; AVX2-FCP-NEXT:    vbroadcastss %xmm8, %xmm9
699 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm9[0],xmm5[0],xmm9[1],xmm5[1]
700 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm9 = xmm6[0],xmm7[0],xmm6[1],xmm7[1]
701 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm5 = xmm9[0,1],xmm5[2,3]
702 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm9 = xmm8[0],xmm4[0],xmm8[1],xmm4[1]
703 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm10 = xmm6[1,1,1,1]
704 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0],xmm7[1],xmm10[2,3]
705 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm9 = xmm10[0,1],xmm9[2,3]
706 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm10 = xmm4[2,2,2,2]
707 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm10 = xmm8[0,1,2],xmm10[3]
708 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm6 = xmm6[2],xmm7[2],xmm6[3],xmm7[3]
709 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm7 = xmm6[0,1],xmm10[2,3]
710 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm8[2],xmm4[2],xmm8[3],xmm4[3]
711 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm4 = xmm6[1],xmm4[1]
712 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm6 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
713 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm6, %xmm6
714 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm8 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
715 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm10 = ymm8[2,2,2,2]
716 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0,1],xmm10[2,3]
717 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm8, %xmm8
718 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm10 = ymm3[1,1,1,1,5,5,5,5]
719 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0],ymm2[1],ymm10[2,3,4],ymm2[5],ymm10[6,7]
720 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm10, %xmm10
721 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm8 = xmm10[0,1],xmm8[2,3]
722 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm3[2],ymm2[2],ymm3[3],ymm2[3],ymm3[6],ymm2[6],ymm3[7],ymm2[7]
723 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm2, %xmm3
724 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm0 = ymm1[2],ymm0[2],ymm1[3],ymm0[3],ymm1[6],ymm0[6],ymm1[7],ymm0[7]
725 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm0[2,2,2,2]
726 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm3[0,1],xmm1[2,3]
727 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm0, %xmm0
728 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[2,3,2,3,6,7,6,7]
729 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm2, %xmm2
730 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm2[0,1],xmm0[2,3]
731 ; AVX2-FCP-NEXT:    vmovaps %xmm5, (%rsi)
732 ; AVX2-FCP-NEXT:    vmovaps %xmm9, (%rdx)
733 ; AVX2-FCP-NEXT:    vmovaps %xmm7, (%rcx)
734 ; AVX2-FCP-NEXT:    vmovaps %xmm4, (%r8)
735 ; AVX2-FCP-NEXT:    vmovaps %xmm6, (%r9)
736 ; AVX2-FCP-NEXT:    vmovaps %xmm8, (%r11)
737 ; AVX2-FCP-NEXT:    vmovaps %xmm1, (%r10)
738 ; AVX2-FCP-NEXT:    vmovaps %xmm0, (%rax)
739 ; AVX2-FCP-NEXT:    vzeroupper
740 ; AVX2-FCP-NEXT:    retq
742 ; AVX512-LABEL: load_i32_stride8_vf4:
743 ; AVX512:       # %bb.0:
744 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax
745 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %r10
746 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %r11
747 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} xmm0 = [0,8,16,24]
748 ; AVX512-NEXT:    vmovdqa64 (%rdi), %zmm1
749 ; AVX512-NEXT:    vmovdqa64 64(%rdi), %zmm2
750 ; AVX512-NEXT:    vpermi2d %zmm2, %zmm1, %zmm0
751 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} xmm3 = [1,9,17,25]
752 ; AVX512-NEXT:    vpermi2d %zmm2, %zmm1, %zmm3
753 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} xmm4 = [2,10,18,26]
754 ; AVX512-NEXT:    vpermi2d %zmm2, %zmm1, %zmm4
755 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} xmm5 = [3,11,19,27]
756 ; AVX512-NEXT:    vpermi2d %zmm2, %zmm1, %zmm5
757 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} xmm6 = [4,12,20,28]
758 ; AVX512-NEXT:    vpermi2d %zmm2, %zmm1, %zmm6
759 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} xmm7 = [5,13,21,29]
760 ; AVX512-NEXT:    vpermi2d %zmm2, %zmm1, %zmm7
761 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} xmm8 = [6,14,22,30]
762 ; AVX512-NEXT:    vpermi2d %zmm2, %zmm1, %zmm8
763 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} xmm9 = [7,15,23,31]
764 ; AVX512-NEXT:    vpermi2d %zmm2, %zmm1, %zmm9
765 ; AVX512-NEXT:    vmovdqa %xmm0, (%rsi)
766 ; AVX512-NEXT:    vmovdqa %xmm3, (%rdx)
767 ; AVX512-NEXT:    vmovdqa %xmm4, (%rcx)
768 ; AVX512-NEXT:    vmovdqa %xmm5, (%r8)
769 ; AVX512-NEXT:    vmovdqa %xmm6, (%r9)
770 ; AVX512-NEXT:    vmovdqa %xmm7, (%r11)
771 ; AVX512-NEXT:    vmovdqa %xmm8, (%r10)
772 ; AVX512-NEXT:    vmovdqa %xmm9, (%rax)
773 ; AVX512-NEXT:    vzeroupper
774 ; AVX512-NEXT:    retq
776 ; AVX512-FCP-LABEL: load_i32_stride8_vf4:
777 ; AVX512-FCP:       # %bb.0:
778 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
779 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
780 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11
781 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm0 = [0,8,16,24]
782 ; AVX512-FCP-NEXT:    vmovdqa64 (%rdi), %zmm1
783 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm2
784 ; AVX512-FCP-NEXT:    vpermi2d %zmm2, %zmm1, %zmm0
785 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm3 = [1,9,17,25]
786 ; AVX512-FCP-NEXT:    vpermi2d %zmm2, %zmm1, %zmm3
787 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm4 = [2,10,18,26]
788 ; AVX512-FCP-NEXT:    vpermi2d %zmm2, %zmm1, %zmm4
789 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm5 = [3,11,19,27]
790 ; AVX512-FCP-NEXT:    vpermi2d %zmm2, %zmm1, %zmm5
791 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm6 = [4,12,20,28]
792 ; AVX512-FCP-NEXT:    vpermi2d %zmm2, %zmm1, %zmm6
793 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm7 = [5,13,21,29]
794 ; AVX512-FCP-NEXT:    vpermi2d %zmm2, %zmm1, %zmm7
795 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm8 = [6,14,22,30]
796 ; AVX512-FCP-NEXT:    vpermi2d %zmm2, %zmm1, %zmm8
797 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm9 = [7,15,23,31]
798 ; AVX512-FCP-NEXT:    vpermi2d %zmm2, %zmm1, %zmm9
799 ; AVX512-FCP-NEXT:    vmovdqa %xmm0, (%rsi)
800 ; AVX512-FCP-NEXT:    vmovdqa %xmm3, (%rdx)
801 ; AVX512-FCP-NEXT:    vmovdqa %xmm4, (%rcx)
802 ; AVX512-FCP-NEXT:    vmovdqa %xmm5, (%r8)
803 ; AVX512-FCP-NEXT:    vmovdqa %xmm6, (%r9)
804 ; AVX512-FCP-NEXT:    vmovdqa %xmm7, (%r11)
805 ; AVX512-FCP-NEXT:    vmovdqa %xmm8, (%r10)
806 ; AVX512-FCP-NEXT:    vmovdqa %xmm9, (%rax)
807 ; AVX512-FCP-NEXT:    vzeroupper
808 ; AVX512-FCP-NEXT:    retq
810 ; AVX512DQ-LABEL: load_i32_stride8_vf4:
811 ; AVX512DQ:       # %bb.0:
812 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %rax
813 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %r10
814 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %r11
815 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} xmm0 = [0,8,16,24]
816 ; AVX512DQ-NEXT:    vmovdqa64 (%rdi), %zmm1
817 ; AVX512DQ-NEXT:    vmovdqa64 64(%rdi), %zmm2
818 ; AVX512DQ-NEXT:    vpermi2d %zmm2, %zmm1, %zmm0
819 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} xmm3 = [1,9,17,25]
820 ; AVX512DQ-NEXT:    vpermi2d %zmm2, %zmm1, %zmm3
821 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} xmm4 = [2,10,18,26]
822 ; AVX512DQ-NEXT:    vpermi2d %zmm2, %zmm1, %zmm4
823 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} xmm5 = [3,11,19,27]
824 ; AVX512DQ-NEXT:    vpermi2d %zmm2, %zmm1, %zmm5
825 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} xmm6 = [4,12,20,28]
826 ; AVX512DQ-NEXT:    vpermi2d %zmm2, %zmm1, %zmm6
827 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} xmm7 = [5,13,21,29]
828 ; AVX512DQ-NEXT:    vpermi2d %zmm2, %zmm1, %zmm7
829 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} xmm8 = [6,14,22,30]
830 ; AVX512DQ-NEXT:    vpermi2d %zmm2, %zmm1, %zmm8
831 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} xmm9 = [7,15,23,31]
832 ; AVX512DQ-NEXT:    vpermi2d %zmm2, %zmm1, %zmm9
833 ; AVX512DQ-NEXT:    vmovdqa %xmm0, (%rsi)
834 ; AVX512DQ-NEXT:    vmovdqa %xmm3, (%rdx)
835 ; AVX512DQ-NEXT:    vmovdqa %xmm4, (%rcx)
836 ; AVX512DQ-NEXT:    vmovdqa %xmm5, (%r8)
837 ; AVX512DQ-NEXT:    vmovdqa %xmm6, (%r9)
838 ; AVX512DQ-NEXT:    vmovdqa %xmm7, (%r11)
839 ; AVX512DQ-NEXT:    vmovdqa %xmm8, (%r10)
840 ; AVX512DQ-NEXT:    vmovdqa %xmm9, (%rax)
841 ; AVX512DQ-NEXT:    vzeroupper
842 ; AVX512DQ-NEXT:    retq
844 ; AVX512DQ-FCP-LABEL: load_i32_stride8_vf4:
845 ; AVX512DQ-FCP:       # %bb.0:
846 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
847 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
848 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11
849 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm0 = [0,8,16,24]
850 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rdi), %zmm1
851 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm2
852 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm2, %zmm1, %zmm0
853 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm3 = [1,9,17,25]
854 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm2, %zmm1, %zmm3
855 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm4 = [2,10,18,26]
856 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm2, %zmm1, %zmm4
857 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm5 = [3,11,19,27]
858 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm2, %zmm1, %zmm5
859 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm6 = [4,12,20,28]
860 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm2, %zmm1, %zmm6
861 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm7 = [5,13,21,29]
862 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm2, %zmm1, %zmm7
863 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm8 = [6,14,22,30]
864 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm2, %zmm1, %zmm8
865 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm9 = [7,15,23,31]
866 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm2, %zmm1, %zmm9
867 ; AVX512DQ-FCP-NEXT:    vmovdqa %xmm0, (%rsi)
868 ; AVX512DQ-FCP-NEXT:    vmovdqa %xmm3, (%rdx)
869 ; AVX512DQ-FCP-NEXT:    vmovdqa %xmm4, (%rcx)
870 ; AVX512DQ-FCP-NEXT:    vmovdqa %xmm5, (%r8)
871 ; AVX512DQ-FCP-NEXT:    vmovdqa %xmm6, (%r9)
872 ; AVX512DQ-FCP-NEXT:    vmovdqa %xmm7, (%r11)
873 ; AVX512DQ-FCP-NEXT:    vmovdqa %xmm8, (%r10)
874 ; AVX512DQ-FCP-NEXT:    vmovdqa %xmm9, (%rax)
875 ; AVX512DQ-FCP-NEXT:    vzeroupper
876 ; AVX512DQ-FCP-NEXT:    retq
878 ; AVX512BW-LABEL: load_i32_stride8_vf4:
879 ; AVX512BW:       # %bb.0:
880 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
881 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %r10
882 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %r11
883 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} xmm0 = [0,8,16,24]
884 ; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm1
885 ; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %zmm2
886 ; AVX512BW-NEXT:    vpermi2d %zmm2, %zmm1, %zmm0
887 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} xmm3 = [1,9,17,25]
888 ; AVX512BW-NEXT:    vpermi2d %zmm2, %zmm1, %zmm3
889 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} xmm4 = [2,10,18,26]
890 ; AVX512BW-NEXT:    vpermi2d %zmm2, %zmm1, %zmm4
891 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} xmm5 = [3,11,19,27]
892 ; AVX512BW-NEXT:    vpermi2d %zmm2, %zmm1, %zmm5
893 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} xmm6 = [4,12,20,28]
894 ; AVX512BW-NEXT:    vpermi2d %zmm2, %zmm1, %zmm6
895 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} xmm7 = [5,13,21,29]
896 ; AVX512BW-NEXT:    vpermi2d %zmm2, %zmm1, %zmm7
897 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} xmm8 = [6,14,22,30]
898 ; AVX512BW-NEXT:    vpermi2d %zmm2, %zmm1, %zmm8
899 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} xmm9 = [7,15,23,31]
900 ; AVX512BW-NEXT:    vpermi2d %zmm2, %zmm1, %zmm9
901 ; AVX512BW-NEXT:    vmovdqa %xmm0, (%rsi)
902 ; AVX512BW-NEXT:    vmovdqa %xmm3, (%rdx)
903 ; AVX512BW-NEXT:    vmovdqa %xmm4, (%rcx)
904 ; AVX512BW-NEXT:    vmovdqa %xmm5, (%r8)
905 ; AVX512BW-NEXT:    vmovdqa %xmm6, (%r9)
906 ; AVX512BW-NEXT:    vmovdqa %xmm7, (%r11)
907 ; AVX512BW-NEXT:    vmovdqa %xmm8, (%r10)
908 ; AVX512BW-NEXT:    vmovdqa %xmm9, (%rax)
909 ; AVX512BW-NEXT:    vzeroupper
910 ; AVX512BW-NEXT:    retq
912 ; AVX512BW-FCP-LABEL: load_i32_stride8_vf4:
913 ; AVX512BW-FCP:       # %bb.0:
914 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
915 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
916 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11
917 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm0 = [0,8,16,24]
918 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm1
919 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm2
920 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm2, %zmm1, %zmm0
921 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm3 = [1,9,17,25]
922 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm2, %zmm1, %zmm3
923 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm4 = [2,10,18,26]
924 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm2, %zmm1, %zmm4
925 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm5 = [3,11,19,27]
926 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm2, %zmm1, %zmm5
927 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm6 = [4,12,20,28]
928 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm2, %zmm1, %zmm6
929 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm7 = [5,13,21,29]
930 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm2, %zmm1, %zmm7
931 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm8 = [6,14,22,30]
932 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm2, %zmm1, %zmm8
933 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm9 = [7,15,23,31]
934 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm2, %zmm1, %zmm9
935 ; AVX512BW-FCP-NEXT:    vmovdqa %xmm0, (%rsi)
936 ; AVX512BW-FCP-NEXT:    vmovdqa %xmm3, (%rdx)
937 ; AVX512BW-FCP-NEXT:    vmovdqa %xmm4, (%rcx)
938 ; AVX512BW-FCP-NEXT:    vmovdqa %xmm5, (%r8)
939 ; AVX512BW-FCP-NEXT:    vmovdqa %xmm6, (%r9)
940 ; AVX512BW-FCP-NEXT:    vmovdqa %xmm7, (%r11)
941 ; AVX512BW-FCP-NEXT:    vmovdqa %xmm8, (%r10)
942 ; AVX512BW-FCP-NEXT:    vmovdqa %xmm9, (%rax)
943 ; AVX512BW-FCP-NEXT:    vzeroupper
944 ; AVX512BW-FCP-NEXT:    retq
946 ; AVX512DQ-BW-LABEL: load_i32_stride8_vf4:
947 ; AVX512DQ-BW:       # %bb.0:
948 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
949 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %r10
950 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %r11
951 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} xmm0 = [0,8,16,24]
952 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rdi), %zmm1
953 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rdi), %zmm2
954 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm2, %zmm1, %zmm0
955 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} xmm3 = [1,9,17,25]
956 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm2, %zmm1, %zmm3
957 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} xmm4 = [2,10,18,26]
958 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm2, %zmm1, %zmm4
959 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} xmm5 = [3,11,19,27]
960 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm2, %zmm1, %zmm5
961 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} xmm6 = [4,12,20,28]
962 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm2, %zmm1, %zmm6
963 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} xmm7 = [5,13,21,29]
964 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm2, %zmm1, %zmm7
965 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} xmm8 = [6,14,22,30]
966 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm2, %zmm1, %zmm8
967 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} xmm9 = [7,15,23,31]
968 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm2, %zmm1, %zmm9
969 ; AVX512DQ-BW-NEXT:    vmovdqa %xmm0, (%rsi)
970 ; AVX512DQ-BW-NEXT:    vmovdqa %xmm3, (%rdx)
971 ; AVX512DQ-BW-NEXT:    vmovdqa %xmm4, (%rcx)
972 ; AVX512DQ-BW-NEXT:    vmovdqa %xmm5, (%r8)
973 ; AVX512DQ-BW-NEXT:    vmovdqa %xmm6, (%r9)
974 ; AVX512DQ-BW-NEXT:    vmovdqa %xmm7, (%r11)
975 ; AVX512DQ-BW-NEXT:    vmovdqa %xmm8, (%r10)
976 ; AVX512DQ-BW-NEXT:    vmovdqa %xmm9, (%rax)
977 ; AVX512DQ-BW-NEXT:    vzeroupper
978 ; AVX512DQ-BW-NEXT:    retq
980 ; AVX512DQ-BW-FCP-LABEL: load_i32_stride8_vf4:
981 ; AVX512DQ-BW-FCP:       # %bb.0:
982 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
983 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
984 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11
985 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm0 = [0,8,16,24]
986 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm1
987 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm2
988 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm2, %zmm1, %zmm0
989 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm3 = [1,9,17,25]
990 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm2, %zmm1, %zmm3
991 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm4 = [2,10,18,26]
992 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm2, %zmm1, %zmm4
993 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm5 = [3,11,19,27]
994 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm2, %zmm1, %zmm5
995 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm6 = [4,12,20,28]
996 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm2, %zmm1, %zmm6
997 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm7 = [5,13,21,29]
998 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm2, %zmm1, %zmm7
999 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm8 = [6,14,22,30]
1000 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm2, %zmm1, %zmm8
1001 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm9 = [7,15,23,31]
1002 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm2, %zmm1, %zmm9
1003 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa %xmm0, (%rsi)
1004 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa %xmm3, (%rdx)
1005 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa %xmm4, (%rcx)
1006 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa %xmm5, (%r8)
1007 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa %xmm6, (%r9)
1008 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa %xmm7, (%r11)
1009 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa %xmm8, (%r10)
1010 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa %xmm9, (%rax)
1011 ; AVX512DQ-BW-FCP-NEXT:    vzeroupper
1012 ; AVX512DQ-BW-FCP-NEXT:    retq
1013   %wide.vec = load <32 x i32>, ptr %in.vec, align 64
1014   %strided.vec0 = shufflevector <32 x i32> %wide.vec, <32 x i32> poison, <4 x i32> <i32 0, i32 8, i32 16, i32 24>
1015   %strided.vec1 = shufflevector <32 x i32> %wide.vec, <32 x i32> poison, <4 x i32> <i32 1, i32 9, i32 17, i32 25>
1016   %strided.vec2 = shufflevector <32 x i32> %wide.vec, <32 x i32> poison, <4 x i32> <i32 2, i32 10, i32 18, i32 26>
1017   %strided.vec3 = shufflevector <32 x i32> %wide.vec, <32 x i32> poison, <4 x i32> <i32 3, i32 11, i32 19, i32 27>
1018   %strided.vec4 = shufflevector <32 x i32> %wide.vec, <32 x i32> poison, <4 x i32> <i32 4, i32 12, i32 20, i32 28>
1019   %strided.vec5 = shufflevector <32 x i32> %wide.vec, <32 x i32> poison, <4 x i32> <i32 5, i32 13, i32 21, i32 29>
1020   %strided.vec6 = shufflevector <32 x i32> %wide.vec, <32 x i32> poison, <4 x i32> <i32 6, i32 14, i32 22, i32 30>
1021   %strided.vec7 = shufflevector <32 x i32> %wide.vec, <32 x i32> poison, <4 x i32> <i32 7, i32 15, i32 23, i32 31>
1022   store <4 x i32> %strided.vec0, ptr %out.vec0, align 64
1023   store <4 x i32> %strided.vec1, ptr %out.vec1, align 64
1024   store <4 x i32> %strided.vec2, ptr %out.vec2, align 64
1025   store <4 x i32> %strided.vec3, ptr %out.vec3, align 64
1026   store <4 x i32> %strided.vec4, ptr %out.vec4, align 64
1027   store <4 x i32> %strided.vec5, ptr %out.vec5, align 64
1028   store <4 x i32> %strided.vec6, ptr %out.vec6, align 64
1029   store <4 x i32> %strided.vec7, ptr %out.vec7, align 64
1030   ret void
1033 define void @load_i32_stride8_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, ptr %out.vec7) nounwind {
1034 ; SSE-LABEL: load_i32_stride8_vf8:
1035 ; SSE:       # %bb.0:
1036 ; SSE-NEXT:    movaps 112(%rdi), %xmm15
1037 ; SSE-NEXT:    movaps 176(%rdi), %xmm4
1038 ; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1039 ; SSE-NEXT:    movaps 144(%rdi), %xmm9
1040 ; SSE-NEXT:    movaps (%rdi), %xmm10
1041 ; SSE-NEXT:    movaps 32(%rdi), %xmm1
1042 ; SSE-NEXT:    movaps 96(%rdi), %xmm13
1043 ; SSE-NEXT:    movaps 64(%rdi), %xmm11
1044 ; SSE-NEXT:    movaps 160(%rdi), %xmm2
1045 ; SSE-NEXT:    movaps 128(%rdi), %xmm6
1046 ; SSE-NEXT:    movaps 224(%rdi), %xmm12
1047 ; SSE-NEXT:    movaps 192(%rdi), %xmm0
1048 ; SSE-NEXT:    movaps %xmm0, %xmm8
1049 ; SSE-NEXT:    unpcklps {{.*#+}} xmm8 = xmm8[0],xmm12[0],xmm8[1],xmm12[1]
1050 ; SSE-NEXT:    movaps %xmm6, %xmm5
1051 ; SSE-NEXT:    unpcklps {{.*#+}} xmm5 = xmm5[0],xmm2[0],xmm5[1],xmm2[1]
1052 ; SSE-NEXT:    movaps %xmm5, %xmm7
1053 ; SSE-NEXT:    movlhps {{.*#+}} xmm7 = xmm7[0],xmm8[0]
1054 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1055 ; SSE-NEXT:    movaps %xmm11, %xmm14
1056 ; SSE-NEXT:    unpcklps {{.*#+}} xmm14 = xmm14[0],xmm13[0],xmm14[1],xmm13[1]
1057 ; SSE-NEXT:    movaps %xmm10, %xmm7
1058 ; SSE-NEXT:    unpcklps {{.*#+}} xmm7 = xmm7[0],xmm1[0],xmm7[1],xmm1[1]
1059 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm8[1]
1060 ; SSE-NEXT:    movaps %xmm7, %xmm8
1061 ; SSE-NEXT:    movlhps {{.*#+}} xmm8 = xmm8[0],xmm14[0]
1062 ; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1063 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm7 = xmm7[1],xmm14[1]
1064 ; SSE-NEXT:    movaps 240(%rdi), %xmm14
1065 ; SSE-NEXT:    movaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1066 ; SSE-NEXT:    unpckhps {{.*#+}} xmm0 = xmm0[2],xmm12[2],xmm0[3],xmm12[3]
1067 ; SSE-NEXT:    movaps 208(%rdi), %xmm12
1068 ; SSE-NEXT:    unpckhps {{.*#+}} xmm6 = xmm6[2],xmm2[2],xmm6[3],xmm2[3]
1069 ; SSE-NEXT:    movaps %xmm6, %xmm2
1070 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
1071 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1072 ; SSE-NEXT:    unpckhps {{.*#+}} xmm11 = xmm11[2],xmm13[2],xmm11[3],xmm13[3]
1073 ; SSE-NEXT:    unpckhps {{.*#+}} xmm10 = xmm10[2],xmm1[2],xmm10[3],xmm1[3]
1074 ; SSE-NEXT:    movaps %xmm10, %xmm8
1075 ; SSE-NEXT:    movlhps {{.*#+}} xmm8 = xmm8[0],xmm11[0]
1076 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm6 = xmm6[1],xmm0[1]
1077 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm10 = xmm10[1],xmm11[1]
1078 ; SSE-NEXT:    movaps %xmm12, %xmm0
1079 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm14[0],xmm0[1],xmm14[1]
1080 ; SSE-NEXT:    movaps %xmm9, %xmm11
1081 ; SSE-NEXT:    unpcklps {{.*#+}} xmm11 = xmm11[0],xmm4[0],xmm11[1],xmm4[1]
1082 ; SSE-NEXT:    movaps %xmm11, %xmm13
1083 ; SSE-NEXT:    movlhps {{.*#+}} xmm13 = xmm13[0],xmm0[0]
1084 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm11 = xmm11[1],xmm0[1]
1085 ; SSE-NEXT:    movaps 80(%rdi), %xmm2
1086 ; SSE-NEXT:    movaps %xmm2, %xmm1
1087 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm15[0],xmm1[1],xmm15[1]
1088 ; SSE-NEXT:    movaps 16(%rdi), %xmm0
1089 ; SSE-NEXT:    movaps 48(%rdi), %xmm3
1090 ; SSE-NEXT:    movaps %xmm0, %xmm14
1091 ; SSE-NEXT:    unpcklps {{.*#+}} xmm14 = xmm14[0],xmm3[0],xmm14[1],xmm3[1]
1092 ; SSE-NEXT:    movaps %xmm14, %xmm4
1093 ; SSE-NEXT:    movlhps {{.*#+}} xmm4 = xmm4[0],xmm1[0]
1094 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm14 = xmm14[1],xmm1[1]
1095 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Folded Reload
1096 ; SSE-NEXT:    # xmm12 = xmm12[2],mem[2],xmm12[3],mem[3]
1097 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload
1098 ; SSE-NEXT:    # xmm9 = xmm9[2],mem[2],xmm9[3],mem[3]
1099 ; SSE-NEXT:    unpckhps {{.*#+}} xmm2 = xmm2[2],xmm15[2],xmm2[3],xmm15[3]
1100 ; SSE-NEXT:    unpckhps {{.*#+}} xmm0 = xmm0[2],xmm3[2],xmm0[3],xmm3[3]
1101 ; SSE-NEXT:    movaps %xmm9, %xmm1
1102 ; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm12[0]
1103 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm9 = xmm9[1],xmm12[1]
1104 ; SSE-NEXT:    movaps %xmm0, %xmm3
1105 ; SSE-NEXT:    movlhps {{.*#+}} xmm3 = xmm3[0],xmm2[0]
1106 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
1107 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
1108 ; SSE-NEXT:    movaps %xmm2, (%rsi)
1109 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
1110 ; SSE-NEXT:    movaps %xmm2, 16(%rsi)
1111 ; SSE-NEXT:    movaps %xmm7, (%rdx)
1112 ; SSE-NEXT:    movaps %xmm5, 16(%rdx)
1113 ; SSE-NEXT:    movaps %xmm8, (%rcx)
1114 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
1115 ; SSE-NEXT:    movaps %xmm2, 16(%rcx)
1116 ; SSE-NEXT:    movaps %xmm10, (%r8)
1117 ; SSE-NEXT:    movaps %xmm6, 16(%r8)
1118 ; SSE-NEXT:    movaps %xmm4, (%r9)
1119 ; SSE-NEXT:    movaps %xmm13, 16(%r9)
1120 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1121 ; SSE-NEXT:    movaps %xmm14, (%rax)
1122 ; SSE-NEXT:    movaps %xmm11, 16(%rax)
1123 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1124 ; SSE-NEXT:    movaps %xmm3, (%rax)
1125 ; SSE-NEXT:    movaps %xmm1, 16(%rax)
1126 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1127 ; SSE-NEXT:    movaps %xmm9, 16(%rax)
1128 ; SSE-NEXT:    movaps %xmm0, (%rax)
1129 ; SSE-NEXT:    retq
1131 ; AVX-LABEL: load_i32_stride8_vf8:
1132 ; AVX:       # %bb.0:
1133 ; AVX-NEXT:    vmovaps (%rdi), %ymm0
1134 ; AVX-NEXT:    vmovaps 32(%rdi), %ymm1
1135 ; AVX-NEXT:    vmovaps 64(%rdi), %ymm2
1136 ; AVX-NEXT:    vmovaps 96(%rdi), %ymm3
1137 ; AVX-NEXT:    vmovaps 32(%rdi), %xmm8
1138 ; AVX-NEXT:    vmovaps (%rdi), %xmm11
1139 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm4 = xmm11[0],xmm8[0],xmm11[1],xmm8[1]
1140 ; AVX-NEXT:    vmovaps 96(%rdi), %xmm9
1141 ; AVX-NEXT:    vmovaps 64(%rdi), %xmm10
1142 ; AVX-NEXT:    vmovaps 160(%rdi), %xmm14
1143 ; AVX-NEXT:    vmovaps 128(%rdi), %xmm15
1144 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm15[0],xmm14[0],xmm15[1],xmm14[1]
1145 ; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
1146 ; AVX-NEXT:    vmovaps 224(%rdi), %xmm12
1147 ; AVX-NEXT:    vmovaps 192(%rdi), %xmm13
1148 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm6 = xmm13[0],xmm12[0],xmm13[1],xmm12[1]
1149 ; AVX-NEXT:    vshufps {{.*#+}} xmm7 = xmm6[0,1,0,1]
1150 ; AVX-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
1151 ; AVX-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],ymm7[6,7]
1152 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm10[0],xmm9[0],xmm10[1],xmm9[1]
1153 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm4 = xmm4[0],xmm7[0]
1154 ; AVX-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm5[4,5,6,7]
1155 ; AVX-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1156 ; AVX-NEXT:    vshufps {{.*#+}} xmm5 = xmm11[1,1,1,1]
1157 ; AVX-NEXT:    vblendps {{.*#+}} xmm5 = xmm5[0],xmm8[1],xmm5[2,3]
1158 ; AVX-NEXT:    vblendps {{.*#+}} xmm5 = xmm5[0,1],xmm7[2,3]
1159 ; AVX-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
1160 ; AVX-NEXT:    vshufps {{.*#+}} xmm7 = xmm15[1,1,1,1]
1161 ; AVX-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0],xmm14[1],xmm7[2,3]
1162 ; AVX-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
1163 ; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5],ymm6[6,7]
1164 ; AVX-NEXT:    vmovaps 160(%rdi), %ymm6
1165 ; AVX-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm7[4,5,6,7]
1166 ; AVX-NEXT:    vmovaps 128(%rdi), %ymm7
1167 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm8 = xmm11[2],xmm8[2],xmm11[3],xmm8[3]
1168 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm15 = xmm15[2],xmm14[2],xmm15[3],xmm14[3]
1169 ; AVX-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm11
1170 ; AVX-NEXT:    vshufps {{.*#+}} xmm14 = xmm12[2,2,2,2]
1171 ; AVX-NEXT:    vblendps {{.*#+}} xmm14 = xmm13[0,1,2],xmm14[3]
1172 ; AVX-NEXT:    vinsertf128 $1, %xmm14, %ymm0, %ymm14
1173 ; AVX-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1,2,3,4,5],ymm14[6,7]
1174 ; AVX-NEXT:    vshufps {{.*#+}} xmm14 = xmm9[2,2,2,2]
1175 ; AVX-NEXT:    vblendps {{.*#+}} xmm14 = xmm10[0,1,2],xmm14[3]
1176 ; AVX-NEXT:    vblendps {{.*#+}} xmm14 = xmm8[0,1],xmm14[2,3]
1177 ; AVX-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3],ymm11[4,5,6,7]
1178 ; AVX-NEXT:    vmovaps 192(%rdi), %ymm11
1179 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm9 = xmm10[2],xmm9[2],xmm10[3],xmm9[3]
1180 ; AVX-NEXT:    vmovaps 224(%rdi), %ymm10
1181 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm8 = xmm8[1],xmm9[1]
1182 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm9 = xmm13[2],xmm12[2],xmm13[3],xmm12[3]
1183 ; AVX-NEXT:    vinsertf128 $1, %xmm9, %ymm0, %ymm9
1184 ; AVX-NEXT:    vshufps {{.*#+}} xmm12 = xmm15[2,3,2,3]
1185 ; AVX-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm12
1186 ; AVX-NEXT:    vblendps {{.*#+}} ymm9 = ymm12[0,1,2,3,4,5],ymm9[6,7]
1187 ; AVX-NEXT:    vblendps {{.*#+}} ymm9 = ymm8[0,1,2,3],ymm9[4,5,6,7]
1188 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm8 = ymm10[0],ymm11[0],ymm10[2],ymm11[2]
1189 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm12 = ymm7[0],ymm6[0],ymm7[1],ymm6[1],ymm7[4],ymm6[4],ymm7[5],ymm6[5]
1190 ; AVX-NEXT:    vshufps {{.*#+}} ymm8 = ymm12[0,1],ymm8[2,0],ymm12[4,5],ymm8[6,4]
1191 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm12 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
1192 ; AVX-NEXT:    vshufps {{.*#+}} ymm12 = ymm12[0,1,2,0,4,5,6,4]
1193 ; AVX-NEXT:    vextractf128 $1, %ymm12, %xmm12
1194 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm13 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]
1195 ; AVX-NEXT:    vextractf128 $1, %ymm13, %xmm13
1196 ; AVX-NEXT:    vblendps {{.*#+}} xmm12 = xmm13[0,1],xmm12[2,3]
1197 ; AVX-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3],ymm8[4,5,6,7]
1198 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm8 = ymm11[0],ymm10[0],ymm11[1],ymm10[1],ymm11[4],ymm10[4],ymm11[5],ymm10[5]
1199 ; AVX-NEXT:    vshufps {{.*#+}} ymm13 = ymm6[1,0],ymm7[1,0],ymm6[5,4],ymm7[5,4]
1200 ; AVX-NEXT:    vshufps {{.*#+}} ymm8 = ymm13[2,0],ymm8[2,3],ymm13[6,4],ymm8[6,7]
1201 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm13 = ymm2[0],ymm3[0],ymm2[1],ymm3[1],ymm2[4],ymm3[4],ymm2[5],ymm3[5]
1202 ; AVX-NEXT:    vextractf128 $1, %ymm13, %xmm13
1203 ; AVX-NEXT:    vshufps {{.*#+}} ymm15 = ymm1[1,0],ymm0[1,0],ymm1[5,4],ymm0[5,4]
1204 ; AVX-NEXT:    vshufps {{.*#+}} ymm15 = ymm15[2,0,2,3,6,4,6,7]
1205 ; AVX-NEXT:    vextractf128 $1, %ymm15, %xmm15
1206 ; AVX-NEXT:    vblendps {{.*#+}} xmm13 = xmm15[0,1],xmm13[2,3]
1207 ; AVX-NEXT:    vblendps {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
1208 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm13 = ymm10[1],ymm11[1],ymm10[3],ymm11[3]
1209 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm15 = ymm7[2],ymm6[2],ymm7[3],ymm6[3],ymm7[6],ymm6[6],ymm7[7],ymm6[7]
1210 ; AVX-NEXT:    vshufps {{.*#+}} ymm13 = ymm15[0,1],ymm13[2,0],ymm15[4,5],ymm13[6,4]
1211 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm15 = ymm3[1],ymm2[1],ymm3[3],ymm2[3]
1212 ; AVX-NEXT:    vshufps {{.*#+}} ymm15 = ymm15[0,1,2,0,4,5,6,4]
1213 ; AVX-NEXT:    vextractf128 $1, %ymm15, %xmm15
1214 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm4 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
1215 ; AVX-NEXT:    vextractf128 $1, %ymm4, %xmm4
1216 ; AVX-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],xmm15[2,3]
1217 ; AVX-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm13[4,5,6,7]
1218 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm10 = ymm11[2],ymm10[2],ymm11[3],ymm10[3],ymm11[6],ymm10[6],ymm11[7],ymm10[7]
1219 ; AVX-NEXT:    vshufps {{.*#+}} ymm6 = ymm6[3,0],ymm7[3,0],ymm6[7,4],ymm7[7,4]
1220 ; AVX-NEXT:    vshufps {{.*#+}} ymm6 = ymm6[2,0],ymm10[2,3],ymm6[6,4],ymm10[6,7]
1221 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm2[2],ymm3[2],ymm2[3],ymm3[3],ymm2[6],ymm3[6],ymm2[7],ymm3[7]
1222 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[3,0],ymm0[3,0],ymm1[7,4],ymm0[7,4]
1223 ; AVX-NEXT:    vextractf128 $1, %ymm2, %xmm1
1224 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,0,2,3,6,4,6,7]
1225 ; AVX-NEXT:    vextractf128 $1, %ymm0, %xmm0
1226 ; AVX-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
1227 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm6[4,5,6,7]
1228 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
1229 ; AVX-NEXT:    vmovaps %ymm1, (%rsi)
1230 ; AVX-NEXT:    vmovaps %ymm5, (%rdx)
1231 ; AVX-NEXT:    vmovaps %ymm14, (%rcx)
1232 ; AVX-NEXT:    vmovaps %ymm9, (%r8)
1233 ; AVX-NEXT:    vmovaps %ymm12, (%r9)
1234 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1235 ; AVX-NEXT:    vmovaps %ymm8, (%rax)
1236 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1237 ; AVX-NEXT:    vmovaps %ymm4, (%rax)
1238 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1239 ; AVX-NEXT:    vmovaps %ymm0, (%rax)
1240 ; AVX-NEXT:    vzeroupper
1241 ; AVX-NEXT:    retq
1243 ; AVX2-LABEL: load_i32_stride8_vf8:
1244 ; AVX2:       # %bb.0:
1245 ; AVX2-NEXT:    vmovaps 96(%rdi), %ymm0
1246 ; AVX2-NEXT:    vmovaps 64(%rdi), %ymm1
1247 ; AVX2-NEXT:    vmovaps 32(%rdi), %ymm2
1248 ; AVX2-NEXT:    vmovaps (%rdi), %ymm3
1249 ; AVX2-NEXT:    vmovaps 160(%rdi), %xmm7
1250 ; AVX2-NEXT:    vmovaps 128(%rdi), %xmm11
1251 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm4 = xmm11[0],xmm7[0],xmm11[1],xmm7[1]
1252 ; AVX2-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
1253 ; AVX2-NEXT:    vmovaps 224(%rdi), %xmm8
1254 ; AVX2-NEXT:    vbroadcastss %xmm8, %xmm5
1255 ; AVX2-NEXT:    vmovaps 192(%rdi), %xmm10
1256 ; AVX2-NEXT:    vbroadcastss %xmm10, %xmm6
1257 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm6[0],xmm5[0],xmm6[1],xmm5[1]
1258 ; AVX2-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
1259 ; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],ymm5[6,7]
1260 ; AVX2-NEXT:    vmovaps 96(%rdi), %xmm9
1261 ; AVX2-NEXT:    vbroadcastss %xmm9, %xmm5
1262 ; AVX2-NEXT:    vmovaps (%rdi), %xmm13
1263 ; AVX2-NEXT:    vmovaps 32(%rdi), %xmm14
1264 ; AVX2-NEXT:    vmovaps 64(%rdi), %xmm12
1265 ; AVX2-NEXT:    vbroadcastss %xmm12, %xmm6
1266 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm6[0],xmm5[0],xmm6[1],xmm5[1]
1267 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm6 = xmm13[0],xmm14[0],xmm13[1],xmm14[1]
1268 ; AVX2-NEXT:    vblendps {{.*#+}} xmm5 = xmm6[0,1],xmm5[2,3]
1269 ; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1,2,3],ymm4[4,5,6,7]
1270 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm12[0],xmm9[0],xmm12[1],xmm9[1]
1271 ; AVX2-NEXT:    vshufps {{.*#+}} xmm6 = xmm13[1,1,1,1]
1272 ; AVX2-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0],xmm14[1],xmm6[2,3]
1273 ; AVX2-NEXT:    vblendps {{.*#+}} xmm5 = xmm6[0,1],xmm5[2,3]
1274 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm6 = xmm10[0],xmm8[0],xmm10[1],xmm8[1]
1275 ; AVX2-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
1276 ; AVX2-NEXT:    vshufps {{.*#+}} xmm15 = xmm11[1,1,1,1]
1277 ; AVX2-NEXT:    vblendps {{.*#+}} xmm15 = xmm15[0],xmm7[1],xmm15[2,3]
1278 ; AVX2-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm15
1279 ; AVX2-NEXT:    vblendps {{.*#+}} ymm15 = ymm15[0,1,2,3,4,5],ymm6[6,7]
1280 ; AVX2-NEXT:    vmovaps 224(%rdi), %ymm6
1281 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm15[4,5,6,7]
1282 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm15 = xmm11[2],xmm7[2],xmm11[3],xmm7[3]
1283 ; AVX2-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm7
1284 ; AVX2-NEXT:    vshufps {{.*#+}} xmm11 = xmm8[2,2,2,2]
1285 ; AVX2-NEXT:    vblendps {{.*#+}} xmm11 = xmm10[0,1,2],xmm11[3]
1286 ; AVX2-NEXT:    vinsertf128 $1, %xmm11, %ymm0, %ymm11
1287 ; AVX2-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5],ymm11[6,7]
1288 ; AVX2-NEXT:    vmovaps 192(%rdi), %ymm11
1289 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm14 = xmm13[2],xmm14[2],xmm13[3],xmm14[3]
1290 ; AVX2-NEXT:    vshufps {{.*#+}} xmm13 = xmm9[2,2,2,2]
1291 ; AVX2-NEXT:    vblendps {{.*#+}} xmm13 = xmm12[0,1,2],xmm13[3]
1292 ; AVX2-NEXT:    vblendps {{.*#+}} xmm13 = xmm14[0,1],xmm13[2,3]
1293 ; AVX2-NEXT:    vblendps {{.*#+}} ymm7 = ymm13[0,1,2,3],ymm7[4,5,6,7]
1294 ; AVX2-NEXT:    vmovaps 160(%rdi), %ymm13
1295 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm8 = xmm10[2],xmm8[2],xmm10[3],xmm8[3]
1296 ; AVX2-NEXT:    vmovaps 128(%rdi), %ymm10
1297 ; AVX2-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm8
1298 ; AVX2-NEXT:    vshufps {{.*#+}} xmm15 = xmm15[2,3,2,3]
1299 ; AVX2-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm15
1300 ; AVX2-NEXT:    vblendps {{.*#+}} ymm8 = ymm15[0,1,2,3,4,5],ymm8[6,7]
1301 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm9 = xmm12[2],xmm9[2],xmm12[3],xmm9[3]
1302 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm9 = xmm14[1],xmm9[1]
1303 ; AVX2-NEXT:    vblendps {{.*#+}} ymm8 = ymm9[0,1,2,3],ymm8[4,5,6,7]
1304 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm9 = ymm10[0],ymm13[0],ymm10[1],ymm13[1],ymm10[4],ymm13[4],ymm10[5],ymm13[5]
1305 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm12 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
1306 ; AVX2-NEXT:    vextractf128 $1, %ymm12, %xmm12
1307 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm14 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
1308 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm15 = ymm14[2,2,2,2]
1309 ; AVX2-NEXT:    vblendps {{.*#+}} xmm12 = xmm12[0,1],xmm15[2,3]
1310 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm15 = ymm11[0],ymm6[0],ymm11[1],ymm6[1],ymm11[4],ymm6[4],ymm11[5],ymm6[5]
1311 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm9 = ymm9[0],ymm15[0],ymm9[2],ymm15[2]
1312 ; AVX2-NEXT:    vblendps {{.*#+}} ymm9 = ymm12[0,1,2,3],ymm9[4,5,6,7]
1313 ; AVX2-NEXT:    vbroadcastss 148(%rdi), %ymm12
1314 ; AVX2-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3,4],ymm13[5],ymm12[6,7]
1315 ; AVX2-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3,4,5],ymm15[6,7]
1316 ; AVX2-NEXT:    vextractf128 $1, %ymm14, %xmm14
1317 ; AVX2-NEXT:    vshufps {{.*#+}} ymm15 = ymm3[1,1,1,1,5,5,5,5]
1318 ; AVX2-NEXT:    vblendps {{.*#+}} ymm15 = ymm15[0],ymm2[1],ymm15[2,3,4],ymm2[5],ymm15[6,7]
1319 ; AVX2-NEXT:    vextractf128 $1, %ymm15, %xmm15
1320 ; AVX2-NEXT:    vblendps {{.*#+}} xmm14 = xmm15[0,1],xmm14[2,3]
1321 ; AVX2-NEXT:    vblendps {{.*#+}} ymm12 = ymm14[0,1,2,3],ymm12[4,5,6,7]
1322 ; AVX2-NEXT:    vbroadcastss 248(%rdi), %ymm14
1323 ; AVX2-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1,2,3,4,5,6],ymm14[7]
1324 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm10 = ymm10[2],ymm13[2],ymm10[3],ymm13[3],ymm10[6],ymm13[6],ymm10[7],ymm13[7]
1325 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm3[2],ymm2[2],ymm3[3],ymm2[3],ymm3[6],ymm2[6],ymm3[7],ymm2[7]
1326 ; AVX2-NEXT:    vextractf128 $1, %ymm2, %xmm3
1327 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm0 = ymm1[2],ymm0[2],ymm1[3],ymm0[3],ymm1[6],ymm0[6],ymm1[7],ymm0[7]
1328 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm0[2,2,2,2]
1329 ; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm3[0,1],xmm1[2,3]
1330 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm10[0,1,2,3,4,5],ymm11[6,7]
1331 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
1332 ; AVX2-NEXT:    vbroadcastss 220(%rdi), %ymm3
1333 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm3 = ymm3[2],ymm6[2],ymm3[3],ymm6[3],ymm3[6],ymm6[6],ymm3[7],ymm6[7]
1334 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm3 = ymm10[1],ymm3[1],ymm10[3],ymm3[3]
1335 ; AVX2-NEXT:    vextractf128 $1, %ymm0, %xmm0
1336 ; AVX2-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[2,3,2,3,6,7,6,7]
1337 ; AVX2-NEXT:    vextractf128 $1, %ymm2, %xmm2
1338 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm2[0,1],xmm0[2,3]
1339 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
1340 ; AVX2-NEXT:    vmovaps %ymm4, (%rsi)
1341 ; AVX2-NEXT:    vmovaps %ymm5, (%rdx)
1342 ; AVX2-NEXT:    vmovaps %ymm7, (%rcx)
1343 ; AVX2-NEXT:    vmovaps %ymm8, (%r8)
1344 ; AVX2-NEXT:    vmovaps %ymm9, (%r9)
1345 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1346 ; AVX2-NEXT:    vmovaps %ymm12, (%rax)
1347 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1348 ; AVX2-NEXT:    vmovaps %ymm1, (%rax)
1349 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1350 ; AVX2-NEXT:    vmovaps %ymm0, (%rax)
1351 ; AVX2-NEXT:    vzeroupper
1352 ; AVX2-NEXT:    retq
1354 ; AVX2-FP-LABEL: load_i32_stride8_vf8:
1355 ; AVX2-FP:       # %bb.0:
1356 ; AVX2-FP-NEXT:    vmovaps 96(%rdi), %ymm0
1357 ; AVX2-FP-NEXT:    vmovaps 64(%rdi), %ymm1
1358 ; AVX2-FP-NEXT:    vmovaps 32(%rdi), %ymm2
1359 ; AVX2-FP-NEXT:    vmovaps (%rdi), %ymm3
1360 ; AVX2-FP-NEXT:    vmovaps 160(%rdi), %xmm7
1361 ; AVX2-FP-NEXT:    vmovaps 128(%rdi), %xmm11
1362 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm4 = xmm11[0],xmm7[0],xmm11[1],xmm7[1]
1363 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
1364 ; AVX2-FP-NEXT:    vmovaps 224(%rdi), %xmm8
1365 ; AVX2-FP-NEXT:    vbroadcastss %xmm8, %xmm5
1366 ; AVX2-FP-NEXT:    vmovaps 192(%rdi), %xmm10
1367 ; AVX2-FP-NEXT:    vbroadcastss %xmm10, %xmm6
1368 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm6[0],xmm5[0],xmm6[1],xmm5[1]
1369 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
1370 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],ymm5[6,7]
1371 ; AVX2-FP-NEXT:    vmovaps 96(%rdi), %xmm9
1372 ; AVX2-FP-NEXT:    vbroadcastss %xmm9, %xmm5
1373 ; AVX2-FP-NEXT:    vmovaps (%rdi), %xmm13
1374 ; AVX2-FP-NEXT:    vmovaps 32(%rdi), %xmm14
1375 ; AVX2-FP-NEXT:    vmovaps 64(%rdi), %xmm12
1376 ; AVX2-FP-NEXT:    vbroadcastss %xmm12, %xmm6
1377 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm6[0],xmm5[0],xmm6[1],xmm5[1]
1378 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm6 = xmm13[0],xmm14[0],xmm13[1],xmm14[1]
1379 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm5 = xmm6[0,1],xmm5[2,3]
1380 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1,2,3],ymm4[4,5,6,7]
1381 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm12[0],xmm9[0],xmm12[1],xmm9[1]
1382 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm6 = xmm13[1,1,1,1]
1383 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0],xmm14[1],xmm6[2,3]
1384 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm5 = xmm6[0,1],xmm5[2,3]
1385 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm6 = xmm10[0],xmm8[0],xmm10[1],xmm8[1]
1386 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
1387 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm15 = xmm11[1,1,1,1]
1388 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm15 = xmm15[0],xmm7[1],xmm15[2,3]
1389 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm15
1390 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm15 = ymm15[0,1,2,3,4,5],ymm6[6,7]
1391 ; AVX2-FP-NEXT:    vmovaps 224(%rdi), %ymm6
1392 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm15[4,5,6,7]
1393 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm15 = xmm11[2],xmm7[2],xmm11[3],xmm7[3]
1394 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm7
1395 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm11 = xmm8[2,2,2,2]
1396 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm11 = xmm10[0,1,2],xmm11[3]
1397 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm11, %ymm0, %ymm11
1398 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5],ymm11[6,7]
1399 ; AVX2-FP-NEXT:    vmovaps 192(%rdi), %ymm11
1400 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm14 = xmm13[2],xmm14[2],xmm13[3],xmm14[3]
1401 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm13 = xmm9[2,2,2,2]
1402 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm13 = xmm12[0,1,2],xmm13[3]
1403 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm13 = xmm14[0,1],xmm13[2,3]
1404 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm7 = ymm13[0,1,2,3],ymm7[4,5,6,7]
1405 ; AVX2-FP-NEXT:    vmovaps 160(%rdi), %ymm13
1406 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm8 = xmm10[2],xmm8[2],xmm10[3],xmm8[3]
1407 ; AVX2-FP-NEXT:    vmovaps 128(%rdi), %ymm10
1408 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm8
1409 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm15 = xmm15[2,3,2,3]
1410 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm15
1411 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm8 = ymm15[0,1,2,3,4,5],ymm8[6,7]
1412 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm9 = xmm12[2],xmm9[2],xmm12[3],xmm9[3]
1413 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm9 = xmm14[1],xmm9[1]
1414 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm8 = ymm9[0,1,2,3],ymm8[4,5,6,7]
1415 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm9 = ymm10[0],ymm13[0],ymm10[1],ymm13[1],ymm10[4],ymm13[4],ymm10[5],ymm13[5]
1416 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm12 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
1417 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm12, %xmm12
1418 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm14 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
1419 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm15 = ymm14[2,2,2,2]
1420 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm12 = xmm12[0,1],xmm15[2,3]
1421 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm15 = ymm11[0],ymm6[0],ymm11[1],ymm6[1],ymm11[4],ymm6[4],ymm11[5],ymm6[5]
1422 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm9 = ymm9[0],ymm15[0],ymm9[2],ymm15[2]
1423 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm9 = ymm12[0,1,2,3],ymm9[4,5,6,7]
1424 ; AVX2-FP-NEXT:    vbroadcastss 148(%rdi), %ymm12
1425 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3,4],ymm13[5],ymm12[6,7]
1426 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3,4,5],ymm15[6,7]
1427 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm14, %xmm14
1428 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm15 = ymm3[1,1,1,1,5,5,5,5]
1429 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm15 = ymm15[0],ymm2[1],ymm15[2,3,4],ymm2[5],ymm15[6,7]
1430 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm15, %xmm15
1431 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm14 = xmm15[0,1],xmm14[2,3]
1432 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm12 = ymm14[0,1,2,3],ymm12[4,5,6,7]
1433 ; AVX2-FP-NEXT:    vbroadcastss 248(%rdi), %ymm14
1434 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1,2,3,4,5,6],ymm14[7]
1435 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm10 = ymm10[2],ymm13[2],ymm10[3],ymm13[3],ymm10[6],ymm13[6],ymm10[7],ymm13[7]
1436 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm3[2],ymm2[2],ymm3[3],ymm2[3],ymm3[6],ymm2[6],ymm3[7],ymm2[7]
1437 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm2, %xmm3
1438 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm0 = ymm1[2],ymm0[2],ymm1[3],ymm0[3],ymm1[6],ymm0[6],ymm1[7],ymm0[7]
1439 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm0[2,2,2,2]
1440 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm3[0,1],xmm1[2,3]
1441 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm10[0,1,2,3,4,5],ymm11[6,7]
1442 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
1443 ; AVX2-FP-NEXT:    vbroadcastss 220(%rdi), %ymm3
1444 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm3 = ymm3[2],ymm6[2],ymm3[3],ymm6[3],ymm3[6],ymm6[6],ymm3[7],ymm6[7]
1445 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm3 = ymm10[1],ymm3[1],ymm10[3],ymm3[3]
1446 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm0, %xmm0
1447 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[2,3,2,3,6,7,6,7]
1448 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm2, %xmm2
1449 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm2[0,1],xmm0[2,3]
1450 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
1451 ; AVX2-FP-NEXT:    vmovaps %ymm4, (%rsi)
1452 ; AVX2-FP-NEXT:    vmovaps %ymm5, (%rdx)
1453 ; AVX2-FP-NEXT:    vmovaps %ymm7, (%rcx)
1454 ; AVX2-FP-NEXT:    vmovaps %ymm8, (%r8)
1455 ; AVX2-FP-NEXT:    vmovaps %ymm9, (%r9)
1456 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1457 ; AVX2-FP-NEXT:    vmovaps %ymm12, (%rax)
1458 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1459 ; AVX2-FP-NEXT:    vmovaps %ymm1, (%rax)
1460 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1461 ; AVX2-FP-NEXT:    vmovaps %ymm0, (%rax)
1462 ; AVX2-FP-NEXT:    vzeroupper
1463 ; AVX2-FP-NEXT:    retq
1465 ; AVX2-FCP-LABEL: load_i32_stride8_vf8:
1466 ; AVX2-FCP:       # %bb.0:
1467 ; AVX2-FCP-NEXT:    vmovaps 96(%rdi), %ymm0
1468 ; AVX2-FCP-NEXT:    vmovaps 64(%rdi), %ymm1
1469 ; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %ymm2
1470 ; AVX2-FCP-NEXT:    vmovaps (%rdi), %ymm3
1471 ; AVX2-FCP-NEXT:    vmovaps 160(%rdi), %xmm7
1472 ; AVX2-FCP-NEXT:    vmovaps 128(%rdi), %xmm11
1473 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm4 = xmm11[0],xmm7[0],xmm11[1],xmm7[1]
1474 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
1475 ; AVX2-FCP-NEXT:    vmovaps 224(%rdi), %xmm8
1476 ; AVX2-FCP-NEXT:    vbroadcastss %xmm8, %xmm5
1477 ; AVX2-FCP-NEXT:    vmovaps 192(%rdi), %xmm10
1478 ; AVX2-FCP-NEXT:    vbroadcastss %xmm10, %xmm6
1479 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm6[0],xmm5[0],xmm6[1],xmm5[1]
1480 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
1481 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],ymm5[6,7]
1482 ; AVX2-FCP-NEXT:    vmovaps 96(%rdi), %xmm9
1483 ; AVX2-FCP-NEXT:    vbroadcastss %xmm9, %xmm5
1484 ; AVX2-FCP-NEXT:    vmovaps (%rdi), %xmm13
1485 ; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %xmm14
1486 ; AVX2-FCP-NEXT:    vmovaps 64(%rdi), %xmm12
1487 ; AVX2-FCP-NEXT:    vbroadcastss %xmm12, %xmm6
1488 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm6[0],xmm5[0],xmm6[1],xmm5[1]
1489 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm6 = xmm13[0],xmm14[0],xmm13[1],xmm14[1]
1490 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm5 = xmm6[0,1],xmm5[2,3]
1491 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1,2,3],ymm4[4,5,6,7]
1492 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm12[0],xmm9[0],xmm12[1],xmm9[1]
1493 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm6 = xmm13[1,1,1,1]
1494 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0],xmm14[1],xmm6[2,3]
1495 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm5 = xmm6[0,1],xmm5[2,3]
1496 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm6 = xmm10[0],xmm8[0],xmm10[1],xmm8[1]
1497 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
1498 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm15 = xmm11[1,1,1,1]
1499 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm15 = xmm15[0],xmm7[1],xmm15[2,3]
1500 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm15
1501 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm15 = ymm15[0,1,2,3,4,5],ymm6[6,7]
1502 ; AVX2-FCP-NEXT:    vmovaps 224(%rdi), %ymm6
1503 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm15[4,5,6,7]
1504 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm15 = xmm11[2],xmm7[2],xmm11[3],xmm7[3]
1505 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm7
1506 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm11 = xmm8[2,2,2,2]
1507 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm11 = xmm10[0,1,2],xmm11[3]
1508 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm11, %ymm0, %ymm11
1509 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5],ymm11[6,7]
1510 ; AVX2-FCP-NEXT:    vmovaps 192(%rdi), %ymm11
1511 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm14 = xmm13[2],xmm14[2],xmm13[3],xmm14[3]
1512 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm13 = xmm9[2,2,2,2]
1513 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm13 = xmm12[0,1,2],xmm13[3]
1514 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm13 = xmm14[0,1],xmm13[2,3]
1515 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm7 = ymm13[0,1,2,3],ymm7[4,5,6,7]
1516 ; AVX2-FCP-NEXT:    vmovaps 160(%rdi), %ymm13
1517 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm8 = xmm10[2],xmm8[2],xmm10[3],xmm8[3]
1518 ; AVX2-FCP-NEXT:    vmovaps 128(%rdi), %ymm10
1519 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm8
1520 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm15 = xmm15[2,3,2,3]
1521 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm15
1522 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm8 = ymm15[0,1,2,3,4,5],ymm8[6,7]
1523 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm9 = xmm12[2],xmm9[2],xmm12[3],xmm9[3]
1524 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm9 = xmm14[1],xmm9[1]
1525 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm8 = ymm9[0,1,2,3],ymm8[4,5,6,7]
1526 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm9 = ymm10[0],ymm13[0],ymm10[1],ymm13[1],ymm10[4],ymm13[4],ymm10[5],ymm13[5]
1527 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm12 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
1528 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm12, %xmm12
1529 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm14 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
1530 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm15 = ymm14[2,2,2,2]
1531 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm12 = xmm12[0,1],xmm15[2,3]
1532 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm15 = ymm11[0],ymm6[0],ymm11[1],ymm6[1],ymm11[4],ymm6[4],ymm11[5],ymm6[5]
1533 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm9 = ymm9[0],ymm15[0],ymm9[2],ymm15[2]
1534 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm9 = ymm12[0,1,2,3],ymm9[4,5,6,7]
1535 ; AVX2-FCP-NEXT:    vbroadcastss 148(%rdi), %ymm12
1536 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3,4],ymm13[5],ymm12[6,7]
1537 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3,4,5],ymm15[6,7]
1538 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm14, %xmm14
1539 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm15 = ymm3[1,1,1,1,5,5,5,5]
1540 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm15 = ymm15[0],ymm2[1],ymm15[2,3,4],ymm2[5],ymm15[6,7]
1541 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm15, %xmm15
1542 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm14 = xmm15[0,1],xmm14[2,3]
1543 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm12 = ymm14[0,1,2,3],ymm12[4,5,6,7]
1544 ; AVX2-FCP-NEXT:    vbroadcastss 248(%rdi), %ymm14
1545 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1,2,3,4,5,6],ymm14[7]
1546 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm10 = ymm10[2],ymm13[2],ymm10[3],ymm13[3],ymm10[6],ymm13[6],ymm10[7],ymm13[7]
1547 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm3[2],ymm2[2],ymm3[3],ymm2[3],ymm3[6],ymm2[6],ymm3[7],ymm2[7]
1548 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm2, %xmm3
1549 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm0 = ymm1[2],ymm0[2],ymm1[3],ymm0[3],ymm1[6],ymm0[6],ymm1[7],ymm0[7]
1550 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm0[2,2,2,2]
1551 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm3[0,1],xmm1[2,3]
1552 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm10[0,1,2,3,4,5],ymm11[6,7]
1553 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
1554 ; AVX2-FCP-NEXT:    vbroadcastss 220(%rdi), %ymm3
1555 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm3 = ymm3[2],ymm6[2],ymm3[3],ymm6[3],ymm3[6],ymm6[6],ymm3[7],ymm6[7]
1556 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm3 = ymm10[1],ymm3[1],ymm10[3],ymm3[3]
1557 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm0, %xmm0
1558 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[2,3,2,3,6,7,6,7]
1559 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm2, %xmm2
1560 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm2[0,1],xmm0[2,3]
1561 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
1562 ; AVX2-FCP-NEXT:    vmovaps %ymm4, (%rsi)
1563 ; AVX2-FCP-NEXT:    vmovaps %ymm5, (%rdx)
1564 ; AVX2-FCP-NEXT:    vmovaps %ymm7, (%rcx)
1565 ; AVX2-FCP-NEXT:    vmovaps %ymm8, (%r8)
1566 ; AVX2-FCP-NEXT:    vmovaps %ymm9, (%r9)
1567 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1568 ; AVX2-FCP-NEXT:    vmovaps %ymm12, (%rax)
1569 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1570 ; AVX2-FCP-NEXT:    vmovaps %ymm1, (%rax)
1571 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1572 ; AVX2-FCP-NEXT:    vmovaps %ymm0, (%rax)
1573 ; AVX2-FCP-NEXT:    vzeroupper
1574 ; AVX2-FCP-NEXT:    retq
1576 ; AVX512-LABEL: load_i32_stride8_vf8:
1577 ; AVX512:       # %bb.0:
1578 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1579 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %r10
1580 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %r11
1581 ; AVX512-NEXT:    vmovdqa64 (%rdi), %zmm0
1582 ; AVX512-NEXT:    vmovdqa64 64(%rdi), %zmm1
1583 ; AVX512-NEXT:    vmovdqa64 128(%rdi), %zmm2
1584 ; AVX512-NEXT:    vmovdqa64 192(%rdi), %zmm3
1585 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} ymm4 = [0,0,0,0,0,8,16,24]
1586 ; AVX512-NEXT:    vpermi2d %zmm3, %zmm2, %zmm4
1587 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} xmm5 = [0,8,16,24]
1588 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm5
1589 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm4 = ymm5[0,1,2,3],ymm4[4,5,6,7]
1590 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} ymm5 = [0,0,0,0,1,9,17,25]
1591 ; AVX512-NEXT:    vpermi2d %zmm3, %zmm2, %zmm5
1592 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} xmm6 = [1,9,17,25]
1593 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm6
1594 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm5 = ymm6[0,1,2,3],ymm5[4,5,6,7]
1595 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} ymm6 = [0,0,0,0,2,10,18,26]
1596 ; AVX512-NEXT:    vpermi2d %zmm3, %zmm2, %zmm6
1597 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} xmm7 = [2,10,18,26]
1598 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm7
1599 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]
1600 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} ymm7 = [0,0,0,0,3,11,19,27]
1601 ; AVX512-NEXT:    vpermi2d %zmm3, %zmm2, %zmm7
1602 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} xmm8 = [3,11,19,27]
1603 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm8
1604 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]
1605 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} ymm8 = [0,0,0,0,4,12,20,28]
1606 ; AVX512-NEXT:    vpermi2d %zmm3, %zmm2, %zmm8
1607 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} xmm9 = [4,12,20,28]
1608 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm9
1609 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm8 = ymm9[0,1,2,3],ymm8[4,5,6,7]
1610 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} ymm9 = [0,0,0,0,5,13,21,29]
1611 ; AVX512-NEXT:    vpermi2d %zmm3, %zmm2, %zmm9
1612 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} xmm10 = [5,13,21,29]
1613 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm10
1614 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm9 = ymm10[0,1,2,3],ymm9[4,5,6,7]
1615 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} ymm10 = [0,0,0,0,6,14,22,30]
1616 ; AVX512-NEXT:    vpermi2d %zmm3, %zmm2, %zmm10
1617 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} xmm11 = [6,14,22,30]
1618 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm11
1619 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm10 = ymm11[0,1,2,3],ymm10[4,5,6,7]
1620 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} ymm11 = [0,0,0,0,7,15,23,31]
1621 ; AVX512-NEXT:    vpermi2d %zmm3, %zmm2, %zmm11
1622 ; AVX512-NEXT:    vpmovsxbd {{.*#+}} xmm2 = [7,15,23,31]
1623 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2
1624 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm11[4,5,6,7]
1625 ; AVX512-NEXT:    vmovdqa %ymm4, (%rsi)
1626 ; AVX512-NEXT:    vmovdqa %ymm5, (%rdx)
1627 ; AVX512-NEXT:    vmovdqa %ymm6, (%rcx)
1628 ; AVX512-NEXT:    vmovdqa %ymm7, (%r8)
1629 ; AVX512-NEXT:    vmovdqa %ymm8, (%r9)
1630 ; AVX512-NEXT:    vmovdqa %ymm9, (%r11)
1631 ; AVX512-NEXT:    vmovdqa %ymm10, (%r10)
1632 ; AVX512-NEXT:    vmovdqa %ymm0, (%rax)
1633 ; AVX512-NEXT:    vzeroupper
1634 ; AVX512-NEXT:    retq
1636 ; AVX512-FCP-LABEL: load_i32_stride8_vf8:
1637 ; AVX512-FCP:       # %bb.0:
1638 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1639 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
1640 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11
1641 ; AVX512-FCP-NEXT:    vmovdqa64 (%rdi), %zmm0
1642 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm1
1643 ; AVX512-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm2
1644 ; AVX512-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm3
1645 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm4 = [0,0,0,0,0,8,16,24]
1646 ; AVX512-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm4
1647 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm5 = [0,8,16,24]
1648 ; AVX512-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm5
1649 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm5[0,1,2,3],ymm4[4,5,6,7]
1650 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm5 = [0,0,0,0,1,9,17,25]
1651 ; AVX512-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm5
1652 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm6 = [1,9,17,25]
1653 ; AVX512-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm6
1654 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm5 = ymm6[0,1,2,3],ymm5[4,5,6,7]
1655 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm6 = [0,0,0,0,2,10,18,26]
1656 ; AVX512-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm6
1657 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm7 = [2,10,18,26]
1658 ; AVX512-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm7
1659 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]
1660 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm7 = [0,0,0,0,3,11,19,27]
1661 ; AVX512-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm7
1662 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm8 = [3,11,19,27]
1663 ; AVX512-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm8
1664 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]
1665 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm8 = [0,0,0,0,4,12,20,28]
1666 ; AVX512-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm8
1667 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm9 = [4,12,20,28]
1668 ; AVX512-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm9
1669 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm8 = ymm9[0,1,2,3],ymm8[4,5,6,7]
1670 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm9 = [0,0,0,0,5,13,21,29]
1671 ; AVX512-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm9
1672 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm10 = [5,13,21,29]
1673 ; AVX512-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm10
1674 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm9 = ymm10[0,1,2,3],ymm9[4,5,6,7]
1675 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm10 = [0,0,0,0,6,14,22,30]
1676 ; AVX512-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm10
1677 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm11 = [6,14,22,30]
1678 ; AVX512-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm11
1679 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm10 = ymm11[0,1,2,3],ymm10[4,5,6,7]
1680 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm11 = [0,0,0,0,7,15,23,31]
1681 ; AVX512-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm11
1682 ; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm2 = [7,15,23,31]
1683 ; AVX512-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2
1684 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm11[4,5,6,7]
1685 ; AVX512-FCP-NEXT:    vmovdqa %ymm4, (%rsi)
1686 ; AVX512-FCP-NEXT:    vmovdqa %ymm5, (%rdx)
1687 ; AVX512-FCP-NEXT:    vmovdqa %ymm6, (%rcx)
1688 ; AVX512-FCP-NEXT:    vmovdqa %ymm7, (%r8)
1689 ; AVX512-FCP-NEXT:    vmovdqa %ymm8, (%r9)
1690 ; AVX512-FCP-NEXT:    vmovdqa %ymm9, (%r11)
1691 ; AVX512-FCP-NEXT:    vmovdqa %ymm10, (%r10)
1692 ; AVX512-FCP-NEXT:    vmovdqa %ymm0, (%rax)
1693 ; AVX512-FCP-NEXT:    vzeroupper
1694 ; AVX512-FCP-NEXT:    retq
1696 ; AVX512DQ-LABEL: load_i32_stride8_vf8:
1697 ; AVX512DQ:       # %bb.0:
1698 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1699 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %r10
1700 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %r11
1701 ; AVX512DQ-NEXT:    vmovdqa64 (%rdi), %zmm0
1702 ; AVX512DQ-NEXT:    vmovdqa64 64(%rdi), %zmm1
1703 ; AVX512DQ-NEXT:    vmovdqa64 128(%rdi), %zmm2
1704 ; AVX512DQ-NEXT:    vmovdqa64 192(%rdi), %zmm3
1705 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} ymm4 = [0,0,0,0,0,8,16,24]
1706 ; AVX512DQ-NEXT:    vpermi2d %zmm3, %zmm2, %zmm4
1707 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} xmm5 = [0,8,16,24]
1708 ; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm0, %zmm5
1709 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm4 = ymm5[0,1,2,3],ymm4[4,5,6,7]
1710 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} ymm5 = [0,0,0,0,1,9,17,25]
1711 ; AVX512DQ-NEXT:    vpermi2d %zmm3, %zmm2, %zmm5
1712 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} xmm6 = [1,9,17,25]
1713 ; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm0, %zmm6
1714 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm5 = ymm6[0,1,2,3],ymm5[4,5,6,7]
1715 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} ymm6 = [0,0,0,0,2,10,18,26]
1716 ; AVX512DQ-NEXT:    vpermi2d %zmm3, %zmm2, %zmm6
1717 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} xmm7 = [2,10,18,26]
1718 ; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm0, %zmm7
1719 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]
1720 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} ymm7 = [0,0,0,0,3,11,19,27]
1721 ; AVX512DQ-NEXT:    vpermi2d %zmm3, %zmm2, %zmm7
1722 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} xmm8 = [3,11,19,27]
1723 ; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm0, %zmm8
1724 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]
1725 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} ymm8 = [0,0,0,0,4,12,20,28]
1726 ; AVX512DQ-NEXT:    vpermi2d %zmm3, %zmm2, %zmm8
1727 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} xmm9 = [4,12,20,28]
1728 ; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm0, %zmm9
1729 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm8 = ymm9[0,1,2,3],ymm8[4,5,6,7]
1730 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} ymm9 = [0,0,0,0,5,13,21,29]
1731 ; AVX512DQ-NEXT:    vpermi2d %zmm3, %zmm2, %zmm9
1732 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} xmm10 = [5,13,21,29]
1733 ; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm0, %zmm10
1734 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm9 = ymm10[0,1,2,3],ymm9[4,5,6,7]
1735 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} ymm10 = [0,0,0,0,6,14,22,30]
1736 ; AVX512DQ-NEXT:    vpermi2d %zmm3, %zmm2, %zmm10
1737 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} xmm11 = [6,14,22,30]
1738 ; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm0, %zmm11
1739 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm10 = ymm11[0,1,2,3],ymm10[4,5,6,7]
1740 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} ymm11 = [0,0,0,0,7,15,23,31]
1741 ; AVX512DQ-NEXT:    vpermi2d %zmm3, %zmm2, %zmm11
1742 ; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} xmm2 = [7,15,23,31]
1743 ; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2
1744 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm11[4,5,6,7]
1745 ; AVX512DQ-NEXT:    vmovdqa %ymm4, (%rsi)
1746 ; AVX512DQ-NEXT:    vmovdqa %ymm5, (%rdx)
1747 ; AVX512DQ-NEXT:    vmovdqa %ymm6, (%rcx)
1748 ; AVX512DQ-NEXT:    vmovdqa %ymm7, (%r8)
1749 ; AVX512DQ-NEXT:    vmovdqa %ymm8, (%r9)
1750 ; AVX512DQ-NEXT:    vmovdqa %ymm9, (%r11)
1751 ; AVX512DQ-NEXT:    vmovdqa %ymm10, (%r10)
1752 ; AVX512DQ-NEXT:    vmovdqa %ymm0, (%rax)
1753 ; AVX512DQ-NEXT:    vzeroupper
1754 ; AVX512DQ-NEXT:    retq
1756 ; AVX512DQ-FCP-LABEL: load_i32_stride8_vf8:
1757 ; AVX512DQ-FCP:       # %bb.0:
1758 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1759 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
1760 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11
1761 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rdi), %zmm0
1762 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm1
1763 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm2
1764 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm3
1765 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm4 = [0,0,0,0,0,8,16,24]
1766 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm4
1767 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm5 = [0,8,16,24]
1768 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm5
1769 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm5[0,1,2,3],ymm4[4,5,6,7]
1770 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm5 = [0,0,0,0,1,9,17,25]
1771 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm5
1772 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm6 = [1,9,17,25]
1773 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm6
1774 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm5 = ymm6[0,1,2,3],ymm5[4,5,6,7]
1775 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm6 = [0,0,0,0,2,10,18,26]
1776 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm6
1777 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm7 = [2,10,18,26]
1778 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm7
1779 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]
1780 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm7 = [0,0,0,0,3,11,19,27]
1781 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm7
1782 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm8 = [3,11,19,27]
1783 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm8
1784 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]
1785 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm8 = [0,0,0,0,4,12,20,28]
1786 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm8
1787 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm9 = [4,12,20,28]
1788 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm9
1789 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm8 = ymm9[0,1,2,3],ymm8[4,5,6,7]
1790 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm9 = [0,0,0,0,5,13,21,29]
1791 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm9
1792 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm10 = [5,13,21,29]
1793 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm10
1794 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm9 = ymm10[0,1,2,3],ymm9[4,5,6,7]
1795 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm10 = [0,0,0,0,6,14,22,30]
1796 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm10
1797 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm11 = [6,14,22,30]
1798 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm11
1799 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm10 = ymm11[0,1,2,3],ymm10[4,5,6,7]
1800 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm11 = [0,0,0,0,7,15,23,31]
1801 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm11
1802 ; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm2 = [7,15,23,31]
1803 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2
1804 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm11[4,5,6,7]
1805 ; AVX512DQ-FCP-NEXT:    vmovdqa %ymm4, (%rsi)
1806 ; AVX512DQ-FCP-NEXT:    vmovdqa %ymm5, (%rdx)
1807 ; AVX512DQ-FCP-NEXT:    vmovdqa %ymm6, (%rcx)
1808 ; AVX512DQ-FCP-NEXT:    vmovdqa %ymm7, (%r8)
1809 ; AVX512DQ-FCP-NEXT:    vmovdqa %ymm8, (%r9)
1810 ; AVX512DQ-FCP-NEXT:    vmovdqa %ymm9, (%r11)
1811 ; AVX512DQ-FCP-NEXT:    vmovdqa %ymm10, (%r10)
1812 ; AVX512DQ-FCP-NEXT:    vmovdqa %ymm0, (%rax)
1813 ; AVX512DQ-FCP-NEXT:    vzeroupper
1814 ; AVX512DQ-FCP-NEXT:    retq
1816 ; AVX512BW-LABEL: load_i32_stride8_vf8:
1817 ; AVX512BW:       # %bb.0:
1818 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1819 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %r10
1820 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %r11
1821 ; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm0
1822 ; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %zmm1
1823 ; AVX512BW-NEXT:    vmovdqa64 128(%rdi), %zmm2
1824 ; AVX512BW-NEXT:    vmovdqa64 192(%rdi), %zmm3
1825 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} ymm4 = [0,0,0,0,0,8,16,24]
1826 ; AVX512BW-NEXT:    vpermi2d %zmm3, %zmm2, %zmm4
1827 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} xmm5 = [0,8,16,24]
1828 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm5
1829 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm4 = ymm5[0,1,2,3],ymm4[4,5,6,7]
1830 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} ymm5 = [0,0,0,0,1,9,17,25]
1831 ; AVX512BW-NEXT:    vpermi2d %zmm3, %zmm2, %zmm5
1832 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} xmm6 = [1,9,17,25]
1833 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm6
1834 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm5 = ymm6[0,1,2,3],ymm5[4,5,6,7]
1835 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} ymm6 = [0,0,0,0,2,10,18,26]
1836 ; AVX512BW-NEXT:    vpermi2d %zmm3, %zmm2, %zmm6
1837 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} xmm7 = [2,10,18,26]
1838 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm7
1839 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]
1840 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} ymm7 = [0,0,0,0,3,11,19,27]
1841 ; AVX512BW-NEXT:    vpermi2d %zmm3, %zmm2, %zmm7
1842 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} xmm8 = [3,11,19,27]
1843 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm8
1844 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]
1845 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} ymm8 = [0,0,0,0,4,12,20,28]
1846 ; AVX512BW-NEXT:    vpermi2d %zmm3, %zmm2, %zmm8
1847 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} xmm9 = [4,12,20,28]
1848 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm9
1849 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm9[0,1,2,3],ymm8[4,5,6,7]
1850 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} ymm9 = [0,0,0,0,5,13,21,29]
1851 ; AVX512BW-NEXT:    vpermi2d %zmm3, %zmm2, %zmm9
1852 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} xmm10 = [5,13,21,29]
1853 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm10
1854 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm9 = ymm10[0,1,2,3],ymm9[4,5,6,7]
1855 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} ymm10 = [0,0,0,0,6,14,22,30]
1856 ; AVX512BW-NEXT:    vpermi2d %zmm3, %zmm2, %zmm10
1857 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} xmm11 = [6,14,22,30]
1858 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm11
1859 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm10 = ymm11[0,1,2,3],ymm10[4,5,6,7]
1860 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} ymm11 = [0,0,0,0,7,15,23,31]
1861 ; AVX512BW-NEXT:    vpermi2d %zmm3, %zmm2, %zmm11
1862 ; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} xmm2 = [7,15,23,31]
1863 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2
1864 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm11[4,5,6,7]
1865 ; AVX512BW-NEXT:    vmovdqa %ymm4, (%rsi)
1866 ; AVX512BW-NEXT:    vmovdqa %ymm5, (%rdx)
1867 ; AVX512BW-NEXT:    vmovdqa %ymm6, (%rcx)
1868 ; AVX512BW-NEXT:    vmovdqa %ymm7, (%r8)
1869 ; AVX512BW-NEXT:    vmovdqa %ymm8, (%r9)
1870 ; AVX512BW-NEXT:    vmovdqa %ymm9, (%r11)
1871 ; AVX512BW-NEXT:    vmovdqa %ymm10, (%r10)
1872 ; AVX512BW-NEXT:    vmovdqa %ymm0, (%rax)
1873 ; AVX512BW-NEXT:    vzeroupper
1874 ; AVX512BW-NEXT:    retq
1876 ; AVX512BW-FCP-LABEL: load_i32_stride8_vf8:
1877 ; AVX512BW-FCP:       # %bb.0:
1878 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1879 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
1880 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11
1881 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm0
1882 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm1
1883 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm2
1884 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm3
1885 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm4 = [0,0,0,0,0,8,16,24]
1886 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm4
1887 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm5 = [0,8,16,24]
1888 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm5
1889 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm5[0,1,2,3],ymm4[4,5,6,7]
1890 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm5 = [0,0,0,0,1,9,17,25]
1891 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm5
1892 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm6 = [1,9,17,25]
1893 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm6
1894 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm5 = ymm6[0,1,2,3],ymm5[4,5,6,7]
1895 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm6 = [0,0,0,0,2,10,18,26]
1896 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm6
1897 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm7 = [2,10,18,26]
1898 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm7
1899 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]
1900 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm7 = [0,0,0,0,3,11,19,27]
1901 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm7
1902 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm8 = [3,11,19,27]
1903 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm8
1904 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]
1905 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm8 = [0,0,0,0,4,12,20,28]
1906 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm8
1907 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm9 = [4,12,20,28]
1908 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm9
1909 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm8 = ymm9[0,1,2,3],ymm8[4,5,6,7]
1910 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm9 = [0,0,0,0,5,13,21,29]
1911 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm9
1912 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm10 = [5,13,21,29]
1913 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm10
1914 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm9 = ymm10[0,1,2,3],ymm9[4,5,6,7]
1915 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm10 = [0,0,0,0,6,14,22,30]
1916 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm10
1917 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm11 = [6,14,22,30]
1918 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm11
1919 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm10 = ymm11[0,1,2,3],ymm10[4,5,6,7]
1920 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm11 = [0,0,0,0,7,15,23,31]
1921 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm11
1922 ; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm2 = [7,15,23,31]
1923 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2
1924 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm11[4,5,6,7]
1925 ; AVX512BW-FCP-NEXT:    vmovdqa %ymm4, (%rsi)
1926 ; AVX512BW-FCP-NEXT:    vmovdqa %ymm5, (%rdx)
1927 ; AVX512BW-FCP-NEXT:    vmovdqa %ymm6, (%rcx)
1928 ; AVX512BW-FCP-NEXT:    vmovdqa %ymm7, (%r8)
1929 ; AVX512BW-FCP-NEXT:    vmovdqa %ymm8, (%r9)
1930 ; AVX512BW-FCP-NEXT:    vmovdqa %ymm9, (%r11)
1931 ; AVX512BW-FCP-NEXT:    vmovdqa %ymm10, (%r10)
1932 ; AVX512BW-FCP-NEXT:    vmovdqa %ymm0, (%rax)
1933 ; AVX512BW-FCP-NEXT:    vzeroupper
1934 ; AVX512BW-FCP-NEXT:    retq
1936 ; AVX512DQ-BW-LABEL: load_i32_stride8_vf8:
1937 ; AVX512DQ-BW:       # %bb.0:
1938 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1939 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %r10
1940 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %r11
1941 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rdi), %zmm0
1942 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rdi), %zmm1
1943 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%rdi), %zmm2
1944 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%rdi), %zmm3
1945 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} ymm4 = [0,0,0,0,0,8,16,24]
1946 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm3, %zmm2, %zmm4
1947 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} xmm5 = [0,8,16,24]
1948 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm5
1949 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm4 = ymm5[0,1,2,3],ymm4[4,5,6,7]
1950 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} ymm5 = [0,0,0,0,1,9,17,25]
1951 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm3, %zmm2, %zmm5
1952 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} xmm6 = [1,9,17,25]
1953 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm6
1954 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm5 = ymm6[0,1,2,3],ymm5[4,5,6,7]
1955 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} ymm6 = [0,0,0,0,2,10,18,26]
1956 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm3, %zmm2, %zmm6
1957 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} xmm7 = [2,10,18,26]
1958 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm7
1959 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]
1960 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} ymm7 = [0,0,0,0,3,11,19,27]
1961 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm3, %zmm2, %zmm7
1962 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} xmm8 = [3,11,19,27]
1963 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm8
1964 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]
1965 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} ymm8 = [0,0,0,0,4,12,20,28]
1966 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm3, %zmm2, %zmm8
1967 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} xmm9 = [4,12,20,28]
1968 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm9
1969 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm9[0,1,2,3],ymm8[4,5,6,7]
1970 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} ymm9 = [0,0,0,0,5,13,21,29]
1971 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm3, %zmm2, %zmm9
1972 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} xmm10 = [5,13,21,29]
1973 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm10
1974 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm9 = ymm10[0,1,2,3],ymm9[4,5,6,7]
1975 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} ymm10 = [0,0,0,0,6,14,22,30]
1976 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm3, %zmm2, %zmm10
1977 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} xmm11 = [6,14,22,30]
1978 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm11
1979 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm10 = ymm11[0,1,2,3],ymm10[4,5,6,7]
1980 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} ymm11 = [0,0,0,0,7,15,23,31]
1981 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm3, %zmm2, %zmm11
1982 ; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} xmm2 = [7,15,23,31]
1983 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2
1984 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm11[4,5,6,7]
1985 ; AVX512DQ-BW-NEXT:    vmovdqa %ymm4, (%rsi)
1986 ; AVX512DQ-BW-NEXT:    vmovdqa %ymm5, (%rdx)
1987 ; AVX512DQ-BW-NEXT:    vmovdqa %ymm6, (%rcx)
1988 ; AVX512DQ-BW-NEXT:    vmovdqa %ymm7, (%r8)
1989 ; AVX512DQ-BW-NEXT:    vmovdqa %ymm8, (%r9)
1990 ; AVX512DQ-BW-NEXT:    vmovdqa %ymm9, (%r11)
1991 ; AVX512DQ-BW-NEXT:    vmovdqa %ymm10, (%r10)
1992 ; AVX512DQ-BW-NEXT:    vmovdqa %ymm0, (%rax)
1993 ; AVX512DQ-BW-NEXT:    vzeroupper
1994 ; AVX512DQ-BW-NEXT:    retq
1996 ; AVX512DQ-BW-FCP-LABEL: load_i32_stride8_vf8:
1997 ; AVX512DQ-BW-FCP:       # %bb.0:
1998 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1999 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
2000 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11
2001 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm0
2002 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm1
2003 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm2
2004 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm3
2005 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm4 = [0,0,0,0,0,8,16,24]
2006 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm4
2007 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm5 = [0,8,16,24]
2008 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm5
2009 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm5[0,1,2,3],ymm4[4,5,6,7]
2010 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm5 = [0,0,0,0,1,9,17,25]
2011 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm5
2012 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm6 = [1,9,17,25]
2013 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm6
2014 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm5 = ymm6[0,1,2,3],ymm5[4,5,6,7]
2015 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm6 = [0,0,0,0,2,10,18,26]
2016 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm6
2017 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm7 = [2,10,18,26]
2018 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm7
2019 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]
2020 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm7 = [0,0,0,0,3,11,19,27]
2021 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm7
2022 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm8 = [3,11,19,27]
2023 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm8
2024 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]
2025 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm8 = [0,0,0,0,4,12,20,28]
2026 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm8
2027 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm9 = [4,12,20,28]
2028 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm9
2029 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm8 = ymm9[0,1,2,3],ymm8[4,5,6,7]
2030 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm9 = [0,0,0,0,5,13,21,29]
2031 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm9
2032 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm10 = [5,13,21,29]
2033 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm10
2034 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm9 = ymm10[0,1,2,3],ymm9[4,5,6,7]
2035 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm10 = [0,0,0,0,6,14,22,30]
2036 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm10
2037 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm11 = [6,14,22,30]
2038 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm11
2039 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm10 = ymm11[0,1,2,3],ymm10[4,5,6,7]
2040 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm11 = [0,0,0,0,7,15,23,31]
2041 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm11
2042 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm2 = [7,15,23,31]
2043 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2
2044 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm11[4,5,6,7]
2045 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa %ymm4, (%rsi)
2046 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa %ymm5, (%rdx)
2047 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa %ymm6, (%rcx)
2048 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa %ymm7, (%r8)
2049 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa %ymm8, (%r9)
2050 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa %ymm9, (%r11)
2051 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa %ymm10, (%r10)
2052 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa %ymm0, (%rax)
2053 ; AVX512DQ-BW-FCP-NEXT:    vzeroupper
2054 ; AVX512DQ-BW-FCP-NEXT:    retq
2055   %wide.vec = load <64 x i32>, ptr %in.vec, align 64
2056   %strided.vec0 = shufflevector <64 x i32> %wide.vec, <64 x i32> poison, <8 x i32> <i32 0, i32 8, i32 16, i32 24, i32 32, i32 40, i32 48, i32 56>
2057   %strided.vec1 = shufflevector <64 x i32> %wide.vec, <64 x i32> poison, <8 x i32> <i32 1, i32 9, i32 17, i32 25, i32 33, i32 41, i32 49, i32 57>
2058   %strided.vec2 = shufflevector <64 x i32> %wide.vec, <64 x i32> poison, <8 x i32> <i32 2, i32 10, i32 18, i32 26, i32 34, i32 42, i32 50, i32 58>
2059   %strided.vec3 = shufflevector <64 x i32> %wide.vec, <64 x i32> poison, <8 x i32> <i32 3, i32 11, i32 19, i32 27, i32 35, i32 43, i32 51, i32 59>
2060   %strided.vec4 = shufflevector <64 x i32> %wide.vec, <64 x i32> poison, <8 x i32> <i32 4, i32 12, i32 20, i32 28, i32 36, i32 44, i32 52, i32 60>
2061   %strided.vec5 = shufflevector <64 x i32> %wide.vec, <64 x i32> poison, <8 x i32> <i32 5, i32 13, i32 21, i32 29, i32 37, i32 45, i32 53, i32 61>
2062   %strided.vec6 = shufflevector <64 x i32> %wide.vec, <64 x i32> poison, <8 x i32> <i32 6, i32 14, i32 22, i32 30, i32 38, i32 46, i32 54, i32 62>
2063   %strided.vec7 = shufflevector <64 x i32> %wide.vec, <64 x i32> poison, <8 x i32> <i32 7, i32 15, i32 23, i32 31, i32 39, i32 47, i32 55, i32 63>
2064   store <8 x i32> %strided.vec0, ptr %out.vec0, align 64
2065   store <8 x i32> %strided.vec1, ptr %out.vec1, align 64
2066   store <8 x i32> %strided.vec2, ptr %out.vec2, align 64
2067   store <8 x i32> %strided.vec3, ptr %out.vec3, align 64
2068   store <8 x i32> %strided.vec4, ptr %out.vec4, align 64
2069   store <8 x i32> %strided.vec5, ptr %out.vec5, align 64
2070   store <8 x i32> %strided.vec6, ptr %out.vec6, align 64
2071   store <8 x i32> %strided.vec7, ptr %out.vec7, align 64
2072   ret void
2075 define void @load_i32_stride8_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, ptr %out.vec7) nounwind {
2076 ; SSE-LABEL: load_i32_stride8_vf16:
2077 ; SSE:       # %bb.0:
2078 ; SSE-NEXT:    subq $296, %rsp # imm = 0x128
2079 ; SSE-NEXT:    movaps 288(%rdi), %xmm6
2080 ; SSE-NEXT:    movaps 352(%rdi), %xmm0
2081 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2082 ; SSE-NEXT:    movaps 320(%rdi), %xmm5
2083 ; SSE-NEXT:    movaps 416(%rdi), %xmm2
2084 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2085 ; SSE-NEXT:    movaps 384(%rdi), %xmm12
2086 ; SSE-NEXT:    movaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2087 ; SSE-NEXT:    movaps 480(%rdi), %xmm13
2088 ; SSE-NEXT:    movaps 448(%rdi), %xmm4
2089 ; SSE-NEXT:    movaps 160(%rdi), %xmm7
2090 ; SSE-NEXT:    movaps 128(%rdi), %xmm10
2091 ; SSE-NEXT:    movaps 224(%rdi), %xmm8
2092 ; SSE-NEXT:    movaps 192(%rdi), %xmm3
2093 ; SSE-NEXT:    movaps %xmm3, %xmm9
2094 ; SSE-NEXT:    unpcklps {{.*#+}} xmm9 = xmm9[0],xmm8[0],xmm9[1],xmm8[1]
2095 ; SSE-NEXT:    movaps %xmm10, %xmm11
2096 ; SSE-NEXT:    movaps %xmm10, %xmm14
2097 ; SSE-NEXT:    unpcklps {{.*#+}} xmm11 = xmm11[0],xmm7[0],xmm11[1],xmm7[1]
2098 ; SSE-NEXT:    movaps %xmm11, %xmm10
2099 ; SSE-NEXT:    movlhps {{.*#+}} xmm10 = xmm10[0],xmm9[0]
2100 ; SSE-NEXT:    movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2101 ; SSE-NEXT:    movaps %xmm4, %xmm10
2102 ; SSE-NEXT:    unpcklps {{.*#+}} xmm10 = xmm10[0],xmm13[0],xmm10[1],xmm13[1]
2103 ; SSE-NEXT:    unpcklps {{.*#+}} xmm12 = xmm12[0],xmm2[0],xmm12[1],xmm2[1]
2104 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm11 = xmm11[1],xmm9[1]
2105 ; SSE-NEXT:    movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2106 ; SSE-NEXT:    movaps %xmm12, %xmm9
2107 ; SSE-NEXT:    movlhps {{.*#+}} xmm9 = xmm9[0],xmm10[0]
2108 ; SSE-NEXT:    movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2109 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm12 = xmm12[1],xmm10[1]
2110 ; SSE-NEXT:    movaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2111 ; SSE-NEXT:    movaps %xmm5, %xmm9
2112 ; SSE-NEXT:    unpcklps {{.*#+}} xmm9 = xmm9[0],xmm0[0],xmm9[1],xmm0[1]
2113 ; SSE-NEXT:    movaps 256(%rdi), %xmm15
2114 ; SSE-NEXT:    movaps %xmm15, %xmm0
2115 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm6[0],xmm0[1],xmm6[1]
2116 ; SSE-NEXT:    movaps %xmm0, %xmm10
2117 ; SSE-NEXT:    movlhps {{.*#+}} xmm10 = xmm10[0],xmm9[0]
2118 ; SSE-NEXT:    movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2119 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm9[1]
2120 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2121 ; SSE-NEXT:    movaps 96(%rdi), %xmm10
2122 ; SSE-NEXT:    movaps 64(%rdi), %xmm9
2123 ; SSE-NEXT:    movaps %xmm9, %xmm11
2124 ; SSE-NEXT:    unpcklps {{.*#+}} xmm11 = xmm11[0],xmm10[0],xmm11[1],xmm10[1]
2125 ; SSE-NEXT:    movaps (%rdi), %xmm2
2126 ; SSE-NEXT:    movaps 32(%rdi), %xmm12
2127 ; SSE-NEXT:    movaps %xmm2, %xmm1
2128 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm12[0],xmm1[1],xmm12[1]
2129 ; SSE-NEXT:    movaps %xmm1, %xmm0
2130 ; SSE-NEXT:    movlhps {{.*#+}} xmm0 = xmm0[0],xmm11[0]
2131 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2132 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm11[1]
2133 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2134 ; SSE-NEXT:    unpckhps {{.*#+}} xmm3 = xmm3[2],xmm8[2],xmm3[3],xmm8[3]
2135 ; SSE-NEXT:    unpckhps {{.*#+}} xmm14 = xmm14[2],xmm7[2],xmm14[3],xmm7[3]
2136 ; SSE-NEXT:    unpckhps {{.*#+}} xmm4 = xmm4[2],xmm13[2],xmm4[3],xmm13[3]
2137 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload
2138 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Folded Reload
2139 ; SSE-NEXT:    # xmm13 = xmm13[2],mem[2],xmm13[3],mem[3]
2140 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload
2141 ; SSE-NEXT:    # xmm5 = xmm5[2],mem[2],xmm5[3],mem[3]
2142 ; SSE-NEXT:    unpckhps {{.*#+}} xmm15 = xmm15[2],xmm6[2],xmm15[3],xmm6[3]
2143 ; SSE-NEXT:    unpckhps {{.*#+}} xmm9 = xmm9[2],xmm10[2],xmm9[3],xmm10[3]
2144 ; SSE-NEXT:    unpckhps {{.*#+}} xmm2 = xmm2[2],xmm12[2],xmm2[3],xmm12[3]
2145 ; SSE-NEXT:    movaps %xmm14, %xmm0
2146 ; SSE-NEXT:    movlhps {{.*#+}} xmm0 = xmm0[0],xmm3[0]
2147 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2148 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm14 = xmm14[1],xmm3[1]
2149 ; SSE-NEXT:    movaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2150 ; SSE-NEXT:    movaps %xmm13, %xmm0
2151 ; SSE-NEXT:    movlhps {{.*#+}} xmm0 = xmm0[0],xmm4[0]
2152 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2153 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm13 = xmm13[1],xmm4[1]
2154 ; SSE-NEXT:    movaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2155 ; SSE-NEXT:    movaps %xmm15, %xmm0
2156 ; SSE-NEXT:    movlhps {{.*#+}} xmm0 = xmm0[0],xmm5[0]
2157 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2158 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm15 = xmm15[1],xmm5[1]
2159 ; SSE-NEXT:    movaps %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2160 ; SSE-NEXT:    movaps %xmm2, %xmm0
2161 ; SSE-NEXT:    movlhps {{.*#+}} xmm0 = xmm0[0],xmm9[0]
2162 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2163 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm9[1]
2164 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2165 ; SSE-NEXT:    movaps 240(%rdi), %xmm1
2166 ; SSE-NEXT:    movaps %xmm1, (%rsp) # 16-byte Spill
2167 ; SSE-NEXT:    movaps 208(%rdi), %xmm15
2168 ; SSE-NEXT:    movaps %xmm15, %xmm0
2169 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
2170 ; SSE-NEXT:    movaps 176(%rdi), %xmm2
2171 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2172 ; SSE-NEXT:    movaps 144(%rdi), %xmm1
2173 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2174 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
2175 ; SSE-NEXT:    movaps %xmm1, %xmm2
2176 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2177 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2178 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2179 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2180 ; SSE-NEXT:    movaps 496(%rdi), %xmm1
2181 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2182 ; SSE-NEXT:    movaps 464(%rdi), %xmm5
2183 ; SSE-NEXT:    movaps %xmm5, %xmm0
2184 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
2185 ; SSE-NEXT:    movaps 432(%rdi), %xmm1
2186 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2187 ; SSE-NEXT:    movaps 400(%rdi), %xmm6
2188 ; SSE-NEXT:    movaps %xmm6, %xmm10
2189 ; SSE-NEXT:    unpcklps {{.*#+}} xmm10 = xmm10[0],xmm1[0],xmm10[1],xmm1[1]
2190 ; SSE-NEXT:    movaps %xmm10, %xmm1
2191 ; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2192 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2193 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm10 = xmm10[1],xmm0[1]
2194 ; SSE-NEXT:    movaps 368(%rdi), %xmm14
2195 ; SSE-NEXT:    movaps 336(%rdi), %xmm2
2196 ; SSE-NEXT:    movaps %xmm2, %xmm0
2197 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm14[0],xmm0[1],xmm14[1]
2198 ; SSE-NEXT:    movaps 304(%rdi), %xmm12
2199 ; SSE-NEXT:    movaps 272(%rdi), %xmm7
2200 ; SSE-NEXT:    movaps %xmm7, %xmm4
2201 ; SSE-NEXT:    unpcklps {{.*#+}} xmm4 = xmm4[0],xmm12[0],xmm4[1],xmm12[1]
2202 ; SSE-NEXT:    movaps %xmm4, %xmm1
2203 ; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2204 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2205 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm0[1]
2206 ; SSE-NEXT:    movaps 112(%rdi), %xmm13
2207 ; SSE-NEXT:    movaps 80(%rdi), %xmm1
2208 ; SSE-NEXT:    movaps %xmm1, %xmm0
2209 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm13[0],xmm0[1],xmm13[1]
2210 ; SSE-NEXT:    movaps 16(%rdi), %xmm8
2211 ; SSE-NEXT:    movaps 48(%rdi), %xmm11
2212 ; SSE-NEXT:    movaps %xmm8, %xmm3
2213 ; SSE-NEXT:    unpcklps {{.*#+}} xmm3 = xmm3[0],xmm11[0],xmm3[1],xmm11[1]
2214 ; SSE-NEXT:    movaps %xmm3, %xmm9
2215 ; SSE-NEXT:    movlhps {{.*#+}} xmm9 = xmm9[0],xmm0[0]
2216 ; SSE-NEXT:    movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2217 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm3 = xmm3[1],xmm0[1]
2218 ; SSE-NEXT:    unpckhps (%rsp), %xmm15 # 16-byte Folded Reload
2219 ; SSE-NEXT:    # xmm15 = xmm15[2],mem[2],xmm15[3],mem[3]
2220 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2221 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
2222 ; SSE-NEXT:    # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]
2223 ; SSE-NEXT:    unpckhps {{.*#+}} xmm2 = xmm2[2],xmm14[2],xmm2[3],xmm14[3]
2224 ; SSE-NEXT:    unpckhps {{.*#+}} xmm7 = xmm7[2],xmm12[2],xmm7[3],xmm12[3]
2225 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload
2226 ; SSE-NEXT:    # xmm5 = xmm5[2],mem[2],xmm5[3],mem[3]
2227 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload
2228 ; SSE-NEXT:    # xmm6 = xmm6[2],mem[2],xmm6[3],mem[3]
2229 ; SSE-NEXT:    unpckhps {{.*#+}} xmm1 = xmm1[2],xmm13[2],xmm1[3],xmm13[3]
2230 ; SSE-NEXT:    unpckhps {{.*#+}} xmm8 = xmm8[2],xmm11[2],xmm8[3],xmm11[3]
2231 ; SSE-NEXT:    movaps %xmm0, %xmm11
2232 ; SSE-NEXT:    movlhps {{.*#+}} xmm11 = xmm11[0],xmm15[0]
2233 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm15[1]
2234 ; SSE-NEXT:    movaps %xmm0, %xmm12
2235 ; SSE-NEXT:    movaps %xmm7, %xmm9
2236 ; SSE-NEXT:    movlhps {{.*#+}} xmm9 = xmm9[0],xmm2[0]
2237 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm7 = xmm7[1],xmm2[1]
2238 ; SSE-NEXT:    movaps %xmm6, %xmm0
2239 ; SSE-NEXT:    movlhps {{.*#+}} xmm0 = xmm0[0],xmm5[0]
2240 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm6 = xmm6[1],xmm5[1]
2241 ; SSE-NEXT:    movaps %xmm8, %xmm2
2242 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm1[0]
2243 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm1[1]
2244 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2245 ; SSE-NEXT:    movaps %xmm1, 32(%rsi)
2246 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2247 ; SSE-NEXT:    movaps %xmm1, 48(%rsi)
2248 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2249 ; SSE-NEXT:    movaps %xmm1, (%rsi)
2250 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2251 ; SSE-NEXT:    movaps %xmm1, 16(%rsi)
2252 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2253 ; SSE-NEXT:    movaps %xmm1, 32(%rdx)
2254 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2255 ; SSE-NEXT:    movaps %xmm1, 48(%rdx)
2256 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2257 ; SSE-NEXT:    movaps %xmm1, (%rdx)
2258 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2259 ; SSE-NEXT:    movaps %xmm1, 16(%rdx)
2260 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2261 ; SSE-NEXT:    movaps %xmm1, 32(%rcx)
2262 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2263 ; SSE-NEXT:    movaps %xmm1, 48(%rcx)
2264 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2265 ; SSE-NEXT:    movaps %xmm1, (%rcx)
2266 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2267 ; SSE-NEXT:    movaps %xmm1, 16(%rcx)
2268 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2269 ; SSE-NEXT:    movaps %xmm1, 32(%r8)
2270 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2271 ; SSE-NEXT:    movaps %xmm1, 48(%r8)
2272 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2273 ; SSE-NEXT:    movaps %xmm1, (%r8)
2274 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2275 ; SSE-NEXT:    movaps %xmm1, 16(%r8)
2276 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2277 ; SSE-NEXT:    movaps %xmm1, 32(%r9)
2278 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2279 ; SSE-NEXT:    movaps %xmm1, 48(%r9)
2280 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2281 ; SSE-NEXT:    movaps %xmm1, (%r9)
2282 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2283 ; SSE-NEXT:    movaps %xmm1, 16(%r9)
2284 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
2285 ; SSE-NEXT:    movaps %xmm4, 32(%rax)
2286 ; SSE-NEXT:    movaps %xmm10, 48(%rax)
2287 ; SSE-NEXT:    movaps %xmm3, (%rax)
2288 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2289 ; SSE-NEXT:    movaps %xmm1, 16(%rax)
2290 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
2291 ; SSE-NEXT:    movaps %xmm0, 48(%rax)
2292 ; SSE-NEXT:    movaps %xmm9, 32(%rax)
2293 ; SSE-NEXT:    movaps %xmm11, 16(%rax)
2294 ; SSE-NEXT:    movaps %xmm2, (%rax)
2295 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
2296 ; SSE-NEXT:    movaps %xmm6, 48(%rax)
2297 ; SSE-NEXT:    movaps %xmm7, 32(%rax)
2298 ; SSE-NEXT:    movaps %xmm12, 16(%rax)
2299 ; SSE-NEXT:    movaps %xmm8, (%rax)
2300 ; SSE-NEXT:    addq $296, %rsp # imm = 0x128
2301 ; SSE-NEXT:    retq
2303 ; AVX-LABEL: load_i32_stride8_vf16:
2304 ; AVX:       # %bb.0:
2305 ; AVX-NEXT:    subq $616, %rsp # imm = 0x268
2306 ; AVX-NEXT:    vmovaps 32(%rdi), %xmm14
2307 ; AVX-NEXT:    vmovaps (%rdi), %xmm9
2308 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm9[0],xmm14[0],xmm9[1],xmm14[1]
2309 ; AVX-NEXT:    vmovaps 96(%rdi), %xmm1
2310 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2311 ; AVX-NEXT:    vmovaps 64(%rdi), %xmm2
2312 ; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2313 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm8 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
2314 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm0[0],xmm8[0]
2315 ; AVX-NEXT:    vmovaps 160(%rdi), %xmm5
2316 ; AVX-NEXT:    vmovaps 128(%rdi), %xmm10
2317 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm10[0],xmm5[0],xmm10[1],xmm5[1]
2318 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm6
2319 ; AVX-NEXT:    vmovaps 224(%rdi), %xmm0
2320 ; AVX-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2321 ; AVX-NEXT:    vmovaps 192(%rdi), %xmm1
2322 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2323 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm4 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
2324 ; AVX-NEXT:    vshufps {{.*#+}} xmm7 = xmm4[0,1,0,1]
2325 ; AVX-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
2326 ; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5],ymm7[6,7]
2327 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm6[4,5,6,7]
2328 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2329 ; AVX-NEXT:    vmovaps 416(%rdi), %xmm11
2330 ; AVX-NEXT:    vmovaps 384(%rdi), %xmm12
2331 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm12[0],xmm11[0],xmm12[1],xmm11[1]
2332 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
2333 ; AVX-NEXT:    vmovaps 480(%rdi), %xmm0
2334 ; AVX-NEXT:    vmovaps %xmm0, (%rsp) # 16-byte Spill
2335 ; AVX-NEXT:    vmovaps 448(%rdi), %xmm1
2336 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2337 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
2338 ; AVX-NEXT:    vshufps {{.*#+}} xmm6 = xmm3[0,1,0,1]
2339 ; AVX-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
2340 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm6[6,7]
2341 ; AVX-NEXT:    vmovaps 288(%rdi), %xmm13
2342 ; AVX-NEXT:    vmovaps 256(%rdi), %xmm15
2343 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm15[0],xmm13[0],xmm15[1],xmm13[1]
2344 ; AVX-NEXT:    vmovaps 352(%rdi), %xmm7
2345 ; AVX-NEXT:    vmovaps 320(%rdi), %xmm6
2346 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm6[0],xmm7[0],xmm6[1],xmm7[1]
2347 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2348 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]
2349 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2350 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm9[1,1,1,1]
2351 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0],xmm14[1],xmm1[2,3]
2352 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm8[2,3]
2353 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm2
2354 ; AVX-NEXT:    vshufps {{.*#+}} xmm4 = xmm10[1,1,1,1]
2355 ; AVX-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0],xmm5[1],xmm4[2,3]
2356 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
2357 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3,4,5],ymm2[6,7]
2358 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]
2359 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2360 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm15[1,1,1,1]
2361 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0],xmm13[1],xmm1[2,3]
2362 ; AVX-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
2363 ; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm1
2364 ; AVX-NEXT:    vshufps {{.*#+}} xmm2 = xmm12[1,1,1,1]
2365 ; AVX-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0],xmm11[1],xmm2[2,3]
2366 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
2367 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
2368 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2369 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2370 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm9[2],xmm14[2],xmm9[3],xmm14[3]
2371 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm10[2],xmm5[2],xmm10[3],xmm5[3]
2372 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
2373 ; AVX-NEXT:    vshufps {{.*#+}} xmm2 = xmm14[2,2,2,2]
2374 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
2375 ; AVX-NEXT:    vblendps {{.*#+}} xmm2 = xmm10[0,1,2],xmm2[3]
2376 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
2377 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm3
2378 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3,4,5],ymm2[6,7]
2379 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload
2380 ; AVX-NEXT:    vshufps {{.*#+}} xmm3 = xmm9[2,2,2,2]
2381 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
2382 ; AVX-NEXT:    vblendps {{.*#+}} xmm3 = xmm8[0,1,2],xmm3[3]
2383 ; AVX-NEXT:    vblendps {{.*#+}} xmm3 = xmm1[0,1],xmm3[2,3]
2384 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
2385 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2386 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm15[2],xmm13[2],xmm15[3],xmm13[3]
2387 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm3 = xmm12[2],xmm11[2],xmm12[3],xmm11[3]
2388 ; AVX-NEXT:    vmovaps (%rsp), %xmm15 # 16-byte Reload
2389 ; AVX-NEXT:    vshufps {{.*#+}} xmm4 = xmm15[2,2,2,2]
2390 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload
2391 ; AVX-NEXT:    vblendps {{.*#+}} xmm4 = xmm11[0,1,2],xmm4[3]
2392 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
2393 ; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm5
2394 ; AVX-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1,2,3,4,5],ymm4[6,7]
2395 ; AVX-NEXT:    vshufps {{.*#+}} xmm5 = xmm7[2,2,2,2]
2396 ; AVX-NEXT:    vblendps {{.*#+}} xmm5 = xmm6[0,1,2],xmm5[3]
2397 ; AVX-NEXT:    vblendps {{.*#+}} xmm5 = xmm2[0,1],xmm5[2,3]
2398 ; AVX-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1,2,3],ymm4[4,5,6,7]
2399 ; AVX-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2400 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm8[2],xmm9[2],xmm8[3],xmm9[3]
2401 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm4[1]
2402 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm10[2],xmm14[2],xmm10[3],xmm14[3]
2403 ; AVX-NEXT:    vmovaps 288(%rdi), %ymm5
2404 ; AVX-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2405 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
2406 ; AVX-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[2,3,2,3]
2407 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
2408 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm4[6,7]
2409 ; AVX-NEXT:    vmovaps 256(%rdi), %ymm4
2410 ; AVX-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2411 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
2412 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2413 ; AVX-NEXT:    vmovaps 416(%rdi), %ymm8
2414 ; AVX-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2415 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm6[2],xmm7[2],xmm6[3],xmm7[3]
2416 ; AVX-NEXT:    vmovaps 384(%rdi), %ymm6
2417 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm2[1],xmm0[1]
2418 ; AVX-NEXT:    vmovaps 448(%rdi), %ymm7
2419 ; AVX-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2420 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm11[2],xmm15[2],xmm11[3],xmm15[3]
2421 ; AVX-NEXT:    vmovaps 480(%rdi), %ymm9
2422 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
2423 ; AVX-NEXT:    vshufps {{.*#+}} xmm2 = xmm3[2,3,2,3]
2424 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
2425 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
2426 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2427 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2428 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm9[0],ymm7[0],ymm9[2],ymm7[2]
2429 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm6[0],ymm8[0],ymm6[1],ymm8[1],ymm6[4],ymm8[4],ymm6[5],ymm8[5]
2430 ; AVX-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2431 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]
2432 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm4[0],ymm5[0],ymm4[1],ymm5[1],ymm4[4],ymm5[4],ymm4[5],ymm5[5]
2433 ; AVX-NEXT:    vextractf128 $1, %ymm1, %xmm1
2434 ; AVX-NEXT:    vmovaps 320(%rdi), %ymm10
2435 ; AVX-NEXT:    vmovaps 352(%rdi), %ymm11
2436 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm11[0],ymm10[0],ymm11[2],ymm10[2]
2437 ; AVX-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2438 ; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[0,1,2,0,4,5,6,4]
2439 ; AVX-NEXT:    vextractf128 $1, %ymm2, %xmm2
2440 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
2441 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
2442 ; AVX-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
2443 ; AVX-NEXT:    vmovaps 160(%rdi), %ymm7
2444 ; AVX-NEXT:    vmovaps 128(%rdi), %ymm5
2445 ; AVX-NEXT:    vmovaps 192(%rdi), %ymm1
2446 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2447 ; AVX-NEXT:    vmovaps 224(%rdi), %ymm0
2448 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2449 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
2450 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm5[0],ymm7[0],ymm5[1],ymm7[1],ymm5[4],ymm7[4],ymm5[5],ymm7[5]
2451 ; AVX-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2452 ; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]
2453 ; AVX-NEXT:    vmovaps 64(%rdi), %ymm0
2454 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2455 ; AVX-NEXT:    vmovaps 96(%rdi), %ymm14
2456 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm14[0],ymm0[0],ymm14[2],ymm0[2]
2457 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[0,1,2,0,4,5,6,4]
2458 ; AVX-NEXT:    vextractf128 $1, %ymm0, %xmm0
2459 ; AVX-NEXT:    vmovaps (%rdi), %ymm13
2460 ; AVX-NEXT:    vmovaps 32(%rdi), %ymm12
2461 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm15 = ymm13[0],ymm12[0],ymm13[1],ymm12[1],ymm13[4],ymm12[4],ymm13[5],ymm12[5]
2462 ; AVX-NEXT:    vextractf128 $1, %ymm15, %xmm15
2463 ; AVX-NEXT:    vblendps {{.*#+}} xmm0 = xmm15[0,1],xmm0[2,3]
2464 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
2465 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2466 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
2467 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm4[0],ymm9[0],ymm4[1],ymm9[1],ymm4[4],ymm9[4],ymm4[5],ymm9[5]
2468 ; AVX-NEXT:    vmovaps %ymm9, %ymm8
2469 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
2470 ; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm9[1,0],ymm6[1,0],ymm9[5,4],ymm6[5,4]
2471 ; AVX-NEXT:    vshufps {{.*#+}} ymm6 = ymm2[2,0],ymm0[2,3],ymm2[6,4],ymm0[6,7]
2472 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm2 = ymm10[0],ymm11[0],ymm10[1],ymm11[1],ymm10[4],ymm11[4],ymm10[5],ymm11[5]
2473 ; AVX-NEXT:    vextractf128 $1, %ymm2, %xmm2
2474 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
2475 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2476 ; AVX-NEXT:    vshufps {{.*#+}} ymm15 = ymm0[1,0],ymm1[1,0],ymm0[5,4],ymm1[5,4]
2477 ; AVX-NEXT:    vshufps {{.*#+}} ymm15 = ymm15[2,0,2,3,6,4,6,7]
2478 ; AVX-NEXT:    vextractf128 $1, %ymm15, %xmm15
2479 ; AVX-NEXT:    vblendps {{.*#+}} xmm2 = xmm15[0,1],xmm2[2,3]
2480 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm6[4,5,6,7]
2481 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2482 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
2483 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
2484 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm15 = ymm3[0],ymm6[0],ymm3[1],ymm6[1],ymm3[4],ymm6[4],ymm3[5],ymm6[5]
2485 ; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm7[1,0],ymm5[1,0],ymm7[5,4],ymm5[5,4]
2486 ; AVX-NEXT:    vmovaps %ymm7, %ymm11
2487 ; AVX-NEXT:    vshufps {{.*#+}} ymm7 = ymm2[2,0],ymm15[2,3],ymm2[6,4],ymm15[6,7]
2488 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
2489 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm2 = ymm5[0],ymm14[0],ymm5[1],ymm14[1],ymm5[4],ymm14[4],ymm5[5],ymm14[5]
2490 ; AVX-NEXT:    vextractf128 $1, %ymm2, %xmm2
2491 ; AVX-NEXT:    vshufps {{.*#+}} ymm15 = ymm12[1,0],ymm13[1,0],ymm12[5,4],ymm13[5,4]
2492 ; AVX-NEXT:    vshufps {{.*#+}} ymm15 = ymm15[2,0,2,3,6,4,6,7]
2493 ; AVX-NEXT:    vextractf128 $1, %ymm15, %xmm15
2494 ; AVX-NEXT:    vblendps {{.*#+}} xmm2 = xmm15[0,1],xmm2[2,3]
2495 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm7[4,5,6,7]
2496 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2497 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm7 = ymm8[1],ymm4[1],ymm8[3],ymm4[3]
2498 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
2499 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm4[2],ymm9[2],ymm4[3],ymm9[3],ymm4[6],ymm9[6],ymm4[7],ymm9[7]
2500 ; AVX-NEXT:    vshufps {{.*#+}} ymm9 = ymm2[0,1],ymm7[2,0],ymm2[4,5],ymm7[6,4]
2501 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm1[2],ymm0[2],ymm1[3],ymm0[3],ymm1[6],ymm0[6],ymm1[7],ymm0[7]
2502 ; AVX-NEXT:    vextractf128 $1, %ymm2, %xmm2
2503 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
2504 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm15 = ymm7[1],ymm10[1],ymm7[3],ymm10[3]
2505 ; AVX-NEXT:    vshufps {{.*#+}} ymm15 = ymm15[0,1,2,0,4,5,6,4]
2506 ; AVX-NEXT:    vextractf128 $1, %ymm15, %xmm15
2507 ; AVX-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm15[2,3]
2508 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm9[4,5,6,7]
2509 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2510 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm6[1],ymm3[1],ymm6[3],ymm3[3]
2511 ; AVX-NEXT:    vmovaps %ymm3, %ymm9
2512 ; AVX-NEXT:    vmovaps %ymm11, %ymm1
2513 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
2514 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm3[2],ymm11[2],ymm3[3],ymm11[3],ymm3[6],ymm11[6],ymm3[7],ymm11[7]
2515 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,0],ymm2[4,5],ymm0[6,4]
2516 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm14[1],ymm5[1],ymm14[3],ymm5[3]
2517 ; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[0,1,2,0,4,5,6,4]
2518 ; AVX-NEXT:    vextractf128 $1, %ymm2, %xmm2
2519 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm15 = ymm13[2],ymm12[2],ymm13[3],ymm12[3],ymm13[6],ymm12[6],ymm13[7],ymm12[7]
2520 ; AVX-NEXT:    vextractf128 $1, %ymm15, %xmm15
2521 ; AVX-NEXT:    vblendps {{.*#+}} xmm2 = xmm15[0,1],xmm2[2,3]
2522 ; AVX-NEXT:    vblendps {{.*#+}} ymm11 = ymm2[0,1,2,3],ymm0[4,5,6,7]
2523 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2524 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm0 = ymm0[2],ymm8[2],ymm0[3],ymm8[3],ymm0[6],ymm8[6],ymm0[7],ymm8[7]
2525 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
2526 ; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[3,0],ymm4[3,0],ymm2[7,4],ymm4[7,4]
2527 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm2[2,0],ymm0[2,3],ymm2[6,4],ymm0[6,7]
2528 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm10[2],ymm7[2],ymm10[3],ymm7[3],ymm10[6],ymm7[6],ymm10[7],ymm7[7]
2529 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
2530 ; AVX-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm7 # 32-byte Folded Reload
2531 ; AVX-NEXT:    # ymm7 = ymm4[3,0],mem[3,0],ymm4[7,4],mem[7,4]
2532 ; AVX-NEXT:    vextractf128 $1, %ymm2, %xmm2
2533 ; AVX-NEXT:    vshufps {{.*#+}} ymm7 = ymm7[2,0,2,3,6,4,6,7]
2534 ; AVX-NEXT:    vextractf128 $1, %ymm7, %xmm7
2535 ; AVX-NEXT:    vblendps {{.*#+}} xmm2 = xmm7[0,1],xmm2[2,3]
2536 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
2537 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm9[2],ymm6[2],ymm9[3],ymm6[3],ymm9[6],ymm6[6],ymm9[7],ymm6[7]
2538 ; AVX-NEXT:    vshufps {{.*#+}} ymm6 = ymm1[3,0],ymm3[3,0],ymm1[7,4],ymm3[7,4]
2539 ; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm6[2,0],ymm2[2,3],ymm6[6,4],ymm2[6,7]
2540 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm4 = ymm5[2],ymm14[2],ymm5[3],ymm14[3],ymm5[6],ymm14[6],ymm5[7],ymm14[7]
2541 ; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm12[3,0],ymm13[3,0],ymm12[7,4],ymm13[7,4]
2542 ; AVX-NEXT:    vextractf128 $1, %ymm4, %xmm3
2543 ; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[2,0,2,3,6,4,6,7]
2544 ; AVX-NEXT:    vextractf128 $1, %ymm1, %xmm1
2545 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm3[2,3]
2546 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]
2547 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
2548 ; AVX-NEXT:    vmovaps %ymm2, 32(%rsi)
2549 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
2550 ; AVX-NEXT:    vmovaps %ymm2, (%rsi)
2551 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
2552 ; AVX-NEXT:    vmovaps %ymm2, 32(%rdx)
2553 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
2554 ; AVX-NEXT:    vmovaps %ymm2, (%rdx)
2555 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
2556 ; AVX-NEXT:    vmovaps %ymm2, 32(%rcx)
2557 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
2558 ; AVX-NEXT:    vmovaps %ymm2, (%rcx)
2559 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
2560 ; AVX-NEXT:    vmovaps %ymm2, 32(%r8)
2561 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
2562 ; AVX-NEXT:    vmovaps %ymm2, (%r8)
2563 ; AVX-NEXT:    vmovups (%rsp), %ymm2 # 32-byte Reload
2564 ; AVX-NEXT:    vmovaps %ymm2, 32(%r9)
2565 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
2566 ; AVX-NEXT:    vmovaps %ymm2, (%r9)
2567 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax
2568 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
2569 ; AVX-NEXT:    vmovaps %ymm2, 32(%rax)
2570 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
2571 ; AVX-NEXT:    vmovaps %ymm2, (%rax)
2572 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax
2573 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
2574 ; AVX-NEXT:    vmovaps %ymm2, 32(%rax)
2575 ; AVX-NEXT:    vmovaps %ymm11, (%rax)
2576 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax
2577 ; AVX-NEXT:    vmovaps %ymm0, 32(%rax)
2578 ; AVX-NEXT:    vmovaps %ymm1, (%rax)
2579 ; AVX-NEXT:    addq $616, %rsp # imm = 0x268
2580 ; AVX-NEXT:    vzeroupper
2581 ; AVX-NEXT:    retq
2583 ; AVX2-LABEL: load_i32_stride8_vf16:
2584 ; AVX2:       # %bb.0:
2585 ; AVX2-NEXT:    subq $456, %rsp # imm = 0x1C8
2586 ; AVX2-NEXT:    vmovaps 288(%rdi), %xmm8
2587 ; AVX2-NEXT:    vmovaps 256(%rdi), %xmm9
2588 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm9[0],xmm8[0],xmm9[1],xmm8[1]
2589 ; AVX2-NEXT:    vmovaps 352(%rdi), %xmm1
2590 ; AVX2-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2591 ; AVX2-NEXT:    vbroadcastss %xmm1, %xmm2
2592 ; AVX2-NEXT:    vmovaps 320(%rdi), %xmm1
2593 ; AVX2-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2594 ; AVX2-NEXT:    vbroadcastss %xmm1, %xmm3
2595 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
2596 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm2[2,3]
2597 ; AVX2-NEXT:    vmovaps 416(%rdi), %xmm1
2598 ; AVX2-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2599 ; AVX2-NEXT:    vmovaps 384(%rdi), %xmm2
2600 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2601 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
2602 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
2603 ; AVX2-NEXT:    vmovaps 480(%rdi), %xmm1
2604 ; AVX2-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2605 ; AVX2-NEXT:    vbroadcastss %xmm1, %xmm3
2606 ; AVX2-NEXT:    vmovaps 448(%rdi), %xmm1
2607 ; AVX2-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2608 ; AVX2-NEXT:    vbroadcastss %xmm1, %xmm10
2609 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm10[0],xmm3[0],xmm10[1],xmm3[1]
2610 ; AVX2-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
2611 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm3[6,7]
2612 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
2613 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2614 ; AVX2-NEXT:    vmovaps 160(%rdi), %xmm6
2615 ; AVX2-NEXT:    vmovaps 128(%rdi), %xmm15
2616 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm15[0],xmm6[0],xmm15[1],xmm6[1]
2617 ; AVX2-NEXT:    vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2618 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
2619 ; AVX2-NEXT:    vmovaps 224(%rdi), %xmm4
2620 ; AVX2-NEXT:    vbroadcastss %xmm4, %xmm3
2621 ; AVX2-NEXT:    vmovaps %xmm4, (%rsp) # 16-byte Spill
2622 ; AVX2-NEXT:    vmovaps 192(%rdi), %xmm12
2623 ; AVX2-NEXT:    vbroadcastss %xmm12, %xmm11
2624 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm11[0],xmm3[0],xmm11[1],xmm3[1]
2625 ; AVX2-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
2626 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm3[6,7]
2627 ; AVX2-NEXT:    vmovaps 96(%rdi), %xmm5
2628 ; AVX2-NEXT:    vbroadcastss %xmm5, %xmm2
2629 ; AVX2-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2630 ; AVX2-NEXT:    vmovaps 64(%rdi), %xmm13
2631 ; AVX2-NEXT:    vbroadcastss %xmm13, %xmm3
2632 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
2633 ; AVX2-NEXT:    vmovaps (%rdi), %xmm11
2634 ; AVX2-NEXT:    vmovaps 32(%rdi), %xmm10
2635 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm11[0],xmm10[0],xmm11[1],xmm10[1]
2636 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm7[0,1],xmm0[2,3]
2637 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2638 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2639 ; AVX2-NEXT:    vshufps {{.*#+}} xmm0 = xmm11[1,1,1,1]
2640 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0],xmm10[1],xmm0[2,3]
2641 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm13[0],xmm5[0],xmm13[1],xmm5[1]
2642 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
2643 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm12[0],xmm4[0],xmm12[1],xmm4[1]
2644 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
2645 ; AVX2-NEXT:    vshufps {{.*#+}} xmm7 = xmm15[1,1,1,1]
2646 ; AVX2-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0],xmm6[1],xmm7[2,3]
2647 ; AVX2-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
2648 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm7[0,1,2,3,4,5],ymm1[6,7]
2649 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2650 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2651 ; AVX2-NEXT:    vshufps {{.*#+}} xmm0 = xmm9[1,1,1,1]
2652 ; AVX2-NEXT:    vmovaps %xmm8, %xmm6
2653 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0],xmm8[1],xmm0[2,3]
2654 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
2655 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
2656 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm14[0],xmm8[0],xmm14[1],xmm8[1]
2657 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
2658 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
2659 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
2660 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
2661 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
2662 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
2663 ; AVX2-NEXT:    vshufps {{.*#+}} xmm7 = xmm5[1,1,1,1]
2664 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
2665 ; AVX2-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0],xmm4[1],xmm7[2,3]
2666 ; AVX2-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
2667 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm7[0,1,2,3,4,5],ymm1[6,7]
2668 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2669 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2670 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm9[2],xmm6[2],xmm9[3],xmm6[3]
2671 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
2672 ; AVX2-NEXT:    vshufps {{.*#+}} xmm5 = xmm2[2,2,2,2]
2673 ; AVX2-NEXT:    vblendps {{.*#+}} xmm5 = xmm3[0,1,2],xmm5[3]
2674 ; AVX2-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
2675 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm6
2676 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2,3,4,5],ymm5[6,7]
2677 ; AVX2-NEXT:    vmovaps %xmm8, %xmm7
2678 ; AVX2-NEXT:    vshufps {{.*#+}} xmm6 = xmm8[2,2,2,2]
2679 ; AVX2-NEXT:    vblendps {{.*#+}} xmm6 = xmm14[0,1,2],xmm6[3]
2680 ; AVX2-NEXT:    vblendps {{.*#+}} xmm6 = xmm0[0,1],xmm6[2,3]
2681 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2,3],ymm5[4,5,6,7]
2682 ; AVX2-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2683 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm4 # 16-byte Folded Reload
2684 ; AVX2-NEXT:    # xmm4 = xmm15[2],mem[2],xmm15[3],mem[3]
2685 ; AVX2-NEXT:    vmovaps (%rsp), %xmm9 # 16-byte Reload
2686 ; AVX2-NEXT:    vshufps {{.*#+}} xmm5 = xmm9[2,2,2,2]
2687 ; AVX2-NEXT:    vblendps {{.*#+}} xmm5 = xmm12[0,1,2],xmm5[3]
2688 ; AVX2-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
2689 ; AVX2-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm6
2690 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2,3,4,5],ymm5[6,7]
2691 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm11[2],xmm10[2],xmm11[3],xmm10[3]
2692 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
2693 ; AVX2-NEXT:    vshufps {{.*#+}} xmm3 = xmm8[2,2,2,2]
2694 ; AVX2-NEXT:    vblendps {{.*#+}} xmm3 = xmm13[0,1,2],xmm3[3]
2695 ; AVX2-NEXT:    vblendps {{.*#+}} xmm3 = xmm2[0,1],xmm3[2,3]
2696 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm5[4,5,6,7]
2697 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2698 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm3 = xmm14[2],xmm7[2],xmm14[3],xmm7[3]
2699 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm3[1]
2700 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
2701 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm3 # 16-byte Folded Reload
2702 ; AVX2-NEXT:    # xmm3 = xmm3[2],mem[2],xmm3[3],mem[3]
2703 ; AVX2-NEXT:    vmovaps 96(%rdi), %ymm5
2704 ; AVX2-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2705 ; AVX2-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
2706 ; AVX2-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[2,3,2,3]
2707 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
2708 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
2709 ; AVX2-NEXT:    vmovaps 64(%rdi), %ymm6
2710 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2711 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2712 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2713 ; AVX2-NEXT:    vmovaps 32(%rdi), %ymm15
2714 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm12[2],xmm9[2],xmm12[3],xmm9[3]
2715 ; AVX2-NEXT:    vmovaps (%rdi), %ymm14
2716 ; AVX2-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
2717 ; AVX2-NEXT:    vshufps {{.*#+}} xmm1 = xmm4[2,3,2,3]
2718 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
2719 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
2720 ; AVX2-NEXT:    vmovaps 224(%rdi), %ymm3
2721 ; AVX2-NEXT:    vmovups %ymm3, (%rsp) # 32-byte Spill
2722 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm13[2],xmm8[2],xmm13[3],xmm8[3]
2723 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm2[1],xmm1[1]
2724 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
2725 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2726 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm14[0],ymm15[0],ymm14[1],ymm15[1],ymm14[4],ymm15[4],ymm14[5],ymm15[5]
2727 ; AVX2-NEXT:    vextractf128 $1, %ymm0, %xmm0
2728 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm11 = ymm6[0],ymm5[0],ymm6[1],ymm5[1],ymm6[4],ymm5[4],ymm6[5],ymm5[5]
2729 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm11[2,2,2,2]
2730 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
2731 ; AVX2-NEXT:    vmovaps 192(%rdi), %ymm1
2732 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2733 ; AVX2-NEXT:    vmovaps 160(%rdi), %ymm7
2734 ; AVX2-NEXT:    vmovaps 128(%rdi), %ymm13
2735 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm2 = ymm13[0],ymm7[0],ymm13[1],ymm7[1],ymm13[4],ymm7[4],ymm13[5],ymm7[5]
2736 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm5 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[5],ymm3[5]
2737 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm2[0],ymm5[0],ymm2[2],ymm5[2]
2738 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
2739 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2740 ; AVX2-NEXT:    vmovaps 288(%rdi), %ymm9
2741 ; AVX2-NEXT:    vmovaps 256(%rdi), %ymm8
2742 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm8[0],ymm9[0],ymm8[1],ymm9[1],ymm8[4],ymm9[4],ymm8[5],ymm9[5]
2743 ; AVX2-NEXT:    vextractf128 $1, %ymm0, %xmm0
2744 ; AVX2-NEXT:    vmovaps 352(%rdi), %ymm1
2745 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2746 ; AVX2-NEXT:    vmovaps 320(%rdi), %ymm2
2747 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2748 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm4 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[4],ymm1[4],ymm2[5],ymm1[5]
2749 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm6 = ymm4[2,2,2,2]
2750 ; AVX2-NEXT:    vblendps {{.*#+}} xmm2 = xmm0[0,1],xmm6[2,3]
2751 ; AVX2-NEXT:    vmovaps 480(%rdi), %ymm0
2752 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2753 ; AVX2-NEXT:    vmovaps 448(%rdi), %ymm12
2754 ; AVX2-NEXT:    vmovaps 416(%rdi), %ymm6
2755 ; AVX2-NEXT:    vmovaps 384(%rdi), %ymm10
2756 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm10[0],ymm6[0],ymm10[1],ymm6[1],ymm10[4],ymm6[4],ymm10[5],ymm6[5]
2757 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm3 = ymm12[0],ymm0[0],ymm12[1],ymm0[1],ymm12[4],ymm0[4],ymm12[5],ymm0[5]
2758 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm3[0],ymm1[2],ymm3[2]
2759 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
2760 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2761 ; AVX2-NEXT:    vbroadcastss 148(%rdi), %ymm0
2762 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm7[5],ymm0[6,7]
2763 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm5[6,7]
2764 ; AVX2-NEXT:    vextractf128 $1, %ymm11, %xmm2
2765 ; AVX2-NEXT:    vshufps {{.*#+}} ymm5 = ymm14[1,1,1,1,5,5,5,5]
2766 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0],ymm15[1],ymm5[2,3,4],ymm15[5],ymm5[6,7]
2767 ; AVX2-NEXT:    vextractf128 $1, %ymm5, %xmm5
2768 ; AVX2-NEXT:    vblendps {{.*#+}} xmm2 = xmm5[0,1],xmm2[2,3]
2769 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
2770 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2771 ; AVX2-NEXT:    vbroadcastss 404(%rdi), %ymm0
2772 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm6[5],ymm0[6,7]
2773 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm3[6,7]
2774 ; AVX2-NEXT:    vextractf128 $1, %ymm4, %xmm1
2775 ; AVX2-NEXT:    vshufps {{.*#+}} ymm2 = ymm8[1,1,1,1,5,5,5,5]
2776 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0],ymm9[1],ymm2[2,3,4],ymm9[5],ymm2[6,7]
2777 ; AVX2-NEXT:    vextractf128 $1, %ymm2, %xmm2
2778 ; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
2779 ; AVX2-NEXT:    vblendps {{.*#+}} ymm11 = ymm1[0,1,2,3],ymm0[4,5,6,7]
2780 ; AVX2-NEXT:    vbroadcastss 248(%rdi), %ymm0
2781 ; AVX2-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
2782 ; AVX2-NEXT:    # ymm0 = mem[0,1,2,3,4,5,6],ymm0[7]
2783 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm13[2],ymm7[2],ymm13[3],ymm7[3],ymm13[6],ymm7[6],ymm13[7],ymm7[7]
2784 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm4 = ymm14[2],ymm15[2],ymm14[3],ymm15[3],ymm14[6],ymm15[6],ymm14[7],ymm15[7]
2785 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
2786 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm5 # 32-byte Folded Reload
2787 ; AVX2-NEXT:    # ymm5 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
2788 ; AVX2-NEXT:    vextractf128 $1, %ymm4, %xmm1
2789 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm7 = ymm5[2,2,2,2]
2790 ; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm7[2,3]
2791 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3,4,5],ymm0[6,7]
2792 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm0[4,5,6,7]
2793 ; AVX2-NEXT:    vbroadcastss 504(%rdi), %ymm0
2794 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm12[0,1,2,3,4,5,6],ymm0[7]
2795 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm3 = ymm10[2],ymm6[2],ymm10[3],ymm6[3],ymm10[6],ymm6[6],ymm10[7],ymm6[7]
2796 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm6 = ymm8[2],ymm9[2],ymm8[3],ymm9[3],ymm8[6],ymm9[6],ymm8[7],ymm9[7]
2797 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
2798 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload
2799 ; AVX2-NEXT:    # ymm7 = ymm7[2],mem[2],ymm7[3],mem[3],ymm7[6],mem[6],ymm7[7],mem[7]
2800 ; AVX2-NEXT:    vextractf128 $1, %ymm6, %xmm8
2801 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm9 = ymm7[2,2,2,2]
2802 ; AVX2-NEXT:    vblendps {{.*#+}} xmm8 = xmm8[0,1],xmm9[2,3]
2803 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm0[6,7]
2804 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm8[0,1,2,3],ymm0[4,5,6,7]
2805 ; AVX2-NEXT:    vbroadcastss 220(%rdi), %ymm8
2806 ; AVX2-NEXT:    vunpckhps (%rsp), %ymm8, %ymm8 # 32-byte Folded Reload
2807 ; AVX2-NEXT:    # ymm8 = ymm8[2],mem[2],ymm8[3],mem[3],ymm8[6],mem[6],ymm8[7],mem[7]
2808 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm8[1],ymm2[3],ymm8[3]
2809 ; AVX2-NEXT:    vextractf128 $1, %ymm5, %xmm5
2810 ; AVX2-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[2,3,2,3,6,7,6,7]
2811 ; AVX2-NEXT:    vextractf128 $1, %ymm4, %xmm4
2812 ; AVX2-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],xmm5[2,3]
2813 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3],ymm2[4,5,6,7]
2814 ; AVX2-NEXT:    vbroadcastss 476(%rdi), %ymm4
2815 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload
2816 ; AVX2-NEXT:    # ymm4 = ymm4[2],mem[2],ymm4[3],mem[3],ymm4[6],mem[6],ymm4[7],mem[7]
2817 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm3 = ymm3[1],ymm4[1],ymm3[3],ymm4[3]
2818 ; AVX2-NEXT:    vextractf128 $1, %ymm7, %xmm4
2819 ; AVX2-NEXT:    vshufps {{.*#+}} ymm5 = ymm6[2,3,2,3,6,7,6,7]
2820 ; AVX2-NEXT:    vextractf128 $1, %ymm5, %xmm5
2821 ; AVX2-NEXT:    vblendps {{.*#+}} xmm4 = xmm5[0,1],xmm4[2,3]
2822 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
2823 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
2824 ; AVX2-NEXT:    vmovaps %ymm4, 32(%rsi)
2825 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
2826 ; AVX2-NEXT:    vmovaps %ymm4, (%rsi)
2827 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
2828 ; AVX2-NEXT:    vmovaps %ymm4, 32(%rdx)
2829 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
2830 ; AVX2-NEXT:    vmovaps %ymm4, (%rdx)
2831 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
2832 ; AVX2-NEXT:    vmovaps %ymm4, 32(%rcx)
2833 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
2834 ; AVX2-NEXT:    vmovaps %ymm4, (%rcx)
2835 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
2836 ; AVX2-NEXT:    vmovaps %ymm4, 32(%r8)
2837 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
2838 ; AVX2-NEXT:    vmovaps %ymm4, (%r8)
2839 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
2840 ; AVX2-NEXT:    vmovaps %ymm4, 32(%r9)
2841 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
2842 ; AVX2-NEXT:    vmovaps %ymm4, (%r9)
2843 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rax
2844 ; AVX2-NEXT:    vmovaps %ymm11, 32(%rax)
2845 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
2846 ; AVX2-NEXT:    vmovaps %ymm4, (%rax)
2847 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rax
2848 ; AVX2-NEXT:    vmovaps %ymm0, 32(%rax)
2849 ; AVX2-NEXT:    vmovaps %ymm1, (%rax)
2850 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rax
2851 ; AVX2-NEXT:    vmovaps %ymm3, 32(%rax)
2852 ; AVX2-NEXT:    vmovaps %ymm2, (%rax)
2853 ; AVX2-NEXT:    addq $456, %rsp # imm = 0x1C8
2854 ; AVX2-NEXT:    vzeroupper
2855 ; AVX2-NEXT:    retq
2857 ; AVX2-FP-LABEL: load_i32_stride8_vf16:
2858 ; AVX2-FP:       # %bb.0:
2859 ; AVX2-FP-NEXT:    subq $456, %rsp # imm = 0x1C8
2860 ; AVX2-FP-NEXT:    vmovaps 288(%rdi), %xmm8
2861 ; AVX2-FP-NEXT:    vmovaps 256(%rdi), %xmm9
2862 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm9[0],xmm8[0],xmm9[1],xmm8[1]
2863 ; AVX2-FP-NEXT:    vmovaps 352(%rdi), %xmm1
2864 ; AVX2-FP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2865 ; AVX2-FP-NEXT:    vbroadcastss %xmm1, %xmm2
2866 ; AVX2-FP-NEXT:    vmovaps 320(%rdi), %xmm1
2867 ; AVX2-FP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2868 ; AVX2-FP-NEXT:    vbroadcastss %xmm1, %xmm3
2869 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
2870 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm2[2,3]
2871 ; AVX2-FP-NEXT:    vmovaps 416(%rdi), %xmm1
2872 ; AVX2-FP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2873 ; AVX2-FP-NEXT:    vmovaps 384(%rdi), %xmm2
2874 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2875 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
2876 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
2877 ; AVX2-FP-NEXT:    vmovaps 480(%rdi), %xmm1
2878 ; AVX2-FP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2879 ; AVX2-FP-NEXT:    vbroadcastss %xmm1, %xmm3
2880 ; AVX2-FP-NEXT:    vmovaps 448(%rdi), %xmm1
2881 ; AVX2-FP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2882 ; AVX2-FP-NEXT:    vbroadcastss %xmm1, %xmm10
2883 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm10[0],xmm3[0],xmm10[1],xmm3[1]
2884 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
2885 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm3[6,7]
2886 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
2887 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2888 ; AVX2-FP-NEXT:    vmovaps 160(%rdi), %xmm6
2889 ; AVX2-FP-NEXT:    vmovaps 128(%rdi), %xmm15
2890 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm15[0],xmm6[0],xmm15[1],xmm6[1]
2891 ; AVX2-FP-NEXT:    vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2892 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
2893 ; AVX2-FP-NEXT:    vmovaps 224(%rdi), %xmm4
2894 ; AVX2-FP-NEXT:    vbroadcastss %xmm4, %xmm3
2895 ; AVX2-FP-NEXT:    vmovaps %xmm4, (%rsp) # 16-byte Spill
2896 ; AVX2-FP-NEXT:    vmovaps 192(%rdi), %xmm12
2897 ; AVX2-FP-NEXT:    vbroadcastss %xmm12, %xmm11
2898 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm11[0],xmm3[0],xmm11[1],xmm3[1]
2899 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
2900 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm3[6,7]
2901 ; AVX2-FP-NEXT:    vmovaps 96(%rdi), %xmm5
2902 ; AVX2-FP-NEXT:    vbroadcastss %xmm5, %xmm2
2903 ; AVX2-FP-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2904 ; AVX2-FP-NEXT:    vmovaps 64(%rdi), %xmm13
2905 ; AVX2-FP-NEXT:    vbroadcastss %xmm13, %xmm3
2906 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
2907 ; AVX2-FP-NEXT:    vmovaps (%rdi), %xmm11
2908 ; AVX2-FP-NEXT:    vmovaps 32(%rdi), %xmm10
2909 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm11[0],xmm10[0],xmm11[1],xmm10[1]
2910 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm7[0,1],xmm0[2,3]
2911 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2912 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2913 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm0 = xmm11[1,1,1,1]
2914 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0],xmm10[1],xmm0[2,3]
2915 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm13[0],xmm5[0],xmm13[1],xmm5[1]
2916 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
2917 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm12[0],xmm4[0],xmm12[1],xmm4[1]
2918 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
2919 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm7 = xmm15[1,1,1,1]
2920 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0],xmm6[1],xmm7[2,3]
2921 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
2922 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm7[0,1,2,3,4,5],ymm1[6,7]
2923 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2924 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2925 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm0 = xmm9[1,1,1,1]
2926 ; AVX2-FP-NEXT:    vmovaps %xmm8, %xmm6
2927 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0],xmm8[1],xmm0[2,3]
2928 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
2929 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
2930 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm14[0],xmm8[0],xmm14[1],xmm8[1]
2931 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
2932 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
2933 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
2934 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
2935 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
2936 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
2937 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm7 = xmm5[1,1,1,1]
2938 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
2939 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0],xmm4[1],xmm7[2,3]
2940 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
2941 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm7[0,1,2,3,4,5],ymm1[6,7]
2942 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2943 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2944 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm9[2],xmm6[2],xmm9[3],xmm6[3]
2945 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
2946 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm5 = xmm2[2,2,2,2]
2947 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm5 = xmm3[0,1,2],xmm5[3]
2948 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
2949 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm6
2950 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2,3,4,5],ymm5[6,7]
2951 ; AVX2-FP-NEXT:    vmovaps %xmm8, %xmm7
2952 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm6 = xmm8[2,2,2,2]
2953 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm6 = xmm14[0,1,2],xmm6[3]
2954 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm6 = xmm0[0,1],xmm6[2,3]
2955 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2,3],ymm5[4,5,6,7]
2956 ; AVX2-FP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2957 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm4 # 16-byte Folded Reload
2958 ; AVX2-FP-NEXT:    # xmm4 = xmm15[2],mem[2],xmm15[3],mem[3]
2959 ; AVX2-FP-NEXT:    vmovaps (%rsp), %xmm9 # 16-byte Reload
2960 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm5 = xmm9[2,2,2,2]
2961 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm5 = xmm12[0,1,2],xmm5[3]
2962 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
2963 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm6
2964 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2,3,4,5],ymm5[6,7]
2965 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm11[2],xmm10[2],xmm11[3],xmm10[3]
2966 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
2967 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm3 = xmm8[2,2,2,2]
2968 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm3 = xmm13[0,1,2],xmm3[3]
2969 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm3 = xmm2[0,1],xmm3[2,3]
2970 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm5[4,5,6,7]
2971 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2972 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm3 = xmm14[2],xmm7[2],xmm14[3],xmm7[3]
2973 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm3[1]
2974 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
2975 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm3 # 16-byte Folded Reload
2976 ; AVX2-FP-NEXT:    # xmm3 = xmm3[2],mem[2],xmm3[3],mem[3]
2977 ; AVX2-FP-NEXT:    vmovaps 96(%rdi), %ymm5
2978 ; AVX2-FP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2979 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
2980 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[2,3,2,3]
2981 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
2982 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
2983 ; AVX2-FP-NEXT:    vmovaps 64(%rdi), %ymm6
2984 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2985 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2986 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2987 ; AVX2-FP-NEXT:    vmovaps 32(%rdi), %ymm15
2988 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm12[2],xmm9[2],xmm12[3],xmm9[3]
2989 ; AVX2-FP-NEXT:    vmovaps (%rdi), %ymm14
2990 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
2991 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm1 = xmm4[2,3,2,3]
2992 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
2993 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
2994 ; AVX2-FP-NEXT:    vmovaps 224(%rdi), %ymm3
2995 ; AVX2-FP-NEXT:    vmovups %ymm3, (%rsp) # 32-byte Spill
2996 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm13[2],xmm8[2],xmm13[3],xmm8[3]
2997 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm2[1],xmm1[1]
2998 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
2999 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3000 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm14[0],ymm15[0],ymm14[1],ymm15[1],ymm14[4],ymm15[4],ymm14[5],ymm15[5]
3001 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm0, %xmm0
3002 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm11 = ymm6[0],ymm5[0],ymm6[1],ymm5[1],ymm6[4],ymm5[4],ymm6[5],ymm5[5]
3003 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm11[2,2,2,2]
3004 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
3005 ; AVX2-FP-NEXT:    vmovaps 192(%rdi), %ymm1
3006 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3007 ; AVX2-FP-NEXT:    vmovaps 160(%rdi), %ymm7
3008 ; AVX2-FP-NEXT:    vmovaps 128(%rdi), %ymm13
3009 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm2 = ymm13[0],ymm7[0],ymm13[1],ymm7[1],ymm13[4],ymm7[4],ymm13[5],ymm7[5]
3010 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm5 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[5],ymm3[5]
3011 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm2[0],ymm5[0],ymm2[2],ymm5[2]
3012 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
3013 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3014 ; AVX2-FP-NEXT:    vmovaps 288(%rdi), %ymm9
3015 ; AVX2-FP-NEXT:    vmovaps 256(%rdi), %ymm8
3016 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm8[0],ymm9[0],ymm8[1],ymm9[1],ymm8[4],ymm9[4],ymm8[5],ymm9[5]
3017 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm0, %xmm0
3018 ; AVX2-FP-NEXT:    vmovaps 352(%rdi), %ymm1
3019 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3020 ; AVX2-FP-NEXT:    vmovaps 320(%rdi), %ymm2
3021 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3022 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm4 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[4],ymm1[4],ymm2[5],ymm1[5]
3023 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm6 = ymm4[2,2,2,2]
3024 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm2 = xmm0[0,1],xmm6[2,3]
3025 ; AVX2-FP-NEXT:    vmovaps 480(%rdi), %ymm0
3026 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3027 ; AVX2-FP-NEXT:    vmovaps 448(%rdi), %ymm12
3028 ; AVX2-FP-NEXT:    vmovaps 416(%rdi), %ymm6
3029 ; AVX2-FP-NEXT:    vmovaps 384(%rdi), %ymm10
3030 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm10[0],ymm6[0],ymm10[1],ymm6[1],ymm10[4],ymm6[4],ymm10[5],ymm6[5]
3031 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm3 = ymm12[0],ymm0[0],ymm12[1],ymm0[1],ymm12[4],ymm0[4],ymm12[5],ymm0[5]
3032 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm3[0],ymm1[2],ymm3[2]
3033 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
3034 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3035 ; AVX2-FP-NEXT:    vbroadcastss 148(%rdi), %ymm0
3036 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm7[5],ymm0[6,7]
3037 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm5[6,7]
3038 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm11, %xmm2
3039 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm5 = ymm14[1,1,1,1,5,5,5,5]
3040 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0],ymm15[1],ymm5[2,3,4],ymm15[5],ymm5[6,7]
3041 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm5, %xmm5
3042 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm2 = xmm5[0,1],xmm2[2,3]
3043 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
3044 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3045 ; AVX2-FP-NEXT:    vbroadcastss 404(%rdi), %ymm0
3046 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm6[5],ymm0[6,7]
3047 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm3[6,7]
3048 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm4, %xmm1
3049 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm2 = ymm8[1,1,1,1,5,5,5,5]
3050 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0],ymm9[1],ymm2[2,3,4],ymm9[5],ymm2[6,7]
3051 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm2, %xmm2
3052 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
3053 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm11 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3054 ; AVX2-FP-NEXT:    vbroadcastss 248(%rdi), %ymm0
3055 ; AVX2-FP-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
3056 ; AVX2-FP-NEXT:    # ymm0 = mem[0,1,2,3,4,5,6],ymm0[7]
3057 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm13[2],ymm7[2],ymm13[3],ymm7[3],ymm13[6],ymm7[6],ymm13[7],ymm7[7]
3058 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm4 = ymm14[2],ymm15[2],ymm14[3],ymm15[3],ymm14[6],ymm15[6],ymm14[7],ymm15[7]
3059 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3060 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm5 # 32-byte Folded Reload
3061 ; AVX2-FP-NEXT:    # ymm5 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
3062 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm4, %xmm1
3063 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm7 = ymm5[2,2,2,2]
3064 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm7[2,3]
3065 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3,4,5],ymm0[6,7]
3066 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3067 ; AVX2-FP-NEXT:    vbroadcastss 504(%rdi), %ymm0
3068 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm12[0,1,2,3,4,5,6],ymm0[7]
3069 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm3 = ymm10[2],ymm6[2],ymm10[3],ymm6[3],ymm10[6],ymm6[6],ymm10[7],ymm6[7]
3070 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm6 = ymm8[2],ymm9[2],ymm8[3],ymm9[3],ymm8[6],ymm9[6],ymm8[7],ymm9[7]
3071 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
3072 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload
3073 ; AVX2-FP-NEXT:    # ymm7 = ymm7[2],mem[2],ymm7[3],mem[3],ymm7[6],mem[6],ymm7[7],mem[7]
3074 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm6, %xmm8
3075 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm9 = ymm7[2,2,2,2]
3076 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm8 = xmm8[0,1],xmm9[2,3]
3077 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm0[6,7]
3078 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm8[0,1,2,3],ymm0[4,5,6,7]
3079 ; AVX2-FP-NEXT:    vbroadcastss 220(%rdi), %ymm8
3080 ; AVX2-FP-NEXT:    vunpckhps (%rsp), %ymm8, %ymm8 # 32-byte Folded Reload
3081 ; AVX2-FP-NEXT:    # ymm8 = ymm8[2],mem[2],ymm8[3],mem[3],ymm8[6],mem[6],ymm8[7],mem[7]
3082 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm8[1],ymm2[3],ymm8[3]
3083 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm5, %xmm5
3084 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[2,3,2,3,6,7,6,7]
3085 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm4, %xmm4
3086 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],xmm5[2,3]
3087 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3],ymm2[4,5,6,7]
3088 ; AVX2-FP-NEXT:    vbroadcastss 476(%rdi), %ymm4
3089 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload
3090 ; AVX2-FP-NEXT:    # ymm4 = ymm4[2],mem[2],ymm4[3],mem[3],ymm4[6],mem[6],ymm4[7],mem[7]
3091 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm3 = ymm3[1],ymm4[1],ymm3[3],ymm4[3]
3092 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm7, %xmm4
3093 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm5 = ymm6[2,3,2,3,6,7,6,7]
3094 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm5, %xmm5
3095 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm4 = xmm5[0,1],xmm4[2,3]
3096 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
3097 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3098 ; AVX2-FP-NEXT:    vmovaps %ymm4, 32(%rsi)
3099 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3100 ; AVX2-FP-NEXT:    vmovaps %ymm4, (%rsi)
3101 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3102 ; AVX2-FP-NEXT:    vmovaps %ymm4, 32(%rdx)
3103 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3104 ; AVX2-FP-NEXT:    vmovaps %ymm4, (%rdx)
3105 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3106 ; AVX2-FP-NEXT:    vmovaps %ymm4, 32(%rcx)
3107 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3108 ; AVX2-FP-NEXT:    vmovaps %ymm4, (%rcx)
3109 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3110 ; AVX2-FP-NEXT:    vmovaps %ymm4, 32(%r8)
3111 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3112 ; AVX2-FP-NEXT:    vmovaps %ymm4, (%r8)
3113 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3114 ; AVX2-FP-NEXT:    vmovaps %ymm4, 32(%r9)
3115 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3116 ; AVX2-FP-NEXT:    vmovaps %ymm4, (%r9)
3117 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3118 ; AVX2-FP-NEXT:    vmovaps %ymm11, 32(%rax)
3119 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3120 ; AVX2-FP-NEXT:    vmovaps %ymm4, (%rax)
3121 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3122 ; AVX2-FP-NEXT:    vmovaps %ymm0, 32(%rax)
3123 ; AVX2-FP-NEXT:    vmovaps %ymm1, (%rax)
3124 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3125 ; AVX2-FP-NEXT:    vmovaps %ymm3, 32(%rax)
3126 ; AVX2-FP-NEXT:    vmovaps %ymm2, (%rax)
3127 ; AVX2-FP-NEXT:    addq $456, %rsp # imm = 0x1C8
3128 ; AVX2-FP-NEXT:    vzeroupper
3129 ; AVX2-FP-NEXT:    retq
3131 ; AVX2-FCP-LABEL: load_i32_stride8_vf16:
3132 ; AVX2-FCP:       # %bb.0:
3133 ; AVX2-FCP-NEXT:    subq $456, %rsp # imm = 0x1C8
3134 ; AVX2-FCP-NEXT:    vmovaps 288(%rdi), %xmm8
3135 ; AVX2-FCP-NEXT:    vmovaps 256(%rdi), %xmm9
3136 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm9[0],xmm8[0],xmm9[1],xmm8[1]
3137 ; AVX2-FCP-NEXT:    vmovaps 352(%rdi), %xmm1
3138 ; AVX2-FCP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3139 ; AVX2-FCP-NEXT:    vbroadcastss %xmm1, %xmm2
3140 ; AVX2-FCP-NEXT:    vmovaps 320(%rdi), %xmm1
3141 ; AVX2-FCP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3142 ; AVX2-FCP-NEXT:    vbroadcastss %xmm1, %xmm3
3143 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
3144 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm2[2,3]
3145 ; AVX2-FCP-NEXT:    vmovaps 416(%rdi), %xmm1
3146 ; AVX2-FCP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3147 ; AVX2-FCP-NEXT:    vmovaps 384(%rdi), %xmm2
3148 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3149 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
3150 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
3151 ; AVX2-FCP-NEXT:    vmovaps 480(%rdi), %xmm1
3152 ; AVX2-FCP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3153 ; AVX2-FCP-NEXT:    vbroadcastss %xmm1, %xmm3
3154 ; AVX2-FCP-NEXT:    vmovaps 448(%rdi), %xmm1
3155 ; AVX2-FCP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3156 ; AVX2-FCP-NEXT:    vbroadcastss %xmm1, %xmm10
3157 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm10[0],xmm3[0],xmm10[1],xmm3[1]
3158 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
3159 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm3[6,7]
3160 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
3161 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3162 ; AVX2-FCP-NEXT:    vmovaps 160(%rdi), %xmm6
3163 ; AVX2-FCP-NEXT:    vmovaps 128(%rdi), %xmm15
3164 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm15[0],xmm6[0],xmm15[1],xmm6[1]
3165 ; AVX2-FCP-NEXT:    vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3166 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
3167 ; AVX2-FCP-NEXT:    vmovaps 224(%rdi), %xmm4
3168 ; AVX2-FCP-NEXT:    vbroadcastss %xmm4, %xmm3
3169 ; AVX2-FCP-NEXT:    vmovaps %xmm4, (%rsp) # 16-byte Spill
3170 ; AVX2-FCP-NEXT:    vmovaps 192(%rdi), %xmm12
3171 ; AVX2-FCP-NEXT:    vbroadcastss %xmm12, %xmm11
3172 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm11[0],xmm3[0],xmm11[1],xmm3[1]
3173 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
3174 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm3[6,7]
3175 ; AVX2-FCP-NEXT:    vmovaps 96(%rdi), %xmm5
3176 ; AVX2-FCP-NEXT:    vbroadcastss %xmm5, %xmm2
3177 ; AVX2-FCP-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3178 ; AVX2-FCP-NEXT:    vmovaps 64(%rdi), %xmm13
3179 ; AVX2-FCP-NEXT:    vbroadcastss %xmm13, %xmm3
3180 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
3181 ; AVX2-FCP-NEXT:    vmovaps (%rdi), %xmm11
3182 ; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %xmm10
3183 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm11[0],xmm10[0],xmm11[1],xmm10[1]
3184 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm7[0,1],xmm0[2,3]
3185 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
3186 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3187 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm0 = xmm11[1,1,1,1]
3188 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0],xmm10[1],xmm0[2,3]
3189 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm13[0],xmm5[0],xmm13[1],xmm5[1]
3190 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
3191 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm12[0],xmm4[0],xmm12[1],xmm4[1]
3192 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
3193 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm7 = xmm15[1,1,1,1]
3194 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0],xmm6[1],xmm7[2,3]
3195 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
3196 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm7[0,1,2,3,4,5],ymm1[6,7]
3197 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
3198 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3199 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm0 = xmm9[1,1,1,1]
3200 ; AVX2-FCP-NEXT:    vmovaps %xmm8, %xmm6
3201 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0],xmm8[1],xmm0[2,3]
3202 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
3203 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
3204 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm14[0],xmm8[0],xmm14[1],xmm8[1]
3205 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
3206 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
3207 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
3208 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
3209 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
3210 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
3211 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm7 = xmm5[1,1,1,1]
3212 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
3213 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0],xmm4[1],xmm7[2,3]
3214 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
3215 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm7[0,1,2,3,4,5],ymm1[6,7]
3216 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
3217 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3218 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm9[2],xmm6[2],xmm9[3],xmm6[3]
3219 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
3220 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm5 = xmm2[2,2,2,2]
3221 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm5 = xmm3[0,1,2],xmm5[3]
3222 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
3223 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm6
3224 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2,3,4,5],ymm5[6,7]
3225 ; AVX2-FCP-NEXT:    vmovaps %xmm8, %xmm7
3226 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm6 = xmm8[2,2,2,2]
3227 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm6 = xmm14[0,1,2],xmm6[3]
3228 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm6 = xmm0[0,1],xmm6[2,3]
3229 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2,3],ymm5[4,5,6,7]
3230 ; AVX2-FCP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3231 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm4 # 16-byte Folded Reload
3232 ; AVX2-FCP-NEXT:    # xmm4 = xmm15[2],mem[2],xmm15[3],mem[3]
3233 ; AVX2-FCP-NEXT:    vmovaps (%rsp), %xmm9 # 16-byte Reload
3234 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm5 = xmm9[2,2,2,2]
3235 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm5 = xmm12[0,1,2],xmm5[3]
3236 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
3237 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm6
3238 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2,3,4,5],ymm5[6,7]
3239 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm11[2],xmm10[2],xmm11[3],xmm10[3]
3240 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
3241 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm3 = xmm8[2,2,2,2]
3242 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm3 = xmm13[0,1,2],xmm3[3]
3243 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm3 = xmm2[0,1],xmm3[2,3]
3244 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm5[4,5,6,7]
3245 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3246 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm3 = xmm14[2],xmm7[2],xmm14[3],xmm7[3]
3247 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm3[1]
3248 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
3249 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm3 # 16-byte Folded Reload
3250 ; AVX2-FCP-NEXT:    # xmm3 = xmm3[2],mem[2],xmm3[3],mem[3]
3251 ; AVX2-FCP-NEXT:    vmovaps 96(%rdi), %ymm5
3252 ; AVX2-FCP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3253 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
3254 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[2,3,2,3]
3255 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
3256 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
3257 ; AVX2-FCP-NEXT:    vmovaps 64(%rdi), %ymm6
3258 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3259 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
3260 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3261 ; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %ymm15
3262 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm12[2],xmm9[2],xmm12[3],xmm9[3]
3263 ; AVX2-FCP-NEXT:    vmovaps (%rdi), %ymm14
3264 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
3265 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm1 = xmm4[2,3,2,3]
3266 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
3267 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
3268 ; AVX2-FCP-NEXT:    vmovaps 224(%rdi), %ymm3
3269 ; AVX2-FCP-NEXT:    vmovups %ymm3, (%rsp) # 32-byte Spill
3270 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm13[2],xmm8[2],xmm13[3],xmm8[3]
3271 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm2[1],xmm1[1]
3272 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3273 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3274 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm14[0],ymm15[0],ymm14[1],ymm15[1],ymm14[4],ymm15[4],ymm14[5],ymm15[5]
3275 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm0, %xmm0
3276 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm11 = ymm6[0],ymm5[0],ymm6[1],ymm5[1],ymm6[4],ymm5[4],ymm6[5],ymm5[5]
3277 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm11[2,2,2,2]
3278 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
3279 ; AVX2-FCP-NEXT:    vmovaps 192(%rdi), %ymm1
3280 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3281 ; AVX2-FCP-NEXT:    vmovaps 160(%rdi), %ymm7
3282 ; AVX2-FCP-NEXT:    vmovaps 128(%rdi), %ymm13
3283 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm2 = ymm13[0],ymm7[0],ymm13[1],ymm7[1],ymm13[4],ymm7[4],ymm13[5],ymm7[5]
3284 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm5 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[5],ymm3[5]
3285 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm2[0],ymm5[0],ymm2[2],ymm5[2]
3286 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
3287 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3288 ; AVX2-FCP-NEXT:    vmovaps 288(%rdi), %ymm9
3289 ; AVX2-FCP-NEXT:    vmovaps 256(%rdi), %ymm8
3290 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm8[0],ymm9[0],ymm8[1],ymm9[1],ymm8[4],ymm9[4],ymm8[5],ymm9[5]
3291 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm0, %xmm0
3292 ; AVX2-FCP-NEXT:    vmovaps 352(%rdi), %ymm1
3293 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3294 ; AVX2-FCP-NEXT:    vmovaps 320(%rdi), %ymm2
3295 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3296 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm4 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[4],ymm1[4],ymm2[5],ymm1[5]
3297 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm6 = ymm4[2,2,2,2]
3298 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm2 = xmm0[0,1],xmm6[2,3]
3299 ; AVX2-FCP-NEXT:    vmovaps 480(%rdi), %ymm0
3300 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3301 ; AVX2-FCP-NEXT:    vmovaps 448(%rdi), %ymm12
3302 ; AVX2-FCP-NEXT:    vmovaps 416(%rdi), %ymm6
3303 ; AVX2-FCP-NEXT:    vmovaps 384(%rdi), %ymm10
3304 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm10[0],ymm6[0],ymm10[1],ymm6[1],ymm10[4],ymm6[4],ymm10[5],ymm6[5]
3305 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm3 = ymm12[0],ymm0[0],ymm12[1],ymm0[1],ymm12[4],ymm0[4],ymm12[5],ymm0[5]
3306 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm3[0],ymm1[2],ymm3[2]
3307 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
3308 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3309 ; AVX2-FCP-NEXT:    vbroadcastss 148(%rdi), %ymm0
3310 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm7[5],ymm0[6,7]
3311 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm5[6,7]
3312 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm11, %xmm2
3313 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm5 = ymm14[1,1,1,1,5,5,5,5]
3314 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0],ymm15[1],ymm5[2,3,4],ymm15[5],ymm5[6,7]
3315 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm5, %xmm5
3316 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm2 = xmm5[0,1],xmm2[2,3]
3317 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
3318 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3319 ; AVX2-FCP-NEXT:    vbroadcastss 404(%rdi), %ymm0
3320 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm6[5],ymm0[6,7]
3321 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm3[6,7]
3322 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm4, %xmm1
3323 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm2 = ymm8[1,1,1,1,5,5,5,5]
3324 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0],ymm9[1],ymm2[2,3,4],ymm9[5],ymm2[6,7]
3325 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm2, %xmm2
3326 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
3327 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm11 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3328 ; AVX2-FCP-NEXT:    vbroadcastss 248(%rdi), %ymm0
3329 ; AVX2-FCP-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
3330 ; AVX2-FCP-NEXT:    # ymm0 = mem[0,1,2,3,4,5,6],ymm0[7]
3331 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm13[2],ymm7[2],ymm13[3],ymm7[3],ymm13[6],ymm7[6],ymm13[7],ymm7[7]
3332 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm4 = ymm14[2],ymm15[2],ymm14[3],ymm15[3],ymm14[6],ymm15[6],ymm14[7],ymm15[7]
3333 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3334 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm5 # 32-byte Folded Reload
3335 ; AVX2-FCP-NEXT:    # ymm5 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
3336 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm4, %xmm1
3337 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm7 = ymm5[2,2,2,2]
3338 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm7[2,3]
3339 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3,4,5],ymm0[6,7]
3340 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3341 ; AVX2-FCP-NEXT:    vbroadcastss 504(%rdi), %ymm0
3342 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm12[0,1,2,3,4,5,6],ymm0[7]
3343 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm3 = ymm10[2],ymm6[2],ymm10[3],ymm6[3],ymm10[6],ymm6[6],ymm10[7],ymm6[7]
3344 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm6 = ymm8[2],ymm9[2],ymm8[3],ymm9[3],ymm8[6],ymm9[6],ymm8[7],ymm9[7]
3345 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
3346 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload
3347 ; AVX2-FCP-NEXT:    # ymm7 = ymm7[2],mem[2],ymm7[3],mem[3],ymm7[6],mem[6],ymm7[7],mem[7]
3348 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm6, %xmm8
3349 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm9 = ymm7[2,2,2,2]
3350 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm8 = xmm8[0,1],xmm9[2,3]
3351 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm0[6,7]
3352 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm8[0,1,2,3],ymm0[4,5,6,7]
3353 ; AVX2-FCP-NEXT:    vbroadcastss 220(%rdi), %ymm8
3354 ; AVX2-FCP-NEXT:    vunpckhps (%rsp), %ymm8, %ymm8 # 32-byte Folded Reload
3355 ; AVX2-FCP-NEXT:    # ymm8 = ymm8[2],mem[2],ymm8[3],mem[3],ymm8[6],mem[6],ymm8[7],mem[7]
3356 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm8[1],ymm2[3],ymm8[3]
3357 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm5, %xmm5
3358 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[2,3,2,3,6,7,6,7]
3359 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm4, %xmm4
3360 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],xmm5[2,3]
3361 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3],ymm2[4,5,6,7]
3362 ; AVX2-FCP-NEXT:    vbroadcastss 476(%rdi), %ymm4
3363 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload
3364 ; AVX2-FCP-NEXT:    # ymm4 = ymm4[2],mem[2],ymm4[3],mem[3],ymm4[6],mem[6],ymm4[7],mem[7]
3365 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm3 = ymm3[1],ymm4[1],ymm3[3],ymm4[3]
3366 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm7, %xmm4
3367 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm5 = ymm6[2,3,2,3,6,7,6,7]
3368 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm5, %xmm5
3369 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm4 = xmm5[0,1],xmm4[2,3]
3370 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
3371 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3372 ; AVX2-FCP-NEXT:    vmovaps %ymm4, 32(%rsi)
3373 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3374 ; AVX2-FCP-NEXT:    vmovaps %ymm4, (%rsi)
3375 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3376 ; AVX2-FCP-NEXT:    vmovaps %ymm4, 32(%rdx)
3377 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3378 ; AVX2-FCP-NEXT:    vmovaps %ymm4, (%rdx)
3379 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3380 ; AVX2-FCP-NEXT:    vmovaps %ymm4, 32(%rcx)
3381 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3382 ; AVX2-FCP-NEXT:    vmovaps %ymm4, (%rcx)
3383 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3384 ; AVX2-FCP-NEXT:    vmovaps %ymm4, 32(%r8)
3385 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3386 ; AVX2-FCP-NEXT:    vmovaps %ymm4, (%r8)
3387 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3388 ; AVX2-FCP-NEXT:    vmovaps %ymm4, 32(%r9)
3389 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3390 ; AVX2-FCP-NEXT:    vmovaps %ymm4, (%r9)
3391 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3392 ; AVX2-FCP-NEXT:    vmovaps %ymm11, 32(%rax)
3393 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3394 ; AVX2-FCP-NEXT:    vmovaps %ymm4, (%rax)
3395 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3396 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 32(%rax)
3397 ; AVX2-FCP-NEXT:    vmovaps %ymm1, (%rax)
3398 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3399 ; AVX2-FCP-NEXT:    vmovaps %ymm3, 32(%rax)
3400 ; AVX2-FCP-NEXT:    vmovaps %ymm2, (%rax)
3401 ; AVX2-FCP-NEXT:    addq $456, %rsp # imm = 0x1C8
3402 ; AVX2-FCP-NEXT:    vzeroupper
3403 ; AVX2-FCP-NEXT:    retq
3405 ; AVX512-LABEL: load_i32_stride8_vf16:
3406 ; AVX512:       # %bb.0:
3407 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3408 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %r10
3409 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %r11
3410 ; AVX512-NEXT:    vmovdqa64 (%rdi), %zmm0
3411 ; AVX512-NEXT:    vmovdqa64 64(%rdi), %zmm2
3412 ; AVX512-NEXT:    vmovdqa64 128(%rdi), %zmm1
3413 ; AVX512-NEXT:    vmovdqa64 192(%rdi), %zmm4
3414 ; AVX512-NEXT:    vmovdqa64 320(%rdi), %zmm5
3415 ; AVX512-NEXT:    vmovdqa64 256(%rdi), %zmm3
3416 ; AVX512-NEXT:    vmovdqa64 448(%rdi), %zmm7
3417 ; AVX512-NEXT:    vmovdqa64 384(%rdi), %zmm6
3418 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [0,8,16,24,0,8,16,24,0,8,16,24,0,8,16,24]
3419 ; AVX512-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3420 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm9
3421 ; AVX512-NEXT:    vpermt2d %zmm7, %zmm8, %zmm9
3422 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm10
3423 ; AVX512-NEXT:    vpermt2d %zmm5, %zmm8, %zmm10
3424 ; AVX512-NEXT:    movb $-64, %dil
3425 ; AVX512-NEXT:    kmovw %edi, %k1
3426 ; AVX512-NEXT:    vmovdqa64 %zmm9, %zmm10 {%k1}
3427 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm9
3428 ; AVX512-NEXT:    vpermt2d %zmm4, %zmm8, %zmm9
3429 ; AVX512-NEXT:    vpermi2d %zmm2, %zmm0, %zmm8
3430 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm9[4,5,6,7]
3431 ; AVX512-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm8
3432 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm9 = [1,9,17,25,1,9,17,25,1,9,17,25,1,9,17,25]
3433 ; AVX512-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3434 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm10
3435 ; AVX512-NEXT:    vpermt2d %zmm7, %zmm9, %zmm10
3436 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm11
3437 ; AVX512-NEXT:    vpermt2d %zmm5, %zmm9, %zmm11
3438 ; AVX512-NEXT:    vmovdqa64 %zmm10, %zmm11 {%k1}
3439 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm10
3440 ; AVX512-NEXT:    vpermt2d %zmm4, %zmm9, %zmm10
3441 ; AVX512-NEXT:    vpermi2d %zmm2, %zmm0, %zmm9
3442 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm9 = ymm9[0,1,2,3],ymm10[4,5,6,7]
3443 ; AVX512-NEXT:    vinserti64x4 $0, %ymm9, %zmm11, %zmm9
3444 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [2,10,18,26,2,10,18,26,2,10,18,26,2,10,18,26]
3445 ; AVX512-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3446 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm11
3447 ; AVX512-NEXT:    vpermt2d %zmm7, %zmm10, %zmm11
3448 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm12
3449 ; AVX512-NEXT:    vpermt2d %zmm5, %zmm10, %zmm12
3450 ; AVX512-NEXT:    vmovdqa64 %zmm11, %zmm12 {%k1}
3451 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm11
3452 ; AVX512-NEXT:    vpermt2d %zmm4, %zmm10, %zmm11
3453 ; AVX512-NEXT:    vpermi2d %zmm2, %zmm0, %zmm10
3454 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm10 = ymm10[0,1,2,3],ymm11[4,5,6,7]
3455 ; AVX512-NEXT:    vinserti64x4 $0, %ymm10, %zmm12, %zmm10
3456 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm11 = [3,11,19,27,3,11,19,27,3,11,19,27,3,11,19,27]
3457 ; AVX512-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3458 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm12
3459 ; AVX512-NEXT:    vpermt2d %zmm7, %zmm11, %zmm12
3460 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm13
3461 ; AVX512-NEXT:    vpermt2d %zmm5, %zmm11, %zmm13
3462 ; AVX512-NEXT:    vmovdqa64 %zmm12, %zmm13 {%k1}
3463 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm12
3464 ; AVX512-NEXT:    vpermt2d %zmm4, %zmm11, %zmm12
3465 ; AVX512-NEXT:    vpermi2d %zmm2, %zmm0, %zmm11
3466 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm11 = ymm11[0,1,2,3],ymm12[4,5,6,7]
3467 ; AVX512-NEXT:    vinserti64x4 $0, %ymm11, %zmm13, %zmm11
3468 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm12 = [4,12,20,28,4,12,20,28,4,12,20,28,4,12,20,28]
3469 ; AVX512-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3470 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm13
3471 ; AVX512-NEXT:    vpermt2d %zmm7, %zmm12, %zmm13
3472 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm14
3473 ; AVX512-NEXT:    vpermt2d %zmm5, %zmm12, %zmm14
3474 ; AVX512-NEXT:    vmovdqa64 %zmm13, %zmm14 {%k1}
3475 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm13
3476 ; AVX512-NEXT:    vpermt2d %zmm4, %zmm12, %zmm13
3477 ; AVX512-NEXT:    vpermi2d %zmm2, %zmm0, %zmm12
3478 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm12 = ymm12[0,1,2,3],ymm13[4,5,6,7]
3479 ; AVX512-NEXT:    vinserti64x4 $0, %ymm12, %zmm14, %zmm12
3480 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm13 = [5,13,21,29,5,13,21,29,5,13,21,29,5,13,21,29]
3481 ; AVX512-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3482 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm14
3483 ; AVX512-NEXT:    vpermt2d %zmm7, %zmm13, %zmm14
3484 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm15
3485 ; AVX512-NEXT:    vpermt2d %zmm5, %zmm13, %zmm15
3486 ; AVX512-NEXT:    vmovdqa64 %zmm14, %zmm15 {%k1}
3487 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm14
3488 ; AVX512-NEXT:    vpermt2d %zmm4, %zmm13, %zmm14
3489 ; AVX512-NEXT:    vpermi2d %zmm2, %zmm0, %zmm13
3490 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm13 = ymm13[0,1,2,3],ymm14[4,5,6,7]
3491 ; AVX512-NEXT:    vinserti64x4 $0, %ymm13, %zmm15, %zmm13
3492 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm14 = [6,14,22,30,6,14,22,30,6,14,22,30,6,14,22,30]
3493 ; AVX512-NEXT:    # zmm14 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3494 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm15
3495 ; AVX512-NEXT:    vpermt2d %zmm7, %zmm14, %zmm15
3496 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm16
3497 ; AVX512-NEXT:    vpermt2d %zmm5, %zmm14, %zmm16
3498 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm16 {%k1}
3499 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm15
3500 ; AVX512-NEXT:    vpermt2d %zmm4, %zmm14, %zmm15
3501 ; AVX512-NEXT:    vpermi2d %zmm2, %zmm0, %zmm14
3502 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm14 = ymm14[0,1,2,3],ymm15[4,5,6,7]
3503 ; AVX512-NEXT:    vinserti64x4 $0, %ymm14, %zmm16, %zmm14
3504 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm15 = [7,15,23,31,7,15,23,31,7,15,23,31,7,15,23,31]
3505 ; AVX512-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3506 ; AVX512-NEXT:    vpermt2d %zmm7, %zmm15, %zmm6
3507 ; AVX512-NEXT:    vpermt2d %zmm5, %zmm15, %zmm3
3508 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm3 {%k1}
3509 ; AVX512-NEXT:    vpermt2d %zmm4, %zmm15, %zmm1
3510 ; AVX512-NEXT:    vpermt2d %zmm2, %zmm15, %zmm0
3511 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
3512 ; AVX512-NEXT:    vinserti64x4 $0, %ymm0, %zmm3, %zmm0
3513 ; AVX512-NEXT:    vmovdqa64 %zmm8, (%rsi)
3514 ; AVX512-NEXT:    vmovdqa64 %zmm9, (%rdx)
3515 ; AVX512-NEXT:    vmovdqa64 %zmm10, (%rcx)
3516 ; AVX512-NEXT:    vmovdqa64 %zmm11, (%r8)
3517 ; AVX512-NEXT:    vmovdqa64 %zmm12, (%r9)
3518 ; AVX512-NEXT:    vmovdqa64 %zmm13, (%r11)
3519 ; AVX512-NEXT:    vmovdqa64 %zmm14, (%r10)
3520 ; AVX512-NEXT:    vmovdqa64 %zmm0, (%rax)
3521 ; AVX512-NEXT:    vzeroupper
3522 ; AVX512-NEXT:    retq
3524 ; AVX512-FCP-LABEL: load_i32_stride8_vf16:
3525 ; AVX512-FCP:       # %bb.0:
3526 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3527 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
3528 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11
3529 ; AVX512-FCP-NEXT:    vmovdqa64 (%rdi), %zmm0
3530 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm2
3531 ; AVX512-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm1
3532 ; AVX512-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm4
3533 ; AVX512-FCP-NEXT:    vmovdqa64 320(%rdi), %zmm5
3534 ; AVX512-FCP-NEXT:    vmovdqa64 256(%rdi), %zmm3
3535 ; AVX512-FCP-NEXT:    vmovdqa64 448(%rdi), %zmm7
3536 ; AVX512-FCP-NEXT:    vmovdqa64 384(%rdi), %zmm6
3537 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [0,8,16,24,0,8,16,24,0,8,16,24,0,8,16,24]
3538 ; AVX512-FCP-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3539 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm9
3540 ; AVX512-FCP-NEXT:    vpermt2d %zmm7, %zmm8, %zmm9
3541 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm10
3542 ; AVX512-FCP-NEXT:    vpermt2d %zmm5, %zmm8, %zmm10
3543 ; AVX512-FCP-NEXT:    movb $-64, %dil
3544 ; AVX512-FCP-NEXT:    kmovw %edi, %k1
3545 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm9, %zmm10 {%k1}
3546 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm9
3547 ; AVX512-FCP-NEXT:    vpermt2d %zmm4, %zmm8, %zmm9
3548 ; AVX512-FCP-NEXT:    vpermi2d %zmm2, %zmm0, %zmm8
3549 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm9[4,5,6,7]
3550 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm8
3551 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm9 = [1,9,17,25,1,9,17,25,1,9,17,25,1,9,17,25]
3552 ; AVX512-FCP-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3553 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm10
3554 ; AVX512-FCP-NEXT:    vpermt2d %zmm7, %zmm9, %zmm10
3555 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm11
3556 ; AVX512-FCP-NEXT:    vpermt2d %zmm5, %zmm9, %zmm11
3557 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm10, %zmm11 {%k1}
3558 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm10
3559 ; AVX512-FCP-NEXT:    vpermt2d %zmm4, %zmm9, %zmm10
3560 ; AVX512-FCP-NEXT:    vpermi2d %zmm2, %zmm0, %zmm9
3561 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm9 = ymm9[0,1,2,3],ymm10[4,5,6,7]
3562 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm9, %zmm11, %zmm9
3563 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [2,10,18,26,2,10,18,26,2,10,18,26,2,10,18,26]
3564 ; AVX512-FCP-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3565 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm11
3566 ; AVX512-FCP-NEXT:    vpermt2d %zmm7, %zmm10, %zmm11
3567 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm12
3568 ; AVX512-FCP-NEXT:    vpermt2d %zmm5, %zmm10, %zmm12
3569 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm11, %zmm12 {%k1}
3570 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm11
3571 ; AVX512-FCP-NEXT:    vpermt2d %zmm4, %zmm10, %zmm11
3572 ; AVX512-FCP-NEXT:    vpermi2d %zmm2, %zmm0, %zmm10
3573 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm10 = ymm10[0,1,2,3],ymm11[4,5,6,7]
3574 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm10, %zmm12, %zmm10
3575 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm11 = [3,11,19,27,3,11,19,27,3,11,19,27,3,11,19,27]
3576 ; AVX512-FCP-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3577 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm12
3578 ; AVX512-FCP-NEXT:    vpermt2d %zmm7, %zmm11, %zmm12
3579 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm13
3580 ; AVX512-FCP-NEXT:    vpermt2d %zmm5, %zmm11, %zmm13
3581 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, %zmm13 {%k1}
3582 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm12
3583 ; AVX512-FCP-NEXT:    vpermt2d %zmm4, %zmm11, %zmm12
3584 ; AVX512-FCP-NEXT:    vpermi2d %zmm2, %zmm0, %zmm11
3585 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm11 = ymm11[0,1,2,3],ymm12[4,5,6,7]
3586 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm11, %zmm13, %zmm11
3587 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm12 = [4,12,20,28,4,12,20,28,4,12,20,28,4,12,20,28]
3588 ; AVX512-FCP-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3589 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm13
3590 ; AVX512-FCP-NEXT:    vpermt2d %zmm7, %zmm12, %zmm13
3591 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm14
3592 ; AVX512-FCP-NEXT:    vpermt2d %zmm5, %zmm12, %zmm14
3593 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, %zmm14 {%k1}
3594 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm13
3595 ; AVX512-FCP-NEXT:    vpermt2d %zmm4, %zmm12, %zmm13
3596 ; AVX512-FCP-NEXT:    vpermi2d %zmm2, %zmm0, %zmm12
3597 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm12 = ymm12[0,1,2,3],ymm13[4,5,6,7]
3598 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm12, %zmm14, %zmm12
3599 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm13 = [5,13,21,29,5,13,21,29,5,13,21,29,5,13,21,29]
3600 ; AVX512-FCP-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3601 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm14
3602 ; AVX512-FCP-NEXT:    vpermt2d %zmm7, %zmm13, %zmm14
3603 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm15
3604 ; AVX512-FCP-NEXT:    vpermt2d %zmm5, %zmm13, %zmm15
3605 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm14, %zmm15 {%k1}
3606 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm14
3607 ; AVX512-FCP-NEXT:    vpermt2d %zmm4, %zmm13, %zmm14
3608 ; AVX512-FCP-NEXT:    vpermi2d %zmm2, %zmm0, %zmm13
3609 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm13 = ymm13[0,1,2,3],ymm14[4,5,6,7]
3610 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm13, %zmm15, %zmm13
3611 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm14 = [6,14,22,30,6,14,22,30,6,14,22,30,6,14,22,30]
3612 ; AVX512-FCP-NEXT:    # zmm14 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3613 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm15
3614 ; AVX512-FCP-NEXT:    vpermt2d %zmm7, %zmm14, %zmm15
3615 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm16
3616 ; AVX512-FCP-NEXT:    vpermt2d %zmm5, %zmm14, %zmm16
3617 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm15, %zmm16 {%k1}
3618 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm15
3619 ; AVX512-FCP-NEXT:    vpermt2d %zmm4, %zmm14, %zmm15
3620 ; AVX512-FCP-NEXT:    vpermi2d %zmm2, %zmm0, %zmm14
3621 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm14 = ymm14[0,1,2,3],ymm15[4,5,6,7]
3622 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm14, %zmm16, %zmm14
3623 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm15 = [7,15,23,31,7,15,23,31,7,15,23,31,7,15,23,31]
3624 ; AVX512-FCP-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3625 ; AVX512-FCP-NEXT:    vpermt2d %zmm7, %zmm15, %zmm6
3626 ; AVX512-FCP-NEXT:    vpermt2d %zmm5, %zmm15, %zmm3
3627 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm3 {%k1}
3628 ; AVX512-FCP-NEXT:    vpermt2d %zmm4, %zmm15, %zmm1
3629 ; AVX512-FCP-NEXT:    vpermt2d %zmm2, %zmm15, %zmm0
3630 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
3631 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm3, %zmm0
3632 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, (%rsi)
3633 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm9, (%rdx)
3634 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm10, (%rcx)
3635 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm11, (%r8)
3636 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, (%r9)
3637 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, (%r11)
3638 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm14, (%r10)
3639 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, (%rax)
3640 ; AVX512-FCP-NEXT:    vzeroupper
3641 ; AVX512-FCP-NEXT:    retq
3643 ; AVX512DQ-LABEL: load_i32_stride8_vf16:
3644 ; AVX512DQ:       # %bb.0:
3645 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3646 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %r10
3647 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %r11
3648 ; AVX512DQ-NEXT:    vmovdqa64 (%rdi), %zmm0
3649 ; AVX512DQ-NEXT:    vmovdqa64 64(%rdi), %zmm2
3650 ; AVX512DQ-NEXT:    vmovdqa64 128(%rdi), %zmm1
3651 ; AVX512DQ-NEXT:    vmovdqa64 192(%rdi), %zmm4
3652 ; AVX512DQ-NEXT:    vmovdqa64 320(%rdi), %zmm5
3653 ; AVX512DQ-NEXT:    vmovdqa64 256(%rdi), %zmm3
3654 ; AVX512DQ-NEXT:    vmovdqa64 448(%rdi), %zmm7
3655 ; AVX512DQ-NEXT:    vmovdqa64 384(%rdi), %zmm6
3656 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [0,8,16,24,0,8,16,24,0,8,16,24,0,8,16,24]
3657 ; AVX512DQ-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3658 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm9
3659 ; AVX512DQ-NEXT:    vpermt2d %zmm7, %zmm8, %zmm9
3660 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm10
3661 ; AVX512DQ-NEXT:    vpermt2d %zmm5, %zmm8, %zmm10
3662 ; AVX512DQ-NEXT:    movb $-64, %dil
3663 ; AVX512DQ-NEXT:    kmovw %edi, %k1
3664 ; AVX512DQ-NEXT:    vmovdqa64 %zmm9, %zmm10 {%k1}
3665 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm9
3666 ; AVX512DQ-NEXT:    vpermt2d %zmm4, %zmm8, %zmm9
3667 ; AVX512DQ-NEXT:    vpermi2d %zmm2, %zmm0, %zmm8
3668 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm9[4,5,6,7]
3669 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm8
3670 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm9 = [1,9,17,25,1,9,17,25,1,9,17,25,1,9,17,25]
3671 ; AVX512DQ-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3672 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm10
3673 ; AVX512DQ-NEXT:    vpermt2d %zmm7, %zmm9, %zmm10
3674 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm11
3675 ; AVX512DQ-NEXT:    vpermt2d %zmm5, %zmm9, %zmm11
3676 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, %zmm11 {%k1}
3677 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm10
3678 ; AVX512DQ-NEXT:    vpermt2d %zmm4, %zmm9, %zmm10
3679 ; AVX512DQ-NEXT:    vpermi2d %zmm2, %zmm0, %zmm9
3680 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm9 = ymm9[0,1,2,3],ymm10[4,5,6,7]
3681 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm9, %zmm11, %zmm9
3682 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [2,10,18,26,2,10,18,26,2,10,18,26,2,10,18,26]
3683 ; AVX512DQ-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3684 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm11
3685 ; AVX512DQ-NEXT:    vpermt2d %zmm7, %zmm10, %zmm11
3686 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm12
3687 ; AVX512DQ-NEXT:    vpermt2d %zmm5, %zmm10, %zmm12
3688 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, %zmm12 {%k1}
3689 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm11
3690 ; AVX512DQ-NEXT:    vpermt2d %zmm4, %zmm10, %zmm11
3691 ; AVX512DQ-NEXT:    vpermi2d %zmm2, %zmm0, %zmm10
3692 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm10 = ymm10[0,1,2,3],ymm11[4,5,6,7]
3693 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm10, %zmm12, %zmm10
3694 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm11 = [3,11,19,27,3,11,19,27,3,11,19,27,3,11,19,27]
3695 ; AVX512DQ-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3696 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm12
3697 ; AVX512DQ-NEXT:    vpermt2d %zmm7, %zmm11, %zmm12
3698 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm13
3699 ; AVX512DQ-NEXT:    vpermt2d %zmm5, %zmm11, %zmm13
3700 ; AVX512DQ-NEXT:    vmovdqa64 %zmm12, %zmm13 {%k1}
3701 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm12
3702 ; AVX512DQ-NEXT:    vpermt2d %zmm4, %zmm11, %zmm12
3703 ; AVX512DQ-NEXT:    vpermi2d %zmm2, %zmm0, %zmm11
3704 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm11 = ymm11[0,1,2,3],ymm12[4,5,6,7]
3705 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm11, %zmm13, %zmm11
3706 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm12 = [4,12,20,28,4,12,20,28,4,12,20,28,4,12,20,28]
3707 ; AVX512DQ-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3708 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm13
3709 ; AVX512DQ-NEXT:    vpermt2d %zmm7, %zmm12, %zmm13
3710 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm14
3711 ; AVX512DQ-NEXT:    vpermt2d %zmm5, %zmm12, %zmm14
3712 ; AVX512DQ-NEXT:    vmovdqa64 %zmm13, %zmm14 {%k1}
3713 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm13
3714 ; AVX512DQ-NEXT:    vpermt2d %zmm4, %zmm12, %zmm13
3715 ; AVX512DQ-NEXT:    vpermi2d %zmm2, %zmm0, %zmm12
3716 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm12 = ymm12[0,1,2,3],ymm13[4,5,6,7]
3717 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm12, %zmm14, %zmm12
3718 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm13 = [5,13,21,29,5,13,21,29,5,13,21,29,5,13,21,29]
3719 ; AVX512DQ-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3720 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm14
3721 ; AVX512DQ-NEXT:    vpermt2d %zmm7, %zmm13, %zmm14
3722 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm15
3723 ; AVX512DQ-NEXT:    vpermt2d %zmm5, %zmm13, %zmm15
3724 ; AVX512DQ-NEXT:    vmovdqa64 %zmm14, %zmm15 {%k1}
3725 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm14
3726 ; AVX512DQ-NEXT:    vpermt2d %zmm4, %zmm13, %zmm14
3727 ; AVX512DQ-NEXT:    vpermi2d %zmm2, %zmm0, %zmm13
3728 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm13 = ymm13[0,1,2,3],ymm14[4,5,6,7]
3729 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm13, %zmm15, %zmm13
3730 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm14 = [6,14,22,30,6,14,22,30,6,14,22,30,6,14,22,30]
3731 ; AVX512DQ-NEXT:    # zmm14 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3732 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm15
3733 ; AVX512DQ-NEXT:    vpermt2d %zmm7, %zmm14, %zmm15
3734 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm16
3735 ; AVX512DQ-NEXT:    vpermt2d %zmm5, %zmm14, %zmm16
3736 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, %zmm16 {%k1}
3737 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm15
3738 ; AVX512DQ-NEXT:    vpermt2d %zmm4, %zmm14, %zmm15
3739 ; AVX512DQ-NEXT:    vpermi2d %zmm2, %zmm0, %zmm14
3740 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm14 = ymm14[0,1,2,3],ymm15[4,5,6,7]
3741 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm14, %zmm16, %zmm14
3742 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm15 = [7,15,23,31,7,15,23,31,7,15,23,31,7,15,23,31]
3743 ; AVX512DQ-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3744 ; AVX512DQ-NEXT:    vpermt2d %zmm7, %zmm15, %zmm6
3745 ; AVX512DQ-NEXT:    vpermt2d %zmm5, %zmm15, %zmm3
3746 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm3 {%k1}
3747 ; AVX512DQ-NEXT:    vpermt2d %zmm4, %zmm15, %zmm1
3748 ; AVX512DQ-NEXT:    vpermt2d %zmm2, %zmm15, %zmm0
3749 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
3750 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm0, %zmm3, %zmm0
3751 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, (%rsi)
3752 ; AVX512DQ-NEXT:    vmovdqa64 %zmm9, (%rdx)
3753 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, (%rcx)
3754 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, (%r8)
3755 ; AVX512DQ-NEXT:    vmovdqa64 %zmm12, (%r9)
3756 ; AVX512DQ-NEXT:    vmovdqa64 %zmm13, (%r11)
3757 ; AVX512DQ-NEXT:    vmovdqa64 %zmm14, (%r10)
3758 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, (%rax)
3759 ; AVX512DQ-NEXT:    vzeroupper
3760 ; AVX512DQ-NEXT:    retq
3762 ; AVX512DQ-FCP-LABEL: load_i32_stride8_vf16:
3763 ; AVX512DQ-FCP:       # %bb.0:
3764 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3765 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
3766 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11
3767 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rdi), %zmm0
3768 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm2
3769 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm1
3770 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm4
3771 ; AVX512DQ-FCP-NEXT:    vmovdqa64 320(%rdi), %zmm5
3772 ; AVX512DQ-FCP-NEXT:    vmovdqa64 256(%rdi), %zmm3
3773 ; AVX512DQ-FCP-NEXT:    vmovdqa64 448(%rdi), %zmm7
3774 ; AVX512DQ-FCP-NEXT:    vmovdqa64 384(%rdi), %zmm6
3775 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [0,8,16,24,0,8,16,24,0,8,16,24,0,8,16,24]
3776 ; AVX512DQ-FCP-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3777 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm9
3778 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm7, %zmm8, %zmm9
3779 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm10
3780 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm5, %zmm8, %zmm10
3781 ; AVX512DQ-FCP-NEXT:    movb $-64, %dil
3782 ; AVX512DQ-FCP-NEXT:    kmovw %edi, %k1
3783 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, %zmm10 {%k1}
3784 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm9
3785 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm4, %zmm8, %zmm9
3786 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm2, %zmm0, %zmm8
3787 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm9[4,5,6,7]
3788 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm8
3789 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm9 = [1,9,17,25,1,9,17,25,1,9,17,25,1,9,17,25]
3790 ; AVX512DQ-FCP-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3791 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm10
3792 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm7, %zmm9, %zmm10
3793 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm11
3794 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm5, %zmm9, %zmm11
3795 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, %zmm11 {%k1}
3796 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm10
3797 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm4, %zmm9, %zmm10
3798 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm2, %zmm0, %zmm9
3799 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm9 = ymm9[0,1,2,3],ymm10[4,5,6,7]
3800 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm9, %zmm11, %zmm9
3801 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [2,10,18,26,2,10,18,26,2,10,18,26,2,10,18,26]
3802 ; AVX512DQ-FCP-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3803 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm11
3804 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm7, %zmm10, %zmm11
3805 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm12
3806 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm5, %zmm10, %zmm12
3807 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm12 {%k1}
3808 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm11
3809 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm4, %zmm10, %zmm11
3810 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm2, %zmm0, %zmm10
3811 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm10 = ymm10[0,1,2,3],ymm11[4,5,6,7]
3812 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm10, %zmm12, %zmm10
3813 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm11 = [3,11,19,27,3,11,19,27,3,11,19,27,3,11,19,27]
3814 ; AVX512DQ-FCP-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3815 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm12
3816 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm7, %zmm11, %zmm12
3817 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm13
3818 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm5, %zmm11, %zmm13
3819 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm13 {%k1}
3820 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm12
3821 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm4, %zmm11, %zmm12
3822 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm2, %zmm0, %zmm11
3823 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm11 = ymm11[0,1,2,3],ymm12[4,5,6,7]
3824 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm11, %zmm13, %zmm11
3825 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm12 = [4,12,20,28,4,12,20,28,4,12,20,28,4,12,20,28]
3826 ; AVX512DQ-FCP-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3827 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm13
3828 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm7, %zmm12, %zmm13
3829 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm14
3830 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm5, %zmm12, %zmm14
3831 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm13, %zmm14 {%k1}
3832 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm13
3833 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm4, %zmm12, %zmm13
3834 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm2, %zmm0, %zmm12
3835 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm12 = ymm12[0,1,2,3],ymm13[4,5,6,7]
3836 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm12, %zmm14, %zmm12
3837 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm13 = [5,13,21,29,5,13,21,29,5,13,21,29,5,13,21,29]
3838 ; AVX512DQ-FCP-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3839 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm14
3840 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm7, %zmm13, %zmm14
3841 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm15
3842 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm5, %zmm13, %zmm15
3843 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm14, %zmm15 {%k1}
3844 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm14
3845 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm4, %zmm13, %zmm14
3846 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm2, %zmm0, %zmm13
3847 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm13 = ymm13[0,1,2,3],ymm14[4,5,6,7]
3848 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm13, %zmm15, %zmm13
3849 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm14 = [6,14,22,30,6,14,22,30,6,14,22,30,6,14,22,30]
3850 ; AVX512DQ-FCP-NEXT:    # zmm14 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3851 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm15
3852 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm7, %zmm14, %zmm15
3853 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm16
3854 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm5, %zmm14, %zmm16
3855 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm15, %zmm16 {%k1}
3856 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm15
3857 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm4, %zmm14, %zmm15
3858 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm2, %zmm0, %zmm14
3859 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm14 = ymm14[0,1,2,3],ymm15[4,5,6,7]
3860 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm14, %zmm16, %zmm14
3861 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm15 = [7,15,23,31,7,15,23,31,7,15,23,31,7,15,23,31]
3862 ; AVX512DQ-FCP-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3863 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm7, %zmm15, %zmm6
3864 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm5, %zmm15, %zmm3
3865 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm3 {%k1}
3866 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm4, %zmm15, %zmm1
3867 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm2, %zmm15, %zmm0
3868 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
3869 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm3, %zmm0
3870 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, (%rsi)
3871 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, (%rdx)
3872 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, (%rcx)
3873 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, (%r8)
3874 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, (%r9)
3875 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm13, (%r11)
3876 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm14, (%r10)
3877 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, (%rax)
3878 ; AVX512DQ-FCP-NEXT:    vzeroupper
3879 ; AVX512DQ-FCP-NEXT:    retq
3881 ; AVX512BW-LABEL: load_i32_stride8_vf16:
3882 ; AVX512BW:       # %bb.0:
3883 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3884 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %r10
3885 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %r11
3886 ; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm0
3887 ; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %zmm2
3888 ; AVX512BW-NEXT:    vmovdqa64 128(%rdi), %zmm1
3889 ; AVX512BW-NEXT:    vmovdqa64 192(%rdi), %zmm4
3890 ; AVX512BW-NEXT:    vmovdqa64 320(%rdi), %zmm5
3891 ; AVX512BW-NEXT:    vmovdqa64 256(%rdi), %zmm3
3892 ; AVX512BW-NEXT:    vmovdqa64 448(%rdi), %zmm7
3893 ; AVX512BW-NEXT:    vmovdqa64 384(%rdi), %zmm6
3894 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [0,8,16,24,0,8,16,24,0,8,16,24,0,8,16,24]
3895 ; AVX512BW-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3896 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm9
3897 ; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm8, %zmm9
3898 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm10
3899 ; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm8, %zmm10
3900 ; AVX512BW-NEXT:    movb $-64, %dil
3901 ; AVX512BW-NEXT:    kmovd %edi, %k1
3902 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm10 {%k1}
3903 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm9
3904 ; AVX512BW-NEXT:    vpermt2d %zmm4, %zmm8, %zmm9
3905 ; AVX512BW-NEXT:    vpermi2d %zmm2, %zmm0, %zmm8
3906 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm9[4,5,6,7]
3907 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm8
3908 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm9 = [1,9,17,25,1,9,17,25,1,9,17,25,1,9,17,25]
3909 ; AVX512BW-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3910 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm10
3911 ; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm9, %zmm10
3912 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm11
3913 ; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm9, %zmm11
3914 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm11 {%k1}
3915 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm10
3916 ; AVX512BW-NEXT:    vpermt2d %zmm4, %zmm9, %zmm10
3917 ; AVX512BW-NEXT:    vpermi2d %zmm2, %zmm0, %zmm9
3918 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm9 = ymm9[0,1,2,3],ymm10[4,5,6,7]
3919 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm9, %zmm11, %zmm9
3920 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [2,10,18,26,2,10,18,26,2,10,18,26,2,10,18,26]
3921 ; AVX512BW-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3922 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm11
3923 ; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm10, %zmm11
3924 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm12
3925 ; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm10, %zmm12
3926 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm12 {%k1}
3927 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm11
3928 ; AVX512BW-NEXT:    vpermt2d %zmm4, %zmm10, %zmm11
3929 ; AVX512BW-NEXT:    vpermi2d %zmm2, %zmm0, %zmm10
3930 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm10 = ymm10[0,1,2,3],ymm11[4,5,6,7]
3931 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm10, %zmm12, %zmm10
3932 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm11 = [3,11,19,27,3,11,19,27,3,11,19,27,3,11,19,27]
3933 ; AVX512BW-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3934 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm12
3935 ; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm11, %zmm12
3936 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm13
3937 ; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm11, %zmm13
3938 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm13 {%k1}
3939 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm12
3940 ; AVX512BW-NEXT:    vpermt2d %zmm4, %zmm11, %zmm12
3941 ; AVX512BW-NEXT:    vpermi2d %zmm2, %zmm0, %zmm11
3942 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm11 = ymm11[0,1,2,3],ymm12[4,5,6,7]
3943 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm11, %zmm13, %zmm11
3944 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm12 = [4,12,20,28,4,12,20,28,4,12,20,28,4,12,20,28]
3945 ; AVX512BW-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3946 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm13
3947 ; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm12, %zmm13
3948 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm14
3949 ; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm12, %zmm14
3950 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm14 {%k1}
3951 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm13
3952 ; AVX512BW-NEXT:    vpermt2d %zmm4, %zmm12, %zmm13
3953 ; AVX512BW-NEXT:    vpermi2d %zmm2, %zmm0, %zmm12
3954 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm12 = ymm12[0,1,2,3],ymm13[4,5,6,7]
3955 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm12, %zmm14, %zmm12
3956 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm13 = [5,13,21,29,5,13,21,29,5,13,21,29,5,13,21,29]
3957 ; AVX512BW-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3958 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm14
3959 ; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm13, %zmm14
3960 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm15
3961 ; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm13, %zmm15
3962 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, %zmm15 {%k1}
3963 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm14
3964 ; AVX512BW-NEXT:    vpermt2d %zmm4, %zmm13, %zmm14
3965 ; AVX512BW-NEXT:    vpermi2d %zmm2, %zmm0, %zmm13
3966 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm13 = ymm13[0,1,2,3],ymm14[4,5,6,7]
3967 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm13, %zmm15, %zmm13
3968 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm14 = [6,14,22,30,6,14,22,30,6,14,22,30,6,14,22,30]
3969 ; AVX512BW-NEXT:    # zmm14 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3970 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm15
3971 ; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm14, %zmm15
3972 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm16
3973 ; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm14, %zmm16
3974 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm16 {%k1}
3975 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm15
3976 ; AVX512BW-NEXT:    vpermt2d %zmm4, %zmm14, %zmm15
3977 ; AVX512BW-NEXT:    vpermi2d %zmm2, %zmm0, %zmm14
3978 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm14 = ymm14[0,1,2,3],ymm15[4,5,6,7]
3979 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm14, %zmm16, %zmm14
3980 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm15 = [7,15,23,31,7,15,23,31,7,15,23,31,7,15,23,31]
3981 ; AVX512BW-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3982 ; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm15, %zmm6
3983 ; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm15, %zmm3
3984 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm3 {%k1}
3985 ; AVX512BW-NEXT:    vpermt2d %zmm4, %zmm15, %zmm1
3986 ; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm15, %zmm0
3987 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
3988 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm3, %zmm0
3989 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, (%rsi)
3990 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, (%rdx)
3991 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, (%rcx)
3992 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, (%r8)
3993 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, (%r9)
3994 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, (%r11)
3995 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, (%r10)
3996 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, (%rax)
3997 ; AVX512BW-NEXT:    vzeroupper
3998 ; AVX512BW-NEXT:    retq
4000 ; AVX512BW-FCP-LABEL: load_i32_stride8_vf16:
4001 ; AVX512BW-FCP:       # %bb.0:
4002 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
4003 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
4004 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11
4005 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm0
4006 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm2
4007 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm1
4008 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm4
4009 ; AVX512BW-FCP-NEXT:    vmovdqa64 320(%rdi), %zmm5
4010 ; AVX512BW-FCP-NEXT:    vmovdqa64 256(%rdi), %zmm3
4011 ; AVX512BW-FCP-NEXT:    vmovdqa64 448(%rdi), %zmm7
4012 ; AVX512BW-FCP-NEXT:    vmovdqa64 384(%rdi), %zmm6
4013 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [0,8,16,24,0,8,16,24,0,8,16,24,0,8,16,24]
4014 ; AVX512BW-FCP-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4015 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm9
4016 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm7, %zmm8, %zmm9
4017 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm10
4018 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm5, %zmm8, %zmm10
4019 ; AVX512BW-FCP-NEXT:    movb $-64, %dil
4020 ; AVX512BW-FCP-NEXT:    kmovd %edi, %k1
4021 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm10 {%k1}
4022 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm9
4023 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm4, %zmm8, %zmm9
4024 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm2, %zmm0, %zmm8
4025 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm9[4,5,6,7]
4026 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm8
4027 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm9 = [1,9,17,25,1,9,17,25,1,9,17,25,1,9,17,25]
4028 ; AVX512BW-FCP-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4029 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm10
4030 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm7, %zmm9, %zmm10
4031 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm11
4032 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm5, %zmm9, %zmm11
4033 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm11 {%k1}
4034 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm10
4035 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm4, %zmm9, %zmm10
4036 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm2, %zmm0, %zmm9
4037 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm9 = ymm9[0,1,2,3],ymm10[4,5,6,7]
4038 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm9, %zmm11, %zmm9
4039 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [2,10,18,26,2,10,18,26,2,10,18,26,2,10,18,26]
4040 ; AVX512BW-FCP-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4041 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm11
4042 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm7, %zmm10, %zmm11
4043 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm12
4044 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm5, %zmm10, %zmm12
4045 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm12 {%k1}
4046 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm11
4047 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm4, %zmm10, %zmm11
4048 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm2, %zmm0, %zmm10
4049 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm10 = ymm10[0,1,2,3],ymm11[4,5,6,7]
4050 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm10, %zmm12, %zmm10
4051 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm11 = [3,11,19,27,3,11,19,27,3,11,19,27,3,11,19,27]
4052 ; AVX512BW-FCP-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4053 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm12
4054 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm7, %zmm11, %zmm12
4055 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm13
4056 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm5, %zmm11, %zmm13
4057 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm13 {%k1}
4058 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm12
4059 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm4, %zmm11, %zmm12
4060 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm2, %zmm0, %zmm11
4061 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm11 = ymm11[0,1,2,3],ymm12[4,5,6,7]
4062 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm11, %zmm13, %zmm11
4063 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm12 = [4,12,20,28,4,12,20,28,4,12,20,28,4,12,20,28]
4064 ; AVX512BW-FCP-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4065 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm13
4066 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm7, %zmm12, %zmm13
4067 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm14
4068 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm5, %zmm12, %zmm14
4069 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm14 {%k1}
4070 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm13
4071 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm4, %zmm12, %zmm13
4072 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm2, %zmm0, %zmm12
4073 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm12 = ymm12[0,1,2,3],ymm13[4,5,6,7]
4074 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm12, %zmm14, %zmm12
4075 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm13 = [5,13,21,29,5,13,21,29,5,13,21,29,5,13,21,29]
4076 ; AVX512BW-FCP-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4077 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm14
4078 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm7, %zmm13, %zmm14
4079 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm15
4080 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm5, %zmm13, %zmm15
4081 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm14, %zmm15 {%k1}
4082 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm14
4083 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm4, %zmm13, %zmm14
4084 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm2, %zmm0, %zmm13
4085 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm13 = ymm13[0,1,2,3],ymm14[4,5,6,7]
4086 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm13, %zmm15, %zmm13
4087 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm14 = [6,14,22,30,6,14,22,30,6,14,22,30,6,14,22,30]
4088 ; AVX512BW-FCP-NEXT:    # zmm14 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4089 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm15
4090 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm7, %zmm14, %zmm15
4091 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm16
4092 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm5, %zmm14, %zmm16
4093 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm16 {%k1}
4094 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm15
4095 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm4, %zmm14, %zmm15
4096 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm2, %zmm0, %zmm14
4097 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm14 = ymm14[0,1,2,3],ymm15[4,5,6,7]
4098 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm14, %zmm16, %zmm14
4099 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm15 = [7,15,23,31,7,15,23,31,7,15,23,31,7,15,23,31]
4100 ; AVX512BW-FCP-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4101 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm7, %zmm15, %zmm6
4102 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm5, %zmm15, %zmm3
4103 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm3 {%k1}
4104 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm4, %zmm15, %zmm1
4105 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm2, %zmm15, %zmm0
4106 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4107 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm3, %zmm0
4108 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, (%rsi)
4109 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm9, (%rdx)
4110 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm10, (%rcx)
4111 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm11, (%r8)
4112 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, (%r9)
4113 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, (%r11)
4114 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm14, (%r10)
4115 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, (%rax)
4116 ; AVX512BW-FCP-NEXT:    vzeroupper
4117 ; AVX512BW-FCP-NEXT:    retq
4119 ; AVX512DQ-BW-LABEL: load_i32_stride8_vf16:
4120 ; AVX512DQ-BW:       # %bb.0:
4121 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
4122 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %r10
4123 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %r11
4124 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rdi), %zmm0
4125 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rdi), %zmm2
4126 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%rdi), %zmm1
4127 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%rdi), %zmm4
4128 ; AVX512DQ-BW-NEXT:    vmovdqa64 320(%rdi), %zmm5
4129 ; AVX512DQ-BW-NEXT:    vmovdqa64 256(%rdi), %zmm3
4130 ; AVX512DQ-BW-NEXT:    vmovdqa64 448(%rdi), %zmm7
4131 ; AVX512DQ-BW-NEXT:    vmovdqa64 384(%rdi), %zmm6
4132 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [0,8,16,24,0,8,16,24,0,8,16,24,0,8,16,24]
4133 ; AVX512DQ-BW-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4134 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm9
4135 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm7, %zmm8, %zmm9
4136 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm10
4137 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm5, %zmm8, %zmm10
4138 ; AVX512DQ-BW-NEXT:    movb $-64, %dil
4139 ; AVX512DQ-BW-NEXT:    kmovd %edi, %k1
4140 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, %zmm10 {%k1}
4141 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm9
4142 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm4, %zmm8, %zmm9
4143 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm2, %zmm0, %zmm8
4144 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm9[4,5,6,7]
4145 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm8
4146 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm9 = [1,9,17,25,1,9,17,25,1,9,17,25,1,9,17,25]
4147 ; AVX512DQ-BW-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4148 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm10
4149 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm7, %zmm9, %zmm10
4150 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm11
4151 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm5, %zmm9, %zmm11
4152 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, %zmm11 {%k1}
4153 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm10
4154 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm4, %zmm9, %zmm10
4155 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm2, %zmm0, %zmm9
4156 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm9 = ymm9[0,1,2,3],ymm10[4,5,6,7]
4157 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm9, %zmm11, %zmm9
4158 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [2,10,18,26,2,10,18,26,2,10,18,26,2,10,18,26]
4159 ; AVX512DQ-BW-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4160 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm11
4161 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm7, %zmm10, %zmm11
4162 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm12
4163 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm5, %zmm10, %zmm12
4164 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, %zmm12 {%k1}
4165 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm11
4166 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm4, %zmm10, %zmm11
4167 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm2, %zmm0, %zmm10
4168 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm10 = ymm10[0,1,2,3],ymm11[4,5,6,7]
4169 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm10, %zmm12, %zmm10
4170 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm11 = [3,11,19,27,3,11,19,27,3,11,19,27,3,11,19,27]
4171 ; AVX512DQ-BW-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4172 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm12
4173 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm7, %zmm11, %zmm12
4174 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm13
4175 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm5, %zmm11, %zmm13
4176 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm12, %zmm13 {%k1}
4177 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm12
4178 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm4, %zmm11, %zmm12
4179 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm2, %zmm0, %zmm11
4180 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm11 = ymm11[0,1,2,3],ymm12[4,5,6,7]
4181 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm11, %zmm13, %zmm11
4182 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm12 = [4,12,20,28,4,12,20,28,4,12,20,28,4,12,20,28]
4183 ; AVX512DQ-BW-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4184 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm13
4185 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm7, %zmm12, %zmm13
4186 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm14
4187 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm5, %zmm12, %zmm14
4188 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm13, %zmm14 {%k1}
4189 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm13
4190 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm4, %zmm12, %zmm13
4191 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm2, %zmm0, %zmm12
4192 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm12 = ymm12[0,1,2,3],ymm13[4,5,6,7]
4193 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm12, %zmm14, %zmm12
4194 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm13 = [5,13,21,29,5,13,21,29,5,13,21,29,5,13,21,29]
4195 ; AVX512DQ-BW-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4196 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm14
4197 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm7, %zmm13, %zmm14
4198 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm15
4199 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm5, %zmm13, %zmm15
4200 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm14, %zmm15 {%k1}
4201 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm14
4202 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm4, %zmm13, %zmm14
4203 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm2, %zmm0, %zmm13
4204 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm13 = ymm13[0,1,2,3],ymm14[4,5,6,7]
4205 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm13, %zmm15, %zmm13
4206 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm14 = [6,14,22,30,6,14,22,30,6,14,22,30,6,14,22,30]
4207 ; AVX512DQ-BW-NEXT:    # zmm14 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4208 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm15
4209 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm7, %zmm14, %zmm15
4210 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm16
4211 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm5, %zmm14, %zmm16
4212 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, %zmm16 {%k1}
4213 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm15
4214 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm4, %zmm14, %zmm15
4215 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm2, %zmm0, %zmm14
4216 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm14 = ymm14[0,1,2,3],ymm15[4,5,6,7]
4217 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm14, %zmm16, %zmm14
4218 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm15 = [7,15,23,31,7,15,23,31,7,15,23,31,7,15,23,31]
4219 ; AVX512DQ-BW-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4220 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm7, %zmm15, %zmm6
4221 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm5, %zmm15, %zmm3
4222 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm3 {%k1}
4223 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm4, %zmm15, %zmm1
4224 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm2, %zmm15, %zmm0
4225 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4226 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm3, %zmm0
4227 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, (%rsi)
4228 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, (%rdx)
4229 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, (%rcx)
4230 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, (%r8)
4231 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm12, (%r9)
4232 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm13, (%r11)
4233 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm14, (%r10)
4234 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, (%rax)
4235 ; AVX512DQ-BW-NEXT:    vzeroupper
4236 ; AVX512DQ-BW-NEXT:    retq
4238 ; AVX512DQ-BW-FCP-LABEL: load_i32_stride8_vf16:
4239 ; AVX512DQ-BW-FCP:       # %bb.0:
4240 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
4241 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
4242 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11
4243 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm0
4244 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm2
4245 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm1
4246 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm4
4247 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 320(%rdi), %zmm5
4248 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 256(%rdi), %zmm3
4249 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 448(%rdi), %zmm7
4250 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 384(%rdi), %zmm6
4251 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [0,8,16,24,0,8,16,24,0,8,16,24,0,8,16,24]
4252 ; AVX512DQ-BW-FCP-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4253 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm9
4254 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm7, %zmm8, %zmm9
4255 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm10
4256 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm5, %zmm8, %zmm10
4257 ; AVX512DQ-BW-FCP-NEXT:    movb $-64, %dil
4258 ; AVX512DQ-BW-FCP-NEXT:    kmovd %edi, %k1
4259 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm10 {%k1}
4260 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm9
4261 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm4, %zmm8, %zmm9
4262 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm2, %zmm0, %zmm8
4263 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm9[4,5,6,7]
4264 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm8
4265 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm9 = [1,9,17,25,1,9,17,25,1,9,17,25,1,9,17,25]
4266 ; AVX512DQ-BW-FCP-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4267 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm10
4268 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm7, %zmm9, %zmm10
4269 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm11
4270 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm5, %zmm9, %zmm11
4271 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm11 {%k1}
4272 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm10
4273 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm4, %zmm9, %zmm10
4274 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm2, %zmm0, %zmm9
4275 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm9 = ymm9[0,1,2,3],ymm10[4,5,6,7]
4276 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm9, %zmm11, %zmm9
4277 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [2,10,18,26,2,10,18,26,2,10,18,26,2,10,18,26]
4278 ; AVX512DQ-BW-FCP-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4279 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm11
4280 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm7, %zmm10, %zmm11
4281 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm12
4282 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm5, %zmm10, %zmm12
4283 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm12 {%k1}
4284 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm11
4285 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm4, %zmm10, %zmm11
4286 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm2, %zmm0, %zmm10
4287 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm10 = ymm10[0,1,2,3],ymm11[4,5,6,7]
4288 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm10, %zmm12, %zmm10
4289 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm11 = [3,11,19,27,3,11,19,27,3,11,19,27,3,11,19,27]
4290 ; AVX512DQ-BW-FCP-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4291 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm12
4292 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm7, %zmm11, %zmm12
4293 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm13
4294 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm5, %zmm11, %zmm13
4295 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm13 {%k1}
4296 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm12
4297 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm4, %zmm11, %zmm12
4298 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm2, %zmm0, %zmm11
4299 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm11 = ymm11[0,1,2,3],ymm12[4,5,6,7]
4300 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm11, %zmm13, %zmm11
4301 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm12 = [4,12,20,28,4,12,20,28,4,12,20,28,4,12,20,28]
4302 ; AVX512DQ-BW-FCP-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4303 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm13
4304 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm7, %zmm12, %zmm13
4305 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm14
4306 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm5, %zmm12, %zmm14
4307 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm14 {%k1}
4308 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm13
4309 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm4, %zmm12, %zmm13
4310 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm2, %zmm0, %zmm12
4311 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm12 = ymm12[0,1,2,3],ymm13[4,5,6,7]
4312 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm12, %zmm14, %zmm12
4313 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm13 = [5,13,21,29,5,13,21,29,5,13,21,29,5,13,21,29]
4314 ; AVX512DQ-BW-FCP-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4315 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm14
4316 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm7, %zmm13, %zmm14
4317 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm15
4318 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm5, %zmm13, %zmm15
4319 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm14, %zmm15 {%k1}
4320 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm14
4321 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm4, %zmm13, %zmm14
4322 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm2, %zmm0, %zmm13
4323 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm13 = ymm13[0,1,2,3],ymm14[4,5,6,7]
4324 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm13, %zmm15, %zmm13
4325 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm14 = [6,14,22,30,6,14,22,30,6,14,22,30,6,14,22,30]
4326 ; AVX512DQ-BW-FCP-NEXT:    # zmm14 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4327 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm15
4328 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm7, %zmm14, %zmm15
4329 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm16
4330 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm5, %zmm14, %zmm16
4331 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm16 {%k1}
4332 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm15
4333 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm4, %zmm14, %zmm15
4334 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm2, %zmm0, %zmm14
4335 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm14 = ymm14[0,1,2,3],ymm15[4,5,6,7]
4336 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm14, %zmm16, %zmm14
4337 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm15 = [7,15,23,31,7,15,23,31,7,15,23,31,7,15,23,31]
4338 ; AVX512DQ-BW-FCP-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4339 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm7, %zmm15, %zmm6
4340 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm5, %zmm15, %zmm3
4341 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm3 {%k1}
4342 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm4, %zmm15, %zmm1
4343 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm2, %zmm15, %zmm0
4344 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4345 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm3, %zmm0
4346 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, (%rsi)
4347 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, (%rdx)
4348 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, (%rcx)
4349 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, (%r8)
4350 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, (%r9)
4351 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm13, (%r11)
4352 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm14, (%r10)
4353 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, (%rax)
4354 ; AVX512DQ-BW-FCP-NEXT:    vzeroupper
4355 ; AVX512DQ-BW-FCP-NEXT:    retq
4356   %wide.vec = load <128 x i32>, ptr %in.vec, align 64
4357   %strided.vec0 = shufflevector <128 x i32> %wide.vec, <128 x i32> poison, <16 x i32> <i32 0, i32 8, i32 16, i32 24, i32 32, i32 40, i32 48, i32 56, i32 64, i32 72, i32 80, i32 88, i32 96, i32 104, i32 112, i32 120>
4358   %strided.vec1 = shufflevector <128 x i32> %wide.vec, <128 x i32> poison, <16 x i32> <i32 1, i32 9, i32 17, i32 25, i32 33, i32 41, i32 49, i32 57, i32 65, i32 73, i32 81, i32 89, i32 97, i32 105, i32 113, i32 121>
4359   %strided.vec2 = shufflevector <128 x i32> %wide.vec, <128 x i32> poison, <16 x i32> <i32 2, i32 10, i32 18, i32 26, i32 34, i32 42, i32 50, i32 58, i32 66, i32 74, i32 82, i32 90, i32 98, i32 106, i32 114, i32 122>
4360   %strided.vec3 = shufflevector <128 x i32> %wide.vec, <128 x i32> poison, <16 x i32> <i32 3, i32 11, i32 19, i32 27, i32 35, i32 43, i32 51, i32 59, i32 67, i32 75, i32 83, i32 91, i32 99, i32 107, i32 115, i32 123>
4361   %strided.vec4 = shufflevector <128 x i32> %wide.vec, <128 x i32> poison, <16 x i32> <i32 4, i32 12, i32 20, i32 28, i32 36, i32 44, i32 52, i32 60, i32 68, i32 76, i32 84, i32 92, i32 100, i32 108, i32 116, i32 124>
4362   %strided.vec5 = shufflevector <128 x i32> %wide.vec, <128 x i32> poison, <16 x i32> <i32 5, i32 13, i32 21, i32 29, i32 37, i32 45, i32 53, i32 61, i32 69, i32 77, i32 85, i32 93, i32 101, i32 109, i32 117, i32 125>
4363   %strided.vec6 = shufflevector <128 x i32> %wide.vec, <128 x i32> poison, <16 x i32> <i32 6, i32 14, i32 22, i32 30, i32 38, i32 46, i32 54, i32 62, i32 70, i32 78, i32 86, i32 94, i32 102, i32 110, i32 118, i32 126>
4364   %strided.vec7 = shufflevector <128 x i32> %wide.vec, <128 x i32> poison, <16 x i32> <i32 7, i32 15, i32 23, i32 31, i32 39, i32 47, i32 55, i32 63, i32 71, i32 79, i32 87, i32 95, i32 103, i32 111, i32 119, i32 127>
4365   store <16 x i32> %strided.vec0, ptr %out.vec0, align 64
4366   store <16 x i32> %strided.vec1, ptr %out.vec1, align 64
4367   store <16 x i32> %strided.vec2, ptr %out.vec2, align 64
4368   store <16 x i32> %strided.vec3, ptr %out.vec3, align 64
4369   store <16 x i32> %strided.vec4, ptr %out.vec4, align 64
4370   store <16 x i32> %strided.vec5, ptr %out.vec5, align 64
4371   store <16 x i32> %strided.vec6, ptr %out.vec6, align 64
4372   store <16 x i32> %strided.vec7, ptr %out.vec7, align 64
4373   ret void
4376 define void @load_i32_stride8_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, ptr %out.vec7) nounwind {
4377 ; SSE-LABEL: load_i32_stride8_vf32:
4378 ; SSE:       # %bb.0:
4379 ; SSE-NEXT:    subq $952, %rsp # imm = 0x3B8
4380 ; SSE-NEXT:    movaps 544(%rdi), %xmm5
4381 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4382 ; SSE-NEXT:    movaps 608(%rdi), %xmm6
4383 ; SSE-NEXT:    movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4384 ; SSE-NEXT:    movaps 576(%rdi), %xmm7
4385 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4386 ; SSE-NEXT:    movaps 672(%rdi), %xmm8
4387 ; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4388 ; SSE-NEXT:    movaps 640(%rdi), %xmm4
4389 ; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4390 ; SSE-NEXT:    movaps 736(%rdi), %xmm9
4391 ; SSE-NEXT:    movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4392 ; SSE-NEXT:    movaps 704(%rdi), %xmm3
4393 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4394 ; SSE-NEXT:    movaps 160(%rdi), %xmm10
4395 ; SSE-NEXT:    movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4396 ; SSE-NEXT:    movaps 128(%rdi), %xmm1
4397 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4398 ; SSE-NEXT:    movaps 224(%rdi), %xmm2
4399 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4400 ; SSE-NEXT:    movaps 192(%rdi), %xmm0
4401 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4402 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
4403 ; SSE-NEXT:    movaps %xmm1, %xmm2
4404 ; SSE-NEXT:    unpcklps {{.*#+}} xmm2 = xmm2[0],xmm10[0],xmm2[1],xmm10[1]
4405 ; SSE-NEXT:    movaps %xmm2, %xmm1
4406 ; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
4407 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4408 ; SSE-NEXT:    movaps %xmm3, %xmm1
4409 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm9[0],xmm1[1],xmm9[1]
4410 ; SSE-NEXT:    movaps %xmm4, %xmm3
4411 ; SSE-NEXT:    unpcklps {{.*#+}} xmm3 = xmm3[0],xmm8[0],xmm3[1],xmm8[1]
4412 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
4413 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4414 ; SSE-NEXT:    movaps %xmm3, %xmm0
4415 ; SSE-NEXT:    movlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]
4416 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4417 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm3 = xmm3[1],xmm1[1]
4418 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4419 ; SSE-NEXT:    movaps %xmm7, %xmm0
4420 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm6[0],xmm0[1],xmm6[1]
4421 ; SSE-NEXT:    movaps 512(%rdi), %xmm1
4422 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4423 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm5[0],xmm1[1],xmm5[1]
4424 ; SSE-NEXT:    movaps %xmm1, %xmm2
4425 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
4426 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4427 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
4428 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4429 ; SSE-NEXT:    movaps 480(%rdi), %xmm1
4430 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4431 ; SSE-NEXT:    movaps 448(%rdi), %xmm10
4432 ; SSE-NEXT:    movaps %xmm10, %xmm0
4433 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
4434 ; SSE-NEXT:    movaps 416(%rdi), %xmm3
4435 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4436 ; SSE-NEXT:    movaps 384(%rdi), %xmm2
4437 ; SSE-NEXT:    movaps %xmm2, %xmm1
4438 ; SSE-NEXT:    movaps %xmm2, %xmm14
4439 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
4440 ; SSE-NEXT:    movaps %xmm1, %xmm2
4441 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
4442 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4443 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
4444 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4445 ; SSE-NEXT:    movaps 992(%rdi), %xmm1
4446 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4447 ; SSE-NEXT:    movaps 960(%rdi), %xmm15
4448 ; SSE-NEXT:    movaps %xmm15, %xmm0
4449 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
4450 ; SSE-NEXT:    movaps 928(%rdi), %xmm2
4451 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4452 ; SSE-NEXT:    movaps 896(%rdi), %xmm1
4453 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4454 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
4455 ; SSE-NEXT:    movaps %xmm1, %xmm2
4456 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
4457 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4458 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
4459 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4460 ; SSE-NEXT:    movaps 352(%rdi), %xmm1
4461 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4462 ; SSE-NEXT:    movaps 320(%rdi), %xmm12
4463 ; SSE-NEXT:    movaps %xmm12, %xmm0
4464 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
4465 ; SSE-NEXT:    movaps 288(%rdi), %xmm3
4466 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4467 ; SSE-NEXT:    movaps 256(%rdi), %xmm1
4468 ; SSE-NEXT:    movaps %xmm1, %xmm2
4469 ; SSE-NEXT:    unpcklps {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]
4470 ; SSE-NEXT:    movaps %xmm2, %xmm3
4471 ; SSE-NEXT:    movlhps {{.*#+}} xmm3 = xmm3[0],xmm0[0]
4472 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4473 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
4474 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4475 ; SSE-NEXT:    movaps 864(%rdi), %xmm2
4476 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4477 ; SSE-NEXT:    movaps 832(%rdi), %xmm11
4478 ; SSE-NEXT:    movaps %xmm11, %xmm0
4479 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
4480 ; SSE-NEXT:    movaps 800(%rdi), %xmm4
4481 ; SSE-NEXT:    movaps %xmm4, (%rsp) # 16-byte Spill
4482 ; SSE-NEXT:    movaps 768(%rdi), %xmm2
4483 ; SSE-NEXT:    movaps %xmm2, %xmm3
4484 ; SSE-NEXT:    unpcklps {{.*#+}} xmm3 = xmm3[0],xmm4[0],xmm3[1],xmm4[1]
4485 ; SSE-NEXT:    movaps %xmm3, %xmm4
4486 ; SSE-NEXT:    movlhps {{.*#+}} xmm4 = xmm4[0],xmm0[0]
4487 ; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4488 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm3 = xmm3[1],xmm0[1]
4489 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4490 ; SSE-NEXT:    movaps 96(%rdi), %xmm6
4491 ; SSE-NEXT:    movaps 64(%rdi), %xmm9
4492 ; SSE-NEXT:    movaps %xmm9, %xmm13
4493 ; SSE-NEXT:    unpcklps {{.*#+}} xmm13 = xmm13[0],xmm6[0],xmm13[1],xmm6[1]
4494 ; SSE-NEXT:    movaps (%rdi), %xmm8
4495 ; SSE-NEXT:    movaps 32(%rdi), %xmm3
4496 ; SSE-NEXT:    movaps %xmm8, %xmm7
4497 ; SSE-NEXT:    unpcklps {{.*#+}} xmm7 = xmm7[0],xmm3[0],xmm7[1],xmm3[1]
4498 ; SSE-NEXT:    movaps %xmm7, %xmm5
4499 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm13[0]
4500 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4501 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm7 = xmm7[1],xmm13[1]
4502 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4503 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
4504 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
4505 ; SSE-NEXT:    # xmm4 = xmm4[2],mem[2],xmm4[3],mem[3]
4506 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
4507 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload
4508 ; SSE-NEXT:    # xmm5 = xmm5[2],mem[2],xmm5[3],mem[3]
4509 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload
4510 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Folded Reload
4511 ; SSE-NEXT:    # xmm13 = xmm13[2],mem[2],xmm13[3],mem[3]
4512 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
4513 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload
4514 ; SSE-NEXT:    # xmm7 = xmm7[2],mem[2],xmm7[3],mem[3]
4515 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4516 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
4517 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload
4518 ; SSE-NEXT:    # xmm7 = xmm7[2],mem[2],xmm7[3],mem[3]
4519 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4520 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
4521 ; SSE-NEXT:    # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]
4522 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Folded Reload
4523 ; SSE-NEXT:    # xmm10 = xmm10[2],mem[2],xmm10[3],mem[3]
4524 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Folded Reload
4525 ; SSE-NEXT:    # xmm14 = xmm14[2],mem[2],xmm14[3],mem[3]
4526 ; SSE-NEXT:    movaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4527 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload
4528 ; SSE-NEXT:    # xmm15 = xmm15[2],mem[2],xmm15[3],mem[3]
4529 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
4530 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Folded Reload
4531 ; SSE-NEXT:    # xmm14 = xmm14[2],mem[2],xmm14[3],mem[3]
4532 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Folded Reload
4533 ; SSE-NEXT:    # xmm12 = xmm12[2],mem[2],xmm12[3],mem[3]
4534 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
4535 ; SSE-NEXT:    # xmm1 = xmm1[2],mem[2],xmm1[3],mem[3]
4536 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Folded Reload
4537 ; SSE-NEXT:    # xmm11 = xmm11[2],mem[2],xmm11[3],mem[3]
4538 ; SSE-NEXT:    unpckhps (%rsp), %xmm2 # 16-byte Folded Reload
4539 ; SSE-NEXT:    # xmm2 = xmm2[2],mem[2],xmm2[3],mem[3]
4540 ; SSE-NEXT:    unpckhps {{.*#+}} xmm9 = xmm9[2],xmm6[2],xmm9[3],xmm6[3]
4541 ; SSE-NEXT:    unpckhps {{.*#+}} xmm8 = xmm8[2],xmm3[2],xmm8[3],xmm3[3]
4542 ; SSE-NEXT:    movaps %xmm5, %xmm3
4543 ; SSE-NEXT:    movlhps {{.*#+}} xmm3 = xmm3[0],xmm4[0]
4544 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4545 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm4[1]
4546 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4547 ; SSE-NEXT:    movaps %xmm1, %xmm3
4548 ; SSE-NEXT:    movlhps {{.*#+}} xmm3 = xmm3[0],xmm12[0]
4549 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4550 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm12[1]
4551 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4552 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
4553 ; SSE-NEXT:    movaps %xmm6, %xmm1
4554 ; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm10[0]
4555 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4556 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm6 = xmm6[1],xmm10[1]
4557 ; SSE-NEXT:    movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4558 ; SSE-NEXT:    movaps %xmm0, %xmm3
4559 ; SSE-NEXT:    movlhps {{.*#+}} xmm3 = xmm3[0],xmm7[0]
4560 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4561 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm7[1]
4562 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4563 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4564 ; SSE-NEXT:    movaps %xmm1, %xmm3
4565 ; SSE-NEXT:    movlhps {{.*#+}} xmm3 = xmm3[0],xmm13[0]
4566 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4567 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm13[1]
4568 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4569 ; SSE-NEXT:    movaps %xmm2, %xmm1
4570 ; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm11[0]
4571 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4572 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm11[1]
4573 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4574 ; SSE-NEXT:    movaps %xmm14, %xmm1
4575 ; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm15[0]
4576 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4577 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm14 = xmm14[1],xmm15[1]
4578 ; SSE-NEXT:    movaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4579 ; SSE-NEXT:    movaps %xmm8, %xmm1
4580 ; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm9[0]
4581 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4582 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm9[1]
4583 ; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4584 ; SSE-NEXT:    movaps 240(%rdi), %xmm2
4585 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4586 ; SSE-NEXT:    movaps 208(%rdi), %xmm12
4587 ; SSE-NEXT:    movaps %xmm12, %xmm0
4588 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
4589 ; SSE-NEXT:    movaps 176(%rdi), %xmm13
4590 ; SSE-NEXT:    movaps 144(%rdi), %xmm2
4591 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4592 ; SSE-NEXT:    unpcklps {{.*#+}} xmm2 = xmm2[0],xmm13[0],xmm2[1],xmm13[1]
4593 ; SSE-NEXT:    movaps %xmm2, %xmm1
4594 ; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
4595 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4596 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
4597 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4598 ; SSE-NEXT:    movaps 368(%rdi), %xmm4
4599 ; SSE-NEXT:    movaps 336(%rdi), %xmm1
4600 ; SSE-NEXT:    movaps %xmm1, %xmm0
4601 ; SSE-NEXT:    movaps %xmm1, %xmm9
4602 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1]
4603 ; SSE-NEXT:    movaps 304(%rdi), %xmm5
4604 ; SSE-NEXT:    movaps 272(%rdi), %xmm8
4605 ; SSE-NEXT:    movaps %xmm8, %xmm1
4606 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm5[0],xmm1[1],xmm5[1]
4607 ; SSE-NEXT:    movaps %xmm1, %xmm2
4608 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
4609 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4610 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
4611 ; SSE-NEXT:    movaps %xmm1, (%rsp) # 16-byte Spill
4612 ; SSE-NEXT:    movaps 496(%rdi), %xmm7
4613 ; SSE-NEXT:    movaps 464(%rdi), %xmm0
4614 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4615 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm7[0],xmm0[1],xmm7[1]
4616 ; SSE-NEXT:    movaps 432(%rdi), %xmm2
4617 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4618 ; SSE-NEXT:    movaps 400(%rdi), %xmm1
4619 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4620 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
4621 ; SSE-NEXT:    movaps %xmm1, %xmm2
4622 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
4623 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4624 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
4625 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4626 ; SSE-NEXT:    movaps 624(%rdi), %xmm2
4627 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4628 ; SSE-NEXT:    movaps 592(%rdi), %xmm1
4629 ; SSE-NEXT:    movaps %xmm1, %xmm0
4630 ; SSE-NEXT:    movaps %xmm1, %xmm3
4631 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
4632 ; SSE-NEXT:    movaps 560(%rdi), %xmm6
4633 ; SSE-NEXT:    movaps 528(%rdi), %xmm1
4634 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4635 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm6[0],xmm1[1],xmm6[1]
4636 ; SSE-NEXT:    movaps %xmm1, %xmm2
4637 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
4638 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4639 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
4640 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4641 ; SSE-NEXT:    movaps 752(%rdi), %xmm1
4642 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4643 ; SSE-NEXT:    movaps 720(%rdi), %xmm0
4644 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4645 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
4646 ; SSE-NEXT:    movaps 688(%rdi), %xmm2
4647 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4648 ; SSE-NEXT:    movaps 656(%rdi), %xmm1
4649 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4650 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
4651 ; SSE-NEXT:    movaps %xmm1, %xmm2
4652 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
4653 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4654 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
4655 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4656 ; SSE-NEXT:    movaps 880(%rdi), %xmm1
4657 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4658 ; SSE-NEXT:    movaps 848(%rdi), %xmm14
4659 ; SSE-NEXT:    movaps %xmm14, %xmm0
4660 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
4661 ; SSE-NEXT:    movaps 816(%rdi), %xmm1
4662 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4663 ; SSE-NEXT:    movaps 784(%rdi), %xmm2
4664 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4665 ; SSE-NEXT:    unpcklps {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
4666 ; SSE-NEXT:    movaps %xmm2, %xmm1
4667 ; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
4668 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4669 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
4670 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4671 ; SSE-NEXT:    movaps 1008(%rdi), %xmm1
4672 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4673 ; SSE-NEXT:    movaps 976(%rdi), %xmm11
4674 ; SSE-NEXT:    movaps %xmm11, %xmm0
4675 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
4676 ; SSE-NEXT:    movaps 944(%rdi), %xmm1
4677 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4678 ; SSE-NEXT:    movaps 912(%rdi), %xmm2
4679 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4680 ; SSE-NEXT:    unpcklps {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
4681 ; SSE-NEXT:    movaps %xmm2, %xmm1
4682 ; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
4683 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4684 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
4685 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4686 ; SSE-NEXT:    movaps 112(%rdi), %xmm1
4687 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4688 ; SSE-NEXT:    movaps 80(%rdi), %xmm10
4689 ; SSE-NEXT:    movaps %xmm10, %xmm0
4690 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
4691 ; SSE-NEXT:    movaps 16(%rdi), %xmm15
4692 ; SSE-NEXT:    movaps 48(%rdi), %xmm1
4693 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4694 ; SSE-NEXT:    movaps %xmm15, %xmm2
4695 ; SSE-NEXT:    unpcklps {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
4696 ; SSE-NEXT:    movaps %xmm2, %xmm1
4697 ; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
4698 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4699 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
4700 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4701 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Folded Reload
4702 ; SSE-NEXT:    # xmm12 = xmm12[2],mem[2],xmm12[3],mem[3]
4703 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4704 ; SSE-NEXT:    unpckhps {{.*#+}} xmm1 = xmm1[2],xmm13[2],xmm1[3],xmm13[3]
4705 ; SSE-NEXT:    movaps %xmm9, %xmm13
4706 ; SSE-NEXT:    unpckhps {{.*#+}} xmm13 = xmm13[2],xmm4[2],xmm13[3],xmm4[3]
4707 ; SSE-NEXT:    unpckhps {{.*#+}} xmm8 = xmm8[2],xmm5[2],xmm8[3],xmm5[3]
4708 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload
4709 ; SSE-NEXT:    unpckhps {{.*#+}} xmm9 = xmm9[2],xmm7[2],xmm9[3],xmm7[3]
4710 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
4711 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload
4712 ; SSE-NEXT:    # xmm7 = xmm7[2],mem[2],xmm7[3],mem[3]
4713 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload
4714 ; SSE-NEXT:    # xmm3 = xmm3[2],mem[2],xmm3[3],mem[3]
4715 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4716 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
4717 ; SSE-NEXT:    unpckhps {{.*#+}} xmm5 = xmm5[2],xmm6[2],xmm5[3],xmm6[3]
4718 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
4719 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload
4720 ; SSE-NEXT:    # xmm6 = xmm6[2],mem[2],xmm6[3],mem[3]
4721 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
4722 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
4723 ; SSE-NEXT:    # xmm4 = xmm4[2],mem[2],xmm4[3],mem[3]
4724 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Folded Reload
4725 ; SSE-NEXT:    # xmm14 = xmm14[2],mem[2],xmm14[3],mem[3]
4726 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
4727 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload
4728 ; SSE-NEXT:    # xmm3 = xmm3[2],mem[2],xmm3[3],mem[3]
4729 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Folded Reload
4730 ; SSE-NEXT:    # xmm11 = xmm11[2],mem[2],xmm11[3],mem[3]
4731 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
4732 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
4733 ; SSE-NEXT:    # xmm2 = xmm2[2],mem[2],xmm2[3],mem[3]
4734 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Folded Reload
4735 ; SSE-NEXT:    # xmm10 = xmm10[2],mem[2],xmm10[3],mem[3]
4736 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload
4737 ; SSE-NEXT:    # xmm15 = xmm15[2],mem[2],xmm15[3],mem[3]
4738 ; SSE-NEXT:    movaps %xmm1, %xmm0
4739 ; SSE-NEXT:    movlhps {{.*#+}} xmm0 = xmm0[0],xmm12[0]
4740 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4741 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm12[1]
4742 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4743 ; SSE-NEXT:    movaps %xmm8, %xmm1
4744 ; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm13[0]
4745 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4746 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm13[1]
4747 ; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4748 ; SSE-NEXT:    movaps %xmm7, %xmm12
4749 ; SSE-NEXT:    movlhps {{.*#+}} xmm12 = xmm12[0],xmm9[0]
4750 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm7 = xmm7[1],xmm9[1]
4751 ; SSE-NEXT:    movaps %xmm5, %xmm13
4752 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4753 ; SSE-NEXT:    movlhps {{.*#+}} xmm13 = xmm13[0],xmm1[0]
4754 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm1[1]
4755 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4756 ; SSE-NEXT:    movaps %xmm4, %xmm0
4757 ; SSE-NEXT:    movlhps {{.*#+}} xmm4 = xmm4[0],xmm6[0]
4758 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm6[1]
4759 ; SSE-NEXT:    movaps %xmm0, %xmm5
4760 ; SSE-NEXT:    movaps %xmm3, %xmm8
4761 ; SSE-NEXT:    movlhps {{.*#+}} xmm8 = xmm8[0],xmm14[0]
4762 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm3 = xmm3[1],xmm14[1]
4763 ; SSE-NEXT:    movaps %xmm3, %xmm6
4764 ; SSE-NEXT:    movaps %xmm2, %xmm3
4765 ; SSE-NEXT:    movlhps {{.*#+}} xmm3 = xmm3[0],xmm11[0]
4766 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm11[1]
4767 ; SSE-NEXT:    movaps %xmm15, %xmm0
4768 ; SSE-NEXT:    movlhps {{.*#+}} xmm0 = xmm0[0],xmm10[0]
4769 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm15 = xmm15[1],xmm10[1]
4770 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4771 ; SSE-NEXT:    movaps %xmm1, 96(%rsi)
4772 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4773 ; SSE-NEXT:    movaps %xmm1, 32(%rsi)
4774 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4775 ; SSE-NEXT:    movaps %xmm1, 112(%rsi)
4776 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4777 ; SSE-NEXT:    movaps %xmm1, 48(%rsi)
4778 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4779 ; SSE-NEXT:    movaps %xmm1, 64(%rsi)
4780 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4781 ; SSE-NEXT:    movaps %xmm1, (%rsi)
4782 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4783 ; SSE-NEXT:    movaps %xmm1, 80(%rsi)
4784 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4785 ; SSE-NEXT:    movaps %xmm1, 16(%rsi)
4786 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4787 ; SSE-NEXT:    movaps %xmm1, 96(%rdx)
4788 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4789 ; SSE-NEXT:    movaps %xmm1, 32(%rdx)
4790 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4791 ; SSE-NEXT:    movaps %xmm1, 112(%rdx)
4792 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4793 ; SSE-NEXT:    movaps %xmm1, 48(%rdx)
4794 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4795 ; SSE-NEXT:    movaps %xmm1, 64(%rdx)
4796 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4797 ; SSE-NEXT:    movaps %xmm1, (%rdx)
4798 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4799 ; SSE-NEXT:    movaps %xmm1, 80(%rdx)
4800 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4801 ; SSE-NEXT:    movaps %xmm1, 16(%rdx)
4802 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4803 ; SSE-NEXT:    movaps %xmm1, 96(%rcx)
4804 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4805 ; SSE-NEXT:    movaps %xmm1, 32(%rcx)
4806 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4807 ; SSE-NEXT:    movaps %xmm1, 112(%rcx)
4808 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4809 ; SSE-NEXT:    movaps %xmm1, 48(%rcx)
4810 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4811 ; SSE-NEXT:    movaps %xmm1, 64(%rcx)
4812 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4813 ; SSE-NEXT:    movaps %xmm1, (%rcx)
4814 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4815 ; SSE-NEXT:    movaps %xmm1, 80(%rcx)
4816 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4817 ; SSE-NEXT:    movaps %xmm1, 16(%rcx)
4818 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4819 ; SSE-NEXT:    movaps %xmm1, 112(%r8)
4820 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4821 ; SSE-NEXT:    movaps %xmm1, 96(%r8)
4822 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4823 ; SSE-NEXT:    movaps %xmm1, 80(%r8)
4824 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4825 ; SSE-NEXT:    movaps %xmm1, 64(%r8)
4826 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4827 ; SSE-NEXT:    movaps %xmm1, 48(%r8)
4828 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4829 ; SSE-NEXT:    movaps %xmm1, 32(%r8)
4830 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4831 ; SSE-NEXT:    movaps %xmm1, 16(%r8)
4832 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4833 ; SSE-NEXT:    movaps %xmm1, (%r8)
4834 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4835 ; SSE-NEXT:    movaps %xmm1, 112(%r9)
4836 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4837 ; SSE-NEXT:    movaps %xmm1, 96(%r9)
4838 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4839 ; SSE-NEXT:    movaps %xmm1, 80(%r9)
4840 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4841 ; SSE-NEXT:    movaps %xmm1, 64(%r9)
4842 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4843 ; SSE-NEXT:    movaps %xmm1, 48(%r9)
4844 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4845 ; SSE-NEXT:    movaps %xmm1, 32(%r9)
4846 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4847 ; SSE-NEXT:    movaps %xmm1, 16(%r9)
4848 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4849 ; SSE-NEXT:    movaps %xmm1, (%r9)
4850 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
4851 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4852 ; SSE-NEXT:    movaps %xmm1, 112(%rax)
4853 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4854 ; SSE-NEXT:    movaps %xmm1, 96(%rax)
4855 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4856 ; SSE-NEXT:    movaps %xmm1, 80(%rax)
4857 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4858 ; SSE-NEXT:    movaps %xmm1, 64(%rax)
4859 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4860 ; SSE-NEXT:    movaps %xmm1, 48(%rax)
4861 ; SSE-NEXT:    movaps (%rsp), %xmm1 # 16-byte Reload
4862 ; SSE-NEXT:    movaps %xmm1, 32(%rax)
4863 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4864 ; SSE-NEXT:    movaps %xmm1, 16(%rax)
4865 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4866 ; SSE-NEXT:    movaps %xmm1, (%rax)
4867 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
4868 ; SSE-NEXT:    movaps %xmm3, 112(%rax)
4869 ; SSE-NEXT:    movaps %xmm8, 96(%rax)
4870 ; SSE-NEXT:    movaps %xmm4, 80(%rax)
4871 ; SSE-NEXT:    movaps %xmm13, 64(%rax)
4872 ; SSE-NEXT:    movaps %xmm12, 48(%rax)
4873 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4874 ; SSE-NEXT:    movaps %xmm1, 32(%rax)
4875 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4876 ; SSE-NEXT:    movaps %xmm1, 16(%rax)
4877 ; SSE-NEXT:    movaps %xmm0, (%rax)
4878 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
4879 ; SSE-NEXT:    movaps %xmm2, 112(%rax)
4880 ; SSE-NEXT:    movaps %xmm6, 96(%rax)
4881 ; SSE-NEXT:    movaps %xmm5, 80(%rax)
4882 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4883 ; SSE-NEXT:    movaps %xmm0, 64(%rax)
4884 ; SSE-NEXT:    movaps %xmm7, 48(%rax)
4885 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4886 ; SSE-NEXT:    movaps %xmm0, 32(%rax)
4887 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4888 ; SSE-NEXT:    movaps %xmm0, 16(%rax)
4889 ; SSE-NEXT:    movaps %xmm15, (%rax)
4890 ; SSE-NEXT:    addq $952, %rsp # imm = 0x3B8
4891 ; SSE-NEXT:    retq
4893 ; AVX-LABEL: load_i32_stride8_vf32:
4894 ; AVX:       # %bb.0:
4895 ; AVX-NEXT:    subq $1800, %rsp # imm = 0x708
4896 ; AVX-NEXT:    vmovaps 288(%rdi), %xmm14
4897 ; AVX-NEXT:    vmovaps 256(%rdi), %xmm10
4898 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm10[0],xmm14[0],xmm10[1],xmm14[1]
4899 ; AVX-NEXT:    vmovaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4900 ; AVX-NEXT:    vmovaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4901 ; AVX-NEXT:    vmovaps 352(%rdi), %xmm1
4902 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4903 ; AVX-NEXT:    vmovaps 320(%rdi), %xmm2
4904 ; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4905 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
4906 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4907 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]
4908 ; AVX-NEXT:    vmovaps 416(%rdi), %xmm1
4909 ; AVX-NEXT:    vmovaps %xmm1, (%rsp) # 16-byte Spill
4910 ; AVX-NEXT:    vmovaps 384(%rdi), %xmm2
4911 ; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4912 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
4913 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
4914 ; AVX-NEXT:    vmovaps 480(%rdi), %xmm2
4915 ; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4916 ; AVX-NEXT:    vmovaps 448(%rdi), %xmm3
4917 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4918 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
4919 ; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4920 ; AVX-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[0,1,0,1]
4921 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
4922 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
4923 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4924 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4925 ; AVX-NEXT:    vmovaps 928(%rdi), %xmm0
4926 ; AVX-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4927 ; AVX-NEXT:    vmovaps 896(%rdi), %xmm1
4928 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4929 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
4930 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
4931 ; AVX-NEXT:    vmovaps 992(%rdi), %xmm1
4932 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4933 ; AVX-NEXT:    vmovaps 960(%rdi), %xmm2
4934 ; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4935 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm9 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
4936 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm9[0,1,0,1]
4937 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
4938 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
4939 ; AVX-NEXT:    vmovaps 800(%rdi), %xmm1
4940 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4941 ; AVX-NEXT:    vmovaps 768(%rdi), %xmm11
4942 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm11[0],xmm1[0],xmm11[1],xmm1[1]
4943 ; AVX-NEXT:    vmovaps 864(%rdi), %xmm2
4944 ; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4945 ; AVX-NEXT:    vmovaps 832(%rdi), %xmm3
4946 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4947 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
4948 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm7[0]
4949 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
4950 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4951 ; AVX-NEXT:    vmovaps 160(%rdi), %xmm1
4952 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4953 ; AVX-NEXT:    vmovaps 128(%rdi), %xmm0
4954 ; AVX-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4955 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
4956 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
4957 ; AVX-NEXT:    vmovaps 224(%rdi), %xmm1
4958 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4959 ; AVX-NEXT:    vmovaps 192(%rdi), %xmm2
4960 ; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4961 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
4962 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4963 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[0,1,0,1]
4964 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
4965 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
4966 ; AVX-NEXT:    vmovaps 32(%rdi), %xmm1
4967 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4968 ; AVX-NEXT:    vmovaps (%rdi), %xmm13
4969 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm13[0],xmm1[0],xmm13[1],xmm1[1]
4970 ; AVX-NEXT:    vmovaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4971 ; AVX-NEXT:    vmovaps 96(%rdi), %xmm2
4972 ; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4973 ; AVX-NEXT:    vmovaps 64(%rdi), %xmm3
4974 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4975 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
4976 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm5[0]
4977 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
4978 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4979 ; AVX-NEXT:    vmovaps 672(%rdi), %xmm12
4980 ; AVX-NEXT:    vmovaps 640(%rdi), %xmm0
4981 ; AVX-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4982 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm0[0],xmm12[0],xmm0[1],xmm12[1]
4983 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
4984 ; AVX-NEXT:    vmovaps 736(%rdi), %xmm1
4985 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4986 ; AVX-NEXT:    vmovaps 704(%rdi), %xmm2
4987 ; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4988 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm8 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
4989 ; AVX-NEXT:    vshufps {{.*#+}} xmm4 = xmm8[0,1,0,1]
4990 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
4991 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3,4,5],ymm4[6,7]
4992 ; AVX-NEXT:    vmovaps 544(%rdi), %xmm6
4993 ; AVX-NEXT:    vmovaps 512(%rdi), %xmm3
4994 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm3[0],xmm6[0],xmm3[1],xmm6[1]
4995 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4996 ; AVX-NEXT:    vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4997 ; AVX-NEXT:    vmovaps 608(%rdi), %xmm4
4998 ; AVX-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4999 ; AVX-NEXT:    vmovaps 576(%rdi), %xmm2
5000 ; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5001 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm2[0],xmm4[0],xmm2[1],xmm4[1]
5002 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm0 = xmm0[0],xmm2[0]
5003 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
5004 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5005 ; AVX-NEXT:    vshufps {{.*#+}} xmm0 = xmm10[1,1,1,1]
5006 ; AVX-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0],xmm14[1],xmm0[2,3]
5007 ; AVX-NEXT:    vblendps $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
5008 ; AVX-NEXT:    # xmm0 = xmm0[0,1],mem[2,3]
5009 ; AVX-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 16-byte Folded Reload
5010 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
5011 ; AVX-NEXT:    vshufps {{.*#+}} xmm15 = xmm4[1,1,1,1]
5012 ; AVX-NEXT:    vmovaps (%rsp), %xmm14 # 16-byte Reload
5013 ; AVX-NEXT:    vblendps {{.*#+}} xmm15 = xmm15[0],xmm14[1],xmm15[2,3]
5014 ; AVX-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm15
5015 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm15[0,1,2,3,4,5],ymm1[6,7]
5016 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
5017 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5018 ; AVX-NEXT:    vshufps {{.*#+}} xmm0 = xmm11[1,1,1,1]
5019 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
5020 ; AVX-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0],xmm10[1],xmm0[2,3]
5021 ; AVX-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm7[2,3]
5022 ; AVX-NEXT:    vinsertf128 $1, %xmm9, %ymm0, %ymm1
5023 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload
5024 ; AVX-NEXT:    vshufps {{.*#+}} xmm7 = xmm9[1,1,1,1]
5025 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
5026 ; AVX-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0],xmm15[1],xmm7[2,3]
5027 ; AVX-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
5028 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm7[0,1,2,3,4,5],ymm1[6,7]
5029 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
5030 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5031 ; AVX-NEXT:    vshufps {{.*#+}} xmm0 = xmm13[1,1,1,1]
5032 ; AVX-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
5033 ; AVX-NEXT:    # xmm0 = xmm0[0],mem[1],xmm0[2,3]
5034 ; AVX-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm5[2,3]
5035 ; AVX-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 16-byte Folded Reload
5036 ; AVX-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload
5037 ; AVX-NEXT:    # xmm5 = mem[1,1,1,1]
5038 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload
5039 ; AVX-NEXT:    vblendps {{.*#+}} xmm5 = xmm5[0],xmm13[1],xmm5[2,3]
5040 ; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
5041 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm5[0,1,2,3,4,5],ymm1[6,7]
5042 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
5043 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5044 ; AVX-NEXT:    vshufps {{.*#+}} xmm0 = xmm3[1,1,1,1]
5045 ; AVX-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0],xmm6[1],xmm0[2,3]
5046 ; AVX-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm2[2,3]
5047 ; AVX-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm1
5048 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
5049 ; AVX-NEXT:    vshufps {{.*#+}} xmm2 = xmm5[1,1,1,1]
5050 ; AVX-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0],xmm12[1],xmm2[2,3]
5051 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
5052 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
5053 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
5054 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5055 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5056 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm3 # 16-byte Folded Reload
5057 ; AVX-NEXT:    # xmm3 = xmm0[2],mem[2],xmm0[3],mem[3]
5058 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5059 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm4[2],xmm14[2],xmm4[3],xmm14[3]
5060 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5061 ; AVX-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5062 ; AVX-NEXT:    # xmm0 = mem[2,2,2,2]
5063 ; AVX-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
5064 ; AVX-NEXT:    # xmm0 = mem[0,1,2],xmm0[3]
5065 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
5066 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm2
5067 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3,4,5],ymm0[6,7]
5068 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
5069 ; AVX-NEXT:    vshufps {{.*#+}} xmm2 = xmm7[2,2,2,2]
5070 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
5071 ; AVX-NEXT:    vblendps {{.*#+}} xmm2 = xmm1[0,1,2],xmm2[3]
5072 ; AVX-NEXT:    vblendps {{.*#+}} xmm2 = xmm3[0,1],xmm2[2,3]
5073 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
5074 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5075 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm11[2],xmm10[2],xmm11[3],xmm10[3]
5076 ; AVX-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5077 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm9[2],xmm15[2],xmm9[3],xmm15[3]
5078 ; AVX-NEXT:    vmovaps %xmm0, (%rsp) # 16-byte Spill
5079 ; AVX-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
5080 ; AVX-NEXT:    # xmm2 = mem[2,2,2,2]
5081 ; AVX-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
5082 ; AVX-NEXT:    # xmm2 = mem[0,1,2],xmm2[3]
5083 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
5084 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm3
5085 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3,4,5],ymm2[6,7]
5086 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
5087 ; AVX-NEXT:    vshufps {{.*#+}} xmm3 = xmm14[2,2,2,2]
5088 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5089 ; AVX-NEXT:    vblendps {{.*#+}} xmm3 = xmm0[0,1,2],xmm3[3]
5090 ; AVX-NEXT:    vblendps {{.*#+}} xmm3 = xmm4[0,1],xmm3[2,3]
5091 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
5092 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5093 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
5094 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm4 # 16-byte Folded Reload
5095 ; AVX-NEXT:    # xmm4 = xmm2[2],mem[2],xmm2[3],mem[3]
5096 ; AVX-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5097 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
5098 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm3 = xmm2[2],xmm13[2],xmm2[3],xmm13[3]
5099 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5100 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
5101 ; AVX-NEXT:    vshufps {{.*#+}} xmm2 = xmm15[2,2,2,2]
5102 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload
5103 ; AVX-NEXT:    vblendps {{.*#+}} xmm2 = xmm13[0,1,2],xmm2[3]
5104 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
5105 ; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm6
5106 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm6[0,1,2,3,4,5],ymm2[6,7]
5107 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload
5108 ; AVX-NEXT:    vshufps {{.*#+}} xmm6 = xmm9[2,2,2,2]
5109 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
5110 ; AVX-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1,2],xmm6[3]
5111 ; AVX-NEXT:    vblendps {{.*#+}} xmm6 = xmm4[0,1],xmm6[2,3]
5112 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm6[0,1,2,3],ymm2[4,5,6,7]
5113 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5114 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
5115 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm11 # 16-byte Folded Reload
5116 ; AVX-NEXT:    # xmm11 = xmm2[2],mem[2],xmm2[3],mem[3]
5117 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm12 = xmm5[2],xmm12[2],xmm5[3],xmm12[3]
5118 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
5119 ; AVX-NEXT:    vshufps {{.*#+}} xmm6 = xmm10[2,2,2,2]
5120 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
5121 ; AVX-NEXT:    vblendps {{.*#+}} xmm6 = xmm5[0,1,2],xmm6[3]
5122 ; AVX-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
5123 ; AVX-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm8
5124 ; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm8[0,1,2,3,4,5],ymm6[6,7]
5125 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
5126 ; AVX-NEXT:    vshufps {{.*#+}} xmm8 = xmm4[2,2,2,2]
5127 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
5128 ; AVX-NEXT:    vblendps {{.*#+}} xmm8 = xmm2[0,1,2],xmm8[3]
5129 ; AVX-NEXT:    vblendps {{.*#+}} xmm8 = xmm11[0,1],xmm8[2,3]
5130 ; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm8[0,1,2,3],ymm6[4,5,6,7]
5131 ; AVX-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5132 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm6 = xmm1[2],xmm7[2],xmm1[3],xmm7[3]
5133 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
5134 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm6 = xmm1[1],xmm6[1]
5135 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
5136 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm7 # 16-byte Folded Reload
5137 ; AVX-NEXT:    # xmm7 = xmm1[2],mem[2],xmm1[3],mem[3]
5138 ; AVX-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
5139 ; AVX-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5140 ; AVX-NEXT:    # xmm1 = mem[2,3,2,3]
5141 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
5142 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm7[6,7]
5143 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm6[0,1,2,3],ymm1[4,5,6,7]
5144 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5145 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm0[2],xmm14[2],xmm0[3],xmm14[3]
5146 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5147 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm0[1],xmm1[1]
5148 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5149 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm6 # 16-byte Folded Reload
5150 ; AVX-NEXT:    # xmm6 = xmm0[2],mem[2],xmm0[3],mem[3]
5151 ; AVX-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
5152 ; AVX-NEXT:    vpermilps $238, (%rsp), %xmm0 # 16-byte Folded Reload
5153 ; AVX-NEXT:    # xmm0 = mem[2,3,2,3]
5154 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
5155 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm6[6,7]
5156 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
5157 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5158 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm3[2],xmm9[2],xmm3[3],xmm9[3]
5159 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
5160 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
5161 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm13[2],xmm15[2],xmm13[3],xmm15[3]
5162 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
5163 ; AVX-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload
5164 ; AVX-NEXT:    # xmm3 = mem[2,3,2,3]
5165 ; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
5166 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3,4,5],ymm1[6,7]
5167 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
5168 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5169 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm2[2],xmm4[2],xmm2[3],xmm4[3]
5170 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm11[1],xmm0[1]
5171 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm5[2],xmm10[2],xmm5[3],xmm10[3]
5172 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
5173 ; AVX-NEXT:    vshufps {{.*#+}} xmm2 = xmm12[2,3,2,3]
5174 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
5175 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
5176 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
5177 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5178 ; AVX-NEXT:    vmovaps 416(%rdi), %ymm13
5179 ; AVX-NEXT:    vmovaps 384(%rdi), %ymm5
5180 ; AVX-NEXT:    vmovaps 448(%rdi), %ymm9
5181 ; AVX-NEXT:    vmovaps 480(%rdi), %ymm12
5182 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm12[0],ymm9[0],ymm12[2],ymm9[2]
5183 ; AVX-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5184 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm5[0],ymm13[0],ymm5[1],ymm13[1],ymm5[4],ymm13[4],ymm5[5],ymm13[5]
5185 ; AVX-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5186 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]
5187 ; AVX-NEXT:    vmovaps 288(%rdi), %ymm2
5188 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5189 ; AVX-NEXT:    vmovaps 256(%rdi), %ymm1
5190 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5191 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[1],ymm2[1],ymm1[4],ymm2[4],ymm1[5],ymm2[5]
5192 ; AVX-NEXT:    vextractf128 $1, %ymm1, %xmm1
5193 ; AVX-NEXT:    vmovaps 320(%rdi), %ymm2
5194 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5195 ; AVX-NEXT:    vmovaps 352(%rdi), %ymm11
5196 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm11[0],ymm2[0],ymm11[2],ymm2[2]
5197 ; AVX-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5198 ; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[0,1,2,0,4,5,6,4]
5199 ; AVX-NEXT:    vextractf128 $1, %ymm2, %xmm2
5200 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
5201 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
5202 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5203 ; AVX-NEXT:    vmovaps 928(%rdi), %ymm2
5204 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5205 ; AVX-NEXT:    vmovaps 896(%rdi), %ymm3
5206 ; AVX-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5207 ; AVX-NEXT:    vmovaps 960(%rdi), %ymm1
5208 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5209 ; AVX-NEXT:    vmovaps 992(%rdi), %ymm0
5210 ; AVX-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
5211 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
5212 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
5213 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]
5214 ; AVX-NEXT:    vmovaps 800(%rdi), %ymm1
5215 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5216 ; AVX-NEXT:    vmovaps 768(%rdi), %ymm2
5217 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5218 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[4],ymm1[4],ymm2[5],ymm1[5]
5219 ; AVX-NEXT:    vextractf128 $1, %ymm1, %xmm1
5220 ; AVX-NEXT:    vmovaps 832(%rdi), %ymm3
5221 ; AVX-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5222 ; AVX-NEXT:    vmovaps 864(%rdi), %ymm2
5223 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5224 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
5225 ; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[0,1,2,0,4,5,6,4]
5226 ; AVX-NEXT:    vextractf128 $1, %ymm2, %xmm2
5227 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
5228 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
5229 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5230 ; AVX-NEXT:    vmovaps 672(%rdi), %ymm2
5231 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5232 ; AVX-NEXT:    vmovaps 640(%rdi), %ymm1
5233 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5234 ; AVX-NEXT:    vmovaps 704(%rdi), %ymm0
5235 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5236 ; AVX-NEXT:    vmovaps 736(%rdi), %ymm10
5237 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm10[0],ymm0[0],ymm10[2],ymm0[2]
5238 ; AVX-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5239 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[1],ymm2[1],ymm1[4],ymm2[4],ymm1[5],ymm2[5]
5240 ; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]
5241 ; AVX-NEXT:    vmovaps 544(%rdi), %ymm0
5242 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5243 ; AVX-NEXT:    vmovaps 512(%rdi), %ymm1
5244 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5245 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
5246 ; AVX-NEXT:    vextractf128 $1, %ymm0, %xmm6
5247 ; AVX-NEXT:    vmovaps 576(%rdi), %ymm0
5248 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5249 ; AVX-NEXT:    vmovaps 608(%rdi), %ymm1
5250 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5251 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm8 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
5252 ; AVX-NEXT:    vshufps {{.*#+}} ymm8 = ymm8[0,1,2,0,4,5,6,4]
5253 ; AVX-NEXT:    vextractf128 $1, %ymm8, %xmm8
5254 ; AVX-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0,1],xmm8[2,3]
5255 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm6[0,1,2,3],ymm3[4,5,6,7]
5256 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5257 ; AVX-NEXT:    vmovaps 160(%rdi), %ymm0
5258 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5259 ; AVX-NEXT:    vmovaps 128(%rdi), %ymm1
5260 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5261 ; AVX-NEXT:    vmovaps 192(%rdi), %ymm2
5262 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5263 ; AVX-NEXT:    vmovaps 224(%rdi), %ymm3
5264 ; AVX-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5265 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
5266 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm6 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
5267 ; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm6[0,1],ymm3[2,0],ymm6[4,5],ymm3[6,4]
5268 ; AVX-NEXT:    vmovaps 64(%rdi), %ymm14
5269 ; AVX-NEXT:    vmovaps 96(%rdi), %ymm2
5270 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5271 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm2[0],ymm14[0],ymm2[2],ymm14[2]
5272 ; AVX-NEXT:    vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5273 ; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[0,1,2,0,4,5,6,4]
5274 ; AVX-NEXT:    vextractf128 $1, %ymm3, %xmm0
5275 ; AVX-NEXT:    vmovaps (%rdi), %ymm2
5276 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5277 ; AVX-NEXT:    vmovaps 32(%rdi), %ymm3
5278 ; AVX-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5279 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm15 = ymm2[0],ymm3[0],ymm2[1],ymm3[1],ymm2[4],ymm3[4],ymm2[5],ymm3[5]
5280 ; AVX-NEXT:    vextractf128 $1, %ymm15, %xmm15
5281 ; AVX-NEXT:    vblendps {{.*#+}} xmm0 = xmm15[0,1],xmm0[2,3]
5282 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
5283 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5284 ; AVX-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5285 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm9[0],ymm12[0],ymm9[1],ymm12[1],ymm9[4],ymm12[4],ymm9[5],ymm12[5]
5286 ; AVX-NEXT:    vmovaps %ymm13, %ymm8
5287 ; AVX-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5288 ; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm13[1,0],ymm5[1,0],ymm13[5,4],ymm5[5,4]
5289 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[2,0],ymm0[2,3],ymm1[6,4],ymm0[6,7]
5290 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
5291 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm13[0],ymm11[0],ymm13[1],ymm11[1],ymm13[4],ymm11[4],ymm13[5],ymm11[5]
5292 ; AVX-NEXT:    vextractf128 $1, %ymm1, %xmm1
5293 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
5294 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
5295 ; AVX-NEXT:    vshufps {{.*#+}} ymm15 = ymm3[1,0],ymm5[1,0],ymm3[5,4],ymm5[5,4]
5296 ; AVX-NEXT:    vshufps {{.*#+}} ymm15 = ymm15[2,0,2,3,6,4,6,7]
5297 ; AVX-NEXT:    vextractf128 $1, %ymm15, %xmm15
5298 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm15[0,1],xmm1[2,3]
5299 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
5300 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5301 ; AVX-NEXT:    vmovups (%rsp), %ymm11 # 32-byte Reload
5302 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
5303 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm7[0],ymm11[0],ymm7[1],ymm11[1],ymm7[4],ymm11[4],ymm7[5],ymm11[5]
5304 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
5305 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
5306 ; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[1,0],ymm9[1,0],ymm1[5,4],ymm9[5,4]
5307 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[2,0],ymm0[2,3],ymm1[6,4],ymm0[6,7]
5308 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
5309 ; AVX-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
5310 ; AVX-NEXT:    # ymm1 = ymm1[0],mem[0],ymm1[1],mem[1],ymm1[4],mem[4],ymm1[5],mem[5]
5311 ; AVX-NEXT:    vextractf128 $1, %ymm1, %xmm1
5312 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
5313 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
5314 ; AVX-NEXT:    vshufps {{.*#+}} ymm15 = ymm6[1,0],ymm4[1,0],ymm6[5,4],ymm4[5,4]
5315 ; AVX-NEXT:    vshufps {{.*#+}} ymm15 = ymm15[2,0,2,3,6,4,6,7]
5316 ; AVX-NEXT:    vextractf128 $1, %ymm15, %xmm15
5317 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm15[0,1],xmm1[2,3]
5318 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
5319 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5320 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5321 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm0[0],ymm10[0],ymm0[1],ymm10[1],ymm0[4],ymm10[4],ymm0[5],ymm10[5]
5322 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
5323 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
5324 ; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm6[1,0],ymm10[1,0],ymm6[5,4],ymm10[5,4]
5325 ; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm1[2,0],ymm0[2,3],ymm1[6,4],ymm0[6,7]
5326 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
5327 ; AVX-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
5328 ; AVX-NEXT:    # ymm1 = ymm1[0],mem[0],ymm1[1],mem[1],ymm1[4],mem[4],ymm1[5],mem[5]
5329 ; AVX-NEXT:    vextractf128 $1, %ymm1, %xmm1
5330 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload
5331 ; AVX-NEXT:    vshufps $17, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm15 # 32-byte Folded Reload
5332 ; AVX-NEXT:    # ymm15 = ymm15[1,0],mem[1,0],ymm15[5,4],mem[5,4]
5333 ; AVX-NEXT:    vshufps {{.*#+}} ymm15 = ymm15[2,0,2,3,6,4,6,7]
5334 ; AVX-NEXT:    vextractf128 $1, %ymm15, %xmm15
5335 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm15[0,1],xmm1[2,3]
5336 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm2[4,5,6,7]
5337 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5338 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5339 ; AVX-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
5340 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[1],mem[1],ymm0[4],mem[4],ymm0[5],mem[5]
5341 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
5342 ; AVX-NEXT:    vshufps $17, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
5343 ; AVX-NEXT:    # ymm1 = ymm1[1,0],mem[1,0],ymm1[5,4],mem[5,4]
5344 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[2,0],ymm0[2,3],ymm1[6,4],ymm0[6,7]
5345 ; AVX-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm1 # 32-byte Folded Reload
5346 ; AVX-NEXT:    # ymm1 = ymm14[0],mem[0],ymm14[1],mem[1],ymm14[4],mem[4],ymm14[5],mem[5]
5347 ; AVX-NEXT:    vextractf128 $1, %ymm1, %xmm1
5348 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
5349 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
5350 ; AVX-NEXT:    vshufps {{.*#+}} ymm15 = ymm14[1,0],ymm2[1,0],ymm14[5,4],ymm2[5,4]
5351 ; AVX-NEXT:    vshufps {{.*#+}} ymm15 = ymm15[2,0,2,3,6,4,6,7]
5352 ; AVX-NEXT:    vextractf128 $1, %ymm15, %xmm15
5353 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm15[0,1],xmm1[2,3]
5354 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
5355 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5356 ; AVX-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm0 # 32-byte Folded Reload
5357 ; AVX-NEXT:    # ymm0 = ymm12[1],mem[1],ymm12[3],mem[3]
5358 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
5359 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm1[2],ymm8[2],ymm1[3],ymm8[3],ymm1[6],ymm8[6],ymm1[7],ymm8[7]
5360 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]
5361 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm5[2],ymm3[2],ymm5[3],ymm3[3],ymm5[6],ymm3[6],ymm5[7],ymm3[7]
5362 ; AVX-NEXT:    vextractf128 $1, %ymm1, %xmm1
5363 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
5364 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm15 = ymm12[1],ymm13[1],ymm12[3],ymm13[3]
5365 ; AVX-NEXT:    vshufps {{.*#+}} ymm15 = ymm15[0,1,2,0,4,5,6,4]
5366 ; AVX-NEXT:    vextractf128 $1, %ymm15, %xmm15
5367 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm15[2,3]
5368 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
5369 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5370 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm11[1],ymm7[1],ymm11[3],ymm7[3]
5371 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm1 # 32-byte Folded Reload
5372 ; AVX-NEXT:    # ymm1 = ymm9[2],mem[2],ymm9[3],mem[3],ymm9[6],mem[6],ymm9[7],mem[7]
5373 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]
5374 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm1 # 32-byte Folded Reload
5375 ; AVX-NEXT:    # ymm1 = ymm4[2],mem[2],ymm4[3],mem[3],ymm4[6],mem[6],ymm4[7],mem[7]
5376 ; AVX-NEXT:    vextractf128 $1, %ymm1, %xmm1
5377 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
5378 ; AVX-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm15 # 32-byte Folded Reload
5379 ; AVX-NEXT:    # ymm15 = ymm3[1],mem[1],ymm3[3],mem[3]
5380 ; AVX-NEXT:    vshufps {{.*#+}} ymm15 = ymm15[0,1,2,0,4,5,6,4]
5381 ; AVX-NEXT:    vextractf128 $1, %ymm15, %xmm15
5382 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm15[2,3]
5383 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
5384 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5385 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
5386 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
5387 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm5[1],ymm7[1],ymm5[3],ymm7[3]
5388 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm10[2],ymm6[2],ymm10[3],ymm6[3],ymm10[6],ymm6[6],ymm10[7],ymm6[7]
5389 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]
5390 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
5391 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
5392 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm6[2],ymm8[2],ymm6[3],ymm8[3],ymm6[6],ymm8[6],ymm6[7],ymm8[7]
5393 ; AVX-NEXT:    vextractf128 $1, %ymm1, %xmm1
5394 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
5395 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
5396 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm15 = ymm4[1],ymm3[1],ymm4[3],ymm3[3]
5397 ; AVX-NEXT:    vshufps {{.*#+}} ymm15 = ymm15[0,1,2,0,4,5,6,4]
5398 ; AVX-NEXT:    vextractf128 $1, %ymm15, %xmm15
5399 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm15[2,3]
5400 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
5401 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5402 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload
5403 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5404 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm11[1],ymm0[3],ymm11[3]
5405 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
5406 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
5407 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm13[2],ymm10[2],ymm13[3],ymm10[3],ymm13[6],ymm10[6],ymm13[7],ymm10[7]
5408 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]
5409 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
5410 ; AVX-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm1 # 32-byte Folded Reload
5411 ; AVX-NEXT:    # ymm1 = ymm9[1],mem[1],ymm9[3],mem[3]
5412 ; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,1,2,0,4,5,6,4]
5413 ; AVX-NEXT:    vextractf128 $1, %ymm1, %xmm1
5414 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm15 = ymm2[2],ymm14[2],ymm2[3],ymm14[3],ymm2[6],ymm14[6],ymm2[7],ymm14[7]
5415 ; AVX-NEXT:    vextractf128 $1, %ymm15, %xmm15
5416 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm15[0,1],xmm1[2,3]
5417 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
5418 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5419 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5420 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
5421 ; AVX-NEXT:    # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
5422 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
5423 ; AVX-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
5424 ; AVX-NEXT:    # ymm1 = ymm1[3,0],mem[3,0],ymm1[7,4],mem[7,4]
5425 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[2,0],ymm0[2,3],ymm1[6,4],ymm0[6,7]
5426 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
5427 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm1[2],ymm12[2],ymm1[3],ymm12[3],ymm1[6],ymm12[6],ymm1[7],ymm12[7]
5428 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
5429 ; AVX-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm15 # 32-byte Folded Reload
5430 ; AVX-NEXT:    # ymm15 = ymm2[3,0],mem[3,0],ymm2[7,4],mem[7,4]
5431 ; AVX-NEXT:    vextractf128 $1, %ymm1, %xmm1
5432 ; AVX-NEXT:    vshufps {{.*#+}} ymm15 = ymm15[2,0,2,3,6,4,6,7]
5433 ; AVX-NEXT:    vextractf128 $1, %ymm15, %xmm15
5434 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm15[0,1],xmm1[2,3]
5435 ; AVX-NEXT:    vblendps {{.*#+}} ymm12 = ymm1[0,1,2,3],ymm0[4,5,6,7]
5436 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm0 = ymm7[2],ymm5[2],ymm7[3],ymm5[3],ymm7[6],ymm5[6],ymm7[7],ymm5[7]
5437 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
5438 ; AVX-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
5439 ; AVX-NEXT:    # ymm1 = ymm1[3,0],mem[3,0],ymm1[7,4],mem[7,4]
5440 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[2,0],ymm0[2,3],ymm1[6,4],ymm0[6,7]
5441 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm3[2],ymm4[2],ymm3[3],ymm4[3],ymm3[6],ymm4[6],ymm3[7],ymm4[7]
5442 ; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm8[3,0],ymm6[3,0],ymm8[7,4],ymm6[7,4]
5443 ; AVX-NEXT:    vextractf128 $1, %ymm1, %xmm1
5444 ; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[2,0,2,3,6,4,6,7]
5445 ; AVX-NEXT:    vextractf128 $1, %ymm2, %xmm2
5446 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
5447 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
5448 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
5449 ; AVX-NEXT:    vunpckhps (%rsp), %ymm1, %ymm1 # 32-byte Folded Reload
5450 ; AVX-NEXT:    # ymm1 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
5451 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
5452 ; AVX-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
5453 ; AVX-NEXT:    # ymm2 = ymm2[3,0],mem[3,0],ymm2[7,4],mem[7,4]
5454 ; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm2[2,0],ymm1[2,3],ymm2[6,4],ymm1[6,7]
5455 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
5456 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
5457 ; AVX-NEXT:    # ymm2 = ymm2[2],mem[2],ymm2[3],mem[3],ymm2[6],mem[6],ymm2[7],mem[7]
5458 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
5459 ; AVX-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm4 # 32-byte Folded Reload
5460 ; AVX-NEXT:    # ymm4 = ymm3[3,0],mem[3,0],ymm3[7,4],mem[7,4]
5461 ; AVX-NEXT:    vextractf128 $1, %ymm2, %xmm2
5462 ; AVX-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[2,0,2,3,6,4,6,7]
5463 ; AVX-NEXT:    vextractf128 $1, %ymm4, %xmm4
5464 ; AVX-NEXT:    vblendps {{.*#+}} xmm2 = xmm4[0,1],xmm2[2,3]
5465 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
5466 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm2 # 32-byte Folded Reload
5467 ; AVX-NEXT:    # ymm2 = ymm11[2],mem[2],ymm11[3],mem[3],ymm11[6],mem[6],ymm11[7],mem[7]
5468 ; AVX-NEXT:    vshufps {{.*#+}} ymm4 = ymm10[3,0],ymm13[3,0],ymm10[7,4],ymm13[7,4]
5469 ; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm4[2,0],ymm2[2,3],ymm4[6,4],ymm2[6,7]
5470 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
5471 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm4 = ymm3[2],ymm9[2],ymm3[3],ymm9[3],ymm3[6],ymm9[6],ymm3[7],ymm9[7]
5472 ; AVX-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm3 # 32-byte Folded Reload
5473 ; AVX-NEXT:    # ymm3 = ymm14[3,0],mem[3,0],ymm14[7,4],mem[7,4]
5474 ; AVX-NEXT:    vextractf128 $1, %ymm4, %xmm4
5475 ; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[2,0,2,3,6,4,6,7]
5476 ; AVX-NEXT:    vextractf128 $1, %ymm3, %xmm3
5477 ; AVX-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm4[2,3]
5478 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
5479 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
5480 ; AVX-NEXT:    vmovaps %ymm3, 64(%rsi)
5481 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
5482 ; AVX-NEXT:    vmovaps %ymm3, (%rsi)
5483 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
5484 ; AVX-NEXT:    vmovaps %ymm3, 96(%rsi)
5485 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
5486 ; AVX-NEXT:    vmovaps %ymm3, 32(%rsi)
5487 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
5488 ; AVX-NEXT:    vmovaps %ymm3, 64(%rdx)
5489 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
5490 ; AVX-NEXT:    vmovaps %ymm3, (%rdx)
5491 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
5492 ; AVX-NEXT:    vmovaps %ymm3, 96(%rdx)
5493 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
5494 ; AVX-NEXT:    vmovaps %ymm3, 32(%rdx)
5495 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
5496 ; AVX-NEXT:    vmovaps %ymm3, 64(%rcx)
5497 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
5498 ; AVX-NEXT:    vmovaps %ymm3, (%rcx)
5499 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
5500 ; AVX-NEXT:    vmovaps %ymm3, 96(%rcx)
5501 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
5502 ; AVX-NEXT:    vmovaps %ymm3, 32(%rcx)
5503 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
5504 ; AVX-NEXT:    vmovaps %ymm3, 64(%r8)
5505 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
5506 ; AVX-NEXT:    vmovaps %ymm3, (%r8)
5507 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
5508 ; AVX-NEXT:    vmovaps %ymm3, 96(%r8)
5509 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
5510 ; AVX-NEXT:    vmovaps %ymm3, 32(%r8)
5511 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
5512 ; AVX-NEXT:    vmovaps %ymm3, 64(%r9)
5513 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
5514 ; AVX-NEXT:    vmovaps %ymm3, (%r9)
5515 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
5516 ; AVX-NEXT:    vmovaps %ymm3, 96(%r9)
5517 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
5518 ; AVX-NEXT:    vmovaps %ymm3, 32(%r9)
5519 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax
5520 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
5521 ; AVX-NEXT:    vmovaps %ymm3, 64(%rax)
5522 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
5523 ; AVX-NEXT:    vmovaps %ymm3, (%rax)
5524 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
5525 ; AVX-NEXT:    vmovaps %ymm3, 96(%rax)
5526 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
5527 ; AVX-NEXT:    vmovaps %ymm3, 32(%rax)
5528 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax
5529 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
5530 ; AVX-NEXT:    vmovaps %ymm3, 64(%rax)
5531 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
5532 ; AVX-NEXT:    vmovaps %ymm3, (%rax)
5533 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
5534 ; AVX-NEXT:    vmovaps %ymm3, 96(%rax)
5535 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
5536 ; AVX-NEXT:    vmovaps %ymm3, 32(%rax)
5537 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax
5538 ; AVX-NEXT:    vmovaps %ymm1, 96(%rax)
5539 ; AVX-NEXT:    vmovaps %ymm0, 64(%rax)
5540 ; AVX-NEXT:    vmovaps %ymm12, 32(%rax)
5541 ; AVX-NEXT:    vmovaps %ymm2, (%rax)
5542 ; AVX-NEXT:    addq $1800, %rsp # imm = 0x708
5543 ; AVX-NEXT:    vzeroupper
5544 ; AVX-NEXT:    retq
5546 ; AVX2-LABEL: load_i32_stride8_vf32:
5547 ; AVX2:       # %bb.0:
5548 ; AVX2-NEXT:    subq $1544, %rsp # imm = 0x608
5549 ; AVX2-NEXT:    vmovaps 288(%rdi), %xmm0
5550 ; AVX2-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5551 ; AVX2-NEXT:    vmovaps 256(%rdi), %xmm10
5552 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm10[0],xmm0[0],xmm10[1],xmm0[1]
5553 ; AVX2-NEXT:    vmovaps 352(%rdi), %xmm14
5554 ; AVX2-NEXT:    vbroadcastss %xmm14, %xmm1
5555 ; AVX2-NEXT:    vmovaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5556 ; AVX2-NEXT:    vmovaps 320(%rdi), %xmm15
5557 ; AVX2-NEXT:    vbroadcastss %xmm15, %xmm2
5558 ; AVX2-NEXT:    vmovaps %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5559 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
5560 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
5561 ; AVX2-NEXT:    vmovaps 416(%rdi), %xmm1
5562 ; AVX2-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5563 ; AVX2-NEXT:    vmovaps 384(%rdi), %xmm12
5564 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm12[0],xmm1[0],xmm12[1],xmm1[1]
5565 ; AVX2-NEXT:    vmovaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5566 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
5567 ; AVX2-NEXT:    vmovaps 480(%rdi), %xmm2
5568 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5569 ; AVX2-NEXT:    vbroadcastss %xmm2, %xmm2
5570 ; AVX2-NEXT:    vmovaps 448(%rdi), %xmm3
5571 ; AVX2-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5572 ; AVX2-NEXT:    vbroadcastss %xmm3, %xmm3
5573 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
5574 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
5575 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
5576 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
5577 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5578 ; AVX2-NEXT:    vmovaps 800(%rdi), %xmm1
5579 ; AVX2-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5580 ; AVX2-NEXT:    vmovaps 768(%rdi), %xmm0
5581 ; AVX2-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5582 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
5583 ; AVX2-NEXT:    vmovaps 864(%rdi), %xmm1
5584 ; AVX2-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5585 ; AVX2-NEXT:    vbroadcastss %xmm1, %xmm1
5586 ; AVX2-NEXT:    vmovaps 832(%rdi), %xmm2
5587 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5588 ; AVX2-NEXT:    vbroadcastss %xmm2, %xmm2
5589 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
5590 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
5591 ; AVX2-NEXT:    vmovaps 992(%rdi), %xmm1
5592 ; AVX2-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5593 ; AVX2-NEXT:    vbroadcastss %xmm1, %xmm1
5594 ; AVX2-NEXT:    vmovaps 960(%rdi), %xmm11
5595 ; AVX2-NEXT:    vbroadcastss %xmm11, %xmm2
5596 ; AVX2-NEXT:    vmovaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5597 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
5598 ; AVX2-NEXT:    vmovaps 928(%rdi), %xmm2
5599 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5600 ; AVX2-NEXT:    vmovaps 896(%rdi), %xmm3
5601 ; AVX2-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5602 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
5603 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
5604 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
5605 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
5606 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
5607 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5608 ; AVX2-NEXT:    vmovaps 608(%rdi), %xmm0
5609 ; AVX2-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5610 ; AVX2-NEXT:    vbroadcastss %xmm0, %xmm0
5611 ; AVX2-NEXT:    vmovaps 576(%rdi), %xmm1
5612 ; AVX2-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5613 ; AVX2-NEXT:    vbroadcastss %xmm1, %xmm1
5614 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
5615 ; AVX2-NEXT:    vmovaps 544(%rdi), %xmm1
5616 ; AVX2-NEXT:    vmovaps %xmm1, (%rsp) # 16-byte Spill
5617 ; AVX2-NEXT:    vmovaps 512(%rdi), %xmm2
5618 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5619 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
5620 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
5621 ; AVX2-NEXT:    vmovaps 736(%rdi), %xmm1
5622 ; AVX2-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5623 ; AVX2-NEXT:    vbroadcastss %xmm1, %xmm1
5624 ; AVX2-NEXT:    vmovaps 704(%rdi), %xmm2
5625 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5626 ; AVX2-NEXT:    vbroadcastss %xmm2, %xmm2
5627 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
5628 ; AVX2-NEXT:    vmovaps 672(%rdi), %xmm2
5629 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5630 ; AVX2-NEXT:    vmovaps 640(%rdi), %xmm3
5631 ; AVX2-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5632 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
5633 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
5634 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
5635 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
5636 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
5637 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5638 ; AVX2-NEXT:    vmovaps 224(%rdi), %xmm0
5639 ; AVX2-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5640 ; AVX2-NEXT:    vbroadcastss %xmm0, %xmm0
5641 ; AVX2-NEXT:    vmovaps 192(%rdi), %xmm1
5642 ; AVX2-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5643 ; AVX2-NEXT:    vbroadcastss %xmm1, %xmm1
5644 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
5645 ; AVX2-NEXT:    vmovaps 160(%rdi), %xmm9
5646 ; AVX2-NEXT:    vmovaps 128(%rdi), %xmm8
5647 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm8[0],xmm9[0],xmm8[1],xmm9[1]
5648 ; AVX2-NEXT:    vmovaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5649 ; AVX2-NEXT:    vmovaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5650 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
5651 ; AVX2-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
5652 ; AVX2-NEXT:    vblendps {{.*#+}} ymm13 = ymm1[0,1,2,3,4,5],ymm0[6,7]
5653 ; AVX2-NEXT:    vmovaps 96(%rdi), %xmm7
5654 ; AVX2-NEXT:    vbroadcastss %xmm7, %xmm1
5655 ; AVX2-NEXT:    vmovaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5656 ; AVX2-NEXT:    vmovaps 64(%rdi), %xmm6
5657 ; AVX2-NEXT:    vbroadcastss %xmm6, %xmm2
5658 ; AVX2-NEXT:    vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5659 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
5660 ; AVX2-NEXT:    vmovaps (%rdi), %xmm5
5661 ; AVX2-NEXT:    vmovaps 32(%rdi), %xmm4
5662 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
5663 ; AVX2-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5664 ; AVX2-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5665 ; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm3[2,3]
5666 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm13[4,5,6,7]
5667 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5668 ; AVX2-NEXT:    vshufps {{.*#+}} xmm0 = xmm10[1,1,1,1]
5669 ; AVX2-NEXT:    vmovaps %xmm10, %xmm3
5670 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload
5671 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0],xmm13[1],xmm0[2,3]
5672 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm15[0],xmm14[0],xmm15[1],xmm14[1]
5673 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
5674 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
5675 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
5676 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm15[0],xmm14[0],xmm15[1],xmm14[1]
5677 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
5678 ; AVX2-NEXT:    vshufps {{.*#+}} xmm2 = xmm12[1,1,1,1]
5679 ; AVX2-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
5680 ; AVX2-NEXT:    # xmm2 = xmm2[0],mem[1],xmm2[2,3]
5681 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
5682 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
5683 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
5684 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5685 ; AVX2-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5686 ; AVX2-NEXT:    # xmm0 = mem[1,1,1,1]
5687 ; AVX2-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
5688 ; AVX2-NEXT:    # xmm0 = xmm0[0],mem[1],xmm0[2,3]
5689 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload
5690 ; AVX2-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm12, %xmm1 # 16-byte Folded Reload
5691 ; AVX2-NEXT:    # xmm1 = xmm12[0],mem[0],xmm12[1],mem[1]
5692 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
5693 ; AVX2-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11, %xmm1 # 16-byte Folded Reload
5694 ; AVX2-NEXT:    # xmm1 = xmm11[0],mem[0],xmm11[1],mem[1]
5695 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
5696 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload
5697 ; AVX2-NEXT:    vshufps {{.*#+}} xmm2 = xmm11[1,1,1,1]
5698 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
5699 ; AVX2-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0],xmm10[1],xmm2[2,3]
5700 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
5701 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
5702 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
5703 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5704 ; AVX2-NEXT:    vshufps {{.*#+}} xmm0 = xmm5[1,1,1,1]
5705 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0],xmm4[1],xmm0[2,3]
5706 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm6[0],xmm7[0],xmm6[1],xmm7[1]
5707 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
5708 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
5709 ; AVX2-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
5710 ; AVX2-NEXT:    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
5711 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
5712 ; AVX2-NEXT:    vshufps {{.*#+}} xmm2 = xmm8[1,1,1,1]
5713 ; AVX2-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0],xmm9[1],xmm2[2,3]
5714 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
5715 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
5716 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
5717 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5718 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
5719 ; AVX2-NEXT:    vshufps {{.*#+}} xmm0 = xmm8[1,1,1,1]
5720 ; AVX2-NEXT:    vmovaps (%rsp), %xmm7 # 16-byte Reload
5721 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0],xmm7[1],xmm0[2,3]
5722 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload
5723 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
5724 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm9[0],xmm1[1],xmm9[1]
5725 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
5726 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
5727 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
5728 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm4[0],xmm1[1],xmm4[1]
5729 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
5730 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
5731 ; AVX2-NEXT:    vshufps {{.*#+}} xmm2 = xmm6[1,1,1,1]
5732 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
5733 ; AVX2-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0],xmm5[1],xmm2[2,3]
5734 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
5735 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
5736 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
5737 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5738 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm3 = xmm3[2],xmm13[2],xmm3[3],xmm13[3]
5739 ; AVX2-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5740 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5741 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm1 # 16-byte Folded Reload
5742 ; AVX2-NEXT:    # xmm1 = xmm0[2],mem[2],xmm0[3],mem[3]
5743 ; AVX2-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5744 ; AVX2-NEXT:    vshufps {{.*#+}} xmm0 = xmm14[2,2,2,2]
5745 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm15[0,1,2],xmm0[3]
5746 ; AVX2-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
5747 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
5748 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
5749 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload
5750 ; AVX2-NEXT:    vshufps {{.*#+}} xmm1 = xmm13[2,2,2,2]
5751 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
5752 ; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1,2],xmm1[3]
5753 ; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm3[0,1],xmm1[2,3]
5754 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
5755 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5756 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5757 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm3 # 16-byte Folded Reload
5758 ; AVX2-NEXT:    # xmm3 = xmm0[2],mem[2],xmm0[3],mem[3]
5759 ; AVX2-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5760 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm11[2],xmm10[2],xmm11[3],xmm10[3]
5761 ; AVX2-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5762 ; AVX2-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload
5763 ; AVX2-NEXT:    # xmm15 = mem[2,2,2,2]
5764 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
5765 ; AVX2-NEXT:    vblendps {{.*#+}} xmm15 = xmm1[0,1,2],xmm15[3]
5766 ; AVX2-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm15
5767 ; AVX2-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm14
5768 ; AVX2-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3,4,5],ymm15[6,7]
5769 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5770 ; AVX2-NEXT:    vshufps {{.*#+}} xmm15 = xmm0[2,2,2,2]
5771 ; AVX2-NEXT:    vblendps {{.*#+}} xmm15 = xmm12[0,1,2],xmm15[3]
5772 ; AVX2-NEXT:    vblendps {{.*#+}} xmm15 = xmm3[0,1],xmm15[2,3]
5773 ; AVX2-NEXT:    vblendps {{.*#+}} ymm14 = ymm15[0,1,2,3],ymm14[4,5,6,7]
5774 ; AVX2-NEXT:    vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5775 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm14 = xmm8[2],xmm7[2],xmm8[3],xmm7[3]
5776 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm12 = xmm6[2],xmm5[2],xmm6[3],xmm5[3]
5777 ; AVX2-NEXT:    vshufps {{.*#+}} xmm11 = xmm4[2,2,2,2]
5778 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
5779 ; AVX2-NEXT:    vblendps {{.*#+}} xmm11 = xmm10[0,1,2],xmm11[3]
5780 ; AVX2-NEXT:    vinsertf128 $1, %xmm11, %ymm0, %ymm11
5781 ; AVX2-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm15
5782 ; AVX2-NEXT:    vblendps {{.*#+}} ymm11 = ymm15[0,1,2,3,4,5],ymm11[6,7]
5783 ; AVX2-NEXT:    vshufps {{.*#+}} xmm15 = xmm9[2,2,2,2]
5784 ; AVX2-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload
5785 ; AVX2-NEXT:    # xmm15 = mem[0,1,2],xmm15[3]
5786 ; AVX2-NEXT:    vblendps {{.*#+}} xmm15 = xmm14[0,1],xmm15[2,3]
5787 ; AVX2-NEXT:    vblendps {{.*#+}} ymm11 = ymm15[0,1,2,3],ymm11[4,5,6,7]
5788 ; AVX2-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5789 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
5790 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm9 # 16-byte Folded Reload
5791 ; AVX2-NEXT:    # xmm9 = xmm3[2],mem[2],xmm3[3],mem[3]
5792 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
5793 ; AVX2-NEXT:    vshufps {{.*#+}} xmm7 = xmm15[2,2,2,2]
5794 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
5795 ; AVX2-NEXT:    vblendps {{.*#+}} xmm7 = xmm4[0,1,2],xmm7[3]
5796 ; AVX2-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
5797 ; AVX2-NEXT:    vinsertf128 $1, %xmm9, %ymm0, %ymm11
5798 ; AVX2-NEXT:    vblendps {{.*#+}} ymm7 = ymm11[0,1,2,3,4,5],ymm7[6,7]
5799 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
5800 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm6 # 16-byte Folded Reload
5801 ; AVX2-NEXT:    # xmm6 = xmm3[2],mem[2],xmm3[3],mem[3]
5802 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload
5803 ; AVX2-NEXT:    vshufps {{.*#+}} xmm5 = xmm11[2,2,2,2]
5804 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
5805 ; AVX2-NEXT:    vblendps {{.*#+}} xmm5 = xmm8[0,1,2],xmm5[3]
5806 ; AVX2-NEXT:    vblendps {{.*#+}} xmm5 = xmm6[0,1],xmm5[2,3]
5807 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm7[4,5,6,7]
5808 ; AVX2-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5809 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm2[2],xmm13[2],xmm2[3],xmm13[3]
5810 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
5811 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm2 = xmm2[1],xmm5[1]
5812 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
5813 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm5 # 16-byte Folded Reload
5814 ; AVX2-NEXT:    # xmm5 = xmm3[2],mem[2],xmm3[3],mem[3]
5815 ; AVX2-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
5816 ; AVX2-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload
5817 ; AVX2-NEXT:    # xmm3 = mem[2,3,2,3]
5818 ; AVX2-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
5819 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm5[6,7]
5820 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
5821 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5822 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
5823 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm2[2],xmm0[2],xmm2[3],xmm0[3]
5824 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5825 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
5826 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm2 # 16-byte Folded Reload
5827 ; AVX2-NEXT:    # xmm2 = xmm1[2],mem[2],xmm1[3],mem[3]
5828 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
5829 ; AVX2-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5830 ; AVX2-NEXT:    # xmm1 = mem[2,3,2,3]
5831 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
5832 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
5833 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
5834 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5835 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5836 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
5837 ; AVX2-NEXT:    # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]
5838 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm14[1],xmm0[1]
5839 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10, %xmm1 # 16-byte Folded Reload
5840 ; AVX2-NEXT:    # xmm1 = xmm10[2],mem[2],xmm10[3],mem[3]
5841 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
5842 ; AVX2-NEXT:    vshufps {{.*#+}} xmm2 = xmm12[2,3,2,3]
5843 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
5844 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
5845 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
5846 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5847 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm4[2],xmm15[2],xmm4[3],xmm15[3]
5848 ; AVX2-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
5849 ; AVX2-NEXT:    vshufps {{.*#+}} xmm1 = xmm9[2,3,2,3]
5850 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
5851 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
5852 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm8[2],xmm11[2],xmm8[3],xmm11[3]
5853 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm6[1],xmm1[1]
5854 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
5855 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5856 ; AVX2-NEXT:    vmovaps 288(%rdi), %ymm0
5857 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5858 ; AVX2-NEXT:    vmovaps 256(%rdi), %ymm1
5859 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5860 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
5861 ; AVX2-NEXT:    vextractf128 $1, %ymm0, %xmm0
5862 ; AVX2-NEXT:    vmovaps 352(%rdi), %ymm1
5863 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5864 ; AVX2-NEXT:    vmovaps 320(%rdi), %ymm2
5865 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5866 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm6 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[4],ymm1[4],ymm2[5],ymm1[5]
5867 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm6[2,2,2,2]
5868 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
5869 ; AVX2-NEXT:    vmovaps 480(%rdi), %ymm2
5870 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5871 ; AVX2-NEXT:    vmovaps 448(%rdi), %ymm3
5872 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5873 ; AVX2-NEXT:    vmovaps 416(%rdi), %ymm8
5874 ; AVX2-NEXT:    vmovaps 384(%rdi), %ymm1
5875 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5876 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm8[0],ymm1[1],ymm8[1],ymm1[4],ymm8[4],ymm1[5],ymm8[5]
5877 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm10 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
5878 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm10[0],ymm1[2],ymm10[2]
5879 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
5880 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5881 ; AVX2-NEXT:    vmovaps 800(%rdi), %ymm0
5882 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5883 ; AVX2-NEXT:    vmovaps 768(%rdi), %ymm1
5884 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5885 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
5886 ; AVX2-NEXT:    vextractf128 $1, %ymm0, %xmm0
5887 ; AVX2-NEXT:    vmovaps 864(%rdi), %ymm1
5888 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5889 ; AVX2-NEXT:    vmovaps 832(%rdi), %ymm2
5890 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5891 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[4],ymm1[4],ymm2[5],ymm1[5]
5892 ; AVX2-NEXT:    vmovups %ymm1, (%rsp) # 32-byte Spill
5893 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,2]
5894 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
5895 ; AVX2-NEXT:    vmovaps 992(%rdi), %ymm2
5896 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5897 ; AVX2-NEXT:    vmovaps 960(%rdi), %ymm3
5898 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5899 ; AVX2-NEXT:    vmovaps 928(%rdi), %ymm7
5900 ; AVX2-NEXT:    vmovaps 896(%rdi), %ymm1
5901 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5902 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm7[0],ymm1[1],ymm7[1],ymm1[4],ymm7[4],ymm1[5],ymm7[5]
5903 ; AVX2-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5904 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm12 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
5905 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm12[0],ymm1[2],ymm12[2]
5906 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
5907 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5908 ; AVX2-NEXT:    vmovaps 32(%rdi), %ymm0
5909 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5910 ; AVX2-NEXT:    vmovaps (%rdi), %ymm1
5911 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5912 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
5913 ; AVX2-NEXT:    vextractf128 $1, %ymm0, %xmm0
5914 ; AVX2-NEXT:    vmovaps 96(%rdi), %ymm1
5915 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5916 ; AVX2-NEXT:    vmovaps 64(%rdi), %ymm2
5917 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5918 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm13 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[4],ymm1[4],ymm2[5],ymm1[5]
5919 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm13[2,2,2,2]
5920 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
5921 ; AVX2-NEXT:    vmovaps 224(%rdi), %ymm2
5922 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5923 ; AVX2-NEXT:    vmovaps 192(%rdi), %ymm3
5924 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5925 ; AVX2-NEXT:    vmovaps 160(%rdi), %ymm15
5926 ; AVX2-NEXT:    vmovaps 128(%rdi), %ymm1
5927 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5928 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm15[0],ymm1[1],ymm15[1],ymm1[4],ymm15[4],ymm1[5],ymm15[5]
5929 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm4 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
5930 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm4[0],ymm1[2],ymm4[2]
5931 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
5932 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5933 ; AVX2-NEXT:    vmovaps 544(%rdi), %ymm14
5934 ; AVX2-NEXT:    vmovaps 512(%rdi), %ymm11
5935 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm11[0],ymm14[0],ymm11[1],ymm14[1],ymm11[4],ymm14[4],ymm11[5],ymm14[5]
5936 ; AVX2-NEXT:    vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5937 ; AVX2-NEXT:    vextractf128 $1, %ymm0, %xmm0
5938 ; AVX2-NEXT:    vmovaps 608(%rdi), %ymm1
5939 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5940 ; AVX2-NEXT:    vmovaps 576(%rdi), %ymm2
5941 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5942 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm9 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[4],ymm1[4],ymm2[5],ymm1[5]
5943 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm5 = ymm9[2,2,2,2]
5944 ; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm0[0,1],xmm5[2,3]
5945 ; AVX2-NEXT:    vmovaps 736(%rdi), %ymm2
5946 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5947 ; AVX2-NEXT:    vmovaps 704(%rdi), %ymm3
5948 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5949 ; AVX2-NEXT:    vmovaps 672(%rdi), %ymm5
5950 ; AVX2-NEXT:    vmovaps 640(%rdi), %ymm0
5951 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5952 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm0[0],ymm5[0],ymm0[1],ymm5[1],ymm0[4],ymm5[4],ymm0[5],ymm5[5]
5953 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm2 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
5954 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm2[0],ymm0[2],ymm2[2]
5955 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
5956 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5957 ; AVX2-NEXT:    vbroadcastss 404(%rdi), %ymm0
5958 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm8[5],ymm0[6,7]
5959 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm10[6,7]
5960 ; AVX2-NEXT:    vextractf128 $1, %ymm6, %xmm1
5961 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
5962 ; AVX2-NEXT:    vshufps {{.*#+}} ymm10 = ymm6[1,1,1,1,5,5,5,5]
5963 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
5964 ; AVX2-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0],ymm3[1],ymm10[2,3,4],ymm3[5],ymm10[6,7]
5965 ; AVX2-NEXT:    vextractf128 $1, %ymm10, %xmm10
5966 ; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm10[0,1],xmm1[2,3]
5967 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
5968 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5969 ; AVX2-NEXT:    vbroadcastss 916(%rdi), %ymm0
5970 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm7[5],ymm0[6,7]
5971 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm12[6,7]
5972 ; AVX2-NEXT:    vmovups (%rsp), %ymm1 # 32-byte Reload
5973 ; AVX2-NEXT:    vextractf128 $1, %ymm1, %xmm1
5974 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
5975 ; AVX2-NEXT:    vshufps {{.*#+}} ymm7 = ymm10[1,1,1,1,5,5,5,5]
5976 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
5977 ; AVX2-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0],ymm12[1],ymm7[2,3,4],ymm12[5],ymm7[6,7]
5978 ; AVX2-NEXT:    vextractf128 $1, %ymm7, %xmm7
5979 ; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm7[0,1],xmm1[2,3]
5980 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
5981 ; AVX2-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
5982 ; AVX2-NEXT:    vbroadcastss 148(%rdi), %ymm0
5983 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm15[5],ymm0[6,7]
5984 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm4[6,7]
5985 ; AVX2-NEXT:    vextractf128 $1, %ymm13, %xmm1
5986 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
5987 ; AVX2-NEXT:    vshufps {{.*#+}} ymm4 = ymm13[1,1,1,1,5,5,5,5]
5988 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
5989 ; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0],ymm7[1],ymm4[2,3,4],ymm7[5],ymm4[6,7]
5990 ; AVX2-NEXT:    vextractf128 $1, %ymm4, %xmm4
5991 ; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm4[0,1],xmm1[2,3]
5992 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
5993 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5994 ; AVX2-NEXT:    vbroadcastss 660(%rdi), %ymm0
5995 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm5[5],ymm0[6,7]
5996 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm2[6,7]
5997 ; AVX2-NEXT:    vextractf128 $1, %ymm9, %xmm1
5998 ; AVX2-NEXT:    vshufps {{.*#+}} ymm2 = ymm11[1,1,1,1,5,5,5,5]
5999 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0],ymm14[1],ymm2[2,3,4],ymm14[5],ymm2[6,7]
6000 ; AVX2-NEXT:    vextractf128 $1, %ymm2, %xmm2
6001 ; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
6002 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
6003 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6004 ; AVX2-NEXT:    vbroadcastss 504(%rdi), %ymm0
6005 ; AVX2-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload
6006 ; AVX2-NEXT:    # ymm1 = mem[0,1,2,3,4,5,6],ymm0[7]
6007 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6008 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm0 = ymm0[2],ymm8[2],ymm0[3],ymm8[3],ymm0[6],ymm8[6],ymm0[7],ymm8[7]
6009 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm3 = ymm6[2],ymm3[2],ymm6[3],ymm3[3],ymm6[6],ymm3[6],ymm6[7],ymm3[7]
6010 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6011 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
6012 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm6 # 32-byte Folded Reload
6013 ; AVX2-NEXT:    # ymm6 = ymm2[2],mem[2],ymm2[3],mem[3],ymm2[6],mem[6],ymm2[7],mem[7]
6014 ; AVX2-NEXT:    vextractf128 $1, %ymm3, %xmm2
6015 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm3 = ymm6[2,2,2,2]
6016 ; AVX2-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm3[2,3]
6017 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3,4,5],ymm1[6,7]
6018 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
6019 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6020 ; AVX2-NEXT:    vbroadcastss 1016(%rdi), %ymm1
6021 ; AVX2-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
6022 ; AVX2-NEXT:    # ymm1 = mem[0,1,2,3,4,5,6],ymm1[7]
6023 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
6024 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm3 # 32-byte Folded Reload
6025 ; AVX2-NEXT:    # ymm3 = ymm2[2],mem[2],ymm2[3],mem[3],ymm2[6],mem[6],ymm2[7],mem[7]
6026 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm12 = ymm10[2],ymm12[2],ymm10[3],ymm12[3],ymm10[6],ymm12[6],ymm10[7],ymm12[7]
6027 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
6028 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm10 # 32-byte Folded Reload
6029 ; AVX2-NEXT:    # ymm10 = ymm2[2],mem[2],ymm2[3],mem[3],ymm2[6],mem[6],ymm2[7],mem[7]
6030 ; AVX2-NEXT:    vextractf128 $1, %ymm12, %xmm2
6031 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm4 = ymm10[2,2,2,2]
6032 ; AVX2-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm4[2,3]
6033 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3,4,5],ymm1[6,7]
6034 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
6035 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6036 ; AVX2-NEXT:    vbroadcastss 248(%rdi), %ymm2
6037 ; AVX2-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
6038 ; AVX2-NEXT:    # ymm2 = mem[0,1,2,3,4,5,6],ymm2[7]
6039 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6040 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm4 = ymm1[2],ymm15[2],ymm1[3],ymm15[3],ymm1[6],ymm15[6],ymm1[7],ymm15[7]
6041 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm9 = ymm13[2],ymm7[2],ymm13[3],ymm7[3],ymm13[6],ymm7[6],ymm13[7],ymm7[7]
6042 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6043 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm14 # 32-byte Folded Reload
6044 ; AVX2-NEXT:    # ymm14 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
6045 ; AVX2-NEXT:    vextractf128 $1, %ymm9, %xmm8
6046 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm15 = ymm14[2,2,2,2]
6047 ; AVX2-NEXT:    vblendps {{.*#+}} xmm8 = xmm8[0,1],xmm15[2,3]
6048 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3,4,5],ymm2[6,7]
6049 ; AVX2-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm2[4,5,6,7]
6050 ; AVX2-NEXT:    vbroadcastss 760(%rdi), %ymm2
6051 ; AVX2-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
6052 ; AVX2-NEXT:    # ymm2 = mem[0,1,2,3,4,5,6],ymm2[7]
6053 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6054 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm5 = ymm1[2],ymm5[2],ymm1[3],ymm5[3],ymm1[6],ymm5[6],ymm1[7],ymm5[7]
6055 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm11 # 32-byte Folded Reload
6056 ; AVX2-NEXT:    # ymm11 = ymm11[2],mem[2],ymm11[3],mem[3],ymm11[6],mem[6],ymm11[7],mem[7]
6057 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6058 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm13 # 32-byte Folded Reload
6059 ; AVX2-NEXT:    # ymm13 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
6060 ; AVX2-NEXT:    vextractf128 $1, %ymm11, %xmm15
6061 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm13[2,2,2,2]
6062 ; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm15[0,1],xmm1[2,3]
6063 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3,4,5],ymm2[6,7]
6064 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm2[4,5,6,7]
6065 ; AVX2-NEXT:    vbroadcastss 220(%rdi), %ymm1
6066 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
6067 ; AVX2-NEXT:    # ymm1 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
6068 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm4[1],ymm1[1],ymm4[3],ymm1[3]
6069 ; AVX2-NEXT:    vextractf128 $1, %ymm14, %xmm4
6070 ; AVX2-NEXT:    vshufps {{.*#+}} ymm9 = ymm9[2,3,2,3,6,7,6,7]
6071 ; AVX2-NEXT:    vextractf128 $1, %ymm9, %xmm9
6072 ; AVX2-NEXT:    vblendps {{.*#+}} xmm4 = xmm9[0,1],xmm4[2,3]
6073 ; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm1[4,5,6,7]
6074 ; AVX2-NEXT:    vbroadcastss 476(%rdi), %ymm1
6075 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
6076 ; AVX2-NEXT:    # ymm1 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
6077 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
6078 ; AVX2-NEXT:    vextractf128 $1, %ymm6, %xmm1
6079 ; AVX2-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Folded Reload
6080 ; AVX2-NEXT:    # ymm6 = mem[2,3,2,3,6,7,6,7]
6081 ; AVX2-NEXT:    vextractf128 $1, %ymm6, %xmm6
6082 ; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm6[0,1],xmm1[2,3]
6083 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
6084 ; AVX2-NEXT:    vbroadcastss 732(%rdi), %ymm1
6085 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
6086 ; AVX2-NEXT:    # ymm1 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
6087 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm5[1],ymm1[1],ymm5[3],ymm1[3]
6088 ; AVX2-NEXT:    vextractf128 $1, %ymm13, %xmm5
6089 ; AVX2-NEXT:    vshufps {{.*#+}} ymm6 = ymm11[2,3,2,3,6,7,6,7]
6090 ; AVX2-NEXT:    vextractf128 $1, %ymm6, %xmm6
6091 ; AVX2-NEXT:    vblendps {{.*#+}} xmm5 = xmm6[0,1],xmm5[2,3]
6092 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm1[4,5,6,7]
6093 ; AVX2-NEXT:    vbroadcastss 988(%rdi), %ymm1
6094 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
6095 ; AVX2-NEXT:    # ymm1 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
6096 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm3[1],ymm1[1],ymm3[3],ymm1[3]
6097 ; AVX2-NEXT:    vextractf128 $1, %ymm10, %xmm3
6098 ; AVX2-NEXT:    vshufps {{.*#+}} ymm6 = ymm12[2,3,2,3,6,7,6,7]
6099 ; AVX2-NEXT:    vextractf128 $1, %ymm6, %xmm6
6100 ; AVX2-NEXT:    vblendps {{.*#+}} xmm3 = xmm6[0,1],xmm3[2,3]
6101 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm1[4,5,6,7]
6102 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6103 ; AVX2-NEXT:    vmovaps %ymm3, 64(%rsi)
6104 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6105 ; AVX2-NEXT:    vmovaps %ymm3, (%rsi)
6106 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6107 ; AVX2-NEXT:    vmovaps %ymm3, 96(%rsi)
6108 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6109 ; AVX2-NEXT:    vmovaps %ymm3, 32(%rsi)
6110 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6111 ; AVX2-NEXT:    vmovaps %ymm3, 64(%rdx)
6112 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6113 ; AVX2-NEXT:    vmovaps %ymm3, (%rdx)
6114 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6115 ; AVX2-NEXT:    vmovaps %ymm3, 96(%rdx)
6116 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6117 ; AVX2-NEXT:    vmovaps %ymm3, 32(%rdx)
6118 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6119 ; AVX2-NEXT:    vmovaps %ymm3, 64(%rcx)
6120 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6121 ; AVX2-NEXT:    vmovaps %ymm3, (%rcx)
6122 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6123 ; AVX2-NEXT:    vmovaps %ymm3, 96(%rcx)
6124 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6125 ; AVX2-NEXT:    vmovaps %ymm3, 32(%rcx)
6126 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6127 ; AVX2-NEXT:    vmovaps %ymm3, 64(%r8)
6128 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6129 ; AVX2-NEXT:    vmovaps %ymm3, (%r8)
6130 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6131 ; AVX2-NEXT:    vmovaps %ymm3, 96(%r8)
6132 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6133 ; AVX2-NEXT:    vmovaps %ymm3, 32(%r8)
6134 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6135 ; AVX2-NEXT:    vmovaps %ymm3, 64(%r9)
6136 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6137 ; AVX2-NEXT:    vmovaps %ymm3, (%r9)
6138 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6139 ; AVX2-NEXT:    vmovaps %ymm3, 96(%r9)
6140 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6141 ; AVX2-NEXT:    vmovaps %ymm3, 32(%r9)
6142 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rax
6143 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6144 ; AVX2-NEXT:    vmovaps %ymm3, 64(%rax)
6145 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6146 ; AVX2-NEXT:    vmovaps %ymm3, (%rax)
6147 ; AVX2-NEXT:    vmovups (%rsp), %ymm3 # 32-byte Reload
6148 ; AVX2-NEXT:    vmovaps %ymm3, 96(%rax)
6149 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6150 ; AVX2-NEXT:    vmovaps %ymm3, 32(%rax)
6151 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rax
6152 ; AVX2-NEXT:    vmovaps %ymm2, 64(%rax)
6153 ; AVX2-NEXT:    vmovaps %ymm8, (%rax)
6154 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
6155 ; AVX2-NEXT:    vmovaps %ymm2, 96(%rax)
6156 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
6157 ; AVX2-NEXT:    vmovaps %ymm2, 32(%rax)
6158 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rax
6159 ; AVX2-NEXT:    vmovaps %ymm1, 96(%rax)
6160 ; AVX2-NEXT:    vmovaps %ymm5, 64(%rax)
6161 ; AVX2-NEXT:    vmovaps %ymm0, 32(%rax)
6162 ; AVX2-NEXT:    vmovaps %ymm4, (%rax)
6163 ; AVX2-NEXT:    addq $1544, %rsp # imm = 0x608
6164 ; AVX2-NEXT:    vzeroupper
6165 ; AVX2-NEXT:    retq
6167 ; AVX2-FP-LABEL: load_i32_stride8_vf32:
6168 ; AVX2-FP:       # %bb.0:
6169 ; AVX2-FP-NEXT:    subq $1544, %rsp # imm = 0x608
6170 ; AVX2-FP-NEXT:    vmovaps 288(%rdi), %xmm0
6171 ; AVX2-FP-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6172 ; AVX2-FP-NEXT:    vmovaps 256(%rdi), %xmm10
6173 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm10[0],xmm0[0],xmm10[1],xmm0[1]
6174 ; AVX2-FP-NEXT:    vmovaps 352(%rdi), %xmm14
6175 ; AVX2-FP-NEXT:    vbroadcastss %xmm14, %xmm1
6176 ; AVX2-FP-NEXT:    vmovaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6177 ; AVX2-FP-NEXT:    vmovaps 320(%rdi), %xmm15
6178 ; AVX2-FP-NEXT:    vbroadcastss %xmm15, %xmm2
6179 ; AVX2-FP-NEXT:    vmovaps %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6180 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
6181 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
6182 ; AVX2-FP-NEXT:    vmovaps 416(%rdi), %xmm1
6183 ; AVX2-FP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6184 ; AVX2-FP-NEXT:    vmovaps 384(%rdi), %xmm12
6185 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm12[0],xmm1[0],xmm12[1],xmm1[1]
6186 ; AVX2-FP-NEXT:    vmovaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6187 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
6188 ; AVX2-FP-NEXT:    vmovaps 480(%rdi), %xmm2
6189 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6190 ; AVX2-FP-NEXT:    vbroadcastss %xmm2, %xmm2
6191 ; AVX2-FP-NEXT:    vmovaps 448(%rdi), %xmm3
6192 ; AVX2-FP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6193 ; AVX2-FP-NEXT:    vbroadcastss %xmm3, %xmm3
6194 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
6195 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
6196 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
6197 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
6198 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6199 ; AVX2-FP-NEXT:    vmovaps 800(%rdi), %xmm1
6200 ; AVX2-FP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6201 ; AVX2-FP-NEXT:    vmovaps 768(%rdi), %xmm0
6202 ; AVX2-FP-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6203 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
6204 ; AVX2-FP-NEXT:    vmovaps 864(%rdi), %xmm1
6205 ; AVX2-FP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6206 ; AVX2-FP-NEXT:    vbroadcastss %xmm1, %xmm1
6207 ; AVX2-FP-NEXT:    vmovaps 832(%rdi), %xmm2
6208 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6209 ; AVX2-FP-NEXT:    vbroadcastss %xmm2, %xmm2
6210 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
6211 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
6212 ; AVX2-FP-NEXT:    vmovaps 992(%rdi), %xmm1
6213 ; AVX2-FP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6214 ; AVX2-FP-NEXT:    vbroadcastss %xmm1, %xmm1
6215 ; AVX2-FP-NEXT:    vmovaps 960(%rdi), %xmm11
6216 ; AVX2-FP-NEXT:    vbroadcastss %xmm11, %xmm2
6217 ; AVX2-FP-NEXT:    vmovaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6218 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
6219 ; AVX2-FP-NEXT:    vmovaps 928(%rdi), %xmm2
6220 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6221 ; AVX2-FP-NEXT:    vmovaps 896(%rdi), %xmm3
6222 ; AVX2-FP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6223 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
6224 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
6225 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
6226 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
6227 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
6228 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6229 ; AVX2-FP-NEXT:    vmovaps 608(%rdi), %xmm0
6230 ; AVX2-FP-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6231 ; AVX2-FP-NEXT:    vbroadcastss %xmm0, %xmm0
6232 ; AVX2-FP-NEXT:    vmovaps 576(%rdi), %xmm1
6233 ; AVX2-FP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6234 ; AVX2-FP-NEXT:    vbroadcastss %xmm1, %xmm1
6235 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
6236 ; AVX2-FP-NEXT:    vmovaps 544(%rdi), %xmm1
6237 ; AVX2-FP-NEXT:    vmovaps %xmm1, (%rsp) # 16-byte Spill
6238 ; AVX2-FP-NEXT:    vmovaps 512(%rdi), %xmm2
6239 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6240 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
6241 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
6242 ; AVX2-FP-NEXT:    vmovaps 736(%rdi), %xmm1
6243 ; AVX2-FP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6244 ; AVX2-FP-NEXT:    vbroadcastss %xmm1, %xmm1
6245 ; AVX2-FP-NEXT:    vmovaps 704(%rdi), %xmm2
6246 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6247 ; AVX2-FP-NEXT:    vbroadcastss %xmm2, %xmm2
6248 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
6249 ; AVX2-FP-NEXT:    vmovaps 672(%rdi), %xmm2
6250 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6251 ; AVX2-FP-NEXT:    vmovaps 640(%rdi), %xmm3
6252 ; AVX2-FP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6253 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
6254 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
6255 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
6256 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
6257 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
6258 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6259 ; AVX2-FP-NEXT:    vmovaps 224(%rdi), %xmm0
6260 ; AVX2-FP-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6261 ; AVX2-FP-NEXT:    vbroadcastss %xmm0, %xmm0
6262 ; AVX2-FP-NEXT:    vmovaps 192(%rdi), %xmm1
6263 ; AVX2-FP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6264 ; AVX2-FP-NEXT:    vbroadcastss %xmm1, %xmm1
6265 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
6266 ; AVX2-FP-NEXT:    vmovaps 160(%rdi), %xmm9
6267 ; AVX2-FP-NEXT:    vmovaps 128(%rdi), %xmm8
6268 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm8[0],xmm9[0],xmm8[1],xmm9[1]
6269 ; AVX2-FP-NEXT:    vmovaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6270 ; AVX2-FP-NEXT:    vmovaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6271 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
6272 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
6273 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm13 = ymm1[0,1,2,3,4,5],ymm0[6,7]
6274 ; AVX2-FP-NEXT:    vmovaps 96(%rdi), %xmm7
6275 ; AVX2-FP-NEXT:    vbroadcastss %xmm7, %xmm1
6276 ; AVX2-FP-NEXT:    vmovaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6277 ; AVX2-FP-NEXT:    vmovaps 64(%rdi), %xmm6
6278 ; AVX2-FP-NEXT:    vbroadcastss %xmm6, %xmm2
6279 ; AVX2-FP-NEXT:    vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6280 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
6281 ; AVX2-FP-NEXT:    vmovaps (%rdi), %xmm5
6282 ; AVX2-FP-NEXT:    vmovaps 32(%rdi), %xmm4
6283 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
6284 ; AVX2-FP-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6285 ; AVX2-FP-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6286 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm3[2,3]
6287 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm13[4,5,6,7]
6288 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6289 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm0 = xmm10[1,1,1,1]
6290 ; AVX2-FP-NEXT:    vmovaps %xmm10, %xmm3
6291 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload
6292 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0],xmm13[1],xmm0[2,3]
6293 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm15[0],xmm14[0],xmm15[1],xmm14[1]
6294 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
6295 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
6296 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
6297 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm15[0],xmm14[0],xmm15[1],xmm14[1]
6298 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
6299 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm2 = xmm12[1,1,1,1]
6300 ; AVX2-FP-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
6301 ; AVX2-FP-NEXT:    # xmm2 = xmm2[0],mem[1],xmm2[2,3]
6302 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
6303 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
6304 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
6305 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6306 ; AVX2-FP-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6307 ; AVX2-FP-NEXT:    # xmm0 = mem[1,1,1,1]
6308 ; AVX2-FP-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
6309 ; AVX2-FP-NEXT:    # xmm0 = xmm0[0],mem[1],xmm0[2,3]
6310 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload
6311 ; AVX2-FP-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm12, %xmm1 # 16-byte Folded Reload
6312 ; AVX2-FP-NEXT:    # xmm1 = xmm12[0],mem[0],xmm12[1],mem[1]
6313 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
6314 ; AVX2-FP-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11, %xmm1 # 16-byte Folded Reload
6315 ; AVX2-FP-NEXT:    # xmm1 = xmm11[0],mem[0],xmm11[1],mem[1]
6316 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
6317 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload
6318 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm2 = xmm11[1,1,1,1]
6319 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
6320 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0],xmm10[1],xmm2[2,3]
6321 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
6322 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
6323 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
6324 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6325 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm0 = xmm5[1,1,1,1]
6326 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0],xmm4[1],xmm0[2,3]
6327 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm6[0],xmm7[0],xmm6[1],xmm7[1]
6328 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
6329 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6330 ; AVX2-FP-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
6331 ; AVX2-FP-NEXT:    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
6332 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
6333 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm2 = xmm8[1,1,1,1]
6334 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0],xmm9[1],xmm2[2,3]
6335 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
6336 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
6337 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
6338 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6339 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
6340 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm0 = xmm8[1,1,1,1]
6341 ; AVX2-FP-NEXT:    vmovaps (%rsp), %xmm7 # 16-byte Reload
6342 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0],xmm7[1],xmm0[2,3]
6343 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload
6344 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6345 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm9[0],xmm1[1],xmm9[1]
6346 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
6347 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
6348 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6349 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm4[0],xmm1[1],xmm4[1]
6350 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
6351 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
6352 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm2 = xmm6[1,1,1,1]
6353 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
6354 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0],xmm5[1],xmm2[2,3]
6355 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
6356 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
6357 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
6358 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6359 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm3 = xmm3[2],xmm13[2],xmm3[3],xmm13[3]
6360 ; AVX2-FP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6361 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6362 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm1 # 16-byte Folded Reload
6363 ; AVX2-FP-NEXT:    # xmm1 = xmm0[2],mem[2],xmm0[3],mem[3]
6364 ; AVX2-FP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6365 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm0 = xmm14[2,2,2,2]
6366 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm15[0,1,2],xmm0[3]
6367 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
6368 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
6369 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
6370 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload
6371 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm1 = xmm13[2,2,2,2]
6372 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
6373 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1,2],xmm1[3]
6374 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm3[0,1],xmm1[2,3]
6375 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
6376 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6377 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6378 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm3 # 16-byte Folded Reload
6379 ; AVX2-FP-NEXT:    # xmm3 = xmm0[2],mem[2],xmm0[3],mem[3]
6380 ; AVX2-FP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6381 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm11[2],xmm10[2],xmm11[3],xmm10[3]
6382 ; AVX2-FP-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6383 ; AVX2-FP-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload
6384 ; AVX2-FP-NEXT:    # xmm15 = mem[2,2,2,2]
6385 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6386 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm15 = xmm1[0,1,2],xmm15[3]
6387 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm15
6388 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm14
6389 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3,4,5],ymm15[6,7]
6390 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6391 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm15 = xmm0[2,2,2,2]
6392 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm15 = xmm12[0,1,2],xmm15[3]
6393 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm15 = xmm3[0,1],xmm15[2,3]
6394 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm14 = ymm15[0,1,2,3],ymm14[4,5,6,7]
6395 ; AVX2-FP-NEXT:    vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6396 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm14 = xmm8[2],xmm7[2],xmm8[3],xmm7[3]
6397 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm12 = xmm6[2],xmm5[2],xmm6[3],xmm5[3]
6398 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm11 = xmm4[2,2,2,2]
6399 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
6400 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm11 = xmm10[0,1,2],xmm11[3]
6401 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm11, %ymm0, %ymm11
6402 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm15
6403 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm11 = ymm15[0,1,2,3,4,5],ymm11[6,7]
6404 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm15 = xmm9[2,2,2,2]
6405 ; AVX2-FP-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload
6406 ; AVX2-FP-NEXT:    # xmm15 = mem[0,1,2],xmm15[3]
6407 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm15 = xmm14[0,1],xmm15[2,3]
6408 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm11 = ymm15[0,1,2,3],ymm11[4,5,6,7]
6409 ; AVX2-FP-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6410 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
6411 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm9 # 16-byte Folded Reload
6412 ; AVX2-FP-NEXT:    # xmm9 = xmm3[2],mem[2],xmm3[3],mem[3]
6413 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
6414 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm7 = xmm15[2,2,2,2]
6415 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
6416 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm7 = xmm4[0,1,2],xmm7[3]
6417 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
6418 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm9, %ymm0, %ymm11
6419 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm7 = ymm11[0,1,2,3,4,5],ymm7[6,7]
6420 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
6421 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm6 # 16-byte Folded Reload
6422 ; AVX2-FP-NEXT:    # xmm6 = xmm3[2],mem[2],xmm3[3],mem[3]
6423 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload
6424 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm5 = xmm11[2,2,2,2]
6425 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
6426 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm5 = xmm8[0,1,2],xmm5[3]
6427 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm5 = xmm6[0,1],xmm5[2,3]
6428 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm7[4,5,6,7]
6429 ; AVX2-FP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6430 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm2[2],xmm13[2],xmm2[3],xmm13[3]
6431 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
6432 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm2 = xmm2[1],xmm5[1]
6433 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
6434 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm5 # 16-byte Folded Reload
6435 ; AVX2-FP-NEXT:    # xmm5 = xmm3[2],mem[2],xmm3[3],mem[3]
6436 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
6437 ; AVX2-FP-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload
6438 ; AVX2-FP-NEXT:    # xmm3 = mem[2,3,2,3]
6439 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
6440 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm5[6,7]
6441 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
6442 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6443 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
6444 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm2[2],xmm0[2],xmm2[3],xmm0[3]
6445 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6446 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
6447 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm2 # 16-byte Folded Reload
6448 ; AVX2-FP-NEXT:    # xmm2 = xmm1[2],mem[2],xmm1[3],mem[3]
6449 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
6450 ; AVX2-FP-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
6451 ; AVX2-FP-NEXT:    # xmm1 = mem[2,3,2,3]
6452 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
6453 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
6454 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
6455 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6456 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6457 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
6458 ; AVX2-FP-NEXT:    # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]
6459 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm14[1],xmm0[1]
6460 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10, %xmm1 # 16-byte Folded Reload
6461 ; AVX2-FP-NEXT:    # xmm1 = xmm10[2],mem[2],xmm10[3],mem[3]
6462 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
6463 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm2 = xmm12[2,3,2,3]
6464 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
6465 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
6466 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
6467 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6468 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm4[2],xmm15[2],xmm4[3],xmm15[3]
6469 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
6470 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm1 = xmm9[2,3,2,3]
6471 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
6472 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
6473 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm8[2],xmm11[2],xmm8[3],xmm11[3]
6474 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm6[1],xmm1[1]
6475 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
6476 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6477 ; AVX2-FP-NEXT:    vmovaps 288(%rdi), %ymm0
6478 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6479 ; AVX2-FP-NEXT:    vmovaps 256(%rdi), %ymm1
6480 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6481 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
6482 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm0, %xmm0
6483 ; AVX2-FP-NEXT:    vmovaps 352(%rdi), %ymm1
6484 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6485 ; AVX2-FP-NEXT:    vmovaps 320(%rdi), %ymm2
6486 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6487 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm6 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[4],ymm1[4],ymm2[5],ymm1[5]
6488 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm6[2,2,2,2]
6489 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
6490 ; AVX2-FP-NEXT:    vmovaps 480(%rdi), %ymm2
6491 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6492 ; AVX2-FP-NEXT:    vmovaps 448(%rdi), %ymm3
6493 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6494 ; AVX2-FP-NEXT:    vmovaps 416(%rdi), %ymm8
6495 ; AVX2-FP-NEXT:    vmovaps 384(%rdi), %ymm1
6496 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6497 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm8[0],ymm1[1],ymm8[1],ymm1[4],ymm8[4],ymm1[5],ymm8[5]
6498 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm10 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
6499 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm10[0],ymm1[2],ymm10[2]
6500 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
6501 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6502 ; AVX2-FP-NEXT:    vmovaps 800(%rdi), %ymm0
6503 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6504 ; AVX2-FP-NEXT:    vmovaps 768(%rdi), %ymm1
6505 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6506 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
6507 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm0, %xmm0
6508 ; AVX2-FP-NEXT:    vmovaps 864(%rdi), %ymm1
6509 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6510 ; AVX2-FP-NEXT:    vmovaps 832(%rdi), %ymm2
6511 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6512 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[4],ymm1[4],ymm2[5],ymm1[5]
6513 ; AVX2-FP-NEXT:    vmovups %ymm1, (%rsp) # 32-byte Spill
6514 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,2]
6515 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
6516 ; AVX2-FP-NEXT:    vmovaps 992(%rdi), %ymm2
6517 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6518 ; AVX2-FP-NEXT:    vmovaps 960(%rdi), %ymm3
6519 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6520 ; AVX2-FP-NEXT:    vmovaps 928(%rdi), %ymm7
6521 ; AVX2-FP-NEXT:    vmovaps 896(%rdi), %ymm1
6522 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6523 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm7[0],ymm1[1],ymm7[1],ymm1[4],ymm7[4],ymm1[5],ymm7[5]
6524 ; AVX2-FP-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6525 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm12 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
6526 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm12[0],ymm1[2],ymm12[2]
6527 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
6528 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6529 ; AVX2-FP-NEXT:    vmovaps 32(%rdi), %ymm0
6530 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6531 ; AVX2-FP-NEXT:    vmovaps (%rdi), %ymm1
6532 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6533 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
6534 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm0, %xmm0
6535 ; AVX2-FP-NEXT:    vmovaps 96(%rdi), %ymm1
6536 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6537 ; AVX2-FP-NEXT:    vmovaps 64(%rdi), %ymm2
6538 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6539 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm13 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[4],ymm1[4],ymm2[5],ymm1[5]
6540 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm13[2,2,2,2]
6541 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
6542 ; AVX2-FP-NEXT:    vmovaps 224(%rdi), %ymm2
6543 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6544 ; AVX2-FP-NEXT:    vmovaps 192(%rdi), %ymm3
6545 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6546 ; AVX2-FP-NEXT:    vmovaps 160(%rdi), %ymm15
6547 ; AVX2-FP-NEXT:    vmovaps 128(%rdi), %ymm1
6548 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6549 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm15[0],ymm1[1],ymm15[1],ymm1[4],ymm15[4],ymm1[5],ymm15[5]
6550 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm4 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
6551 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm4[0],ymm1[2],ymm4[2]
6552 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
6553 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6554 ; AVX2-FP-NEXT:    vmovaps 544(%rdi), %ymm14
6555 ; AVX2-FP-NEXT:    vmovaps 512(%rdi), %ymm11
6556 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm11[0],ymm14[0],ymm11[1],ymm14[1],ymm11[4],ymm14[4],ymm11[5],ymm14[5]
6557 ; AVX2-FP-NEXT:    vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6558 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm0, %xmm0
6559 ; AVX2-FP-NEXT:    vmovaps 608(%rdi), %ymm1
6560 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6561 ; AVX2-FP-NEXT:    vmovaps 576(%rdi), %ymm2
6562 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6563 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm9 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[4],ymm1[4],ymm2[5],ymm1[5]
6564 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm5 = ymm9[2,2,2,2]
6565 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm0[0,1],xmm5[2,3]
6566 ; AVX2-FP-NEXT:    vmovaps 736(%rdi), %ymm2
6567 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6568 ; AVX2-FP-NEXT:    vmovaps 704(%rdi), %ymm3
6569 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6570 ; AVX2-FP-NEXT:    vmovaps 672(%rdi), %ymm5
6571 ; AVX2-FP-NEXT:    vmovaps 640(%rdi), %ymm0
6572 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6573 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm0[0],ymm5[0],ymm0[1],ymm5[1],ymm0[4],ymm5[4],ymm0[5],ymm5[5]
6574 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm2 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
6575 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm2[0],ymm0[2],ymm2[2]
6576 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
6577 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6578 ; AVX2-FP-NEXT:    vbroadcastss 404(%rdi), %ymm0
6579 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm8[5],ymm0[6,7]
6580 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm10[6,7]
6581 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm6, %xmm1
6582 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
6583 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm10 = ymm6[1,1,1,1,5,5,5,5]
6584 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6585 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0],ymm3[1],ymm10[2,3,4],ymm3[5],ymm10[6,7]
6586 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm10, %xmm10
6587 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm10[0,1],xmm1[2,3]
6588 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
6589 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6590 ; AVX2-FP-NEXT:    vbroadcastss 916(%rdi), %ymm0
6591 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm7[5],ymm0[6,7]
6592 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm12[6,7]
6593 ; AVX2-FP-NEXT:    vmovups (%rsp), %ymm1 # 32-byte Reload
6594 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm1, %xmm1
6595 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
6596 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm7 = ymm10[1,1,1,1,5,5,5,5]
6597 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
6598 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0],ymm12[1],ymm7[2,3,4],ymm12[5],ymm7[6,7]
6599 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm7, %xmm7
6600 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm7[0,1],xmm1[2,3]
6601 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
6602 ; AVX2-FP-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
6603 ; AVX2-FP-NEXT:    vbroadcastss 148(%rdi), %ymm0
6604 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm15[5],ymm0[6,7]
6605 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm4[6,7]
6606 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm13, %xmm1
6607 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
6608 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm4 = ymm13[1,1,1,1,5,5,5,5]
6609 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
6610 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0],ymm7[1],ymm4[2,3,4],ymm7[5],ymm4[6,7]
6611 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm4, %xmm4
6612 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm4[0,1],xmm1[2,3]
6613 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
6614 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6615 ; AVX2-FP-NEXT:    vbroadcastss 660(%rdi), %ymm0
6616 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm5[5],ymm0[6,7]
6617 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm2[6,7]
6618 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm9, %xmm1
6619 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm2 = ymm11[1,1,1,1,5,5,5,5]
6620 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0],ymm14[1],ymm2[2,3,4],ymm14[5],ymm2[6,7]
6621 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm2, %xmm2
6622 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
6623 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
6624 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6625 ; AVX2-FP-NEXT:    vbroadcastss 504(%rdi), %ymm0
6626 ; AVX2-FP-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload
6627 ; AVX2-FP-NEXT:    # ymm1 = mem[0,1,2,3,4,5,6],ymm0[7]
6628 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6629 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm0 = ymm0[2],ymm8[2],ymm0[3],ymm8[3],ymm0[6],ymm8[6],ymm0[7],ymm8[7]
6630 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm3 = ymm6[2],ymm3[2],ymm6[3],ymm3[3],ymm6[6],ymm3[6],ymm6[7],ymm3[7]
6631 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6632 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
6633 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm6 # 32-byte Folded Reload
6634 ; AVX2-FP-NEXT:    # ymm6 = ymm2[2],mem[2],ymm2[3],mem[3],ymm2[6],mem[6],ymm2[7],mem[7]
6635 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm3, %xmm2
6636 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm3 = ymm6[2,2,2,2]
6637 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm3[2,3]
6638 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3,4,5],ymm1[6,7]
6639 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
6640 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6641 ; AVX2-FP-NEXT:    vbroadcastss 1016(%rdi), %ymm1
6642 ; AVX2-FP-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
6643 ; AVX2-FP-NEXT:    # ymm1 = mem[0,1,2,3,4,5,6],ymm1[7]
6644 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
6645 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm3 # 32-byte Folded Reload
6646 ; AVX2-FP-NEXT:    # ymm3 = ymm2[2],mem[2],ymm2[3],mem[3],ymm2[6],mem[6],ymm2[7],mem[7]
6647 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm12 = ymm10[2],ymm12[2],ymm10[3],ymm12[3],ymm10[6],ymm12[6],ymm10[7],ymm12[7]
6648 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
6649 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm10 # 32-byte Folded Reload
6650 ; AVX2-FP-NEXT:    # ymm10 = ymm2[2],mem[2],ymm2[3],mem[3],ymm2[6],mem[6],ymm2[7],mem[7]
6651 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm12, %xmm2
6652 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm4 = ymm10[2,2,2,2]
6653 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm4[2,3]
6654 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3,4,5],ymm1[6,7]
6655 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
6656 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6657 ; AVX2-FP-NEXT:    vbroadcastss 248(%rdi), %ymm2
6658 ; AVX2-FP-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
6659 ; AVX2-FP-NEXT:    # ymm2 = mem[0,1,2,3,4,5,6],ymm2[7]
6660 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6661 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm4 = ymm1[2],ymm15[2],ymm1[3],ymm15[3],ymm1[6],ymm15[6],ymm1[7],ymm15[7]
6662 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm9 = ymm13[2],ymm7[2],ymm13[3],ymm7[3],ymm13[6],ymm7[6],ymm13[7],ymm7[7]
6663 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6664 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm14 # 32-byte Folded Reload
6665 ; AVX2-FP-NEXT:    # ymm14 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
6666 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm9, %xmm8
6667 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm15 = ymm14[2,2,2,2]
6668 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm8 = xmm8[0,1],xmm15[2,3]
6669 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3,4,5],ymm2[6,7]
6670 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm2[4,5,6,7]
6671 ; AVX2-FP-NEXT:    vbroadcastss 760(%rdi), %ymm2
6672 ; AVX2-FP-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
6673 ; AVX2-FP-NEXT:    # ymm2 = mem[0,1,2,3,4,5,6],ymm2[7]
6674 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6675 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm5 = ymm1[2],ymm5[2],ymm1[3],ymm5[3],ymm1[6],ymm5[6],ymm1[7],ymm5[7]
6676 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm11 # 32-byte Folded Reload
6677 ; AVX2-FP-NEXT:    # ymm11 = ymm11[2],mem[2],ymm11[3],mem[3],ymm11[6],mem[6],ymm11[7],mem[7]
6678 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6679 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm13 # 32-byte Folded Reload
6680 ; AVX2-FP-NEXT:    # ymm13 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
6681 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm11, %xmm15
6682 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm13[2,2,2,2]
6683 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm15[0,1],xmm1[2,3]
6684 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3,4,5],ymm2[6,7]
6685 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm2[4,5,6,7]
6686 ; AVX2-FP-NEXT:    vbroadcastss 220(%rdi), %ymm1
6687 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
6688 ; AVX2-FP-NEXT:    # ymm1 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
6689 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm4[1],ymm1[1],ymm4[3],ymm1[3]
6690 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm14, %xmm4
6691 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm9 = ymm9[2,3,2,3,6,7,6,7]
6692 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm9, %xmm9
6693 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm4 = xmm9[0,1],xmm4[2,3]
6694 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm1[4,5,6,7]
6695 ; AVX2-FP-NEXT:    vbroadcastss 476(%rdi), %ymm1
6696 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
6697 ; AVX2-FP-NEXT:    # ymm1 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
6698 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
6699 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm6, %xmm1
6700 ; AVX2-FP-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Folded Reload
6701 ; AVX2-FP-NEXT:    # ymm6 = mem[2,3,2,3,6,7,6,7]
6702 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm6, %xmm6
6703 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm6[0,1],xmm1[2,3]
6704 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
6705 ; AVX2-FP-NEXT:    vbroadcastss 732(%rdi), %ymm1
6706 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
6707 ; AVX2-FP-NEXT:    # ymm1 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
6708 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm5[1],ymm1[1],ymm5[3],ymm1[3]
6709 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm13, %xmm5
6710 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm6 = ymm11[2,3,2,3,6,7,6,7]
6711 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm6, %xmm6
6712 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm5 = xmm6[0,1],xmm5[2,3]
6713 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm1[4,5,6,7]
6714 ; AVX2-FP-NEXT:    vbroadcastss 988(%rdi), %ymm1
6715 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
6716 ; AVX2-FP-NEXT:    # ymm1 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
6717 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm3[1],ymm1[1],ymm3[3],ymm1[3]
6718 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm10, %xmm3
6719 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm6 = ymm12[2,3,2,3,6,7,6,7]
6720 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm6, %xmm6
6721 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm3 = xmm6[0,1],xmm3[2,3]
6722 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm1[4,5,6,7]
6723 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6724 ; AVX2-FP-NEXT:    vmovaps %ymm3, 64(%rsi)
6725 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6726 ; AVX2-FP-NEXT:    vmovaps %ymm3, (%rsi)
6727 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6728 ; AVX2-FP-NEXT:    vmovaps %ymm3, 96(%rsi)
6729 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6730 ; AVX2-FP-NEXT:    vmovaps %ymm3, 32(%rsi)
6731 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6732 ; AVX2-FP-NEXT:    vmovaps %ymm3, 64(%rdx)
6733 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6734 ; AVX2-FP-NEXT:    vmovaps %ymm3, (%rdx)
6735 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6736 ; AVX2-FP-NEXT:    vmovaps %ymm3, 96(%rdx)
6737 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6738 ; AVX2-FP-NEXT:    vmovaps %ymm3, 32(%rdx)
6739 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6740 ; AVX2-FP-NEXT:    vmovaps %ymm3, 64(%rcx)
6741 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6742 ; AVX2-FP-NEXT:    vmovaps %ymm3, (%rcx)
6743 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6744 ; AVX2-FP-NEXT:    vmovaps %ymm3, 96(%rcx)
6745 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6746 ; AVX2-FP-NEXT:    vmovaps %ymm3, 32(%rcx)
6747 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6748 ; AVX2-FP-NEXT:    vmovaps %ymm3, 64(%r8)
6749 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6750 ; AVX2-FP-NEXT:    vmovaps %ymm3, (%r8)
6751 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6752 ; AVX2-FP-NEXT:    vmovaps %ymm3, 96(%r8)
6753 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6754 ; AVX2-FP-NEXT:    vmovaps %ymm3, 32(%r8)
6755 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6756 ; AVX2-FP-NEXT:    vmovaps %ymm3, 64(%r9)
6757 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6758 ; AVX2-FP-NEXT:    vmovaps %ymm3, (%r9)
6759 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6760 ; AVX2-FP-NEXT:    vmovaps %ymm3, 96(%r9)
6761 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6762 ; AVX2-FP-NEXT:    vmovaps %ymm3, 32(%r9)
6763 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
6764 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6765 ; AVX2-FP-NEXT:    vmovaps %ymm3, 64(%rax)
6766 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6767 ; AVX2-FP-NEXT:    vmovaps %ymm3, (%rax)
6768 ; AVX2-FP-NEXT:    vmovups (%rsp), %ymm3 # 32-byte Reload
6769 ; AVX2-FP-NEXT:    vmovaps %ymm3, 96(%rax)
6770 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6771 ; AVX2-FP-NEXT:    vmovaps %ymm3, 32(%rax)
6772 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
6773 ; AVX2-FP-NEXT:    vmovaps %ymm2, 64(%rax)
6774 ; AVX2-FP-NEXT:    vmovaps %ymm8, (%rax)
6775 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
6776 ; AVX2-FP-NEXT:    vmovaps %ymm2, 96(%rax)
6777 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
6778 ; AVX2-FP-NEXT:    vmovaps %ymm2, 32(%rax)
6779 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
6780 ; AVX2-FP-NEXT:    vmovaps %ymm1, 96(%rax)
6781 ; AVX2-FP-NEXT:    vmovaps %ymm5, 64(%rax)
6782 ; AVX2-FP-NEXT:    vmovaps %ymm0, 32(%rax)
6783 ; AVX2-FP-NEXT:    vmovaps %ymm4, (%rax)
6784 ; AVX2-FP-NEXT:    addq $1544, %rsp # imm = 0x608
6785 ; AVX2-FP-NEXT:    vzeroupper
6786 ; AVX2-FP-NEXT:    retq
6788 ; AVX2-FCP-LABEL: load_i32_stride8_vf32:
6789 ; AVX2-FCP:       # %bb.0:
6790 ; AVX2-FCP-NEXT:    subq $1544, %rsp # imm = 0x608
6791 ; AVX2-FCP-NEXT:    vmovaps 288(%rdi), %xmm0
6792 ; AVX2-FCP-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6793 ; AVX2-FCP-NEXT:    vmovaps 256(%rdi), %xmm10
6794 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm10[0],xmm0[0],xmm10[1],xmm0[1]
6795 ; AVX2-FCP-NEXT:    vmovaps 352(%rdi), %xmm14
6796 ; AVX2-FCP-NEXT:    vbroadcastss %xmm14, %xmm1
6797 ; AVX2-FCP-NEXT:    vmovaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6798 ; AVX2-FCP-NEXT:    vmovaps 320(%rdi), %xmm15
6799 ; AVX2-FCP-NEXT:    vbroadcastss %xmm15, %xmm2
6800 ; AVX2-FCP-NEXT:    vmovaps %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6801 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
6802 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
6803 ; AVX2-FCP-NEXT:    vmovaps 416(%rdi), %xmm1
6804 ; AVX2-FCP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6805 ; AVX2-FCP-NEXT:    vmovaps 384(%rdi), %xmm12
6806 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm12[0],xmm1[0],xmm12[1],xmm1[1]
6807 ; AVX2-FCP-NEXT:    vmovaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6808 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
6809 ; AVX2-FCP-NEXT:    vmovaps 480(%rdi), %xmm2
6810 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6811 ; AVX2-FCP-NEXT:    vbroadcastss %xmm2, %xmm2
6812 ; AVX2-FCP-NEXT:    vmovaps 448(%rdi), %xmm3
6813 ; AVX2-FCP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6814 ; AVX2-FCP-NEXT:    vbroadcastss %xmm3, %xmm3
6815 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
6816 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
6817 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
6818 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
6819 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6820 ; AVX2-FCP-NEXT:    vmovaps 800(%rdi), %xmm1
6821 ; AVX2-FCP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6822 ; AVX2-FCP-NEXT:    vmovaps 768(%rdi), %xmm0
6823 ; AVX2-FCP-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6824 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
6825 ; AVX2-FCP-NEXT:    vmovaps 864(%rdi), %xmm1
6826 ; AVX2-FCP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6827 ; AVX2-FCP-NEXT:    vbroadcastss %xmm1, %xmm1
6828 ; AVX2-FCP-NEXT:    vmovaps 832(%rdi), %xmm2
6829 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6830 ; AVX2-FCP-NEXT:    vbroadcastss %xmm2, %xmm2
6831 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
6832 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
6833 ; AVX2-FCP-NEXT:    vmovaps 992(%rdi), %xmm1
6834 ; AVX2-FCP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6835 ; AVX2-FCP-NEXT:    vbroadcastss %xmm1, %xmm1
6836 ; AVX2-FCP-NEXT:    vmovaps 960(%rdi), %xmm11
6837 ; AVX2-FCP-NEXT:    vbroadcastss %xmm11, %xmm2
6838 ; AVX2-FCP-NEXT:    vmovaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6839 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
6840 ; AVX2-FCP-NEXT:    vmovaps 928(%rdi), %xmm2
6841 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6842 ; AVX2-FCP-NEXT:    vmovaps 896(%rdi), %xmm3
6843 ; AVX2-FCP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6844 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
6845 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
6846 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
6847 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
6848 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
6849 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6850 ; AVX2-FCP-NEXT:    vmovaps 608(%rdi), %xmm0
6851 ; AVX2-FCP-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6852 ; AVX2-FCP-NEXT:    vbroadcastss %xmm0, %xmm0
6853 ; AVX2-FCP-NEXT:    vmovaps 576(%rdi), %xmm1
6854 ; AVX2-FCP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6855 ; AVX2-FCP-NEXT:    vbroadcastss %xmm1, %xmm1
6856 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
6857 ; AVX2-FCP-NEXT:    vmovaps 544(%rdi), %xmm1
6858 ; AVX2-FCP-NEXT:    vmovaps %xmm1, (%rsp) # 16-byte Spill
6859 ; AVX2-FCP-NEXT:    vmovaps 512(%rdi), %xmm2
6860 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6861 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
6862 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
6863 ; AVX2-FCP-NEXT:    vmovaps 736(%rdi), %xmm1
6864 ; AVX2-FCP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6865 ; AVX2-FCP-NEXT:    vbroadcastss %xmm1, %xmm1
6866 ; AVX2-FCP-NEXT:    vmovaps 704(%rdi), %xmm2
6867 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6868 ; AVX2-FCP-NEXT:    vbroadcastss %xmm2, %xmm2
6869 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
6870 ; AVX2-FCP-NEXT:    vmovaps 672(%rdi), %xmm2
6871 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6872 ; AVX2-FCP-NEXT:    vmovaps 640(%rdi), %xmm3
6873 ; AVX2-FCP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6874 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
6875 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
6876 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
6877 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
6878 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
6879 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6880 ; AVX2-FCP-NEXT:    vmovaps 224(%rdi), %xmm0
6881 ; AVX2-FCP-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6882 ; AVX2-FCP-NEXT:    vbroadcastss %xmm0, %xmm0
6883 ; AVX2-FCP-NEXT:    vmovaps 192(%rdi), %xmm1
6884 ; AVX2-FCP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6885 ; AVX2-FCP-NEXT:    vbroadcastss %xmm1, %xmm1
6886 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
6887 ; AVX2-FCP-NEXT:    vmovaps 160(%rdi), %xmm9
6888 ; AVX2-FCP-NEXT:    vmovaps 128(%rdi), %xmm8
6889 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm8[0],xmm9[0],xmm8[1],xmm9[1]
6890 ; AVX2-FCP-NEXT:    vmovaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6891 ; AVX2-FCP-NEXT:    vmovaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6892 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
6893 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
6894 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm13 = ymm1[0,1,2,3,4,5],ymm0[6,7]
6895 ; AVX2-FCP-NEXT:    vmovaps 96(%rdi), %xmm7
6896 ; AVX2-FCP-NEXT:    vbroadcastss %xmm7, %xmm1
6897 ; AVX2-FCP-NEXT:    vmovaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6898 ; AVX2-FCP-NEXT:    vmovaps 64(%rdi), %xmm6
6899 ; AVX2-FCP-NEXT:    vbroadcastss %xmm6, %xmm2
6900 ; AVX2-FCP-NEXT:    vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6901 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
6902 ; AVX2-FCP-NEXT:    vmovaps (%rdi), %xmm5
6903 ; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %xmm4
6904 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
6905 ; AVX2-FCP-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6906 ; AVX2-FCP-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6907 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm3[2,3]
6908 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm13[4,5,6,7]
6909 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6910 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm0 = xmm10[1,1,1,1]
6911 ; AVX2-FCP-NEXT:    vmovaps %xmm10, %xmm3
6912 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload
6913 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0],xmm13[1],xmm0[2,3]
6914 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm15[0],xmm14[0],xmm15[1],xmm14[1]
6915 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
6916 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
6917 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
6918 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm15[0],xmm14[0],xmm15[1],xmm14[1]
6919 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
6920 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm2 = xmm12[1,1,1,1]
6921 ; AVX2-FCP-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
6922 ; AVX2-FCP-NEXT:    # xmm2 = xmm2[0],mem[1],xmm2[2,3]
6923 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
6924 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
6925 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
6926 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6927 ; AVX2-FCP-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6928 ; AVX2-FCP-NEXT:    # xmm0 = mem[1,1,1,1]
6929 ; AVX2-FCP-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
6930 ; AVX2-FCP-NEXT:    # xmm0 = xmm0[0],mem[1],xmm0[2,3]
6931 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload
6932 ; AVX2-FCP-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm12, %xmm1 # 16-byte Folded Reload
6933 ; AVX2-FCP-NEXT:    # xmm1 = xmm12[0],mem[0],xmm12[1],mem[1]
6934 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
6935 ; AVX2-FCP-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11, %xmm1 # 16-byte Folded Reload
6936 ; AVX2-FCP-NEXT:    # xmm1 = xmm11[0],mem[0],xmm11[1],mem[1]
6937 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
6938 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload
6939 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm2 = xmm11[1,1,1,1]
6940 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
6941 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0],xmm10[1],xmm2[2,3]
6942 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
6943 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
6944 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
6945 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6946 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm0 = xmm5[1,1,1,1]
6947 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0],xmm4[1],xmm0[2,3]
6948 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm6[0],xmm7[0],xmm6[1],xmm7[1]
6949 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
6950 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6951 ; AVX2-FCP-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
6952 ; AVX2-FCP-NEXT:    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
6953 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
6954 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm2 = xmm8[1,1,1,1]
6955 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0],xmm9[1],xmm2[2,3]
6956 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
6957 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
6958 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
6959 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6960 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
6961 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm0 = xmm8[1,1,1,1]
6962 ; AVX2-FCP-NEXT:    vmovaps (%rsp), %xmm7 # 16-byte Reload
6963 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0],xmm7[1],xmm0[2,3]
6964 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload
6965 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6966 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm9[0],xmm1[1],xmm9[1]
6967 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
6968 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
6969 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6970 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm4[0],xmm1[1],xmm4[1]
6971 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
6972 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
6973 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm2 = xmm6[1,1,1,1]
6974 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
6975 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0],xmm5[1],xmm2[2,3]
6976 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
6977 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
6978 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
6979 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6980 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm3 = xmm3[2],xmm13[2],xmm3[3],xmm13[3]
6981 ; AVX2-FCP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6982 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6983 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm1 # 16-byte Folded Reload
6984 ; AVX2-FCP-NEXT:    # xmm1 = xmm0[2],mem[2],xmm0[3],mem[3]
6985 ; AVX2-FCP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6986 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm0 = xmm14[2,2,2,2]
6987 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm15[0,1,2],xmm0[3]
6988 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
6989 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
6990 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
6991 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload
6992 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm1 = xmm13[2,2,2,2]
6993 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
6994 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1,2],xmm1[3]
6995 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm3[0,1],xmm1[2,3]
6996 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
6997 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6998 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6999 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm3 # 16-byte Folded Reload
7000 ; AVX2-FCP-NEXT:    # xmm3 = xmm0[2],mem[2],xmm0[3],mem[3]
7001 ; AVX2-FCP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7002 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm11[2],xmm10[2],xmm11[3],xmm10[3]
7003 ; AVX2-FCP-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7004 ; AVX2-FCP-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload
7005 ; AVX2-FCP-NEXT:    # xmm15 = mem[2,2,2,2]
7006 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7007 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm15 = xmm1[0,1,2],xmm15[3]
7008 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm15
7009 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm14
7010 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3,4,5],ymm15[6,7]
7011 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7012 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm15 = xmm0[2,2,2,2]
7013 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm15 = xmm12[0,1,2],xmm15[3]
7014 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm15 = xmm3[0,1],xmm15[2,3]
7015 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm14 = ymm15[0,1,2,3],ymm14[4,5,6,7]
7016 ; AVX2-FCP-NEXT:    vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7017 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm14 = xmm8[2],xmm7[2],xmm8[3],xmm7[3]
7018 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm12 = xmm6[2],xmm5[2],xmm6[3],xmm5[3]
7019 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm11 = xmm4[2,2,2,2]
7020 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
7021 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm11 = xmm10[0,1,2],xmm11[3]
7022 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm11, %ymm0, %ymm11
7023 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm15
7024 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm11 = ymm15[0,1,2,3,4,5],ymm11[6,7]
7025 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm15 = xmm9[2,2,2,2]
7026 ; AVX2-FCP-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload
7027 ; AVX2-FCP-NEXT:    # xmm15 = mem[0,1,2],xmm15[3]
7028 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm15 = xmm14[0,1],xmm15[2,3]
7029 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm11 = ymm15[0,1,2,3],ymm11[4,5,6,7]
7030 ; AVX2-FCP-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7031 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
7032 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm9 # 16-byte Folded Reload
7033 ; AVX2-FCP-NEXT:    # xmm9 = xmm3[2],mem[2],xmm3[3],mem[3]
7034 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
7035 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm7 = xmm15[2,2,2,2]
7036 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
7037 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm7 = xmm4[0,1,2],xmm7[3]
7038 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
7039 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm9, %ymm0, %ymm11
7040 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm7 = ymm11[0,1,2,3,4,5],ymm7[6,7]
7041 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
7042 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm6 # 16-byte Folded Reload
7043 ; AVX2-FCP-NEXT:    # xmm6 = xmm3[2],mem[2],xmm3[3],mem[3]
7044 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload
7045 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm5 = xmm11[2,2,2,2]
7046 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
7047 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm5 = xmm8[0,1,2],xmm5[3]
7048 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm5 = xmm6[0,1],xmm5[2,3]
7049 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm7[4,5,6,7]
7050 ; AVX2-FCP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7051 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm2[2],xmm13[2],xmm2[3],xmm13[3]
7052 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
7053 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm2 = xmm2[1],xmm5[1]
7054 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
7055 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm5 # 16-byte Folded Reload
7056 ; AVX2-FCP-NEXT:    # xmm5 = xmm3[2],mem[2],xmm3[3],mem[3]
7057 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
7058 ; AVX2-FCP-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload
7059 ; AVX2-FCP-NEXT:    # xmm3 = mem[2,3,2,3]
7060 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
7061 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm5[6,7]
7062 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
7063 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7064 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
7065 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm2[2],xmm0[2],xmm2[3],xmm0[3]
7066 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7067 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
7068 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm2 # 16-byte Folded Reload
7069 ; AVX2-FCP-NEXT:    # xmm2 = xmm1[2],mem[2],xmm1[3],mem[3]
7070 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
7071 ; AVX2-FCP-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
7072 ; AVX2-FCP-NEXT:    # xmm1 = mem[2,3,2,3]
7073 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
7074 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
7075 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
7076 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7077 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7078 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
7079 ; AVX2-FCP-NEXT:    # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]
7080 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm14[1],xmm0[1]
7081 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10, %xmm1 # 16-byte Folded Reload
7082 ; AVX2-FCP-NEXT:    # xmm1 = xmm10[2],mem[2],xmm10[3],mem[3]
7083 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
7084 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm2 = xmm12[2,3,2,3]
7085 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
7086 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
7087 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
7088 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7089 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm4[2],xmm15[2],xmm4[3],xmm15[3]
7090 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
7091 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm1 = xmm9[2,3,2,3]
7092 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
7093 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7094 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm8[2],xmm11[2],xmm8[3],xmm11[3]
7095 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm6[1],xmm1[1]
7096 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7097 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7098 ; AVX2-FCP-NEXT:    vmovaps 288(%rdi), %ymm0
7099 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7100 ; AVX2-FCP-NEXT:    vmovaps 256(%rdi), %ymm1
7101 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7102 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
7103 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm0, %xmm0
7104 ; AVX2-FCP-NEXT:    vmovaps 352(%rdi), %ymm1
7105 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7106 ; AVX2-FCP-NEXT:    vmovaps 320(%rdi), %ymm2
7107 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7108 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm6 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[4],ymm1[4],ymm2[5],ymm1[5]
7109 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm6[2,2,2,2]
7110 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
7111 ; AVX2-FCP-NEXT:    vmovaps 480(%rdi), %ymm2
7112 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7113 ; AVX2-FCP-NEXT:    vmovaps 448(%rdi), %ymm3
7114 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7115 ; AVX2-FCP-NEXT:    vmovaps 416(%rdi), %ymm8
7116 ; AVX2-FCP-NEXT:    vmovaps 384(%rdi), %ymm1
7117 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7118 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm8[0],ymm1[1],ymm8[1],ymm1[4],ymm8[4],ymm1[5],ymm8[5]
7119 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm10 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
7120 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm10[0],ymm1[2],ymm10[2]
7121 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
7122 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7123 ; AVX2-FCP-NEXT:    vmovaps 800(%rdi), %ymm0
7124 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7125 ; AVX2-FCP-NEXT:    vmovaps 768(%rdi), %ymm1
7126 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7127 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
7128 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm0, %xmm0
7129 ; AVX2-FCP-NEXT:    vmovaps 864(%rdi), %ymm1
7130 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7131 ; AVX2-FCP-NEXT:    vmovaps 832(%rdi), %ymm2
7132 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7133 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[4],ymm1[4],ymm2[5],ymm1[5]
7134 ; AVX2-FCP-NEXT:    vmovups %ymm1, (%rsp) # 32-byte Spill
7135 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,2]
7136 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
7137 ; AVX2-FCP-NEXT:    vmovaps 992(%rdi), %ymm2
7138 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7139 ; AVX2-FCP-NEXT:    vmovaps 960(%rdi), %ymm3
7140 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7141 ; AVX2-FCP-NEXT:    vmovaps 928(%rdi), %ymm7
7142 ; AVX2-FCP-NEXT:    vmovaps 896(%rdi), %ymm1
7143 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7144 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm7[0],ymm1[1],ymm7[1],ymm1[4],ymm7[4],ymm1[5],ymm7[5]
7145 ; AVX2-FCP-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7146 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm12 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
7147 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm12[0],ymm1[2],ymm12[2]
7148 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
7149 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7150 ; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %ymm0
7151 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7152 ; AVX2-FCP-NEXT:    vmovaps (%rdi), %ymm1
7153 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7154 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
7155 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm0, %xmm0
7156 ; AVX2-FCP-NEXT:    vmovaps 96(%rdi), %ymm1
7157 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7158 ; AVX2-FCP-NEXT:    vmovaps 64(%rdi), %ymm2
7159 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7160 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm13 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[4],ymm1[4],ymm2[5],ymm1[5]
7161 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm13[2,2,2,2]
7162 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
7163 ; AVX2-FCP-NEXT:    vmovaps 224(%rdi), %ymm2
7164 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7165 ; AVX2-FCP-NEXT:    vmovaps 192(%rdi), %ymm3
7166 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7167 ; AVX2-FCP-NEXT:    vmovaps 160(%rdi), %ymm15
7168 ; AVX2-FCP-NEXT:    vmovaps 128(%rdi), %ymm1
7169 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7170 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm15[0],ymm1[1],ymm15[1],ymm1[4],ymm15[4],ymm1[5],ymm15[5]
7171 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm4 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
7172 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm4[0],ymm1[2],ymm4[2]
7173 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
7174 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7175 ; AVX2-FCP-NEXT:    vmovaps 544(%rdi), %ymm14
7176 ; AVX2-FCP-NEXT:    vmovaps 512(%rdi), %ymm11
7177 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm11[0],ymm14[0],ymm11[1],ymm14[1],ymm11[4],ymm14[4],ymm11[5],ymm14[5]
7178 ; AVX2-FCP-NEXT:    vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7179 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm0, %xmm0
7180 ; AVX2-FCP-NEXT:    vmovaps 608(%rdi), %ymm1
7181 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7182 ; AVX2-FCP-NEXT:    vmovaps 576(%rdi), %ymm2
7183 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7184 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm9 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[4],ymm1[4],ymm2[5],ymm1[5]
7185 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm5 = ymm9[2,2,2,2]
7186 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm0[0,1],xmm5[2,3]
7187 ; AVX2-FCP-NEXT:    vmovaps 736(%rdi), %ymm2
7188 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7189 ; AVX2-FCP-NEXT:    vmovaps 704(%rdi), %ymm3
7190 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7191 ; AVX2-FCP-NEXT:    vmovaps 672(%rdi), %ymm5
7192 ; AVX2-FCP-NEXT:    vmovaps 640(%rdi), %ymm0
7193 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7194 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm0[0],ymm5[0],ymm0[1],ymm5[1],ymm0[4],ymm5[4],ymm0[5],ymm5[5]
7195 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm2 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
7196 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm2[0],ymm0[2],ymm2[2]
7197 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7198 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7199 ; AVX2-FCP-NEXT:    vbroadcastss 404(%rdi), %ymm0
7200 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm8[5],ymm0[6,7]
7201 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm10[6,7]
7202 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm6, %xmm1
7203 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
7204 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm10 = ymm6[1,1,1,1,5,5,5,5]
7205 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
7206 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0],ymm3[1],ymm10[2,3,4],ymm3[5],ymm10[6,7]
7207 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm10, %xmm10
7208 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm10[0,1],xmm1[2,3]
7209 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7210 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7211 ; AVX2-FCP-NEXT:    vbroadcastss 916(%rdi), %ymm0
7212 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm7[5],ymm0[6,7]
7213 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm12[6,7]
7214 ; AVX2-FCP-NEXT:    vmovups (%rsp), %ymm1 # 32-byte Reload
7215 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm1, %xmm1
7216 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
7217 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm7 = ymm10[1,1,1,1,5,5,5,5]
7218 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
7219 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0],ymm12[1],ymm7[2,3,4],ymm12[5],ymm7[6,7]
7220 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm7, %xmm7
7221 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm7[0,1],xmm1[2,3]
7222 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7223 ; AVX2-FCP-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
7224 ; AVX2-FCP-NEXT:    vbroadcastss 148(%rdi), %ymm0
7225 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm15[5],ymm0[6,7]
7226 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm4[6,7]
7227 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm13, %xmm1
7228 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
7229 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm4 = ymm13[1,1,1,1,5,5,5,5]
7230 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
7231 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0],ymm7[1],ymm4[2,3,4],ymm7[5],ymm4[6,7]
7232 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm4, %xmm4
7233 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm4[0,1],xmm1[2,3]
7234 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7235 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7236 ; AVX2-FCP-NEXT:    vbroadcastss 660(%rdi), %ymm0
7237 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm5[5],ymm0[6,7]
7238 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm2[6,7]
7239 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm9, %xmm1
7240 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm2 = ymm11[1,1,1,1,5,5,5,5]
7241 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0],ymm14[1],ymm2[2,3,4],ymm14[5],ymm2[6,7]
7242 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm2, %xmm2
7243 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
7244 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7245 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7246 ; AVX2-FCP-NEXT:    vbroadcastss 504(%rdi), %ymm0
7247 ; AVX2-FCP-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload
7248 ; AVX2-FCP-NEXT:    # ymm1 = mem[0,1,2,3,4,5,6],ymm0[7]
7249 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7250 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm0 = ymm0[2],ymm8[2],ymm0[3],ymm8[3],ymm0[6],ymm8[6],ymm0[7],ymm8[7]
7251 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm3 = ymm6[2],ymm3[2],ymm6[3],ymm3[3],ymm6[6],ymm3[6],ymm6[7],ymm3[7]
7252 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7253 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
7254 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm6 # 32-byte Folded Reload
7255 ; AVX2-FCP-NEXT:    # ymm6 = ymm2[2],mem[2],ymm2[3],mem[3],ymm2[6],mem[6],ymm2[7],mem[7]
7256 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm3, %xmm2
7257 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm3 = ymm6[2,2,2,2]
7258 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm3[2,3]
7259 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3,4,5],ymm1[6,7]
7260 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
7261 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7262 ; AVX2-FCP-NEXT:    vbroadcastss 1016(%rdi), %ymm1
7263 ; AVX2-FCP-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
7264 ; AVX2-FCP-NEXT:    # ymm1 = mem[0,1,2,3,4,5,6],ymm1[7]
7265 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
7266 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm3 # 32-byte Folded Reload
7267 ; AVX2-FCP-NEXT:    # ymm3 = ymm2[2],mem[2],ymm2[3],mem[3],ymm2[6],mem[6],ymm2[7],mem[7]
7268 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm12 = ymm10[2],ymm12[2],ymm10[3],ymm12[3],ymm10[6],ymm12[6],ymm10[7],ymm12[7]
7269 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
7270 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm10 # 32-byte Folded Reload
7271 ; AVX2-FCP-NEXT:    # ymm10 = ymm2[2],mem[2],ymm2[3],mem[3],ymm2[6],mem[6],ymm2[7],mem[7]
7272 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm12, %xmm2
7273 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm4 = ymm10[2,2,2,2]
7274 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm4[2,3]
7275 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3,4,5],ymm1[6,7]
7276 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
7277 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7278 ; AVX2-FCP-NEXT:    vbroadcastss 248(%rdi), %ymm2
7279 ; AVX2-FCP-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
7280 ; AVX2-FCP-NEXT:    # ymm2 = mem[0,1,2,3,4,5,6],ymm2[7]
7281 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7282 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm4 = ymm1[2],ymm15[2],ymm1[3],ymm15[3],ymm1[6],ymm15[6],ymm1[7],ymm15[7]
7283 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm9 = ymm13[2],ymm7[2],ymm13[3],ymm7[3],ymm13[6],ymm7[6],ymm13[7],ymm7[7]
7284 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7285 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm14 # 32-byte Folded Reload
7286 ; AVX2-FCP-NEXT:    # ymm14 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
7287 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm9, %xmm8
7288 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm15 = ymm14[2,2,2,2]
7289 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm8 = xmm8[0,1],xmm15[2,3]
7290 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3,4,5],ymm2[6,7]
7291 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm2[4,5,6,7]
7292 ; AVX2-FCP-NEXT:    vbroadcastss 760(%rdi), %ymm2
7293 ; AVX2-FCP-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
7294 ; AVX2-FCP-NEXT:    # ymm2 = mem[0,1,2,3,4,5,6],ymm2[7]
7295 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7296 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm5 = ymm1[2],ymm5[2],ymm1[3],ymm5[3],ymm1[6],ymm5[6],ymm1[7],ymm5[7]
7297 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm11 # 32-byte Folded Reload
7298 ; AVX2-FCP-NEXT:    # ymm11 = ymm11[2],mem[2],ymm11[3],mem[3],ymm11[6],mem[6],ymm11[7],mem[7]
7299 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7300 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm13 # 32-byte Folded Reload
7301 ; AVX2-FCP-NEXT:    # ymm13 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
7302 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm11, %xmm15
7303 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm13[2,2,2,2]
7304 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm15[0,1],xmm1[2,3]
7305 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3,4,5],ymm2[6,7]
7306 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm2[4,5,6,7]
7307 ; AVX2-FCP-NEXT:    vbroadcastss 220(%rdi), %ymm1
7308 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
7309 ; AVX2-FCP-NEXT:    # ymm1 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
7310 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm4[1],ymm1[1],ymm4[3],ymm1[3]
7311 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm14, %xmm4
7312 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm9 = ymm9[2,3,2,3,6,7,6,7]
7313 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm9, %xmm9
7314 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm4 = xmm9[0,1],xmm4[2,3]
7315 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm1[4,5,6,7]
7316 ; AVX2-FCP-NEXT:    vbroadcastss 476(%rdi), %ymm1
7317 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
7318 ; AVX2-FCP-NEXT:    # ymm1 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
7319 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
7320 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm6, %xmm1
7321 ; AVX2-FCP-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Folded Reload
7322 ; AVX2-FCP-NEXT:    # ymm6 = mem[2,3,2,3,6,7,6,7]
7323 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm6, %xmm6
7324 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm6[0,1],xmm1[2,3]
7325 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7326 ; AVX2-FCP-NEXT:    vbroadcastss 732(%rdi), %ymm1
7327 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
7328 ; AVX2-FCP-NEXT:    # ymm1 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
7329 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm5[1],ymm1[1],ymm5[3],ymm1[3]
7330 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm13, %xmm5
7331 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm6 = ymm11[2,3,2,3,6,7,6,7]
7332 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm6, %xmm6
7333 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm5 = xmm6[0,1],xmm5[2,3]
7334 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm1[4,5,6,7]
7335 ; AVX2-FCP-NEXT:    vbroadcastss 988(%rdi), %ymm1
7336 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
7337 ; AVX2-FCP-NEXT:    # ymm1 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
7338 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm3[1],ymm1[1],ymm3[3],ymm1[3]
7339 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm10, %xmm3
7340 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm6 = ymm12[2,3,2,3,6,7,6,7]
7341 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm6, %xmm6
7342 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm3 = xmm6[0,1],xmm3[2,3]
7343 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm1[4,5,6,7]
7344 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
7345 ; AVX2-FCP-NEXT:    vmovaps %ymm3, 64(%rsi)
7346 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
7347 ; AVX2-FCP-NEXT:    vmovaps %ymm3, (%rsi)
7348 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
7349 ; AVX2-FCP-NEXT:    vmovaps %ymm3, 96(%rsi)
7350 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
7351 ; AVX2-FCP-NEXT:    vmovaps %ymm3, 32(%rsi)
7352 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
7353 ; AVX2-FCP-NEXT:    vmovaps %ymm3, 64(%rdx)
7354 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
7355 ; AVX2-FCP-NEXT:    vmovaps %ymm3, (%rdx)
7356 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
7357 ; AVX2-FCP-NEXT:    vmovaps %ymm3, 96(%rdx)
7358 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
7359 ; AVX2-FCP-NEXT:    vmovaps %ymm3, 32(%rdx)
7360 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
7361 ; AVX2-FCP-NEXT:    vmovaps %ymm3, 64(%rcx)
7362 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
7363 ; AVX2-FCP-NEXT:    vmovaps %ymm3, (%rcx)
7364 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
7365 ; AVX2-FCP-NEXT:    vmovaps %ymm3, 96(%rcx)
7366 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
7367 ; AVX2-FCP-NEXT:    vmovaps %ymm3, 32(%rcx)
7368 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
7369 ; AVX2-FCP-NEXT:    vmovaps %ymm3, 64(%r8)
7370 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
7371 ; AVX2-FCP-NEXT:    vmovaps %ymm3, (%r8)
7372 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
7373 ; AVX2-FCP-NEXT:    vmovaps %ymm3, 96(%r8)
7374 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
7375 ; AVX2-FCP-NEXT:    vmovaps %ymm3, 32(%r8)
7376 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
7377 ; AVX2-FCP-NEXT:    vmovaps %ymm3, 64(%r9)
7378 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
7379 ; AVX2-FCP-NEXT:    vmovaps %ymm3, (%r9)
7380 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
7381 ; AVX2-FCP-NEXT:    vmovaps %ymm3, 96(%r9)
7382 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
7383 ; AVX2-FCP-NEXT:    vmovaps %ymm3, 32(%r9)
7384 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
7385 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
7386 ; AVX2-FCP-NEXT:    vmovaps %ymm3, 64(%rax)
7387 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
7388 ; AVX2-FCP-NEXT:    vmovaps %ymm3, (%rax)
7389 ; AVX2-FCP-NEXT:    vmovups (%rsp), %ymm3 # 32-byte Reload
7390 ; AVX2-FCP-NEXT:    vmovaps %ymm3, 96(%rax)
7391 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
7392 ; AVX2-FCP-NEXT:    vmovaps %ymm3, 32(%rax)
7393 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
7394 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 64(%rax)
7395 ; AVX2-FCP-NEXT:    vmovaps %ymm8, (%rax)
7396 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
7397 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 96(%rax)
7398 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
7399 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 32(%rax)
7400 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
7401 ; AVX2-FCP-NEXT:    vmovaps %ymm1, 96(%rax)
7402 ; AVX2-FCP-NEXT:    vmovaps %ymm5, 64(%rax)
7403 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 32(%rax)
7404 ; AVX2-FCP-NEXT:    vmovaps %ymm4, (%rax)
7405 ; AVX2-FCP-NEXT:    addq $1544, %rsp # imm = 0x608
7406 ; AVX2-FCP-NEXT:    vzeroupper
7407 ; AVX2-FCP-NEXT:    retq
7409 ; AVX512-LABEL: load_i32_stride8_vf32:
7410 ; AVX512:       # %bb.0:
7411 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax
7412 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %r10
7413 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %r11
7414 ; AVX512-NEXT:    vmovdqa64 (%rdi), %zmm0
7415 ; AVX512-NEXT:    vmovdqa64 64(%rdi), %zmm29
7416 ; AVX512-NEXT:    vmovdqa64 128(%rdi), %zmm1
7417 ; AVX512-NEXT:    vmovdqa64 192(%rdi), %zmm30
7418 ; AVX512-NEXT:    vmovdqa64 320(%rdi), %zmm31
7419 ; AVX512-NEXT:    vmovdqa64 256(%rdi), %zmm3
7420 ; AVX512-NEXT:    vmovdqa64 448(%rdi), %zmm7
7421 ; AVX512-NEXT:    vmovdqa64 384(%rdi), %zmm6
7422 ; AVX512-NEXT:    vmovdqa64 576(%rdi), %zmm9
7423 ; AVX512-NEXT:    vmovdqa64 512(%rdi), %zmm5
7424 ; AVX512-NEXT:    vmovdqa64 704(%rdi), %zmm12
7425 ; AVX512-NEXT:    vmovdqa64 640(%rdi), %zmm2
7426 ; AVX512-NEXT:    vmovdqa64 832(%rdi), %zmm14
7427 ; AVX512-NEXT:    vmovdqa64 768(%rdi), %zmm11
7428 ; AVX512-NEXT:    vmovdqa64 960(%rdi), %zmm16
7429 ; AVX512-NEXT:    vmovdqa64 896(%rdi), %zmm15
7430 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm13 = [0,8,16,24,0,8,16,24,0,8,16,24,0,8,16,24]
7431 ; AVX512-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
7432 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm17
7433 ; AVX512-NEXT:    vpermt2d %zmm16, %zmm13, %zmm17
7434 ; AVX512-NEXT:    vmovdqa64 %zmm11, %zmm18
7435 ; AVX512-NEXT:    vpermt2d %zmm14, %zmm13, %zmm18
7436 ; AVX512-NEXT:    movb $-64, %dil
7437 ; AVX512-NEXT:    kmovw %edi, %k1
7438 ; AVX512-NEXT:    vmovdqa64 %zmm17, %zmm18 {%k1}
7439 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm10
7440 ; AVX512-NEXT:    vpermt2d %zmm12, %zmm13, %zmm10
7441 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm8
7442 ; AVX512-NEXT:    vpermt2d %zmm9, %zmm13, %zmm8
7443 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm10[4,5,6,7]
7444 ; AVX512-NEXT:    vinserti64x4 $0, %ymm8, %zmm18, %zmm28
7445 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm8
7446 ; AVX512-NEXT:    vpermt2d %zmm7, %zmm13, %zmm8
7447 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm10
7448 ; AVX512-NEXT:    vpermt2d %zmm31, %zmm13, %zmm10
7449 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
7450 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm8
7451 ; AVX512-NEXT:    vpermt2d %zmm30, %zmm13, %zmm8
7452 ; AVX512-NEXT:    vpermi2d %zmm29, %zmm0, %zmm13
7453 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
7454 ; AVX512-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm17
7455 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [1,9,17,25,1,9,17,25,1,9,17,25,1,9,17,25]
7456 ; AVX512-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
7457 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm10
7458 ; AVX512-NEXT:    vpermt2d %zmm16, %zmm8, %zmm10
7459 ; AVX512-NEXT:    vmovdqa64 %zmm11, %zmm13
7460 ; AVX512-NEXT:    vpermt2d %zmm14, %zmm8, %zmm13
7461 ; AVX512-NEXT:    vmovdqa64 %zmm10, %zmm13 {%k1}
7462 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm10
7463 ; AVX512-NEXT:    vpermt2d %zmm12, %zmm8, %zmm10
7464 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm4
7465 ; AVX512-NEXT:    vpermt2d %zmm9, %zmm8, %zmm4
7466 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm10[4,5,6,7]
7467 ; AVX512-NEXT:    vinserti64x4 $0, %ymm4, %zmm13, %zmm18
7468 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm4
7469 ; AVX512-NEXT:    vpermt2d %zmm7, %zmm8, %zmm4
7470 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm10
7471 ; AVX512-NEXT:    vpermt2d %zmm31, %zmm8, %zmm10
7472 ; AVX512-NEXT:    vmovdqa64 %zmm4, %zmm10 {%k1}
7473 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm4
7474 ; AVX512-NEXT:    vpermt2d %zmm30, %zmm8, %zmm4
7475 ; AVX512-NEXT:    vpermi2d %zmm29, %zmm0, %zmm8
7476 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm4 = ymm8[0,1,2,3],ymm4[4,5,6,7]
7477 ; AVX512-NEXT:    vinserti64x4 $0, %ymm4, %zmm10, %zmm19
7478 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [2,10,18,26,2,10,18,26,2,10,18,26,2,10,18,26]
7479 ; AVX512-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
7480 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm8
7481 ; AVX512-NEXT:    vpermt2d %zmm16, %zmm4, %zmm8
7482 ; AVX512-NEXT:    vmovdqa64 %zmm11, %zmm10
7483 ; AVX512-NEXT:    vpermt2d %zmm14, %zmm4, %zmm10
7484 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
7485 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm8
7486 ; AVX512-NEXT:    vpermt2d %zmm12, %zmm4, %zmm8
7487 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm13
7488 ; AVX512-NEXT:    vpermt2d %zmm9, %zmm4, %zmm13
7489 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
7490 ; AVX512-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm20
7491 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm8
7492 ; AVX512-NEXT:    vpermt2d %zmm7, %zmm4, %zmm8
7493 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm10
7494 ; AVX512-NEXT:    vpermt2d %zmm31, %zmm4, %zmm10
7495 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
7496 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm8
7497 ; AVX512-NEXT:    vpermt2d %zmm30, %zmm4, %zmm8
7498 ; AVX512-NEXT:    vpermi2d %zmm29, %zmm0, %zmm4
7499 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm8[4,5,6,7]
7500 ; AVX512-NEXT:    vinserti64x4 $0, %ymm4, %zmm10, %zmm21
7501 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [3,11,19,27,3,11,19,27,3,11,19,27,3,11,19,27]
7502 ; AVX512-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
7503 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm8
7504 ; AVX512-NEXT:    vpermt2d %zmm16, %zmm4, %zmm8
7505 ; AVX512-NEXT:    vmovdqa64 %zmm11, %zmm10
7506 ; AVX512-NEXT:    vpermt2d %zmm14, %zmm4, %zmm10
7507 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
7508 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm8
7509 ; AVX512-NEXT:    vpermt2d %zmm12, %zmm4, %zmm8
7510 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm13
7511 ; AVX512-NEXT:    vpermt2d %zmm9, %zmm4, %zmm13
7512 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
7513 ; AVX512-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm22
7514 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm8
7515 ; AVX512-NEXT:    vpermt2d %zmm7, %zmm4, %zmm8
7516 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm10
7517 ; AVX512-NEXT:    vpermt2d %zmm31, %zmm4, %zmm10
7518 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
7519 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm8
7520 ; AVX512-NEXT:    vpermt2d %zmm30, %zmm4, %zmm8
7521 ; AVX512-NEXT:    vpermi2d %zmm29, %zmm0, %zmm4
7522 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm8[4,5,6,7]
7523 ; AVX512-NEXT:    vinserti64x4 $0, %ymm4, %zmm10, %zmm23
7524 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [4,12,20,28,4,12,20,28,4,12,20,28,4,12,20,28]
7525 ; AVX512-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
7526 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm8
7527 ; AVX512-NEXT:    vpermt2d %zmm16, %zmm4, %zmm8
7528 ; AVX512-NEXT:    vmovdqa64 %zmm11, %zmm10
7529 ; AVX512-NEXT:    vpermt2d %zmm14, %zmm4, %zmm10
7530 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
7531 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm8
7532 ; AVX512-NEXT:    vpermt2d %zmm12, %zmm4, %zmm8
7533 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm13
7534 ; AVX512-NEXT:    vpermt2d %zmm9, %zmm4, %zmm13
7535 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
7536 ; AVX512-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm24
7537 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm8
7538 ; AVX512-NEXT:    vpermt2d %zmm7, %zmm4, %zmm8
7539 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm10
7540 ; AVX512-NEXT:    vpermt2d %zmm31, %zmm4, %zmm10
7541 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
7542 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm8
7543 ; AVX512-NEXT:    vpermt2d %zmm30, %zmm4, %zmm8
7544 ; AVX512-NEXT:    vpermi2d %zmm29, %zmm0, %zmm4
7545 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm8[4,5,6,7]
7546 ; AVX512-NEXT:    vinserti64x4 $0, %ymm4, %zmm10, %zmm25
7547 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [5,13,21,29,5,13,21,29,5,13,21,29,5,13,21,29]
7548 ; AVX512-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
7549 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm8
7550 ; AVX512-NEXT:    vpermt2d %zmm16, %zmm4, %zmm8
7551 ; AVX512-NEXT:    vmovdqa64 %zmm11, %zmm10
7552 ; AVX512-NEXT:    vpermt2d %zmm14, %zmm4, %zmm10
7553 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
7554 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm8
7555 ; AVX512-NEXT:    vpermt2d %zmm12, %zmm4, %zmm8
7556 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm13
7557 ; AVX512-NEXT:    vpermt2d %zmm9, %zmm4, %zmm13
7558 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
7559 ; AVX512-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm26
7560 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm8
7561 ; AVX512-NEXT:    vpermt2d %zmm7, %zmm4, %zmm8
7562 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm10
7563 ; AVX512-NEXT:    vpermt2d %zmm31, %zmm4, %zmm10
7564 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
7565 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm8
7566 ; AVX512-NEXT:    vpermt2d %zmm30, %zmm4, %zmm8
7567 ; AVX512-NEXT:    vpermi2d %zmm29, %zmm0, %zmm4
7568 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm8[4,5,6,7]
7569 ; AVX512-NEXT:    vinserti64x4 $0, %ymm4, %zmm10, %zmm27
7570 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [6,14,22,30,6,14,22,30,6,14,22,30,6,14,22,30]
7571 ; AVX512-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
7572 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm8
7573 ; AVX512-NEXT:    vpermt2d %zmm16, %zmm4, %zmm8
7574 ; AVX512-NEXT:    vmovdqa64 %zmm11, %zmm10
7575 ; AVX512-NEXT:    vpermt2d %zmm14, %zmm4, %zmm10
7576 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
7577 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm8
7578 ; AVX512-NEXT:    vpermt2d %zmm12, %zmm4, %zmm8
7579 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm13
7580 ; AVX512-NEXT:    vpermt2d %zmm9, %zmm4, %zmm13
7581 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
7582 ; AVX512-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm8
7583 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm10
7584 ; AVX512-NEXT:    vpermt2d %zmm7, %zmm4, %zmm10
7585 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm13
7586 ; AVX512-NEXT:    vpermt2d %zmm31, %zmm4, %zmm13
7587 ; AVX512-NEXT:    vmovdqa64 %zmm10, %zmm13 {%k1}
7588 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm10
7589 ; AVX512-NEXT:    vpermt2d %zmm30, %zmm4, %zmm10
7590 ; AVX512-NEXT:    vpermi2d %zmm29, %zmm0, %zmm4
7591 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm10[4,5,6,7]
7592 ; AVX512-NEXT:    vinserti64x4 $0, %ymm4, %zmm13, %zmm4
7593 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [7,15,23,31,7,15,23,31,7,15,23,31,7,15,23,31]
7594 ; AVX512-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
7595 ; AVX512-NEXT:    vpermt2d %zmm16, %zmm10, %zmm15
7596 ; AVX512-NEXT:    vpermt2d %zmm14, %zmm10, %zmm11
7597 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm11 {%k1}
7598 ; AVX512-NEXT:    vpermt2d %zmm12, %zmm10, %zmm2
7599 ; AVX512-NEXT:    vpermt2d %zmm9, %zmm10, %zmm5
7600 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm2 = ymm5[0,1,2,3],ymm2[4,5,6,7]
7601 ; AVX512-NEXT:    vinserti64x4 $0, %ymm2, %zmm11, %zmm2
7602 ; AVX512-NEXT:    vpermt2d %zmm7, %zmm10, %zmm6
7603 ; AVX512-NEXT:    vpermt2d %zmm31, %zmm10, %zmm3
7604 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm3 {%k1}
7605 ; AVX512-NEXT:    vpermt2d %zmm30, %zmm10, %zmm1
7606 ; AVX512-NEXT:    vpermt2d %zmm29, %zmm10, %zmm0
7607 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
7608 ; AVX512-NEXT:    vinserti64x4 $0, %ymm0, %zmm3, %zmm0
7609 ; AVX512-NEXT:    vmovdqa64 %zmm28, 64(%rsi)
7610 ; AVX512-NEXT:    vmovdqa64 %zmm17, (%rsi)
7611 ; AVX512-NEXT:    vmovdqa64 %zmm18, 64(%rdx)
7612 ; AVX512-NEXT:    vmovdqa64 %zmm19, (%rdx)
7613 ; AVX512-NEXT:    vmovdqa64 %zmm20, 64(%rcx)
7614 ; AVX512-NEXT:    vmovdqa64 %zmm21, (%rcx)
7615 ; AVX512-NEXT:    vmovdqa64 %zmm22, 64(%r8)
7616 ; AVX512-NEXT:    vmovdqa64 %zmm23, (%r8)
7617 ; AVX512-NEXT:    vmovdqa64 %zmm24, 64(%r9)
7618 ; AVX512-NEXT:    vmovdqa64 %zmm25, (%r9)
7619 ; AVX512-NEXT:    vmovdqa64 %zmm26, 64(%r11)
7620 ; AVX512-NEXT:    vmovdqa64 %zmm27, (%r11)
7621 ; AVX512-NEXT:    vmovdqa64 %zmm8, 64(%r10)
7622 ; AVX512-NEXT:    vmovdqa64 %zmm4, (%r10)
7623 ; AVX512-NEXT:    vmovdqa64 %zmm2, 64(%rax)
7624 ; AVX512-NEXT:    vmovdqa64 %zmm0, (%rax)
7625 ; AVX512-NEXT:    vzeroupper
7626 ; AVX512-NEXT:    retq
7628 ; AVX512-FCP-LABEL: load_i32_stride8_vf32:
7629 ; AVX512-FCP:       # %bb.0:
7630 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
7631 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
7632 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11
7633 ; AVX512-FCP-NEXT:    vmovdqa64 (%rdi), %zmm0
7634 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm29
7635 ; AVX512-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm1
7636 ; AVX512-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm30
7637 ; AVX512-FCP-NEXT:    vmovdqa64 320(%rdi), %zmm31
7638 ; AVX512-FCP-NEXT:    vmovdqa64 256(%rdi), %zmm3
7639 ; AVX512-FCP-NEXT:    vmovdqa64 448(%rdi), %zmm7
7640 ; AVX512-FCP-NEXT:    vmovdqa64 384(%rdi), %zmm6
7641 ; AVX512-FCP-NEXT:    vmovdqa64 576(%rdi), %zmm9
7642 ; AVX512-FCP-NEXT:    vmovdqa64 512(%rdi), %zmm5
7643 ; AVX512-FCP-NEXT:    vmovdqa64 704(%rdi), %zmm12
7644 ; AVX512-FCP-NEXT:    vmovdqa64 640(%rdi), %zmm2
7645 ; AVX512-FCP-NEXT:    vmovdqa64 832(%rdi), %zmm14
7646 ; AVX512-FCP-NEXT:    vmovdqa64 768(%rdi), %zmm11
7647 ; AVX512-FCP-NEXT:    vmovdqa64 960(%rdi), %zmm16
7648 ; AVX512-FCP-NEXT:    vmovdqa64 896(%rdi), %zmm15
7649 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm13 = [0,8,16,24,0,8,16,24,0,8,16,24,0,8,16,24]
7650 ; AVX512-FCP-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
7651 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm15, %zmm17
7652 ; AVX512-FCP-NEXT:    vpermt2d %zmm16, %zmm13, %zmm17
7653 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm11, %zmm18
7654 ; AVX512-FCP-NEXT:    vpermt2d %zmm14, %zmm13, %zmm18
7655 ; AVX512-FCP-NEXT:    movb $-64, %dil
7656 ; AVX512-FCP-NEXT:    kmovw %edi, %k1
7657 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm17, %zmm18 {%k1}
7658 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm10
7659 ; AVX512-FCP-NEXT:    vpermt2d %zmm12, %zmm13, %zmm10
7660 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm8
7661 ; AVX512-FCP-NEXT:    vpermt2d %zmm9, %zmm13, %zmm8
7662 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm10[4,5,6,7]
7663 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm8, %zmm18, %zmm28
7664 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm8
7665 ; AVX512-FCP-NEXT:    vpermt2d %zmm7, %zmm13, %zmm8
7666 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm10
7667 ; AVX512-FCP-NEXT:    vpermt2d %zmm31, %zmm13, %zmm10
7668 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
7669 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm8
7670 ; AVX512-FCP-NEXT:    vpermt2d %zmm30, %zmm13, %zmm8
7671 ; AVX512-FCP-NEXT:    vpermi2d %zmm29, %zmm0, %zmm13
7672 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
7673 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm17
7674 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [1,9,17,25,1,9,17,25,1,9,17,25,1,9,17,25]
7675 ; AVX512-FCP-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
7676 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm15, %zmm10
7677 ; AVX512-FCP-NEXT:    vpermt2d %zmm16, %zmm8, %zmm10
7678 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm11, %zmm13
7679 ; AVX512-FCP-NEXT:    vpermt2d %zmm14, %zmm8, %zmm13
7680 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm10, %zmm13 {%k1}
7681 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm10
7682 ; AVX512-FCP-NEXT:    vpermt2d %zmm12, %zmm8, %zmm10
7683 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm4
7684 ; AVX512-FCP-NEXT:    vpermt2d %zmm9, %zmm8, %zmm4
7685 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm10[4,5,6,7]
7686 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm13, %zmm18
7687 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm4
7688 ; AVX512-FCP-NEXT:    vpermt2d %zmm7, %zmm8, %zmm4
7689 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm10
7690 ; AVX512-FCP-NEXT:    vpermt2d %zmm31, %zmm8, %zmm10
7691 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, %zmm10 {%k1}
7692 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4
7693 ; AVX512-FCP-NEXT:    vpermt2d %zmm30, %zmm8, %zmm4
7694 ; AVX512-FCP-NEXT:    vpermi2d %zmm29, %zmm0, %zmm8
7695 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm8[0,1,2,3],ymm4[4,5,6,7]
7696 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm10, %zmm19
7697 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [2,10,18,26,2,10,18,26,2,10,18,26,2,10,18,26]
7698 ; AVX512-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
7699 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm15, %zmm8
7700 ; AVX512-FCP-NEXT:    vpermt2d %zmm16, %zmm4, %zmm8
7701 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm11, %zmm10
7702 ; AVX512-FCP-NEXT:    vpermt2d %zmm14, %zmm4, %zmm10
7703 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
7704 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm8
7705 ; AVX512-FCP-NEXT:    vpermt2d %zmm12, %zmm4, %zmm8
7706 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm13
7707 ; AVX512-FCP-NEXT:    vpermt2d %zmm9, %zmm4, %zmm13
7708 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
7709 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm20
7710 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm8
7711 ; AVX512-FCP-NEXT:    vpermt2d %zmm7, %zmm4, %zmm8
7712 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm10
7713 ; AVX512-FCP-NEXT:    vpermt2d %zmm31, %zmm4, %zmm10
7714 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
7715 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm8
7716 ; AVX512-FCP-NEXT:    vpermt2d %zmm30, %zmm4, %zmm8
7717 ; AVX512-FCP-NEXT:    vpermi2d %zmm29, %zmm0, %zmm4
7718 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm8[4,5,6,7]
7719 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm10, %zmm21
7720 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [3,11,19,27,3,11,19,27,3,11,19,27,3,11,19,27]
7721 ; AVX512-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
7722 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm15, %zmm8
7723 ; AVX512-FCP-NEXT:    vpermt2d %zmm16, %zmm4, %zmm8
7724 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm11, %zmm10
7725 ; AVX512-FCP-NEXT:    vpermt2d %zmm14, %zmm4, %zmm10
7726 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
7727 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm8
7728 ; AVX512-FCP-NEXT:    vpermt2d %zmm12, %zmm4, %zmm8
7729 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm13
7730 ; AVX512-FCP-NEXT:    vpermt2d %zmm9, %zmm4, %zmm13
7731 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
7732 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm22
7733 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm8
7734 ; AVX512-FCP-NEXT:    vpermt2d %zmm7, %zmm4, %zmm8
7735 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm10
7736 ; AVX512-FCP-NEXT:    vpermt2d %zmm31, %zmm4, %zmm10
7737 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
7738 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm8
7739 ; AVX512-FCP-NEXT:    vpermt2d %zmm30, %zmm4, %zmm8
7740 ; AVX512-FCP-NEXT:    vpermi2d %zmm29, %zmm0, %zmm4
7741 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm8[4,5,6,7]
7742 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm10, %zmm23
7743 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [4,12,20,28,4,12,20,28,4,12,20,28,4,12,20,28]
7744 ; AVX512-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
7745 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm15, %zmm8
7746 ; AVX512-FCP-NEXT:    vpermt2d %zmm16, %zmm4, %zmm8
7747 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm11, %zmm10
7748 ; AVX512-FCP-NEXT:    vpermt2d %zmm14, %zmm4, %zmm10
7749 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
7750 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm8
7751 ; AVX512-FCP-NEXT:    vpermt2d %zmm12, %zmm4, %zmm8
7752 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm13
7753 ; AVX512-FCP-NEXT:    vpermt2d %zmm9, %zmm4, %zmm13
7754 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
7755 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm24
7756 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm8
7757 ; AVX512-FCP-NEXT:    vpermt2d %zmm7, %zmm4, %zmm8
7758 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm10
7759 ; AVX512-FCP-NEXT:    vpermt2d %zmm31, %zmm4, %zmm10
7760 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
7761 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm8
7762 ; AVX512-FCP-NEXT:    vpermt2d %zmm30, %zmm4, %zmm8
7763 ; AVX512-FCP-NEXT:    vpermi2d %zmm29, %zmm0, %zmm4
7764 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm8[4,5,6,7]
7765 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm10, %zmm25
7766 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [5,13,21,29,5,13,21,29,5,13,21,29,5,13,21,29]
7767 ; AVX512-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
7768 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm15, %zmm8
7769 ; AVX512-FCP-NEXT:    vpermt2d %zmm16, %zmm4, %zmm8
7770 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm11, %zmm10
7771 ; AVX512-FCP-NEXT:    vpermt2d %zmm14, %zmm4, %zmm10
7772 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
7773 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm8
7774 ; AVX512-FCP-NEXT:    vpermt2d %zmm12, %zmm4, %zmm8
7775 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm13
7776 ; AVX512-FCP-NEXT:    vpermt2d %zmm9, %zmm4, %zmm13
7777 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
7778 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm26
7779 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm8
7780 ; AVX512-FCP-NEXT:    vpermt2d %zmm7, %zmm4, %zmm8
7781 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm10
7782 ; AVX512-FCP-NEXT:    vpermt2d %zmm31, %zmm4, %zmm10
7783 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
7784 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm8
7785 ; AVX512-FCP-NEXT:    vpermt2d %zmm30, %zmm4, %zmm8
7786 ; AVX512-FCP-NEXT:    vpermi2d %zmm29, %zmm0, %zmm4
7787 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm8[4,5,6,7]
7788 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm10, %zmm27
7789 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [6,14,22,30,6,14,22,30,6,14,22,30,6,14,22,30]
7790 ; AVX512-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
7791 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm15, %zmm8
7792 ; AVX512-FCP-NEXT:    vpermt2d %zmm16, %zmm4, %zmm8
7793 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm11, %zmm10
7794 ; AVX512-FCP-NEXT:    vpermt2d %zmm14, %zmm4, %zmm10
7795 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
7796 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm8
7797 ; AVX512-FCP-NEXT:    vpermt2d %zmm12, %zmm4, %zmm8
7798 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm13
7799 ; AVX512-FCP-NEXT:    vpermt2d %zmm9, %zmm4, %zmm13
7800 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
7801 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm8
7802 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm10
7803 ; AVX512-FCP-NEXT:    vpermt2d %zmm7, %zmm4, %zmm10
7804 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm13
7805 ; AVX512-FCP-NEXT:    vpermt2d %zmm31, %zmm4, %zmm13
7806 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm10, %zmm13 {%k1}
7807 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm10
7808 ; AVX512-FCP-NEXT:    vpermt2d %zmm30, %zmm4, %zmm10
7809 ; AVX512-FCP-NEXT:    vpermi2d %zmm29, %zmm0, %zmm4
7810 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm10[4,5,6,7]
7811 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm13, %zmm4
7812 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [7,15,23,31,7,15,23,31,7,15,23,31,7,15,23,31]
7813 ; AVX512-FCP-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
7814 ; AVX512-FCP-NEXT:    vpermt2d %zmm16, %zmm10, %zmm15
7815 ; AVX512-FCP-NEXT:    vpermt2d %zmm14, %zmm10, %zmm11
7816 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm15, %zmm11 {%k1}
7817 ; AVX512-FCP-NEXT:    vpermt2d %zmm12, %zmm10, %zmm2
7818 ; AVX512-FCP-NEXT:    vpermt2d %zmm9, %zmm10, %zmm5
7819 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm2 = ymm5[0,1,2,3],ymm2[4,5,6,7]
7820 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm2, %zmm11, %zmm2
7821 ; AVX512-FCP-NEXT:    vpermt2d %zmm7, %zmm10, %zmm6
7822 ; AVX512-FCP-NEXT:    vpermt2d %zmm31, %zmm10, %zmm3
7823 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm3 {%k1}
7824 ; AVX512-FCP-NEXT:    vpermt2d %zmm30, %zmm10, %zmm1
7825 ; AVX512-FCP-NEXT:    vpermt2d %zmm29, %zmm10, %zmm0
7826 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
7827 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm3, %zmm0
7828 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm28, 64(%rsi)
7829 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm17, (%rsi)
7830 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm18, 64(%rdx)
7831 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm19, (%rdx)
7832 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm20, 64(%rcx)
7833 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm21, (%rcx)
7834 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm22, 64(%r8)
7835 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm23, (%r8)
7836 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm24, 64(%r9)
7837 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm25, (%r9)
7838 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm26, 64(%r11)
7839 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm27, (%r11)
7840 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, 64(%r10)
7841 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, (%r10)
7842 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, 64(%rax)
7843 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, (%rax)
7844 ; AVX512-FCP-NEXT:    vzeroupper
7845 ; AVX512-FCP-NEXT:    retq
7847 ; AVX512DQ-LABEL: load_i32_stride8_vf32:
7848 ; AVX512DQ:       # %bb.0:
7849 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %rax
7850 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %r10
7851 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %r11
7852 ; AVX512DQ-NEXT:    vmovdqa64 (%rdi), %zmm0
7853 ; AVX512DQ-NEXT:    vmovdqa64 64(%rdi), %zmm29
7854 ; AVX512DQ-NEXT:    vmovdqa64 128(%rdi), %zmm1
7855 ; AVX512DQ-NEXT:    vmovdqa64 192(%rdi), %zmm30
7856 ; AVX512DQ-NEXT:    vmovdqa64 320(%rdi), %zmm31
7857 ; AVX512DQ-NEXT:    vmovdqa64 256(%rdi), %zmm3
7858 ; AVX512DQ-NEXT:    vmovdqa64 448(%rdi), %zmm7
7859 ; AVX512DQ-NEXT:    vmovdqa64 384(%rdi), %zmm6
7860 ; AVX512DQ-NEXT:    vmovdqa64 576(%rdi), %zmm9
7861 ; AVX512DQ-NEXT:    vmovdqa64 512(%rdi), %zmm5
7862 ; AVX512DQ-NEXT:    vmovdqa64 704(%rdi), %zmm12
7863 ; AVX512DQ-NEXT:    vmovdqa64 640(%rdi), %zmm2
7864 ; AVX512DQ-NEXT:    vmovdqa64 832(%rdi), %zmm14
7865 ; AVX512DQ-NEXT:    vmovdqa64 768(%rdi), %zmm11
7866 ; AVX512DQ-NEXT:    vmovdqa64 960(%rdi), %zmm16
7867 ; AVX512DQ-NEXT:    vmovdqa64 896(%rdi), %zmm15
7868 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm13 = [0,8,16,24,0,8,16,24,0,8,16,24,0,8,16,24]
7869 ; AVX512DQ-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
7870 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, %zmm17
7871 ; AVX512DQ-NEXT:    vpermt2d %zmm16, %zmm13, %zmm17
7872 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, %zmm18
7873 ; AVX512DQ-NEXT:    vpermt2d %zmm14, %zmm13, %zmm18
7874 ; AVX512DQ-NEXT:    movb $-64, %dil
7875 ; AVX512DQ-NEXT:    kmovw %edi, %k1
7876 ; AVX512DQ-NEXT:    vmovdqa64 %zmm17, %zmm18 {%k1}
7877 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm10
7878 ; AVX512DQ-NEXT:    vpermt2d %zmm12, %zmm13, %zmm10
7879 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm8
7880 ; AVX512DQ-NEXT:    vpermt2d %zmm9, %zmm13, %zmm8
7881 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm10[4,5,6,7]
7882 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm8, %zmm18, %zmm28
7883 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm8
7884 ; AVX512DQ-NEXT:    vpermt2d %zmm7, %zmm13, %zmm8
7885 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm10
7886 ; AVX512DQ-NEXT:    vpermt2d %zmm31, %zmm13, %zmm10
7887 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
7888 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm8
7889 ; AVX512DQ-NEXT:    vpermt2d %zmm30, %zmm13, %zmm8
7890 ; AVX512DQ-NEXT:    vpermi2d %zmm29, %zmm0, %zmm13
7891 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
7892 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm17
7893 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [1,9,17,25,1,9,17,25,1,9,17,25,1,9,17,25]
7894 ; AVX512DQ-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
7895 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, %zmm10
7896 ; AVX512DQ-NEXT:    vpermt2d %zmm16, %zmm8, %zmm10
7897 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, %zmm13
7898 ; AVX512DQ-NEXT:    vpermt2d %zmm14, %zmm8, %zmm13
7899 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, %zmm13 {%k1}
7900 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm10
7901 ; AVX512DQ-NEXT:    vpermt2d %zmm12, %zmm8, %zmm10
7902 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm4
7903 ; AVX512DQ-NEXT:    vpermt2d %zmm9, %zmm8, %zmm4
7904 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm10[4,5,6,7]
7905 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm4, %zmm13, %zmm18
7906 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm4
7907 ; AVX512DQ-NEXT:    vpermt2d %zmm7, %zmm8, %zmm4
7908 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm10
7909 ; AVX512DQ-NEXT:    vpermt2d %zmm31, %zmm8, %zmm10
7910 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm10 {%k1}
7911 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm4
7912 ; AVX512DQ-NEXT:    vpermt2d %zmm30, %zmm8, %zmm4
7913 ; AVX512DQ-NEXT:    vpermi2d %zmm29, %zmm0, %zmm8
7914 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm4 = ymm8[0,1,2,3],ymm4[4,5,6,7]
7915 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm4, %zmm10, %zmm19
7916 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [2,10,18,26,2,10,18,26,2,10,18,26,2,10,18,26]
7917 ; AVX512DQ-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
7918 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, %zmm8
7919 ; AVX512DQ-NEXT:    vpermt2d %zmm16, %zmm4, %zmm8
7920 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, %zmm10
7921 ; AVX512DQ-NEXT:    vpermt2d %zmm14, %zmm4, %zmm10
7922 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
7923 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm8
7924 ; AVX512DQ-NEXT:    vpermt2d %zmm12, %zmm4, %zmm8
7925 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm13
7926 ; AVX512DQ-NEXT:    vpermt2d %zmm9, %zmm4, %zmm13
7927 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
7928 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm20
7929 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm8
7930 ; AVX512DQ-NEXT:    vpermt2d %zmm7, %zmm4, %zmm8
7931 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm10
7932 ; AVX512DQ-NEXT:    vpermt2d %zmm31, %zmm4, %zmm10
7933 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
7934 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm8
7935 ; AVX512DQ-NEXT:    vpermt2d %zmm30, %zmm4, %zmm8
7936 ; AVX512DQ-NEXT:    vpermi2d %zmm29, %zmm0, %zmm4
7937 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm8[4,5,6,7]
7938 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm4, %zmm10, %zmm21
7939 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [3,11,19,27,3,11,19,27,3,11,19,27,3,11,19,27]
7940 ; AVX512DQ-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
7941 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, %zmm8
7942 ; AVX512DQ-NEXT:    vpermt2d %zmm16, %zmm4, %zmm8
7943 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, %zmm10
7944 ; AVX512DQ-NEXT:    vpermt2d %zmm14, %zmm4, %zmm10
7945 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
7946 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm8
7947 ; AVX512DQ-NEXT:    vpermt2d %zmm12, %zmm4, %zmm8
7948 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm13
7949 ; AVX512DQ-NEXT:    vpermt2d %zmm9, %zmm4, %zmm13
7950 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
7951 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm22
7952 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm8
7953 ; AVX512DQ-NEXT:    vpermt2d %zmm7, %zmm4, %zmm8
7954 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm10
7955 ; AVX512DQ-NEXT:    vpermt2d %zmm31, %zmm4, %zmm10
7956 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
7957 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm8
7958 ; AVX512DQ-NEXT:    vpermt2d %zmm30, %zmm4, %zmm8
7959 ; AVX512DQ-NEXT:    vpermi2d %zmm29, %zmm0, %zmm4
7960 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm8[4,5,6,7]
7961 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm4, %zmm10, %zmm23
7962 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [4,12,20,28,4,12,20,28,4,12,20,28,4,12,20,28]
7963 ; AVX512DQ-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
7964 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, %zmm8
7965 ; AVX512DQ-NEXT:    vpermt2d %zmm16, %zmm4, %zmm8
7966 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, %zmm10
7967 ; AVX512DQ-NEXT:    vpermt2d %zmm14, %zmm4, %zmm10
7968 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
7969 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm8
7970 ; AVX512DQ-NEXT:    vpermt2d %zmm12, %zmm4, %zmm8
7971 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm13
7972 ; AVX512DQ-NEXT:    vpermt2d %zmm9, %zmm4, %zmm13
7973 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
7974 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm24
7975 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm8
7976 ; AVX512DQ-NEXT:    vpermt2d %zmm7, %zmm4, %zmm8
7977 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm10
7978 ; AVX512DQ-NEXT:    vpermt2d %zmm31, %zmm4, %zmm10
7979 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
7980 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm8
7981 ; AVX512DQ-NEXT:    vpermt2d %zmm30, %zmm4, %zmm8
7982 ; AVX512DQ-NEXT:    vpermi2d %zmm29, %zmm0, %zmm4
7983 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm8[4,5,6,7]
7984 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm4, %zmm10, %zmm25
7985 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [5,13,21,29,5,13,21,29,5,13,21,29,5,13,21,29]
7986 ; AVX512DQ-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
7987 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, %zmm8
7988 ; AVX512DQ-NEXT:    vpermt2d %zmm16, %zmm4, %zmm8
7989 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, %zmm10
7990 ; AVX512DQ-NEXT:    vpermt2d %zmm14, %zmm4, %zmm10
7991 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
7992 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm8
7993 ; AVX512DQ-NEXT:    vpermt2d %zmm12, %zmm4, %zmm8
7994 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm13
7995 ; AVX512DQ-NEXT:    vpermt2d %zmm9, %zmm4, %zmm13
7996 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
7997 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm26
7998 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm8
7999 ; AVX512DQ-NEXT:    vpermt2d %zmm7, %zmm4, %zmm8
8000 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm10
8001 ; AVX512DQ-NEXT:    vpermt2d %zmm31, %zmm4, %zmm10
8002 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
8003 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm8
8004 ; AVX512DQ-NEXT:    vpermt2d %zmm30, %zmm4, %zmm8
8005 ; AVX512DQ-NEXT:    vpermi2d %zmm29, %zmm0, %zmm4
8006 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm8[4,5,6,7]
8007 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm4, %zmm10, %zmm27
8008 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [6,14,22,30,6,14,22,30,6,14,22,30,6,14,22,30]
8009 ; AVX512DQ-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8010 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, %zmm8
8011 ; AVX512DQ-NEXT:    vpermt2d %zmm16, %zmm4, %zmm8
8012 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, %zmm10
8013 ; AVX512DQ-NEXT:    vpermt2d %zmm14, %zmm4, %zmm10
8014 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
8015 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm8
8016 ; AVX512DQ-NEXT:    vpermt2d %zmm12, %zmm4, %zmm8
8017 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm13
8018 ; AVX512DQ-NEXT:    vpermt2d %zmm9, %zmm4, %zmm13
8019 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
8020 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm8
8021 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm10
8022 ; AVX512DQ-NEXT:    vpermt2d %zmm7, %zmm4, %zmm10
8023 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm13
8024 ; AVX512DQ-NEXT:    vpermt2d %zmm31, %zmm4, %zmm13
8025 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, %zmm13 {%k1}
8026 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm10
8027 ; AVX512DQ-NEXT:    vpermt2d %zmm30, %zmm4, %zmm10
8028 ; AVX512DQ-NEXT:    vpermi2d %zmm29, %zmm0, %zmm4
8029 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm10[4,5,6,7]
8030 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm4, %zmm13, %zmm4
8031 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [7,15,23,31,7,15,23,31,7,15,23,31,7,15,23,31]
8032 ; AVX512DQ-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8033 ; AVX512DQ-NEXT:    vpermt2d %zmm16, %zmm10, %zmm15
8034 ; AVX512DQ-NEXT:    vpermt2d %zmm14, %zmm10, %zmm11
8035 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, %zmm11 {%k1}
8036 ; AVX512DQ-NEXT:    vpermt2d %zmm12, %zmm10, %zmm2
8037 ; AVX512DQ-NEXT:    vpermt2d %zmm9, %zmm10, %zmm5
8038 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm2 = ymm5[0,1,2,3],ymm2[4,5,6,7]
8039 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm2, %zmm11, %zmm2
8040 ; AVX512DQ-NEXT:    vpermt2d %zmm7, %zmm10, %zmm6
8041 ; AVX512DQ-NEXT:    vpermt2d %zmm31, %zmm10, %zmm3
8042 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm3 {%k1}
8043 ; AVX512DQ-NEXT:    vpermt2d %zmm30, %zmm10, %zmm1
8044 ; AVX512DQ-NEXT:    vpermt2d %zmm29, %zmm10, %zmm0
8045 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
8046 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm0, %zmm3, %zmm0
8047 ; AVX512DQ-NEXT:    vmovdqa64 %zmm28, 64(%rsi)
8048 ; AVX512DQ-NEXT:    vmovdqa64 %zmm17, (%rsi)
8049 ; AVX512DQ-NEXT:    vmovdqa64 %zmm18, 64(%rdx)
8050 ; AVX512DQ-NEXT:    vmovdqa64 %zmm19, (%rdx)
8051 ; AVX512DQ-NEXT:    vmovdqa64 %zmm20, 64(%rcx)
8052 ; AVX512DQ-NEXT:    vmovdqa64 %zmm21, (%rcx)
8053 ; AVX512DQ-NEXT:    vmovdqa64 %zmm22, 64(%r8)
8054 ; AVX512DQ-NEXT:    vmovdqa64 %zmm23, (%r8)
8055 ; AVX512DQ-NEXT:    vmovdqa64 %zmm24, 64(%r9)
8056 ; AVX512DQ-NEXT:    vmovdqa64 %zmm25, (%r9)
8057 ; AVX512DQ-NEXT:    vmovdqa64 %zmm26, 64(%r11)
8058 ; AVX512DQ-NEXT:    vmovdqa64 %zmm27, (%r11)
8059 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, 64(%r10)
8060 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, (%r10)
8061 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, 64(%rax)
8062 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, (%rax)
8063 ; AVX512DQ-NEXT:    vzeroupper
8064 ; AVX512DQ-NEXT:    retq
8066 ; AVX512DQ-FCP-LABEL: load_i32_stride8_vf32:
8067 ; AVX512DQ-FCP:       # %bb.0:
8068 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
8069 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
8070 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11
8071 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rdi), %zmm0
8072 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm29
8073 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm1
8074 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm30
8075 ; AVX512DQ-FCP-NEXT:    vmovdqa64 320(%rdi), %zmm31
8076 ; AVX512DQ-FCP-NEXT:    vmovdqa64 256(%rdi), %zmm3
8077 ; AVX512DQ-FCP-NEXT:    vmovdqa64 448(%rdi), %zmm7
8078 ; AVX512DQ-FCP-NEXT:    vmovdqa64 384(%rdi), %zmm6
8079 ; AVX512DQ-FCP-NEXT:    vmovdqa64 576(%rdi), %zmm9
8080 ; AVX512DQ-FCP-NEXT:    vmovdqa64 512(%rdi), %zmm5
8081 ; AVX512DQ-FCP-NEXT:    vmovdqa64 704(%rdi), %zmm12
8082 ; AVX512DQ-FCP-NEXT:    vmovdqa64 640(%rdi), %zmm2
8083 ; AVX512DQ-FCP-NEXT:    vmovdqa64 832(%rdi), %zmm14
8084 ; AVX512DQ-FCP-NEXT:    vmovdqa64 768(%rdi), %zmm11
8085 ; AVX512DQ-FCP-NEXT:    vmovdqa64 960(%rdi), %zmm16
8086 ; AVX512DQ-FCP-NEXT:    vmovdqa64 896(%rdi), %zmm15
8087 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm13 = [0,8,16,24,0,8,16,24,0,8,16,24,0,8,16,24]
8088 ; AVX512DQ-FCP-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8089 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm15, %zmm17
8090 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm16, %zmm13, %zmm17
8091 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm18
8092 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm14, %zmm13, %zmm18
8093 ; AVX512DQ-FCP-NEXT:    movb $-64, %dil
8094 ; AVX512DQ-FCP-NEXT:    kmovw %edi, %k1
8095 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm17, %zmm18 {%k1}
8096 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm10
8097 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm12, %zmm13, %zmm10
8098 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm8
8099 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm9, %zmm13, %zmm8
8100 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm10[4,5,6,7]
8101 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm8, %zmm18, %zmm28
8102 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm8
8103 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm7, %zmm13, %zmm8
8104 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm10
8105 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm31, %zmm13, %zmm10
8106 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
8107 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm8
8108 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm30, %zmm13, %zmm8
8109 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm29, %zmm0, %zmm13
8110 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
8111 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm17
8112 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [1,9,17,25,1,9,17,25,1,9,17,25,1,9,17,25]
8113 ; AVX512DQ-FCP-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8114 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm15, %zmm10
8115 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm16, %zmm8, %zmm10
8116 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm13
8117 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm14, %zmm8, %zmm13
8118 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, %zmm13 {%k1}
8119 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm10
8120 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm12, %zmm8, %zmm10
8121 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm4
8122 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm9, %zmm8, %zmm4
8123 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm10[4,5,6,7]
8124 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm13, %zmm18
8125 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm4
8126 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm7, %zmm8, %zmm4
8127 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm10
8128 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm31, %zmm8, %zmm10
8129 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, %zmm10 {%k1}
8130 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4
8131 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm30, %zmm8, %zmm4
8132 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm29, %zmm0, %zmm8
8133 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm8[0,1,2,3],ymm4[4,5,6,7]
8134 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm10, %zmm19
8135 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [2,10,18,26,2,10,18,26,2,10,18,26,2,10,18,26]
8136 ; AVX512DQ-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8137 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm15, %zmm8
8138 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm16, %zmm4, %zmm8
8139 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm10
8140 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm14, %zmm4, %zmm10
8141 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
8142 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm8
8143 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm12, %zmm4, %zmm8
8144 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm13
8145 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm9, %zmm4, %zmm13
8146 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
8147 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm20
8148 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm8
8149 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm7, %zmm4, %zmm8
8150 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm10
8151 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm31, %zmm4, %zmm10
8152 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
8153 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm8
8154 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm30, %zmm4, %zmm8
8155 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm29, %zmm0, %zmm4
8156 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm8[4,5,6,7]
8157 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm10, %zmm21
8158 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [3,11,19,27,3,11,19,27,3,11,19,27,3,11,19,27]
8159 ; AVX512DQ-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8160 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm15, %zmm8
8161 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm16, %zmm4, %zmm8
8162 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm10
8163 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm14, %zmm4, %zmm10
8164 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
8165 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm8
8166 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm12, %zmm4, %zmm8
8167 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm13
8168 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm9, %zmm4, %zmm13
8169 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
8170 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm22
8171 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm8
8172 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm7, %zmm4, %zmm8
8173 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm10
8174 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm31, %zmm4, %zmm10
8175 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
8176 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm8
8177 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm30, %zmm4, %zmm8
8178 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm29, %zmm0, %zmm4
8179 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm8[4,5,6,7]
8180 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm10, %zmm23
8181 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [4,12,20,28,4,12,20,28,4,12,20,28,4,12,20,28]
8182 ; AVX512DQ-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8183 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm15, %zmm8
8184 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm16, %zmm4, %zmm8
8185 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm10
8186 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm14, %zmm4, %zmm10
8187 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
8188 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm8
8189 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm12, %zmm4, %zmm8
8190 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm13
8191 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm9, %zmm4, %zmm13
8192 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
8193 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm24
8194 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm8
8195 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm7, %zmm4, %zmm8
8196 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm10
8197 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm31, %zmm4, %zmm10
8198 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
8199 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm8
8200 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm30, %zmm4, %zmm8
8201 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm29, %zmm0, %zmm4
8202 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm8[4,5,6,7]
8203 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm10, %zmm25
8204 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [5,13,21,29,5,13,21,29,5,13,21,29,5,13,21,29]
8205 ; AVX512DQ-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8206 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm15, %zmm8
8207 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm16, %zmm4, %zmm8
8208 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm10
8209 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm14, %zmm4, %zmm10
8210 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
8211 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm8
8212 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm12, %zmm4, %zmm8
8213 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm13
8214 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm9, %zmm4, %zmm13
8215 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
8216 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm26
8217 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm8
8218 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm7, %zmm4, %zmm8
8219 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm10
8220 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm31, %zmm4, %zmm10
8221 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
8222 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm8
8223 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm30, %zmm4, %zmm8
8224 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm29, %zmm0, %zmm4
8225 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm8[4,5,6,7]
8226 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm10, %zmm27
8227 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [6,14,22,30,6,14,22,30,6,14,22,30,6,14,22,30]
8228 ; AVX512DQ-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8229 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm15, %zmm8
8230 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm16, %zmm4, %zmm8
8231 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm10
8232 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm14, %zmm4, %zmm10
8233 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
8234 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm8
8235 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm12, %zmm4, %zmm8
8236 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm13
8237 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm9, %zmm4, %zmm13
8238 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
8239 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm8
8240 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm10
8241 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm7, %zmm4, %zmm10
8242 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm13
8243 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm31, %zmm4, %zmm13
8244 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, %zmm13 {%k1}
8245 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm10
8246 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm30, %zmm4, %zmm10
8247 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm29, %zmm0, %zmm4
8248 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm10[4,5,6,7]
8249 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm13, %zmm4
8250 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [7,15,23,31,7,15,23,31,7,15,23,31,7,15,23,31]
8251 ; AVX512DQ-FCP-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8252 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm16, %zmm10, %zmm15
8253 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm14, %zmm10, %zmm11
8254 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm15, %zmm11 {%k1}
8255 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm12, %zmm10, %zmm2
8256 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm9, %zmm10, %zmm5
8257 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm2 = ymm5[0,1,2,3],ymm2[4,5,6,7]
8258 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm2, %zmm11, %zmm2
8259 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm7, %zmm10, %zmm6
8260 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm31, %zmm10, %zmm3
8261 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm3 {%k1}
8262 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm30, %zmm10, %zmm1
8263 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm29, %zmm10, %zmm0
8264 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
8265 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm3, %zmm0
8266 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm28, 64(%rsi)
8267 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm17, (%rsi)
8268 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm18, 64(%rdx)
8269 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm19, (%rdx)
8270 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm20, 64(%rcx)
8271 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm21, (%rcx)
8272 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm22, 64(%r8)
8273 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm23, (%r8)
8274 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm24, 64(%r9)
8275 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm25, (%r9)
8276 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm26, 64(%r11)
8277 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm27, (%r11)
8278 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, 64(%r10)
8279 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, (%r10)
8280 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, 64(%rax)
8281 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, (%rax)
8282 ; AVX512DQ-FCP-NEXT:    vzeroupper
8283 ; AVX512DQ-FCP-NEXT:    retq
8285 ; AVX512BW-LABEL: load_i32_stride8_vf32:
8286 ; AVX512BW:       # %bb.0:
8287 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
8288 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %r10
8289 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %r11
8290 ; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm0
8291 ; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %zmm29
8292 ; AVX512BW-NEXT:    vmovdqa64 128(%rdi), %zmm1
8293 ; AVX512BW-NEXT:    vmovdqa64 192(%rdi), %zmm30
8294 ; AVX512BW-NEXT:    vmovdqa64 320(%rdi), %zmm31
8295 ; AVX512BW-NEXT:    vmovdqa64 256(%rdi), %zmm3
8296 ; AVX512BW-NEXT:    vmovdqa64 448(%rdi), %zmm7
8297 ; AVX512BW-NEXT:    vmovdqa64 384(%rdi), %zmm6
8298 ; AVX512BW-NEXT:    vmovdqa64 576(%rdi), %zmm9
8299 ; AVX512BW-NEXT:    vmovdqa64 512(%rdi), %zmm5
8300 ; AVX512BW-NEXT:    vmovdqa64 704(%rdi), %zmm12
8301 ; AVX512BW-NEXT:    vmovdqa64 640(%rdi), %zmm2
8302 ; AVX512BW-NEXT:    vmovdqa64 832(%rdi), %zmm14
8303 ; AVX512BW-NEXT:    vmovdqa64 768(%rdi), %zmm11
8304 ; AVX512BW-NEXT:    vmovdqa64 960(%rdi), %zmm16
8305 ; AVX512BW-NEXT:    vmovdqa64 896(%rdi), %zmm15
8306 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm13 = [0,8,16,24,0,8,16,24,0,8,16,24,0,8,16,24]
8307 ; AVX512BW-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8308 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm17
8309 ; AVX512BW-NEXT:    vpermt2d %zmm16, %zmm13, %zmm17
8310 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm18
8311 ; AVX512BW-NEXT:    vpermt2d %zmm14, %zmm13, %zmm18
8312 ; AVX512BW-NEXT:    movb $-64, %dil
8313 ; AVX512BW-NEXT:    kmovd %edi, %k1
8314 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm18 {%k1}
8315 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm10
8316 ; AVX512BW-NEXT:    vpermt2d %zmm12, %zmm13, %zmm10
8317 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm8
8318 ; AVX512BW-NEXT:    vpermt2d %zmm9, %zmm13, %zmm8
8319 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm10[4,5,6,7]
8320 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm18, %zmm28
8321 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm8
8322 ; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm13, %zmm8
8323 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm10
8324 ; AVX512BW-NEXT:    vpermt2d %zmm31, %zmm13, %zmm10
8325 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
8326 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm8
8327 ; AVX512BW-NEXT:    vpermt2d %zmm30, %zmm13, %zmm8
8328 ; AVX512BW-NEXT:    vpermi2d %zmm29, %zmm0, %zmm13
8329 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
8330 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm17
8331 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [1,9,17,25,1,9,17,25,1,9,17,25,1,9,17,25]
8332 ; AVX512BW-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8333 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm10
8334 ; AVX512BW-NEXT:    vpermt2d %zmm16, %zmm8, %zmm10
8335 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm13
8336 ; AVX512BW-NEXT:    vpermt2d %zmm14, %zmm8, %zmm13
8337 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm13 {%k1}
8338 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm10
8339 ; AVX512BW-NEXT:    vpermt2d %zmm12, %zmm8, %zmm10
8340 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm4
8341 ; AVX512BW-NEXT:    vpermt2d %zmm9, %zmm8, %zmm4
8342 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm10[4,5,6,7]
8343 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm4, %zmm13, %zmm18
8344 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm4
8345 ; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm8, %zmm4
8346 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm10
8347 ; AVX512BW-NEXT:    vpermt2d %zmm31, %zmm8, %zmm10
8348 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm10 {%k1}
8349 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm4
8350 ; AVX512BW-NEXT:    vpermt2d %zmm30, %zmm8, %zmm4
8351 ; AVX512BW-NEXT:    vpermi2d %zmm29, %zmm0, %zmm8
8352 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm4 = ymm8[0,1,2,3],ymm4[4,5,6,7]
8353 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm4, %zmm10, %zmm19
8354 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [2,10,18,26,2,10,18,26,2,10,18,26,2,10,18,26]
8355 ; AVX512BW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8356 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm8
8357 ; AVX512BW-NEXT:    vpermt2d %zmm16, %zmm4, %zmm8
8358 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm10
8359 ; AVX512BW-NEXT:    vpermt2d %zmm14, %zmm4, %zmm10
8360 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
8361 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm8
8362 ; AVX512BW-NEXT:    vpermt2d %zmm12, %zmm4, %zmm8
8363 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm13
8364 ; AVX512BW-NEXT:    vpermt2d %zmm9, %zmm4, %zmm13
8365 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
8366 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm20
8367 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm8
8368 ; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm4, %zmm8
8369 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm10
8370 ; AVX512BW-NEXT:    vpermt2d %zmm31, %zmm4, %zmm10
8371 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
8372 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm8
8373 ; AVX512BW-NEXT:    vpermt2d %zmm30, %zmm4, %zmm8
8374 ; AVX512BW-NEXT:    vpermi2d %zmm29, %zmm0, %zmm4
8375 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm8[4,5,6,7]
8376 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm4, %zmm10, %zmm21
8377 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [3,11,19,27,3,11,19,27,3,11,19,27,3,11,19,27]
8378 ; AVX512BW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8379 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm8
8380 ; AVX512BW-NEXT:    vpermt2d %zmm16, %zmm4, %zmm8
8381 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm10
8382 ; AVX512BW-NEXT:    vpermt2d %zmm14, %zmm4, %zmm10
8383 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
8384 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm8
8385 ; AVX512BW-NEXT:    vpermt2d %zmm12, %zmm4, %zmm8
8386 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm13
8387 ; AVX512BW-NEXT:    vpermt2d %zmm9, %zmm4, %zmm13
8388 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
8389 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm22
8390 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm8
8391 ; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm4, %zmm8
8392 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm10
8393 ; AVX512BW-NEXT:    vpermt2d %zmm31, %zmm4, %zmm10
8394 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
8395 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm8
8396 ; AVX512BW-NEXT:    vpermt2d %zmm30, %zmm4, %zmm8
8397 ; AVX512BW-NEXT:    vpermi2d %zmm29, %zmm0, %zmm4
8398 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm8[4,5,6,7]
8399 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm4, %zmm10, %zmm23
8400 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [4,12,20,28,4,12,20,28,4,12,20,28,4,12,20,28]
8401 ; AVX512BW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8402 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm8
8403 ; AVX512BW-NEXT:    vpermt2d %zmm16, %zmm4, %zmm8
8404 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm10
8405 ; AVX512BW-NEXT:    vpermt2d %zmm14, %zmm4, %zmm10
8406 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
8407 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm8
8408 ; AVX512BW-NEXT:    vpermt2d %zmm12, %zmm4, %zmm8
8409 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm13
8410 ; AVX512BW-NEXT:    vpermt2d %zmm9, %zmm4, %zmm13
8411 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
8412 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm24
8413 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm8
8414 ; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm4, %zmm8
8415 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm10
8416 ; AVX512BW-NEXT:    vpermt2d %zmm31, %zmm4, %zmm10
8417 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
8418 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm8
8419 ; AVX512BW-NEXT:    vpermt2d %zmm30, %zmm4, %zmm8
8420 ; AVX512BW-NEXT:    vpermi2d %zmm29, %zmm0, %zmm4
8421 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm8[4,5,6,7]
8422 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm4, %zmm10, %zmm25
8423 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [5,13,21,29,5,13,21,29,5,13,21,29,5,13,21,29]
8424 ; AVX512BW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8425 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm8
8426 ; AVX512BW-NEXT:    vpermt2d %zmm16, %zmm4, %zmm8
8427 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm10
8428 ; AVX512BW-NEXT:    vpermt2d %zmm14, %zmm4, %zmm10
8429 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
8430 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm8
8431 ; AVX512BW-NEXT:    vpermt2d %zmm12, %zmm4, %zmm8
8432 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm13
8433 ; AVX512BW-NEXT:    vpermt2d %zmm9, %zmm4, %zmm13
8434 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
8435 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm26
8436 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm8
8437 ; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm4, %zmm8
8438 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm10
8439 ; AVX512BW-NEXT:    vpermt2d %zmm31, %zmm4, %zmm10
8440 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
8441 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm8
8442 ; AVX512BW-NEXT:    vpermt2d %zmm30, %zmm4, %zmm8
8443 ; AVX512BW-NEXT:    vpermi2d %zmm29, %zmm0, %zmm4
8444 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm8[4,5,6,7]
8445 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm4, %zmm10, %zmm27
8446 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [6,14,22,30,6,14,22,30,6,14,22,30,6,14,22,30]
8447 ; AVX512BW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8448 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm8
8449 ; AVX512BW-NEXT:    vpermt2d %zmm16, %zmm4, %zmm8
8450 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm10
8451 ; AVX512BW-NEXT:    vpermt2d %zmm14, %zmm4, %zmm10
8452 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
8453 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm8
8454 ; AVX512BW-NEXT:    vpermt2d %zmm12, %zmm4, %zmm8
8455 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm13
8456 ; AVX512BW-NEXT:    vpermt2d %zmm9, %zmm4, %zmm13
8457 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
8458 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm8
8459 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm10
8460 ; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm4, %zmm10
8461 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm13
8462 ; AVX512BW-NEXT:    vpermt2d %zmm31, %zmm4, %zmm13
8463 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm13 {%k1}
8464 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm10
8465 ; AVX512BW-NEXT:    vpermt2d %zmm30, %zmm4, %zmm10
8466 ; AVX512BW-NEXT:    vpermi2d %zmm29, %zmm0, %zmm4
8467 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm10[4,5,6,7]
8468 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm4, %zmm13, %zmm4
8469 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [7,15,23,31,7,15,23,31,7,15,23,31,7,15,23,31]
8470 ; AVX512BW-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8471 ; AVX512BW-NEXT:    vpermt2d %zmm16, %zmm10, %zmm15
8472 ; AVX512BW-NEXT:    vpermt2d %zmm14, %zmm10, %zmm11
8473 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm11 {%k1}
8474 ; AVX512BW-NEXT:    vpermt2d %zmm12, %zmm10, %zmm2
8475 ; AVX512BW-NEXT:    vpermt2d %zmm9, %zmm10, %zmm5
8476 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm5[0,1,2,3],ymm2[4,5,6,7]
8477 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm2, %zmm11, %zmm2
8478 ; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm10, %zmm6
8479 ; AVX512BW-NEXT:    vpermt2d %zmm31, %zmm10, %zmm3
8480 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm3 {%k1}
8481 ; AVX512BW-NEXT:    vpermt2d %zmm30, %zmm10, %zmm1
8482 ; AVX512BW-NEXT:    vpermt2d %zmm29, %zmm10, %zmm0
8483 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
8484 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm3, %zmm0
8485 ; AVX512BW-NEXT:    vmovdqa64 %zmm28, 64(%rsi)
8486 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, (%rsi)
8487 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, 64(%rdx)
8488 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, (%rdx)
8489 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, 64(%rcx)
8490 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, (%rcx)
8491 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, 64(%r8)
8492 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, (%r8)
8493 ; AVX512BW-NEXT:    vmovdqa64 %zmm24, 64(%r9)
8494 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, (%r9)
8495 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, 64(%r11)
8496 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, (%r11)
8497 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, 64(%r10)
8498 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, (%r10)
8499 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, 64(%rax)
8500 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, (%rax)
8501 ; AVX512BW-NEXT:    vzeroupper
8502 ; AVX512BW-NEXT:    retq
8504 ; AVX512BW-FCP-LABEL: load_i32_stride8_vf32:
8505 ; AVX512BW-FCP:       # %bb.0:
8506 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
8507 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
8508 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11
8509 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm0
8510 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm29
8511 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm1
8512 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm30
8513 ; AVX512BW-FCP-NEXT:    vmovdqa64 320(%rdi), %zmm31
8514 ; AVX512BW-FCP-NEXT:    vmovdqa64 256(%rdi), %zmm3
8515 ; AVX512BW-FCP-NEXT:    vmovdqa64 448(%rdi), %zmm7
8516 ; AVX512BW-FCP-NEXT:    vmovdqa64 384(%rdi), %zmm6
8517 ; AVX512BW-FCP-NEXT:    vmovdqa64 576(%rdi), %zmm9
8518 ; AVX512BW-FCP-NEXT:    vmovdqa64 512(%rdi), %zmm5
8519 ; AVX512BW-FCP-NEXT:    vmovdqa64 704(%rdi), %zmm12
8520 ; AVX512BW-FCP-NEXT:    vmovdqa64 640(%rdi), %zmm2
8521 ; AVX512BW-FCP-NEXT:    vmovdqa64 832(%rdi), %zmm14
8522 ; AVX512BW-FCP-NEXT:    vmovdqa64 768(%rdi), %zmm11
8523 ; AVX512BW-FCP-NEXT:    vmovdqa64 960(%rdi), %zmm16
8524 ; AVX512BW-FCP-NEXT:    vmovdqa64 896(%rdi), %zmm15
8525 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm13 = [0,8,16,24,0,8,16,24,0,8,16,24,0,8,16,24]
8526 ; AVX512BW-FCP-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8527 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm17
8528 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm16, %zmm13, %zmm17
8529 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm18
8530 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm14, %zmm13, %zmm18
8531 ; AVX512BW-FCP-NEXT:    movb $-64, %dil
8532 ; AVX512BW-FCP-NEXT:    kmovd %edi, %k1
8533 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm17, %zmm18 {%k1}
8534 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm10
8535 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm12, %zmm13, %zmm10
8536 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm8
8537 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm9, %zmm13, %zmm8
8538 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm10[4,5,6,7]
8539 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm8, %zmm18, %zmm28
8540 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm8
8541 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm7, %zmm13, %zmm8
8542 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm10
8543 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm31, %zmm13, %zmm10
8544 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
8545 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm8
8546 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm30, %zmm13, %zmm8
8547 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm29, %zmm0, %zmm13
8548 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
8549 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm17
8550 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [1,9,17,25,1,9,17,25,1,9,17,25,1,9,17,25]
8551 ; AVX512BW-FCP-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8552 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm10
8553 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm16, %zmm8, %zmm10
8554 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm13
8555 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm14, %zmm8, %zmm13
8556 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm13 {%k1}
8557 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm10
8558 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm12, %zmm8, %zmm10
8559 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm4
8560 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm9, %zmm8, %zmm4
8561 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm10[4,5,6,7]
8562 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm13, %zmm18
8563 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm4
8564 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm7, %zmm8, %zmm4
8565 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm10
8566 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm31, %zmm8, %zmm10
8567 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm10 {%k1}
8568 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4
8569 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm30, %zmm8, %zmm4
8570 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm29, %zmm0, %zmm8
8571 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm8[0,1,2,3],ymm4[4,5,6,7]
8572 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm10, %zmm19
8573 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [2,10,18,26,2,10,18,26,2,10,18,26,2,10,18,26]
8574 ; AVX512BW-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8575 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm8
8576 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm16, %zmm4, %zmm8
8577 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm10
8578 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm14, %zmm4, %zmm10
8579 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
8580 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm8
8581 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm12, %zmm4, %zmm8
8582 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm13
8583 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm9, %zmm4, %zmm13
8584 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
8585 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm20
8586 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm8
8587 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm7, %zmm4, %zmm8
8588 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm10
8589 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm31, %zmm4, %zmm10
8590 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
8591 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm8
8592 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm30, %zmm4, %zmm8
8593 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm29, %zmm0, %zmm4
8594 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm8[4,5,6,7]
8595 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm10, %zmm21
8596 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [3,11,19,27,3,11,19,27,3,11,19,27,3,11,19,27]
8597 ; AVX512BW-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8598 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm8
8599 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm16, %zmm4, %zmm8
8600 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm10
8601 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm14, %zmm4, %zmm10
8602 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
8603 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm8
8604 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm12, %zmm4, %zmm8
8605 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm13
8606 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm9, %zmm4, %zmm13
8607 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
8608 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm22
8609 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm8
8610 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm7, %zmm4, %zmm8
8611 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm10
8612 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm31, %zmm4, %zmm10
8613 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
8614 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm8
8615 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm30, %zmm4, %zmm8
8616 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm29, %zmm0, %zmm4
8617 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm8[4,5,6,7]
8618 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm10, %zmm23
8619 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [4,12,20,28,4,12,20,28,4,12,20,28,4,12,20,28]
8620 ; AVX512BW-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8621 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm8
8622 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm16, %zmm4, %zmm8
8623 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm10
8624 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm14, %zmm4, %zmm10
8625 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
8626 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm8
8627 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm12, %zmm4, %zmm8
8628 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm13
8629 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm9, %zmm4, %zmm13
8630 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
8631 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm24
8632 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm8
8633 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm7, %zmm4, %zmm8
8634 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm10
8635 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm31, %zmm4, %zmm10
8636 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
8637 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm8
8638 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm30, %zmm4, %zmm8
8639 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm29, %zmm0, %zmm4
8640 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm8[4,5,6,7]
8641 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm10, %zmm25
8642 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [5,13,21,29,5,13,21,29,5,13,21,29,5,13,21,29]
8643 ; AVX512BW-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8644 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm8
8645 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm16, %zmm4, %zmm8
8646 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm10
8647 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm14, %zmm4, %zmm10
8648 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
8649 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm8
8650 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm12, %zmm4, %zmm8
8651 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm13
8652 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm9, %zmm4, %zmm13
8653 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
8654 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm26
8655 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm8
8656 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm7, %zmm4, %zmm8
8657 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm10
8658 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm31, %zmm4, %zmm10
8659 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
8660 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm8
8661 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm30, %zmm4, %zmm8
8662 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm29, %zmm0, %zmm4
8663 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm8[4,5,6,7]
8664 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm10, %zmm27
8665 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [6,14,22,30,6,14,22,30,6,14,22,30,6,14,22,30]
8666 ; AVX512BW-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8667 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm8
8668 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm16, %zmm4, %zmm8
8669 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm10
8670 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm14, %zmm4, %zmm10
8671 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
8672 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm8
8673 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm12, %zmm4, %zmm8
8674 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm13
8675 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm9, %zmm4, %zmm13
8676 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
8677 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm8
8678 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm10
8679 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm7, %zmm4, %zmm10
8680 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm13
8681 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm31, %zmm4, %zmm13
8682 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm13 {%k1}
8683 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm10
8684 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm30, %zmm4, %zmm10
8685 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm29, %zmm0, %zmm4
8686 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm10[4,5,6,7]
8687 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm13, %zmm4
8688 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [7,15,23,31,7,15,23,31,7,15,23,31,7,15,23,31]
8689 ; AVX512BW-FCP-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8690 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm16, %zmm10, %zmm15
8691 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm14, %zmm10, %zmm11
8692 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm11 {%k1}
8693 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm12, %zmm10, %zmm2
8694 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm9, %zmm10, %zmm5
8695 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm2 = ymm5[0,1,2,3],ymm2[4,5,6,7]
8696 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm2, %zmm11, %zmm2
8697 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm7, %zmm10, %zmm6
8698 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm31, %zmm10, %zmm3
8699 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm3 {%k1}
8700 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm30, %zmm10, %zmm1
8701 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm29, %zmm10, %zmm0
8702 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
8703 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm3, %zmm0
8704 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm28, 64(%rsi)
8705 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm17, (%rsi)
8706 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm18, 64(%rdx)
8707 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm19, (%rdx)
8708 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm20, 64(%rcx)
8709 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm21, (%rcx)
8710 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm22, 64(%r8)
8711 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm23, (%r8)
8712 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm24, 64(%r9)
8713 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm25, (%r9)
8714 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm26, 64(%r11)
8715 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm27, (%r11)
8716 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, 64(%r10)
8717 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, (%r10)
8718 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, 64(%rax)
8719 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, (%rax)
8720 ; AVX512BW-FCP-NEXT:    vzeroupper
8721 ; AVX512BW-FCP-NEXT:    retq
8723 ; AVX512DQ-BW-LABEL: load_i32_stride8_vf32:
8724 ; AVX512DQ-BW:       # %bb.0:
8725 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
8726 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %r10
8727 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %r11
8728 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rdi), %zmm0
8729 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rdi), %zmm29
8730 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%rdi), %zmm1
8731 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%rdi), %zmm30
8732 ; AVX512DQ-BW-NEXT:    vmovdqa64 320(%rdi), %zmm31
8733 ; AVX512DQ-BW-NEXT:    vmovdqa64 256(%rdi), %zmm3
8734 ; AVX512DQ-BW-NEXT:    vmovdqa64 448(%rdi), %zmm7
8735 ; AVX512DQ-BW-NEXT:    vmovdqa64 384(%rdi), %zmm6
8736 ; AVX512DQ-BW-NEXT:    vmovdqa64 576(%rdi), %zmm9
8737 ; AVX512DQ-BW-NEXT:    vmovdqa64 512(%rdi), %zmm5
8738 ; AVX512DQ-BW-NEXT:    vmovdqa64 704(%rdi), %zmm12
8739 ; AVX512DQ-BW-NEXT:    vmovdqa64 640(%rdi), %zmm2
8740 ; AVX512DQ-BW-NEXT:    vmovdqa64 832(%rdi), %zmm14
8741 ; AVX512DQ-BW-NEXT:    vmovdqa64 768(%rdi), %zmm11
8742 ; AVX512DQ-BW-NEXT:    vmovdqa64 960(%rdi), %zmm16
8743 ; AVX512DQ-BW-NEXT:    vmovdqa64 896(%rdi), %zmm15
8744 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm13 = [0,8,16,24,0,8,16,24,0,8,16,24,0,8,16,24]
8745 ; AVX512DQ-BW-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8746 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, %zmm17
8747 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm16, %zmm13, %zmm17
8748 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, %zmm18
8749 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm14, %zmm13, %zmm18
8750 ; AVX512DQ-BW-NEXT:    movb $-64, %dil
8751 ; AVX512DQ-BW-NEXT:    kmovd %edi, %k1
8752 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm17, %zmm18 {%k1}
8753 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm10
8754 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm12, %zmm13, %zmm10
8755 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm8
8756 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm9, %zmm13, %zmm8
8757 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm10[4,5,6,7]
8758 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm18, %zmm28
8759 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm8
8760 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm7, %zmm13, %zmm8
8761 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm10
8762 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm31, %zmm13, %zmm10
8763 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
8764 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm8
8765 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm30, %zmm13, %zmm8
8766 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm29, %zmm0, %zmm13
8767 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
8768 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm17
8769 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [1,9,17,25,1,9,17,25,1,9,17,25,1,9,17,25]
8770 ; AVX512DQ-BW-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8771 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, %zmm10
8772 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm16, %zmm8, %zmm10
8773 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, %zmm13
8774 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm14, %zmm8, %zmm13
8775 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, %zmm13 {%k1}
8776 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm10
8777 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm12, %zmm8, %zmm10
8778 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm4
8779 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm9, %zmm8, %zmm4
8780 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm10[4,5,6,7]
8781 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm4, %zmm13, %zmm18
8782 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm4
8783 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm7, %zmm8, %zmm4
8784 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm10
8785 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm31, %zmm8, %zmm10
8786 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm10 {%k1}
8787 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm4
8788 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm30, %zmm8, %zmm4
8789 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm29, %zmm0, %zmm8
8790 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm4 = ymm8[0,1,2,3],ymm4[4,5,6,7]
8791 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm4, %zmm10, %zmm19
8792 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [2,10,18,26,2,10,18,26,2,10,18,26,2,10,18,26]
8793 ; AVX512DQ-BW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8794 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, %zmm8
8795 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm16, %zmm4, %zmm8
8796 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, %zmm10
8797 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm14, %zmm4, %zmm10
8798 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
8799 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm8
8800 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm12, %zmm4, %zmm8
8801 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm13
8802 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm9, %zmm4, %zmm13
8803 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
8804 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm20
8805 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm8
8806 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm7, %zmm4, %zmm8
8807 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm10
8808 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm31, %zmm4, %zmm10
8809 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
8810 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm8
8811 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm30, %zmm4, %zmm8
8812 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm29, %zmm0, %zmm4
8813 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm8[4,5,6,7]
8814 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm4, %zmm10, %zmm21
8815 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [3,11,19,27,3,11,19,27,3,11,19,27,3,11,19,27]
8816 ; AVX512DQ-BW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8817 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, %zmm8
8818 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm16, %zmm4, %zmm8
8819 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, %zmm10
8820 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm14, %zmm4, %zmm10
8821 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
8822 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm8
8823 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm12, %zmm4, %zmm8
8824 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm13
8825 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm9, %zmm4, %zmm13
8826 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
8827 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm22
8828 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm8
8829 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm7, %zmm4, %zmm8
8830 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm10
8831 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm31, %zmm4, %zmm10
8832 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
8833 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm8
8834 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm30, %zmm4, %zmm8
8835 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm29, %zmm0, %zmm4
8836 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm8[4,5,6,7]
8837 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm4, %zmm10, %zmm23
8838 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [4,12,20,28,4,12,20,28,4,12,20,28,4,12,20,28]
8839 ; AVX512DQ-BW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8840 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, %zmm8
8841 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm16, %zmm4, %zmm8
8842 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, %zmm10
8843 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm14, %zmm4, %zmm10
8844 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
8845 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm8
8846 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm12, %zmm4, %zmm8
8847 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm13
8848 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm9, %zmm4, %zmm13
8849 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
8850 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm24
8851 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm8
8852 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm7, %zmm4, %zmm8
8853 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm10
8854 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm31, %zmm4, %zmm10
8855 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
8856 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm8
8857 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm30, %zmm4, %zmm8
8858 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm29, %zmm0, %zmm4
8859 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm8[4,5,6,7]
8860 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm4, %zmm10, %zmm25
8861 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [5,13,21,29,5,13,21,29,5,13,21,29,5,13,21,29]
8862 ; AVX512DQ-BW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8863 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, %zmm8
8864 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm16, %zmm4, %zmm8
8865 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, %zmm10
8866 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm14, %zmm4, %zmm10
8867 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
8868 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm8
8869 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm12, %zmm4, %zmm8
8870 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm13
8871 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm9, %zmm4, %zmm13
8872 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
8873 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm26
8874 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm8
8875 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm7, %zmm4, %zmm8
8876 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm10
8877 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm31, %zmm4, %zmm10
8878 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
8879 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm8
8880 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm30, %zmm4, %zmm8
8881 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm29, %zmm0, %zmm4
8882 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm8[4,5,6,7]
8883 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm4, %zmm10, %zmm27
8884 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [6,14,22,30,6,14,22,30,6,14,22,30,6,14,22,30]
8885 ; AVX512DQ-BW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8886 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, %zmm8
8887 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm16, %zmm4, %zmm8
8888 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, %zmm10
8889 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm14, %zmm4, %zmm10
8890 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
8891 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm8
8892 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm12, %zmm4, %zmm8
8893 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm13
8894 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm9, %zmm4, %zmm13
8895 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
8896 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm8
8897 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm10
8898 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm7, %zmm4, %zmm10
8899 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm13
8900 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm31, %zmm4, %zmm13
8901 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, %zmm13 {%k1}
8902 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm10
8903 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm30, %zmm4, %zmm10
8904 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm29, %zmm0, %zmm4
8905 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm10[4,5,6,7]
8906 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm4, %zmm13, %zmm4
8907 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [7,15,23,31,7,15,23,31,7,15,23,31,7,15,23,31]
8908 ; AVX512DQ-BW-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8909 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm16, %zmm10, %zmm15
8910 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm14, %zmm10, %zmm11
8911 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, %zmm11 {%k1}
8912 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm12, %zmm10, %zmm2
8913 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm9, %zmm10, %zmm5
8914 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm5[0,1,2,3],ymm2[4,5,6,7]
8915 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm2, %zmm11, %zmm2
8916 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm7, %zmm10, %zmm6
8917 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm31, %zmm10, %zmm3
8918 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm3 {%k1}
8919 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm30, %zmm10, %zmm1
8920 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm29, %zmm10, %zmm0
8921 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
8922 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm3, %zmm0
8923 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm28, 64(%rsi)
8924 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm17, (%rsi)
8925 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm18, 64(%rdx)
8926 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm19, (%rdx)
8927 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm20, 64(%rcx)
8928 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm21, (%rcx)
8929 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm22, 64(%r8)
8930 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm23, (%r8)
8931 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm24, 64(%r9)
8932 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm25, (%r9)
8933 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm26, 64(%r11)
8934 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm27, (%r11)
8935 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, 64(%r10)
8936 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, (%r10)
8937 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, 64(%rax)
8938 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, (%rax)
8939 ; AVX512DQ-BW-NEXT:    vzeroupper
8940 ; AVX512DQ-BW-NEXT:    retq
8942 ; AVX512DQ-BW-FCP-LABEL: load_i32_stride8_vf32:
8943 ; AVX512DQ-BW-FCP:       # %bb.0:
8944 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
8945 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
8946 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r11
8947 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm0
8948 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm29
8949 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm1
8950 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm30
8951 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 320(%rdi), %zmm31
8952 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 256(%rdi), %zmm3
8953 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 448(%rdi), %zmm7
8954 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 384(%rdi), %zmm6
8955 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 576(%rdi), %zmm9
8956 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 512(%rdi), %zmm5
8957 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 704(%rdi), %zmm12
8958 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 640(%rdi), %zmm2
8959 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 832(%rdi), %zmm14
8960 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 768(%rdi), %zmm11
8961 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 960(%rdi), %zmm16
8962 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 896(%rdi), %zmm15
8963 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm13 = [0,8,16,24,0,8,16,24,0,8,16,24,0,8,16,24]
8964 ; AVX512DQ-BW-FCP-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8965 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm17
8966 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm16, %zmm13, %zmm17
8967 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm18
8968 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm14, %zmm13, %zmm18
8969 ; AVX512DQ-BW-FCP-NEXT:    movb $-64, %dil
8970 ; AVX512DQ-BW-FCP-NEXT:    kmovd %edi, %k1
8971 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm17, %zmm18 {%k1}
8972 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm10
8973 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm12, %zmm13, %zmm10
8974 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm8
8975 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm9, %zmm13, %zmm8
8976 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm10[4,5,6,7]
8977 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm8, %zmm18, %zmm28
8978 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm8
8979 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm7, %zmm13, %zmm8
8980 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm10
8981 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm31, %zmm13, %zmm10
8982 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
8983 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm8
8984 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm30, %zmm13, %zmm8
8985 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm29, %zmm0, %zmm13
8986 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
8987 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm17
8988 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [1,9,17,25,1,9,17,25,1,9,17,25,1,9,17,25]
8989 ; AVX512DQ-BW-FCP-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8990 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm10
8991 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm16, %zmm8, %zmm10
8992 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm13
8993 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm14, %zmm8, %zmm13
8994 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm13 {%k1}
8995 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm10
8996 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm12, %zmm8, %zmm10
8997 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm4
8998 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm9, %zmm8, %zmm4
8999 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm10[4,5,6,7]
9000 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm13, %zmm18
9001 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm4
9002 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm7, %zmm8, %zmm4
9003 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm10
9004 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm31, %zmm8, %zmm10
9005 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm10 {%k1}
9006 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4
9007 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm30, %zmm8, %zmm4
9008 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm29, %zmm0, %zmm8
9009 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm8[0,1,2,3],ymm4[4,5,6,7]
9010 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm10, %zmm19
9011 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [2,10,18,26,2,10,18,26,2,10,18,26,2,10,18,26]
9012 ; AVX512DQ-BW-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9013 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm8
9014 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm16, %zmm4, %zmm8
9015 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm10
9016 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm14, %zmm4, %zmm10
9017 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
9018 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm8
9019 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm12, %zmm4, %zmm8
9020 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm13
9021 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm9, %zmm4, %zmm13
9022 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
9023 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm20
9024 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm8
9025 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm7, %zmm4, %zmm8
9026 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm10
9027 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm31, %zmm4, %zmm10
9028 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
9029 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm8
9030 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm30, %zmm4, %zmm8
9031 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm29, %zmm0, %zmm4
9032 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm8[4,5,6,7]
9033 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm10, %zmm21
9034 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [3,11,19,27,3,11,19,27,3,11,19,27,3,11,19,27]
9035 ; AVX512DQ-BW-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9036 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm8
9037 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm16, %zmm4, %zmm8
9038 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm10
9039 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm14, %zmm4, %zmm10
9040 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
9041 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm8
9042 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm12, %zmm4, %zmm8
9043 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm13
9044 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm9, %zmm4, %zmm13
9045 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
9046 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm22
9047 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm8
9048 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm7, %zmm4, %zmm8
9049 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm10
9050 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm31, %zmm4, %zmm10
9051 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
9052 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm8
9053 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm30, %zmm4, %zmm8
9054 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm29, %zmm0, %zmm4
9055 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm8[4,5,6,7]
9056 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm10, %zmm23
9057 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [4,12,20,28,4,12,20,28,4,12,20,28,4,12,20,28]
9058 ; AVX512DQ-BW-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9059 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm8
9060 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm16, %zmm4, %zmm8
9061 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm10
9062 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm14, %zmm4, %zmm10
9063 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
9064 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm8
9065 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm12, %zmm4, %zmm8
9066 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm13
9067 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm9, %zmm4, %zmm13
9068 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
9069 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm24
9070 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm8
9071 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm7, %zmm4, %zmm8
9072 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm10
9073 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm31, %zmm4, %zmm10
9074 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
9075 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm8
9076 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm30, %zmm4, %zmm8
9077 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm29, %zmm0, %zmm4
9078 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm8[4,5,6,7]
9079 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm10, %zmm25
9080 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [5,13,21,29,5,13,21,29,5,13,21,29,5,13,21,29]
9081 ; AVX512DQ-BW-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9082 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm8
9083 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm16, %zmm4, %zmm8
9084 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm10
9085 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm14, %zmm4, %zmm10
9086 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
9087 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm8
9088 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm12, %zmm4, %zmm8
9089 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm13
9090 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm9, %zmm4, %zmm13
9091 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
9092 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm26
9093 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm8
9094 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm7, %zmm4, %zmm8
9095 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm10
9096 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm31, %zmm4, %zmm10
9097 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
9098 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm8
9099 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm30, %zmm4, %zmm8
9100 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm29, %zmm0, %zmm4
9101 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm8[4,5,6,7]
9102 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm10, %zmm27
9103 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [6,14,22,30,6,14,22,30,6,14,22,30,6,14,22,30]
9104 ; AVX512DQ-BW-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9105 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm8
9106 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm16, %zmm4, %zmm8
9107 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm10
9108 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm14, %zmm4, %zmm10
9109 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm10 {%k1}
9110 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm8
9111 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm12, %zmm4, %zmm8
9112 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm13
9113 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm9, %zmm4, %zmm13
9114 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
9115 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm8
9116 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm10
9117 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm7, %zmm4, %zmm10
9118 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm13
9119 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm31, %zmm4, %zmm13
9120 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm13 {%k1}
9121 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm10
9122 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm30, %zmm4, %zmm10
9123 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm29, %zmm0, %zmm4
9124 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm10[4,5,6,7]
9125 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm13, %zmm4
9126 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [7,15,23,31,7,15,23,31,7,15,23,31,7,15,23,31]
9127 ; AVX512DQ-BW-FCP-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9128 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm16, %zmm10, %zmm15
9129 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm14, %zmm10, %zmm11
9130 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm11 {%k1}
9131 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm12, %zmm10, %zmm2
9132 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm9, %zmm10, %zmm5
9133 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm2 = ymm5[0,1,2,3],ymm2[4,5,6,7]
9134 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm2, %zmm11, %zmm2
9135 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm7, %zmm10, %zmm6
9136 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm31, %zmm10, %zmm3
9137 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm3 {%k1}
9138 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm30, %zmm10, %zmm1
9139 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm29, %zmm10, %zmm0
9140 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
9141 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm3, %zmm0
9142 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm28, 64(%rsi)
9143 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm17, (%rsi)
9144 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm18, 64(%rdx)
9145 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm19, (%rdx)
9146 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm20, 64(%rcx)
9147 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm21, (%rcx)
9148 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm22, 64(%r8)
9149 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm23, (%r8)
9150 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm24, 64(%r9)
9151 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm25, (%r9)
9152 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm26, 64(%r11)
9153 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm27, (%r11)
9154 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, 64(%r10)
9155 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, (%r10)
9156 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, 64(%rax)
9157 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, (%rax)
9158 ; AVX512DQ-BW-FCP-NEXT:    vzeroupper
9159 ; AVX512DQ-BW-FCP-NEXT:    retq
9160   %wide.vec = load <256 x i32>, ptr %in.vec, align 64
9161   %strided.vec0 = shufflevector <256 x i32> %wide.vec, <256 x i32> poison, <32 x i32> <i32 0, i32 8, i32 16, i32 24, i32 32, i32 40, i32 48, i32 56, i32 64, i32 72, i32 80, i32 88, i32 96, i32 104, i32 112, i32 120, i32 128, i32 136, i32 144, i32 152, i32 160, i32 168, i32 176, i32 184, i32 192, i32 200, i32 208, i32 216, i32 224, i32 232, i32 240, i32 248>
9162   %strided.vec1 = shufflevector <256 x i32> %wide.vec, <256 x i32> poison, <32 x i32> <i32 1, i32 9, i32 17, i32 25, i32 33, i32 41, i32 49, i32 57, i32 65, i32 73, i32 81, i32 89, i32 97, i32 105, i32 113, i32 121, i32 129, i32 137, i32 145, i32 153, i32 161, i32 169, i32 177, i32 185, i32 193, i32 201, i32 209, i32 217, i32 225, i32 233, i32 241, i32 249>
9163   %strided.vec2 = shufflevector <256 x i32> %wide.vec, <256 x i32> poison, <32 x i32> <i32 2, i32 10, i32 18, i32 26, i32 34, i32 42, i32 50, i32 58, i32 66, i32 74, i32 82, i32 90, i32 98, i32 106, i32 114, i32 122, i32 130, i32 138, i32 146, i32 154, i32 162, i32 170, i32 178, i32 186, i32 194, i32 202, i32 210, i32 218, i32 226, i32 234, i32 242, i32 250>
9164   %strided.vec3 = shufflevector <256 x i32> %wide.vec, <256 x i32> poison, <32 x i32> <i32 3, i32 11, i32 19, i32 27, i32 35, i32 43, i32 51, i32 59, i32 67, i32 75, i32 83, i32 91, i32 99, i32 107, i32 115, i32 123, i32 131, i32 139, i32 147, i32 155, i32 163, i32 171, i32 179, i32 187, i32 195, i32 203, i32 211, i32 219, i32 227, i32 235, i32 243, i32 251>
9165   %strided.vec4 = shufflevector <256 x i32> %wide.vec, <256 x i32> poison, <32 x i32> <i32 4, i32 12, i32 20, i32 28, i32 36, i32 44, i32 52, i32 60, i32 68, i32 76, i32 84, i32 92, i32 100, i32 108, i32 116, i32 124, i32 132, i32 140, i32 148, i32 156, i32 164, i32 172, i32 180, i32 188, i32 196, i32 204, i32 212, i32 220, i32 228, i32 236, i32 244, i32 252>
9166   %strided.vec5 = shufflevector <256 x i32> %wide.vec, <256 x i32> poison, <32 x i32> <i32 5, i32 13, i32 21, i32 29, i32 37, i32 45, i32 53, i32 61, i32 69, i32 77, i32 85, i32 93, i32 101, i32 109, i32 117, i32 125, i32 133, i32 141, i32 149, i32 157, i32 165, i32 173, i32 181, i32 189, i32 197, i32 205, i32 213, i32 221, i32 229, i32 237, i32 245, i32 253>
9167   %strided.vec6 = shufflevector <256 x i32> %wide.vec, <256 x i32> poison, <32 x i32> <i32 6, i32 14, i32 22, i32 30, i32 38, i32 46, i32 54, i32 62, i32 70, i32 78, i32 86, i32 94, i32 102, i32 110, i32 118, i32 126, i32 134, i32 142, i32 150, i32 158, i32 166, i32 174, i32 182, i32 190, i32 198, i32 206, i32 214, i32 222, i32 230, i32 238, i32 246, i32 254>
9168   %strided.vec7 = shufflevector <256 x i32> %wide.vec, <256 x i32> poison, <32 x i32> <i32 7, i32 15, i32 23, i32 31, i32 39, i32 47, i32 55, i32 63, i32 71, i32 79, i32 87, i32 95, i32 103, i32 111, i32 119, i32 127, i32 135, i32 143, i32 151, i32 159, i32 167, i32 175, i32 183, i32 191, i32 199, i32 207, i32 215, i32 223, i32 231, i32 239, i32 247, i32 255>
9169   store <32 x i32> %strided.vec0, ptr %out.vec0, align 64
9170   store <32 x i32> %strided.vec1, ptr %out.vec1, align 64
9171   store <32 x i32> %strided.vec2, ptr %out.vec2, align 64
9172   store <32 x i32> %strided.vec3, ptr %out.vec3, align 64
9173   store <32 x i32> %strided.vec4, ptr %out.vec4, align 64
9174   store <32 x i32> %strided.vec5, ptr %out.vec5, align 64
9175   store <32 x i32> %strided.vec6, ptr %out.vec6, align 64
9176   store <32 x i32> %strided.vec7, ptr %out.vec7, align 64
9177   ret void
9180 define void @load_i32_stride8_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, ptr %out.vec7) nounwind {
9181 ; SSE-LABEL: load_i32_stride8_vf64:
9182 ; SSE:       # %bb.0:
9183 ; SSE-NEXT:    subq $2232, %rsp # imm = 0x8B8
9184 ; SSE-NEXT:    movaps 288(%rdi), %xmm4
9185 ; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9186 ; SSE-NEXT:    movaps 352(%rdi), %xmm5
9187 ; SSE-NEXT:    movaps %xmm5, (%rsp) # 16-byte Spill
9188 ; SSE-NEXT:    movaps 320(%rdi), %xmm6
9189 ; SSE-NEXT:    movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9190 ; SSE-NEXT:    movaps 416(%rdi), %xmm7
9191 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9192 ; SSE-NEXT:    movaps 384(%rdi), %xmm8
9193 ; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9194 ; SSE-NEXT:    movaps 480(%rdi), %xmm9
9195 ; SSE-NEXT:    movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9196 ; SSE-NEXT:    movaps 448(%rdi), %xmm3
9197 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9198 ; SSE-NEXT:    movaps 160(%rdi), %xmm10
9199 ; SSE-NEXT:    movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9200 ; SSE-NEXT:    movaps 128(%rdi), %xmm1
9201 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9202 ; SSE-NEXT:    movaps 224(%rdi), %xmm2
9203 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9204 ; SSE-NEXT:    movaps 192(%rdi), %xmm0
9205 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9206 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
9207 ; SSE-NEXT:    movaps %xmm1, %xmm2
9208 ; SSE-NEXT:    unpcklps {{.*#+}} xmm2 = xmm2[0],xmm10[0],xmm2[1],xmm10[1]
9209 ; SSE-NEXT:    movaps %xmm2, %xmm1
9210 ; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
9211 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9212 ; SSE-NEXT:    movaps %xmm3, %xmm1
9213 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm9[0],xmm1[1],xmm9[1]
9214 ; SSE-NEXT:    movaps %xmm8, %xmm3
9215 ; SSE-NEXT:    unpcklps {{.*#+}} xmm3 = xmm3[0],xmm7[0],xmm3[1],xmm7[1]
9216 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
9217 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9218 ; SSE-NEXT:    movaps %xmm3, %xmm0
9219 ; SSE-NEXT:    movlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]
9220 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9221 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm3 = xmm3[1],xmm1[1]
9222 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9223 ; SSE-NEXT:    movaps %xmm6, %xmm0
9224 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm5[0],xmm0[1],xmm5[1]
9225 ; SSE-NEXT:    movaps 256(%rdi), %xmm2
9226 ; SSE-NEXT:    movaps %xmm2, %xmm1
9227 ; SSE-NEXT:    movaps %xmm2, %xmm3
9228 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm4[0],xmm1[1],xmm4[1]
9229 ; SSE-NEXT:    movaps %xmm1, %xmm2
9230 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
9231 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9232 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
9233 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9234 ; SSE-NEXT:    movaps 736(%rdi), %xmm9
9235 ; SSE-NEXT:    movaps 704(%rdi), %xmm0
9236 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9237 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm9[0],xmm0[1],xmm9[1]
9238 ; SSE-NEXT:    movaps 672(%rdi), %xmm2
9239 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9240 ; SSE-NEXT:    movaps 640(%rdi), %xmm1
9241 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9242 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
9243 ; SSE-NEXT:    movaps %xmm1, %xmm2
9244 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
9245 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9246 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
9247 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9248 ; SSE-NEXT:    movaps 608(%rdi), %xmm2
9249 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9250 ; SSE-NEXT:    movaps 576(%rdi), %xmm1
9251 ; SSE-NEXT:    movaps %xmm1, %xmm0
9252 ; SSE-NEXT:    movaps %xmm1, %xmm4
9253 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
9254 ; SSE-NEXT:    movaps 544(%rdi), %xmm15
9255 ; SSE-NEXT:    movaps 512(%rdi), %xmm2
9256 ; SSE-NEXT:    movaps %xmm2, %xmm1
9257 ; SSE-NEXT:    movaps %xmm2, %xmm6
9258 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm15[0],xmm1[1],xmm15[1]
9259 ; SSE-NEXT:    movaps %xmm1, %xmm2
9260 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
9261 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9262 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
9263 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9264 ; SSE-NEXT:    movaps 992(%rdi), %xmm1
9265 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9266 ; SSE-NEXT:    movaps 960(%rdi), %xmm0
9267 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9268 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
9269 ; SSE-NEXT:    movaps 928(%rdi), %xmm2
9270 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9271 ; SSE-NEXT:    movaps 896(%rdi), %xmm1
9272 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9273 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
9274 ; SSE-NEXT:    movaps %xmm1, %xmm2
9275 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
9276 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9277 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
9278 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9279 ; SSE-NEXT:    movaps 864(%rdi), %xmm1
9280 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9281 ; SSE-NEXT:    movaps 832(%rdi), %xmm0
9282 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9283 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
9284 ; SSE-NEXT:    movaps 800(%rdi), %xmm14
9285 ; SSE-NEXT:    movaps 768(%rdi), %xmm2
9286 ; SSE-NEXT:    movaps %xmm2, %xmm1
9287 ; SSE-NEXT:    movaps %xmm2, %xmm8
9288 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm14[0],xmm1[1],xmm14[1]
9289 ; SSE-NEXT:    movaps %xmm1, %xmm2
9290 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
9291 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9292 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
9293 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9294 ; SSE-NEXT:    movaps 1248(%rdi), %xmm1
9295 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9296 ; SSE-NEXT:    movaps 1216(%rdi), %xmm0
9297 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9298 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
9299 ; SSE-NEXT:    movaps 1184(%rdi), %xmm2
9300 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9301 ; SSE-NEXT:    movaps 1152(%rdi), %xmm1
9302 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9303 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
9304 ; SSE-NEXT:    movaps %xmm1, %xmm2
9305 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
9306 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9307 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
9308 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9309 ; SSE-NEXT:    movaps 1120(%rdi), %xmm2
9310 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9311 ; SSE-NEXT:    movaps 1088(%rdi), %xmm1
9312 ; SSE-NEXT:    movaps %xmm1, %xmm0
9313 ; SSE-NEXT:    movaps %xmm1, %xmm7
9314 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
9315 ; SSE-NEXT:    movaps 1056(%rdi), %xmm2
9316 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9317 ; SSE-NEXT:    movaps 1024(%rdi), %xmm1
9318 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9319 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
9320 ; SSE-NEXT:    movaps %xmm1, %xmm2
9321 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
9322 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9323 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
9324 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9325 ; SSE-NEXT:    movaps 1504(%rdi), %xmm1
9326 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9327 ; SSE-NEXT:    movaps 1472(%rdi), %xmm0
9328 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9329 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
9330 ; SSE-NEXT:    movaps 1440(%rdi), %xmm2
9331 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9332 ; SSE-NEXT:    movaps 1408(%rdi), %xmm1
9333 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9334 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
9335 ; SSE-NEXT:    movaps %xmm1, %xmm2
9336 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
9337 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9338 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
9339 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9340 ; SSE-NEXT:    movaps 1376(%rdi), %xmm1
9341 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9342 ; SSE-NEXT:    movaps 1344(%rdi), %xmm0
9343 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9344 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
9345 ; SSE-NEXT:    movaps 1312(%rdi), %xmm2
9346 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9347 ; SSE-NEXT:    movaps 1280(%rdi), %xmm1
9348 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9349 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
9350 ; SSE-NEXT:    movaps %xmm1, %xmm2
9351 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
9352 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9353 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
9354 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9355 ; SSE-NEXT:    movaps 1760(%rdi), %xmm1
9356 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9357 ; SSE-NEXT:    movaps 1728(%rdi), %xmm0
9358 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9359 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
9360 ; SSE-NEXT:    movaps 1696(%rdi), %xmm2
9361 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9362 ; SSE-NEXT:    movaps 1664(%rdi), %xmm1
9363 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9364 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
9365 ; SSE-NEXT:    movaps %xmm1, %xmm2
9366 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
9367 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9368 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
9369 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9370 ; SSE-NEXT:    movaps 1632(%rdi), %xmm1
9371 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9372 ; SSE-NEXT:    movaps 1600(%rdi), %xmm0
9373 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9374 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
9375 ; SSE-NEXT:    movaps 1568(%rdi), %xmm5
9376 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9377 ; SSE-NEXT:    movaps 1536(%rdi), %xmm2
9378 ; SSE-NEXT:    movaps %xmm2, %xmm1
9379 ; SSE-NEXT:    movaps %xmm2, %xmm13
9380 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm5[0],xmm1[1],xmm5[1]
9381 ; SSE-NEXT:    movaps %xmm1, %xmm2
9382 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
9383 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9384 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
9385 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9386 ; SSE-NEXT:    movaps 2016(%rdi), %xmm1
9387 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9388 ; SSE-NEXT:    movaps 1984(%rdi), %xmm0
9389 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9390 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
9391 ; SSE-NEXT:    movaps 1952(%rdi), %xmm2
9392 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9393 ; SSE-NEXT:    movaps 1920(%rdi), %xmm1
9394 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9395 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
9396 ; SSE-NEXT:    movaps %xmm1, %xmm2
9397 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
9398 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9399 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
9400 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9401 ; SSE-NEXT:    movaps 1888(%rdi), %xmm1
9402 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9403 ; SSE-NEXT:    movaps 1856(%rdi), %xmm0
9404 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9405 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
9406 ; SSE-NEXT:    movaps 1824(%rdi), %xmm2
9407 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9408 ; SSE-NEXT:    movaps 1792(%rdi), %xmm1
9409 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9410 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
9411 ; SSE-NEXT:    movaps %xmm1, %xmm5
9412 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm0[0]
9413 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9414 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
9415 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9416 ; SSE-NEXT:    movaps 96(%rdi), %xmm2
9417 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9418 ; SSE-NEXT:    movaps 64(%rdi), %xmm12
9419 ; SSE-NEXT:    movaps %xmm12, %xmm0
9420 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
9421 ; SSE-NEXT:    movaps (%rdi), %xmm10
9422 ; SSE-NEXT:    movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9423 ; SSE-NEXT:    movaps 32(%rdi), %xmm1
9424 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9425 ; SSE-NEXT:    unpcklps {{.*#+}} xmm10 = xmm10[0],xmm1[0],xmm10[1],xmm1[1]
9426 ; SSE-NEXT:    movaps %xmm10, %xmm5
9427 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm0[0]
9428 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9429 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm10 = xmm10[1],xmm0[1]
9430 ; SSE-NEXT:    movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9431 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload
9432 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Folded Reload
9433 ; SSE-NEXT:    # xmm11 = xmm11[2],mem[2],xmm11[3],mem[3]
9434 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
9435 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload
9436 ; SSE-NEXT:    # xmm5 = xmm5[2],mem[2],xmm5[3],mem[3]
9437 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
9438 ; SSE-NEXT:    unpckhps (%rsp), %xmm10 # 16-byte Folded Reload
9439 ; SSE-NEXT:    # xmm10 = xmm10[2],mem[2],xmm10[3],mem[3]
9440 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload
9441 ; SSE-NEXT:    # xmm3 = xmm3[2],mem[2],xmm3[3],mem[3]
9442 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9443 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
9444 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload
9445 ; SSE-NEXT:    # xmm3 = xmm3[2],mem[2],xmm3[3],mem[3]
9446 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9447 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
9448 ; SSE-NEXT:    # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]
9449 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
9450 ; SSE-NEXT:    # xmm4 = xmm4[2],mem[2],xmm4[3],mem[3]
9451 ; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9452 ; SSE-NEXT:    unpckhps {{.*#+}} xmm6 = xmm6[2],xmm15[2],xmm6[3],xmm15[3]
9453 ; SSE-NEXT:    movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9454 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
9455 ; SSE-NEXT:    unpckhps {{.*#+}} xmm15 = xmm15[2],xmm9[2],xmm15[3],xmm9[3]
9456 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
9457 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
9458 ; SSE-NEXT:    # xmm1 = xmm1[2],mem[2],xmm1[3],mem[3]
9459 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
9460 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
9461 ; SSE-NEXT:    # xmm2 = xmm2[2],mem[2],xmm2[3],mem[3]
9462 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9463 ; SSE-NEXT:    unpckhps {{.*#+}} xmm8 = xmm8[2],xmm14[2],xmm8[3],xmm14[3]
9464 ; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9465 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
9466 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Folded Reload
9467 ; SSE-NEXT:    # xmm14 = xmm14[2],mem[2],xmm14[3],mem[3]
9468 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload
9469 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload
9470 ; SSE-NEXT:    # xmm9 = xmm9[2],mem[2],xmm9[3],mem[3]
9471 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload
9472 ; SSE-NEXT:    # xmm7 = xmm7[2],mem[2],xmm7[3],mem[3]
9473 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9474 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
9475 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
9476 ; SSE-NEXT:    # xmm2 = xmm2[2],mem[2],xmm2[3],mem[3]
9477 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9478 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
9479 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload
9480 ; SSE-NEXT:    # xmm8 = xmm8[2],mem[2],xmm8[3],mem[3]
9481 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
9482 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload
9483 ; SSE-NEXT:    # xmm6 = xmm6[2],mem[2],xmm6[3],mem[3]
9484 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
9485 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
9486 ; SSE-NEXT:    # xmm2 = xmm2[2],mem[2],xmm2[3],mem[3]
9487 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9488 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
9489 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
9490 ; SSE-NEXT:    # xmm2 = xmm2[2],mem[2],xmm2[3],mem[3]
9491 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9492 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
9493 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload
9494 ; SSE-NEXT:    # xmm7 = xmm7[2],mem[2],xmm7[3],mem[3]
9495 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9496 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
9497 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
9498 ; SSE-NEXT:    # xmm4 = xmm4[2],mem[2],xmm4[3],mem[3]
9499 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
9500 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
9501 ; SSE-NEXT:    # xmm2 = xmm2[2],mem[2],xmm2[3],mem[3]
9502 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9503 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Folded Reload
9504 ; SSE-NEXT:    # xmm13 = xmm13[2],mem[2],xmm13[3],mem[3]
9505 ; SSE-NEXT:    movaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9506 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
9507 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
9508 ; SSE-NEXT:    # xmm2 = xmm2[2],mem[2],xmm2[3],mem[3]
9509 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
9510 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload
9511 ; SSE-NEXT:    # xmm7 = xmm7[2],mem[2],xmm7[3],mem[3]
9512 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9513 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
9514 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload
9515 ; SSE-NEXT:    # xmm7 = xmm7[2],mem[2],xmm7[3],mem[3]
9516 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9517 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
9518 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload
9519 ; SSE-NEXT:    # xmm7 = xmm7[2],mem[2],xmm7[3],mem[3]
9520 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9521 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
9522 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload
9523 ; SSE-NEXT:    # xmm7 = xmm7[2],mem[2],xmm7[3],mem[3]
9524 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9525 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload
9526 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Folded Reload
9527 ; SSE-NEXT:    # xmm13 = xmm13[2],mem[2],xmm13[3],mem[3]
9528 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Folded Reload
9529 ; SSE-NEXT:    # xmm12 = xmm12[2],mem[2],xmm12[3],mem[3]
9530 ; SSE-NEXT:    movaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9531 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload
9532 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Folded Reload
9533 ; SSE-NEXT:    # xmm12 = xmm12[2],mem[2],xmm12[3],mem[3]
9534 ; SSE-NEXT:    movaps %xmm5, %xmm7
9535 ; SSE-NEXT:    movlhps {{.*#+}} xmm7 = xmm7[0],xmm11[0]
9536 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9537 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm11[1]
9538 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9539 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
9540 ; SSE-NEXT:    movaps %xmm5, %xmm7
9541 ; SSE-NEXT:    movlhps {{.*#+}} xmm7 = xmm7[0],xmm10[0]
9542 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9543 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm10[1]
9544 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9545 ; SSE-NEXT:    movaps %xmm0, %xmm5
9546 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm3[0]
9547 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9548 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm3[1]
9549 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9550 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9551 ; SSE-NEXT:    movaps %xmm0, %xmm5
9552 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
9553 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm3[0]
9554 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9555 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm3[1]
9556 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9557 ; SSE-NEXT:    movaps %xmm1, %xmm5
9558 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm15[0]
9559 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9560 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm15[1]
9561 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9562 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9563 ; SSE-NEXT:    movaps %xmm0, %xmm5
9564 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
9565 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm1[0]
9566 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9567 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]
9568 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9569 ; SSE-NEXT:    movaps %xmm9, %xmm5
9570 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm14[0]
9571 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9572 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm9 = xmm9[1],xmm14[1]
9573 ; SSE-NEXT:    movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9574 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9575 ; SSE-NEXT:    movaps %xmm0, %xmm5
9576 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
9577 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm1[0]
9578 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9579 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]
9580 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9581 ; SSE-NEXT:    movaps %xmm6, %xmm5
9582 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm8[0]
9583 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9584 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm6 = xmm6[1],xmm8[1]
9585 ; SSE-NEXT:    movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9586 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9587 ; SSE-NEXT:    movaps %xmm0, %xmm5
9588 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
9589 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm1[0]
9590 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9591 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]
9592 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9593 ; SSE-NEXT:    movaps %xmm4, %xmm5
9594 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
9595 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm1[0]
9596 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9597 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm1[1]
9598 ; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9599 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9600 ; SSE-NEXT:    movaps %xmm0, %xmm5
9601 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
9602 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm1[0]
9603 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9604 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]
9605 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9606 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9607 ; SSE-NEXT:    movaps %xmm0, %xmm4
9608 ; SSE-NEXT:    movlhps {{.*#+}} xmm4 = xmm4[0],xmm2[0]
9609 ; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9610 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
9611 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9612 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
9613 ; SSE-NEXT:    movaps %xmm6, %xmm0
9614 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
9615 ; SSE-NEXT:    movlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]
9616 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9617 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm6 = xmm6[1],xmm1[1]
9618 ; SSE-NEXT:    movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9619 ; SSE-NEXT:    movaps %xmm13, %xmm0
9620 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
9621 ; SSE-NEXT:    movlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]
9622 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9623 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm13 = xmm13[1],xmm1[1]
9624 ; SSE-NEXT:    movaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9625 ; SSE-NEXT:    movaps %xmm12, %xmm0
9626 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
9627 ; SSE-NEXT:    movlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]
9628 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9629 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm12 = xmm12[1],xmm1[1]
9630 ; SSE-NEXT:    movaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9631 ; SSE-NEXT:    movaps 240(%rdi), %xmm2
9632 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9633 ; SSE-NEXT:    movaps 208(%rdi), %xmm7
9634 ; SSE-NEXT:    movaps %xmm7, %xmm0
9635 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
9636 ; SSE-NEXT:    movaps 176(%rdi), %xmm3
9637 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9638 ; SSE-NEXT:    movaps 144(%rdi), %xmm2
9639 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9640 ; SSE-NEXT:    unpcklps {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]
9641 ; SSE-NEXT:    movaps %xmm2, %xmm1
9642 ; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
9643 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9644 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
9645 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9646 ; SSE-NEXT:    movaps 368(%rdi), %xmm3
9647 ; SSE-NEXT:    movaps 336(%rdi), %xmm0
9648 ; SSE-NEXT:    movaps %xmm0, (%rsp) # 16-byte Spill
9649 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
9650 ; SSE-NEXT:    movaps 304(%rdi), %xmm4
9651 ; SSE-NEXT:    movaps 272(%rdi), %xmm1
9652 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9653 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm4[0],xmm1[1],xmm4[1]
9654 ; SSE-NEXT:    movaps %xmm1, %xmm2
9655 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
9656 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9657 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
9658 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9659 ; SSE-NEXT:    movaps 496(%rdi), %xmm5
9660 ; SSE-NEXT:    movaps 464(%rdi), %xmm0
9661 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9662 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm5[0],xmm0[1],xmm5[1]
9663 ; SSE-NEXT:    movaps 432(%rdi), %xmm6
9664 ; SSE-NEXT:    movaps 400(%rdi), %xmm1
9665 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9666 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm6[0],xmm1[1],xmm6[1]
9667 ; SSE-NEXT:    movaps %xmm1, %xmm2
9668 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
9669 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9670 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
9671 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9672 ; SSE-NEXT:    movaps 624(%rdi), %xmm9
9673 ; SSE-NEXT:    movaps 592(%rdi), %xmm0
9674 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9675 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm9[0],xmm0[1],xmm9[1]
9676 ; SSE-NEXT:    movaps 560(%rdi), %xmm10
9677 ; SSE-NEXT:    movaps 528(%rdi), %xmm1
9678 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9679 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm10[0],xmm1[1],xmm10[1]
9680 ; SSE-NEXT:    movaps %xmm1, %xmm2
9681 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
9682 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9683 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
9684 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9685 ; SSE-NEXT:    movaps 752(%rdi), %xmm12
9686 ; SSE-NEXT:    movaps 720(%rdi), %xmm0
9687 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9688 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm12[0],xmm0[1],xmm12[1]
9689 ; SSE-NEXT:    movaps 688(%rdi), %xmm13
9690 ; SSE-NEXT:    movaps 656(%rdi), %xmm2
9691 ; SSE-NEXT:    movaps %xmm2, %xmm1
9692 ; SSE-NEXT:    movaps %xmm2, %xmm15
9693 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm13[0],xmm1[1],xmm13[1]
9694 ; SSE-NEXT:    movaps %xmm1, %xmm2
9695 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
9696 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9697 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
9698 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9699 ; SSE-NEXT:    movaps 880(%rdi), %xmm1
9700 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9701 ; SSE-NEXT:    movaps 848(%rdi), %xmm0
9702 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9703 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
9704 ; SSE-NEXT:    movaps 816(%rdi), %xmm2
9705 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9706 ; SSE-NEXT:    movaps 784(%rdi), %xmm1
9707 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9708 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
9709 ; SSE-NEXT:    movaps %xmm1, %xmm2
9710 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
9711 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9712 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
9713 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9714 ; SSE-NEXT:    movaps 1008(%rdi), %xmm14
9715 ; SSE-NEXT:    movaps 976(%rdi), %xmm0
9716 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9717 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm14[0],xmm0[1],xmm14[1]
9718 ; SSE-NEXT:    movaps 944(%rdi), %xmm2
9719 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9720 ; SSE-NEXT:    movaps 912(%rdi), %xmm1
9721 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9722 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
9723 ; SSE-NEXT:    movaps %xmm1, %xmm2
9724 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
9725 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9726 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
9727 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9728 ; SSE-NEXT:    movaps 1136(%rdi), %xmm1
9729 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9730 ; SSE-NEXT:    movaps 1104(%rdi), %xmm0
9731 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9732 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
9733 ; SSE-NEXT:    movaps 1072(%rdi), %xmm2
9734 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9735 ; SSE-NEXT:    movaps 1040(%rdi), %xmm1
9736 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9737 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
9738 ; SSE-NEXT:    movaps %xmm1, %xmm2
9739 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
9740 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9741 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
9742 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9743 ; SSE-NEXT:    movaps 1264(%rdi), %xmm11
9744 ; SSE-NEXT:    movaps 1232(%rdi), %xmm0
9745 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9746 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm11[0],xmm0[1],xmm11[1]
9747 ; SSE-NEXT:    movaps 1200(%rdi), %xmm2
9748 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9749 ; SSE-NEXT:    movaps 1168(%rdi), %xmm1
9750 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9751 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
9752 ; SSE-NEXT:    movaps %xmm1, %xmm2
9753 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
9754 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9755 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
9756 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9757 ; SSE-NEXT:    movaps 1392(%rdi), %xmm1
9758 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9759 ; SSE-NEXT:    movaps 1360(%rdi), %xmm0
9760 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9761 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
9762 ; SSE-NEXT:    movaps 1328(%rdi), %xmm2
9763 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9764 ; SSE-NEXT:    movaps 1296(%rdi), %xmm1
9765 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9766 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
9767 ; SSE-NEXT:    movaps %xmm1, %xmm2
9768 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
9769 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9770 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
9771 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9772 ; SSE-NEXT:    movaps 1520(%rdi), %xmm1
9773 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9774 ; SSE-NEXT:    movaps 1488(%rdi), %xmm0
9775 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9776 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
9777 ; SSE-NEXT:    movaps 1456(%rdi), %xmm2
9778 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9779 ; SSE-NEXT:    movaps 1424(%rdi), %xmm1
9780 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9781 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
9782 ; SSE-NEXT:    movaps %xmm1, %xmm2
9783 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
9784 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9785 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
9786 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9787 ; SSE-NEXT:    movaps 1648(%rdi), %xmm1
9788 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9789 ; SSE-NEXT:    movaps 1616(%rdi), %xmm0
9790 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9791 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
9792 ; SSE-NEXT:    movaps 1584(%rdi), %xmm2
9793 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9794 ; SSE-NEXT:    movaps 1552(%rdi), %xmm1
9795 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9796 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
9797 ; SSE-NEXT:    movaps %xmm1, %xmm2
9798 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
9799 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9800 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
9801 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9802 ; SSE-NEXT:    movaps 1776(%rdi), %xmm8
9803 ; SSE-NEXT:    movaps 1744(%rdi), %xmm0
9804 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9805 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm8[0],xmm0[1],xmm8[1]
9806 ; SSE-NEXT:    movaps 1712(%rdi), %xmm2
9807 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9808 ; SSE-NEXT:    movaps 1680(%rdi), %xmm1
9809 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9810 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
9811 ; SSE-NEXT:    movaps %xmm1, %xmm2
9812 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
9813 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9814 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
9815 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9816 ; SSE-NEXT:    movaps 1904(%rdi), %xmm1
9817 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9818 ; SSE-NEXT:    movaps 1872(%rdi), %xmm0
9819 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9820 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
9821 ; SSE-NEXT:    movaps 1840(%rdi), %xmm2
9822 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9823 ; SSE-NEXT:    movaps 1808(%rdi), %xmm1
9824 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9825 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
9826 ; SSE-NEXT:    movaps %xmm1, %xmm2
9827 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
9828 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9829 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
9830 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9831 ; SSE-NEXT:    movaps 2032(%rdi), %xmm1
9832 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9833 ; SSE-NEXT:    movaps 2000(%rdi), %xmm0
9834 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9835 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
9836 ; SSE-NEXT:    movaps 1968(%rdi), %xmm2
9837 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9838 ; SSE-NEXT:    movaps 1936(%rdi), %xmm1
9839 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9840 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
9841 ; SSE-NEXT:    movaps %xmm1, %xmm2
9842 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
9843 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9844 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
9845 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9846 ; SSE-NEXT:    movaps 112(%rdi), %xmm1
9847 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9848 ; SSE-NEXT:    movaps 80(%rdi), %xmm0
9849 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9850 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
9851 ; SSE-NEXT:    movaps 16(%rdi), %xmm1
9852 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9853 ; SSE-NEXT:    movaps 48(%rdi), %xmm2
9854 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9855 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
9856 ; SSE-NEXT:    movaps %xmm1, %xmm2
9857 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
9858 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9859 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
9860 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9861 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload
9862 ; SSE-NEXT:    # xmm7 = xmm7[2],mem[2],xmm7[3],mem[3]
9863 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
9864 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
9865 ; SSE-NEXT:    # xmm2 = xmm2[2],mem[2],xmm2[3],mem[3]
9866 ; SSE-NEXT:    movaps (%rsp), %xmm1 # 16-byte Reload
9867 ; SSE-NEXT:    unpckhps {{.*#+}} xmm1 = xmm1[2],xmm3[2],xmm1[3],xmm3[3]
9868 ; SSE-NEXT:    movaps %xmm1, (%rsp) # 16-byte Spill
9869 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
9870 ; SSE-NEXT:    unpckhps {{.*#+}} xmm1 = xmm1[2],xmm4[2],xmm1[3],xmm4[3]
9871 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9872 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
9873 ; SSE-NEXT:    unpckhps {{.*#+}} xmm1 = xmm1[2],xmm5[2],xmm1[3],xmm5[3]
9874 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9875 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
9876 ; SSE-NEXT:    unpckhps {{.*#+}} xmm1 = xmm1[2],xmm6[2],xmm1[3],xmm6[3]
9877 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9878 ; SSE-NEXT:    unpckhps {{.*#+}} xmm0 = xmm0[2],xmm9[2],xmm0[3],xmm9[3]
9879 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9880 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
9881 ; SSE-NEXT:    unpckhps {{.*#+}} xmm5 = xmm5[2],xmm10[2],xmm5[3],xmm10[3]
9882 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
9883 ; SSE-NEXT:    unpckhps {{.*#+}} xmm6 = xmm6[2],xmm12[2],xmm6[3],xmm12[3]
9884 ; SSE-NEXT:    movaps %xmm15, %xmm4
9885 ; SSE-NEXT:    unpckhps {{.*#+}} xmm4 = xmm4[2],xmm13[2],xmm4[3],xmm13[3]
9886 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
9887 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload
9888 ; SSE-NEXT:    # xmm15 = xmm15[2],mem[2],xmm15[3],mem[3]
9889 ; SSE-NEXT:    movaps %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9890 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
9891 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload
9892 ; SSE-NEXT:    # xmm15 = xmm15[2],mem[2],xmm15[3],mem[3]
9893 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
9894 ; SSE-NEXT:    unpckhps {{.*#+}} xmm3 = xmm3[2],xmm14[2],xmm3[3],xmm14[3]
9895 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
9896 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Folded Reload
9897 ; SSE-NEXT:    # xmm14 = xmm14[2],mem[2],xmm14[3],mem[3]
9898 ; SSE-NEXT:    movaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9899 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
9900 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Folded Reload
9901 ; SSE-NEXT:    # xmm14 = xmm14[2],mem[2],xmm14[3],mem[3]
9902 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload
9903 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Folded Reload
9904 ; SSE-NEXT:    # xmm13 = xmm13[2],mem[2],xmm13[3],mem[3]
9905 ; SSE-NEXT:    movaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9906 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload
9907 ; SSE-NEXT:    unpckhps {{.*#+}} xmm13 = xmm13[2],xmm11[2],xmm13[3],xmm11[3]
9908 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload
9909 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Folded Reload
9910 ; SSE-NEXT:    # xmm11 = xmm11[2],mem[2],xmm11[3],mem[3]
9911 ; SSE-NEXT:    movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9912 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload
9913 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Folded Reload
9914 ; SSE-NEXT:    # xmm11 = xmm11[2],mem[2],xmm11[3],mem[3]
9915 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload
9916 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Folded Reload
9917 ; SSE-NEXT:    # xmm12 = xmm12[2],mem[2],xmm12[3],mem[3]
9918 ; SSE-NEXT:    movaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9919 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload
9920 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Folded Reload
9921 ; SSE-NEXT:    # xmm12 = xmm12[2],mem[2],xmm12[3],mem[3]
9922 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
9923 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Folded Reload
9924 ; SSE-NEXT:    # xmm10 = xmm10[2],mem[2],xmm10[3],mem[3]
9925 ; SSE-NEXT:    movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9926 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
9927 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Folded Reload
9928 ; SSE-NEXT:    # xmm10 = xmm10[2],mem[2],xmm10[3],mem[3]
9929 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload
9930 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload
9931 ; SSE-NEXT:    # xmm9 = xmm9[2],mem[2],xmm9[3],mem[3]
9932 ; SSE-NEXT:    movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9933 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload
9934 ; SSE-NEXT:    unpckhps {{.*#+}} xmm9 = xmm9[2],xmm8[2],xmm9[3],xmm8[3]
9935 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
9936 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload
9937 ; SSE-NEXT:    # xmm8 = xmm8[2],mem[2],xmm8[3],mem[3]
9938 ; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9939 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
9940 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload
9941 ; SSE-NEXT:    # xmm8 = xmm8[2],mem[2],xmm8[3],mem[3]
9942 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9943 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
9944 ; SSE-NEXT:    # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]
9945 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9946 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9947 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
9948 ; SSE-NEXT:    # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]
9949 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9950 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9951 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
9952 ; SSE-NEXT:    # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]
9953 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9954 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9955 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
9956 ; SSE-NEXT:    # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]
9957 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9958 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9959 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
9960 ; SSE-NEXT:    # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]
9961 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9962 ; SSE-NEXT:    movaps %xmm2, %xmm0
9963 ; SSE-NEXT:    movlhps {{.*#+}} xmm0 = xmm0[0],xmm7[0]
9964 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9965 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm7[1]
9966 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9967 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9968 ; SSE-NEXT:    movaps %xmm0, %xmm2
9969 ; SSE-NEXT:    movaps (%rsp), %xmm7 # 16-byte Reload
9970 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm7[0]
9971 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9972 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm7[1]
9973 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9974 ; SSE-NEXT:    movaps %xmm1, %xmm0
9975 ; SSE-NEXT:    movaps %xmm1, %xmm2
9976 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
9977 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm1[0]
9978 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9979 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]
9980 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9981 ; SSE-NEXT:    movaps %xmm5, %xmm2
9982 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
9983 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm1[0]
9984 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9985 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm1[1]
9986 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9987 ; SSE-NEXT:    movaps %xmm4, %xmm2
9988 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm6[0]
9989 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9990 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm6[1]
9991 ; SSE-NEXT:    movaps %xmm4, (%rsp) # 16-byte Spill
9992 ; SSE-NEXT:    movaps %xmm15, %xmm0
9993 ; SSE-NEXT:    movaps %xmm15, %xmm2
9994 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
9995 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm1[0]
9996 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9997 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]
9998 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9999 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
10000 ; SSE-NEXT:    movaps %xmm0, %xmm15
10001 ; SSE-NEXT:    movlhps {{.*#+}} xmm15 = xmm15[0],xmm3[0]
10002 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm3[1]
10003 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10004 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
10005 ; SSE-NEXT:    movaps %xmm0, %xmm2
10006 ; SSE-NEXT:    movaps %xmm14, %xmm1
10007 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm14[0]
10008 ; SSE-NEXT:    movaps %xmm2, %xmm14
10009 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]
10010 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10011 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
10012 ; SSE-NEXT:    movaps %xmm0, %xmm2
10013 ; SSE-NEXT:    movaps %xmm13, %xmm1
10014 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm13[0]
10015 ; SSE-NEXT:    movaps %xmm2, %xmm13
10016 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]
10017 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10018 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
10019 ; SSE-NEXT:    movaps %xmm0, %xmm7
10020 ; SSE-NEXT:    movlhps {{.*#+}} xmm7 = xmm7[0],xmm11[0]
10021 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm11[1]
10022 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10023 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
10024 ; SSE-NEXT:    movaps %xmm0, %xmm6
10025 ; SSE-NEXT:    movlhps {{.*#+}} xmm6 = xmm6[0],xmm12[0]
10026 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm12[1]
10027 ; SSE-NEXT:    movaps %xmm0, %xmm12
10028 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
10029 ; SSE-NEXT:    movaps %xmm0, %xmm2
10030 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm10[0]
10031 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm10[1]
10032 ; SSE-NEXT:    movaps %xmm0, %xmm10
10033 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
10034 ; SSE-NEXT:    movaps %xmm0, %xmm5
10035 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm9[0]
10036 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm9[1]
10037 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10038 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
10039 ; SSE-NEXT:    movaps %xmm0, %xmm4
10040 ; SSE-NEXT:    movlhps {{.*#+}} xmm4 = xmm4[0],xmm8[0]
10041 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm8[1]
10042 ; SSE-NEXT:    movaps %xmm0, %xmm8
10043 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
10044 ; SSE-NEXT:    movaps %xmm0, %xmm3
10045 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10046 ; SSE-NEXT:    movlhps {{.*#+}} xmm3 = xmm3[0],xmm1[0]
10047 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]
10048 ; SSE-NEXT:    movaps %xmm0, %xmm9
10049 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload
10050 ; SSE-NEXT:    movaps %xmm11, %xmm0
10051 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10052 ; SSE-NEXT:    movlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]
10053 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm11 = xmm11[1],xmm1[1]
10054 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10055 ; SSE-NEXT:    movaps %xmm1, 224(%rsi)
10056 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10057 ; SSE-NEXT:    movaps %xmm1, 160(%rsi)
10058 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10059 ; SSE-NEXT:    movaps %xmm1, 96(%rsi)
10060 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10061 ; SSE-NEXT:    movaps %xmm1, 32(%rsi)
10062 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10063 ; SSE-NEXT:    movaps %xmm1, 240(%rsi)
10064 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10065 ; SSE-NEXT:    movaps %xmm1, 176(%rsi)
10066 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10067 ; SSE-NEXT:    movaps %xmm1, 112(%rsi)
10068 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10069 ; SSE-NEXT:    movaps %xmm1, 48(%rsi)
10070 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10071 ; SSE-NEXT:    movaps %xmm1, 192(%rsi)
10072 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10073 ; SSE-NEXT:    movaps %xmm1, 128(%rsi)
10074 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10075 ; SSE-NEXT:    movaps %xmm1, 64(%rsi)
10076 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10077 ; SSE-NEXT:    movaps %xmm1, (%rsi)
10078 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10079 ; SSE-NEXT:    movaps %xmm1, 208(%rsi)
10080 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10081 ; SSE-NEXT:    movaps %xmm1, 144(%rsi)
10082 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10083 ; SSE-NEXT:    movaps %xmm1, 80(%rsi)
10084 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10085 ; SSE-NEXT:    movaps %xmm1, 16(%rsi)
10086 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10087 ; SSE-NEXT:    movaps %xmm1, 224(%rdx)
10088 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10089 ; SSE-NEXT:    movaps %xmm1, 240(%rdx)
10090 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10091 ; SSE-NEXT:    movaps %xmm1, 192(%rdx)
10092 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10093 ; SSE-NEXT:    movaps %xmm1, 208(%rdx)
10094 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10095 ; SSE-NEXT:    movaps %xmm1, 160(%rdx)
10096 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10097 ; SSE-NEXT:    movaps %xmm1, 176(%rdx)
10098 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10099 ; SSE-NEXT:    movaps %xmm1, 128(%rdx)
10100 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10101 ; SSE-NEXT:    movaps %xmm1, 144(%rdx)
10102 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10103 ; SSE-NEXT:    movaps %xmm1, 96(%rdx)
10104 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10105 ; SSE-NEXT:    movaps %xmm1, 112(%rdx)
10106 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10107 ; SSE-NEXT:    movaps %xmm1, 64(%rdx)
10108 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10109 ; SSE-NEXT:    movaps %xmm1, 80(%rdx)
10110 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10111 ; SSE-NEXT:    movaps %xmm1, 32(%rdx)
10112 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10113 ; SSE-NEXT:    movaps %xmm1, 48(%rdx)
10114 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10115 ; SSE-NEXT:    movaps %xmm1, (%rdx)
10116 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10117 ; SSE-NEXT:    movaps %xmm1, 16(%rdx)
10118 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10119 ; SSE-NEXT:    movaps %xmm1, 240(%rcx)
10120 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10121 ; SSE-NEXT:    movaps %xmm1, 224(%rcx)
10122 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10123 ; SSE-NEXT:    movaps %xmm1, 208(%rcx)
10124 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10125 ; SSE-NEXT:    movaps %xmm1, 192(%rcx)
10126 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10127 ; SSE-NEXT:    movaps %xmm1, 176(%rcx)
10128 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10129 ; SSE-NEXT:    movaps %xmm1, 160(%rcx)
10130 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10131 ; SSE-NEXT:    movaps %xmm1, 144(%rcx)
10132 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10133 ; SSE-NEXT:    movaps %xmm1, 128(%rcx)
10134 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10135 ; SSE-NEXT:    movaps %xmm1, 112(%rcx)
10136 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10137 ; SSE-NEXT:    movaps %xmm1, 96(%rcx)
10138 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10139 ; SSE-NEXT:    movaps %xmm1, 80(%rcx)
10140 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10141 ; SSE-NEXT:    movaps %xmm1, 64(%rcx)
10142 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10143 ; SSE-NEXT:    movaps %xmm1, 48(%rcx)
10144 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10145 ; SSE-NEXT:    movaps %xmm1, 32(%rcx)
10146 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10147 ; SSE-NEXT:    movaps %xmm1, 16(%rcx)
10148 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10149 ; SSE-NEXT:    movaps %xmm1, (%rcx)
10150 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10151 ; SSE-NEXT:    movaps %xmm1, 240(%r8)
10152 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10153 ; SSE-NEXT:    movaps %xmm1, 224(%r8)
10154 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10155 ; SSE-NEXT:    movaps %xmm1, 208(%r8)
10156 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10157 ; SSE-NEXT:    movaps %xmm1, 192(%r8)
10158 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10159 ; SSE-NEXT:    movaps %xmm1, 176(%r8)
10160 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10161 ; SSE-NEXT:    movaps %xmm1, 160(%r8)
10162 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10163 ; SSE-NEXT:    movaps %xmm1, 144(%r8)
10164 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10165 ; SSE-NEXT:    movaps %xmm1, 128(%r8)
10166 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10167 ; SSE-NEXT:    movaps %xmm1, 112(%r8)
10168 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10169 ; SSE-NEXT:    movaps %xmm1, 96(%r8)
10170 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10171 ; SSE-NEXT:    movaps %xmm1, 80(%r8)
10172 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10173 ; SSE-NEXT:    movaps %xmm1, 64(%r8)
10174 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10175 ; SSE-NEXT:    movaps %xmm1, 48(%r8)
10176 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10177 ; SSE-NEXT:    movaps %xmm1, 32(%r8)
10178 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10179 ; SSE-NEXT:    movaps %xmm1, 16(%r8)
10180 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10181 ; SSE-NEXT:    movaps %xmm1, (%r8)
10182 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10183 ; SSE-NEXT:    movaps %xmm1, 240(%r9)
10184 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10185 ; SSE-NEXT:    movaps %xmm1, 224(%r9)
10186 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10187 ; SSE-NEXT:    movaps %xmm1, 208(%r9)
10188 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10189 ; SSE-NEXT:    movaps %xmm1, 192(%r9)
10190 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10191 ; SSE-NEXT:    movaps %xmm1, 176(%r9)
10192 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10193 ; SSE-NEXT:    movaps %xmm1, 160(%r9)
10194 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10195 ; SSE-NEXT:    movaps %xmm1, 144(%r9)
10196 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10197 ; SSE-NEXT:    movaps %xmm1, 128(%r9)
10198 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10199 ; SSE-NEXT:    movaps %xmm1, 112(%r9)
10200 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10201 ; SSE-NEXT:    movaps %xmm1, 96(%r9)
10202 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10203 ; SSE-NEXT:    movaps %xmm1, 80(%r9)
10204 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10205 ; SSE-NEXT:    movaps %xmm1, 64(%r9)
10206 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10207 ; SSE-NEXT:    movaps %xmm1, 48(%r9)
10208 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10209 ; SSE-NEXT:    movaps %xmm1, 32(%r9)
10210 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10211 ; SSE-NEXT:    movaps %xmm1, 16(%r9)
10212 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10213 ; SSE-NEXT:    movaps %xmm1, (%r9)
10214 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
10215 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10216 ; SSE-NEXT:    movaps %xmm1, 240(%rax)
10217 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10218 ; SSE-NEXT:    movaps %xmm1, 224(%rax)
10219 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10220 ; SSE-NEXT:    movaps %xmm1, 208(%rax)
10221 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10222 ; SSE-NEXT:    movaps %xmm1, 192(%rax)
10223 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10224 ; SSE-NEXT:    movaps %xmm1, 176(%rax)
10225 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10226 ; SSE-NEXT:    movaps %xmm1, 160(%rax)
10227 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10228 ; SSE-NEXT:    movaps %xmm1, 144(%rax)
10229 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10230 ; SSE-NEXT:    movaps %xmm1, 128(%rax)
10231 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10232 ; SSE-NEXT:    movaps %xmm1, 112(%rax)
10233 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10234 ; SSE-NEXT:    movaps %xmm1, 96(%rax)
10235 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10236 ; SSE-NEXT:    movaps %xmm1, 80(%rax)
10237 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10238 ; SSE-NEXT:    movaps %xmm1, 64(%rax)
10239 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10240 ; SSE-NEXT:    movaps %xmm1, 48(%rax)
10241 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10242 ; SSE-NEXT:    movaps %xmm1, 32(%rax)
10243 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10244 ; SSE-NEXT:    movaps %xmm1, 16(%rax)
10245 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10246 ; SSE-NEXT:    movaps %xmm1, (%rax)
10247 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
10248 ; SSE-NEXT:    movaps %xmm3, 240(%rax)
10249 ; SSE-NEXT:    movaps %xmm4, 224(%rax)
10250 ; SSE-NEXT:    movaps %xmm5, 208(%rax)
10251 ; SSE-NEXT:    movaps %xmm2, 192(%rax)
10252 ; SSE-NEXT:    movaps %xmm6, 176(%rax)
10253 ; SSE-NEXT:    movaps %xmm7, 160(%rax)
10254 ; SSE-NEXT:    movaps %xmm13, 144(%rax)
10255 ; SSE-NEXT:    movaps %xmm14, 128(%rax)
10256 ; SSE-NEXT:    movaps %xmm15, 112(%rax)
10257 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10258 ; SSE-NEXT:    movaps %xmm1, 96(%rax)
10259 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10260 ; SSE-NEXT:    movaps %xmm1, 80(%rax)
10261 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10262 ; SSE-NEXT:    movaps %xmm1, 64(%rax)
10263 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10264 ; SSE-NEXT:    movaps %xmm1, 48(%rax)
10265 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10266 ; SSE-NEXT:    movaps %xmm1, 32(%rax)
10267 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10268 ; SSE-NEXT:    movaps %xmm1, 16(%rax)
10269 ; SSE-NEXT:    movaps %xmm0, (%rax)
10270 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
10271 ; SSE-NEXT:    movaps %xmm9, 240(%rax)
10272 ; SSE-NEXT:    movaps %xmm8, 224(%rax)
10273 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
10274 ; SSE-NEXT:    movaps %xmm0, 208(%rax)
10275 ; SSE-NEXT:    movaps %xmm10, 192(%rax)
10276 ; SSE-NEXT:    movaps %xmm12, 176(%rax)
10277 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
10278 ; SSE-NEXT:    movaps %xmm0, 160(%rax)
10279 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
10280 ; SSE-NEXT:    movaps %xmm0, 144(%rax)
10281 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
10282 ; SSE-NEXT:    movaps %xmm0, 128(%rax)
10283 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
10284 ; SSE-NEXT:    movaps %xmm0, 112(%rax)
10285 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
10286 ; SSE-NEXT:    movaps %xmm0, 96(%rax)
10287 ; SSE-NEXT:    movaps (%rsp), %xmm0 # 16-byte Reload
10288 ; SSE-NEXT:    movaps %xmm0, 80(%rax)
10289 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
10290 ; SSE-NEXT:    movaps %xmm0, 64(%rax)
10291 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
10292 ; SSE-NEXT:    movaps %xmm0, 48(%rax)
10293 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
10294 ; SSE-NEXT:    movaps %xmm0, 32(%rax)
10295 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
10296 ; SSE-NEXT:    movaps %xmm0, 16(%rax)
10297 ; SSE-NEXT:    movaps %xmm11, (%rax)
10298 ; SSE-NEXT:    addq $2232, %rsp # imm = 0x8B8
10299 ; SSE-NEXT:    retq
10301 ; AVX-LABEL: load_i32_stride8_vf64:
10302 ; AVX:       # %bb.0:
10303 ; AVX-NEXT:    subq $3720, %rsp # imm = 0xE88
10304 ; AVX-NEXT:    vmovaps 288(%rdi), %xmm13
10305 ; AVX-NEXT:    vmovaps 256(%rdi), %xmm15
10306 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm15[0],xmm13[0],xmm15[1],xmm13[1]
10307 ; AVX-NEXT:    vmovaps %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10308 ; AVX-NEXT:    vmovaps 352(%rdi), %xmm1
10309 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10310 ; AVX-NEXT:    vmovaps 320(%rdi), %xmm2
10311 ; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10312 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
10313 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10314 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]
10315 ; AVX-NEXT:    vmovaps 416(%rdi), %xmm1
10316 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10317 ; AVX-NEXT:    vmovaps 384(%rdi), %xmm2
10318 ; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10319 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
10320 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
10321 ; AVX-NEXT:    vmovaps 480(%rdi), %xmm2
10322 ; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10323 ; AVX-NEXT:    vmovaps 448(%rdi), %xmm3
10324 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10325 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
10326 ; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10327 ; AVX-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[0,1,0,1]
10328 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
10329 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
10330 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
10331 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10332 ; AVX-NEXT:    vmovaps 928(%rdi), %xmm1
10333 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10334 ; AVX-NEXT:    vmovaps 896(%rdi), %xmm0
10335 ; AVX-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10336 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
10337 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
10338 ; AVX-NEXT:    vmovaps 992(%rdi), %xmm1
10339 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10340 ; AVX-NEXT:    vmovaps 960(%rdi), %xmm2
10341 ; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10342 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
10343 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10344 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[0,1,0,1]
10345 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
10346 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
10347 ; AVX-NEXT:    vmovaps 800(%rdi), %xmm1
10348 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10349 ; AVX-NEXT:    vmovaps 768(%rdi), %xmm14
10350 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm14[0],xmm1[0],xmm14[1],xmm1[1]
10351 ; AVX-NEXT:    vmovaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10352 ; AVX-NEXT:    vmovaps 864(%rdi), %xmm2
10353 ; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10354 ; AVX-NEXT:    vmovaps 832(%rdi), %xmm3
10355 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10356 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
10357 ; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10358 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]
10359 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
10360 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10361 ; AVX-NEXT:    vmovaps 1440(%rdi), %xmm1
10362 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10363 ; AVX-NEXT:    vmovaps 1408(%rdi), %xmm0
10364 ; AVX-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10365 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
10366 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
10367 ; AVX-NEXT:    vmovaps 1504(%rdi), %xmm1
10368 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10369 ; AVX-NEXT:    vmovaps 1472(%rdi), %xmm2
10370 ; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10371 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
10372 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10373 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[0,1,0,1]
10374 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
10375 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
10376 ; AVX-NEXT:    vmovaps 1312(%rdi), %xmm2
10377 ; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10378 ; AVX-NEXT:    vmovaps 1280(%rdi), %xmm1
10379 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10380 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
10381 ; AVX-NEXT:    vmovaps 1376(%rdi), %xmm2
10382 ; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10383 ; AVX-NEXT:    vmovaps 1344(%rdi), %xmm3
10384 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10385 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
10386 ; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10387 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]
10388 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
10389 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10390 ; AVX-NEXT:    vmovaps 1952(%rdi), %xmm0
10391 ; AVX-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10392 ; AVX-NEXT:    vmovaps 1920(%rdi), %xmm1
10393 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10394 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
10395 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
10396 ; AVX-NEXT:    vmovaps 2016(%rdi), %xmm1
10397 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10398 ; AVX-NEXT:    vmovaps 1984(%rdi), %xmm2
10399 ; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10400 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
10401 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10402 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[0,1,0,1]
10403 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
10404 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
10405 ; AVX-NEXT:    vmovaps 1824(%rdi), %xmm1
10406 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10407 ; AVX-NEXT:    vmovaps 1792(%rdi), %xmm5
10408 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm5[0],xmm1[0],xmm5[1],xmm1[1]
10409 ; AVX-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10410 ; AVX-NEXT:    vmovaps 1888(%rdi), %xmm2
10411 ; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10412 ; AVX-NEXT:    vmovaps 1856(%rdi), %xmm3
10413 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10414 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm10 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
10415 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm10[0]
10416 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
10417 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10418 ; AVX-NEXT:    vmovaps 160(%rdi), %xmm0
10419 ; AVX-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10420 ; AVX-NEXT:    vmovaps 128(%rdi), %xmm1
10421 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10422 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
10423 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
10424 ; AVX-NEXT:    vmovaps 224(%rdi), %xmm1
10425 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10426 ; AVX-NEXT:    vmovaps 192(%rdi), %xmm2
10427 ; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10428 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
10429 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10430 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[0,1,0,1]
10431 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
10432 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
10433 ; AVX-NEXT:    vmovaps 32(%rdi), %xmm1
10434 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10435 ; AVX-NEXT:    vmovaps (%rdi), %xmm4
10436 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm4[0],xmm1[0],xmm4[1],xmm1[1]
10437 ; AVX-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10438 ; AVX-NEXT:    vmovaps 96(%rdi), %xmm2
10439 ; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10440 ; AVX-NEXT:    vmovaps 64(%rdi), %xmm3
10441 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10442 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
10443 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm3[0]
10444 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
10445 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10446 ; AVX-NEXT:    vmovaps 672(%rdi), %xmm1
10447 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10448 ; AVX-NEXT:    vmovaps 640(%rdi), %xmm0
10449 ; AVX-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10450 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
10451 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
10452 ; AVX-NEXT:    vmovaps 736(%rdi), %xmm1
10453 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10454 ; AVX-NEXT:    vmovaps 704(%rdi), %xmm2
10455 ; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10456 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
10457 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10458 ; AVX-NEXT:    vshufps {{.*#+}} xmm6 = xmm1[0,1,0,1]
10459 ; AVX-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
10460 ; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm0[0,1,2,3,4,5],ymm6[6,7]
10461 ; AVX-NEXT:    vmovaps 544(%rdi), %xmm0
10462 ; AVX-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10463 ; AVX-NEXT:    vmovaps 512(%rdi), %xmm2
10464 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]
10465 ; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10466 ; AVX-NEXT:    vmovaps 608(%rdi), %xmm0
10467 ; AVX-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10468 ; AVX-NEXT:    vmovaps 576(%rdi), %xmm1
10469 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10470 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
10471 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm7 = xmm7[0],xmm1[0]
10472 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm7[0,1,2,3],ymm6[4,5,6,7]
10473 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10474 ; AVX-NEXT:    vmovaps 1184(%rdi), %xmm0
10475 ; AVX-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10476 ; AVX-NEXT:    vmovaps 1152(%rdi), %xmm6
10477 ; AVX-NEXT:    vmovaps %xmm6, (%rsp) # 16-byte Spill
10478 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm6 = xmm6[0],xmm0[0],xmm6[1],xmm0[1]
10479 ; AVX-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm7
10480 ; AVX-NEXT:    vmovaps 1248(%rdi), %xmm0
10481 ; AVX-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10482 ; AVX-NEXT:    vmovaps 1216(%rdi), %xmm6
10483 ; AVX-NEXT:    vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10484 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm6[0],xmm0[0],xmm6[1],xmm0[1]
10485 ; AVX-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10486 ; AVX-NEXT:    vshufps {{.*#+}} xmm8 = xmm0[0,1,0,1]
10487 ; AVX-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm8
10488 ; AVX-NEXT:    vblendps {{.*#+}} ymm8 = ymm7[0,1,2,3,4,5],ymm8[6,7]
10489 ; AVX-NEXT:    vmovaps 1056(%rdi), %xmm0
10490 ; AVX-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10491 ; AVX-NEXT:    vmovaps 1024(%rdi), %xmm6
10492 ; AVX-NEXT:    vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10493 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm9 = xmm6[0],xmm0[0],xmm6[1],xmm0[1]
10494 ; AVX-NEXT:    vmovaps 1120(%rdi), %xmm0
10495 ; AVX-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10496 ; AVX-NEXT:    vmovaps 1088(%rdi), %xmm6
10497 ; AVX-NEXT:    vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10498 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm6[0],xmm0[0],xmm6[1],xmm0[1]
10499 ; AVX-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10500 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm9 = xmm9[0],xmm0[0]
10501 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm9[0,1,2,3],ymm8[4,5,6,7]
10502 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10503 ; AVX-NEXT:    vmovaps 1696(%rdi), %xmm0
10504 ; AVX-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10505 ; AVX-NEXT:    vmovaps 1664(%rdi), %xmm6
10506 ; AVX-NEXT:    vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10507 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm8 = xmm6[0],xmm0[0],xmm6[1],xmm0[1]
10508 ; AVX-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm9
10509 ; AVX-NEXT:    vmovaps 1760(%rdi), %xmm0
10510 ; AVX-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10511 ; AVX-NEXT:    vmovaps 1728(%rdi), %xmm6
10512 ; AVX-NEXT:    vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10513 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm6[0],xmm0[0],xmm6[1],xmm0[1]
10514 ; AVX-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10515 ; AVX-NEXT:    vshufps {{.*#+}} xmm11 = xmm0[0,1,0,1]
10516 ; AVX-NEXT:    vinsertf128 $1, %xmm11, %ymm0, %ymm11
10517 ; AVX-NEXT:    vblendps {{.*#+}} ymm11 = ymm9[0,1,2,3,4,5],ymm11[6,7]
10518 ; AVX-NEXT:    vmovaps 1568(%rdi), %xmm12
10519 ; AVX-NEXT:    vmovaps 1536(%rdi), %xmm8
10520 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm8[0],xmm12[0],xmm8[1],xmm12[1]
10521 ; AVX-NEXT:    vmovaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10522 ; AVX-NEXT:    vmovaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10523 ; AVX-NEXT:    vmovaps 1632(%rdi), %xmm6
10524 ; AVX-NEXT:    vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10525 ; AVX-NEXT:    vmovaps 1600(%rdi), %xmm7
10526 ; AVX-NEXT:    vmovaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10527 ; AVX-NEXT:    vunpcklps {{.*#+}} xmm9 = xmm7[0],xmm6[0],xmm7[1],xmm6[1]
10528 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm0 = xmm0[0],xmm9[0]
10529 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm11[4,5,6,7]
10530 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10531 ; AVX-NEXT:    vshufps {{.*#+}} xmm0 = xmm15[1,1,1,1]
10532 ; AVX-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0],xmm13[1],xmm0[2,3]
10533 ; AVX-NEXT:    vblendps $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
10534 ; AVX-NEXT:    # xmm0 = xmm0[0,1],mem[2,3]
10535 ; AVX-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm11 # 16-byte Folded Reload
10536 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
10537 ; AVX-NEXT:    vshufps {{.*#+}} xmm15 = xmm7[1,1,1,1]
10538 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
10539 ; AVX-NEXT:    vblendps {{.*#+}} xmm15 = xmm15[0],xmm6[1],xmm15[2,3]
10540 ; AVX-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm15
10541 ; AVX-NEXT:    vblendps {{.*#+}} ymm11 = ymm15[0,1,2,3,4,5],ymm11[6,7]
10542 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm11[4,5,6,7]
10543 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10544 ; AVX-NEXT:    vshufps {{.*#+}} xmm0 = xmm14[1,1,1,1]
10545 ; AVX-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
10546 ; AVX-NEXT:    # xmm0 = xmm0[0],mem[1],xmm0[2,3]
10547 ; AVX-NEXT:    vblendps $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
10548 ; AVX-NEXT:    # xmm0 = xmm0[0,1],mem[2,3]
10549 ; AVX-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm11 # 16-byte Folded Reload
10550 ; AVX-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload
10551 ; AVX-NEXT:    # xmm15 = mem[1,1,1,1]
10552 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
10553 ; AVX-NEXT:    vblendps {{.*#+}} xmm15 = xmm15[0],xmm14[1],xmm15[2,3]
10554 ; AVX-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm15
10555 ; AVX-NEXT:    vblendps {{.*#+}} ymm11 = ymm15[0,1,2,3,4,5],ymm11[6,7]
10556 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm11[4,5,6,7]
10557 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10558 ; AVX-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
10559 ; AVX-NEXT:    # xmm0 = mem[1,1,1,1]
10560 ; AVX-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
10561 ; AVX-NEXT:    # xmm0 = xmm0[0],mem[1],xmm0[2,3]
10562 ; AVX-NEXT:    vblendps $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
10563 ; AVX-NEXT:    # xmm0 = xmm0[0,1],mem[2,3]
10564 ; AVX-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm11 # 16-byte Folded Reload
10565 ; AVX-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload
10566 ; AVX-NEXT:    # xmm15 = mem[1,1,1,1]
10567 ; AVX-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload
10568 ; AVX-NEXT:    # xmm15 = xmm15[0],mem[1],xmm15[2,3]
10569 ; AVX-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm15
10570 ; AVX-NEXT:    vblendps {{.*#+}} ymm11 = ymm15[0,1,2,3,4,5],ymm11[6,7]
10571 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm11[4,5,6,7]
10572 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10573 ; AVX-NEXT:    vshufps {{.*#+}} xmm0 = xmm5[1,1,1,1]
10574 ; AVX-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
10575 ; AVX-NEXT:    # xmm0 = xmm0[0],mem[1],xmm0[2,3]
10576 ; AVX-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm10[2,3]
10577 ; AVX-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm5 # 16-byte Folded Reload
10578 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload
10579 ; AVX-NEXT:    vshufps {{.*#+}} xmm10 = xmm11[1,1,1,1]
10580 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
10581 ; AVX-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0],xmm15[1],xmm10[2,3]
10582 ; AVX-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
10583 ; AVX-NEXT:    vblendps {{.*#+}} ymm5 = ymm10[0,1,2,3,4,5],ymm5[6,7]
10584 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm5[4,5,6,7]
10585 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10586 ; AVX-NEXT:    vshufps {{.*#+}} xmm0 = xmm4[1,1,1,1]
10587 ; AVX-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
10588 ; AVX-NEXT:    # xmm0 = xmm0[0],mem[1],xmm0[2,3]
10589 ; AVX-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm3[2,3]
10590 ; AVX-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm3 # 16-byte Folded Reload
10591 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
10592 ; AVX-NEXT:    vshufps {{.*#+}} xmm4 = xmm10[1,1,1,1]
10593 ; AVX-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload
10594 ; AVX-NEXT:    # xmm4 = xmm4[0],mem[1],xmm4[2,3]
10595 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
10596 ; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3,4,5],ymm3[6,7]
10597 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
10598 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10599 ; AVX-NEXT:    vshufps {{.*#+}} xmm0 = xmm2[1,1,1,1]
10600 ; AVX-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
10601 ; AVX-NEXT:    # xmm0 = xmm0[0],mem[1],xmm0[2,3]
10602 ; AVX-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
10603 ; AVX-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 16-byte Folded Reload
10604 ; AVX-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
10605 ; AVX-NEXT:    # xmm2 = mem[1,1,1,1]
10606 ; AVX-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
10607 ; AVX-NEXT:    # xmm2 = xmm2[0],mem[1],xmm2[2,3]
10608 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
10609 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
10610 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
10611 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10612 ; AVX-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
10613 ; AVX-NEXT:    # xmm0 = mem[1,1,1,1]
10614 ; AVX-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
10615 ; AVX-NEXT:    # xmm0 = xmm0[0],mem[1],xmm0[2,3]
10616 ; AVX-NEXT:    vblendps $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
10617 ; AVX-NEXT:    # xmm0 = xmm0[0,1],mem[2,3]
10618 ; AVX-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 16-byte Folded Reload
10619 ; AVX-NEXT:    vpermilps $85, (%rsp), %xmm2 # 16-byte Folded Reload
10620 ; AVX-NEXT:    # xmm2 = mem[1,1,1,1]
10621 ; AVX-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
10622 ; AVX-NEXT:    # xmm2 = xmm2[0],mem[1],xmm2[2,3]
10623 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
10624 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
10625 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
10626 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10627 ; AVX-NEXT:    vshufps {{.*#+}} xmm0 = xmm8[1,1,1,1]
10628 ; AVX-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0],xmm12[1],xmm0[2,3]
10629 ; AVX-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm9[2,3]
10630 ; AVX-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 16-byte Folded Reload
10631 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload
10632 ; AVX-NEXT:    vshufps {{.*#+}} xmm2 = xmm9[1,1,1,1]
10633 ; AVX-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
10634 ; AVX-NEXT:    # xmm2 = xmm2[0],mem[1],xmm2[2,3]
10635 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
10636 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
10637 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
10638 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10639 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
10640 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm0[2],xmm13[2],xmm0[3],xmm13[3]
10641 ; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10642 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm7[2],xmm6[2],xmm7[3],xmm6[3]
10643 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10644 ; AVX-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
10645 ; AVX-NEXT:    # xmm0 = mem[2,2,2,2]
10646 ; AVX-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
10647 ; AVX-NEXT:    # xmm0 = mem[0,1,2],xmm0[3]
10648 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
10649 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
10650 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
10651 ; AVX-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
10652 ; AVX-NEXT:    # xmm1 = mem[2,2,2,2]
10653 ; AVX-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
10654 ; AVX-NEXT:    # xmm1 = mem[0,1,2],xmm1[3]
10655 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
10656 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
10657 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10658 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
10659 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm2 # 16-byte Folded Reload
10660 ; AVX-NEXT:    # xmm2 = xmm0[2],mem[2],xmm0[3],mem[3]
10661 ; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10662 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
10663 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm0[2],xmm14[2],xmm0[3],xmm14[3]
10664 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10665 ; AVX-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
10666 ; AVX-NEXT:    # xmm0 = mem[2,2,2,2]
10667 ; AVX-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
10668 ; AVX-NEXT:    # xmm0 = mem[0,1,2],xmm0[3]
10669 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
10670 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
10671 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
10672 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
10673 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm7[2,2,2,2]
10674 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
10675 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm6[0,1,2],xmm1[3]
10676 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
10677 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
10678 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10679 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
10680 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm2 # 16-byte Folded Reload
10681 ; AVX-NEXT:    # xmm2 = xmm0[2],mem[2],xmm0[3],mem[3]
10682 ; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10683 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
10684 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm1 # 16-byte Folded Reload
10685 ; AVX-NEXT:    # xmm1 = xmm0[2],mem[2],xmm0[3],mem[3]
10686 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10687 ; AVX-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
10688 ; AVX-NEXT:    # xmm0 = mem[2,2,2,2]
10689 ; AVX-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
10690 ; AVX-NEXT:    # xmm0 = mem[0,1,2],xmm0[3]
10691 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
10692 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
10693 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
10694 ; AVX-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
10695 ; AVX-NEXT:    # xmm1 = mem[2,2,2,2]
10696 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
10697 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm4[0,1,2],xmm1[3]
10698 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
10699 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
10700 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10701 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
10702 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm3 # 16-byte Folded Reload
10703 ; AVX-NEXT:    # xmm3 = xmm0[2],mem[2],xmm0[3],mem[3]
10704 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10705 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm11[2],xmm15[2],xmm11[3],xmm15[3]
10706 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10707 ; AVX-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
10708 ; AVX-NEXT:    # xmm0 = mem[2,2,2,2]
10709 ; AVX-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
10710 ; AVX-NEXT:    # xmm0 = mem[0,1,2],xmm0[3]
10711 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
10712 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
10713 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
10714 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
10715 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm5[2,2,2,2]
10716 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
10717 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1,2],xmm1[3]
10718 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm3[0,1],xmm1[2,3]
10719 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
10720 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10721 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
10722 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm8 # 16-byte Folded Reload
10723 ; AVX-NEXT:    # xmm8 = xmm0[2],mem[2],xmm0[3],mem[3]
10724 ; AVX-NEXT:    vmovaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10725 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10, %xmm1 # 16-byte Folded Reload
10726 ; AVX-NEXT:    # xmm1 = xmm10[2],mem[2],xmm10[3],mem[3]
10727 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10728 ; AVX-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
10729 ; AVX-NEXT:    # xmm0 = mem[2,2,2,2]
10730 ; AVX-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
10731 ; AVX-NEXT:    # xmm0 = mem[0,1,2],xmm0[3]
10732 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
10733 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
10734 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
10735 ; AVX-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
10736 ; AVX-NEXT:    # xmm1 = mem[2,2,2,2]
10737 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
10738 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm3[0,1,2],xmm1[3]
10739 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm8[0,1],xmm1[2,3]
10740 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
10741 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10742 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
10743 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm8 # 16-byte Folded Reload
10744 ; AVX-NEXT:    # xmm8 = xmm0[2],mem[2],xmm0[3],mem[3]
10745 ; AVX-NEXT:    vmovaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10746 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
10747 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
10748 ; AVX-NEXT:    # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]
10749 ; AVX-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10750 ; AVX-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload
10751 ; AVX-NEXT:    # xmm15 = mem[2,2,2,2]
10752 ; AVX-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload
10753 ; AVX-NEXT:    # xmm15 = mem[0,1,2],xmm15[3]
10754 ; AVX-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm15
10755 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm14
10756 ; AVX-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3,4,5],ymm15[6,7]
10757 ; AVX-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload
10758 ; AVX-NEXT:    # xmm15 = mem[2,2,2,2]
10759 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10760 ; AVX-NEXT:    vblendps {{.*#+}} xmm15 = xmm1[0,1,2],xmm15[3]
10761 ; AVX-NEXT:    vblendps {{.*#+}} xmm15 = xmm8[0,1],xmm15[2,3]
10762 ; AVX-NEXT:    vblendps {{.*#+}} ymm8 = ymm15[0,1,2,3],ymm14[4,5,6,7]
10763 ; AVX-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10764 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
10765 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8, %xmm0 # 16-byte Folded Reload
10766 ; AVX-NEXT:    # xmm0 = xmm8[2],mem[2],xmm8[3],mem[3]
10767 ; AVX-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10768 ; AVX-NEXT:    vmovaps (%rsp), %xmm8 # 16-byte Reload
10769 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8, %xmm8 # 16-byte Folded Reload
10770 ; AVX-NEXT:    # xmm8 = xmm8[2],mem[2],xmm8[3],mem[3]
10771 ; AVX-NEXT:    vmovaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10772 ; AVX-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Folded Reload
10773 ; AVX-NEXT:    # xmm13 = mem[2,2,2,2]
10774 ; AVX-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm13, %xmm13 # 16-byte Folded Reload
10775 ; AVX-NEXT:    # xmm13 = mem[0,1,2],xmm13[3]
10776 ; AVX-NEXT:    vinsertf128 $1, %xmm13, %ymm0, %ymm13
10777 ; AVX-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm12
10778 ; AVX-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3,4,5],ymm13[6,7]
10779 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
10780 ; AVX-NEXT:    vshufps {{.*#+}} xmm13 = xmm15[2,2,2,2]
10781 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
10782 ; AVX-NEXT:    vblendps {{.*#+}} xmm13 = xmm14[0,1,2],xmm13[3]
10783 ; AVX-NEXT:    vblendps {{.*#+}} xmm13 = xmm0[0,1],xmm13[2,3]
10784 ; AVX-NEXT:    vblendps {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm12[4,5,6,7]
10785 ; AVX-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10786 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
10787 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8, %xmm0 # 16-byte Folded Reload
10788 ; AVX-NEXT:    # xmm0 = xmm8[2],mem[2],xmm8[3],mem[3]
10789 ; AVX-NEXT:    vmovaps %xmm0, (%rsp) # 16-byte Spill
10790 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm9, %xmm8 # 16-byte Folded Reload
10791 ; AVX-NEXT:    # xmm8 = xmm9[2],mem[2],xmm9[3],mem[3]
10792 ; AVX-NEXT:    vmovaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10793 ; AVX-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Folded Reload
10794 ; AVX-NEXT:    # xmm11 = mem[2,2,2,2]
10795 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload
10796 ; AVX-NEXT:    vblendps {{.*#+}} xmm11 = xmm13[0,1,2],xmm11[3]
10797 ; AVX-NEXT:    vinsertf128 $1, %xmm11, %ymm0, %ymm11
10798 ; AVX-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm9
10799 ; AVX-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5],ymm11[6,7]
10800 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload
10801 ; AVX-NEXT:    vshufps {{.*#+}} xmm11 = xmm12[2,2,2,2]
10802 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
10803 ; AVX-NEXT:    vblendps {{.*#+}} xmm11 = xmm10[0,1,2],xmm11[3]
10804 ; AVX-NEXT:    vblendps {{.*#+}} xmm11 = xmm0[0,1],xmm11[2,3]
10805 ; AVX-NEXT:    vblendps {{.*#+}} ymm8 = ymm11[0,1,2,3],ymm9[4,5,6,7]
10806 ; AVX-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10807 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
10808 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8, %xmm9 # 16-byte Folded Reload
10809 ; AVX-NEXT:    # xmm9 = xmm8[2],mem[2],xmm8[3],mem[3]
10810 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
10811 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm9 = xmm8[1],xmm9[1]
10812 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
10813 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8, %xmm11 # 16-byte Folded Reload
10814 ; AVX-NEXT:    # xmm11 = xmm8[2],mem[2],xmm8[3],mem[3]
10815 ; AVX-NEXT:    vinsertf128 $1, %xmm11, %ymm0, %ymm11
10816 ; AVX-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload
10817 ; AVX-NEXT:    # xmm8 = mem[2,3,2,3]
10818 ; AVX-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm8
10819 ; AVX-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],ymm11[6,7]
10820 ; AVX-NEXT:    vblendps {{.*#+}} ymm8 = ymm9[0,1,2,3],ymm8[4,5,6,7]
10821 ; AVX-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10822 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm8 = xmm6[2],xmm7[2],xmm6[3],xmm7[3]
10823 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
10824 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm7 = xmm6[1],xmm8[1]
10825 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
10826 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6, %xmm8 # 16-byte Folded Reload
10827 ; AVX-NEXT:    # xmm8 = xmm6[2],mem[2],xmm6[3],mem[3]
10828 ; AVX-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm8
10829 ; AVX-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload
10830 ; AVX-NEXT:    # xmm9 = mem[2,3,2,3]
10831 ; AVX-NEXT:    vinsertf128 $1, %xmm9, %ymm0, %ymm9
10832 ; AVX-NEXT:    vblendps {{.*#+}} ymm8 = ymm9[0,1,2,3,4,5],ymm8[6,7]
10833 ; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3],ymm8[4,5,6,7]
10834 ; AVX-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10835 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm7 # 16-byte Folded Reload
10836 ; AVX-NEXT:    # xmm7 = xmm4[2],mem[2],xmm4[3],mem[3]
10837 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
10838 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm7 = xmm4[1],xmm7[1]
10839 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
10840 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm8 # 16-byte Folded Reload
10841 ; AVX-NEXT:    # xmm8 = xmm4[2],mem[2],xmm4[3],mem[3]
10842 ; AVX-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm8
10843 ; AVX-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload
10844 ; AVX-NEXT:    # xmm6 = mem[2,3,2,3]
10845 ; AVX-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
10846 ; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5],ymm8[6,7]
10847 ; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]
10848 ; AVX-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10849 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm6 = xmm2[2],xmm5[2],xmm2[3],xmm5[3]
10850 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
10851 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm4 = xmm2[1],xmm6[1]
10852 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
10853 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm6 # 16-byte Folded Reload
10854 ; AVX-NEXT:    # xmm6 = xmm2[2],mem[2],xmm2[3],mem[3]
10855 ; AVX-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
10856 ; AVX-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload
10857 ; AVX-NEXT:    # xmm5 = mem[2,3,2,3]
10858 ; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
10859 ; AVX-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],ymm6[6,7]
10860 ; AVX-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm5[4,5,6,7]
10861 ; AVX-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10862 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm4 # 16-byte Folded Reload
10863 ; AVX-NEXT:    # xmm4 = xmm3[2],mem[2],xmm3[3],mem[3]
10864 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
10865 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm2 = xmm2[1],xmm4[1]
10866 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
10867 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm4 # 16-byte Folded Reload
10868 ; AVX-NEXT:    # xmm4 = xmm3[2],mem[2],xmm3[3],mem[3]
10869 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
10870 ; AVX-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload
10871 ; AVX-NEXT:    # xmm3 = mem[2,3,2,3]
10872 ; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
10873 ; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm4[6,7]
10874 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
10875 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10876 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm2 # 16-byte Folded Reload
10877 ; AVX-NEXT:    # xmm2 = xmm1[2],mem[2],xmm1[3],mem[3]
10878 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
10879 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
10880 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10881 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm2 # 16-byte Folded Reload
10882 ; AVX-NEXT:    # xmm2 = xmm1[2],mem[2],xmm1[3],mem[3]
10883 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
10884 ; AVX-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
10885 ; AVX-NEXT:    # xmm1 = mem[2,3,2,3]
10886 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
10887 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
10888 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
10889 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10890 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm14[2],xmm15[2],xmm14[3],xmm15[3]
10891 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10892 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
10893 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10894 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
10895 ; AVX-NEXT:    # xmm1 = xmm1[2],mem[2],xmm1[3],mem[3]
10896 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
10897 ; AVX-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
10898 ; AVX-NEXT:    # xmm2 = mem[2,3,2,3]
10899 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
10900 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
10901 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
10902 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10903 ; AVX-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm10[2],xmm12[2],xmm10[3],xmm12[3]
10904 ; AVX-NEXT:    vmovaps (%rsp), %xmm1 # 16-byte Reload
10905 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
10906 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13, %xmm1 # 16-byte Folded Reload
10907 ; AVX-NEXT:    # xmm1 = xmm13[2],mem[2],xmm13[3],mem[3]
10908 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
10909 ; AVX-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
10910 ; AVX-NEXT:    # xmm2 = mem[2,3,2,3]
10911 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
10912 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
10913 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
10914 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10915 ; AVX-NEXT:    vmovaps 416(%rdi), %ymm2
10916 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10917 ; AVX-NEXT:    vmovaps 384(%rdi), %ymm15
10918 ; AVX-NEXT:    vmovaps 448(%rdi), %ymm4
10919 ; AVX-NEXT:    vmovaps 480(%rdi), %ymm0
10920 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10921 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm4[0],ymm0[2],ymm4[2]
10922 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm15[0],ymm2[0],ymm15[1],ymm2[1],ymm15[4],ymm2[4],ymm15[5],ymm2[5]
10923 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]
10924 ; AVX-NEXT:    vmovaps 288(%rdi), %ymm6
10925 ; AVX-NEXT:    vmovaps 256(%rdi), %ymm1
10926 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10927 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm6[0],ymm1[1],ymm6[1],ymm1[4],ymm6[4],ymm1[5],ymm6[5]
10928 ; AVX-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10929 ; AVX-NEXT:    vextractf128 $1, %ymm1, %xmm1
10930 ; AVX-NEXT:    vmovaps 320(%rdi), %ymm2
10931 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10932 ; AVX-NEXT:    vmovaps 352(%rdi), %ymm9
10933 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm9[0],ymm2[0],ymm9[2],ymm2[2]
10934 ; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[0,1,2,0,4,5,6,4]
10935 ; AVX-NEXT:    vextractf128 $1, %ymm2, %xmm2
10936 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
10937 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
10938 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10939 ; AVX-NEXT:    vmovaps 672(%rdi), %ymm12
10940 ; AVX-NEXT:    vmovaps 640(%rdi), %ymm8
10941 ; AVX-NEXT:    vmovaps 704(%rdi), %ymm13
10942 ; AVX-NEXT:    vmovaps 736(%rdi), %ymm0
10943 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10944 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm13[0],ymm0[2],ymm13[2]
10945 ; AVX-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10946 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm8[0],ymm12[0],ymm8[1],ymm12[1],ymm8[4],ymm12[4],ymm8[5],ymm12[5]
10947 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]
10948 ; AVX-NEXT:    vmovaps 544(%rdi), %ymm1
10949 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10950 ; AVX-NEXT:    vmovaps 512(%rdi), %ymm2
10951 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10952 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[4],ymm1[4],ymm2[5],ymm1[5]
10953 ; AVX-NEXT:    vextractf128 $1, %ymm1, %xmm1
10954 ; AVX-NEXT:    vmovaps 576(%rdi), %ymm11
10955 ; AVX-NEXT:    vmovaps 608(%rdi), %ymm7
10956 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm7[0],ymm11[0],ymm7[2],ymm11[2]
10957 ; AVX-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10958 ; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[0,1,2,0,4,5,6,4]
10959 ; AVX-NEXT:    vextractf128 $1, %ymm2, %xmm2
10960 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
10961 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
10962 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10963 ; AVX-NEXT:    vmovaps 928(%rdi), %ymm2
10964 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10965 ; AVX-NEXT:    vmovaps 896(%rdi), %ymm3
10966 ; AVX-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10967 ; AVX-NEXT:    vmovaps 960(%rdi), %ymm1
10968 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10969 ; AVX-NEXT:    vmovaps 992(%rdi), %ymm0
10970 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10971 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
10972 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
10973 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]
10974 ; AVX-NEXT:    vmovaps 800(%rdi), %ymm2
10975 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10976 ; AVX-NEXT:    vmovaps 768(%rdi), %ymm1
10977 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10978 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[1],ymm2[1],ymm1[4],ymm2[4],ymm1[5],ymm2[5]
10979 ; AVX-NEXT:    vextractf128 $1, %ymm1, %xmm1
10980 ; AVX-NEXT:    vmovaps 832(%rdi), %ymm3
10981 ; AVX-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10982 ; AVX-NEXT:    vmovaps 864(%rdi), %ymm2
10983 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10984 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
10985 ; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[0,1,2,0,4,5,6,4]
10986 ; AVX-NEXT:    vextractf128 $1, %ymm2, %xmm2
10987 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
10988 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
10989 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10990 ; AVX-NEXT:    vmovaps 1184(%rdi), %ymm2
10991 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10992 ; AVX-NEXT:    vmovaps 1152(%rdi), %ymm1
10993 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10994 ; AVX-NEXT:    vmovaps 1216(%rdi), %ymm0
10995 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10996 ; AVX-NEXT:    vmovaps 1248(%rdi), %ymm3
10997 ; AVX-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10998 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm3[0],ymm0[0],ymm3[2],ymm0[2]
10999 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[1],ymm2[1],ymm1[4],ymm2[4],ymm1[5],ymm2[5]
11000 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]
11001 ; AVX-NEXT:    vmovaps 1056(%rdi), %ymm1
11002 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11003 ; AVX-NEXT:    vmovaps 1024(%rdi), %ymm2
11004 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11005 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[4],ymm1[4],ymm2[5],ymm1[5]
11006 ; AVX-NEXT:    vextractf128 $1, %ymm1, %xmm1
11007 ; AVX-NEXT:    vmovaps 1088(%rdi), %ymm3
11008 ; AVX-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11009 ; AVX-NEXT:    vmovaps 1120(%rdi), %ymm2
11010 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11011 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
11012 ; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[0,1,2,0,4,5,6,4]
11013 ; AVX-NEXT:    vextractf128 $1, %ymm2, %xmm2
11014 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
11015 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
11016 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11017 ; AVX-NEXT:    vmovaps 1440(%rdi), %ymm2
11018 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11019 ; AVX-NEXT:    vmovaps 1408(%rdi), %ymm3
11020 ; AVX-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11021 ; AVX-NEXT:    vmovaps 1472(%rdi), %ymm1
11022 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11023 ; AVX-NEXT:    vmovaps 1504(%rdi), %ymm0
11024 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11025 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
11026 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
11027 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]
11028 ; AVX-NEXT:    vmovaps 1312(%rdi), %ymm2
11029 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11030 ; AVX-NEXT:    vmovaps 1280(%rdi), %ymm1
11031 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11032 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[1],ymm2[1],ymm1[4],ymm2[4],ymm1[5],ymm2[5]
11033 ; AVX-NEXT:    vextractf128 $1, %ymm1, %xmm1
11034 ; AVX-NEXT:    vmovaps 1344(%rdi), %ymm3
11035 ; AVX-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11036 ; AVX-NEXT:    vmovaps 1376(%rdi), %ymm2
11037 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11038 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
11039 ; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[0,1,2,0,4,5,6,4]
11040 ; AVX-NEXT:    vextractf128 $1, %ymm2, %xmm2
11041 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
11042 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
11043 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11044 ; AVX-NEXT:    vmovaps 1696(%rdi), %ymm2
11045 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11046 ; AVX-NEXT:    vmovaps 1664(%rdi), %ymm3
11047 ; AVX-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11048 ; AVX-NEXT:    vmovaps 1728(%rdi), %ymm1
11049 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11050 ; AVX-NEXT:    vmovaps 1760(%rdi), %ymm0
11051 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11052 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
11053 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
11054 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]
11055 ; AVX-NEXT:    vmovaps 1568(%rdi), %ymm2
11056 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11057 ; AVX-NEXT:    vmovaps 1536(%rdi), %ymm1
11058 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11059 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[1],ymm2[1],ymm1[4],ymm2[4],ymm1[5],ymm2[5]
11060 ; AVX-NEXT:    vextractf128 $1, %ymm1, %xmm1
11061 ; AVX-NEXT:    vmovaps 1600(%rdi), %ymm3
11062 ; AVX-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11063 ; AVX-NEXT:    vmovaps 1632(%rdi), %ymm2
11064 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11065 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
11066 ; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[0,1,2,0,4,5,6,4]
11067 ; AVX-NEXT:    vextractf128 $1, %ymm2, %xmm2
11068 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
11069 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
11070 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11071 ; AVX-NEXT:    vmovaps 1952(%rdi), %ymm2
11072 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11073 ; AVX-NEXT:    vmovaps 1920(%rdi), %ymm3
11074 ; AVX-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11075 ; AVX-NEXT:    vmovaps 1984(%rdi), %ymm1
11076 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11077 ; AVX-NEXT:    vmovaps 2016(%rdi), %ymm0
11078 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11079 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
11080 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
11081 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]
11082 ; AVX-NEXT:    vmovaps 1824(%rdi), %ymm2
11083 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11084 ; AVX-NEXT:    vmovaps 1792(%rdi), %ymm1
11085 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11086 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[1],ymm2[1],ymm1[4],ymm2[4],ymm1[5],ymm2[5]
11087 ; AVX-NEXT:    vextractf128 $1, %ymm1, %xmm1
11088 ; AVX-NEXT:    vmovaps 1856(%rdi), %ymm3
11089 ; AVX-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11090 ; AVX-NEXT:    vmovaps 1888(%rdi), %ymm2
11091 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11092 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
11093 ; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[0,1,2,0,4,5,6,4]
11094 ; AVX-NEXT:    vextractf128 $1, %ymm2, %xmm2
11095 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
11096 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
11097 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11098 ; AVX-NEXT:    vmovaps 160(%rdi), %ymm2
11099 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11100 ; AVX-NEXT:    vmovaps 128(%rdi), %ymm3
11101 ; AVX-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11102 ; AVX-NEXT:    vmovaps 192(%rdi), %ymm1
11103 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11104 ; AVX-NEXT:    vmovaps 224(%rdi), %ymm0
11105 ; AVX-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
11106 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
11107 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
11108 ; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]
11109 ; AVX-NEXT:    vmovaps 64(%rdi), %ymm1
11110 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11111 ; AVX-NEXT:    vmovaps 96(%rdi), %ymm0
11112 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11113 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
11114 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[0,1,2,0,4,5,6,4]
11115 ; AVX-NEXT:    vextractf128 $1, %ymm0, %xmm0
11116 ; AVX-NEXT:    vmovaps (%rdi), %ymm1
11117 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11118 ; AVX-NEXT:    vmovaps 32(%rdi), %ymm2
11119 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11120 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm14 = ymm1[0],ymm2[0],ymm1[1],ymm2[1],ymm1[4],ymm2[4],ymm1[5],ymm2[5]
11121 ; AVX-NEXT:    vextractf128 $1, %ymm14, %xmm14
11122 ; AVX-NEXT:    vblendps {{.*#+}} xmm0 = xmm14[0,1],xmm0[2,3]
11123 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm10[4,5,6,7]
11124 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11125 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
11126 ; AVX-NEXT:    vmovaps %ymm4, %ymm5
11127 ; AVX-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11128 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm4[0],ymm3[0],ymm4[1],ymm3[1],ymm4[4],ymm3[4],ymm4[5],ymm3[5]
11129 ; AVX-NEXT:    vmovaps %ymm15, %ymm4
11130 ; AVX-NEXT:    vmovups %ymm15, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11131 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11132 ; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm1[1,0],ymm15[1,0],ymm1[5,4],ymm15[5,4]
11133 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm10[2,0],ymm0[2,3],ymm10[6,4],ymm0[6,7]
11134 ; AVX-NEXT:    vmovaps %ymm9, %ymm15
11135 ; AVX-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11136 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
11137 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm10 = ymm9[0],ymm15[0],ymm9[1],ymm15[1],ymm9[4],ymm15[4],ymm9[5],ymm15[5]
11138 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
11139 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
11140 ; AVX-NEXT:    vshufps {{.*#+}} ymm14 = ymm6[1,0],ymm2[1,0],ymm6[5,4],ymm2[5,4]
11141 ; AVX-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[2,0,2,3,6,4,6,7]
11142 ; AVX-NEXT:    vextractf128 $1, %ymm14, %xmm14
11143 ; AVX-NEXT:    vblendps {{.*#+}} xmm10 = xmm14[0,1],xmm10[2,3]
11144 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm0[4,5,6,7]
11145 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11146 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11147 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm13[0],ymm6[0],ymm13[1],ymm6[1],ymm13[4],ymm6[4],ymm13[5],ymm6[5]
11148 ; AVX-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11149 ; AVX-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11150 ; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm12[1,0],ymm8[1,0],ymm12[5,4],ymm8[5,4]
11151 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm10[2,0],ymm0[2,3],ymm10[6,4],ymm0[6,7]
11152 ; AVX-NEXT:    vmovaps %ymm11, %ymm13
11153 ; AVX-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11154 ; AVX-NEXT:    vunpcklps {{.*#+}} ymm10 = ymm11[0],ymm7[0],ymm11[1],ymm7[1],ymm11[4],ymm7[4],ymm11[5],ymm7[5]
11155 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
11156 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload
11157 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
11158 ; AVX-NEXT:    vshufps {{.*#+}} ymm14 = ymm7[1,0],ymm11[1,0],ymm7[5,4],ymm11[5,4]
11159 ; AVX-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[2,0,2,3,6,4,6,7]
11160 ; AVX-NEXT:    vextractf128 $1, %ymm14, %xmm14
11161 ; AVX-NEXT:    vblendps {{.*#+}} xmm10 = xmm14[0,1],xmm10[2,3]
11162 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm0[4,5,6,7]
11163 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11164 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11165 ; AVX-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
11166 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[1],mem[1],ymm0[4],mem[4],ymm0[5],mem[5]
11167 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
11168 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
11169 ; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm10[1,0],ymm7[1,0],ymm10[5,4],ymm7[5,4]
11170 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm10[2,0],ymm0[2,3],ymm10[6,4],ymm0[6,7]
11171 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
11172 ; AVX-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
11173 ; AVX-NEXT:    # ymm10 = ymm10[0],mem[0],ymm10[1],mem[1],ymm10[4],mem[4],ymm10[5],mem[5]
11174 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
11175 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
11176 ; AVX-NEXT:    vshufps $17, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
11177 ; AVX-NEXT:    # ymm14 = ymm14[1,0],mem[1,0],ymm14[5,4],mem[5,4]
11178 ; AVX-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[2,0,2,3,6,4,6,7]
11179 ; AVX-NEXT:    vextractf128 $1, %ymm14, %xmm14
11180 ; AVX-NEXT:    vblendps {{.*#+}} xmm10 = xmm14[0,1],xmm10[2,3]
11181 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm0[4,5,6,7]
11182 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11183 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11184 ; AVX-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
11185 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[1],mem[1],ymm0[4],mem[4],ymm0[5],mem[5]
11186 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
11187 ; AVX-NEXT:    vshufps $17, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
11188 ; AVX-NEXT:    # ymm10 = ymm10[1,0],mem[1,0],ymm10[5,4],mem[5,4]
11189 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm10[2,0],ymm0[2,3],ymm10[6,4],ymm0[6,7]
11190 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
11191 ; AVX-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
11192 ; AVX-NEXT:    # ymm10 = ymm10[0],mem[0],ymm10[1],mem[1],ymm10[4],mem[4],ymm10[5],mem[5]
11193 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
11194 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
11195 ; AVX-NEXT:    vshufps $17, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
11196 ; AVX-NEXT:    # ymm14 = ymm14[1,0],mem[1,0],ymm14[5,4],mem[5,4]
11197 ; AVX-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[2,0,2,3,6,4,6,7]
11198 ; AVX-NEXT:    vextractf128 $1, %ymm14, %xmm14
11199 ; AVX-NEXT:    vblendps {{.*#+}} xmm10 = xmm14[0,1],xmm10[2,3]
11200 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm0[4,5,6,7]
11201 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11202 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11203 ; AVX-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
11204 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[1],mem[1],ymm0[4],mem[4],ymm0[5],mem[5]
11205 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
11206 ; AVX-NEXT:    vshufps $17, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
11207 ; AVX-NEXT:    # ymm10 = ymm10[1,0],mem[1,0],ymm10[5,4],mem[5,4]
11208 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm10[2,0],ymm0[2,3],ymm10[6,4],ymm0[6,7]
11209 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
11210 ; AVX-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
11211 ; AVX-NEXT:    # ymm10 = ymm10[0],mem[0],ymm10[1],mem[1],ymm10[4],mem[4],ymm10[5],mem[5]
11212 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
11213 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
11214 ; AVX-NEXT:    vshufps $17, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
11215 ; AVX-NEXT:    # ymm14 = ymm14[1,0],mem[1,0],ymm14[5,4],mem[5,4]
11216 ; AVX-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[2,0,2,3,6,4,6,7]
11217 ; AVX-NEXT:    vextractf128 $1, %ymm14, %xmm14
11218 ; AVX-NEXT:    vblendps {{.*#+}} xmm10 = xmm14[0,1],xmm10[2,3]
11219 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm0[4,5,6,7]
11220 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11221 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11222 ; AVX-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
11223 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[1],mem[1],ymm0[4],mem[4],ymm0[5],mem[5]
11224 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
11225 ; AVX-NEXT:    vshufps $17, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
11226 ; AVX-NEXT:    # ymm10 = ymm10[1,0],mem[1,0],ymm10[5,4],mem[5,4]
11227 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm10[2,0],ymm0[2,3],ymm10[6,4],ymm0[6,7]
11228 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
11229 ; AVX-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
11230 ; AVX-NEXT:    # ymm10 = ymm10[0],mem[0],ymm10[1],mem[1],ymm10[4],mem[4],ymm10[5],mem[5]
11231 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
11232 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
11233 ; AVX-NEXT:    vshufps $17, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
11234 ; AVX-NEXT:    # ymm14 = ymm14[1,0],mem[1,0],ymm14[5,4],mem[5,4]
11235 ; AVX-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[2,0,2,3,6,4,6,7]
11236 ; AVX-NEXT:    vextractf128 $1, %ymm14, %xmm14
11237 ; AVX-NEXT:    vblendps {{.*#+}} xmm10 = xmm14[0,1],xmm10[2,3]
11238 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm0[4,5,6,7]
11239 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11240 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11241 ; AVX-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
11242 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[1],mem[1],ymm0[4],mem[4],ymm0[5],mem[5]
11243 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
11244 ; AVX-NEXT:    vshufps $17, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
11245 ; AVX-NEXT:    # ymm10 = ymm10[1,0],mem[1,0],ymm10[5,4],mem[5,4]
11246 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm10[2,0],ymm0[2,3],ymm10[6,4],ymm0[6,7]
11247 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
11248 ; AVX-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
11249 ; AVX-NEXT:    # ymm10 = ymm10[0],mem[0],ymm10[1],mem[1],ymm10[4],mem[4],ymm10[5],mem[5]
11250 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
11251 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
11252 ; AVX-NEXT:    vshufps $17, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
11253 ; AVX-NEXT:    # ymm14 = ymm14[1,0],mem[1,0],ymm14[5,4],mem[5,4]
11254 ; AVX-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[2,0,2,3,6,4,6,7]
11255 ; AVX-NEXT:    vextractf128 $1, %ymm14, %xmm14
11256 ; AVX-NEXT:    vblendps {{.*#+}} xmm10 = xmm14[0,1],xmm10[2,3]
11257 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm0[4,5,6,7]
11258 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11259 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11260 ; AVX-NEXT:    vunpcklps (%rsp), %ymm0, %ymm0 # 32-byte Folded Reload
11261 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[1],mem[1],ymm0[4],mem[4],ymm0[5],mem[5]
11262 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
11263 ; AVX-NEXT:    vshufps $17, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
11264 ; AVX-NEXT:    # ymm10 = ymm10[1,0],mem[1,0],ymm10[5,4],mem[5,4]
11265 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm10[2,0],ymm0[2,3],ymm10[6,4],ymm0[6,7]
11266 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
11267 ; AVX-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
11268 ; AVX-NEXT:    # ymm10 = ymm10[0],mem[0],ymm10[1],mem[1],ymm10[4],mem[4],ymm10[5],mem[5]
11269 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
11270 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
11271 ; AVX-NEXT:    vshufps $17, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
11272 ; AVX-NEXT:    # ymm14 = ymm14[1,0],mem[1,0],ymm14[5,4],mem[5,4]
11273 ; AVX-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[2,0,2,3,6,4,6,7]
11274 ; AVX-NEXT:    vextractf128 $1, %ymm14, %xmm14
11275 ; AVX-NEXT:    vblendps {{.*#+}} xmm10 = xmm14[0,1],xmm10[2,3]
11276 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm0[4,5,6,7]
11277 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11278 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm3[1],ymm5[1],ymm3[3],ymm5[3]
11279 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm10 = ymm4[2],ymm1[2],ymm4[3],ymm1[3],ymm4[6],ymm1[6],ymm4[7],ymm1[7]
11280 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm10[0,1],ymm0[2,0],ymm10[4,5],ymm0[6,4]
11281 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm10 # 32-byte Folded Reload
11282 ; AVX-NEXT:    # ymm10 = ymm2[2],mem[2],ymm2[3],mem[3],ymm2[6],mem[6],ymm2[7],mem[7]
11283 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
11284 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm14 = ymm15[1],ymm9[1],ymm15[3],ymm9[3]
11285 ; AVX-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[0,1,2,0,4,5,6,4]
11286 ; AVX-NEXT:    vextractf128 $1, %ymm14, %xmm14
11287 ; AVX-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0,1],xmm14[2,3]
11288 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm0[4,5,6,7]
11289 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11290 ; AVX-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm0 # 32-byte Folded Reload
11291 ; AVX-NEXT:    # ymm0 = ymm6[1],mem[1],ymm6[3],mem[3]
11292 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm10 = ymm8[2],ymm12[2],ymm8[3],ymm12[3],ymm8[6],ymm12[6],ymm8[7],ymm12[7]
11293 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm10[0,1],ymm0[2,0],ymm10[4,5],ymm0[6,4]
11294 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
11295 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm10 = ymm11[2],ymm12[2],ymm11[3],ymm12[3],ymm11[6],ymm12[6],ymm11[7],ymm12[7]
11296 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
11297 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11298 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm14 = ymm1[1],ymm13[1],ymm1[3],ymm13[3]
11299 ; AVX-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[0,1,2,0,4,5,6,4]
11300 ; AVX-NEXT:    vextractf128 $1, %ymm14, %xmm14
11301 ; AVX-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0,1],xmm14[2,3]
11302 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm0[4,5,6,7]
11303 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11304 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11305 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
11306 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm6[1],ymm4[1],ymm6[3],ymm4[3]
11307 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
11308 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm10 = ymm7[2],ymm5[2],ymm7[3],ymm5[3],ymm7[6],ymm5[6],ymm7[7],ymm5[7]
11309 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm10[0,1],ymm0[2,0],ymm10[4,5],ymm0[6,4]
11310 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
11311 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload
11312 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm10 = ymm13[2],ymm11[2],ymm13[3],ymm11[3],ymm13[6],ymm11[6],ymm13[7],ymm11[7]
11313 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
11314 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
11315 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
11316 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm14 = ymm3[1],ymm2[1],ymm3[3],ymm2[3]
11317 ; AVX-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[0,1,2,0,4,5,6,4]
11318 ; AVX-NEXT:    vextractf128 $1, %ymm14, %xmm14
11319 ; AVX-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0,1],xmm14[2,3]
11320 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm0[4,5,6,7]
11321 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11322 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
11323 ; AVX-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm0 # 32-byte Folded Reload
11324 ; AVX-NEXT:    # ymm0 = ymm8[1],mem[1],ymm8[3],mem[3]
11325 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
11326 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
11327 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm10 = ymm9[2],ymm7[2],ymm9[3],ymm7[3],ymm9[6],ymm7[6],ymm9[7],ymm7[7]
11328 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm10[0,1],ymm0[2,0],ymm10[4,5],ymm0[6,4]
11329 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload
11330 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm10 # 32-byte Folded Reload
11331 ; AVX-NEXT:    # ymm10 = ymm15[2],mem[2],ymm15[3],mem[3],ymm15[6],mem[6],ymm15[7],mem[7]
11332 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
11333 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
11334 ; AVX-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
11335 ; AVX-NEXT:    # ymm14 = ymm14[1],mem[1],ymm14[3],mem[3]
11336 ; AVX-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[0,1,2,0,4,5,6,4]
11337 ; AVX-NEXT:    vextractf128 $1, %ymm14, %xmm14
11338 ; AVX-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0,1],xmm14[2,3]
11339 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm0[4,5,6,7]
11340 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11341 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11342 ; AVX-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
11343 ; AVX-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
11344 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
11345 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
11346 ; AVX-NEXT:    # ymm10 = ymm10[2],mem[2],ymm10[3],mem[3],ymm10[6],mem[6],ymm10[7],mem[7]
11347 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm10[0,1],ymm0[2,0],ymm10[4,5],ymm0[6,4]
11348 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
11349 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
11350 ; AVX-NEXT:    # ymm10 = ymm10[2],mem[2],ymm10[3],mem[3],ymm10[6],mem[6],ymm10[7],mem[7]
11351 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
11352 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
11353 ; AVX-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
11354 ; AVX-NEXT:    # ymm14 = ymm14[1],mem[1],ymm14[3],mem[3]
11355 ; AVX-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[0,1,2,0,4,5,6,4]
11356 ; AVX-NEXT:    vextractf128 $1, %ymm14, %xmm14
11357 ; AVX-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0,1],xmm14[2,3]
11358 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm0[4,5,6,7]
11359 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11360 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11361 ; AVX-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
11362 ; AVX-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
11363 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
11364 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
11365 ; AVX-NEXT:    # ymm10 = ymm10[2],mem[2],ymm10[3],mem[3],ymm10[6],mem[6],ymm10[7],mem[7]
11366 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm10[0,1],ymm0[2,0],ymm10[4,5],ymm0[6,4]
11367 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
11368 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
11369 ; AVX-NEXT:    # ymm10 = ymm10[2],mem[2],ymm10[3],mem[3],ymm10[6],mem[6],ymm10[7],mem[7]
11370 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
11371 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
11372 ; AVX-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
11373 ; AVX-NEXT:    # ymm14 = ymm14[1],mem[1],ymm14[3],mem[3]
11374 ; AVX-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[0,1,2,0,4,5,6,4]
11375 ; AVX-NEXT:    vextractf128 $1, %ymm14, %xmm14
11376 ; AVX-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0,1],xmm14[2,3]
11377 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm0[4,5,6,7]
11378 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11379 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11380 ; AVX-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
11381 ; AVX-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
11382 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
11383 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
11384 ; AVX-NEXT:    # ymm10 = ymm10[2],mem[2],ymm10[3],mem[3],ymm10[6],mem[6],ymm10[7],mem[7]
11385 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm10[0,1],ymm0[2,0],ymm10[4,5],ymm0[6,4]
11386 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
11387 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
11388 ; AVX-NEXT:    # ymm10 = ymm10[2],mem[2],ymm10[3],mem[3],ymm10[6],mem[6],ymm10[7],mem[7]
11389 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
11390 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
11391 ; AVX-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
11392 ; AVX-NEXT:    # ymm14 = ymm14[1],mem[1],ymm14[3],mem[3]
11393 ; AVX-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[0,1,2,0,4,5,6,4]
11394 ; AVX-NEXT:    vextractf128 $1, %ymm14, %xmm14
11395 ; AVX-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0,1],xmm14[2,3]
11396 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm0[4,5,6,7]
11397 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11398 ; AVX-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
11399 ; AVX-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
11400 ; AVX-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
11401 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
11402 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
11403 ; AVX-NEXT:    # ymm10 = ymm10[2],mem[2],ymm10[3],mem[3],ymm10[6],mem[6],ymm10[7],mem[7]
11404 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm10[0,1],ymm0[2,0],ymm10[4,5],ymm0[6,4]
11405 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
11406 ; AVX-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
11407 ; AVX-NEXT:    # ymm10 = ymm10[1],mem[1],ymm10[3],mem[3]
11408 ; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm10[0,1,2,0,4,5,6,4]
11409 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
11410 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
11411 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
11412 ; AVX-NEXT:    # ymm14 = ymm14[2],mem[2],ymm14[3],mem[3],ymm14[6],mem[6],ymm14[7],mem[7]
11413 ; AVX-NEXT:    vextractf128 $1, %ymm14, %xmm14
11414 ; AVX-NEXT:    vblendps {{.*#+}} xmm10 = xmm14[0,1],xmm10[2,3]
11415 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm0[4,5,6,7]
11416 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11417 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11418 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
11419 ; AVX-NEXT:    # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
11420 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
11421 ; AVX-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
11422 ; AVX-NEXT:    # ymm10 = ymm10[3,0],mem[3,0],ymm10[7,4],mem[7,4]
11423 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm10[2,0],ymm0[2,3],ymm10[6,4],ymm0[6,7]
11424 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
11425 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
11426 ; AVX-NEXT:    # ymm10 = ymm10[2],mem[2],ymm10[3],mem[3],ymm10[6],mem[6],ymm10[7],mem[7]
11427 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
11428 ; AVX-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
11429 ; AVX-NEXT:    # ymm14 = ymm14[3,0],mem[3,0],ymm14[7,4],mem[7,4]
11430 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
11431 ; AVX-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[2,0,2,3,6,4,6,7]
11432 ; AVX-NEXT:    vextractf128 $1, %ymm14, %xmm14
11433 ; AVX-NEXT:    vblendps {{.*#+}} xmm10 = xmm14[0,1],xmm10[2,3]
11434 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm0[4,5,6,7]
11435 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11436 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11437 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
11438 ; AVX-NEXT:    # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
11439 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
11440 ; AVX-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
11441 ; AVX-NEXT:    # ymm10 = ymm10[3,0],mem[3,0],ymm10[7,4],mem[7,4]
11442 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm10[2,0],ymm0[2,3],ymm10[6,4],ymm0[6,7]
11443 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
11444 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm10 = ymm10[2],ymm1[2],ymm10[3],ymm1[3],ymm10[6],ymm1[6],ymm10[7],ymm1[7]
11445 ; AVX-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm14 # 32-byte Folded Reload
11446 ; AVX-NEXT:    # ymm14 = ymm12[3,0],mem[3,0],ymm12[7,4],mem[7,4]
11447 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
11448 ; AVX-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[2,0,2,3,6,4,6,7]
11449 ; AVX-NEXT:    vextractf128 $1, %ymm14, %xmm14
11450 ; AVX-NEXT:    vblendps {{.*#+}} xmm10 = xmm14[0,1],xmm10[2,3]
11451 ; AVX-NEXT:    vblendps {{.*#+}} ymm12 = ymm10[0,1,2,3],ymm0[4,5,6,7]
11452 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm0 = ymm4[2],ymm6[2],ymm4[3],ymm6[3],ymm4[6],ymm6[6],ymm4[7],ymm6[7]
11453 ; AVX-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm10 # 32-byte Folded Reload
11454 ; AVX-NEXT:    # ymm10 = ymm5[3,0],mem[3,0],ymm5[7,4],mem[7,4]
11455 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm10[2,0],ymm0[2,3],ymm10[6,4],ymm0[6,7]
11456 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm10 = ymm2[2],ymm3[2],ymm2[3],ymm3[3],ymm2[6],ymm3[6],ymm2[7],ymm3[7]
11457 ; AVX-NEXT:    vshufps {{.*#+}} ymm14 = ymm11[3,0],ymm13[3,0],ymm11[7,4],ymm13[7,4]
11458 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
11459 ; AVX-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[2,0,2,3,6,4,6,7]
11460 ; AVX-NEXT:    vextractf128 $1, %ymm14, %xmm14
11461 ; AVX-NEXT:    vblendps {{.*#+}} xmm10 = xmm14[0,1],xmm10[2,3]
11462 ; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm10[0,1,2,3],ymm0[4,5,6,7]
11463 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11464 ; AVX-NEXT:    vunpckhps {{.*#+}} ymm0 = ymm0[2],ymm8[2],ymm0[3],ymm8[3],ymm0[6],ymm8[6],ymm0[7],ymm8[7]
11465 ; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm7[3,0],ymm9[3,0],ymm7[7,4],ymm9[7,4]
11466 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm10[2,0],ymm0[2,3],ymm10[6,4],ymm0[6,7]
11467 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11468 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm10 # 32-byte Folded Reload
11469 ; AVX-NEXT:    # ymm10 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
11470 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11471 ; AVX-NEXT:    vshufps {{.*#+}} ymm14 = ymm1[3,0],ymm15[3,0],ymm1[7,4],ymm15[7,4]
11472 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
11473 ; AVX-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[2,0,2,3,6,4,6,7]
11474 ; AVX-NEXT:    vextractf128 $1, %ymm14, %xmm14
11475 ; AVX-NEXT:    vblendps {{.*#+}} xmm10 = xmm14[0,1],xmm10[2,3]
11476 ; AVX-NEXT:    vblendps {{.*#+}} ymm4 = ymm10[0,1,2,3],ymm0[4,5,6,7]
11477 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11478 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
11479 ; AVX-NEXT:    # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
11480 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11481 ; AVX-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm10 # 32-byte Folded Reload
11482 ; AVX-NEXT:    # ymm10 = ymm1[3,0],mem[3,0],ymm1[7,4],mem[7,4]
11483 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm10[2,0],ymm0[2,3],ymm10[6,4],ymm0[6,7]
11484 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11485 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm10 # 32-byte Folded Reload
11486 ; AVX-NEXT:    # ymm10 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
11487 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11488 ; AVX-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm14 # 32-byte Folded Reload
11489 ; AVX-NEXT:    # ymm14 = ymm1[3,0],mem[3,0],ymm1[7,4],mem[7,4]
11490 ; AVX-NEXT:    vextractf128 $1, %ymm10, %xmm10
11491 ; AVX-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[2,0,2,3,6,4,6,7]
11492 ; AVX-NEXT:    vextractf128 $1, %ymm14, %xmm14
11493 ; AVX-NEXT:    vblendps {{.*#+}} xmm10 = xmm14[0,1],xmm10[2,3]
11494 ; AVX-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1,2,3],ymm0[4,5,6,7]
11495 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11496 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
11497 ; AVX-NEXT:    # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
11498 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11499 ; AVX-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm14 # 32-byte Folded Reload
11500 ; AVX-NEXT:    # ymm14 = ymm1[3,0],mem[3,0],ymm1[7,4],mem[7,4]
11501 ; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm14[2,0],ymm0[2,3],ymm14[6,4],ymm0[6,7]
11502 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11503 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm14 # 32-byte Folded Reload
11504 ; AVX-NEXT:    # ymm14 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
11505 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11506 ; AVX-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
11507 ; AVX-NEXT:    # ymm0 = ymm0[3,0],mem[3,0],ymm0[7,4],mem[7,4]
11508 ; AVX-NEXT:    vextractf128 $1, %ymm14, %xmm14
11509 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,0,2,3,6,4,6,7]
11510 ; AVX-NEXT:    vextractf128 $1, %ymm0, %xmm0
11511 ; AVX-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm14[2,3]
11512 ; AVX-NEXT:    vblendps {{.*#+}} ymm14 = ymm0[0,1,2,3],ymm1[4,5,6,7]
11513 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11514 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
11515 ; AVX-NEXT:    # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
11516 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11517 ; AVX-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
11518 ; AVX-NEXT:    # ymm1 = ymm1[3,0],mem[3,0],ymm1[7,4],mem[7,4]
11519 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[2,0],ymm0[2,3],ymm1[6,4],ymm0[6,7]
11520 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11521 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
11522 ; AVX-NEXT:    # ymm1 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
11523 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
11524 ; AVX-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm5 # 32-byte Folded Reload
11525 ; AVX-NEXT:    # ymm5 = ymm2[3,0],mem[3,0],ymm2[7,4],mem[7,4]
11526 ; AVX-NEXT:    vextractf128 $1, %ymm1, %xmm1
11527 ; AVX-NEXT:    vshufps {{.*#+}} ymm5 = ymm5[2,0,2,3,6,4,6,7]
11528 ; AVX-NEXT:    vextractf128 $1, %ymm5, %xmm5
11529 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm5[0,1],xmm1[2,3]
11530 ; AVX-NEXT:    vblendps {{.*#+}} ymm5 = ymm1[0,1,2,3],ymm0[4,5,6,7]
11531 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11532 ; AVX-NEXT:    vunpckhps (%rsp), %ymm0, %ymm0 # 32-byte Folded Reload
11533 ; AVX-NEXT:    # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
11534 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11535 ; AVX-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
11536 ; AVX-NEXT:    # ymm1 = ymm1[3,0],mem[3,0],ymm1[7,4],mem[7,4]
11537 ; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[2,0],ymm0[2,3],ymm1[6,4],ymm0[6,7]
11538 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11539 ; AVX-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
11540 ; AVX-NEXT:    # ymm1 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
11541 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
11542 ; AVX-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
11543 ; AVX-NEXT:    # ymm2 = ymm2[3,0],mem[3,0],ymm2[7,4],mem[7,4]
11544 ; AVX-NEXT:    vextractf128 $1, %ymm1, %xmm1
11545 ; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[2,0,2,3,6,4,6,7]
11546 ; AVX-NEXT:    vextractf128 $1, %ymm2, %xmm2
11547 ; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
11548 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
11549 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11550 ; AVX-NEXT:    vmovaps %ymm1, 192(%rsi)
11551 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11552 ; AVX-NEXT:    vmovaps %ymm1, 128(%rsi)
11553 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11554 ; AVX-NEXT:    vmovaps %ymm1, 64(%rsi)
11555 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11556 ; AVX-NEXT:    vmovaps %ymm1, (%rsi)
11557 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11558 ; AVX-NEXT:    vmovaps %ymm1, 224(%rsi)
11559 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11560 ; AVX-NEXT:    vmovaps %ymm1, 160(%rsi)
11561 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11562 ; AVX-NEXT:    vmovaps %ymm1, 96(%rsi)
11563 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11564 ; AVX-NEXT:    vmovaps %ymm1, 32(%rsi)
11565 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11566 ; AVX-NEXT:    vmovaps %ymm1, 192(%rdx)
11567 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11568 ; AVX-NEXT:    vmovaps %ymm1, 128(%rdx)
11569 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11570 ; AVX-NEXT:    vmovaps %ymm1, 64(%rdx)
11571 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11572 ; AVX-NEXT:    vmovaps %ymm1, (%rdx)
11573 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11574 ; AVX-NEXT:    vmovaps %ymm1, 224(%rdx)
11575 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11576 ; AVX-NEXT:    vmovaps %ymm1, 160(%rdx)
11577 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11578 ; AVX-NEXT:    vmovaps %ymm1, 96(%rdx)
11579 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11580 ; AVX-NEXT:    vmovaps %ymm1, 32(%rdx)
11581 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11582 ; AVX-NEXT:    vmovaps %ymm1, 192(%rcx)
11583 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11584 ; AVX-NEXT:    vmovaps %ymm1, 128(%rcx)
11585 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11586 ; AVX-NEXT:    vmovaps %ymm1, 64(%rcx)
11587 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11588 ; AVX-NEXT:    vmovaps %ymm1, (%rcx)
11589 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11590 ; AVX-NEXT:    vmovaps %ymm1, 224(%rcx)
11591 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11592 ; AVX-NEXT:    vmovaps %ymm1, 160(%rcx)
11593 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11594 ; AVX-NEXT:    vmovaps %ymm1, 96(%rcx)
11595 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11596 ; AVX-NEXT:    vmovaps %ymm1, 32(%rcx)
11597 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11598 ; AVX-NEXT:    vmovaps %ymm1, 192(%r8)
11599 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11600 ; AVX-NEXT:    vmovaps %ymm1, 128(%r8)
11601 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11602 ; AVX-NEXT:    vmovaps %ymm1, 64(%r8)
11603 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11604 ; AVX-NEXT:    vmovaps %ymm1, (%r8)
11605 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11606 ; AVX-NEXT:    vmovaps %ymm1, 224(%r8)
11607 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11608 ; AVX-NEXT:    vmovaps %ymm1, 160(%r8)
11609 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11610 ; AVX-NEXT:    vmovaps %ymm1, 96(%r8)
11611 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11612 ; AVX-NEXT:    vmovaps %ymm1, 32(%r8)
11613 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11614 ; AVX-NEXT:    vmovaps %ymm1, 224(%r9)
11615 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11616 ; AVX-NEXT:    vmovaps %ymm1, 192(%r9)
11617 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11618 ; AVX-NEXT:    vmovaps %ymm1, 160(%r9)
11619 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11620 ; AVX-NEXT:    vmovaps %ymm1, 128(%r9)
11621 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11622 ; AVX-NEXT:    vmovaps %ymm1, 96(%r9)
11623 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11624 ; AVX-NEXT:    vmovaps %ymm1, 64(%r9)
11625 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11626 ; AVX-NEXT:    vmovaps %ymm1, 32(%r9)
11627 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11628 ; AVX-NEXT:    vmovaps %ymm1, (%r9)
11629 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax
11630 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11631 ; AVX-NEXT:    vmovaps %ymm1, 224(%rax)
11632 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11633 ; AVX-NEXT:    vmovaps %ymm1, 192(%rax)
11634 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11635 ; AVX-NEXT:    vmovaps %ymm1, 160(%rax)
11636 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11637 ; AVX-NEXT:    vmovaps %ymm1, 128(%rax)
11638 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11639 ; AVX-NEXT:    vmovaps %ymm1, 96(%rax)
11640 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11641 ; AVX-NEXT:    vmovaps %ymm1, 64(%rax)
11642 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11643 ; AVX-NEXT:    vmovaps %ymm1, 32(%rax)
11644 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11645 ; AVX-NEXT:    vmovaps %ymm1, (%rax)
11646 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax
11647 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11648 ; AVX-NEXT:    vmovaps %ymm1, 224(%rax)
11649 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11650 ; AVX-NEXT:    vmovaps %ymm1, 192(%rax)
11651 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11652 ; AVX-NEXT:    vmovaps %ymm1, 160(%rax)
11653 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11654 ; AVX-NEXT:    vmovaps %ymm1, 128(%rax)
11655 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11656 ; AVX-NEXT:    vmovaps %ymm1, 96(%rax)
11657 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11658 ; AVX-NEXT:    vmovaps %ymm1, 64(%rax)
11659 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11660 ; AVX-NEXT:    vmovaps %ymm1, 32(%rax)
11661 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11662 ; AVX-NEXT:    vmovaps %ymm1, (%rax)
11663 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax
11664 ; AVX-NEXT:    vmovaps %ymm5, 224(%rax)
11665 ; AVX-NEXT:    vmovaps %ymm14, 192(%rax)
11666 ; AVX-NEXT:    vmovaps %ymm10, 160(%rax)
11667 ; AVX-NEXT:    vmovaps %ymm4, 128(%rax)
11668 ; AVX-NEXT:    vmovaps %ymm3, 96(%rax)
11669 ; AVX-NEXT:    vmovaps %ymm12, 64(%rax)
11670 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11671 ; AVX-NEXT:    vmovaps %ymm1, 32(%rax)
11672 ; AVX-NEXT:    vmovaps %ymm0, (%rax)
11673 ; AVX-NEXT:    addq $3720, %rsp # imm = 0xE88
11674 ; AVX-NEXT:    vzeroupper
11675 ; AVX-NEXT:    retq
11677 ; AVX2-LABEL: load_i32_stride8_vf64:
11678 ; AVX2:       # %bb.0:
11679 ; AVX2-NEXT:    subq $3528, %rsp # imm = 0xDC8
11680 ; AVX2-NEXT:    vmovaps 288(%rdi), %xmm10
11681 ; AVX2-NEXT:    vmovaps 256(%rdi), %xmm0
11682 ; AVX2-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11683 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm0[0],xmm10[0],xmm0[1],xmm10[1]
11684 ; AVX2-NEXT:    vmovaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11685 ; AVX2-NEXT:    vmovaps 352(%rdi), %xmm9
11686 ; AVX2-NEXT:    vbroadcastss %xmm9, %xmm1
11687 ; AVX2-NEXT:    vmovaps 320(%rdi), %xmm2
11688 ; AVX2-NEXT:    vmovaps %xmm2, (%rsp) # 16-byte Spill
11689 ; AVX2-NEXT:    vbroadcastss %xmm2, %xmm2
11690 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
11691 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
11692 ; AVX2-NEXT:    vmovaps 416(%rdi), %xmm1
11693 ; AVX2-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11694 ; AVX2-NEXT:    vmovaps 384(%rdi), %xmm2
11695 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11696 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
11697 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
11698 ; AVX2-NEXT:    vmovaps 480(%rdi), %xmm13
11699 ; AVX2-NEXT:    vbroadcastss %xmm13, %xmm2
11700 ; AVX2-NEXT:    vmovaps 448(%rdi), %xmm3
11701 ; AVX2-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11702 ; AVX2-NEXT:    vbroadcastss %xmm3, %xmm3
11703 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
11704 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
11705 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
11706 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
11707 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11708 ; AVX2-NEXT:    vmovaps 800(%rdi), %xmm0
11709 ; AVX2-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11710 ; AVX2-NEXT:    vmovaps 768(%rdi), %xmm1
11711 ; AVX2-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11712 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
11713 ; AVX2-NEXT:    vmovaps 864(%rdi), %xmm12
11714 ; AVX2-NEXT:    vbroadcastss %xmm12, %xmm1
11715 ; AVX2-NEXT:    vmovaps 832(%rdi), %xmm2
11716 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11717 ; AVX2-NEXT:    vbroadcastss %xmm2, %xmm2
11718 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
11719 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
11720 ; AVX2-NEXT:    vmovaps 992(%rdi), %xmm1
11721 ; AVX2-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11722 ; AVX2-NEXT:    vbroadcastss %xmm1, %xmm1
11723 ; AVX2-NEXT:    vmovaps 960(%rdi), %xmm2
11724 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11725 ; AVX2-NEXT:    vbroadcastss %xmm2, %xmm2
11726 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
11727 ; AVX2-NEXT:    vmovaps 928(%rdi), %xmm2
11728 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11729 ; AVX2-NEXT:    vmovaps 896(%rdi), %xmm3
11730 ; AVX2-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11731 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
11732 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
11733 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
11734 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
11735 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
11736 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11737 ; AVX2-NEXT:    vmovaps 1376(%rdi), %xmm0
11738 ; AVX2-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11739 ; AVX2-NEXT:    vbroadcastss %xmm0, %xmm0
11740 ; AVX2-NEXT:    vmovaps 1344(%rdi), %xmm1
11741 ; AVX2-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11742 ; AVX2-NEXT:    vbroadcastss %xmm1, %xmm1
11743 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
11744 ; AVX2-NEXT:    vmovaps 1312(%rdi), %xmm1
11745 ; AVX2-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11746 ; AVX2-NEXT:    vmovaps 1280(%rdi), %xmm2
11747 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11748 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
11749 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
11750 ; AVX2-NEXT:    vmovaps 1504(%rdi), %xmm1
11751 ; AVX2-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11752 ; AVX2-NEXT:    vbroadcastss %xmm1, %xmm1
11753 ; AVX2-NEXT:    vmovaps 1472(%rdi), %xmm2
11754 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11755 ; AVX2-NEXT:    vbroadcastss %xmm2, %xmm2
11756 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
11757 ; AVX2-NEXT:    vmovaps 1440(%rdi), %xmm2
11758 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11759 ; AVX2-NEXT:    vmovaps 1408(%rdi), %xmm3
11760 ; AVX2-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11761 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
11762 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
11763 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
11764 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
11765 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
11766 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11767 ; AVX2-NEXT:    vmovaps 1888(%rdi), %xmm0
11768 ; AVX2-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11769 ; AVX2-NEXT:    vbroadcastss %xmm0, %xmm0
11770 ; AVX2-NEXT:    vmovaps 1856(%rdi), %xmm1
11771 ; AVX2-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11772 ; AVX2-NEXT:    vbroadcastss %xmm1, %xmm1
11773 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
11774 ; AVX2-NEXT:    vmovaps 1824(%rdi), %xmm1
11775 ; AVX2-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11776 ; AVX2-NEXT:    vmovaps 1792(%rdi), %xmm2
11777 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11778 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
11779 ; AVX2-NEXT:    vblendps {{.*#+}} xmm3 = xmm1[0,1],xmm0[2,3]
11780 ; AVX2-NEXT:    vmovaps 2016(%rdi), %xmm0
11781 ; AVX2-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11782 ; AVX2-NEXT:    vbroadcastss %xmm0, %xmm1
11783 ; AVX2-NEXT:    vmovaps 1984(%rdi), %xmm0
11784 ; AVX2-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11785 ; AVX2-NEXT:    vbroadcastss %xmm0, %xmm2
11786 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
11787 ; AVX2-NEXT:    vmovaps 1952(%rdi), %xmm0
11788 ; AVX2-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11789 ; AVX2-NEXT:    vmovaps 1920(%rdi), %xmm2
11790 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11791 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]
11792 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
11793 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
11794 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
11795 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm1[4,5,6,7]
11796 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11797 ; AVX2-NEXT:    vmovaps 608(%rdi), %xmm0
11798 ; AVX2-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11799 ; AVX2-NEXT:    vbroadcastss %xmm0, %xmm0
11800 ; AVX2-NEXT:    vmovaps 576(%rdi), %xmm1
11801 ; AVX2-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11802 ; AVX2-NEXT:    vbroadcastss %xmm1, %xmm1
11803 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
11804 ; AVX2-NEXT:    vmovaps 544(%rdi), %xmm2
11805 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11806 ; AVX2-NEXT:    vmovaps 512(%rdi), %xmm1
11807 ; AVX2-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11808 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
11809 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
11810 ; AVX2-NEXT:    vmovaps 736(%rdi), %xmm1
11811 ; AVX2-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11812 ; AVX2-NEXT:    vbroadcastss %xmm1, %xmm1
11813 ; AVX2-NEXT:    vmovaps 704(%rdi), %xmm2
11814 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11815 ; AVX2-NEXT:    vbroadcastss %xmm2, %xmm2
11816 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
11817 ; AVX2-NEXT:    vmovaps 672(%rdi), %xmm3
11818 ; AVX2-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11819 ; AVX2-NEXT:    vmovaps 640(%rdi), %xmm2
11820 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11821 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]
11822 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
11823 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
11824 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
11825 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
11826 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11827 ; AVX2-NEXT:    vmovaps 1120(%rdi), %xmm0
11828 ; AVX2-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11829 ; AVX2-NEXT:    vbroadcastss %xmm0, %xmm0
11830 ; AVX2-NEXT:    vmovaps 1088(%rdi), %xmm1
11831 ; AVX2-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11832 ; AVX2-NEXT:    vbroadcastss %xmm1, %xmm1
11833 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
11834 ; AVX2-NEXT:    vmovaps 1056(%rdi), %xmm2
11835 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11836 ; AVX2-NEXT:    vmovaps 1024(%rdi), %xmm1
11837 ; AVX2-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11838 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
11839 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
11840 ; AVX2-NEXT:    vmovaps 1248(%rdi), %xmm1
11841 ; AVX2-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11842 ; AVX2-NEXT:    vbroadcastss %xmm1, %xmm1
11843 ; AVX2-NEXT:    vmovaps 1216(%rdi), %xmm2
11844 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11845 ; AVX2-NEXT:    vbroadcastss %xmm2, %xmm2
11846 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
11847 ; AVX2-NEXT:    vmovaps 1184(%rdi), %xmm3
11848 ; AVX2-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11849 ; AVX2-NEXT:    vmovaps 1152(%rdi), %xmm2
11850 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11851 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]
11852 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
11853 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
11854 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
11855 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
11856 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11857 ; AVX2-NEXT:    vmovaps 1632(%rdi), %xmm0
11858 ; AVX2-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11859 ; AVX2-NEXT:    vbroadcastss %xmm0, %xmm0
11860 ; AVX2-NEXT:    vmovaps 1600(%rdi), %xmm1
11861 ; AVX2-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11862 ; AVX2-NEXT:    vbroadcastss %xmm1, %xmm1
11863 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
11864 ; AVX2-NEXT:    vmovaps 1568(%rdi), %xmm2
11865 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11866 ; AVX2-NEXT:    vmovaps 1536(%rdi), %xmm1
11867 ; AVX2-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11868 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
11869 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
11870 ; AVX2-NEXT:    vmovaps 1760(%rdi), %xmm1
11871 ; AVX2-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11872 ; AVX2-NEXT:    vbroadcastss %xmm1, %xmm1
11873 ; AVX2-NEXT:    vmovaps 1728(%rdi), %xmm2
11874 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11875 ; AVX2-NEXT:    vbroadcastss %xmm2, %xmm2
11876 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
11877 ; AVX2-NEXT:    vmovaps 1696(%rdi), %xmm3
11878 ; AVX2-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11879 ; AVX2-NEXT:    vmovaps 1664(%rdi), %xmm2
11880 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11881 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]
11882 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
11883 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
11884 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
11885 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
11886 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11887 ; AVX2-NEXT:    vmovaps 224(%rdi), %xmm0
11888 ; AVX2-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11889 ; AVX2-NEXT:    vbroadcastss %xmm0, %xmm0
11890 ; AVX2-NEXT:    vmovaps 192(%rdi), %xmm11
11891 ; AVX2-NEXT:    vbroadcastss %xmm11, %xmm1
11892 ; AVX2-NEXT:    vmovaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11893 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
11894 ; AVX2-NEXT:    vmovaps 160(%rdi), %xmm2
11895 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11896 ; AVX2-NEXT:    vmovaps 128(%rdi), %xmm1
11897 ; AVX2-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11898 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
11899 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
11900 ; AVX2-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
11901 ; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm1[0,1,2,3,4,5],ymm0[6,7]
11902 ; AVX2-NEXT:    vmovaps 96(%rdi), %xmm8
11903 ; AVX2-NEXT:    vbroadcastss %xmm8, %xmm1
11904 ; AVX2-NEXT:    vmovaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11905 ; AVX2-NEXT:    vmovaps 64(%rdi), %xmm7
11906 ; AVX2-NEXT:    vbroadcastss %xmm7, %xmm2
11907 ; AVX2-NEXT:    vmovaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11908 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
11909 ; AVX2-NEXT:    vmovaps (%rdi), %xmm5
11910 ; AVX2-NEXT:    vmovaps 32(%rdi), %xmm6
11911 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm5[0],xmm6[0],xmm5[1],xmm6[1]
11912 ; AVX2-NEXT:    vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11913 ; AVX2-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11914 ; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm3[2,3]
11915 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm4[4,5,6,7]
11916 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11917 ; AVX2-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
11918 ; AVX2-NEXT:    # xmm0 = mem[1,1,1,1]
11919 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0],xmm10[1],xmm0[2,3]
11920 ; AVX2-NEXT:    vmovaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11921 ; AVX2-NEXT:    vmovaps (%rsp), %xmm1 # 16-byte Reload
11922 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm9[0],xmm1[1],xmm9[1]
11923 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
11924 ; AVX2-NEXT:    vmovaps %xmm13, %xmm9
11925 ; AVX2-NEXT:    vmovaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11926 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
11927 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm10[0],xmm13[0],xmm10[1],xmm13[1]
11928 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
11929 ; AVX2-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
11930 ; AVX2-NEXT:    # xmm2 = mem[1,1,1,1]
11931 ; AVX2-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
11932 ; AVX2-NEXT:    # xmm2 = xmm2[0],mem[1],xmm2[2,3]
11933 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
11934 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
11935 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
11936 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11937 ; AVX2-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
11938 ; AVX2-NEXT:    # xmm0 = mem[1,1,1,1]
11939 ; AVX2-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
11940 ; AVX2-NEXT:    # xmm0 = xmm0[0],mem[1],xmm0[2,3]
11941 ; AVX2-NEXT:    vmovaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11942 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
11943 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm12[0],xmm1[1],xmm12[1]
11944 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
11945 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload
11946 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload
11947 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm13[0],xmm12[0],xmm13[1],xmm12[1]
11948 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
11949 ; AVX2-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
11950 ; AVX2-NEXT:    # xmm2 = mem[1,1,1,1]
11951 ; AVX2-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
11952 ; AVX2-NEXT:    # xmm2 = xmm2[0],mem[1],xmm2[2,3]
11953 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
11954 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
11955 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
11956 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11957 ; AVX2-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
11958 ; AVX2-NEXT:    # xmm0 = mem[1,1,1,1]
11959 ; AVX2-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
11960 ; AVX2-NEXT:    # xmm0 = xmm0[0],mem[1],xmm0[2,3]
11961 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
11962 ; AVX2-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
11963 ; AVX2-NEXT:    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
11964 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
11965 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
11966 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
11967 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm15[0],xmm14[0],xmm15[1],xmm14[1]
11968 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
11969 ; AVX2-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
11970 ; AVX2-NEXT:    # xmm2 = mem[1,1,1,1]
11971 ; AVX2-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
11972 ; AVX2-NEXT:    # xmm2 = xmm2[0],mem[1],xmm2[2,3]
11973 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
11974 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
11975 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
11976 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11977 ; AVX2-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
11978 ; AVX2-NEXT:    # xmm0 = mem[1,1,1,1]
11979 ; AVX2-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
11980 ; AVX2-NEXT:    # xmm0 = xmm0[0],mem[1],xmm0[2,3]
11981 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
11982 ; AVX2-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
11983 ; AVX2-NEXT:    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
11984 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
11985 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
11986 ; AVX2-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
11987 ; AVX2-NEXT:    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
11988 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
11989 ; AVX2-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
11990 ; AVX2-NEXT:    # xmm2 = mem[1,1,1,1]
11991 ; AVX2-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
11992 ; AVX2-NEXT:    # xmm2 = xmm2[0],mem[1],xmm2[2,3]
11993 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
11994 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
11995 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
11996 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11997 ; AVX2-NEXT:    vshufps {{.*#+}} xmm0 = xmm5[1,1,1,1]
11998 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0],xmm6[1],xmm0[2,3]
11999 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm7[0],xmm8[0],xmm7[1],xmm8[1]
12000 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
12001 ; AVX2-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11, %xmm1 # 16-byte Folded Reload
12002 ; AVX2-NEXT:    # xmm1 = xmm11[0],mem[0],xmm11[1],mem[1]
12003 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
12004 ; AVX2-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
12005 ; AVX2-NEXT:    # xmm2 = mem[1,1,1,1]
12006 ; AVX2-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
12007 ; AVX2-NEXT:    # xmm2 = xmm2[0],mem[1],xmm2[2,3]
12008 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
12009 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
12010 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
12011 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12012 ; AVX2-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
12013 ; AVX2-NEXT:    # xmm0 = mem[1,1,1,1]
12014 ; AVX2-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
12015 ; AVX2-NEXT:    # xmm0 = xmm0[0],mem[1],xmm0[2,3]
12016 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
12017 ; AVX2-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
12018 ; AVX2-NEXT:    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
12019 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
12020 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
12021 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
12022 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]
12023 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
12024 ; AVX2-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
12025 ; AVX2-NEXT:    # xmm2 = mem[1,1,1,1]
12026 ; AVX2-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
12027 ; AVX2-NEXT:    # xmm2 = xmm2[0],mem[1],xmm2[2,3]
12028 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
12029 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
12030 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
12031 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12032 ; AVX2-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
12033 ; AVX2-NEXT:    # xmm0 = mem[1,1,1,1]
12034 ; AVX2-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
12035 ; AVX2-NEXT:    # xmm0 = xmm0[0],mem[1],xmm0[2,3]
12036 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
12037 ; AVX2-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
12038 ; AVX2-NEXT:    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
12039 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
12040 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
12041 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload
12042 ; AVX2-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm11[0],xmm5[0],xmm11[1],xmm5[1]
12043 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
12044 ; AVX2-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
12045 ; AVX2-NEXT:    # xmm2 = mem[1,1,1,1]
12046 ; AVX2-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
12047 ; AVX2-NEXT:    # xmm2 = xmm2[0],mem[1],xmm2[2,3]
12048 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
12049 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
12050 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
12051 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12052 ; AVX2-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
12053 ; AVX2-NEXT:    # xmm0 = mem[1,1,1,1]
12054 ; AVX2-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
12055 ; AVX2-NEXT:    # xmm0 = xmm0[0],mem[1],xmm0[2,3]
12056 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
12057 ; AVX2-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
12058 ; AVX2-NEXT:    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
12059 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
12060 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
12061 ; AVX2-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
12062 ; AVX2-NEXT:    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
12063 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
12064 ; AVX2-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
12065 ; AVX2-NEXT:    # xmm2 = mem[1,1,1,1]
12066 ; AVX2-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
12067 ; AVX2-NEXT:    # xmm2 = xmm2[0],mem[1],xmm2[2,3]
12068 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
12069 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
12070 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
12071 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12072 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12073 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm6 # 16-byte Folded Reload
12074 ; AVX2-NEXT:    # xmm6 = xmm0[2],mem[2],xmm0[3],mem[3]
12075 ; AVX2-NEXT:    vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12076 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12077 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm1 # 16-byte Folded Reload
12078 ; AVX2-NEXT:    # xmm1 = xmm0[2],mem[2],xmm0[3],mem[3]
12079 ; AVX2-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12080 ; AVX2-NEXT:    vshufps {{.*#+}} xmm0 = xmm9[2,2,2,2]
12081 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm10[0,1,2],xmm0[3]
12082 ; AVX2-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
12083 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
12084 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
12085 ; AVX2-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
12086 ; AVX2-NEXT:    # xmm1 = mem[2,2,2,2]
12087 ; AVX2-NEXT:    vblendps $7, (%rsp), %xmm1, %xmm1 # 16-byte Folded Reload
12088 ; AVX2-NEXT:    # xmm1 = mem[0,1,2],xmm1[3]
12089 ; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm6[0,1],xmm1[2,3]
12090 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
12091 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12092 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12093 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm2 # 16-byte Folded Reload
12094 ; AVX2-NEXT:    # xmm2 = xmm0[2],mem[2],xmm0[3],mem[3]
12095 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12096 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12097 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm1 # 16-byte Folded Reload
12098 ; AVX2-NEXT:    # xmm1 = xmm0[2],mem[2],xmm0[3],mem[3]
12099 ; AVX2-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12100 ; AVX2-NEXT:    vshufps {{.*#+}} xmm0 = xmm12[2,2,2,2]
12101 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm13[0,1,2],xmm0[3]
12102 ; AVX2-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
12103 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
12104 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
12105 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload
12106 ; AVX2-NEXT:    vshufps {{.*#+}} xmm1 = xmm9[2,2,2,2]
12107 ; AVX2-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
12108 ; AVX2-NEXT:    # xmm1 = mem[0,1,2],xmm1[3]
12109 ; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
12110 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
12111 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12112 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12113 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm10 # 16-byte Folded Reload
12114 ; AVX2-NEXT:    # xmm10 = xmm0[2],mem[2],xmm0[3],mem[3]
12115 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12116 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm1 # 16-byte Folded Reload
12117 ; AVX2-NEXT:    # xmm1 = xmm0[2],mem[2],xmm0[3],mem[3]
12118 ; AVX2-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12119 ; AVX2-NEXT:    vshufps {{.*#+}} xmm0 = xmm14[2,2,2,2]
12120 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm15[0,1,2],xmm0[3]
12121 ; AVX2-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
12122 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
12123 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
12124 ; AVX2-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
12125 ; AVX2-NEXT:    # xmm1 = mem[2,2,2,2]
12126 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
12127 ; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm7[0,1,2],xmm1[3]
12128 ; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm10[0,1],xmm1[2,3]
12129 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
12130 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12131 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12132 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm8 # 16-byte Folded Reload
12133 ; AVX2-NEXT:    # xmm8 = xmm0[2],mem[2],xmm0[3],mem[3]
12134 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12135 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm1 # 16-byte Folded Reload
12136 ; AVX2-NEXT:    # xmm1 = xmm0[2],mem[2],xmm0[3],mem[3]
12137 ; AVX2-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12138 ; AVX2-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
12139 ; AVX2-NEXT:    # xmm0 = mem[2,2,2,2]
12140 ; AVX2-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
12141 ; AVX2-NEXT:    # xmm0 = mem[0,1,2],xmm0[3]
12142 ; AVX2-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
12143 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
12144 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
12145 ; AVX2-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
12146 ; AVX2-NEXT:    # xmm1 = mem[2,2,2,2]
12147 ; AVX2-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
12148 ; AVX2-NEXT:    # xmm1 = mem[0,1,2],xmm1[3]
12149 ; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm8[0,1],xmm1[2,3]
12150 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
12151 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12152 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12153 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm2 # 16-byte Folded Reload
12154 ; AVX2-NEXT:    # xmm2 = xmm0[2],mem[2],xmm0[3],mem[3]
12155 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12156 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12157 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm1 # 16-byte Folded Reload
12158 ; AVX2-NEXT:    # xmm1 = xmm0[2],mem[2],xmm0[3],mem[3]
12159 ; AVX2-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12160 ; AVX2-NEXT:    vshufps {{.*#+}} xmm0 = xmm3[2,2,2,2]
12161 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm4[0,1,2],xmm0[3]
12162 ; AVX2-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
12163 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
12164 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
12165 ; AVX2-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
12166 ; AVX2-NEXT:    # xmm1 = mem[2,2,2,2]
12167 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
12168 ; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm6[0,1,2],xmm1[3]
12169 ; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
12170 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
12171 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12172 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12173 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm2 # 16-byte Folded Reload
12174 ; AVX2-NEXT:    # xmm2 = xmm0[2],mem[2],xmm0[3],mem[3]
12175 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12176 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12177 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm1 # 16-byte Folded Reload
12178 ; AVX2-NEXT:    # xmm1 = xmm0[2],mem[2],xmm0[3],mem[3]
12179 ; AVX2-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12180 ; AVX2-NEXT:    vshufps {{.*#+}} xmm0 = xmm5[2,2,2,2]
12181 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm11[0,1,2],xmm0[3]
12182 ; AVX2-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
12183 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
12184 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
12185 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
12186 ; AVX2-NEXT:    vshufps {{.*#+}} xmm1 = xmm4[2,2,2,2]
12187 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
12188 ; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm3[0,1,2],xmm1[3]
12189 ; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
12190 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
12191 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12192 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12193 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm5 # 16-byte Folded Reload
12194 ; AVX2-NEXT:    # xmm5 = xmm0[2],mem[2],xmm0[3],mem[3]
12195 ; AVX2-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12196 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12197 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm1 # 16-byte Folded Reload
12198 ; AVX2-NEXT:    # xmm1 = xmm0[2],mem[2],xmm0[3],mem[3]
12199 ; AVX2-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12200 ; AVX2-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
12201 ; AVX2-NEXT:    # xmm0 = mem[2,2,2,2]
12202 ; AVX2-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
12203 ; AVX2-NEXT:    # xmm0 = mem[0,1,2],xmm0[3]
12204 ; AVX2-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
12205 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm15
12206 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm15[0,1,2,3,4,5],ymm0[6,7]
12207 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
12208 ; AVX2-NEXT:    vshufps {{.*#+}} xmm15 = xmm2[2,2,2,2]
12209 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
12210 ; AVX2-NEXT:    vblendps {{.*#+}} xmm15 = xmm1[0,1,2],xmm15[3]
12211 ; AVX2-NEXT:    vblendps {{.*#+}} xmm15 = xmm5[0,1],xmm15[2,3]
12212 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm15[0,1,2,3],ymm0[4,5,6,7]
12213 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12214 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12215 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm5 # 16-byte Folded Reload
12216 ; AVX2-NEXT:    # xmm5 = xmm0[2],mem[2],xmm0[3],mem[3]
12217 ; AVX2-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12218 ; AVX2-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload
12219 ; AVX2-NEXT:    # xmm15 = mem[2,2,2,2]
12220 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12221 ; AVX2-NEXT:    vblendps {{.*#+}} xmm15 = xmm0[0,1,2],xmm15[3]
12222 ; AVX2-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm15
12223 ; AVX2-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm14
12224 ; AVX2-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3,4,5],ymm15[6,7]
12225 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
12226 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm15 # 16-byte Folded Reload
12227 ; AVX2-NEXT:    # xmm15 = xmm5[2],mem[2],xmm5[3],mem[3]
12228 ; AVX2-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Folded Reload
12229 ; AVX2-NEXT:    # xmm13 = mem[2,2,2,2]
12230 ; AVX2-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm13, %xmm13 # 16-byte Folded Reload
12231 ; AVX2-NEXT:    # xmm13 = mem[0,1,2],xmm13[3]
12232 ; AVX2-NEXT:    vblendps {{.*#+}} xmm13 = xmm15[0,1],xmm13[2,3]
12233 ; AVX2-NEXT:    vblendps {{.*#+}} ymm12 = ymm13[0,1,2,3],ymm14[4,5,6,7]
12234 ; AVX2-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12235 ; AVX2-NEXT:    vmovaps (%rsp), %xmm5 # 16-byte Reload
12236 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm13 # 16-byte Folded Reload
12237 ; AVX2-NEXT:    # xmm13 = xmm5[2],mem[2],xmm5[3],mem[3]
12238 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
12239 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm13 = xmm5[1],xmm13[1]
12240 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
12241 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm14 # 16-byte Folded Reload
12242 ; AVX2-NEXT:    # xmm14 = xmm5[2],mem[2],xmm5[3],mem[3]
12243 ; AVX2-NEXT:    vinsertf128 $1, %xmm14, %ymm0, %ymm14
12244 ; AVX2-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Folded Reload
12245 ; AVX2-NEXT:    # xmm12 = mem[2,3,2,3]
12246 ; AVX2-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm12
12247 ; AVX2-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3,4,5],ymm14[6,7]
12248 ; AVX2-NEXT:    vblendps {{.*#+}} ymm12 = ymm13[0,1,2,3],ymm12[4,5,6,7]
12249 ; AVX2-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12250 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
12251 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm12 = xmm5[2],xmm9[2],xmm5[3],xmm9[3]
12252 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
12253 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm11 = xmm5[1],xmm12[1]
12254 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
12255 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm12 # 16-byte Folded Reload
12256 ; AVX2-NEXT:    # xmm12 = xmm5[2],mem[2],xmm5[3],mem[3]
12257 ; AVX2-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm12
12258 ; AVX2-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Folded Reload
12259 ; AVX2-NEXT:    # xmm13 = mem[2,3,2,3]
12260 ; AVX2-NEXT:    vinsertf128 $1, %xmm13, %ymm0, %ymm13
12261 ; AVX2-NEXT:    vblendps {{.*#+}} ymm12 = ymm13[0,1,2,3,4,5],ymm12[6,7]
12262 ; AVX2-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1,2,3],ymm12[4,5,6,7]
12263 ; AVX2-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12264 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7, %xmm11 # 16-byte Folded Reload
12265 ; AVX2-NEXT:    # xmm11 = xmm7[2],mem[2],xmm7[3],mem[3]
12266 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm9 = xmm10[1],xmm11[1]
12267 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
12268 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm11 # 16-byte Folded Reload
12269 ; AVX2-NEXT:    # xmm11 = xmm5[2],mem[2],xmm5[3],mem[3]
12270 ; AVX2-NEXT:    vinsertf128 $1, %xmm11, %ymm0, %ymm11
12271 ; AVX2-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Folded Reload
12272 ; AVX2-NEXT:    # xmm10 = mem[2,3,2,3]
12273 ; AVX2-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
12274 ; AVX2-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1,2,3,4,5],ymm11[6,7]
12275 ; AVX2-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3],ymm10[4,5,6,7]
12276 ; AVX2-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12277 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
12278 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm9 # 16-byte Folded Reload
12279 ; AVX2-NEXT:    # xmm9 = xmm5[2],mem[2],xmm5[3],mem[3]
12280 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm7 = xmm8[1],xmm9[1]
12281 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
12282 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm9 # 16-byte Folded Reload
12283 ; AVX2-NEXT:    # xmm9 = xmm5[2],mem[2],xmm5[3],mem[3]
12284 ; AVX2-NEXT:    vinsertf128 $1, %xmm9, %ymm0, %ymm9
12285 ; AVX2-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload
12286 ; AVX2-NEXT:    # xmm8 = mem[2,3,2,3]
12287 ; AVX2-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm8
12288 ; AVX2-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],ymm9[6,7]
12289 ; AVX2-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3],ymm8[4,5,6,7]
12290 ; AVX2-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12291 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6, %xmm7 # 16-byte Folded Reload
12292 ; AVX2-NEXT:    # xmm7 = xmm6[2],mem[2],xmm6[3],mem[3]
12293 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
12294 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm5 = xmm5[1],xmm7[1]
12295 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
12296 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6, %xmm7 # 16-byte Folded Reload
12297 ; AVX2-NEXT:    # xmm7 = xmm6[2],mem[2],xmm6[3],mem[3]
12298 ; AVX2-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
12299 ; AVX2-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload
12300 ; AVX2-NEXT:    # xmm6 = mem[2,3,2,3]
12301 ; AVX2-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
12302 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5],ymm7[6,7]
12303 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm6[4,5,6,7]
12304 ; AVX2-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12305 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm3[2],xmm4[2],xmm3[3],xmm4[3]
12306 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
12307 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm3 = xmm3[1],xmm5[1]
12308 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
12309 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm5 # 16-byte Folded Reload
12310 ; AVX2-NEXT:    # xmm5 = xmm4[2],mem[2],xmm4[3],mem[3]
12311 ; AVX2-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
12312 ; AVX2-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
12313 ; AVX2-NEXT:    # xmm4 = mem[2,3,2,3]
12314 ; AVX2-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
12315 ; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],ymm5[6,7]
12316 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm4[4,5,6,7]
12317 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12318 ; AVX2-NEXT:    vunpckhps {{.*#+}} xmm3 = xmm1[2],xmm2[2],xmm1[3],xmm2[3]
12319 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
12320 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm3[1]
12321 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
12322 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm3 # 16-byte Folded Reload
12323 ; AVX2-NEXT:    # xmm3 = xmm2[2],mem[2],xmm2[3],mem[3]
12324 ; AVX2-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
12325 ; AVX2-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
12326 ; AVX2-NEXT:    # xmm2 = mem[2,3,2,3]
12327 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
12328 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm3[6,7]
12329 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]
12330 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12331 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm1 # 16-byte Folded Reload
12332 ; AVX2-NEXT:    # xmm1 = xmm0[2],mem[2],xmm0[3],mem[3]
12333 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
12334 ; AVX2-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
12335 ; AVX2-NEXT:    # xmm0 = mem[2,3,2,3]
12336 ; AVX2-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
12337 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
12338 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
12339 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
12340 ; AVX2-NEXT:    # xmm1 = xmm1[2],mem[2],xmm1[3],mem[3]
12341 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm15[1],xmm1[1]
12342 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
12343 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12344 ; AVX2-NEXT:    vmovaps 32(%rdi), %ymm0
12345 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12346 ; AVX2-NEXT:    vmovaps (%rdi), %ymm1
12347 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12348 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
12349 ; AVX2-NEXT:    vextractf128 $1, %ymm0, %xmm0
12350 ; AVX2-NEXT:    vmovaps 96(%rdi), %ymm1
12351 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12352 ; AVX2-NEXT:    vmovaps 64(%rdi), %ymm2
12353 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12354 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[4],ymm1[4],ymm2[5],ymm1[5]
12355 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12356 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,2]
12357 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
12358 ; AVX2-NEXT:    vmovaps 224(%rdi), %ymm2
12359 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12360 ; AVX2-NEXT:    vmovaps 192(%rdi), %ymm3
12361 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12362 ; AVX2-NEXT:    vmovaps 160(%rdi), %ymm15
12363 ; AVX2-NEXT:    vmovaps 128(%rdi), %ymm1
12364 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12365 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm15[0],ymm1[1],ymm15[1],ymm1[4],ymm15[4],ymm1[5],ymm15[5]
12366 ; AVX2-NEXT:    vmovups %ymm15, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12367 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm2 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
12368 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12369 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
12370 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
12371 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12372 ; AVX2-NEXT:    vmovaps 288(%rdi), %ymm0
12373 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12374 ; AVX2-NEXT:    vmovaps 256(%rdi), %ymm1
12375 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12376 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
12377 ; AVX2-NEXT:    vextractf128 $1, %ymm0, %xmm0
12378 ; AVX2-NEXT:    vmovaps 352(%rdi), %ymm1
12379 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12380 ; AVX2-NEXT:    vmovaps 320(%rdi), %ymm2
12381 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12382 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[4],ymm1[4],ymm2[5],ymm1[5]
12383 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12384 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,2]
12385 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
12386 ; AVX2-NEXT:    vmovaps 480(%rdi), %ymm2
12387 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12388 ; AVX2-NEXT:    vmovaps 448(%rdi), %ymm3
12389 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12390 ; AVX2-NEXT:    vmovaps 416(%rdi), %ymm4
12391 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12392 ; AVX2-NEXT:    vmovaps 384(%rdi), %ymm1
12393 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12394 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm4[0],ymm1[1],ymm4[1],ymm1[4],ymm4[4],ymm1[5],ymm4[5]
12395 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm12 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
12396 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm12[0],ymm1[2],ymm12[2]
12397 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
12398 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12399 ; AVX2-NEXT:    vmovaps 544(%rdi), %ymm0
12400 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12401 ; AVX2-NEXT:    vmovaps 512(%rdi), %ymm1
12402 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12403 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
12404 ; AVX2-NEXT:    vextractf128 $1, %ymm0, %xmm0
12405 ; AVX2-NEXT:    vmovaps 608(%rdi), %ymm1
12406 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12407 ; AVX2-NEXT:    vmovaps 576(%rdi), %ymm2
12408 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12409 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[4],ymm1[4],ymm2[5],ymm1[5]
12410 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12411 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,2]
12412 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
12413 ; AVX2-NEXT:    vmovaps 736(%rdi), %ymm2
12414 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12415 ; AVX2-NEXT:    vmovaps 704(%rdi), %ymm3
12416 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12417 ; AVX2-NEXT:    vmovaps 672(%rdi), %ymm4
12418 ; AVX2-NEXT:    vmovaps 640(%rdi), %ymm1
12419 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12420 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm4[0],ymm1[1],ymm4[1],ymm1[4],ymm4[4],ymm1[5],ymm4[5]
12421 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12422 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm8 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
12423 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm8[0],ymm1[2],ymm8[2]
12424 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
12425 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12426 ; AVX2-NEXT:    vmovaps 800(%rdi), %ymm0
12427 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12428 ; AVX2-NEXT:    vmovaps 768(%rdi), %ymm1
12429 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12430 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
12431 ; AVX2-NEXT:    vextractf128 $1, %ymm0, %xmm0
12432 ; AVX2-NEXT:    vmovaps 864(%rdi), %ymm1
12433 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12434 ; AVX2-NEXT:    vmovaps 832(%rdi), %ymm2
12435 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12436 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[4],ymm1[4],ymm2[5],ymm1[5]
12437 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12438 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,2]
12439 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
12440 ; AVX2-NEXT:    vmovaps 992(%rdi), %ymm2
12441 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12442 ; AVX2-NEXT:    vmovaps 960(%rdi), %ymm5
12443 ; AVX2-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12444 ; AVX2-NEXT:    vmovaps 928(%rdi), %ymm3
12445 ; AVX2-NEXT:    vmovaps 896(%rdi), %ymm1
12446 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12447 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[5],ymm3[5]
12448 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12449 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm5 = ymm5[0],ymm2[0],ymm5[1],ymm2[1],ymm5[4],ymm2[4],ymm5[5],ymm2[5]
12450 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm5[0],ymm1[2],ymm5[2]
12451 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
12452 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12453 ; AVX2-NEXT:    vmovaps 1056(%rdi), %ymm0
12454 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12455 ; AVX2-NEXT:    vmovaps 1024(%rdi), %ymm1
12456 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12457 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
12458 ; AVX2-NEXT:    vextractf128 $1, %ymm0, %xmm0
12459 ; AVX2-NEXT:    vmovaps 1120(%rdi), %ymm1
12460 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12461 ; AVX2-NEXT:    vmovaps 1088(%rdi), %ymm2
12462 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12463 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[4],ymm1[4],ymm2[5],ymm1[5]
12464 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12465 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,2]
12466 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
12467 ; AVX2-NEXT:    vmovaps 1248(%rdi), %ymm1
12468 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12469 ; AVX2-NEXT:    vmovaps 1216(%rdi), %ymm7
12470 ; AVX2-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12471 ; AVX2-NEXT:    vmovaps 1184(%rdi), %ymm2
12472 ; AVX2-NEXT:    vmovaps 1152(%rdi), %ymm6
12473 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12474 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm6 = ymm6[0],ymm2[0],ymm6[1],ymm2[1],ymm6[4],ymm2[4],ymm6[5],ymm2[5]
12475 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12476 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm7[0],ymm1[0],ymm7[1],ymm1[1],ymm7[4],ymm1[4],ymm7[5],ymm1[5]
12477 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm6 = ymm6[0],ymm1[0],ymm6[2],ymm1[2]
12478 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm6[4,5,6,7]
12479 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12480 ; AVX2-NEXT:    vmovaps 1312(%rdi), %ymm0
12481 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12482 ; AVX2-NEXT:    vmovaps 1280(%rdi), %ymm6
12483 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12484 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm6[0],ymm0[0],ymm6[1],ymm0[1],ymm6[4],ymm0[4],ymm6[5],ymm0[5]
12485 ; AVX2-NEXT:    vextractf128 $1, %ymm0, %xmm6
12486 ; AVX2-NEXT:    vmovaps 1376(%rdi), %ymm0
12487 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12488 ; AVX2-NEXT:    vmovaps 1344(%rdi), %ymm7
12489 ; AVX2-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12490 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm7[0],ymm0[0],ymm7[1],ymm0[1],ymm7[4],ymm0[4],ymm7[5],ymm0[5]
12491 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12492 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm7 = ymm0[2,2,2,2]
12493 ; AVX2-NEXT:    vblendps {{.*#+}} xmm7 = xmm6[0,1],xmm7[2,3]
12494 ; AVX2-NEXT:    vmovaps 1504(%rdi), %ymm6
12495 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12496 ; AVX2-NEXT:    vmovaps 1472(%rdi), %ymm10
12497 ; AVX2-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12498 ; AVX2-NEXT:    vmovaps 1440(%rdi), %ymm0
12499 ; AVX2-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
12500 ; AVX2-NEXT:    vmovaps 1408(%rdi), %ymm9
12501 ; AVX2-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12502 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm9 = ymm9[0],ymm0[0],ymm9[1],ymm0[1],ymm9[4],ymm0[4],ymm9[5],ymm0[5]
12503 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm10[0],ymm6[0],ymm10[1],ymm6[1],ymm10[4],ymm6[4],ymm10[5],ymm6[5]
12504 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm9 = ymm9[0],ymm0[0],ymm9[2],ymm0[2]
12505 ; AVX2-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3],ymm9[4,5,6,7]
12506 ; AVX2-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12507 ; AVX2-NEXT:    vmovaps 1568(%rdi), %ymm6
12508 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12509 ; AVX2-NEXT:    vmovaps 1536(%rdi), %ymm7
12510 ; AVX2-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12511 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm7 = ymm7[0],ymm6[0],ymm7[1],ymm6[1],ymm7[4],ymm6[4],ymm7[5],ymm6[5]
12512 ; AVX2-NEXT:    vextractf128 $1, %ymm7, %xmm9
12513 ; AVX2-NEXT:    vmovaps 1632(%rdi), %ymm6
12514 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12515 ; AVX2-NEXT:    vmovaps 1600(%rdi), %ymm7
12516 ; AVX2-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12517 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm6 = ymm7[0],ymm6[0],ymm7[1],ymm6[1],ymm7[4],ymm6[4],ymm7[5],ymm6[5]
12518 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12519 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm10 = ymm6[2,2,2,2]
12520 ; AVX2-NEXT:    vblendps {{.*#+}} xmm10 = xmm9[0,1],xmm10[2,3]
12521 ; AVX2-NEXT:    vmovaps 1760(%rdi), %ymm9
12522 ; AVX2-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12523 ; AVX2-NEXT:    vmovaps 1728(%rdi), %ymm6
12524 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12525 ; AVX2-NEXT:    vmovaps 1696(%rdi), %ymm7
12526 ; AVX2-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12527 ; AVX2-NEXT:    vmovaps 1664(%rdi), %ymm11
12528 ; AVX2-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12529 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm11 = ymm11[0],ymm7[0],ymm11[1],ymm7[1],ymm11[4],ymm7[4],ymm11[5],ymm7[5]
12530 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm6 = ymm6[0],ymm9[0],ymm6[1],ymm9[1],ymm6[4],ymm9[4],ymm6[5],ymm9[5]
12531 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12532 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm11 = ymm11[0],ymm6[0],ymm11[2],ymm6[2]
12533 ; AVX2-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1,2,3],ymm11[4,5,6,7]
12534 ; AVX2-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12535 ; AVX2-NEXT:    vmovaps 1824(%rdi), %ymm6
12536 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12537 ; AVX2-NEXT:    vmovaps 1792(%rdi), %ymm7
12538 ; AVX2-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12539 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm10 = ymm7[0],ymm6[0],ymm7[1],ymm6[1],ymm7[4],ymm6[4],ymm7[5],ymm6[5]
12540 ; AVX2-NEXT:    vextractf128 $1, %ymm10, %xmm11
12541 ; AVX2-NEXT:    vmovaps 1888(%rdi), %ymm6
12542 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12543 ; AVX2-NEXT:    vmovaps 1856(%rdi), %ymm7
12544 ; AVX2-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12545 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm6 = ymm7[0],ymm6[0],ymm7[1],ymm6[1],ymm7[4],ymm6[4],ymm7[5],ymm6[5]
12546 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12547 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm13 = ymm6[2,2,2,2]
12548 ; AVX2-NEXT:    vblendps {{.*#+}} xmm13 = xmm11[0,1],xmm13[2,3]
12549 ; AVX2-NEXT:    vmovaps 2016(%rdi), %ymm11
12550 ; AVX2-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12551 ; AVX2-NEXT:    vmovaps 1984(%rdi), %ymm6
12552 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12553 ; AVX2-NEXT:    vmovaps 1952(%rdi), %ymm7
12554 ; AVX2-NEXT:    vmovaps 1920(%rdi), %ymm9
12555 ; AVX2-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12556 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm14 = ymm9[0],ymm7[0],ymm9[1],ymm7[1],ymm9[4],ymm7[4],ymm9[5],ymm7[5]
12557 ; AVX2-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12558 ; AVX2-NEXT:    vunpcklps {{.*#+}} ymm11 = ymm6[0],ymm11[0],ymm6[1],ymm11[1],ymm6[4],ymm11[4],ymm6[5],ymm11[5]
12559 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm14 = ymm14[0],ymm11[0],ymm14[2],ymm11[2]
12560 ; AVX2-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1,2,3],ymm14[4,5,6,7]
12561 ; AVX2-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12562 ; AVX2-NEXT:    vbroadcastss 148(%rdi), %ymm13
12563 ; AVX2-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1,2,3,4],ymm15[5],ymm13[6,7]
12564 ; AVX2-NEXT:    vblendps $192, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm13 # 32-byte Folded Reload
12565 ; AVX2-NEXT:    # ymm13 = ymm13[0,1,2,3,4,5],mem[6,7]
12566 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
12567 ; AVX2-NEXT:    vextractf128 $1, %ymm6, %xmm14
12568 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
12569 ; AVX2-NEXT:    vshufps {{.*#+}} ymm15 = ymm9[1,1,1,1,5,5,5,5]
12570 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
12571 ; AVX2-NEXT:    vblendps {{.*#+}} ymm15 = ymm15[0],ymm6[1],ymm15[2,3,4],ymm6[5],ymm15[6,7]
12572 ; AVX2-NEXT:    vextractf128 $1, %ymm15, %xmm15
12573 ; AVX2-NEXT:    vblendps {{.*#+}} xmm14 = xmm15[0,1],xmm14[2,3]
12574 ; AVX2-NEXT:    vblendps {{.*#+}} ymm13 = ymm14[0,1,2,3],ymm13[4,5,6,7]
12575 ; AVX2-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12576 ; AVX2-NEXT:    vbroadcastss 404(%rdi), %ymm13
12577 ; AVX2-NEXT:    vblendps $32, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm13 # 32-byte Folded Reload
12578 ; AVX2-NEXT:    # ymm13 = ymm13[0,1,2,3,4],mem[5],ymm13[6,7]
12579 ; AVX2-NEXT:    vblendps {{.*#+}} ymm12 = ymm13[0,1,2,3,4,5],ymm12[6,7]
12580 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
12581 ; AVX2-NEXT:    vextractf128 $1, %ymm10, %xmm13
12582 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload
12583 ; AVX2-NEXT:    vshufps {{.*#+}} ymm14 = ymm15[1,1,1,1,5,5,5,5]
12584 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
12585 ; AVX2-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0],ymm10[1],ymm14[2,3,4],ymm10[5],ymm14[6,7]
12586 ; AVX2-NEXT:    vextractf128 $1, %ymm14, %xmm14
12587 ; AVX2-NEXT:    vblendps {{.*#+}} xmm13 = xmm14[0,1],xmm13[2,3]
12588 ; AVX2-NEXT:    vblendps {{.*#+}} ymm12 = ymm13[0,1,2,3],ymm12[4,5,6,7]
12589 ; AVX2-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12590 ; AVX2-NEXT:    vbroadcastss 660(%rdi), %ymm12
12591 ; AVX2-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3,4],ymm4[5],ymm12[6,7]
12592 ; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm12[0,1,2,3,4,5],ymm8[6,7]
12593 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
12594 ; AVX2-NEXT:    vextractf128 $1, %ymm8, %xmm8
12595 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
12596 ; AVX2-NEXT:    vshufps {{.*#+}} ymm12 = ymm13[1,1,1,1,5,5,5,5]
12597 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
12598 ; AVX2-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0],ymm14[1],ymm12[2,3,4],ymm14[5],ymm12[6,7]
12599 ; AVX2-NEXT:    vextractf128 $1, %ymm12, %xmm12
12600 ; AVX2-NEXT:    vblendps {{.*#+}} xmm8 = xmm12[0,1],xmm8[2,3]
12601 ; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm8[0,1,2,3],ymm4[4,5,6,7]
12602 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12603 ; AVX2-NEXT:    vbroadcastss 916(%rdi), %ymm4
12604 ; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4],ymm3[5],ymm4[6,7]
12605 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3,4,5],ymm5[6,7]
12606 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
12607 ; AVX2-NEXT:    vextractf128 $1, %ymm4, %xmm4
12608 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
12609 ; AVX2-NEXT:    vshufps {{.*#+}} ymm5 = ymm8[1,1,1,1,5,5,5,5]
12610 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
12611 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0],ymm12[1],ymm5[2,3,4],ymm12[5],ymm5[6,7]
12612 ; AVX2-NEXT:    vextractf128 $1, %ymm5, %xmm5
12613 ; AVX2-NEXT:    vblendps {{.*#+}} xmm4 = xmm5[0,1],xmm4[2,3]
12614 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
12615 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12616 ; AVX2-NEXT:    vbroadcastss 1172(%rdi), %ymm3
12617 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4],ymm2[5],ymm3[6,7]
12618 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3,4,5],ymm1[6,7]
12619 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12620 ; AVX2-NEXT:    vextractf128 $1, %ymm2, %xmm2
12621 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
12622 ; AVX2-NEXT:    vshufps {{.*#+}} ymm3 = ymm4[1,1,1,1,5,5,5,5]
12623 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
12624 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0],ymm5[1],ymm3[2,3,4],ymm5[5],ymm3[6,7]
12625 ; AVX2-NEXT:    vextractf128 $1, %ymm3, %xmm3
12626 ; AVX2-NEXT:    vblendps {{.*#+}} xmm2 = xmm3[0,1],xmm2[2,3]
12627 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
12628 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12629 ; AVX2-NEXT:    vbroadcastss 1428(%rdi), %ymm1
12630 ; AVX2-NEXT:    vblendps $32, (%rsp), %ymm1, %ymm1 # 32-byte Folded Reload
12631 ; AVX2-NEXT:    # ymm1 = ymm1[0,1,2,3,4],mem[5],ymm1[6,7]
12632 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm0[6,7]
12633 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12634 ; AVX2-NEXT:    vextractf128 $1, %ymm0, %xmm0
12635 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
12636 ; AVX2-NEXT:    vshufps {{.*#+}} ymm2 = ymm3[1,1,1,1,5,5,5,5]
12637 ; AVX2-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
12638 ; AVX2-NEXT:    # ymm2 = ymm2[0],mem[1],ymm2[2,3,4],mem[5],ymm2[6,7]
12639 ; AVX2-NEXT:    vextractf128 $1, %ymm2, %xmm2
12640 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm2[0,1],xmm0[2,3]
12641 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
12642 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12643 ; AVX2-NEXT:    vbroadcastss 1684(%rdi), %ymm0
12644 ; AVX2-NEXT:    vblendps $32, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
12645 ; AVX2-NEXT:    # ymm0 = ymm0[0,1,2,3,4],mem[5],ymm0[6,7]
12646 ; AVX2-NEXT:    vblendps $192, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
12647 ; AVX2-NEXT:    # ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
12648 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
12649 ; AVX2-NEXT:    vextractf128 $1, %ymm1, %xmm1
12650 ; AVX2-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Folded Reload
12651 ; AVX2-NEXT:    # ymm2 = mem[1,1,1,1,5,5,5,5]
12652 ; AVX2-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
12653 ; AVX2-NEXT:    # ymm2 = ymm2[0],mem[1],ymm2[2,3,4],mem[5],ymm2[6,7]
12654 ; AVX2-NEXT:    vextractf128 $1, %ymm2, %xmm2
12655 ; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
12656 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
12657 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12658 ; AVX2-NEXT:    vbroadcastss 1940(%rdi), %ymm0
12659 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm7[5],ymm0[6,7]
12660 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm11[6,7]
12661 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
12662 ; AVX2-NEXT:    vextractf128 $1, %ymm1, %xmm1
12663 ; AVX2-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Folded Reload
12664 ; AVX2-NEXT:    # ymm2 = mem[1,1,1,1,5,5,5,5]
12665 ; AVX2-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
12666 ; AVX2-NEXT:    # ymm2 = ymm2[0],mem[1],ymm2[2,3,4],mem[5],ymm2[6,7]
12667 ; AVX2-NEXT:    vextractf128 $1, %ymm2, %xmm2
12668 ; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
12669 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
12670 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12671 ; AVX2-NEXT:    vbroadcastss 248(%rdi), %ymm0
12672 ; AVX2-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
12673 ; AVX2-NEXT:    # ymm0 = mem[0,1,2,3,4,5,6],ymm0[7]
12674 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
12675 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm7 # 32-byte Folded Reload
12676 ; AVX2-NEXT:    # ymm7 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
12677 ; AVX2-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12678 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm9[2],ymm6[2],ymm9[3],ymm6[3],ymm9[6],ymm6[6],ymm9[7],ymm6[7]
12679 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12680 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
12681 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload
12682 ; AVX2-NEXT:    # ymm6 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
12683 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12684 ; AVX2-NEXT:    vextractf128 $1, %ymm2, %xmm1
12685 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm2 = ymm6[2,2,2,2]
12686 ; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
12687 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm7[0,1,2,3,4,5],ymm0[6,7]
12688 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
12689 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12690 ; AVX2-NEXT:    vbroadcastss 504(%rdi), %ymm0
12691 ; AVX2-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
12692 ; AVX2-NEXT:    # ymm0 = mem[0,1,2,3,4,5,6],ymm0[7]
12693 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
12694 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload
12695 ; AVX2-NEXT:    # ymm6 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
12696 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12697 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm15[2],ymm10[2],ymm15[3],ymm10[3],ymm15[6],ymm10[6],ymm15[7],ymm10[7]
12698 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12699 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
12700 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm7 # 32-byte Folded Reload
12701 ; AVX2-NEXT:    # ymm7 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
12702 ; AVX2-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12703 ; AVX2-NEXT:    vextractf128 $1, %ymm2, %xmm1
12704 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm2 = ymm7[2,2,2,2]
12705 ; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
12706 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm6[0,1,2,3,4,5],ymm0[6,7]
12707 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
12708 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12709 ; AVX2-NEXT:    vbroadcastss 760(%rdi), %ymm0
12710 ; AVX2-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
12711 ; AVX2-NEXT:    # ymm0 = mem[0,1,2,3,4,5,6],ymm0[7]
12712 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
12713 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload
12714 ; AVX2-NEXT:    # ymm6 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
12715 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12716 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm13[2],ymm14[2],ymm13[3],ymm14[3],ymm13[6],ymm14[6],ymm13[7],ymm14[7]
12717 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12718 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
12719 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm7 # 32-byte Folded Reload
12720 ; AVX2-NEXT:    # ymm7 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
12721 ; AVX2-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12722 ; AVX2-NEXT:    vextractf128 $1, %ymm2, %xmm1
12723 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm2 = ymm7[2,2,2,2]
12724 ; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
12725 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm6[0,1,2,3,4,5],ymm0[6,7]
12726 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
12727 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12728 ; AVX2-NEXT:    vbroadcastss 1016(%rdi), %ymm0
12729 ; AVX2-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
12730 ; AVX2-NEXT:    # ymm0 = mem[0,1,2,3,4,5,6],ymm0[7]
12731 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
12732 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload
12733 ; AVX2-NEXT:    # ymm6 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
12734 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12735 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm8[2],ymm12[2],ymm8[3],ymm12[3],ymm8[6],ymm12[6],ymm8[7],ymm12[7]
12736 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12737 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
12738 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm14 # 32-byte Folded Reload
12739 ; AVX2-NEXT:    # ymm14 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
12740 ; AVX2-NEXT:    vextractf128 $1, %ymm2, %xmm1
12741 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm2 = ymm14[2,2,2,2]
12742 ; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
12743 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm6[0,1,2,3,4,5],ymm0[6,7]
12744 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
12745 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12746 ; AVX2-NEXT:    vbroadcastss 1272(%rdi), %ymm0
12747 ; AVX2-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
12748 ; AVX2-NEXT:    # ymm0 = mem[0,1,2,3,4,5,6],ymm0[7]
12749 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
12750 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm12 # 32-byte Folded Reload
12751 ; AVX2-NEXT:    # ymm12 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
12752 ; AVX2-NEXT:    vunpckhps {{.*#+}} ymm13 = ymm4[2],ymm5[2],ymm4[3],ymm5[3],ymm4[6],ymm5[6],ymm4[7],ymm5[7]
12753 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
12754 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm11 # 32-byte Folded Reload
12755 ; AVX2-NEXT:    # ymm11 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
12756 ; AVX2-NEXT:    vextractf128 $1, %ymm13, %xmm1
12757 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm2 = ymm11[2,2,2,2]
12758 ; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
12759 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm12[0,1,2,3,4,5],ymm0[6,7]
12760 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
12761 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12762 ; AVX2-NEXT:    vbroadcastss 1528(%rdi), %ymm0
12763 ; AVX2-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
12764 ; AVX2-NEXT:    # ymm0 = mem[0,1,2,3,4,5,6],ymm0[7]
12765 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
12766 ; AVX2-NEXT:    vunpckhps (%rsp), %ymm1, %ymm10 # 32-byte Folded Reload
12767 ; AVX2-NEXT:    # ymm10 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
12768 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm9 # 32-byte Folded Reload
12769 ; AVX2-NEXT:    # ymm9 = ymm3[2],mem[2],ymm3[3],mem[3],ymm3[6],mem[6],ymm3[7],mem[7]
12770 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
12771 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm8 # 32-byte Folded Reload
12772 ; AVX2-NEXT:    # ymm8 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
12773 ; AVX2-NEXT:    vextractf128 $1, %ymm9, %xmm1
12774 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm2 = ymm8[2,2,2,2]
12775 ; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
12776 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1,2,3,4,5],ymm0[6,7]
12777 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
12778 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12779 ; AVX2-NEXT:    vbroadcastss 1784(%rdi), %ymm0
12780 ; AVX2-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
12781 ; AVX2-NEXT:    # ymm0 = mem[0,1,2,3,4,5,6],ymm0[7]
12782 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
12783 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload
12784 ; AVX2-NEXT:    # ymm6 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
12785 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
12786 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm7 # 32-byte Folded Reload
12787 ; AVX2-NEXT:    # ymm7 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
12788 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
12789 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm5 # 32-byte Folded Reload
12790 ; AVX2-NEXT:    # ymm5 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
12791 ; AVX2-NEXT:    vextractf128 $1, %ymm7, %xmm1
12792 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm2 = ymm5[2,2,2,2]
12793 ; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
12794 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm6[0,1,2,3,4,5],ymm0[6,7]
12795 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
12796 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12797 ; AVX2-NEXT:    vbroadcastss 2040(%rdi), %ymm0
12798 ; AVX2-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload
12799 ; AVX2-NEXT:    # ymm1 = mem[0,1,2,3,4,5,6],ymm0[7]
12800 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12801 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm4 # 32-byte Folded Reload
12802 ; AVX2-NEXT:    # ymm4 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
12803 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12804 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm3 # 32-byte Folded Reload
12805 ; AVX2-NEXT:    # ymm3 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
12806 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
12807 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload
12808 ; AVX2-NEXT:    # ymm2 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
12809 ; AVX2-NEXT:    vextractf128 $1, %ymm3, %xmm0
12810 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm15 = ymm2[2,2,2,2]
12811 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm15[2,3]
12812 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm4[0,1,2,3,4,5],ymm1[6,7]
12813 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
12814 ; AVX2-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
12815 ; AVX2-NEXT:    vbroadcastss 220(%rdi), %ymm0
12816 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
12817 ; AVX2-NEXT:    # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
12818 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
12819 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
12820 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
12821 ; AVX2-NEXT:    vextractf128 $1, %ymm1, %xmm1
12822 ; AVX2-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Folded Reload
12823 ; AVX2-NEXT:    # ymm15 = mem[2,3,2,3,6,7,6,7]
12824 ; AVX2-NEXT:    vextractf128 $1, %ymm15, %xmm15
12825 ; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm15[0,1],xmm1[2,3]
12826 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
12827 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12828 ; AVX2-NEXT:    vbroadcastss 476(%rdi), %ymm0
12829 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
12830 ; AVX2-NEXT:    # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
12831 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
12832 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
12833 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
12834 ; AVX2-NEXT:    vextractf128 $1, %ymm1, %xmm1
12835 ; AVX2-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Folded Reload
12836 ; AVX2-NEXT:    # ymm15 = mem[2,3,2,3,6,7,6,7]
12837 ; AVX2-NEXT:    vextractf128 $1, %ymm15, %xmm15
12838 ; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm15[0,1],xmm1[2,3]
12839 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
12840 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12841 ; AVX2-NEXT:    vbroadcastss 732(%rdi), %ymm0
12842 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
12843 ; AVX2-NEXT:    # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
12844 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
12845 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
12846 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
12847 ; AVX2-NEXT:    vextractf128 $1, %ymm1, %xmm1
12848 ; AVX2-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Folded Reload
12849 ; AVX2-NEXT:    # ymm15 = mem[2,3,2,3,6,7,6,7]
12850 ; AVX2-NEXT:    vextractf128 $1, %ymm15, %xmm15
12851 ; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm15[0,1],xmm1[2,3]
12852 ; AVX2-NEXT:    vblendps {{.*#+}} ymm15 = ymm1[0,1,2,3],ymm0[4,5,6,7]
12853 ; AVX2-NEXT:    vbroadcastss 988(%rdi), %ymm0
12854 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
12855 ; AVX2-NEXT:    # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
12856 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
12857 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
12858 ; AVX2-NEXT:    vextractf128 $1, %ymm14, %xmm1
12859 ; AVX2-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Folded Reload
12860 ; AVX2-NEXT:    # ymm14 = mem[2,3,2,3,6,7,6,7]
12861 ; AVX2-NEXT:    vextractf128 $1, %ymm14, %xmm14
12862 ; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm14[0,1],xmm1[2,3]
12863 ; AVX2-NEXT:    vblendps {{.*#+}} ymm14 = ymm1[0,1,2,3],ymm0[4,5,6,7]
12864 ; AVX2-NEXT:    vbroadcastss 1244(%rdi), %ymm0
12865 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
12866 ; AVX2-NEXT:    # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
12867 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm12[1],ymm0[1],ymm12[3],ymm0[3]
12868 ; AVX2-NEXT:    vextractf128 $1, %ymm11, %xmm1
12869 ; AVX2-NEXT:    vshufps {{.*#+}} ymm11 = ymm13[2,3,2,3,6,7,6,7]
12870 ; AVX2-NEXT:    vextractf128 $1, %ymm11, %xmm11
12871 ; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm11[0,1],xmm1[2,3]
12872 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm0[4,5,6,7]
12873 ; AVX2-NEXT:    vbroadcastss 1500(%rdi), %ymm0
12874 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
12875 ; AVX2-NEXT:    # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
12876 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm10[1],ymm0[1],ymm10[3],ymm0[3]
12877 ; AVX2-NEXT:    vextractf128 $1, %ymm8, %xmm8
12878 ; AVX2-NEXT:    vshufps {{.*#+}} ymm9 = ymm9[2,3,2,3,6,7,6,7]
12879 ; AVX2-NEXT:    vextractf128 $1, %ymm9, %xmm9
12880 ; AVX2-NEXT:    vblendps {{.*#+}} xmm8 = xmm9[0,1],xmm8[2,3]
12881 ; AVX2-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm0[4,5,6,7]
12882 ; AVX2-NEXT:    vbroadcastss 1756(%rdi), %ymm0
12883 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
12884 ; AVX2-NEXT:    # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
12885 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm6[1],ymm0[1],ymm6[3],ymm0[3]
12886 ; AVX2-NEXT:    vextractf128 $1, %ymm5, %xmm5
12887 ; AVX2-NEXT:    vshufps {{.*#+}} ymm6 = ymm7[2,3,2,3,6,7,6,7]
12888 ; AVX2-NEXT:    vextractf128 $1, %ymm6, %xmm6
12889 ; AVX2-NEXT:    vblendps {{.*#+}} xmm5 = xmm6[0,1],xmm5[2,3]
12890 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm0[4,5,6,7]
12891 ; AVX2-NEXT:    vbroadcastss 2012(%rdi), %ymm0
12892 ; AVX2-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
12893 ; AVX2-NEXT:    # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
12894 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm4[1],ymm0[1],ymm4[3],ymm0[3]
12895 ; AVX2-NEXT:    vextractf128 $1, %ymm2, %xmm2
12896 ; AVX2-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[2,3,2,3,6,7,6,7]
12897 ; AVX2-NEXT:    vextractf128 $1, %ymm3, %xmm3
12898 ; AVX2-NEXT:    vblendps {{.*#+}} xmm2 = xmm3[0,1],xmm2[2,3]
12899 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
12900 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12901 ; AVX2-NEXT:    vmovaps %ymm2, 192(%rsi)
12902 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12903 ; AVX2-NEXT:    vmovaps %ymm2, 128(%rsi)
12904 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12905 ; AVX2-NEXT:    vmovaps %ymm2, 64(%rsi)
12906 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12907 ; AVX2-NEXT:    vmovaps %ymm2, (%rsi)
12908 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12909 ; AVX2-NEXT:    vmovaps %ymm2, 224(%rsi)
12910 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12911 ; AVX2-NEXT:    vmovaps %ymm2, 160(%rsi)
12912 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12913 ; AVX2-NEXT:    vmovaps %ymm2, 96(%rsi)
12914 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12915 ; AVX2-NEXT:    vmovaps %ymm2, 32(%rsi)
12916 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12917 ; AVX2-NEXT:    vmovaps %ymm2, 192(%rdx)
12918 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12919 ; AVX2-NEXT:    vmovaps %ymm2, 128(%rdx)
12920 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12921 ; AVX2-NEXT:    vmovaps %ymm2, 64(%rdx)
12922 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12923 ; AVX2-NEXT:    vmovaps %ymm2, (%rdx)
12924 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12925 ; AVX2-NEXT:    vmovaps %ymm2, 224(%rdx)
12926 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12927 ; AVX2-NEXT:    vmovaps %ymm2, 160(%rdx)
12928 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12929 ; AVX2-NEXT:    vmovaps %ymm2, 96(%rdx)
12930 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12931 ; AVX2-NEXT:    vmovaps %ymm2, 32(%rdx)
12932 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12933 ; AVX2-NEXT:    vmovaps %ymm2, 192(%rcx)
12934 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12935 ; AVX2-NEXT:    vmovaps %ymm2, 128(%rcx)
12936 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12937 ; AVX2-NEXT:    vmovaps %ymm2, 64(%rcx)
12938 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12939 ; AVX2-NEXT:    vmovaps %ymm2, (%rcx)
12940 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12941 ; AVX2-NEXT:    vmovaps %ymm2, 224(%rcx)
12942 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12943 ; AVX2-NEXT:    vmovaps %ymm2, 160(%rcx)
12944 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12945 ; AVX2-NEXT:    vmovaps %ymm2, 96(%rcx)
12946 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12947 ; AVX2-NEXT:    vmovaps %ymm2, 32(%rcx)
12948 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12949 ; AVX2-NEXT:    vmovaps %ymm2, 192(%r8)
12950 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12951 ; AVX2-NEXT:    vmovaps %ymm2, 128(%r8)
12952 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12953 ; AVX2-NEXT:    vmovaps %ymm2, 64(%r8)
12954 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12955 ; AVX2-NEXT:    vmovaps %ymm2, (%r8)
12956 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12957 ; AVX2-NEXT:    vmovaps %ymm2, 224(%r8)
12958 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12959 ; AVX2-NEXT:    vmovaps %ymm2, 160(%r8)
12960 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12961 ; AVX2-NEXT:    vmovaps %ymm2, 96(%r8)
12962 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12963 ; AVX2-NEXT:    vmovaps %ymm2, 32(%r8)
12964 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12965 ; AVX2-NEXT:    vmovaps %ymm2, 224(%r9)
12966 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12967 ; AVX2-NEXT:    vmovaps %ymm2, 192(%r9)
12968 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12969 ; AVX2-NEXT:    vmovaps %ymm2, 160(%r9)
12970 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12971 ; AVX2-NEXT:    vmovaps %ymm2, 128(%r9)
12972 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12973 ; AVX2-NEXT:    vmovaps %ymm2, 96(%r9)
12974 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12975 ; AVX2-NEXT:    vmovaps %ymm2, 64(%r9)
12976 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12977 ; AVX2-NEXT:    vmovaps %ymm2, 32(%r9)
12978 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12979 ; AVX2-NEXT:    vmovaps %ymm2, (%r9)
12980 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rax
12981 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12982 ; AVX2-NEXT:    vmovaps %ymm2, 224(%rax)
12983 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12984 ; AVX2-NEXT:    vmovaps %ymm2, 192(%rax)
12985 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12986 ; AVX2-NEXT:    vmovaps %ymm2, 160(%rax)
12987 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12988 ; AVX2-NEXT:    vmovaps %ymm2, 128(%rax)
12989 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12990 ; AVX2-NEXT:    vmovaps %ymm2, 96(%rax)
12991 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12992 ; AVX2-NEXT:    vmovaps %ymm2, 64(%rax)
12993 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12994 ; AVX2-NEXT:    vmovaps %ymm2, 32(%rax)
12995 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
12996 ; AVX2-NEXT:    vmovaps %ymm2, (%rax)
12997 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rax
12998 ; AVX2-NEXT:    vmovups (%rsp), %ymm2 # 32-byte Reload
12999 ; AVX2-NEXT:    vmovaps %ymm2, 224(%rax)
13000 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
13001 ; AVX2-NEXT:    vmovaps %ymm2, 192(%rax)
13002 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
13003 ; AVX2-NEXT:    vmovaps %ymm2, 160(%rax)
13004 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
13005 ; AVX2-NEXT:    vmovaps %ymm2, 128(%rax)
13006 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
13007 ; AVX2-NEXT:    vmovaps %ymm2, 96(%rax)
13008 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
13009 ; AVX2-NEXT:    vmovaps %ymm2, 64(%rax)
13010 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
13011 ; AVX2-NEXT:    vmovaps %ymm2, 32(%rax)
13012 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
13013 ; AVX2-NEXT:    vmovaps %ymm2, (%rax)
13014 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rax
13015 ; AVX2-NEXT:    vmovaps %ymm0, 224(%rax)
13016 ; AVX2-NEXT:    vmovaps %ymm5, 192(%rax)
13017 ; AVX2-NEXT:    vmovaps %ymm8, 160(%rax)
13018 ; AVX2-NEXT:    vmovaps %ymm1, 128(%rax)
13019 ; AVX2-NEXT:    vmovaps %ymm14, 96(%rax)
13020 ; AVX2-NEXT:    vmovaps %ymm15, 64(%rax)
13021 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13022 ; AVX2-NEXT:    vmovaps %ymm0, 32(%rax)
13023 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13024 ; AVX2-NEXT:    vmovaps %ymm0, (%rax)
13025 ; AVX2-NEXT:    addq $3528, %rsp # imm = 0xDC8
13026 ; AVX2-NEXT:    vzeroupper
13027 ; AVX2-NEXT:    retq
13029 ; AVX2-FP-LABEL: load_i32_stride8_vf64:
13030 ; AVX2-FP:       # %bb.0:
13031 ; AVX2-FP-NEXT:    subq $3528, %rsp # imm = 0xDC8
13032 ; AVX2-FP-NEXT:    vmovaps 288(%rdi), %xmm10
13033 ; AVX2-FP-NEXT:    vmovaps 256(%rdi), %xmm0
13034 ; AVX2-FP-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13035 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm0[0],xmm10[0],xmm0[1],xmm10[1]
13036 ; AVX2-FP-NEXT:    vmovaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13037 ; AVX2-FP-NEXT:    vmovaps 352(%rdi), %xmm9
13038 ; AVX2-FP-NEXT:    vbroadcastss %xmm9, %xmm1
13039 ; AVX2-FP-NEXT:    vmovaps 320(%rdi), %xmm2
13040 ; AVX2-FP-NEXT:    vmovaps %xmm2, (%rsp) # 16-byte Spill
13041 ; AVX2-FP-NEXT:    vbroadcastss %xmm2, %xmm2
13042 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
13043 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
13044 ; AVX2-FP-NEXT:    vmovaps 416(%rdi), %xmm1
13045 ; AVX2-FP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13046 ; AVX2-FP-NEXT:    vmovaps 384(%rdi), %xmm2
13047 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13048 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
13049 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
13050 ; AVX2-FP-NEXT:    vmovaps 480(%rdi), %xmm13
13051 ; AVX2-FP-NEXT:    vbroadcastss %xmm13, %xmm2
13052 ; AVX2-FP-NEXT:    vmovaps 448(%rdi), %xmm3
13053 ; AVX2-FP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13054 ; AVX2-FP-NEXT:    vbroadcastss %xmm3, %xmm3
13055 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
13056 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
13057 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
13058 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
13059 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13060 ; AVX2-FP-NEXT:    vmovaps 800(%rdi), %xmm0
13061 ; AVX2-FP-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13062 ; AVX2-FP-NEXT:    vmovaps 768(%rdi), %xmm1
13063 ; AVX2-FP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13064 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
13065 ; AVX2-FP-NEXT:    vmovaps 864(%rdi), %xmm12
13066 ; AVX2-FP-NEXT:    vbroadcastss %xmm12, %xmm1
13067 ; AVX2-FP-NEXT:    vmovaps 832(%rdi), %xmm2
13068 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13069 ; AVX2-FP-NEXT:    vbroadcastss %xmm2, %xmm2
13070 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
13071 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
13072 ; AVX2-FP-NEXT:    vmovaps 992(%rdi), %xmm1
13073 ; AVX2-FP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13074 ; AVX2-FP-NEXT:    vbroadcastss %xmm1, %xmm1
13075 ; AVX2-FP-NEXT:    vmovaps 960(%rdi), %xmm2
13076 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13077 ; AVX2-FP-NEXT:    vbroadcastss %xmm2, %xmm2
13078 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
13079 ; AVX2-FP-NEXT:    vmovaps 928(%rdi), %xmm2
13080 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13081 ; AVX2-FP-NEXT:    vmovaps 896(%rdi), %xmm3
13082 ; AVX2-FP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13083 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
13084 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
13085 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
13086 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
13087 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
13088 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13089 ; AVX2-FP-NEXT:    vmovaps 1376(%rdi), %xmm0
13090 ; AVX2-FP-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13091 ; AVX2-FP-NEXT:    vbroadcastss %xmm0, %xmm0
13092 ; AVX2-FP-NEXT:    vmovaps 1344(%rdi), %xmm1
13093 ; AVX2-FP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13094 ; AVX2-FP-NEXT:    vbroadcastss %xmm1, %xmm1
13095 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
13096 ; AVX2-FP-NEXT:    vmovaps 1312(%rdi), %xmm1
13097 ; AVX2-FP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13098 ; AVX2-FP-NEXT:    vmovaps 1280(%rdi), %xmm2
13099 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13100 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
13101 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
13102 ; AVX2-FP-NEXT:    vmovaps 1504(%rdi), %xmm1
13103 ; AVX2-FP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13104 ; AVX2-FP-NEXT:    vbroadcastss %xmm1, %xmm1
13105 ; AVX2-FP-NEXT:    vmovaps 1472(%rdi), %xmm2
13106 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13107 ; AVX2-FP-NEXT:    vbroadcastss %xmm2, %xmm2
13108 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
13109 ; AVX2-FP-NEXT:    vmovaps 1440(%rdi), %xmm2
13110 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13111 ; AVX2-FP-NEXT:    vmovaps 1408(%rdi), %xmm3
13112 ; AVX2-FP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13113 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
13114 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
13115 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
13116 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
13117 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
13118 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13119 ; AVX2-FP-NEXT:    vmovaps 1888(%rdi), %xmm0
13120 ; AVX2-FP-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13121 ; AVX2-FP-NEXT:    vbroadcastss %xmm0, %xmm0
13122 ; AVX2-FP-NEXT:    vmovaps 1856(%rdi), %xmm1
13123 ; AVX2-FP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13124 ; AVX2-FP-NEXT:    vbroadcastss %xmm1, %xmm1
13125 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
13126 ; AVX2-FP-NEXT:    vmovaps 1824(%rdi), %xmm1
13127 ; AVX2-FP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13128 ; AVX2-FP-NEXT:    vmovaps 1792(%rdi), %xmm2
13129 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13130 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
13131 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm3 = xmm1[0,1],xmm0[2,3]
13132 ; AVX2-FP-NEXT:    vmovaps 2016(%rdi), %xmm0
13133 ; AVX2-FP-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13134 ; AVX2-FP-NEXT:    vbroadcastss %xmm0, %xmm1
13135 ; AVX2-FP-NEXT:    vmovaps 1984(%rdi), %xmm0
13136 ; AVX2-FP-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13137 ; AVX2-FP-NEXT:    vbroadcastss %xmm0, %xmm2
13138 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
13139 ; AVX2-FP-NEXT:    vmovaps 1952(%rdi), %xmm0
13140 ; AVX2-FP-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13141 ; AVX2-FP-NEXT:    vmovaps 1920(%rdi), %xmm2
13142 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13143 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]
13144 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
13145 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
13146 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
13147 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm1[4,5,6,7]
13148 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13149 ; AVX2-FP-NEXT:    vmovaps 608(%rdi), %xmm0
13150 ; AVX2-FP-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13151 ; AVX2-FP-NEXT:    vbroadcastss %xmm0, %xmm0
13152 ; AVX2-FP-NEXT:    vmovaps 576(%rdi), %xmm1
13153 ; AVX2-FP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13154 ; AVX2-FP-NEXT:    vbroadcastss %xmm1, %xmm1
13155 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
13156 ; AVX2-FP-NEXT:    vmovaps 544(%rdi), %xmm2
13157 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13158 ; AVX2-FP-NEXT:    vmovaps 512(%rdi), %xmm1
13159 ; AVX2-FP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13160 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
13161 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
13162 ; AVX2-FP-NEXT:    vmovaps 736(%rdi), %xmm1
13163 ; AVX2-FP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13164 ; AVX2-FP-NEXT:    vbroadcastss %xmm1, %xmm1
13165 ; AVX2-FP-NEXT:    vmovaps 704(%rdi), %xmm2
13166 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13167 ; AVX2-FP-NEXT:    vbroadcastss %xmm2, %xmm2
13168 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
13169 ; AVX2-FP-NEXT:    vmovaps 672(%rdi), %xmm3
13170 ; AVX2-FP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13171 ; AVX2-FP-NEXT:    vmovaps 640(%rdi), %xmm2
13172 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13173 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]
13174 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
13175 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
13176 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
13177 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
13178 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13179 ; AVX2-FP-NEXT:    vmovaps 1120(%rdi), %xmm0
13180 ; AVX2-FP-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13181 ; AVX2-FP-NEXT:    vbroadcastss %xmm0, %xmm0
13182 ; AVX2-FP-NEXT:    vmovaps 1088(%rdi), %xmm1
13183 ; AVX2-FP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13184 ; AVX2-FP-NEXT:    vbroadcastss %xmm1, %xmm1
13185 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
13186 ; AVX2-FP-NEXT:    vmovaps 1056(%rdi), %xmm2
13187 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13188 ; AVX2-FP-NEXT:    vmovaps 1024(%rdi), %xmm1
13189 ; AVX2-FP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13190 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
13191 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
13192 ; AVX2-FP-NEXT:    vmovaps 1248(%rdi), %xmm1
13193 ; AVX2-FP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13194 ; AVX2-FP-NEXT:    vbroadcastss %xmm1, %xmm1
13195 ; AVX2-FP-NEXT:    vmovaps 1216(%rdi), %xmm2
13196 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13197 ; AVX2-FP-NEXT:    vbroadcastss %xmm2, %xmm2
13198 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
13199 ; AVX2-FP-NEXT:    vmovaps 1184(%rdi), %xmm3
13200 ; AVX2-FP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13201 ; AVX2-FP-NEXT:    vmovaps 1152(%rdi), %xmm2
13202 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13203 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]
13204 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
13205 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
13206 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
13207 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
13208 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13209 ; AVX2-FP-NEXT:    vmovaps 1632(%rdi), %xmm0
13210 ; AVX2-FP-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13211 ; AVX2-FP-NEXT:    vbroadcastss %xmm0, %xmm0
13212 ; AVX2-FP-NEXT:    vmovaps 1600(%rdi), %xmm1
13213 ; AVX2-FP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13214 ; AVX2-FP-NEXT:    vbroadcastss %xmm1, %xmm1
13215 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
13216 ; AVX2-FP-NEXT:    vmovaps 1568(%rdi), %xmm2
13217 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13218 ; AVX2-FP-NEXT:    vmovaps 1536(%rdi), %xmm1
13219 ; AVX2-FP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13220 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
13221 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
13222 ; AVX2-FP-NEXT:    vmovaps 1760(%rdi), %xmm1
13223 ; AVX2-FP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13224 ; AVX2-FP-NEXT:    vbroadcastss %xmm1, %xmm1
13225 ; AVX2-FP-NEXT:    vmovaps 1728(%rdi), %xmm2
13226 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13227 ; AVX2-FP-NEXT:    vbroadcastss %xmm2, %xmm2
13228 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
13229 ; AVX2-FP-NEXT:    vmovaps 1696(%rdi), %xmm3
13230 ; AVX2-FP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13231 ; AVX2-FP-NEXT:    vmovaps 1664(%rdi), %xmm2
13232 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13233 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]
13234 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
13235 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
13236 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
13237 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
13238 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13239 ; AVX2-FP-NEXT:    vmovaps 224(%rdi), %xmm0
13240 ; AVX2-FP-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13241 ; AVX2-FP-NEXT:    vbroadcastss %xmm0, %xmm0
13242 ; AVX2-FP-NEXT:    vmovaps 192(%rdi), %xmm11
13243 ; AVX2-FP-NEXT:    vbroadcastss %xmm11, %xmm1
13244 ; AVX2-FP-NEXT:    vmovaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13245 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
13246 ; AVX2-FP-NEXT:    vmovaps 160(%rdi), %xmm2
13247 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13248 ; AVX2-FP-NEXT:    vmovaps 128(%rdi), %xmm1
13249 ; AVX2-FP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13250 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
13251 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
13252 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
13253 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm1[0,1,2,3,4,5],ymm0[6,7]
13254 ; AVX2-FP-NEXT:    vmovaps 96(%rdi), %xmm8
13255 ; AVX2-FP-NEXT:    vbroadcastss %xmm8, %xmm1
13256 ; AVX2-FP-NEXT:    vmovaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13257 ; AVX2-FP-NEXT:    vmovaps 64(%rdi), %xmm7
13258 ; AVX2-FP-NEXT:    vbroadcastss %xmm7, %xmm2
13259 ; AVX2-FP-NEXT:    vmovaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13260 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
13261 ; AVX2-FP-NEXT:    vmovaps (%rdi), %xmm5
13262 ; AVX2-FP-NEXT:    vmovaps 32(%rdi), %xmm6
13263 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm5[0],xmm6[0],xmm5[1],xmm6[1]
13264 ; AVX2-FP-NEXT:    vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13265 ; AVX2-FP-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13266 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm3[2,3]
13267 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm4[4,5,6,7]
13268 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13269 ; AVX2-FP-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
13270 ; AVX2-FP-NEXT:    # xmm0 = mem[1,1,1,1]
13271 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0],xmm10[1],xmm0[2,3]
13272 ; AVX2-FP-NEXT:    vmovaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13273 ; AVX2-FP-NEXT:    vmovaps (%rsp), %xmm1 # 16-byte Reload
13274 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm9[0],xmm1[1],xmm9[1]
13275 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
13276 ; AVX2-FP-NEXT:    vmovaps %xmm13, %xmm9
13277 ; AVX2-FP-NEXT:    vmovaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13278 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
13279 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm10[0],xmm13[0],xmm10[1],xmm13[1]
13280 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
13281 ; AVX2-FP-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
13282 ; AVX2-FP-NEXT:    # xmm2 = mem[1,1,1,1]
13283 ; AVX2-FP-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
13284 ; AVX2-FP-NEXT:    # xmm2 = xmm2[0],mem[1],xmm2[2,3]
13285 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
13286 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
13287 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
13288 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13289 ; AVX2-FP-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
13290 ; AVX2-FP-NEXT:    # xmm0 = mem[1,1,1,1]
13291 ; AVX2-FP-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
13292 ; AVX2-FP-NEXT:    # xmm0 = xmm0[0],mem[1],xmm0[2,3]
13293 ; AVX2-FP-NEXT:    vmovaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13294 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
13295 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm12[0],xmm1[1],xmm12[1]
13296 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
13297 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload
13298 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload
13299 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm13[0],xmm12[0],xmm13[1],xmm12[1]
13300 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
13301 ; AVX2-FP-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
13302 ; AVX2-FP-NEXT:    # xmm2 = mem[1,1,1,1]
13303 ; AVX2-FP-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
13304 ; AVX2-FP-NEXT:    # xmm2 = xmm2[0],mem[1],xmm2[2,3]
13305 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
13306 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
13307 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
13308 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13309 ; AVX2-FP-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
13310 ; AVX2-FP-NEXT:    # xmm0 = mem[1,1,1,1]
13311 ; AVX2-FP-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
13312 ; AVX2-FP-NEXT:    # xmm0 = xmm0[0],mem[1],xmm0[2,3]
13313 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
13314 ; AVX2-FP-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13315 ; AVX2-FP-NEXT:    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
13316 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
13317 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
13318 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
13319 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm15[0],xmm14[0],xmm15[1],xmm14[1]
13320 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
13321 ; AVX2-FP-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
13322 ; AVX2-FP-NEXT:    # xmm2 = mem[1,1,1,1]
13323 ; AVX2-FP-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
13324 ; AVX2-FP-NEXT:    # xmm2 = xmm2[0],mem[1],xmm2[2,3]
13325 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
13326 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
13327 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
13328 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13329 ; AVX2-FP-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
13330 ; AVX2-FP-NEXT:    # xmm0 = mem[1,1,1,1]
13331 ; AVX2-FP-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
13332 ; AVX2-FP-NEXT:    # xmm0 = xmm0[0],mem[1],xmm0[2,3]
13333 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
13334 ; AVX2-FP-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13335 ; AVX2-FP-NEXT:    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
13336 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
13337 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
13338 ; AVX2-FP-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13339 ; AVX2-FP-NEXT:    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
13340 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
13341 ; AVX2-FP-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
13342 ; AVX2-FP-NEXT:    # xmm2 = mem[1,1,1,1]
13343 ; AVX2-FP-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
13344 ; AVX2-FP-NEXT:    # xmm2 = xmm2[0],mem[1],xmm2[2,3]
13345 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
13346 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
13347 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
13348 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13349 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm0 = xmm5[1,1,1,1]
13350 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0],xmm6[1],xmm0[2,3]
13351 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm7[0],xmm8[0],xmm7[1],xmm8[1]
13352 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
13353 ; AVX2-FP-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11, %xmm1 # 16-byte Folded Reload
13354 ; AVX2-FP-NEXT:    # xmm1 = xmm11[0],mem[0],xmm11[1],mem[1]
13355 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
13356 ; AVX2-FP-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
13357 ; AVX2-FP-NEXT:    # xmm2 = mem[1,1,1,1]
13358 ; AVX2-FP-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
13359 ; AVX2-FP-NEXT:    # xmm2 = xmm2[0],mem[1],xmm2[2,3]
13360 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
13361 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
13362 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
13363 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13364 ; AVX2-FP-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
13365 ; AVX2-FP-NEXT:    # xmm0 = mem[1,1,1,1]
13366 ; AVX2-FP-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
13367 ; AVX2-FP-NEXT:    # xmm0 = xmm0[0],mem[1],xmm0[2,3]
13368 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
13369 ; AVX2-FP-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13370 ; AVX2-FP-NEXT:    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
13371 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
13372 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
13373 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
13374 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]
13375 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
13376 ; AVX2-FP-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
13377 ; AVX2-FP-NEXT:    # xmm2 = mem[1,1,1,1]
13378 ; AVX2-FP-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
13379 ; AVX2-FP-NEXT:    # xmm2 = xmm2[0],mem[1],xmm2[2,3]
13380 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
13381 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
13382 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
13383 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13384 ; AVX2-FP-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
13385 ; AVX2-FP-NEXT:    # xmm0 = mem[1,1,1,1]
13386 ; AVX2-FP-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
13387 ; AVX2-FP-NEXT:    # xmm0 = xmm0[0],mem[1],xmm0[2,3]
13388 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
13389 ; AVX2-FP-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13390 ; AVX2-FP-NEXT:    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
13391 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
13392 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
13393 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload
13394 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm11[0],xmm5[0],xmm11[1],xmm5[1]
13395 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
13396 ; AVX2-FP-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
13397 ; AVX2-FP-NEXT:    # xmm2 = mem[1,1,1,1]
13398 ; AVX2-FP-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
13399 ; AVX2-FP-NEXT:    # xmm2 = xmm2[0],mem[1],xmm2[2,3]
13400 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
13401 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
13402 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
13403 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13404 ; AVX2-FP-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
13405 ; AVX2-FP-NEXT:    # xmm0 = mem[1,1,1,1]
13406 ; AVX2-FP-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
13407 ; AVX2-FP-NEXT:    # xmm0 = xmm0[0],mem[1],xmm0[2,3]
13408 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
13409 ; AVX2-FP-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13410 ; AVX2-FP-NEXT:    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
13411 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
13412 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
13413 ; AVX2-FP-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13414 ; AVX2-FP-NEXT:    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
13415 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
13416 ; AVX2-FP-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
13417 ; AVX2-FP-NEXT:    # xmm2 = mem[1,1,1,1]
13418 ; AVX2-FP-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
13419 ; AVX2-FP-NEXT:    # xmm2 = xmm2[0],mem[1],xmm2[2,3]
13420 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
13421 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
13422 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
13423 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13424 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
13425 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm6 # 16-byte Folded Reload
13426 ; AVX2-FP-NEXT:    # xmm6 = xmm0[2],mem[2],xmm0[3],mem[3]
13427 ; AVX2-FP-NEXT:    vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13428 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
13429 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm1 # 16-byte Folded Reload
13430 ; AVX2-FP-NEXT:    # xmm1 = xmm0[2],mem[2],xmm0[3],mem[3]
13431 ; AVX2-FP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13432 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm0 = xmm9[2,2,2,2]
13433 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm10[0,1,2],xmm0[3]
13434 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
13435 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
13436 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
13437 ; AVX2-FP-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
13438 ; AVX2-FP-NEXT:    # xmm1 = mem[2,2,2,2]
13439 ; AVX2-FP-NEXT:    vblendps $7, (%rsp), %xmm1, %xmm1 # 16-byte Folded Reload
13440 ; AVX2-FP-NEXT:    # xmm1 = mem[0,1,2],xmm1[3]
13441 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm6[0,1],xmm1[2,3]
13442 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13443 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13444 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
13445 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm2 # 16-byte Folded Reload
13446 ; AVX2-FP-NEXT:    # xmm2 = xmm0[2],mem[2],xmm0[3],mem[3]
13447 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13448 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
13449 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm1 # 16-byte Folded Reload
13450 ; AVX2-FP-NEXT:    # xmm1 = xmm0[2],mem[2],xmm0[3],mem[3]
13451 ; AVX2-FP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13452 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm0 = xmm12[2,2,2,2]
13453 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm13[0,1,2],xmm0[3]
13454 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
13455 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
13456 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
13457 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload
13458 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm1 = xmm9[2,2,2,2]
13459 ; AVX2-FP-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13460 ; AVX2-FP-NEXT:    # xmm1 = mem[0,1,2],xmm1[3]
13461 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
13462 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13463 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13464 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
13465 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm10 # 16-byte Folded Reload
13466 ; AVX2-FP-NEXT:    # xmm10 = xmm0[2],mem[2],xmm0[3],mem[3]
13467 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
13468 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm1 # 16-byte Folded Reload
13469 ; AVX2-FP-NEXT:    # xmm1 = xmm0[2],mem[2],xmm0[3],mem[3]
13470 ; AVX2-FP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13471 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm0 = xmm14[2,2,2,2]
13472 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm15[0,1,2],xmm0[3]
13473 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
13474 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
13475 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
13476 ; AVX2-FP-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
13477 ; AVX2-FP-NEXT:    # xmm1 = mem[2,2,2,2]
13478 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
13479 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm7[0,1,2],xmm1[3]
13480 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm10[0,1],xmm1[2,3]
13481 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13482 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13483 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
13484 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm8 # 16-byte Folded Reload
13485 ; AVX2-FP-NEXT:    # xmm8 = xmm0[2],mem[2],xmm0[3],mem[3]
13486 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
13487 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm1 # 16-byte Folded Reload
13488 ; AVX2-FP-NEXT:    # xmm1 = xmm0[2],mem[2],xmm0[3],mem[3]
13489 ; AVX2-FP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13490 ; AVX2-FP-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
13491 ; AVX2-FP-NEXT:    # xmm0 = mem[2,2,2,2]
13492 ; AVX2-FP-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
13493 ; AVX2-FP-NEXT:    # xmm0 = mem[0,1,2],xmm0[3]
13494 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
13495 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
13496 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
13497 ; AVX2-FP-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
13498 ; AVX2-FP-NEXT:    # xmm1 = mem[2,2,2,2]
13499 ; AVX2-FP-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13500 ; AVX2-FP-NEXT:    # xmm1 = mem[0,1,2],xmm1[3]
13501 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm8[0,1],xmm1[2,3]
13502 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13503 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13504 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
13505 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm2 # 16-byte Folded Reload
13506 ; AVX2-FP-NEXT:    # xmm2 = xmm0[2],mem[2],xmm0[3],mem[3]
13507 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13508 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
13509 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm1 # 16-byte Folded Reload
13510 ; AVX2-FP-NEXT:    # xmm1 = xmm0[2],mem[2],xmm0[3],mem[3]
13511 ; AVX2-FP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13512 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm0 = xmm3[2,2,2,2]
13513 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm4[0,1,2],xmm0[3]
13514 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
13515 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
13516 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
13517 ; AVX2-FP-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
13518 ; AVX2-FP-NEXT:    # xmm1 = mem[2,2,2,2]
13519 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
13520 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm6[0,1,2],xmm1[3]
13521 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
13522 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13523 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13524 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
13525 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm2 # 16-byte Folded Reload
13526 ; AVX2-FP-NEXT:    # xmm2 = xmm0[2],mem[2],xmm0[3],mem[3]
13527 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13528 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
13529 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm1 # 16-byte Folded Reload
13530 ; AVX2-FP-NEXT:    # xmm1 = xmm0[2],mem[2],xmm0[3],mem[3]
13531 ; AVX2-FP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13532 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm0 = xmm5[2,2,2,2]
13533 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm11[0,1,2],xmm0[3]
13534 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
13535 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
13536 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
13537 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
13538 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm1 = xmm4[2,2,2,2]
13539 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
13540 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm3[0,1,2],xmm1[3]
13541 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
13542 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13543 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13544 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
13545 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm5 # 16-byte Folded Reload
13546 ; AVX2-FP-NEXT:    # xmm5 = xmm0[2],mem[2],xmm0[3],mem[3]
13547 ; AVX2-FP-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13548 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
13549 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm1 # 16-byte Folded Reload
13550 ; AVX2-FP-NEXT:    # xmm1 = xmm0[2],mem[2],xmm0[3],mem[3]
13551 ; AVX2-FP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13552 ; AVX2-FP-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
13553 ; AVX2-FP-NEXT:    # xmm0 = mem[2,2,2,2]
13554 ; AVX2-FP-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
13555 ; AVX2-FP-NEXT:    # xmm0 = mem[0,1,2],xmm0[3]
13556 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
13557 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm15
13558 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm15[0,1,2,3,4,5],ymm0[6,7]
13559 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
13560 ; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm15 = xmm2[2,2,2,2]
13561 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
13562 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm15 = xmm1[0,1,2],xmm15[3]
13563 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm15 = xmm5[0,1],xmm15[2,3]
13564 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm15[0,1,2,3],ymm0[4,5,6,7]
13565 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13566 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
13567 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm5 # 16-byte Folded Reload
13568 ; AVX2-FP-NEXT:    # xmm5 = xmm0[2],mem[2],xmm0[3],mem[3]
13569 ; AVX2-FP-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13570 ; AVX2-FP-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload
13571 ; AVX2-FP-NEXT:    # xmm15 = mem[2,2,2,2]
13572 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
13573 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm15 = xmm0[0,1,2],xmm15[3]
13574 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm15
13575 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm14
13576 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3,4,5],ymm15[6,7]
13577 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
13578 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm15 # 16-byte Folded Reload
13579 ; AVX2-FP-NEXT:    # xmm15 = xmm5[2],mem[2],xmm5[3],mem[3]
13580 ; AVX2-FP-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Folded Reload
13581 ; AVX2-FP-NEXT:    # xmm13 = mem[2,2,2,2]
13582 ; AVX2-FP-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm13, %xmm13 # 16-byte Folded Reload
13583 ; AVX2-FP-NEXT:    # xmm13 = mem[0,1,2],xmm13[3]
13584 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm13 = xmm15[0,1],xmm13[2,3]
13585 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm12 = ymm13[0,1,2,3],ymm14[4,5,6,7]
13586 ; AVX2-FP-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13587 ; AVX2-FP-NEXT:    vmovaps (%rsp), %xmm5 # 16-byte Reload
13588 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm13 # 16-byte Folded Reload
13589 ; AVX2-FP-NEXT:    # xmm13 = xmm5[2],mem[2],xmm5[3],mem[3]
13590 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
13591 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm13 = xmm5[1],xmm13[1]
13592 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
13593 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm14 # 16-byte Folded Reload
13594 ; AVX2-FP-NEXT:    # xmm14 = xmm5[2],mem[2],xmm5[3],mem[3]
13595 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm14, %ymm0, %ymm14
13596 ; AVX2-FP-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Folded Reload
13597 ; AVX2-FP-NEXT:    # xmm12 = mem[2,3,2,3]
13598 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm12
13599 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3,4,5],ymm14[6,7]
13600 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm12 = ymm13[0,1,2,3],ymm12[4,5,6,7]
13601 ; AVX2-FP-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13602 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
13603 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm12 = xmm5[2],xmm9[2],xmm5[3],xmm9[3]
13604 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
13605 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm11 = xmm5[1],xmm12[1]
13606 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
13607 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm12 # 16-byte Folded Reload
13608 ; AVX2-FP-NEXT:    # xmm12 = xmm5[2],mem[2],xmm5[3],mem[3]
13609 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm12
13610 ; AVX2-FP-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Folded Reload
13611 ; AVX2-FP-NEXT:    # xmm13 = mem[2,3,2,3]
13612 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm13, %ymm0, %ymm13
13613 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm12 = ymm13[0,1,2,3,4,5],ymm12[6,7]
13614 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1,2,3],ymm12[4,5,6,7]
13615 ; AVX2-FP-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13616 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7, %xmm11 # 16-byte Folded Reload
13617 ; AVX2-FP-NEXT:    # xmm11 = xmm7[2],mem[2],xmm7[3],mem[3]
13618 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm9 = xmm10[1],xmm11[1]
13619 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
13620 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm11 # 16-byte Folded Reload
13621 ; AVX2-FP-NEXT:    # xmm11 = xmm5[2],mem[2],xmm5[3],mem[3]
13622 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm11, %ymm0, %ymm11
13623 ; AVX2-FP-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Folded Reload
13624 ; AVX2-FP-NEXT:    # xmm10 = mem[2,3,2,3]
13625 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
13626 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1,2,3,4,5],ymm11[6,7]
13627 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3],ymm10[4,5,6,7]
13628 ; AVX2-FP-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13629 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
13630 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm9 # 16-byte Folded Reload
13631 ; AVX2-FP-NEXT:    # xmm9 = xmm5[2],mem[2],xmm5[3],mem[3]
13632 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm7 = xmm8[1],xmm9[1]
13633 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
13634 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm9 # 16-byte Folded Reload
13635 ; AVX2-FP-NEXT:    # xmm9 = xmm5[2],mem[2],xmm5[3],mem[3]
13636 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm9, %ymm0, %ymm9
13637 ; AVX2-FP-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload
13638 ; AVX2-FP-NEXT:    # xmm8 = mem[2,3,2,3]
13639 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm8
13640 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],ymm9[6,7]
13641 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3],ymm8[4,5,6,7]
13642 ; AVX2-FP-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13643 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6, %xmm7 # 16-byte Folded Reload
13644 ; AVX2-FP-NEXT:    # xmm7 = xmm6[2],mem[2],xmm6[3],mem[3]
13645 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
13646 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm5 = xmm5[1],xmm7[1]
13647 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
13648 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6, %xmm7 # 16-byte Folded Reload
13649 ; AVX2-FP-NEXT:    # xmm7 = xmm6[2],mem[2],xmm6[3],mem[3]
13650 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
13651 ; AVX2-FP-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload
13652 ; AVX2-FP-NEXT:    # xmm6 = mem[2,3,2,3]
13653 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
13654 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5],ymm7[6,7]
13655 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm6[4,5,6,7]
13656 ; AVX2-FP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13657 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm3[2],xmm4[2],xmm3[3],xmm4[3]
13658 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
13659 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm3 = xmm3[1],xmm5[1]
13660 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
13661 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm5 # 16-byte Folded Reload
13662 ; AVX2-FP-NEXT:    # xmm5 = xmm4[2],mem[2],xmm4[3],mem[3]
13663 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
13664 ; AVX2-FP-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
13665 ; AVX2-FP-NEXT:    # xmm4 = mem[2,3,2,3]
13666 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
13667 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],ymm5[6,7]
13668 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm4[4,5,6,7]
13669 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13670 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} xmm3 = xmm1[2],xmm2[2],xmm1[3],xmm2[3]
13671 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
13672 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm3[1]
13673 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
13674 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm3 # 16-byte Folded Reload
13675 ; AVX2-FP-NEXT:    # xmm3 = xmm2[2],mem[2],xmm2[3],mem[3]
13676 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
13677 ; AVX2-FP-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
13678 ; AVX2-FP-NEXT:    # xmm2 = mem[2,3,2,3]
13679 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
13680 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm3[6,7]
13681 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]
13682 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13683 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm1 # 16-byte Folded Reload
13684 ; AVX2-FP-NEXT:    # xmm1 = xmm0[2],mem[2],xmm0[3],mem[3]
13685 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
13686 ; AVX2-FP-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
13687 ; AVX2-FP-NEXT:    # xmm0 = mem[2,3,2,3]
13688 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
13689 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
13690 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
13691 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13692 ; AVX2-FP-NEXT:    # xmm1 = xmm1[2],mem[2],xmm1[3],mem[3]
13693 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm15[1],xmm1[1]
13694 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13695 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13696 ; AVX2-FP-NEXT:    vmovaps 32(%rdi), %ymm0
13697 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13698 ; AVX2-FP-NEXT:    vmovaps (%rdi), %ymm1
13699 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13700 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
13701 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm0, %xmm0
13702 ; AVX2-FP-NEXT:    vmovaps 96(%rdi), %ymm1
13703 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13704 ; AVX2-FP-NEXT:    vmovaps 64(%rdi), %ymm2
13705 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13706 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[4],ymm1[4],ymm2[5],ymm1[5]
13707 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13708 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,2]
13709 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
13710 ; AVX2-FP-NEXT:    vmovaps 224(%rdi), %ymm2
13711 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13712 ; AVX2-FP-NEXT:    vmovaps 192(%rdi), %ymm3
13713 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13714 ; AVX2-FP-NEXT:    vmovaps 160(%rdi), %ymm15
13715 ; AVX2-FP-NEXT:    vmovaps 128(%rdi), %ymm1
13716 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13717 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm15[0],ymm1[1],ymm15[1],ymm1[4],ymm15[4],ymm1[5],ymm15[5]
13718 ; AVX2-FP-NEXT:    vmovups %ymm15, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13719 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm2 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
13720 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13721 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
13722 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
13723 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13724 ; AVX2-FP-NEXT:    vmovaps 288(%rdi), %ymm0
13725 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13726 ; AVX2-FP-NEXT:    vmovaps 256(%rdi), %ymm1
13727 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13728 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
13729 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm0, %xmm0
13730 ; AVX2-FP-NEXT:    vmovaps 352(%rdi), %ymm1
13731 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13732 ; AVX2-FP-NEXT:    vmovaps 320(%rdi), %ymm2
13733 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13734 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[4],ymm1[4],ymm2[5],ymm1[5]
13735 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13736 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,2]
13737 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
13738 ; AVX2-FP-NEXT:    vmovaps 480(%rdi), %ymm2
13739 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13740 ; AVX2-FP-NEXT:    vmovaps 448(%rdi), %ymm3
13741 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13742 ; AVX2-FP-NEXT:    vmovaps 416(%rdi), %ymm4
13743 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13744 ; AVX2-FP-NEXT:    vmovaps 384(%rdi), %ymm1
13745 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13746 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm4[0],ymm1[1],ymm4[1],ymm1[4],ymm4[4],ymm1[5],ymm4[5]
13747 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm12 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
13748 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm12[0],ymm1[2],ymm12[2]
13749 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
13750 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13751 ; AVX2-FP-NEXT:    vmovaps 544(%rdi), %ymm0
13752 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13753 ; AVX2-FP-NEXT:    vmovaps 512(%rdi), %ymm1
13754 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13755 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
13756 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm0, %xmm0
13757 ; AVX2-FP-NEXT:    vmovaps 608(%rdi), %ymm1
13758 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13759 ; AVX2-FP-NEXT:    vmovaps 576(%rdi), %ymm2
13760 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13761 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[4],ymm1[4],ymm2[5],ymm1[5]
13762 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13763 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,2]
13764 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
13765 ; AVX2-FP-NEXT:    vmovaps 736(%rdi), %ymm2
13766 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13767 ; AVX2-FP-NEXT:    vmovaps 704(%rdi), %ymm3
13768 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13769 ; AVX2-FP-NEXT:    vmovaps 672(%rdi), %ymm4
13770 ; AVX2-FP-NEXT:    vmovaps 640(%rdi), %ymm1
13771 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13772 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm4[0],ymm1[1],ymm4[1],ymm1[4],ymm4[4],ymm1[5],ymm4[5]
13773 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13774 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm8 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
13775 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm8[0],ymm1[2],ymm8[2]
13776 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
13777 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13778 ; AVX2-FP-NEXT:    vmovaps 800(%rdi), %ymm0
13779 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13780 ; AVX2-FP-NEXT:    vmovaps 768(%rdi), %ymm1
13781 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13782 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
13783 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm0, %xmm0
13784 ; AVX2-FP-NEXT:    vmovaps 864(%rdi), %ymm1
13785 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13786 ; AVX2-FP-NEXT:    vmovaps 832(%rdi), %ymm2
13787 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13788 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[4],ymm1[4],ymm2[5],ymm1[5]
13789 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13790 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,2]
13791 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
13792 ; AVX2-FP-NEXT:    vmovaps 992(%rdi), %ymm2
13793 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13794 ; AVX2-FP-NEXT:    vmovaps 960(%rdi), %ymm5
13795 ; AVX2-FP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13796 ; AVX2-FP-NEXT:    vmovaps 928(%rdi), %ymm3
13797 ; AVX2-FP-NEXT:    vmovaps 896(%rdi), %ymm1
13798 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13799 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[5],ymm3[5]
13800 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13801 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm5 = ymm5[0],ymm2[0],ymm5[1],ymm2[1],ymm5[4],ymm2[4],ymm5[5],ymm2[5]
13802 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm5[0],ymm1[2],ymm5[2]
13803 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
13804 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13805 ; AVX2-FP-NEXT:    vmovaps 1056(%rdi), %ymm0
13806 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13807 ; AVX2-FP-NEXT:    vmovaps 1024(%rdi), %ymm1
13808 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13809 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
13810 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm0, %xmm0
13811 ; AVX2-FP-NEXT:    vmovaps 1120(%rdi), %ymm1
13812 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13813 ; AVX2-FP-NEXT:    vmovaps 1088(%rdi), %ymm2
13814 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13815 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[4],ymm1[4],ymm2[5],ymm1[5]
13816 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13817 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,2]
13818 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
13819 ; AVX2-FP-NEXT:    vmovaps 1248(%rdi), %ymm1
13820 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13821 ; AVX2-FP-NEXT:    vmovaps 1216(%rdi), %ymm7
13822 ; AVX2-FP-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13823 ; AVX2-FP-NEXT:    vmovaps 1184(%rdi), %ymm2
13824 ; AVX2-FP-NEXT:    vmovaps 1152(%rdi), %ymm6
13825 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13826 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm6 = ymm6[0],ymm2[0],ymm6[1],ymm2[1],ymm6[4],ymm2[4],ymm6[5],ymm2[5]
13827 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13828 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm7[0],ymm1[0],ymm7[1],ymm1[1],ymm7[4],ymm1[4],ymm7[5],ymm1[5]
13829 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm6 = ymm6[0],ymm1[0],ymm6[2],ymm1[2]
13830 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm6[4,5,6,7]
13831 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13832 ; AVX2-FP-NEXT:    vmovaps 1312(%rdi), %ymm0
13833 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13834 ; AVX2-FP-NEXT:    vmovaps 1280(%rdi), %ymm6
13835 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13836 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm6[0],ymm0[0],ymm6[1],ymm0[1],ymm6[4],ymm0[4],ymm6[5],ymm0[5]
13837 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm0, %xmm6
13838 ; AVX2-FP-NEXT:    vmovaps 1376(%rdi), %ymm0
13839 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13840 ; AVX2-FP-NEXT:    vmovaps 1344(%rdi), %ymm7
13841 ; AVX2-FP-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13842 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm7[0],ymm0[0],ymm7[1],ymm0[1],ymm7[4],ymm0[4],ymm7[5],ymm0[5]
13843 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13844 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm7 = ymm0[2,2,2,2]
13845 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm7 = xmm6[0,1],xmm7[2,3]
13846 ; AVX2-FP-NEXT:    vmovaps 1504(%rdi), %ymm6
13847 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13848 ; AVX2-FP-NEXT:    vmovaps 1472(%rdi), %ymm10
13849 ; AVX2-FP-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13850 ; AVX2-FP-NEXT:    vmovaps 1440(%rdi), %ymm0
13851 ; AVX2-FP-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
13852 ; AVX2-FP-NEXT:    vmovaps 1408(%rdi), %ymm9
13853 ; AVX2-FP-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13854 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm9 = ymm9[0],ymm0[0],ymm9[1],ymm0[1],ymm9[4],ymm0[4],ymm9[5],ymm0[5]
13855 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm10[0],ymm6[0],ymm10[1],ymm6[1],ymm10[4],ymm6[4],ymm10[5],ymm6[5]
13856 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm9 = ymm9[0],ymm0[0],ymm9[2],ymm0[2]
13857 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3],ymm9[4,5,6,7]
13858 ; AVX2-FP-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13859 ; AVX2-FP-NEXT:    vmovaps 1568(%rdi), %ymm6
13860 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13861 ; AVX2-FP-NEXT:    vmovaps 1536(%rdi), %ymm7
13862 ; AVX2-FP-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13863 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm7 = ymm7[0],ymm6[0],ymm7[1],ymm6[1],ymm7[4],ymm6[4],ymm7[5],ymm6[5]
13864 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm7, %xmm9
13865 ; AVX2-FP-NEXT:    vmovaps 1632(%rdi), %ymm6
13866 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13867 ; AVX2-FP-NEXT:    vmovaps 1600(%rdi), %ymm7
13868 ; AVX2-FP-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13869 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm6 = ymm7[0],ymm6[0],ymm7[1],ymm6[1],ymm7[4],ymm6[4],ymm7[5],ymm6[5]
13870 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13871 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm10 = ymm6[2,2,2,2]
13872 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm10 = xmm9[0,1],xmm10[2,3]
13873 ; AVX2-FP-NEXT:    vmovaps 1760(%rdi), %ymm9
13874 ; AVX2-FP-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13875 ; AVX2-FP-NEXT:    vmovaps 1728(%rdi), %ymm6
13876 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13877 ; AVX2-FP-NEXT:    vmovaps 1696(%rdi), %ymm7
13878 ; AVX2-FP-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13879 ; AVX2-FP-NEXT:    vmovaps 1664(%rdi), %ymm11
13880 ; AVX2-FP-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13881 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm11 = ymm11[0],ymm7[0],ymm11[1],ymm7[1],ymm11[4],ymm7[4],ymm11[5],ymm7[5]
13882 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm6 = ymm6[0],ymm9[0],ymm6[1],ymm9[1],ymm6[4],ymm9[4],ymm6[5],ymm9[5]
13883 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13884 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm11 = ymm11[0],ymm6[0],ymm11[2],ymm6[2]
13885 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1,2,3],ymm11[4,5,6,7]
13886 ; AVX2-FP-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13887 ; AVX2-FP-NEXT:    vmovaps 1824(%rdi), %ymm6
13888 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13889 ; AVX2-FP-NEXT:    vmovaps 1792(%rdi), %ymm7
13890 ; AVX2-FP-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13891 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm10 = ymm7[0],ymm6[0],ymm7[1],ymm6[1],ymm7[4],ymm6[4],ymm7[5],ymm6[5]
13892 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm10, %xmm11
13893 ; AVX2-FP-NEXT:    vmovaps 1888(%rdi), %ymm6
13894 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13895 ; AVX2-FP-NEXT:    vmovaps 1856(%rdi), %ymm7
13896 ; AVX2-FP-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13897 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm6 = ymm7[0],ymm6[0],ymm7[1],ymm6[1],ymm7[4],ymm6[4],ymm7[5],ymm6[5]
13898 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13899 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm13 = ymm6[2,2,2,2]
13900 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm13 = xmm11[0,1],xmm13[2,3]
13901 ; AVX2-FP-NEXT:    vmovaps 2016(%rdi), %ymm11
13902 ; AVX2-FP-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13903 ; AVX2-FP-NEXT:    vmovaps 1984(%rdi), %ymm6
13904 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13905 ; AVX2-FP-NEXT:    vmovaps 1952(%rdi), %ymm7
13906 ; AVX2-FP-NEXT:    vmovaps 1920(%rdi), %ymm9
13907 ; AVX2-FP-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13908 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm14 = ymm9[0],ymm7[0],ymm9[1],ymm7[1],ymm9[4],ymm7[4],ymm9[5],ymm7[5]
13909 ; AVX2-FP-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13910 ; AVX2-FP-NEXT:    vunpcklps {{.*#+}} ymm11 = ymm6[0],ymm11[0],ymm6[1],ymm11[1],ymm6[4],ymm11[4],ymm6[5],ymm11[5]
13911 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm14 = ymm14[0],ymm11[0],ymm14[2],ymm11[2]
13912 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1,2,3],ymm14[4,5,6,7]
13913 ; AVX2-FP-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13914 ; AVX2-FP-NEXT:    vbroadcastss 148(%rdi), %ymm13
13915 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1,2,3,4],ymm15[5],ymm13[6,7]
13916 ; AVX2-FP-NEXT:    vblendps $192, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm13 # 32-byte Folded Reload
13917 ; AVX2-FP-NEXT:    # ymm13 = ymm13[0,1,2,3,4,5],mem[6,7]
13918 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
13919 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm6, %xmm14
13920 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
13921 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm15 = ymm9[1,1,1,1,5,5,5,5]
13922 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
13923 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm15 = ymm15[0],ymm6[1],ymm15[2,3,4],ymm6[5],ymm15[6,7]
13924 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm15, %xmm15
13925 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm14 = xmm15[0,1],xmm14[2,3]
13926 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm13 = ymm14[0,1,2,3],ymm13[4,5,6,7]
13927 ; AVX2-FP-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13928 ; AVX2-FP-NEXT:    vbroadcastss 404(%rdi), %ymm13
13929 ; AVX2-FP-NEXT:    vblendps $32, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm13 # 32-byte Folded Reload
13930 ; AVX2-FP-NEXT:    # ymm13 = ymm13[0,1,2,3,4],mem[5],ymm13[6,7]
13931 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm12 = ymm13[0,1,2,3,4,5],ymm12[6,7]
13932 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
13933 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm10, %xmm13
13934 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload
13935 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm14 = ymm15[1,1,1,1,5,5,5,5]
13936 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
13937 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0],ymm10[1],ymm14[2,3,4],ymm10[5],ymm14[6,7]
13938 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm14, %xmm14
13939 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm13 = xmm14[0,1],xmm13[2,3]
13940 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm12 = ymm13[0,1,2,3],ymm12[4,5,6,7]
13941 ; AVX2-FP-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13942 ; AVX2-FP-NEXT:    vbroadcastss 660(%rdi), %ymm12
13943 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3,4],ymm4[5],ymm12[6,7]
13944 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm12[0,1,2,3,4,5],ymm8[6,7]
13945 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
13946 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm8, %xmm8
13947 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
13948 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm12 = ymm13[1,1,1,1,5,5,5,5]
13949 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
13950 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0],ymm14[1],ymm12[2,3,4],ymm14[5],ymm12[6,7]
13951 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm12, %xmm12
13952 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm8 = xmm12[0,1],xmm8[2,3]
13953 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm8[0,1,2,3],ymm4[4,5,6,7]
13954 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13955 ; AVX2-FP-NEXT:    vbroadcastss 916(%rdi), %ymm4
13956 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4],ymm3[5],ymm4[6,7]
13957 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3,4,5],ymm5[6,7]
13958 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
13959 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm4, %xmm4
13960 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
13961 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm5 = ymm8[1,1,1,1,5,5,5,5]
13962 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
13963 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0],ymm12[1],ymm5[2,3,4],ymm12[5],ymm5[6,7]
13964 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm5, %xmm5
13965 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm4 = xmm5[0,1],xmm4[2,3]
13966 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
13967 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13968 ; AVX2-FP-NEXT:    vbroadcastss 1172(%rdi), %ymm3
13969 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4],ymm2[5],ymm3[6,7]
13970 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3,4,5],ymm1[6,7]
13971 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
13972 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm2, %xmm2
13973 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
13974 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm3 = ymm4[1,1,1,1,5,5,5,5]
13975 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
13976 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0],ymm5[1],ymm3[2,3,4],ymm5[5],ymm3[6,7]
13977 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm3, %xmm3
13978 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm2 = xmm3[0,1],xmm2[2,3]
13979 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
13980 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13981 ; AVX2-FP-NEXT:    vbroadcastss 1428(%rdi), %ymm1
13982 ; AVX2-FP-NEXT:    vblendps $32, (%rsp), %ymm1, %ymm1 # 32-byte Folded Reload
13983 ; AVX2-FP-NEXT:    # ymm1 = ymm1[0,1,2,3,4],mem[5],ymm1[6,7]
13984 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm0[6,7]
13985 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13986 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm0, %xmm0
13987 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
13988 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm2 = ymm3[1,1,1,1,5,5,5,5]
13989 ; AVX2-FP-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
13990 ; AVX2-FP-NEXT:    # ymm2 = ymm2[0],mem[1],ymm2[2,3,4],mem[5],ymm2[6,7]
13991 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm2, %xmm2
13992 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm2[0,1],xmm0[2,3]
13993 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
13994 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13995 ; AVX2-FP-NEXT:    vbroadcastss 1684(%rdi), %ymm0
13996 ; AVX2-FP-NEXT:    vblendps $32, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
13997 ; AVX2-FP-NEXT:    # ymm0 = ymm0[0,1,2,3,4],mem[5],ymm0[6,7]
13998 ; AVX2-FP-NEXT:    vblendps $192, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
13999 ; AVX2-FP-NEXT:    # ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
14000 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
14001 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm1, %xmm1
14002 ; AVX2-FP-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Folded Reload
14003 ; AVX2-FP-NEXT:    # ymm2 = mem[1,1,1,1,5,5,5,5]
14004 ; AVX2-FP-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
14005 ; AVX2-FP-NEXT:    # ymm2 = ymm2[0],mem[1],ymm2[2,3,4],mem[5],ymm2[6,7]
14006 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm2, %xmm2
14007 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
14008 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
14009 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14010 ; AVX2-FP-NEXT:    vbroadcastss 1940(%rdi), %ymm0
14011 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm7[5],ymm0[6,7]
14012 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm11[6,7]
14013 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
14014 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm1, %xmm1
14015 ; AVX2-FP-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Folded Reload
14016 ; AVX2-FP-NEXT:    # ymm2 = mem[1,1,1,1,5,5,5,5]
14017 ; AVX2-FP-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
14018 ; AVX2-FP-NEXT:    # ymm2 = ymm2[0],mem[1],ymm2[2,3,4],mem[5],ymm2[6,7]
14019 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm2, %xmm2
14020 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
14021 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
14022 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14023 ; AVX2-FP-NEXT:    vbroadcastss 248(%rdi), %ymm0
14024 ; AVX2-FP-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
14025 ; AVX2-FP-NEXT:    # ymm0 = mem[0,1,2,3,4,5,6],ymm0[7]
14026 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
14027 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm7 # 32-byte Folded Reload
14028 ; AVX2-FP-NEXT:    # ymm7 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
14029 ; AVX2-FP-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14030 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm9[2],ymm6[2],ymm9[3],ymm6[3],ymm9[6],ymm6[6],ymm9[7],ymm6[7]
14031 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14032 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
14033 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload
14034 ; AVX2-FP-NEXT:    # ymm6 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
14035 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14036 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm2, %xmm1
14037 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm2 = ymm6[2,2,2,2]
14038 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
14039 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm7[0,1,2,3,4,5],ymm0[6,7]
14040 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
14041 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14042 ; AVX2-FP-NEXT:    vbroadcastss 504(%rdi), %ymm0
14043 ; AVX2-FP-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
14044 ; AVX2-FP-NEXT:    # ymm0 = mem[0,1,2,3,4,5,6],ymm0[7]
14045 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
14046 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload
14047 ; AVX2-FP-NEXT:    # ymm6 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
14048 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14049 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm15[2],ymm10[2],ymm15[3],ymm10[3],ymm15[6],ymm10[6],ymm15[7],ymm10[7]
14050 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14051 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
14052 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm7 # 32-byte Folded Reload
14053 ; AVX2-FP-NEXT:    # ymm7 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
14054 ; AVX2-FP-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14055 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm2, %xmm1
14056 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm2 = ymm7[2,2,2,2]
14057 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
14058 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm6[0,1,2,3,4,5],ymm0[6,7]
14059 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
14060 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14061 ; AVX2-FP-NEXT:    vbroadcastss 760(%rdi), %ymm0
14062 ; AVX2-FP-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
14063 ; AVX2-FP-NEXT:    # ymm0 = mem[0,1,2,3,4,5,6],ymm0[7]
14064 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
14065 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload
14066 ; AVX2-FP-NEXT:    # ymm6 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
14067 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14068 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm13[2],ymm14[2],ymm13[3],ymm14[3],ymm13[6],ymm14[6],ymm13[7],ymm14[7]
14069 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14070 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
14071 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm7 # 32-byte Folded Reload
14072 ; AVX2-FP-NEXT:    # ymm7 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
14073 ; AVX2-FP-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14074 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm2, %xmm1
14075 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm2 = ymm7[2,2,2,2]
14076 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
14077 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm6[0,1,2,3,4,5],ymm0[6,7]
14078 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
14079 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14080 ; AVX2-FP-NEXT:    vbroadcastss 1016(%rdi), %ymm0
14081 ; AVX2-FP-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
14082 ; AVX2-FP-NEXT:    # ymm0 = mem[0,1,2,3,4,5,6],ymm0[7]
14083 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
14084 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload
14085 ; AVX2-FP-NEXT:    # ymm6 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
14086 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14087 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm8[2],ymm12[2],ymm8[3],ymm12[3],ymm8[6],ymm12[6],ymm8[7],ymm12[7]
14088 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14089 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
14090 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm14 # 32-byte Folded Reload
14091 ; AVX2-FP-NEXT:    # ymm14 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
14092 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm2, %xmm1
14093 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm2 = ymm14[2,2,2,2]
14094 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
14095 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm6[0,1,2,3,4,5],ymm0[6,7]
14096 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
14097 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14098 ; AVX2-FP-NEXT:    vbroadcastss 1272(%rdi), %ymm0
14099 ; AVX2-FP-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
14100 ; AVX2-FP-NEXT:    # ymm0 = mem[0,1,2,3,4,5,6],ymm0[7]
14101 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
14102 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm12 # 32-byte Folded Reload
14103 ; AVX2-FP-NEXT:    # ymm12 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
14104 ; AVX2-FP-NEXT:    vunpckhps {{.*#+}} ymm13 = ymm4[2],ymm5[2],ymm4[3],ymm5[3],ymm4[6],ymm5[6],ymm4[7],ymm5[7]
14105 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
14106 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm11 # 32-byte Folded Reload
14107 ; AVX2-FP-NEXT:    # ymm11 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
14108 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm13, %xmm1
14109 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm2 = ymm11[2,2,2,2]
14110 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
14111 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm12[0,1,2,3,4,5],ymm0[6,7]
14112 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
14113 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14114 ; AVX2-FP-NEXT:    vbroadcastss 1528(%rdi), %ymm0
14115 ; AVX2-FP-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
14116 ; AVX2-FP-NEXT:    # ymm0 = mem[0,1,2,3,4,5,6],ymm0[7]
14117 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
14118 ; AVX2-FP-NEXT:    vunpckhps (%rsp), %ymm1, %ymm10 # 32-byte Folded Reload
14119 ; AVX2-FP-NEXT:    # ymm10 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
14120 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm9 # 32-byte Folded Reload
14121 ; AVX2-FP-NEXT:    # ymm9 = ymm3[2],mem[2],ymm3[3],mem[3],ymm3[6],mem[6],ymm3[7],mem[7]
14122 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
14123 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm8 # 32-byte Folded Reload
14124 ; AVX2-FP-NEXT:    # ymm8 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
14125 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm9, %xmm1
14126 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm2 = ymm8[2,2,2,2]
14127 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
14128 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1,2,3,4,5],ymm0[6,7]
14129 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
14130 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14131 ; AVX2-FP-NEXT:    vbroadcastss 1784(%rdi), %ymm0
14132 ; AVX2-FP-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
14133 ; AVX2-FP-NEXT:    # ymm0 = mem[0,1,2,3,4,5,6],ymm0[7]
14134 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
14135 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload
14136 ; AVX2-FP-NEXT:    # ymm6 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
14137 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
14138 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm7 # 32-byte Folded Reload
14139 ; AVX2-FP-NEXT:    # ymm7 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
14140 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
14141 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm5 # 32-byte Folded Reload
14142 ; AVX2-FP-NEXT:    # ymm5 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
14143 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm7, %xmm1
14144 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm2 = ymm5[2,2,2,2]
14145 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
14146 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm6[0,1,2,3,4,5],ymm0[6,7]
14147 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
14148 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14149 ; AVX2-FP-NEXT:    vbroadcastss 2040(%rdi), %ymm0
14150 ; AVX2-FP-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload
14151 ; AVX2-FP-NEXT:    # ymm1 = mem[0,1,2,3,4,5,6],ymm0[7]
14152 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14153 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm4 # 32-byte Folded Reload
14154 ; AVX2-FP-NEXT:    # ymm4 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
14155 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14156 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm3 # 32-byte Folded Reload
14157 ; AVX2-FP-NEXT:    # ymm3 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
14158 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14159 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload
14160 ; AVX2-FP-NEXT:    # ymm2 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
14161 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm3, %xmm0
14162 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm15 = ymm2[2,2,2,2]
14163 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm15[2,3]
14164 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm4[0,1,2,3,4,5],ymm1[6,7]
14165 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
14166 ; AVX2-FP-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
14167 ; AVX2-FP-NEXT:    vbroadcastss 220(%rdi), %ymm0
14168 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
14169 ; AVX2-FP-NEXT:    # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
14170 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
14171 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
14172 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
14173 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm1, %xmm1
14174 ; AVX2-FP-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Folded Reload
14175 ; AVX2-FP-NEXT:    # ymm15 = mem[2,3,2,3,6,7,6,7]
14176 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm15, %xmm15
14177 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm15[0,1],xmm1[2,3]
14178 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
14179 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14180 ; AVX2-FP-NEXT:    vbroadcastss 476(%rdi), %ymm0
14181 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
14182 ; AVX2-FP-NEXT:    # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
14183 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
14184 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
14185 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
14186 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm1, %xmm1
14187 ; AVX2-FP-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Folded Reload
14188 ; AVX2-FP-NEXT:    # ymm15 = mem[2,3,2,3,6,7,6,7]
14189 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm15, %xmm15
14190 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm15[0,1],xmm1[2,3]
14191 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
14192 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14193 ; AVX2-FP-NEXT:    vbroadcastss 732(%rdi), %ymm0
14194 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
14195 ; AVX2-FP-NEXT:    # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
14196 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
14197 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
14198 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
14199 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm1, %xmm1
14200 ; AVX2-FP-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Folded Reload
14201 ; AVX2-FP-NEXT:    # ymm15 = mem[2,3,2,3,6,7,6,7]
14202 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm15, %xmm15
14203 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm15[0,1],xmm1[2,3]
14204 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm15 = ymm1[0,1,2,3],ymm0[4,5,6,7]
14205 ; AVX2-FP-NEXT:    vbroadcastss 988(%rdi), %ymm0
14206 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
14207 ; AVX2-FP-NEXT:    # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
14208 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
14209 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
14210 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm14, %xmm1
14211 ; AVX2-FP-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Folded Reload
14212 ; AVX2-FP-NEXT:    # ymm14 = mem[2,3,2,3,6,7,6,7]
14213 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm14, %xmm14
14214 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm14[0,1],xmm1[2,3]
14215 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm14 = ymm1[0,1,2,3],ymm0[4,5,6,7]
14216 ; AVX2-FP-NEXT:    vbroadcastss 1244(%rdi), %ymm0
14217 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
14218 ; AVX2-FP-NEXT:    # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
14219 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm12[1],ymm0[1],ymm12[3],ymm0[3]
14220 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm11, %xmm1
14221 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm11 = ymm13[2,3,2,3,6,7,6,7]
14222 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm11, %xmm11
14223 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm11[0,1],xmm1[2,3]
14224 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm0[4,5,6,7]
14225 ; AVX2-FP-NEXT:    vbroadcastss 1500(%rdi), %ymm0
14226 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
14227 ; AVX2-FP-NEXT:    # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
14228 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm10[1],ymm0[1],ymm10[3],ymm0[3]
14229 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm8, %xmm8
14230 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm9 = ymm9[2,3,2,3,6,7,6,7]
14231 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm9, %xmm9
14232 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm8 = xmm9[0,1],xmm8[2,3]
14233 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm0[4,5,6,7]
14234 ; AVX2-FP-NEXT:    vbroadcastss 1756(%rdi), %ymm0
14235 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
14236 ; AVX2-FP-NEXT:    # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
14237 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm6[1],ymm0[1],ymm6[3],ymm0[3]
14238 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm5, %xmm5
14239 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm6 = ymm7[2,3,2,3,6,7,6,7]
14240 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm6, %xmm6
14241 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm5 = xmm6[0,1],xmm5[2,3]
14242 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm0[4,5,6,7]
14243 ; AVX2-FP-NEXT:    vbroadcastss 2012(%rdi), %ymm0
14244 ; AVX2-FP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
14245 ; AVX2-FP-NEXT:    # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
14246 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm4[1],ymm0[1],ymm4[3],ymm0[3]
14247 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm2, %xmm2
14248 ; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[2,3,2,3,6,7,6,7]
14249 ; AVX2-FP-NEXT:    vextractf128 $1, %ymm3, %xmm3
14250 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm2 = xmm3[0,1],xmm2[2,3]
14251 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
14252 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14253 ; AVX2-FP-NEXT:    vmovaps %ymm2, 192(%rsi)
14254 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14255 ; AVX2-FP-NEXT:    vmovaps %ymm2, 128(%rsi)
14256 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14257 ; AVX2-FP-NEXT:    vmovaps %ymm2, 64(%rsi)
14258 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14259 ; AVX2-FP-NEXT:    vmovaps %ymm2, (%rsi)
14260 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14261 ; AVX2-FP-NEXT:    vmovaps %ymm2, 224(%rsi)
14262 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14263 ; AVX2-FP-NEXT:    vmovaps %ymm2, 160(%rsi)
14264 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14265 ; AVX2-FP-NEXT:    vmovaps %ymm2, 96(%rsi)
14266 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14267 ; AVX2-FP-NEXT:    vmovaps %ymm2, 32(%rsi)
14268 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14269 ; AVX2-FP-NEXT:    vmovaps %ymm2, 192(%rdx)
14270 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14271 ; AVX2-FP-NEXT:    vmovaps %ymm2, 128(%rdx)
14272 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14273 ; AVX2-FP-NEXT:    vmovaps %ymm2, 64(%rdx)
14274 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14275 ; AVX2-FP-NEXT:    vmovaps %ymm2, (%rdx)
14276 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14277 ; AVX2-FP-NEXT:    vmovaps %ymm2, 224(%rdx)
14278 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14279 ; AVX2-FP-NEXT:    vmovaps %ymm2, 160(%rdx)
14280 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14281 ; AVX2-FP-NEXT:    vmovaps %ymm2, 96(%rdx)
14282 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14283 ; AVX2-FP-NEXT:    vmovaps %ymm2, 32(%rdx)
14284 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14285 ; AVX2-FP-NEXT:    vmovaps %ymm2, 192(%rcx)
14286 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14287 ; AVX2-FP-NEXT:    vmovaps %ymm2, 128(%rcx)
14288 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14289 ; AVX2-FP-NEXT:    vmovaps %ymm2, 64(%rcx)
14290 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14291 ; AVX2-FP-NEXT:    vmovaps %ymm2, (%rcx)
14292 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14293 ; AVX2-FP-NEXT:    vmovaps %ymm2, 224(%rcx)
14294 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14295 ; AVX2-FP-NEXT:    vmovaps %ymm2, 160(%rcx)
14296 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14297 ; AVX2-FP-NEXT:    vmovaps %ymm2, 96(%rcx)
14298 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14299 ; AVX2-FP-NEXT:    vmovaps %ymm2, 32(%rcx)
14300 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14301 ; AVX2-FP-NEXT:    vmovaps %ymm2, 192(%r8)
14302 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14303 ; AVX2-FP-NEXT:    vmovaps %ymm2, 128(%r8)
14304 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14305 ; AVX2-FP-NEXT:    vmovaps %ymm2, 64(%r8)
14306 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14307 ; AVX2-FP-NEXT:    vmovaps %ymm2, (%r8)
14308 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14309 ; AVX2-FP-NEXT:    vmovaps %ymm2, 224(%r8)
14310 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14311 ; AVX2-FP-NEXT:    vmovaps %ymm2, 160(%r8)
14312 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14313 ; AVX2-FP-NEXT:    vmovaps %ymm2, 96(%r8)
14314 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14315 ; AVX2-FP-NEXT:    vmovaps %ymm2, 32(%r8)
14316 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14317 ; AVX2-FP-NEXT:    vmovaps %ymm2, 224(%r9)
14318 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14319 ; AVX2-FP-NEXT:    vmovaps %ymm2, 192(%r9)
14320 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14321 ; AVX2-FP-NEXT:    vmovaps %ymm2, 160(%r9)
14322 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14323 ; AVX2-FP-NEXT:    vmovaps %ymm2, 128(%r9)
14324 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14325 ; AVX2-FP-NEXT:    vmovaps %ymm2, 96(%r9)
14326 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14327 ; AVX2-FP-NEXT:    vmovaps %ymm2, 64(%r9)
14328 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14329 ; AVX2-FP-NEXT:    vmovaps %ymm2, 32(%r9)
14330 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14331 ; AVX2-FP-NEXT:    vmovaps %ymm2, (%r9)
14332 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
14333 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14334 ; AVX2-FP-NEXT:    vmovaps %ymm2, 224(%rax)
14335 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14336 ; AVX2-FP-NEXT:    vmovaps %ymm2, 192(%rax)
14337 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14338 ; AVX2-FP-NEXT:    vmovaps %ymm2, 160(%rax)
14339 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14340 ; AVX2-FP-NEXT:    vmovaps %ymm2, 128(%rax)
14341 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14342 ; AVX2-FP-NEXT:    vmovaps %ymm2, 96(%rax)
14343 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14344 ; AVX2-FP-NEXT:    vmovaps %ymm2, 64(%rax)
14345 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14346 ; AVX2-FP-NEXT:    vmovaps %ymm2, 32(%rax)
14347 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14348 ; AVX2-FP-NEXT:    vmovaps %ymm2, (%rax)
14349 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
14350 ; AVX2-FP-NEXT:    vmovups (%rsp), %ymm2 # 32-byte Reload
14351 ; AVX2-FP-NEXT:    vmovaps %ymm2, 224(%rax)
14352 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14353 ; AVX2-FP-NEXT:    vmovaps %ymm2, 192(%rax)
14354 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14355 ; AVX2-FP-NEXT:    vmovaps %ymm2, 160(%rax)
14356 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14357 ; AVX2-FP-NEXT:    vmovaps %ymm2, 128(%rax)
14358 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14359 ; AVX2-FP-NEXT:    vmovaps %ymm2, 96(%rax)
14360 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14361 ; AVX2-FP-NEXT:    vmovaps %ymm2, 64(%rax)
14362 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14363 ; AVX2-FP-NEXT:    vmovaps %ymm2, 32(%rax)
14364 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
14365 ; AVX2-FP-NEXT:    vmovaps %ymm2, (%rax)
14366 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
14367 ; AVX2-FP-NEXT:    vmovaps %ymm0, 224(%rax)
14368 ; AVX2-FP-NEXT:    vmovaps %ymm5, 192(%rax)
14369 ; AVX2-FP-NEXT:    vmovaps %ymm8, 160(%rax)
14370 ; AVX2-FP-NEXT:    vmovaps %ymm1, 128(%rax)
14371 ; AVX2-FP-NEXT:    vmovaps %ymm14, 96(%rax)
14372 ; AVX2-FP-NEXT:    vmovaps %ymm15, 64(%rax)
14373 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14374 ; AVX2-FP-NEXT:    vmovaps %ymm0, 32(%rax)
14375 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14376 ; AVX2-FP-NEXT:    vmovaps %ymm0, (%rax)
14377 ; AVX2-FP-NEXT:    addq $3528, %rsp # imm = 0xDC8
14378 ; AVX2-FP-NEXT:    vzeroupper
14379 ; AVX2-FP-NEXT:    retq
14381 ; AVX2-FCP-LABEL: load_i32_stride8_vf64:
14382 ; AVX2-FCP:       # %bb.0:
14383 ; AVX2-FCP-NEXT:    subq $3528, %rsp # imm = 0xDC8
14384 ; AVX2-FCP-NEXT:    vmovaps 288(%rdi), %xmm10
14385 ; AVX2-FCP-NEXT:    vmovaps 256(%rdi), %xmm0
14386 ; AVX2-FCP-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14387 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm0[0],xmm10[0],xmm0[1],xmm10[1]
14388 ; AVX2-FCP-NEXT:    vmovaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14389 ; AVX2-FCP-NEXT:    vmovaps 352(%rdi), %xmm9
14390 ; AVX2-FCP-NEXT:    vbroadcastss %xmm9, %xmm1
14391 ; AVX2-FCP-NEXT:    vmovaps 320(%rdi), %xmm2
14392 ; AVX2-FCP-NEXT:    vmovaps %xmm2, (%rsp) # 16-byte Spill
14393 ; AVX2-FCP-NEXT:    vbroadcastss %xmm2, %xmm2
14394 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
14395 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
14396 ; AVX2-FCP-NEXT:    vmovaps 416(%rdi), %xmm1
14397 ; AVX2-FCP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14398 ; AVX2-FCP-NEXT:    vmovaps 384(%rdi), %xmm2
14399 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14400 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
14401 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
14402 ; AVX2-FCP-NEXT:    vmovaps 480(%rdi), %xmm13
14403 ; AVX2-FCP-NEXT:    vbroadcastss %xmm13, %xmm2
14404 ; AVX2-FCP-NEXT:    vmovaps 448(%rdi), %xmm3
14405 ; AVX2-FCP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14406 ; AVX2-FCP-NEXT:    vbroadcastss %xmm3, %xmm3
14407 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
14408 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
14409 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
14410 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
14411 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14412 ; AVX2-FCP-NEXT:    vmovaps 800(%rdi), %xmm0
14413 ; AVX2-FCP-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14414 ; AVX2-FCP-NEXT:    vmovaps 768(%rdi), %xmm1
14415 ; AVX2-FCP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14416 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
14417 ; AVX2-FCP-NEXT:    vmovaps 864(%rdi), %xmm12
14418 ; AVX2-FCP-NEXT:    vbroadcastss %xmm12, %xmm1
14419 ; AVX2-FCP-NEXT:    vmovaps 832(%rdi), %xmm2
14420 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14421 ; AVX2-FCP-NEXT:    vbroadcastss %xmm2, %xmm2
14422 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
14423 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
14424 ; AVX2-FCP-NEXT:    vmovaps 992(%rdi), %xmm1
14425 ; AVX2-FCP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14426 ; AVX2-FCP-NEXT:    vbroadcastss %xmm1, %xmm1
14427 ; AVX2-FCP-NEXT:    vmovaps 960(%rdi), %xmm2
14428 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14429 ; AVX2-FCP-NEXT:    vbroadcastss %xmm2, %xmm2
14430 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
14431 ; AVX2-FCP-NEXT:    vmovaps 928(%rdi), %xmm2
14432 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14433 ; AVX2-FCP-NEXT:    vmovaps 896(%rdi), %xmm3
14434 ; AVX2-FCP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14435 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
14436 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
14437 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
14438 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
14439 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
14440 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14441 ; AVX2-FCP-NEXT:    vmovaps 1376(%rdi), %xmm0
14442 ; AVX2-FCP-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14443 ; AVX2-FCP-NEXT:    vbroadcastss %xmm0, %xmm0
14444 ; AVX2-FCP-NEXT:    vmovaps 1344(%rdi), %xmm1
14445 ; AVX2-FCP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14446 ; AVX2-FCP-NEXT:    vbroadcastss %xmm1, %xmm1
14447 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
14448 ; AVX2-FCP-NEXT:    vmovaps 1312(%rdi), %xmm1
14449 ; AVX2-FCP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14450 ; AVX2-FCP-NEXT:    vmovaps 1280(%rdi), %xmm2
14451 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14452 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
14453 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
14454 ; AVX2-FCP-NEXT:    vmovaps 1504(%rdi), %xmm1
14455 ; AVX2-FCP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14456 ; AVX2-FCP-NEXT:    vbroadcastss %xmm1, %xmm1
14457 ; AVX2-FCP-NEXT:    vmovaps 1472(%rdi), %xmm2
14458 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14459 ; AVX2-FCP-NEXT:    vbroadcastss %xmm2, %xmm2
14460 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
14461 ; AVX2-FCP-NEXT:    vmovaps 1440(%rdi), %xmm2
14462 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14463 ; AVX2-FCP-NEXT:    vmovaps 1408(%rdi), %xmm3
14464 ; AVX2-FCP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14465 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
14466 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
14467 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
14468 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
14469 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
14470 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14471 ; AVX2-FCP-NEXT:    vmovaps 1888(%rdi), %xmm0
14472 ; AVX2-FCP-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14473 ; AVX2-FCP-NEXT:    vbroadcastss %xmm0, %xmm0
14474 ; AVX2-FCP-NEXT:    vmovaps 1856(%rdi), %xmm1
14475 ; AVX2-FCP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14476 ; AVX2-FCP-NEXT:    vbroadcastss %xmm1, %xmm1
14477 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
14478 ; AVX2-FCP-NEXT:    vmovaps 1824(%rdi), %xmm1
14479 ; AVX2-FCP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14480 ; AVX2-FCP-NEXT:    vmovaps 1792(%rdi), %xmm2
14481 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14482 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
14483 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm3 = xmm1[0,1],xmm0[2,3]
14484 ; AVX2-FCP-NEXT:    vmovaps 2016(%rdi), %xmm0
14485 ; AVX2-FCP-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14486 ; AVX2-FCP-NEXT:    vbroadcastss %xmm0, %xmm1
14487 ; AVX2-FCP-NEXT:    vmovaps 1984(%rdi), %xmm0
14488 ; AVX2-FCP-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14489 ; AVX2-FCP-NEXT:    vbroadcastss %xmm0, %xmm2
14490 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
14491 ; AVX2-FCP-NEXT:    vmovaps 1952(%rdi), %xmm0
14492 ; AVX2-FCP-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14493 ; AVX2-FCP-NEXT:    vmovaps 1920(%rdi), %xmm2
14494 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14495 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]
14496 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
14497 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
14498 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
14499 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm1[4,5,6,7]
14500 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14501 ; AVX2-FCP-NEXT:    vmovaps 608(%rdi), %xmm0
14502 ; AVX2-FCP-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14503 ; AVX2-FCP-NEXT:    vbroadcastss %xmm0, %xmm0
14504 ; AVX2-FCP-NEXT:    vmovaps 576(%rdi), %xmm1
14505 ; AVX2-FCP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14506 ; AVX2-FCP-NEXT:    vbroadcastss %xmm1, %xmm1
14507 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
14508 ; AVX2-FCP-NEXT:    vmovaps 544(%rdi), %xmm2
14509 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14510 ; AVX2-FCP-NEXT:    vmovaps 512(%rdi), %xmm1
14511 ; AVX2-FCP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14512 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
14513 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
14514 ; AVX2-FCP-NEXT:    vmovaps 736(%rdi), %xmm1
14515 ; AVX2-FCP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14516 ; AVX2-FCP-NEXT:    vbroadcastss %xmm1, %xmm1
14517 ; AVX2-FCP-NEXT:    vmovaps 704(%rdi), %xmm2
14518 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14519 ; AVX2-FCP-NEXT:    vbroadcastss %xmm2, %xmm2
14520 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
14521 ; AVX2-FCP-NEXT:    vmovaps 672(%rdi), %xmm3
14522 ; AVX2-FCP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14523 ; AVX2-FCP-NEXT:    vmovaps 640(%rdi), %xmm2
14524 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14525 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]
14526 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
14527 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
14528 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
14529 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
14530 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14531 ; AVX2-FCP-NEXT:    vmovaps 1120(%rdi), %xmm0
14532 ; AVX2-FCP-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14533 ; AVX2-FCP-NEXT:    vbroadcastss %xmm0, %xmm0
14534 ; AVX2-FCP-NEXT:    vmovaps 1088(%rdi), %xmm1
14535 ; AVX2-FCP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14536 ; AVX2-FCP-NEXT:    vbroadcastss %xmm1, %xmm1
14537 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
14538 ; AVX2-FCP-NEXT:    vmovaps 1056(%rdi), %xmm2
14539 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14540 ; AVX2-FCP-NEXT:    vmovaps 1024(%rdi), %xmm1
14541 ; AVX2-FCP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14542 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
14543 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
14544 ; AVX2-FCP-NEXT:    vmovaps 1248(%rdi), %xmm1
14545 ; AVX2-FCP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14546 ; AVX2-FCP-NEXT:    vbroadcastss %xmm1, %xmm1
14547 ; AVX2-FCP-NEXT:    vmovaps 1216(%rdi), %xmm2
14548 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14549 ; AVX2-FCP-NEXT:    vbroadcastss %xmm2, %xmm2
14550 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
14551 ; AVX2-FCP-NEXT:    vmovaps 1184(%rdi), %xmm3
14552 ; AVX2-FCP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14553 ; AVX2-FCP-NEXT:    vmovaps 1152(%rdi), %xmm2
14554 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14555 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]
14556 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
14557 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
14558 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
14559 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
14560 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14561 ; AVX2-FCP-NEXT:    vmovaps 1632(%rdi), %xmm0
14562 ; AVX2-FCP-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14563 ; AVX2-FCP-NEXT:    vbroadcastss %xmm0, %xmm0
14564 ; AVX2-FCP-NEXT:    vmovaps 1600(%rdi), %xmm1
14565 ; AVX2-FCP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14566 ; AVX2-FCP-NEXT:    vbroadcastss %xmm1, %xmm1
14567 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
14568 ; AVX2-FCP-NEXT:    vmovaps 1568(%rdi), %xmm2
14569 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14570 ; AVX2-FCP-NEXT:    vmovaps 1536(%rdi), %xmm1
14571 ; AVX2-FCP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14572 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
14573 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
14574 ; AVX2-FCP-NEXT:    vmovaps 1760(%rdi), %xmm1
14575 ; AVX2-FCP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14576 ; AVX2-FCP-NEXT:    vbroadcastss %xmm1, %xmm1
14577 ; AVX2-FCP-NEXT:    vmovaps 1728(%rdi), %xmm2
14578 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14579 ; AVX2-FCP-NEXT:    vbroadcastss %xmm2, %xmm2
14580 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
14581 ; AVX2-FCP-NEXT:    vmovaps 1696(%rdi), %xmm3
14582 ; AVX2-FCP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14583 ; AVX2-FCP-NEXT:    vmovaps 1664(%rdi), %xmm2
14584 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14585 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]
14586 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
14587 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
14588 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
14589 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
14590 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14591 ; AVX2-FCP-NEXT:    vmovaps 224(%rdi), %xmm0
14592 ; AVX2-FCP-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14593 ; AVX2-FCP-NEXT:    vbroadcastss %xmm0, %xmm0
14594 ; AVX2-FCP-NEXT:    vmovaps 192(%rdi), %xmm11
14595 ; AVX2-FCP-NEXT:    vbroadcastss %xmm11, %xmm1
14596 ; AVX2-FCP-NEXT:    vmovaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14597 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
14598 ; AVX2-FCP-NEXT:    vmovaps 160(%rdi), %xmm2
14599 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14600 ; AVX2-FCP-NEXT:    vmovaps 128(%rdi), %xmm1
14601 ; AVX2-FCP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14602 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
14603 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
14604 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
14605 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm1[0,1,2,3,4,5],ymm0[6,7]
14606 ; AVX2-FCP-NEXT:    vmovaps 96(%rdi), %xmm8
14607 ; AVX2-FCP-NEXT:    vbroadcastss %xmm8, %xmm1
14608 ; AVX2-FCP-NEXT:    vmovaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14609 ; AVX2-FCP-NEXT:    vmovaps 64(%rdi), %xmm7
14610 ; AVX2-FCP-NEXT:    vbroadcastss %xmm7, %xmm2
14611 ; AVX2-FCP-NEXT:    vmovaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14612 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
14613 ; AVX2-FCP-NEXT:    vmovaps (%rdi), %xmm5
14614 ; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %xmm6
14615 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm5[0],xmm6[0],xmm5[1],xmm6[1]
14616 ; AVX2-FCP-NEXT:    vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14617 ; AVX2-FCP-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14618 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm3[2,3]
14619 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm4[4,5,6,7]
14620 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14621 ; AVX2-FCP-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
14622 ; AVX2-FCP-NEXT:    # xmm0 = mem[1,1,1,1]
14623 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0],xmm10[1],xmm0[2,3]
14624 ; AVX2-FCP-NEXT:    vmovaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14625 ; AVX2-FCP-NEXT:    vmovaps (%rsp), %xmm1 # 16-byte Reload
14626 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm9[0],xmm1[1],xmm9[1]
14627 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
14628 ; AVX2-FCP-NEXT:    vmovaps %xmm13, %xmm9
14629 ; AVX2-FCP-NEXT:    vmovaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14630 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
14631 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm10[0],xmm13[0],xmm10[1],xmm13[1]
14632 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
14633 ; AVX2-FCP-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
14634 ; AVX2-FCP-NEXT:    # xmm2 = mem[1,1,1,1]
14635 ; AVX2-FCP-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
14636 ; AVX2-FCP-NEXT:    # xmm2 = xmm2[0],mem[1],xmm2[2,3]
14637 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
14638 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
14639 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
14640 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14641 ; AVX2-FCP-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
14642 ; AVX2-FCP-NEXT:    # xmm0 = mem[1,1,1,1]
14643 ; AVX2-FCP-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
14644 ; AVX2-FCP-NEXT:    # xmm0 = xmm0[0],mem[1],xmm0[2,3]
14645 ; AVX2-FCP-NEXT:    vmovaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14646 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
14647 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm12[0],xmm1[1],xmm12[1]
14648 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
14649 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload
14650 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload
14651 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm13[0],xmm12[0],xmm13[1],xmm12[1]
14652 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
14653 ; AVX2-FCP-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
14654 ; AVX2-FCP-NEXT:    # xmm2 = mem[1,1,1,1]
14655 ; AVX2-FCP-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
14656 ; AVX2-FCP-NEXT:    # xmm2 = xmm2[0],mem[1],xmm2[2,3]
14657 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
14658 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
14659 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
14660 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14661 ; AVX2-FCP-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
14662 ; AVX2-FCP-NEXT:    # xmm0 = mem[1,1,1,1]
14663 ; AVX2-FCP-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
14664 ; AVX2-FCP-NEXT:    # xmm0 = xmm0[0],mem[1],xmm0[2,3]
14665 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
14666 ; AVX2-FCP-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
14667 ; AVX2-FCP-NEXT:    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
14668 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
14669 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
14670 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
14671 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm15[0],xmm14[0],xmm15[1],xmm14[1]
14672 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
14673 ; AVX2-FCP-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
14674 ; AVX2-FCP-NEXT:    # xmm2 = mem[1,1,1,1]
14675 ; AVX2-FCP-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
14676 ; AVX2-FCP-NEXT:    # xmm2 = xmm2[0],mem[1],xmm2[2,3]
14677 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
14678 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
14679 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
14680 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14681 ; AVX2-FCP-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
14682 ; AVX2-FCP-NEXT:    # xmm0 = mem[1,1,1,1]
14683 ; AVX2-FCP-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
14684 ; AVX2-FCP-NEXT:    # xmm0 = xmm0[0],mem[1],xmm0[2,3]
14685 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
14686 ; AVX2-FCP-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
14687 ; AVX2-FCP-NEXT:    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
14688 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
14689 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
14690 ; AVX2-FCP-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
14691 ; AVX2-FCP-NEXT:    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
14692 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
14693 ; AVX2-FCP-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
14694 ; AVX2-FCP-NEXT:    # xmm2 = mem[1,1,1,1]
14695 ; AVX2-FCP-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
14696 ; AVX2-FCP-NEXT:    # xmm2 = xmm2[0],mem[1],xmm2[2,3]
14697 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
14698 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
14699 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
14700 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14701 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm0 = xmm5[1,1,1,1]
14702 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0],xmm6[1],xmm0[2,3]
14703 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm7[0],xmm8[0],xmm7[1],xmm8[1]
14704 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
14705 ; AVX2-FCP-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11, %xmm1 # 16-byte Folded Reload
14706 ; AVX2-FCP-NEXT:    # xmm1 = xmm11[0],mem[0],xmm11[1],mem[1]
14707 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
14708 ; AVX2-FCP-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
14709 ; AVX2-FCP-NEXT:    # xmm2 = mem[1,1,1,1]
14710 ; AVX2-FCP-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
14711 ; AVX2-FCP-NEXT:    # xmm2 = xmm2[0],mem[1],xmm2[2,3]
14712 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
14713 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
14714 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
14715 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14716 ; AVX2-FCP-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
14717 ; AVX2-FCP-NEXT:    # xmm0 = mem[1,1,1,1]
14718 ; AVX2-FCP-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
14719 ; AVX2-FCP-NEXT:    # xmm0 = xmm0[0],mem[1],xmm0[2,3]
14720 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
14721 ; AVX2-FCP-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
14722 ; AVX2-FCP-NEXT:    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
14723 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
14724 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
14725 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
14726 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]
14727 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
14728 ; AVX2-FCP-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
14729 ; AVX2-FCP-NEXT:    # xmm2 = mem[1,1,1,1]
14730 ; AVX2-FCP-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
14731 ; AVX2-FCP-NEXT:    # xmm2 = xmm2[0],mem[1],xmm2[2,3]
14732 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
14733 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
14734 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
14735 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14736 ; AVX2-FCP-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
14737 ; AVX2-FCP-NEXT:    # xmm0 = mem[1,1,1,1]
14738 ; AVX2-FCP-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
14739 ; AVX2-FCP-NEXT:    # xmm0 = xmm0[0],mem[1],xmm0[2,3]
14740 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
14741 ; AVX2-FCP-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
14742 ; AVX2-FCP-NEXT:    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
14743 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
14744 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
14745 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload
14746 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm11[0],xmm5[0],xmm11[1],xmm5[1]
14747 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
14748 ; AVX2-FCP-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
14749 ; AVX2-FCP-NEXT:    # xmm2 = mem[1,1,1,1]
14750 ; AVX2-FCP-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
14751 ; AVX2-FCP-NEXT:    # xmm2 = xmm2[0],mem[1],xmm2[2,3]
14752 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
14753 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
14754 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
14755 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14756 ; AVX2-FCP-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
14757 ; AVX2-FCP-NEXT:    # xmm0 = mem[1,1,1,1]
14758 ; AVX2-FCP-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
14759 ; AVX2-FCP-NEXT:    # xmm0 = xmm0[0],mem[1],xmm0[2,3]
14760 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
14761 ; AVX2-FCP-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
14762 ; AVX2-FCP-NEXT:    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
14763 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
14764 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
14765 ; AVX2-FCP-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
14766 ; AVX2-FCP-NEXT:    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
14767 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
14768 ; AVX2-FCP-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
14769 ; AVX2-FCP-NEXT:    # xmm2 = mem[1,1,1,1]
14770 ; AVX2-FCP-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
14771 ; AVX2-FCP-NEXT:    # xmm2 = xmm2[0],mem[1],xmm2[2,3]
14772 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
14773 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
14774 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
14775 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14776 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
14777 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm6 # 16-byte Folded Reload
14778 ; AVX2-FCP-NEXT:    # xmm6 = xmm0[2],mem[2],xmm0[3],mem[3]
14779 ; AVX2-FCP-NEXT:    vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14780 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
14781 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm1 # 16-byte Folded Reload
14782 ; AVX2-FCP-NEXT:    # xmm1 = xmm0[2],mem[2],xmm0[3],mem[3]
14783 ; AVX2-FCP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14784 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm0 = xmm9[2,2,2,2]
14785 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm10[0,1,2],xmm0[3]
14786 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
14787 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
14788 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
14789 ; AVX2-FCP-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
14790 ; AVX2-FCP-NEXT:    # xmm1 = mem[2,2,2,2]
14791 ; AVX2-FCP-NEXT:    vblendps $7, (%rsp), %xmm1, %xmm1 # 16-byte Folded Reload
14792 ; AVX2-FCP-NEXT:    # xmm1 = mem[0,1,2],xmm1[3]
14793 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm6[0,1],xmm1[2,3]
14794 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
14795 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14796 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
14797 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm2 # 16-byte Folded Reload
14798 ; AVX2-FCP-NEXT:    # xmm2 = xmm0[2],mem[2],xmm0[3],mem[3]
14799 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14800 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
14801 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm1 # 16-byte Folded Reload
14802 ; AVX2-FCP-NEXT:    # xmm1 = xmm0[2],mem[2],xmm0[3],mem[3]
14803 ; AVX2-FCP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14804 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm0 = xmm12[2,2,2,2]
14805 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm13[0,1,2],xmm0[3]
14806 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
14807 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
14808 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
14809 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload
14810 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm1 = xmm9[2,2,2,2]
14811 ; AVX2-FCP-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
14812 ; AVX2-FCP-NEXT:    # xmm1 = mem[0,1,2],xmm1[3]
14813 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
14814 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
14815 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14816 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
14817 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm10 # 16-byte Folded Reload
14818 ; AVX2-FCP-NEXT:    # xmm10 = xmm0[2],mem[2],xmm0[3],mem[3]
14819 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
14820 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm1 # 16-byte Folded Reload
14821 ; AVX2-FCP-NEXT:    # xmm1 = xmm0[2],mem[2],xmm0[3],mem[3]
14822 ; AVX2-FCP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14823 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm0 = xmm14[2,2,2,2]
14824 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm15[0,1,2],xmm0[3]
14825 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
14826 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
14827 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
14828 ; AVX2-FCP-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
14829 ; AVX2-FCP-NEXT:    # xmm1 = mem[2,2,2,2]
14830 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
14831 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm7[0,1,2],xmm1[3]
14832 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm10[0,1],xmm1[2,3]
14833 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
14834 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14835 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
14836 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm8 # 16-byte Folded Reload
14837 ; AVX2-FCP-NEXT:    # xmm8 = xmm0[2],mem[2],xmm0[3],mem[3]
14838 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
14839 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm1 # 16-byte Folded Reload
14840 ; AVX2-FCP-NEXT:    # xmm1 = xmm0[2],mem[2],xmm0[3],mem[3]
14841 ; AVX2-FCP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14842 ; AVX2-FCP-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
14843 ; AVX2-FCP-NEXT:    # xmm0 = mem[2,2,2,2]
14844 ; AVX2-FCP-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
14845 ; AVX2-FCP-NEXT:    # xmm0 = mem[0,1,2],xmm0[3]
14846 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
14847 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
14848 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
14849 ; AVX2-FCP-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
14850 ; AVX2-FCP-NEXT:    # xmm1 = mem[2,2,2,2]
14851 ; AVX2-FCP-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
14852 ; AVX2-FCP-NEXT:    # xmm1 = mem[0,1,2],xmm1[3]
14853 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm8[0,1],xmm1[2,3]
14854 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
14855 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14856 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
14857 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm2 # 16-byte Folded Reload
14858 ; AVX2-FCP-NEXT:    # xmm2 = xmm0[2],mem[2],xmm0[3],mem[3]
14859 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14860 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
14861 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm1 # 16-byte Folded Reload
14862 ; AVX2-FCP-NEXT:    # xmm1 = xmm0[2],mem[2],xmm0[3],mem[3]
14863 ; AVX2-FCP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14864 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm0 = xmm3[2,2,2,2]
14865 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm4[0,1,2],xmm0[3]
14866 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
14867 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
14868 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
14869 ; AVX2-FCP-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
14870 ; AVX2-FCP-NEXT:    # xmm1 = mem[2,2,2,2]
14871 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
14872 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm6[0,1,2],xmm1[3]
14873 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
14874 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
14875 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14876 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
14877 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm2 # 16-byte Folded Reload
14878 ; AVX2-FCP-NEXT:    # xmm2 = xmm0[2],mem[2],xmm0[3],mem[3]
14879 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14880 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
14881 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm1 # 16-byte Folded Reload
14882 ; AVX2-FCP-NEXT:    # xmm1 = xmm0[2],mem[2],xmm0[3],mem[3]
14883 ; AVX2-FCP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14884 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm0 = xmm5[2,2,2,2]
14885 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm11[0,1,2],xmm0[3]
14886 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
14887 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
14888 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
14889 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
14890 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm1 = xmm4[2,2,2,2]
14891 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
14892 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm3[0,1,2],xmm1[3]
14893 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
14894 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
14895 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14896 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
14897 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm5 # 16-byte Folded Reload
14898 ; AVX2-FCP-NEXT:    # xmm5 = xmm0[2],mem[2],xmm0[3],mem[3]
14899 ; AVX2-FCP-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14900 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
14901 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm1 # 16-byte Folded Reload
14902 ; AVX2-FCP-NEXT:    # xmm1 = xmm0[2],mem[2],xmm0[3],mem[3]
14903 ; AVX2-FCP-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14904 ; AVX2-FCP-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
14905 ; AVX2-FCP-NEXT:    # xmm0 = mem[2,2,2,2]
14906 ; AVX2-FCP-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
14907 ; AVX2-FCP-NEXT:    # xmm0 = mem[0,1,2],xmm0[3]
14908 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
14909 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm15
14910 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm15[0,1,2,3,4,5],ymm0[6,7]
14911 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
14912 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm15 = xmm2[2,2,2,2]
14913 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
14914 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm15 = xmm1[0,1,2],xmm15[3]
14915 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm15 = xmm5[0,1],xmm15[2,3]
14916 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm15[0,1,2,3],ymm0[4,5,6,7]
14917 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14918 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
14919 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm5 # 16-byte Folded Reload
14920 ; AVX2-FCP-NEXT:    # xmm5 = xmm0[2],mem[2],xmm0[3],mem[3]
14921 ; AVX2-FCP-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14922 ; AVX2-FCP-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload
14923 ; AVX2-FCP-NEXT:    # xmm15 = mem[2,2,2,2]
14924 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
14925 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm15 = xmm0[0,1,2],xmm15[3]
14926 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm15
14927 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm14
14928 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3,4,5],ymm15[6,7]
14929 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
14930 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm15 # 16-byte Folded Reload
14931 ; AVX2-FCP-NEXT:    # xmm15 = xmm5[2],mem[2],xmm5[3],mem[3]
14932 ; AVX2-FCP-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Folded Reload
14933 ; AVX2-FCP-NEXT:    # xmm13 = mem[2,2,2,2]
14934 ; AVX2-FCP-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm13, %xmm13 # 16-byte Folded Reload
14935 ; AVX2-FCP-NEXT:    # xmm13 = mem[0,1,2],xmm13[3]
14936 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm13 = xmm15[0,1],xmm13[2,3]
14937 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm12 = ymm13[0,1,2,3],ymm14[4,5,6,7]
14938 ; AVX2-FCP-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14939 ; AVX2-FCP-NEXT:    vmovaps (%rsp), %xmm5 # 16-byte Reload
14940 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm13 # 16-byte Folded Reload
14941 ; AVX2-FCP-NEXT:    # xmm13 = xmm5[2],mem[2],xmm5[3],mem[3]
14942 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
14943 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm13 = xmm5[1],xmm13[1]
14944 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
14945 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm14 # 16-byte Folded Reload
14946 ; AVX2-FCP-NEXT:    # xmm14 = xmm5[2],mem[2],xmm5[3],mem[3]
14947 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm14, %ymm0, %ymm14
14948 ; AVX2-FCP-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Folded Reload
14949 ; AVX2-FCP-NEXT:    # xmm12 = mem[2,3,2,3]
14950 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm12
14951 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3,4,5],ymm14[6,7]
14952 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm12 = ymm13[0,1,2,3],ymm12[4,5,6,7]
14953 ; AVX2-FCP-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14954 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
14955 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm12 = xmm5[2],xmm9[2],xmm5[3],xmm9[3]
14956 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
14957 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm11 = xmm5[1],xmm12[1]
14958 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
14959 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm12 # 16-byte Folded Reload
14960 ; AVX2-FCP-NEXT:    # xmm12 = xmm5[2],mem[2],xmm5[3],mem[3]
14961 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm12
14962 ; AVX2-FCP-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Folded Reload
14963 ; AVX2-FCP-NEXT:    # xmm13 = mem[2,3,2,3]
14964 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm13, %ymm0, %ymm13
14965 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm12 = ymm13[0,1,2,3,4,5],ymm12[6,7]
14966 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1,2,3],ymm12[4,5,6,7]
14967 ; AVX2-FCP-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14968 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7, %xmm11 # 16-byte Folded Reload
14969 ; AVX2-FCP-NEXT:    # xmm11 = xmm7[2],mem[2],xmm7[3],mem[3]
14970 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm9 = xmm10[1],xmm11[1]
14971 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
14972 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm11 # 16-byte Folded Reload
14973 ; AVX2-FCP-NEXT:    # xmm11 = xmm5[2],mem[2],xmm5[3],mem[3]
14974 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm11, %ymm0, %ymm11
14975 ; AVX2-FCP-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Folded Reload
14976 ; AVX2-FCP-NEXT:    # xmm10 = mem[2,3,2,3]
14977 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
14978 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1,2,3,4,5],ymm11[6,7]
14979 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3],ymm10[4,5,6,7]
14980 ; AVX2-FCP-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14981 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
14982 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm9 # 16-byte Folded Reload
14983 ; AVX2-FCP-NEXT:    # xmm9 = xmm5[2],mem[2],xmm5[3],mem[3]
14984 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm7 = xmm8[1],xmm9[1]
14985 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
14986 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm9 # 16-byte Folded Reload
14987 ; AVX2-FCP-NEXT:    # xmm9 = xmm5[2],mem[2],xmm5[3],mem[3]
14988 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm9, %ymm0, %ymm9
14989 ; AVX2-FCP-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload
14990 ; AVX2-FCP-NEXT:    # xmm8 = mem[2,3,2,3]
14991 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm8
14992 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],ymm9[6,7]
14993 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3],ymm8[4,5,6,7]
14994 ; AVX2-FCP-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14995 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6, %xmm7 # 16-byte Folded Reload
14996 ; AVX2-FCP-NEXT:    # xmm7 = xmm6[2],mem[2],xmm6[3],mem[3]
14997 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
14998 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm5 = xmm5[1],xmm7[1]
14999 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
15000 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6, %xmm7 # 16-byte Folded Reload
15001 ; AVX2-FCP-NEXT:    # xmm7 = xmm6[2],mem[2],xmm6[3],mem[3]
15002 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
15003 ; AVX2-FCP-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload
15004 ; AVX2-FCP-NEXT:    # xmm6 = mem[2,3,2,3]
15005 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
15006 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5],ymm7[6,7]
15007 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm6[4,5,6,7]
15008 ; AVX2-FCP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15009 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm3[2],xmm4[2],xmm3[3],xmm4[3]
15010 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
15011 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm3 = xmm3[1],xmm5[1]
15012 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
15013 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm5 # 16-byte Folded Reload
15014 ; AVX2-FCP-NEXT:    # xmm5 = xmm4[2],mem[2],xmm4[3],mem[3]
15015 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
15016 ; AVX2-FCP-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
15017 ; AVX2-FCP-NEXT:    # xmm4 = mem[2,3,2,3]
15018 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
15019 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],ymm5[6,7]
15020 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm4[4,5,6,7]
15021 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15022 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} xmm3 = xmm1[2],xmm2[2],xmm1[3],xmm2[3]
15023 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
15024 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm3[1]
15025 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
15026 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm3 # 16-byte Folded Reload
15027 ; AVX2-FCP-NEXT:    # xmm3 = xmm2[2],mem[2],xmm2[3],mem[3]
15028 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
15029 ; AVX2-FCP-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
15030 ; AVX2-FCP-NEXT:    # xmm2 = mem[2,3,2,3]
15031 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
15032 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm3[6,7]
15033 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]
15034 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15035 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm1 # 16-byte Folded Reload
15036 ; AVX2-FCP-NEXT:    # xmm1 = xmm0[2],mem[2],xmm0[3],mem[3]
15037 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
15038 ; AVX2-FCP-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
15039 ; AVX2-FCP-NEXT:    # xmm0 = mem[2,3,2,3]
15040 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
15041 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
15042 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
15043 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
15044 ; AVX2-FCP-NEXT:    # xmm1 = xmm1[2],mem[2],xmm1[3],mem[3]
15045 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm15[1],xmm1[1]
15046 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
15047 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15048 ; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %ymm0
15049 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15050 ; AVX2-FCP-NEXT:    vmovaps (%rdi), %ymm1
15051 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15052 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
15053 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm0, %xmm0
15054 ; AVX2-FCP-NEXT:    vmovaps 96(%rdi), %ymm1
15055 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15056 ; AVX2-FCP-NEXT:    vmovaps 64(%rdi), %ymm2
15057 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15058 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[4],ymm1[4],ymm2[5],ymm1[5]
15059 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15060 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,2]
15061 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
15062 ; AVX2-FCP-NEXT:    vmovaps 224(%rdi), %ymm2
15063 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15064 ; AVX2-FCP-NEXT:    vmovaps 192(%rdi), %ymm3
15065 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15066 ; AVX2-FCP-NEXT:    vmovaps 160(%rdi), %ymm15
15067 ; AVX2-FCP-NEXT:    vmovaps 128(%rdi), %ymm1
15068 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15069 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm15[0],ymm1[1],ymm15[1],ymm1[4],ymm15[4],ymm1[5],ymm15[5]
15070 ; AVX2-FCP-NEXT:    vmovups %ymm15, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15071 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm2 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
15072 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15073 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
15074 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
15075 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15076 ; AVX2-FCP-NEXT:    vmovaps 288(%rdi), %ymm0
15077 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15078 ; AVX2-FCP-NEXT:    vmovaps 256(%rdi), %ymm1
15079 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15080 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
15081 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm0, %xmm0
15082 ; AVX2-FCP-NEXT:    vmovaps 352(%rdi), %ymm1
15083 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15084 ; AVX2-FCP-NEXT:    vmovaps 320(%rdi), %ymm2
15085 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15086 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[4],ymm1[4],ymm2[5],ymm1[5]
15087 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15088 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,2]
15089 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
15090 ; AVX2-FCP-NEXT:    vmovaps 480(%rdi), %ymm2
15091 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15092 ; AVX2-FCP-NEXT:    vmovaps 448(%rdi), %ymm3
15093 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15094 ; AVX2-FCP-NEXT:    vmovaps 416(%rdi), %ymm4
15095 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15096 ; AVX2-FCP-NEXT:    vmovaps 384(%rdi), %ymm1
15097 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15098 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm4[0],ymm1[1],ymm4[1],ymm1[4],ymm4[4],ymm1[5],ymm4[5]
15099 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm12 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
15100 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm12[0],ymm1[2],ymm12[2]
15101 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
15102 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15103 ; AVX2-FCP-NEXT:    vmovaps 544(%rdi), %ymm0
15104 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15105 ; AVX2-FCP-NEXT:    vmovaps 512(%rdi), %ymm1
15106 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15107 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
15108 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm0, %xmm0
15109 ; AVX2-FCP-NEXT:    vmovaps 608(%rdi), %ymm1
15110 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15111 ; AVX2-FCP-NEXT:    vmovaps 576(%rdi), %ymm2
15112 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15113 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[4],ymm1[4],ymm2[5],ymm1[5]
15114 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15115 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,2]
15116 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
15117 ; AVX2-FCP-NEXT:    vmovaps 736(%rdi), %ymm2
15118 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15119 ; AVX2-FCP-NEXT:    vmovaps 704(%rdi), %ymm3
15120 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15121 ; AVX2-FCP-NEXT:    vmovaps 672(%rdi), %ymm4
15122 ; AVX2-FCP-NEXT:    vmovaps 640(%rdi), %ymm1
15123 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15124 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm4[0],ymm1[1],ymm4[1],ymm1[4],ymm4[4],ymm1[5],ymm4[5]
15125 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15126 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm8 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
15127 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm8[0],ymm1[2],ymm8[2]
15128 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
15129 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15130 ; AVX2-FCP-NEXT:    vmovaps 800(%rdi), %ymm0
15131 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15132 ; AVX2-FCP-NEXT:    vmovaps 768(%rdi), %ymm1
15133 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15134 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
15135 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm0, %xmm0
15136 ; AVX2-FCP-NEXT:    vmovaps 864(%rdi), %ymm1
15137 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15138 ; AVX2-FCP-NEXT:    vmovaps 832(%rdi), %ymm2
15139 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15140 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[4],ymm1[4],ymm2[5],ymm1[5]
15141 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15142 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,2]
15143 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
15144 ; AVX2-FCP-NEXT:    vmovaps 992(%rdi), %ymm2
15145 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15146 ; AVX2-FCP-NEXT:    vmovaps 960(%rdi), %ymm5
15147 ; AVX2-FCP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15148 ; AVX2-FCP-NEXT:    vmovaps 928(%rdi), %ymm3
15149 ; AVX2-FCP-NEXT:    vmovaps 896(%rdi), %ymm1
15150 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15151 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[5],ymm3[5]
15152 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15153 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm5 = ymm5[0],ymm2[0],ymm5[1],ymm2[1],ymm5[4],ymm2[4],ymm5[5],ymm2[5]
15154 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm5[0],ymm1[2],ymm5[2]
15155 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
15156 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15157 ; AVX2-FCP-NEXT:    vmovaps 1056(%rdi), %ymm0
15158 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15159 ; AVX2-FCP-NEXT:    vmovaps 1024(%rdi), %ymm1
15160 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15161 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
15162 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm0, %xmm0
15163 ; AVX2-FCP-NEXT:    vmovaps 1120(%rdi), %ymm1
15164 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15165 ; AVX2-FCP-NEXT:    vmovaps 1088(%rdi), %ymm2
15166 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15167 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[4],ymm1[4],ymm2[5],ymm1[5]
15168 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15169 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,2]
15170 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
15171 ; AVX2-FCP-NEXT:    vmovaps 1248(%rdi), %ymm1
15172 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15173 ; AVX2-FCP-NEXT:    vmovaps 1216(%rdi), %ymm7
15174 ; AVX2-FCP-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15175 ; AVX2-FCP-NEXT:    vmovaps 1184(%rdi), %ymm2
15176 ; AVX2-FCP-NEXT:    vmovaps 1152(%rdi), %ymm6
15177 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15178 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm6 = ymm6[0],ymm2[0],ymm6[1],ymm2[1],ymm6[4],ymm2[4],ymm6[5],ymm2[5]
15179 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15180 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm7[0],ymm1[0],ymm7[1],ymm1[1],ymm7[4],ymm1[4],ymm7[5],ymm1[5]
15181 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm6 = ymm6[0],ymm1[0],ymm6[2],ymm1[2]
15182 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm6[4,5,6,7]
15183 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15184 ; AVX2-FCP-NEXT:    vmovaps 1312(%rdi), %ymm0
15185 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15186 ; AVX2-FCP-NEXT:    vmovaps 1280(%rdi), %ymm6
15187 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15188 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm6[0],ymm0[0],ymm6[1],ymm0[1],ymm6[4],ymm0[4],ymm6[5],ymm0[5]
15189 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm0, %xmm6
15190 ; AVX2-FCP-NEXT:    vmovaps 1376(%rdi), %ymm0
15191 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15192 ; AVX2-FCP-NEXT:    vmovaps 1344(%rdi), %ymm7
15193 ; AVX2-FCP-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15194 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm7[0],ymm0[0],ymm7[1],ymm0[1],ymm7[4],ymm0[4],ymm7[5],ymm0[5]
15195 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15196 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm7 = ymm0[2,2,2,2]
15197 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm7 = xmm6[0,1],xmm7[2,3]
15198 ; AVX2-FCP-NEXT:    vmovaps 1504(%rdi), %ymm6
15199 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15200 ; AVX2-FCP-NEXT:    vmovaps 1472(%rdi), %ymm10
15201 ; AVX2-FCP-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15202 ; AVX2-FCP-NEXT:    vmovaps 1440(%rdi), %ymm0
15203 ; AVX2-FCP-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
15204 ; AVX2-FCP-NEXT:    vmovaps 1408(%rdi), %ymm9
15205 ; AVX2-FCP-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15206 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm9 = ymm9[0],ymm0[0],ymm9[1],ymm0[1],ymm9[4],ymm0[4],ymm9[5],ymm0[5]
15207 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm10[0],ymm6[0],ymm10[1],ymm6[1],ymm10[4],ymm6[4],ymm10[5],ymm6[5]
15208 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm9 = ymm9[0],ymm0[0],ymm9[2],ymm0[2]
15209 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3],ymm9[4,5,6,7]
15210 ; AVX2-FCP-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15211 ; AVX2-FCP-NEXT:    vmovaps 1568(%rdi), %ymm6
15212 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15213 ; AVX2-FCP-NEXT:    vmovaps 1536(%rdi), %ymm7
15214 ; AVX2-FCP-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15215 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm7 = ymm7[0],ymm6[0],ymm7[1],ymm6[1],ymm7[4],ymm6[4],ymm7[5],ymm6[5]
15216 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm7, %xmm9
15217 ; AVX2-FCP-NEXT:    vmovaps 1632(%rdi), %ymm6
15218 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15219 ; AVX2-FCP-NEXT:    vmovaps 1600(%rdi), %ymm7
15220 ; AVX2-FCP-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15221 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm6 = ymm7[0],ymm6[0],ymm7[1],ymm6[1],ymm7[4],ymm6[4],ymm7[5],ymm6[5]
15222 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15223 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm10 = ymm6[2,2,2,2]
15224 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm10 = xmm9[0,1],xmm10[2,3]
15225 ; AVX2-FCP-NEXT:    vmovaps 1760(%rdi), %ymm9
15226 ; AVX2-FCP-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15227 ; AVX2-FCP-NEXT:    vmovaps 1728(%rdi), %ymm6
15228 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15229 ; AVX2-FCP-NEXT:    vmovaps 1696(%rdi), %ymm7
15230 ; AVX2-FCP-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15231 ; AVX2-FCP-NEXT:    vmovaps 1664(%rdi), %ymm11
15232 ; AVX2-FCP-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15233 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm11 = ymm11[0],ymm7[0],ymm11[1],ymm7[1],ymm11[4],ymm7[4],ymm11[5],ymm7[5]
15234 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm6 = ymm6[0],ymm9[0],ymm6[1],ymm9[1],ymm6[4],ymm9[4],ymm6[5],ymm9[5]
15235 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15236 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm11 = ymm11[0],ymm6[0],ymm11[2],ymm6[2]
15237 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1,2,3],ymm11[4,5,6,7]
15238 ; AVX2-FCP-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15239 ; AVX2-FCP-NEXT:    vmovaps 1824(%rdi), %ymm6
15240 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15241 ; AVX2-FCP-NEXT:    vmovaps 1792(%rdi), %ymm7
15242 ; AVX2-FCP-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15243 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm10 = ymm7[0],ymm6[0],ymm7[1],ymm6[1],ymm7[4],ymm6[4],ymm7[5],ymm6[5]
15244 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm10, %xmm11
15245 ; AVX2-FCP-NEXT:    vmovaps 1888(%rdi), %ymm6
15246 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15247 ; AVX2-FCP-NEXT:    vmovaps 1856(%rdi), %ymm7
15248 ; AVX2-FCP-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15249 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm6 = ymm7[0],ymm6[0],ymm7[1],ymm6[1],ymm7[4],ymm6[4],ymm7[5],ymm6[5]
15250 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15251 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm13 = ymm6[2,2,2,2]
15252 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm13 = xmm11[0,1],xmm13[2,3]
15253 ; AVX2-FCP-NEXT:    vmovaps 2016(%rdi), %ymm11
15254 ; AVX2-FCP-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15255 ; AVX2-FCP-NEXT:    vmovaps 1984(%rdi), %ymm6
15256 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15257 ; AVX2-FCP-NEXT:    vmovaps 1952(%rdi), %ymm7
15258 ; AVX2-FCP-NEXT:    vmovaps 1920(%rdi), %ymm9
15259 ; AVX2-FCP-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15260 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm14 = ymm9[0],ymm7[0],ymm9[1],ymm7[1],ymm9[4],ymm7[4],ymm9[5],ymm7[5]
15261 ; AVX2-FCP-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15262 ; AVX2-FCP-NEXT:    vunpcklps {{.*#+}} ymm11 = ymm6[0],ymm11[0],ymm6[1],ymm11[1],ymm6[4],ymm11[4],ymm6[5],ymm11[5]
15263 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm14 = ymm14[0],ymm11[0],ymm14[2],ymm11[2]
15264 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1,2,3],ymm14[4,5,6,7]
15265 ; AVX2-FCP-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15266 ; AVX2-FCP-NEXT:    vbroadcastss 148(%rdi), %ymm13
15267 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1,2,3,4],ymm15[5],ymm13[6,7]
15268 ; AVX2-FCP-NEXT:    vblendps $192, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm13 # 32-byte Folded Reload
15269 ; AVX2-FCP-NEXT:    # ymm13 = ymm13[0,1,2,3,4,5],mem[6,7]
15270 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
15271 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm6, %xmm14
15272 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
15273 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm15 = ymm9[1,1,1,1,5,5,5,5]
15274 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
15275 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm15 = ymm15[0],ymm6[1],ymm15[2,3,4],ymm6[5],ymm15[6,7]
15276 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm15, %xmm15
15277 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm14 = xmm15[0,1],xmm14[2,3]
15278 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm13 = ymm14[0,1,2,3],ymm13[4,5,6,7]
15279 ; AVX2-FCP-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15280 ; AVX2-FCP-NEXT:    vbroadcastss 404(%rdi), %ymm13
15281 ; AVX2-FCP-NEXT:    vblendps $32, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm13 # 32-byte Folded Reload
15282 ; AVX2-FCP-NEXT:    # ymm13 = ymm13[0,1,2,3,4],mem[5],ymm13[6,7]
15283 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm12 = ymm13[0,1,2,3,4,5],ymm12[6,7]
15284 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
15285 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm10, %xmm13
15286 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload
15287 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm14 = ymm15[1,1,1,1,5,5,5,5]
15288 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
15289 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0],ymm10[1],ymm14[2,3,4],ymm10[5],ymm14[6,7]
15290 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm14, %xmm14
15291 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm13 = xmm14[0,1],xmm13[2,3]
15292 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm12 = ymm13[0,1,2,3],ymm12[4,5,6,7]
15293 ; AVX2-FCP-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15294 ; AVX2-FCP-NEXT:    vbroadcastss 660(%rdi), %ymm12
15295 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3,4],ymm4[5],ymm12[6,7]
15296 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm12[0,1,2,3,4,5],ymm8[6,7]
15297 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
15298 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm8, %xmm8
15299 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
15300 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm12 = ymm13[1,1,1,1,5,5,5,5]
15301 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
15302 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0],ymm14[1],ymm12[2,3,4],ymm14[5],ymm12[6,7]
15303 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm12, %xmm12
15304 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm8 = xmm12[0,1],xmm8[2,3]
15305 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm8[0,1,2,3],ymm4[4,5,6,7]
15306 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15307 ; AVX2-FCP-NEXT:    vbroadcastss 916(%rdi), %ymm4
15308 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4],ymm3[5],ymm4[6,7]
15309 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3,4,5],ymm5[6,7]
15310 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
15311 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm4, %xmm4
15312 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
15313 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm5 = ymm8[1,1,1,1,5,5,5,5]
15314 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
15315 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0],ymm12[1],ymm5[2,3,4],ymm12[5],ymm5[6,7]
15316 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm5, %xmm5
15317 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm4 = xmm5[0,1],xmm4[2,3]
15318 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
15319 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15320 ; AVX2-FCP-NEXT:    vbroadcastss 1172(%rdi), %ymm3
15321 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4],ymm2[5],ymm3[6,7]
15322 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3,4,5],ymm1[6,7]
15323 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15324 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm2, %xmm2
15325 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
15326 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm3 = ymm4[1,1,1,1,5,5,5,5]
15327 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
15328 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0],ymm5[1],ymm3[2,3,4],ymm5[5],ymm3[6,7]
15329 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm3, %xmm3
15330 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm2 = xmm3[0,1],xmm2[2,3]
15331 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
15332 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15333 ; AVX2-FCP-NEXT:    vbroadcastss 1428(%rdi), %ymm1
15334 ; AVX2-FCP-NEXT:    vblendps $32, (%rsp), %ymm1, %ymm1 # 32-byte Folded Reload
15335 ; AVX2-FCP-NEXT:    # ymm1 = ymm1[0,1,2,3,4],mem[5],ymm1[6,7]
15336 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm0[6,7]
15337 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15338 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm0, %xmm0
15339 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
15340 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm2 = ymm3[1,1,1,1,5,5,5,5]
15341 ; AVX2-FCP-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
15342 ; AVX2-FCP-NEXT:    # ymm2 = ymm2[0],mem[1],ymm2[2,3,4],mem[5],ymm2[6,7]
15343 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm2, %xmm2
15344 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm2[0,1],xmm0[2,3]
15345 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
15346 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15347 ; AVX2-FCP-NEXT:    vbroadcastss 1684(%rdi), %ymm0
15348 ; AVX2-FCP-NEXT:    vblendps $32, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
15349 ; AVX2-FCP-NEXT:    # ymm0 = ymm0[0,1,2,3,4],mem[5],ymm0[6,7]
15350 ; AVX2-FCP-NEXT:    vblendps $192, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
15351 ; AVX2-FCP-NEXT:    # ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
15352 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
15353 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm1, %xmm1
15354 ; AVX2-FCP-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Folded Reload
15355 ; AVX2-FCP-NEXT:    # ymm2 = mem[1,1,1,1,5,5,5,5]
15356 ; AVX2-FCP-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
15357 ; AVX2-FCP-NEXT:    # ymm2 = ymm2[0],mem[1],ymm2[2,3,4],mem[5],ymm2[6,7]
15358 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm2, %xmm2
15359 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
15360 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
15361 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15362 ; AVX2-FCP-NEXT:    vbroadcastss 1940(%rdi), %ymm0
15363 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm7[5],ymm0[6,7]
15364 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm11[6,7]
15365 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
15366 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm1, %xmm1
15367 ; AVX2-FCP-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Folded Reload
15368 ; AVX2-FCP-NEXT:    # ymm2 = mem[1,1,1,1,5,5,5,5]
15369 ; AVX2-FCP-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
15370 ; AVX2-FCP-NEXT:    # ymm2 = ymm2[0],mem[1],ymm2[2,3,4],mem[5],ymm2[6,7]
15371 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm2, %xmm2
15372 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
15373 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
15374 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15375 ; AVX2-FCP-NEXT:    vbroadcastss 248(%rdi), %ymm0
15376 ; AVX2-FCP-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
15377 ; AVX2-FCP-NEXT:    # ymm0 = mem[0,1,2,3,4,5,6],ymm0[7]
15378 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
15379 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm7 # 32-byte Folded Reload
15380 ; AVX2-FCP-NEXT:    # ymm7 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
15381 ; AVX2-FCP-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15382 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm9[2],ymm6[2],ymm9[3],ymm6[3],ymm9[6],ymm6[6],ymm9[7],ymm6[7]
15383 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15384 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
15385 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload
15386 ; AVX2-FCP-NEXT:    # ymm6 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
15387 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15388 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm2, %xmm1
15389 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm2 = ymm6[2,2,2,2]
15390 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
15391 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm7[0,1,2,3,4,5],ymm0[6,7]
15392 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
15393 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15394 ; AVX2-FCP-NEXT:    vbroadcastss 504(%rdi), %ymm0
15395 ; AVX2-FCP-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
15396 ; AVX2-FCP-NEXT:    # ymm0 = mem[0,1,2,3,4,5,6],ymm0[7]
15397 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
15398 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload
15399 ; AVX2-FCP-NEXT:    # ymm6 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
15400 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15401 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm15[2],ymm10[2],ymm15[3],ymm10[3],ymm15[6],ymm10[6],ymm15[7],ymm10[7]
15402 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15403 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
15404 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm7 # 32-byte Folded Reload
15405 ; AVX2-FCP-NEXT:    # ymm7 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
15406 ; AVX2-FCP-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15407 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm2, %xmm1
15408 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm2 = ymm7[2,2,2,2]
15409 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
15410 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm6[0,1,2,3,4,5],ymm0[6,7]
15411 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
15412 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15413 ; AVX2-FCP-NEXT:    vbroadcastss 760(%rdi), %ymm0
15414 ; AVX2-FCP-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
15415 ; AVX2-FCP-NEXT:    # ymm0 = mem[0,1,2,3,4,5,6],ymm0[7]
15416 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
15417 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload
15418 ; AVX2-FCP-NEXT:    # ymm6 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
15419 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15420 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm13[2],ymm14[2],ymm13[3],ymm14[3],ymm13[6],ymm14[6],ymm13[7],ymm14[7]
15421 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15422 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
15423 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm7 # 32-byte Folded Reload
15424 ; AVX2-FCP-NEXT:    # ymm7 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
15425 ; AVX2-FCP-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15426 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm2, %xmm1
15427 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm2 = ymm7[2,2,2,2]
15428 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
15429 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm6[0,1,2,3,4,5],ymm0[6,7]
15430 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
15431 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15432 ; AVX2-FCP-NEXT:    vbroadcastss 1016(%rdi), %ymm0
15433 ; AVX2-FCP-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
15434 ; AVX2-FCP-NEXT:    # ymm0 = mem[0,1,2,3,4,5,6],ymm0[7]
15435 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
15436 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload
15437 ; AVX2-FCP-NEXT:    # ymm6 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
15438 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15439 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm8[2],ymm12[2],ymm8[3],ymm12[3],ymm8[6],ymm12[6],ymm8[7],ymm12[7]
15440 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15441 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
15442 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm14 # 32-byte Folded Reload
15443 ; AVX2-FCP-NEXT:    # ymm14 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
15444 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm2, %xmm1
15445 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm2 = ymm14[2,2,2,2]
15446 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
15447 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm6[0,1,2,3,4,5],ymm0[6,7]
15448 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
15449 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15450 ; AVX2-FCP-NEXT:    vbroadcastss 1272(%rdi), %ymm0
15451 ; AVX2-FCP-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
15452 ; AVX2-FCP-NEXT:    # ymm0 = mem[0,1,2,3,4,5,6],ymm0[7]
15453 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
15454 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm12 # 32-byte Folded Reload
15455 ; AVX2-FCP-NEXT:    # ymm12 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
15456 ; AVX2-FCP-NEXT:    vunpckhps {{.*#+}} ymm13 = ymm4[2],ymm5[2],ymm4[3],ymm5[3],ymm4[6],ymm5[6],ymm4[7],ymm5[7]
15457 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
15458 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm11 # 32-byte Folded Reload
15459 ; AVX2-FCP-NEXT:    # ymm11 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
15460 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm13, %xmm1
15461 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm2 = ymm11[2,2,2,2]
15462 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
15463 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm12[0,1,2,3,4,5],ymm0[6,7]
15464 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
15465 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15466 ; AVX2-FCP-NEXT:    vbroadcastss 1528(%rdi), %ymm0
15467 ; AVX2-FCP-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
15468 ; AVX2-FCP-NEXT:    # ymm0 = mem[0,1,2,3,4,5,6],ymm0[7]
15469 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
15470 ; AVX2-FCP-NEXT:    vunpckhps (%rsp), %ymm1, %ymm10 # 32-byte Folded Reload
15471 ; AVX2-FCP-NEXT:    # ymm10 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
15472 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm9 # 32-byte Folded Reload
15473 ; AVX2-FCP-NEXT:    # ymm9 = ymm3[2],mem[2],ymm3[3],mem[3],ymm3[6],mem[6],ymm3[7],mem[7]
15474 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
15475 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm8 # 32-byte Folded Reload
15476 ; AVX2-FCP-NEXT:    # ymm8 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
15477 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm9, %xmm1
15478 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm2 = ymm8[2,2,2,2]
15479 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
15480 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1,2,3,4,5],ymm0[6,7]
15481 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
15482 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15483 ; AVX2-FCP-NEXT:    vbroadcastss 1784(%rdi), %ymm0
15484 ; AVX2-FCP-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
15485 ; AVX2-FCP-NEXT:    # ymm0 = mem[0,1,2,3,4,5,6],ymm0[7]
15486 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
15487 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload
15488 ; AVX2-FCP-NEXT:    # ymm6 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
15489 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
15490 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm7 # 32-byte Folded Reload
15491 ; AVX2-FCP-NEXT:    # ymm7 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
15492 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
15493 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm5 # 32-byte Folded Reload
15494 ; AVX2-FCP-NEXT:    # ymm5 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
15495 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm7, %xmm1
15496 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm2 = ymm5[2,2,2,2]
15497 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
15498 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm6[0,1,2,3,4,5],ymm0[6,7]
15499 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
15500 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15501 ; AVX2-FCP-NEXT:    vbroadcastss 2040(%rdi), %ymm0
15502 ; AVX2-FCP-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload
15503 ; AVX2-FCP-NEXT:    # ymm1 = mem[0,1,2,3,4,5,6],ymm0[7]
15504 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15505 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm4 # 32-byte Folded Reload
15506 ; AVX2-FCP-NEXT:    # ymm4 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
15507 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15508 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm3 # 32-byte Folded Reload
15509 ; AVX2-FCP-NEXT:    # ymm3 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
15510 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15511 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload
15512 ; AVX2-FCP-NEXT:    # ymm2 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
15513 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm3, %xmm0
15514 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm15 = ymm2[2,2,2,2]
15515 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm15[2,3]
15516 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm4[0,1,2,3,4,5],ymm1[6,7]
15517 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
15518 ; AVX2-FCP-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
15519 ; AVX2-FCP-NEXT:    vbroadcastss 220(%rdi), %ymm0
15520 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
15521 ; AVX2-FCP-NEXT:    # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
15522 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
15523 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
15524 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
15525 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm1, %xmm1
15526 ; AVX2-FCP-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Folded Reload
15527 ; AVX2-FCP-NEXT:    # ymm15 = mem[2,3,2,3,6,7,6,7]
15528 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm15, %xmm15
15529 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm15[0,1],xmm1[2,3]
15530 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
15531 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15532 ; AVX2-FCP-NEXT:    vbroadcastss 476(%rdi), %ymm0
15533 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
15534 ; AVX2-FCP-NEXT:    # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
15535 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
15536 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
15537 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
15538 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm1, %xmm1
15539 ; AVX2-FCP-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Folded Reload
15540 ; AVX2-FCP-NEXT:    # ymm15 = mem[2,3,2,3,6,7,6,7]
15541 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm15, %xmm15
15542 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm15[0,1],xmm1[2,3]
15543 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
15544 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15545 ; AVX2-FCP-NEXT:    vbroadcastss 732(%rdi), %ymm0
15546 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
15547 ; AVX2-FCP-NEXT:    # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
15548 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
15549 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
15550 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
15551 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm1, %xmm1
15552 ; AVX2-FCP-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Folded Reload
15553 ; AVX2-FCP-NEXT:    # ymm15 = mem[2,3,2,3,6,7,6,7]
15554 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm15, %xmm15
15555 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm15[0,1],xmm1[2,3]
15556 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm15 = ymm1[0,1,2,3],ymm0[4,5,6,7]
15557 ; AVX2-FCP-NEXT:    vbroadcastss 988(%rdi), %ymm0
15558 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
15559 ; AVX2-FCP-NEXT:    # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
15560 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
15561 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
15562 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm14, %xmm1
15563 ; AVX2-FCP-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Folded Reload
15564 ; AVX2-FCP-NEXT:    # ymm14 = mem[2,3,2,3,6,7,6,7]
15565 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm14, %xmm14
15566 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm14[0,1],xmm1[2,3]
15567 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm14 = ymm1[0,1,2,3],ymm0[4,5,6,7]
15568 ; AVX2-FCP-NEXT:    vbroadcastss 1244(%rdi), %ymm0
15569 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
15570 ; AVX2-FCP-NEXT:    # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
15571 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm12[1],ymm0[1],ymm12[3],ymm0[3]
15572 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm11, %xmm1
15573 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm11 = ymm13[2,3,2,3,6,7,6,7]
15574 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm11, %xmm11
15575 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm11[0,1],xmm1[2,3]
15576 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm0[4,5,6,7]
15577 ; AVX2-FCP-NEXT:    vbroadcastss 1500(%rdi), %ymm0
15578 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
15579 ; AVX2-FCP-NEXT:    # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
15580 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm10[1],ymm0[1],ymm10[3],ymm0[3]
15581 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm8, %xmm8
15582 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm9 = ymm9[2,3,2,3,6,7,6,7]
15583 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm9, %xmm9
15584 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm8 = xmm9[0,1],xmm8[2,3]
15585 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm0[4,5,6,7]
15586 ; AVX2-FCP-NEXT:    vbroadcastss 1756(%rdi), %ymm0
15587 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
15588 ; AVX2-FCP-NEXT:    # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
15589 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm6[1],ymm0[1],ymm6[3],ymm0[3]
15590 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm5, %xmm5
15591 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm6 = ymm7[2,3,2,3,6,7,6,7]
15592 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm6, %xmm6
15593 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm5 = xmm6[0,1],xmm5[2,3]
15594 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm0[4,5,6,7]
15595 ; AVX2-FCP-NEXT:    vbroadcastss 2012(%rdi), %ymm0
15596 ; AVX2-FCP-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
15597 ; AVX2-FCP-NEXT:    # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
15598 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm4[1],ymm0[1],ymm4[3],ymm0[3]
15599 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm2, %xmm2
15600 ; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[2,3,2,3,6,7,6,7]
15601 ; AVX2-FCP-NEXT:    vextractf128 $1, %ymm3, %xmm3
15602 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm2 = xmm3[0,1],xmm2[2,3]
15603 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
15604 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15605 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 192(%rsi)
15606 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15607 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 128(%rsi)
15608 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15609 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 64(%rsi)
15610 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15611 ; AVX2-FCP-NEXT:    vmovaps %ymm2, (%rsi)
15612 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15613 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 224(%rsi)
15614 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15615 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 160(%rsi)
15616 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15617 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 96(%rsi)
15618 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15619 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 32(%rsi)
15620 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15621 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 192(%rdx)
15622 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15623 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 128(%rdx)
15624 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15625 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 64(%rdx)
15626 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15627 ; AVX2-FCP-NEXT:    vmovaps %ymm2, (%rdx)
15628 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15629 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 224(%rdx)
15630 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15631 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 160(%rdx)
15632 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15633 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 96(%rdx)
15634 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15635 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 32(%rdx)
15636 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15637 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 192(%rcx)
15638 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15639 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 128(%rcx)
15640 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15641 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 64(%rcx)
15642 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15643 ; AVX2-FCP-NEXT:    vmovaps %ymm2, (%rcx)
15644 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15645 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 224(%rcx)
15646 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15647 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 160(%rcx)
15648 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15649 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 96(%rcx)
15650 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15651 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 32(%rcx)
15652 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15653 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 192(%r8)
15654 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15655 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 128(%r8)
15656 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15657 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 64(%r8)
15658 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15659 ; AVX2-FCP-NEXT:    vmovaps %ymm2, (%r8)
15660 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15661 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 224(%r8)
15662 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15663 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 160(%r8)
15664 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15665 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 96(%r8)
15666 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15667 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 32(%r8)
15668 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15669 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 224(%r9)
15670 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15671 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 192(%r9)
15672 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15673 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 160(%r9)
15674 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15675 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 128(%r9)
15676 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15677 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 96(%r9)
15678 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15679 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 64(%r9)
15680 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15681 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 32(%r9)
15682 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15683 ; AVX2-FCP-NEXT:    vmovaps %ymm2, (%r9)
15684 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
15685 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15686 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 224(%rax)
15687 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15688 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 192(%rax)
15689 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15690 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 160(%rax)
15691 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15692 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 128(%rax)
15693 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15694 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 96(%rax)
15695 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15696 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 64(%rax)
15697 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15698 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 32(%rax)
15699 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15700 ; AVX2-FCP-NEXT:    vmovaps %ymm2, (%rax)
15701 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
15702 ; AVX2-FCP-NEXT:    vmovups (%rsp), %ymm2 # 32-byte Reload
15703 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 224(%rax)
15704 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15705 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 192(%rax)
15706 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15707 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 160(%rax)
15708 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15709 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 128(%rax)
15710 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15711 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 96(%rax)
15712 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15713 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 64(%rax)
15714 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15715 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 32(%rax)
15716 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
15717 ; AVX2-FCP-NEXT:    vmovaps %ymm2, (%rax)
15718 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
15719 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 224(%rax)
15720 ; AVX2-FCP-NEXT:    vmovaps %ymm5, 192(%rax)
15721 ; AVX2-FCP-NEXT:    vmovaps %ymm8, 160(%rax)
15722 ; AVX2-FCP-NEXT:    vmovaps %ymm1, 128(%rax)
15723 ; AVX2-FCP-NEXT:    vmovaps %ymm14, 96(%rax)
15724 ; AVX2-FCP-NEXT:    vmovaps %ymm15, 64(%rax)
15725 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15726 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 32(%rax)
15727 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15728 ; AVX2-FCP-NEXT:    vmovaps %ymm0, (%rax)
15729 ; AVX2-FCP-NEXT:    addq $3528, %rsp # imm = 0xDC8
15730 ; AVX2-FCP-NEXT:    vzeroupper
15731 ; AVX2-FCP-NEXT:    retq
15733 ; AVX512-LABEL: load_i32_stride8_vf64:
15734 ; AVX512:       # %bb.0:
15735 ; AVX512-NEXT:    subq $3144, %rsp # imm = 0xC48
15736 ; AVX512-NEXT:    vmovdqa64 320(%rdi), %zmm11
15737 ; AVX512-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15738 ; AVX512-NEXT:    vmovdqa64 448(%rdi), %zmm18
15739 ; AVX512-NEXT:    vmovdqa64 1600(%rdi), %zmm31
15740 ; AVX512-NEXT:    vmovaps 1536(%rdi), %zmm0
15741 ; AVX512-NEXT:    vmovups %zmm0, (%rsp) # 64-byte Spill
15742 ; AVX512-NEXT:    vmovdqa64 1728(%rdi), %zmm24
15743 ; AVX512-NEXT:    vmovdqu64 %zmm24, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15744 ; AVX512-NEXT:    vmovaps 1664(%rdi), %zmm0
15745 ; AVX512-NEXT:    vmovups %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15746 ; AVX512-NEXT:    vmovdqa64 1856(%rdi), %zmm21
15747 ; AVX512-NEXT:    vmovdqa64 1792(%rdi), %zmm26
15748 ; AVX512-NEXT:    vmovdqa64 1984(%rdi), %zmm22
15749 ; AVX512-NEXT:    vmovdqa64 1920(%rdi), %zmm5
15750 ; AVX512-NEXT:    vmovdqa64 1088(%rdi), %zmm13
15751 ; AVX512-NEXT:    vmovdqa64 1024(%rdi), %zmm3
15752 ; AVX512-NEXT:    vmovdqa64 1216(%rdi), %zmm30
15753 ; AVX512-NEXT:    vmovdqa64 1152(%rdi), %zmm2
15754 ; AVX512-NEXT:    vmovdqa64 1344(%rdi), %zmm29
15755 ; AVX512-NEXT:    vmovdqa64 1280(%rdi), %zmm27
15756 ; AVX512-NEXT:    vmovdqa64 1472(%rdi), %zmm20
15757 ; AVX512-NEXT:    vmovdqa64 1408(%rdi), %zmm10
15758 ; AVX512-NEXT:    vmovdqa64 576(%rdi), %zmm25
15759 ; AVX512-NEXT:    vmovdqa64 512(%rdi), %zmm7
15760 ; AVX512-NEXT:    vmovdqa64 704(%rdi), %zmm9
15761 ; AVX512-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15762 ; AVX512-NEXT:    vmovdqa64 640(%rdi), %zmm12
15763 ; AVX512-NEXT:    vmovdqa64 832(%rdi), %zmm6
15764 ; AVX512-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15765 ; AVX512-NEXT:    vmovdqa64 768(%rdi), %zmm28
15766 ; AVX512-NEXT:    vmovdqa64 960(%rdi), %zmm23
15767 ; AVX512-NEXT:    vmovdqa64 896(%rdi), %zmm4
15768 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [0,8,16,24,0,8,16,24,0,8,16,24,0,8,16,24]
15769 ; AVX512-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
15770 ; AVX512-NEXT:    vmovdqa64 %zmm4, %zmm1
15771 ; AVX512-NEXT:    vmovdqa64 %zmm4, %zmm16
15772 ; AVX512-NEXT:    vpermt2d %zmm23, %zmm0, %zmm1
15773 ; AVX512-NEXT:    vmovdqa64 %zmm28, %zmm4
15774 ; AVX512-NEXT:    vpermt2d %zmm6, %zmm0, %zmm4
15775 ; AVX512-NEXT:    movb $-64, %al
15776 ; AVX512-NEXT:    kmovw %eax, %k1
15777 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
15778 ; AVX512-NEXT:    vmovdqa64 %zmm12, %zmm1
15779 ; AVX512-NEXT:    vmovdqa64 %zmm12, %zmm15
15780 ; AVX512-NEXT:    vpermt2d %zmm9, %zmm0, %zmm1
15781 ; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm12
15782 ; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm9
15783 ; AVX512-NEXT:    vpermt2d %zmm25, %zmm0, %zmm12
15784 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
15785 ; AVX512-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
15786 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15787 ; AVX512-NEXT:    vmovdqa64 %zmm10, %zmm1
15788 ; AVX512-NEXT:    vmovdqa64 %zmm10, %zmm6
15789 ; AVX512-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15790 ; AVX512-NEXT:    vpermt2d %zmm20, %zmm0, %zmm1
15791 ; AVX512-NEXT:    vmovdqa64 %zmm27, %zmm4
15792 ; AVX512-NEXT:    vpermt2d %zmm29, %zmm0, %zmm4
15793 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
15794 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm1
15795 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm8
15796 ; AVX512-NEXT:    vpermt2d %zmm30, %zmm0, %zmm1
15797 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm10
15798 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm12
15799 ; AVX512-NEXT:    vpermt2d %zmm13, %zmm0, %zmm12
15800 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
15801 ; AVX512-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
15802 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15803 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm14
15804 ; AVX512-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15805 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm1
15806 ; AVX512-NEXT:    vpermt2d %zmm22, %zmm0, %zmm1
15807 ; AVX512-NEXT:    vmovdqa64 %zmm22, %zmm17
15808 ; AVX512-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15809 ; AVX512-NEXT:    vmovdqa64 %zmm26, %zmm4
15810 ; AVX512-NEXT:    vpermt2d %zmm21, %zmm0, %zmm4
15811 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
15812 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
15813 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm1
15814 ; AVX512-NEXT:    vpermt2d %zmm24, %zmm0, %zmm1
15815 ; AVX512-NEXT:    vmovdqu64 (%rsp), %zmm2 # 64-byte Reload
15816 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm12
15817 ; AVX512-NEXT:    vmovdqa64 %zmm31, %zmm24
15818 ; AVX512-NEXT:    vpermt2d %zmm31, %zmm0, %zmm12
15819 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
15820 ; AVX512-NEXT:    vmovdqa64 384(%rdi), %zmm5
15821 ; AVX512-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15822 ; AVX512-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
15823 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15824 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm1
15825 ; AVX512-NEXT:    vpermt2d %zmm18, %zmm0, %zmm1
15826 ; AVX512-NEXT:    vmovdqa64 256(%rdi), %zmm22
15827 ; AVX512-NEXT:    vmovdqa64 %zmm22, %zmm4
15828 ; AVX512-NEXT:    vpermt2d %zmm11, %zmm0, %zmm4
15829 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
15830 ; AVX512-NEXT:    vmovdqa64 128(%rdi), %zmm1
15831 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15832 ; AVX512-NEXT:    vmovdqa64 192(%rdi), %zmm5
15833 ; AVX512-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15834 ; AVX512-NEXT:    vpermt2d %zmm5, %zmm0, %zmm1
15835 ; AVX512-NEXT:    vmovdqa64 (%rdi), %zmm7
15836 ; AVX512-NEXT:    vmovdqa64 64(%rdi), %zmm19
15837 ; AVX512-NEXT:    vpermi2d %zmm19, %zmm7, %zmm0
15838 ; AVX512-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15839 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
15840 ; AVX512-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
15841 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15842 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [1,9,17,25,1,9,17,25,1,9,17,25,1,9,17,25]
15843 ; AVX512-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
15844 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm1
15845 ; AVX512-NEXT:    vpermt2d %zmm20, %zmm0, %zmm1
15846 ; AVX512-NEXT:    vmovdqa64 %zmm27, %zmm4
15847 ; AVX512-NEXT:    vmovdqu64 %zmm29, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15848 ; AVX512-NEXT:    vpermt2d %zmm29, %zmm0, %zmm4
15849 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
15850 ; AVX512-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15851 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm1
15852 ; AVX512-NEXT:    vmovdqa64 %zmm30, %zmm31
15853 ; AVX512-NEXT:    vpermt2d %zmm30, %zmm0, %zmm1
15854 ; AVX512-NEXT:    vmovdqa64 %zmm10, %zmm12
15855 ; AVX512-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15856 ; AVX512-NEXT:    vmovdqa64 %zmm13, %zmm30
15857 ; AVX512-NEXT:    vpermt2d %zmm13, %zmm0, %zmm12
15858 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
15859 ; AVX512-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
15860 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15861 ; AVX512-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15862 ; AVX512-NEXT:    vmovdqa64 %zmm16, %zmm1
15863 ; AVX512-NEXT:    vpermt2d %zmm23, %zmm0, %zmm1
15864 ; AVX512-NEXT:    vmovdqa64 %zmm28, %zmm4
15865 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
15866 ; AVX512-NEXT:    vpermt2d %zmm5, %zmm0, %zmm4
15867 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
15868 ; AVX512-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15869 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm1
15870 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
15871 ; AVX512-NEXT:    vpermt2d %zmm13, %zmm0, %zmm1
15872 ; AVX512-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15873 ; AVX512-NEXT:    vmovdqa64 %zmm9, %zmm12
15874 ; AVX512-NEXT:    vpermt2d %zmm25, %zmm0, %zmm12
15875 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
15876 ; AVX512-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
15877 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15878 ; AVX512-NEXT:    vmovdqa64 %zmm14, %zmm1
15879 ; AVX512-NEXT:    vpermt2d %zmm17, %zmm0, %zmm1
15880 ; AVX512-NEXT:    vmovdqa64 %zmm26, %zmm4
15881 ; AVX512-NEXT:    vpermt2d %zmm21, %zmm0, %zmm4
15882 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
15883 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm1
15884 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
15885 ; AVX512-NEXT:    vpermt2d %zmm3, %zmm0, %zmm1
15886 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm12
15887 ; AVX512-NEXT:    vpermt2d %zmm24, %zmm0, %zmm12
15888 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
15889 ; AVX512-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
15890 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15891 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
15892 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm1
15893 ; AVX512-NEXT:    vpermt2d %zmm18, %zmm0, %zmm1
15894 ; AVX512-NEXT:    vmovdqa64 %zmm22, %zmm4
15895 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
15896 ; AVX512-NEXT:    vpermt2d %zmm2, %zmm0, %zmm4
15897 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
15898 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
15899 ; AVX512-NEXT:    vmovdqa64 %zmm14, %zmm1
15900 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
15901 ; AVX512-NEXT:    vpermt2d %zmm11, %zmm0, %zmm1
15902 ; AVX512-NEXT:    vpermi2d %zmm19, %zmm7, %zmm0
15903 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
15904 ; AVX512-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
15905 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15906 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [2,10,18,26,2,10,18,26,2,10,18,26,2,10,18,26]
15907 ; AVX512-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
15908 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
15909 ; AVX512-NEXT:    vmovdqa64 %zmm17, %zmm1
15910 ; AVX512-NEXT:    vpermt2d %zmm20, %zmm0, %zmm1
15911 ; AVX512-NEXT:    vmovdqa64 %zmm27, %zmm4
15912 ; AVX512-NEXT:    vpermt2d %zmm29, %zmm0, %zmm4
15913 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
15914 ; AVX512-NEXT:    vpermt2d %zmm31, %zmm0, %zmm8
15915 ; AVX512-NEXT:    vpermt2d %zmm30, %zmm0, %zmm10
15916 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm1 = ymm10[0,1,2,3],ymm8[4,5,6,7]
15917 ; AVX512-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
15918 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15919 ; AVX512-NEXT:    vmovdqa64 %zmm16, %zmm1
15920 ; AVX512-NEXT:    vpermt2d %zmm23, %zmm0, %zmm1
15921 ; AVX512-NEXT:    vmovdqa64 %zmm28, %zmm4
15922 ; AVX512-NEXT:    vpermt2d %zmm5, %zmm0, %zmm4
15923 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
15924 ; AVX512-NEXT:    vpermt2d %zmm13, %zmm0, %zmm15
15925 ; AVX512-NEXT:    vmovdqa64 %zmm13, %zmm16
15926 ; AVX512-NEXT:    vpermt2d %zmm25, %zmm0, %zmm9
15927 ; AVX512-NEXT:    vmovdqa64 %zmm25, %zmm29
15928 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm1 = ymm9[0,1,2,3],ymm15[4,5,6,7]
15929 ; AVX512-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
15930 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15931 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
15932 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm1
15933 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
15934 ; AVX512-NEXT:    vpermt2d %zmm10, %zmm0, %zmm1
15935 ; AVX512-NEXT:    vmovdqu64 %zmm26, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15936 ; AVX512-NEXT:    vmovdqa64 %zmm26, %zmm4
15937 ; AVX512-NEXT:    vmovdqa64 %zmm21, %zmm7
15938 ; AVX512-NEXT:    vpermt2d %zmm21, %zmm0, %zmm4
15939 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
15940 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
15941 ; AVX512-NEXT:    vmovdqa64 %zmm9, %zmm1
15942 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm25
15943 ; AVX512-NEXT:    vpermt2d %zmm3, %zmm0, %zmm1
15944 ; AVX512-NEXT:    vmovdqu64 (%rsp), %zmm3 # 64-byte Reload
15945 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm12
15946 ; AVX512-NEXT:    vmovdqa64 %zmm24, %zmm15
15947 ; AVX512-NEXT:    vpermt2d %zmm24, %zmm0, %zmm12
15948 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
15949 ; AVX512-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
15950 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15951 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm13
15952 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm1
15953 ; AVX512-NEXT:    vpermt2d %zmm18, %zmm0, %zmm1
15954 ; AVX512-NEXT:    vmovdqa64 %zmm22, %zmm4
15955 ; AVX512-NEXT:    vpermt2d %zmm2, %zmm0, %zmm4
15956 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
15957 ; AVX512-NEXT:    vmovdqa64 %zmm14, %zmm6
15958 ; AVX512-NEXT:    vmovdqa64 %zmm14, %zmm1
15959 ; AVX512-NEXT:    vpermt2d %zmm11, %zmm0, %zmm1
15960 ; AVX512-NEXT:    vmovdqa64 %zmm11, %zmm24
15961 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
15962 ; AVX512-NEXT:    vpermi2d %zmm19, %zmm14, %zmm0
15963 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
15964 ; AVX512-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
15965 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15966 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [3,11,19,27,3,11,19,27,3,11,19,27,3,11,19,27]
15967 ; AVX512-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
15968 ; AVX512-NEXT:    vmovdqa64 %zmm17, %zmm1
15969 ; AVX512-NEXT:    vpermt2d %zmm20, %zmm0, %zmm1
15970 ; AVX512-NEXT:    vmovdqa64 %zmm27, %zmm4
15971 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
15972 ; AVX512-NEXT:    vpermt2d %zmm2, %zmm0, %zmm4
15973 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
15974 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
15975 ; AVX512-NEXT:    vmovdqa64 %zmm31, %zmm21
15976 ; AVX512-NEXT:    vpermt2d %zmm31, %zmm0, %zmm1
15977 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
15978 ; AVX512-NEXT:    vpermt2d %zmm30, %zmm0, %zmm12
15979 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
15980 ; AVX512-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
15981 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15982 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
15983 ; AVX512-NEXT:    vmovdqa64 %zmm11, %zmm1
15984 ; AVX512-NEXT:    vmovdqu64 %zmm23, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15985 ; AVX512-NEXT:    vpermt2d %zmm23, %zmm0, %zmm1
15986 ; AVX512-NEXT:    vmovdqa64 %zmm28, %zmm4
15987 ; AVX512-NEXT:    vpermt2d %zmm5, %zmm0, %zmm4
15988 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm31
15989 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
15990 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
15991 ; AVX512-NEXT:    vpermt2d %zmm16, %zmm0, %zmm1
15992 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
15993 ; AVX512-NEXT:    vpermt2d %zmm29, %zmm0, %zmm12
15994 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
15995 ; AVX512-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
15996 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
15997 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm1
15998 ; AVX512-NEXT:    vpermt2d %zmm10, %zmm0, %zmm1
15999 ; AVX512-NEXT:    vmovdqa64 %zmm26, %zmm4
16000 ; AVX512-NEXT:    vpermt2d %zmm7, %zmm0, %zmm4
16001 ; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm26
16002 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
16003 ; AVX512-NEXT:    vmovdqa64 %zmm9, %zmm1
16004 ; AVX512-NEXT:    vmovdqa64 %zmm25, %zmm9
16005 ; AVX512-NEXT:    vpermt2d %zmm25, %zmm0, %zmm1
16006 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm12
16007 ; AVX512-NEXT:    vpermt2d %zmm15, %zmm0, %zmm12
16008 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
16009 ; AVX512-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
16010 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16011 ; AVX512-NEXT:    vmovdqa64 %zmm13, %zmm1
16012 ; AVX512-NEXT:    vpermt2d %zmm18, %zmm0, %zmm1
16013 ; AVX512-NEXT:    vmovdqa64 %zmm18, %zmm25
16014 ; AVX512-NEXT:    vmovdqa64 %zmm22, %zmm4
16015 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
16016 ; AVX512-NEXT:    vpermt2d %zmm5, %zmm0, %zmm4
16017 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
16018 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm1
16019 ; AVX512-NEXT:    vmovdqa64 %zmm24, %zmm18
16020 ; AVX512-NEXT:    vpermt2d %zmm24, %zmm0, %zmm1
16021 ; AVX512-NEXT:    vpermi2d %zmm19, %zmm14, %zmm0
16022 ; AVX512-NEXT:    vmovdqa64 %zmm19, %zmm24
16023 ; AVX512-NEXT:    vmovdqa64 %zmm14, %zmm13
16024 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
16025 ; AVX512-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
16026 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16027 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [4,12,20,28,4,12,20,28,4,12,20,28,4,12,20,28]
16028 ; AVX512-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
16029 ; AVX512-NEXT:    vmovdqa64 %zmm17, %zmm1
16030 ; AVX512-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16031 ; AVX512-NEXT:    vpermt2d %zmm20, %zmm0, %zmm1
16032 ; AVX512-NEXT:    vmovdqu64 %zmm27, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16033 ; AVX512-NEXT:    vmovdqa64 %zmm27, %zmm4
16034 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm3
16035 ; AVX512-NEXT:    vpermt2d %zmm2, %zmm0, %zmm4
16036 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
16037 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
16038 ; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm1
16039 ; AVX512-NEXT:    vmovdqa64 %zmm21, %zmm6
16040 ; AVX512-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16041 ; AVX512-NEXT:    vpermt2d %zmm21, %zmm0, %zmm1
16042 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
16043 ; AVX512-NEXT:    vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16044 ; AVX512-NEXT:    vpermt2d %zmm30, %zmm0, %zmm12
16045 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
16046 ; AVX512-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
16047 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16048 ; AVX512-NEXT:    vmovdqa64 %zmm11, %zmm1
16049 ; AVX512-NEXT:    vpermt2d %zmm23, %zmm0, %zmm1
16050 ; AVX512-NEXT:    vmovdqa64 %zmm28, %zmm4
16051 ; AVX512-NEXT:    vpermt2d %zmm31, %zmm0, %zmm4
16052 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
16053 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
16054 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm1
16055 ; AVX512-NEXT:    vpermt2d %zmm16, %zmm0, %zmm1
16056 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
16057 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm12
16058 ; AVX512-NEXT:    vmovdqa64 %zmm29, %zmm11
16059 ; AVX512-NEXT:    vpermt2d %zmm29, %zmm0, %zmm12
16060 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
16061 ; AVX512-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
16062 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16063 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm23 # 64-byte Reload
16064 ; AVX512-NEXT:    vmovdqa64 %zmm23, %zmm1
16065 ; AVX512-NEXT:    vpermt2d %zmm10, %zmm0, %zmm1
16066 ; AVX512-NEXT:    vmovdqa64 %zmm10, %zmm31
16067 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
16068 ; AVX512-NEXT:    vmovdqa64 %zmm10, %zmm4
16069 ; AVX512-NEXT:    vmovdqa64 %zmm26, %zmm19
16070 ; AVX512-NEXT:    vpermt2d %zmm26, %zmm0, %zmm4
16071 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
16072 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
16073 ; AVX512-NEXT:    vpermt2d %zmm9, %zmm0, %zmm1
16074 ; AVX512-NEXT:    vmovdqa64 %zmm9, %zmm26
16075 ; AVX512-NEXT:    vmovdqu64 (%rsp), %zmm12 # 64-byte Reload
16076 ; AVX512-NEXT:    vpermt2d %zmm15, %zmm0, %zmm12
16077 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm29
16078 ; AVX512-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16079 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
16080 ; AVX512-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
16081 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16082 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm21 # 64-byte Reload
16083 ; AVX512-NEXT:    vmovdqa64 %zmm21, %zmm1
16084 ; AVX512-NEXT:    vpermt2d %zmm25, %zmm0, %zmm1
16085 ; AVX512-NEXT:    vmovdqa64 %zmm22, %zmm4
16086 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm14
16087 ; AVX512-NEXT:    vpermt2d %zmm5, %zmm0, %zmm4
16088 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
16089 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
16090 ; AVX512-NEXT:    vmovdqa64 %zmm9, %zmm1
16091 ; AVX512-NEXT:    vpermt2d %zmm18, %zmm0, %zmm1
16092 ; AVX512-NEXT:    vmovdqa64 %zmm13, %zmm5
16093 ; AVX512-NEXT:    vmovdqa64 %zmm24, %zmm13
16094 ; AVX512-NEXT:    vmovdqu64 %zmm24, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16095 ; AVX512-NEXT:    vpermi2d %zmm24, %zmm5, %zmm0
16096 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
16097 ; AVX512-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
16098 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16099 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [5,13,21,29,5,13,21,29,5,13,21,29,5,13,21,29]
16100 ; AVX512-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
16101 ; AVX512-NEXT:    vpermt2d %zmm20, %zmm0, %zmm17
16102 ; AVX512-NEXT:    vpermt2d %zmm3, %zmm0, %zmm27
16103 ; AVX512-NEXT:    vmovdqa64 %zmm17, %zmm27 {%k1}
16104 ; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm1
16105 ; AVX512-NEXT:    vpermt2d %zmm6, %zmm0, %zmm1
16106 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
16107 ; AVX512-NEXT:    vpermt2d %zmm30, %zmm0, %zmm12
16108 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
16109 ; AVX512-NEXT:    vinserti64x4 $0, %ymm1, %zmm27, %zmm1
16110 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16111 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm24 # 64-byte Reload
16112 ; AVX512-NEXT:    vmovdqa64 %zmm24, %zmm1
16113 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
16114 ; AVX512-NEXT:    vpermt2d %zmm3, %zmm0, %zmm1
16115 ; AVX512-NEXT:    vmovdqa64 %zmm28, %zmm4
16116 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
16117 ; AVX512-NEXT:    vpermt2d %zmm7, %zmm0, %zmm4
16118 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
16119 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm1
16120 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm15
16121 ; AVX512-NEXT:    vpermt2d %zmm16, %zmm0, %zmm1
16122 ; AVX512-NEXT:    vmovdqa64 %zmm16, %zmm8
16123 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm12
16124 ; AVX512-NEXT:    vpermt2d %zmm11, %zmm0, %zmm12
16125 ; AVX512-NEXT:    vmovdqa64 %zmm11, %zmm2
16126 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
16127 ; AVX512-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
16128 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16129 ; AVX512-NEXT:    vmovdqa64 %zmm23, %zmm1
16130 ; AVX512-NEXT:    vpermt2d %zmm31, %zmm0, %zmm1
16131 ; AVX512-NEXT:    vmovdqa64 %zmm31, %zmm16
16132 ; AVX512-NEXT:    vmovdqa64 %zmm10, %zmm4
16133 ; AVX512-NEXT:    vmovdqa64 %zmm10, %zmm27
16134 ; AVX512-NEXT:    vpermt2d %zmm19, %zmm0, %zmm4
16135 ; AVX512-NEXT:    vmovdqa64 %zmm19, %zmm20
16136 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
16137 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
16138 ; AVX512-NEXT:    vmovdqa64 %zmm10, %zmm1
16139 ; AVX512-NEXT:    vpermt2d %zmm26, %zmm0, %zmm1
16140 ; AVX512-NEXT:    vmovdqa64 %zmm26, %zmm17
16141 ; AVX512-NEXT:    vmovdqu64 (%rsp), %zmm6 # 64-byte Reload
16142 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm12
16143 ; AVX512-NEXT:    vpermt2d %zmm29, %zmm0, %zmm12
16144 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
16145 ; AVX512-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
16146 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16147 ; AVX512-NEXT:    vmovdqa64 %zmm21, %zmm1
16148 ; AVX512-NEXT:    vpermt2d %zmm25, %zmm0, %zmm1
16149 ; AVX512-NEXT:    vmovdqa64 %zmm22, %zmm4
16150 ; AVX512-NEXT:    vpermt2d %zmm14, %zmm0, %zmm4
16151 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
16152 ; AVX512-NEXT:    vmovdqa64 %zmm9, %zmm1
16153 ; AVX512-NEXT:    vpermt2d %zmm18, %zmm0, %zmm1
16154 ; AVX512-NEXT:    vpermi2d %zmm13, %zmm5, %zmm0
16155 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
16156 ; AVX512-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
16157 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16158 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm1 = [6,14,22,30,6,14,22,30,6,14,22,30,6,14,22,30]
16159 ; AVX512-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
16160 ; AVX512-NEXT:    vmovdqa64 %zmm24, %zmm4
16161 ; AVX512-NEXT:    vmovdqa64 %zmm24, %zmm30
16162 ; AVX512-NEXT:    vpermt2d %zmm3, %zmm1, %zmm30
16163 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [7,15,23,31,7,15,23,31,7,15,23,31,7,15,23,31]
16164 ; AVX512-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
16165 ; AVX512-NEXT:    vpermt2d %zmm3, %zmm0, %zmm4
16166 ; AVX512-NEXT:    vmovdqa64 %zmm4, %zmm19
16167 ; AVX512-NEXT:    vmovdqa64 %zmm28, %zmm11
16168 ; AVX512-NEXT:    vpermt2d %zmm7, %zmm1, %zmm11
16169 ; AVX512-NEXT:    vpermt2d %zmm7, %zmm0, %zmm28
16170 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm9
16171 ; AVX512-NEXT:    vpermt2d %zmm8, %zmm1, %zmm9
16172 ; AVX512-NEXT:    vpermt2d %zmm8, %zmm0, %zmm15
16173 ; AVX512-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16174 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
16175 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm8
16176 ; AVX512-NEXT:    vpermt2d %zmm2, %zmm1, %zmm8
16177 ; AVX512-NEXT:    vpermt2d %zmm2, %zmm0, %zmm3
16178 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16179 ; AVX512-NEXT:    vmovdqa64 %zmm23, %zmm31
16180 ; AVX512-NEXT:    vpermt2d %zmm16, %zmm1, %zmm31
16181 ; AVX512-NEXT:    vpermt2d %zmm16, %zmm0, %zmm23
16182 ; AVX512-NEXT:    vmovdqa64 %zmm23, %zmm16
16183 ; AVX512-NEXT:    vmovdqa64 %zmm27, %zmm29
16184 ; AVX512-NEXT:    vpermt2d %zmm20, %zmm1, %zmm29
16185 ; AVX512-NEXT:    vpermt2d %zmm20, %zmm0, %zmm27
16186 ; AVX512-NEXT:    vmovdqa64 %zmm27, %zmm26
16187 ; AVX512-NEXT:    vmovdqa64 %zmm10, %zmm2
16188 ; AVX512-NEXT:    vmovdqa64 %zmm10, %zmm5
16189 ; AVX512-NEXT:    vpermt2d %zmm17, %zmm1, %zmm5
16190 ; AVX512-NEXT:    vpermt2d %zmm17, %zmm0, %zmm2
16191 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16192 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm4
16193 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
16194 ; AVX512-NEXT:    vpermt2d %zmm2, %zmm1, %zmm4
16195 ; AVX512-NEXT:    vpermt2d %zmm2, %zmm0, %zmm6
16196 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm15
16197 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
16198 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm23
16199 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
16200 ; AVX512-NEXT:    vpermt2d %zmm2, %zmm1, %zmm23
16201 ; AVX512-NEXT:    vpermt2d %zmm2, %zmm0, %zmm3
16202 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm17
16203 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
16204 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm24
16205 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
16206 ; AVX512-NEXT:    vpermt2d %zmm2, %zmm1, %zmm24
16207 ; AVX512-NEXT:    vpermt2d %zmm2, %zmm0, %zmm3
16208 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm27
16209 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
16210 ; AVX512-NEXT:    vmovdqa64 %zmm12, %zmm13
16211 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
16212 ; AVX512-NEXT:    vpermt2d %zmm3, %zmm1, %zmm13
16213 ; AVX512-NEXT:    vpermt2d %zmm3, %zmm0, %zmm12
16214 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
16215 ; AVX512-NEXT:    vmovdqa64 %zmm10, %zmm3
16216 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16217 ; AVX512-NEXT:    vpermt2d %zmm6, %zmm1, %zmm3
16218 ; AVX512-NEXT:    vpermt2d %zmm6, %zmm0, %zmm10
16219 ; AVX512-NEXT:    vmovdqa64 %zmm21, %zmm6
16220 ; AVX512-NEXT:    vmovdqa64 %zmm21, %zmm20
16221 ; AVX512-NEXT:    vpermt2d %zmm25, %zmm1, %zmm20
16222 ; AVX512-NEXT:    vpermt2d %zmm25, %zmm0, %zmm6
16223 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm21
16224 ; AVX512-NEXT:    vmovdqa64 %zmm22, %zmm25
16225 ; AVX512-NEXT:    vpermt2d %zmm14, %zmm1, %zmm25
16226 ; AVX512-NEXT:    vpermt2d %zmm14, %zmm0, %zmm22
16227 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
16228 ; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm14
16229 ; AVX512-NEXT:    vpermt2d %zmm18, %zmm1, %zmm14
16230 ; AVX512-NEXT:    vpermt2d %zmm18, %zmm0, %zmm7
16231 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
16232 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16233 ; AVX512-NEXT:    vpermi2d %zmm6, %zmm2, %zmm1
16234 ; AVX512-NEXT:    vpermt2d %zmm6, %zmm0, %zmm2
16235 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm6
16236 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm13[4,5,6,7]
16237 ; AVX512-NEXT:    vmovdqa64 %zmm23, %zmm24 {%k1}
16238 ; AVX512-NEXT:    vinserti64x4 $0, %ymm0, %zmm24, %zmm0
16239 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm2 = ymm8[0,1,2,3],ymm9[4,5,6,7]
16240 ; AVX512-NEXT:    vmovdqa64 %zmm30, %zmm11 {%k1}
16241 ; AVX512-NEXT:    vinserti64x4 $0, %ymm2, %zmm11, %zmm2
16242 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm5[4,5,6,7]
16243 ; AVX512-NEXT:    vmovdqa64 %zmm31, %zmm29 {%k1}
16244 ; AVX512-NEXT:    vinserti64x4 $0, %ymm3, %zmm29, %zmm3
16245 ; AVX512-NEXT:    vmovdqa64 %zmm20, %zmm25 {%k1}
16246 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm14[4,5,6,7]
16247 ; AVX512-NEXT:    vinserti64x4 $0, %ymm1, %zmm25, %zmm1
16248 ; AVX512-NEXT:    vmovdqa64 %zmm19, %zmm28 {%k1}
16249 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
16250 ; AVX512-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload
16251 ; AVX512-NEXT:    # ymm4 = ymm4[0,1,2,3],mem[4,5,6,7]
16252 ; AVX512-NEXT:    vinserti64x4 $0, %ymm4, %zmm28, %zmm4
16253 ; AVX512-NEXT:    vmovdqa64 %zmm16, %zmm26 {%k1}
16254 ; AVX512-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm5 # 32-byte Folded Reload
16255 ; AVX512-NEXT:    # ymm5 = ymm15[0,1,2,3],mem[4,5,6,7]
16256 ; AVX512-NEXT:    vinserti64x4 $0, %ymm5, %zmm26, %zmm5
16257 ; AVX512-NEXT:    vmovdqa64 %zmm17, %zmm27 {%k1}
16258 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm8 = ymm10[0,1,2,3],ymm12[4,5,6,7]
16259 ; AVX512-NEXT:    vinserti64x4 $0, %ymm8, %zmm27, %zmm9
16260 ; AVX512-NEXT:    vmovdqa64 %zmm21, %zmm22 {%k1}
16261 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm7 = ymm6[0,1,2,3],ymm7[4,5,6,7]
16262 ; AVX512-NEXT:    vinserti64x4 $0, %ymm7, %zmm22, %zmm7
16263 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
16264 ; AVX512-NEXT:    vmovaps %zmm8, 192(%rsi)
16265 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
16266 ; AVX512-NEXT:    vmovaps %zmm8, 128(%rsi)
16267 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
16268 ; AVX512-NEXT:    vmovaps %zmm8, 64(%rsi)
16269 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16270 ; AVX512-NEXT:    vmovaps %zmm6, (%rsi)
16271 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16272 ; AVX512-NEXT:    vmovaps %zmm6, 192(%rdx)
16273 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16274 ; AVX512-NEXT:    vmovaps %zmm6, (%rdx)
16275 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16276 ; AVX512-NEXT:    vmovaps %zmm6, 64(%rdx)
16277 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16278 ; AVX512-NEXT:    vmovaps %zmm6, 128(%rdx)
16279 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16280 ; AVX512-NEXT:    vmovaps %zmm6, 192(%rcx)
16281 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16282 ; AVX512-NEXT:    vmovaps %zmm6, (%rcx)
16283 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16284 ; AVX512-NEXT:    vmovaps %zmm6, 64(%rcx)
16285 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16286 ; AVX512-NEXT:    vmovaps %zmm6, 128(%rcx)
16287 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16288 ; AVX512-NEXT:    vmovaps %zmm6, 192(%r8)
16289 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16290 ; AVX512-NEXT:    vmovaps %zmm6, (%r8)
16291 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16292 ; AVX512-NEXT:    vmovaps %zmm6, 64(%r8)
16293 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16294 ; AVX512-NEXT:    vmovaps %zmm6, 128(%r8)
16295 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16296 ; AVX512-NEXT:    vmovaps %zmm6, 192(%r9)
16297 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16298 ; AVX512-NEXT:    vmovaps %zmm6, (%r9)
16299 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16300 ; AVX512-NEXT:    vmovaps %zmm6, 64(%r9)
16301 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16302 ; AVX512-NEXT:    vmovaps %zmm6, 128(%r9)
16303 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax
16304 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16305 ; AVX512-NEXT:    vmovaps %zmm6, 192(%rax)
16306 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16307 ; AVX512-NEXT:    vmovaps %zmm6, (%rax)
16308 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16309 ; AVX512-NEXT:    vmovaps %zmm6, 64(%rax)
16310 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16311 ; AVX512-NEXT:    vmovaps %zmm6, 128(%rax)
16312 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax
16313 ; AVX512-NEXT:    vmovdqa64 %zmm3, 192(%rax)
16314 ; AVX512-NEXT:    vmovdqa64 %zmm1, (%rax)
16315 ; AVX512-NEXT:    vmovdqa64 %zmm2, 64(%rax)
16316 ; AVX512-NEXT:    vmovdqa64 %zmm0, 128(%rax)
16317 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax
16318 ; AVX512-NEXT:    vmovdqa64 %zmm9, 128(%rax)
16319 ; AVX512-NEXT:    vmovdqa64 %zmm5, 192(%rax)
16320 ; AVX512-NEXT:    vmovdqa64 %zmm7, (%rax)
16321 ; AVX512-NEXT:    vmovdqa64 %zmm4, 64(%rax)
16322 ; AVX512-NEXT:    addq $3144, %rsp # imm = 0xC48
16323 ; AVX512-NEXT:    vzeroupper
16324 ; AVX512-NEXT:    retq
16326 ; AVX512-FCP-LABEL: load_i32_stride8_vf64:
16327 ; AVX512-FCP:       # %bb.0:
16328 ; AVX512-FCP-NEXT:    subq $3144, %rsp # imm = 0xC48
16329 ; AVX512-FCP-NEXT:    vmovdqa64 320(%rdi), %zmm11
16330 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16331 ; AVX512-FCP-NEXT:    vmovdqa64 448(%rdi), %zmm18
16332 ; AVX512-FCP-NEXT:    vmovdqa64 1600(%rdi), %zmm31
16333 ; AVX512-FCP-NEXT:    vmovaps 1536(%rdi), %zmm0
16334 ; AVX512-FCP-NEXT:    vmovups %zmm0, (%rsp) # 64-byte Spill
16335 ; AVX512-FCP-NEXT:    vmovdqa64 1728(%rdi), %zmm24
16336 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm24, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16337 ; AVX512-FCP-NEXT:    vmovaps 1664(%rdi), %zmm0
16338 ; AVX512-FCP-NEXT:    vmovups %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16339 ; AVX512-FCP-NEXT:    vmovdqa64 1856(%rdi), %zmm21
16340 ; AVX512-FCP-NEXT:    vmovdqa64 1792(%rdi), %zmm26
16341 ; AVX512-FCP-NEXT:    vmovdqa64 1984(%rdi), %zmm22
16342 ; AVX512-FCP-NEXT:    vmovdqa64 1920(%rdi), %zmm5
16343 ; AVX512-FCP-NEXT:    vmovdqa64 1088(%rdi), %zmm13
16344 ; AVX512-FCP-NEXT:    vmovdqa64 1024(%rdi), %zmm3
16345 ; AVX512-FCP-NEXT:    vmovdqa64 1216(%rdi), %zmm30
16346 ; AVX512-FCP-NEXT:    vmovdqa64 1152(%rdi), %zmm2
16347 ; AVX512-FCP-NEXT:    vmovdqa64 1344(%rdi), %zmm29
16348 ; AVX512-FCP-NEXT:    vmovdqa64 1280(%rdi), %zmm27
16349 ; AVX512-FCP-NEXT:    vmovdqa64 1472(%rdi), %zmm20
16350 ; AVX512-FCP-NEXT:    vmovdqa64 1408(%rdi), %zmm10
16351 ; AVX512-FCP-NEXT:    vmovdqa64 576(%rdi), %zmm25
16352 ; AVX512-FCP-NEXT:    vmovdqa64 512(%rdi), %zmm7
16353 ; AVX512-FCP-NEXT:    vmovdqa64 704(%rdi), %zmm9
16354 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16355 ; AVX512-FCP-NEXT:    vmovdqa64 640(%rdi), %zmm12
16356 ; AVX512-FCP-NEXT:    vmovdqa64 832(%rdi), %zmm6
16357 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16358 ; AVX512-FCP-NEXT:    vmovdqa64 768(%rdi), %zmm28
16359 ; AVX512-FCP-NEXT:    vmovdqa64 960(%rdi), %zmm23
16360 ; AVX512-FCP-NEXT:    vmovdqa64 896(%rdi), %zmm4
16361 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [0,8,16,24,0,8,16,24,0,8,16,24,0,8,16,24]
16362 ; AVX512-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
16363 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, %zmm1
16364 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, %zmm16
16365 ; AVX512-FCP-NEXT:    vpermt2d %zmm23, %zmm0, %zmm1
16366 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm28, %zmm4
16367 ; AVX512-FCP-NEXT:    vpermt2d %zmm6, %zmm0, %zmm4
16368 ; AVX512-FCP-NEXT:    movb $-64, %al
16369 ; AVX512-FCP-NEXT:    kmovw %eax, %k1
16370 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
16371 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, %zmm1
16372 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, %zmm15
16373 ; AVX512-FCP-NEXT:    vpermt2d %zmm9, %zmm0, %zmm1
16374 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, %zmm12
16375 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, %zmm9
16376 ; AVX512-FCP-NEXT:    vpermt2d %zmm25, %zmm0, %zmm12
16377 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
16378 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
16379 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16380 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm10, %zmm1
16381 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm10, %zmm6
16382 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16383 ; AVX512-FCP-NEXT:    vpermt2d %zmm20, %zmm0, %zmm1
16384 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm27, %zmm4
16385 ; AVX512-FCP-NEXT:    vpermt2d %zmm29, %zmm0, %zmm4
16386 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
16387 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm1
16388 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm8
16389 ; AVX512-FCP-NEXT:    vpermt2d %zmm30, %zmm0, %zmm1
16390 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm10
16391 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm12
16392 ; AVX512-FCP-NEXT:    vpermt2d %zmm13, %zmm0, %zmm12
16393 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
16394 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
16395 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16396 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm14
16397 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16398 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm1
16399 ; AVX512-FCP-NEXT:    vpermt2d %zmm22, %zmm0, %zmm1
16400 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm22, %zmm17
16401 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16402 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm26, %zmm4
16403 ; AVX512-FCP-NEXT:    vpermt2d %zmm21, %zmm0, %zmm4
16404 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
16405 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
16406 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm1
16407 ; AVX512-FCP-NEXT:    vpermt2d %zmm24, %zmm0, %zmm1
16408 ; AVX512-FCP-NEXT:    vmovdqu64 (%rsp), %zmm2 # 64-byte Reload
16409 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm12
16410 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm31, %zmm24
16411 ; AVX512-FCP-NEXT:    vpermt2d %zmm31, %zmm0, %zmm12
16412 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
16413 ; AVX512-FCP-NEXT:    vmovdqa64 384(%rdi), %zmm5
16414 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16415 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
16416 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16417 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm1
16418 ; AVX512-FCP-NEXT:    vpermt2d %zmm18, %zmm0, %zmm1
16419 ; AVX512-FCP-NEXT:    vmovdqa64 256(%rdi), %zmm22
16420 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm22, %zmm4
16421 ; AVX512-FCP-NEXT:    vpermt2d %zmm11, %zmm0, %zmm4
16422 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
16423 ; AVX512-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm1
16424 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16425 ; AVX512-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm5
16426 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16427 ; AVX512-FCP-NEXT:    vpermt2d %zmm5, %zmm0, %zmm1
16428 ; AVX512-FCP-NEXT:    vmovdqa64 (%rdi), %zmm7
16429 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm19
16430 ; AVX512-FCP-NEXT:    vpermi2d %zmm19, %zmm7, %zmm0
16431 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16432 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
16433 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
16434 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16435 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [1,9,17,25,1,9,17,25,1,9,17,25,1,9,17,25]
16436 ; AVX512-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
16437 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm1
16438 ; AVX512-FCP-NEXT:    vpermt2d %zmm20, %zmm0, %zmm1
16439 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm27, %zmm4
16440 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm29, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16441 ; AVX512-FCP-NEXT:    vpermt2d %zmm29, %zmm0, %zmm4
16442 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
16443 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16444 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm1
16445 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm30, %zmm31
16446 ; AVX512-FCP-NEXT:    vpermt2d %zmm30, %zmm0, %zmm1
16447 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm10, %zmm12
16448 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16449 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, %zmm30
16450 ; AVX512-FCP-NEXT:    vpermt2d %zmm13, %zmm0, %zmm12
16451 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
16452 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
16453 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16454 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16455 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, %zmm1
16456 ; AVX512-FCP-NEXT:    vpermt2d %zmm23, %zmm0, %zmm1
16457 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm28, %zmm4
16458 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
16459 ; AVX512-FCP-NEXT:    vpermt2d %zmm5, %zmm0, %zmm4
16460 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
16461 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16462 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm15, %zmm1
16463 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
16464 ; AVX512-FCP-NEXT:    vpermt2d %zmm13, %zmm0, %zmm1
16465 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16466 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm9, %zmm12
16467 ; AVX512-FCP-NEXT:    vpermt2d %zmm25, %zmm0, %zmm12
16468 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
16469 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
16470 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16471 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm14, %zmm1
16472 ; AVX512-FCP-NEXT:    vpermt2d %zmm17, %zmm0, %zmm1
16473 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm26, %zmm4
16474 ; AVX512-FCP-NEXT:    vpermt2d %zmm21, %zmm0, %zmm4
16475 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
16476 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm1
16477 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
16478 ; AVX512-FCP-NEXT:    vpermt2d %zmm3, %zmm0, %zmm1
16479 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm12
16480 ; AVX512-FCP-NEXT:    vpermt2d %zmm24, %zmm0, %zmm12
16481 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
16482 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
16483 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16484 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16485 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm1
16486 ; AVX512-FCP-NEXT:    vpermt2d %zmm18, %zmm0, %zmm1
16487 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm22, %zmm4
16488 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
16489 ; AVX512-FCP-NEXT:    vpermt2d %zmm2, %zmm0, %zmm4
16490 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
16491 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
16492 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm14, %zmm1
16493 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
16494 ; AVX512-FCP-NEXT:    vpermt2d %zmm11, %zmm0, %zmm1
16495 ; AVX512-FCP-NEXT:    vpermi2d %zmm19, %zmm7, %zmm0
16496 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
16497 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
16498 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16499 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [2,10,18,26,2,10,18,26,2,10,18,26,2,10,18,26]
16500 ; AVX512-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
16501 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
16502 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm17, %zmm1
16503 ; AVX512-FCP-NEXT:    vpermt2d %zmm20, %zmm0, %zmm1
16504 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm27, %zmm4
16505 ; AVX512-FCP-NEXT:    vpermt2d %zmm29, %zmm0, %zmm4
16506 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
16507 ; AVX512-FCP-NEXT:    vpermt2d %zmm31, %zmm0, %zmm8
16508 ; AVX512-FCP-NEXT:    vpermt2d %zmm30, %zmm0, %zmm10
16509 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm10[0,1,2,3],ymm8[4,5,6,7]
16510 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
16511 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16512 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, %zmm1
16513 ; AVX512-FCP-NEXT:    vpermt2d %zmm23, %zmm0, %zmm1
16514 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm28, %zmm4
16515 ; AVX512-FCP-NEXT:    vpermt2d %zmm5, %zmm0, %zmm4
16516 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
16517 ; AVX512-FCP-NEXT:    vpermt2d %zmm13, %zmm0, %zmm15
16518 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, %zmm16
16519 ; AVX512-FCP-NEXT:    vpermt2d %zmm25, %zmm0, %zmm9
16520 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm25, %zmm29
16521 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm9[0,1,2,3],ymm15[4,5,6,7]
16522 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
16523 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16524 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
16525 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm1
16526 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
16527 ; AVX512-FCP-NEXT:    vpermt2d %zmm10, %zmm0, %zmm1
16528 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm26, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16529 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm26, %zmm4
16530 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm21, %zmm7
16531 ; AVX512-FCP-NEXT:    vpermt2d %zmm21, %zmm0, %zmm4
16532 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
16533 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
16534 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm9, %zmm1
16535 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm25
16536 ; AVX512-FCP-NEXT:    vpermt2d %zmm3, %zmm0, %zmm1
16537 ; AVX512-FCP-NEXT:    vmovdqu64 (%rsp), %zmm3 # 64-byte Reload
16538 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm12
16539 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm24, %zmm15
16540 ; AVX512-FCP-NEXT:    vpermt2d %zmm24, %zmm0, %zmm12
16541 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
16542 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
16543 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16544 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm13
16545 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm1
16546 ; AVX512-FCP-NEXT:    vpermt2d %zmm18, %zmm0, %zmm1
16547 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm22, %zmm4
16548 ; AVX512-FCP-NEXT:    vpermt2d %zmm2, %zmm0, %zmm4
16549 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
16550 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm14, %zmm6
16551 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm14, %zmm1
16552 ; AVX512-FCP-NEXT:    vpermt2d %zmm11, %zmm0, %zmm1
16553 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm11, %zmm24
16554 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
16555 ; AVX512-FCP-NEXT:    vpermi2d %zmm19, %zmm14, %zmm0
16556 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
16557 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
16558 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16559 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [3,11,19,27,3,11,19,27,3,11,19,27,3,11,19,27]
16560 ; AVX512-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
16561 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm17, %zmm1
16562 ; AVX512-FCP-NEXT:    vpermt2d %zmm20, %zmm0, %zmm1
16563 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm27, %zmm4
16564 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
16565 ; AVX512-FCP-NEXT:    vpermt2d %zmm2, %zmm0, %zmm4
16566 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
16567 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
16568 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm31, %zmm21
16569 ; AVX512-FCP-NEXT:    vpermt2d %zmm31, %zmm0, %zmm1
16570 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
16571 ; AVX512-FCP-NEXT:    vpermt2d %zmm30, %zmm0, %zmm12
16572 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
16573 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
16574 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16575 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
16576 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm11, %zmm1
16577 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm23, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16578 ; AVX512-FCP-NEXT:    vpermt2d %zmm23, %zmm0, %zmm1
16579 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm28, %zmm4
16580 ; AVX512-FCP-NEXT:    vpermt2d %zmm5, %zmm0, %zmm4
16581 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm31
16582 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
16583 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
16584 ; AVX512-FCP-NEXT:    vpermt2d %zmm16, %zmm0, %zmm1
16585 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
16586 ; AVX512-FCP-NEXT:    vpermt2d %zmm29, %zmm0, %zmm12
16587 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
16588 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
16589 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16590 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm1
16591 ; AVX512-FCP-NEXT:    vpermt2d %zmm10, %zmm0, %zmm1
16592 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm26, %zmm4
16593 ; AVX512-FCP-NEXT:    vpermt2d %zmm7, %zmm0, %zmm4
16594 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, %zmm26
16595 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
16596 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm9, %zmm1
16597 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm25, %zmm9
16598 ; AVX512-FCP-NEXT:    vpermt2d %zmm25, %zmm0, %zmm1
16599 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm12
16600 ; AVX512-FCP-NEXT:    vpermt2d %zmm15, %zmm0, %zmm12
16601 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
16602 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
16603 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16604 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, %zmm1
16605 ; AVX512-FCP-NEXT:    vpermt2d %zmm18, %zmm0, %zmm1
16606 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm18, %zmm25
16607 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm22, %zmm4
16608 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
16609 ; AVX512-FCP-NEXT:    vpermt2d %zmm5, %zmm0, %zmm4
16610 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
16611 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm1
16612 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm24, %zmm18
16613 ; AVX512-FCP-NEXT:    vpermt2d %zmm24, %zmm0, %zmm1
16614 ; AVX512-FCP-NEXT:    vpermi2d %zmm19, %zmm14, %zmm0
16615 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm19, %zmm24
16616 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm14, %zmm13
16617 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
16618 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
16619 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16620 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [4,12,20,28,4,12,20,28,4,12,20,28,4,12,20,28]
16621 ; AVX512-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
16622 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm17, %zmm1
16623 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16624 ; AVX512-FCP-NEXT:    vpermt2d %zmm20, %zmm0, %zmm1
16625 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm27, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16626 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm27, %zmm4
16627 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm3
16628 ; AVX512-FCP-NEXT:    vpermt2d %zmm2, %zmm0, %zmm4
16629 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
16630 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
16631 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, %zmm1
16632 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm21, %zmm6
16633 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16634 ; AVX512-FCP-NEXT:    vpermt2d %zmm21, %zmm0, %zmm1
16635 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
16636 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16637 ; AVX512-FCP-NEXT:    vpermt2d %zmm30, %zmm0, %zmm12
16638 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
16639 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
16640 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16641 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm11, %zmm1
16642 ; AVX512-FCP-NEXT:    vpermt2d %zmm23, %zmm0, %zmm1
16643 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm28, %zmm4
16644 ; AVX512-FCP-NEXT:    vpermt2d %zmm31, %zmm0, %zmm4
16645 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
16646 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
16647 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm1
16648 ; AVX512-FCP-NEXT:    vpermt2d %zmm16, %zmm0, %zmm1
16649 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
16650 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm12
16651 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm29, %zmm11
16652 ; AVX512-FCP-NEXT:    vpermt2d %zmm29, %zmm0, %zmm12
16653 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
16654 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
16655 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16656 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm23 # 64-byte Reload
16657 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm23, %zmm1
16658 ; AVX512-FCP-NEXT:    vpermt2d %zmm10, %zmm0, %zmm1
16659 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm10, %zmm31
16660 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
16661 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm10, %zmm4
16662 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm26, %zmm19
16663 ; AVX512-FCP-NEXT:    vpermt2d %zmm26, %zmm0, %zmm4
16664 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
16665 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
16666 ; AVX512-FCP-NEXT:    vpermt2d %zmm9, %zmm0, %zmm1
16667 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm9, %zmm26
16668 ; AVX512-FCP-NEXT:    vmovdqu64 (%rsp), %zmm12 # 64-byte Reload
16669 ; AVX512-FCP-NEXT:    vpermt2d %zmm15, %zmm0, %zmm12
16670 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm15, %zmm29
16671 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16672 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
16673 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
16674 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16675 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm21 # 64-byte Reload
16676 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm21, %zmm1
16677 ; AVX512-FCP-NEXT:    vpermt2d %zmm25, %zmm0, %zmm1
16678 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm22, %zmm4
16679 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm14
16680 ; AVX512-FCP-NEXT:    vpermt2d %zmm5, %zmm0, %zmm4
16681 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
16682 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
16683 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm9, %zmm1
16684 ; AVX512-FCP-NEXT:    vpermt2d %zmm18, %zmm0, %zmm1
16685 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, %zmm5
16686 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm24, %zmm13
16687 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm24, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16688 ; AVX512-FCP-NEXT:    vpermi2d %zmm24, %zmm5, %zmm0
16689 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
16690 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
16691 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16692 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [5,13,21,29,5,13,21,29,5,13,21,29,5,13,21,29]
16693 ; AVX512-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
16694 ; AVX512-FCP-NEXT:    vpermt2d %zmm20, %zmm0, %zmm17
16695 ; AVX512-FCP-NEXT:    vpermt2d %zmm3, %zmm0, %zmm27
16696 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm17, %zmm27 {%k1}
16697 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, %zmm1
16698 ; AVX512-FCP-NEXT:    vpermt2d %zmm6, %zmm0, %zmm1
16699 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
16700 ; AVX512-FCP-NEXT:    vpermt2d %zmm30, %zmm0, %zmm12
16701 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
16702 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm27, %zmm1
16703 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16704 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm24 # 64-byte Reload
16705 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm24, %zmm1
16706 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
16707 ; AVX512-FCP-NEXT:    vpermt2d %zmm3, %zmm0, %zmm1
16708 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm28, %zmm4
16709 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
16710 ; AVX512-FCP-NEXT:    vpermt2d %zmm7, %zmm0, %zmm4
16711 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
16712 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm1
16713 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm15
16714 ; AVX512-FCP-NEXT:    vpermt2d %zmm16, %zmm0, %zmm1
16715 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, %zmm8
16716 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm12
16717 ; AVX512-FCP-NEXT:    vpermt2d %zmm11, %zmm0, %zmm12
16718 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm11, %zmm2
16719 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
16720 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
16721 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16722 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm23, %zmm1
16723 ; AVX512-FCP-NEXT:    vpermt2d %zmm31, %zmm0, %zmm1
16724 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm31, %zmm16
16725 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm10, %zmm4
16726 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm10, %zmm27
16727 ; AVX512-FCP-NEXT:    vpermt2d %zmm19, %zmm0, %zmm4
16728 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm19, %zmm20
16729 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
16730 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
16731 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm10, %zmm1
16732 ; AVX512-FCP-NEXT:    vpermt2d %zmm26, %zmm0, %zmm1
16733 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm26, %zmm17
16734 ; AVX512-FCP-NEXT:    vmovdqu64 (%rsp), %zmm6 # 64-byte Reload
16735 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm12
16736 ; AVX512-FCP-NEXT:    vpermt2d %zmm29, %zmm0, %zmm12
16737 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
16738 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
16739 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16740 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm21, %zmm1
16741 ; AVX512-FCP-NEXT:    vpermt2d %zmm25, %zmm0, %zmm1
16742 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm22, %zmm4
16743 ; AVX512-FCP-NEXT:    vpermt2d %zmm14, %zmm0, %zmm4
16744 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
16745 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm9, %zmm1
16746 ; AVX512-FCP-NEXT:    vpermt2d %zmm18, %zmm0, %zmm1
16747 ; AVX512-FCP-NEXT:    vpermi2d %zmm13, %zmm5, %zmm0
16748 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
16749 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
16750 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16751 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm1 = [6,14,22,30,6,14,22,30,6,14,22,30,6,14,22,30]
16752 ; AVX512-FCP-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
16753 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm24, %zmm4
16754 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm24, %zmm30
16755 ; AVX512-FCP-NEXT:    vpermt2d %zmm3, %zmm1, %zmm30
16756 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [7,15,23,31,7,15,23,31,7,15,23,31,7,15,23,31]
16757 ; AVX512-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
16758 ; AVX512-FCP-NEXT:    vpermt2d %zmm3, %zmm0, %zmm4
16759 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, %zmm19
16760 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm28, %zmm11
16761 ; AVX512-FCP-NEXT:    vpermt2d %zmm7, %zmm1, %zmm11
16762 ; AVX512-FCP-NEXT:    vpermt2d %zmm7, %zmm0, %zmm28
16763 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm15, %zmm9
16764 ; AVX512-FCP-NEXT:    vpermt2d %zmm8, %zmm1, %zmm9
16765 ; AVX512-FCP-NEXT:    vpermt2d %zmm8, %zmm0, %zmm15
16766 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16767 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
16768 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm8
16769 ; AVX512-FCP-NEXT:    vpermt2d %zmm2, %zmm1, %zmm8
16770 ; AVX512-FCP-NEXT:    vpermt2d %zmm2, %zmm0, %zmm3
16771 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16772 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm23, %zmm31
16773 ; AVX512-FCP-NEXT:    vpermt2d %zmm16, %zmm1, %zmm31
16774 ; AVX512-FCP-NEXT:    vpermt2d %zmm16, %zmm0, %zmm23
16775 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm23, %zmm16
16776 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm27, %zmm29
16777 ; AVX512-FCP-NEXT:    vpermt2d %zmm20, %zmm1, %zmm29
16778 ; AVX512-FCP-NEXT:    vpermt2d %zmm20, %zmm0, %zmm27
16779 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm27, %zmm26
16780 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm10, %zmm2
16781 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm10, %zmm5
16782 ; AVX512-FCP-NEXT:    vpermt2d %zmm17, %zmm1, %zmm5
16783 ; AVX512-FCP-NEXT:    vpermt2d %zmm17, %zmm0, %zmm2
16784 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16785 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm4
16786 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
16787 ; AVX512-FCP-NEXT:    vpermt2d %zmm2, %zmm1, %zmm4
16788 ; AVX512-FCP-NEXT:    vpermt2d %zmm2, %zmm0, %zmm6
16789 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm15
16790 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
16791 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm23
16792 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
16793 ; AVX512-FCP-NEXT:    vpermt2d %zmm2, %zmm1, %zmm23
16794 ; AVX512-FCP-NEXT:    vpermt2d %zmm2, %zmm0, %zmm3
16795 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm17
16796 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
16797 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm24
16798 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
16799 ; AVX512-FCP-NEXT:    vpermt2d %zmm2, %zmm1, %zmm24
16800 ; AVX512-FCP-NEXT:    vpermt2d %zmm2, %zmm0, %zmm3
16801 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm27
16802 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
16803 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, %zmm13
16804 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
16805 ; AVX512-FCP-NEXT:    vpermt2d %zmm3, %zmm1, %zmm13
16806 ; AVX512-FCP-NEXT:    vpermt2d %zmm3, %zmm0, %zmm12
16807 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
16808 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm10, %zmm3
16809 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16810 ; AVX512-FCP-NEXT:    vpermt2d %zmm6, %zmm1, %zmm3
16811 ; AVX512-FCP-NEXT:    vpermt2d %zmm6, %zmm0, %zmm10
16812 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm21, %zmm6
16813 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm21, %zmm20
16814 ; AVX512-FCP-NEXT:    vpermt2d %zmm25, %zmm1, %zmm20
16815 ; AVX512-FCP-NEXT:    vpermt2d %zmm25, %zmm0, %zmm6
16816 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm21
16817 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm22, %zmm25
16818 ; AVX512-FCP-NEXT:    vpermt2d %zmm14, %zmm1, %zmm25
16819 ; AVX512-FCP-NEXT:    vpermt2d %zmm14, %zmm0, %zmm22
16820 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
16821 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, %zmm14
16822 ; AVX512-FCP-NEXT:    vpermt2d %zmm18, %zmm1, %zmm14
16823 ; AVX512-FCP-NEXT:    vpermt2d %zmm18, %zmm0, %zmm7
16824 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
16825 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16826 ; AVX512-FCP-NEXT:    vpermi2d %zmm6, %zmm2, %zmm1
16827 ; AVX512-FCP-NEXT:    vpermt2d %zmm6, %zmm0, %zmm2
16828 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm6
16829 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm13[4,5,6,7]
16830 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm23, %zmm24 {%k1}
16831 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm24, %zmm0
16832 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm2 = ymm8[0,1,2,3],ymm9[4,5,6,7]
16833 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm30, %zmm11 {%k1}
16834 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm2, %zmm11, %zmm2
16835 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm5[4,5,6,7]
16836 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm31, %zmm29 {%k1}
16837 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm29, %zmm3
16838 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm20, %zmm25 {%k1}
16839 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm14[4,5,6,7]
16840 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm25, %zmm1
16841 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm19, %zmm28 {%k1}
16842 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
16843 ; AVX512-FCP-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload
16844 ; AVX512-FCP-NEXT:    # ymm4 = ymm4[0,1,2,3],mem[4,5,6,7]
16845 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm28, %zmm4
16846 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, %zmm26 {%k1}
16847 ; AVX512-FCP-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm5 # 32-byte Folded Reload
16848 ; AVX512-FCP-NEXT:    # ymm5 = ymm15[0,1,2,3],mem[4,5,6,7]
16849 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm5, %zmm26, %zmm5
16850 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm17, %zmm27 {%k1}
16851 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm8 = ymm10[0,1,2,3],ymm12[4,5,6,7]
16852 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm8, %zmm27, %zmm9
16853 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm21, %zmm22 {%k1}
16854 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm7 = ymm6[0,1,2,3],ymm7[4,5,6,7]
16855 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm7, %zmm22, %zmm7
16856 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
16857 ; AVX512-FCP-NEXT:    vmovaps %zmm8, 192(%rsi)
16858 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
16859 ; AVX512-FCP-NEXT:    vmovaps %zmm8, 128(%rsi)
16860 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
16861 ; AVX512-FCP-NEXT:    vmovaps %zmm8, 64(%rsi)
16862 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16863 ; AVX512-FCP-NEXT:    vmovaps %zmm6, (%rsi)
16864 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16865 ; AVX512-FCP-NEXT:    vmovaps %zmm6, 192(%rdx)
16866 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16867 ; AVX512-FCP-NEXT:    vmovaps %zmm6, (%rdx)
16868 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16869 ; AVX512-FCP-NEXT:    vmovaps %zmm6, 64(%rdx)
16870 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16871 ; AVX512-FCP-NEXT:    vmovaps %zmm6, 128(%rdx)
16872 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16873 ; AVX512-FCP-NEXT:    vmovaps %zmm6, 192(%rcx)
16874 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16875 ; AVX512-FCP-NEXT:    vmovaps %zmm6, (%rcx)
16876 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16877 ; AVX512-FCP-NEXT:    vmovaps %zmm6, 64(%rcx)
16878 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16879 ; AVX512-FCP-NEXT:    vmovaps %zmm6, 128(%rcx)
16880 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16881 ; AVX512-FCP-NEXT:    vmovaps %zmm6, 192(%r8)
16882 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16883 ; AVX512-FCP-NEXT:    vmovaps %zmm6, (%r8)
16884 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16885 ; AVX512-FCP-NEXT:    vmovaps %zmm6, 64(%r8)
16886 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16887 ; AVX512-FCP-NEXT:    vmovaps %zmm6, 128(%r8)
16888 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16889 ; AVX512-FCP-NEXT:    vmovaps %zmm6, 192(%r9)
16890 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16891 ; AVX512-FCP-NEXT:    vmovaps %zmm6, (%r9)
16892 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16893 ; AVX512-FCP-NEXT:    vmovaps %zmm6, 64(%r9)
16894 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16895 ; AVX512-FCP-NEXT:    vmovaps %zmm6, 128(%r9)
16896 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
16897 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16898 ; AVX512-FCP-NEXT:    vmovaps %zmm6, 192(%rax)
16899 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16900 ; AVX512-FCP-NEXT:    vmovaps %zmm6, (%rax)
16901 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16902 ; AVX512-FCP-NEXT:    vmovaps %zmm6, 64(%rax)
16903 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
16904 ; AVX512-FCP-NEXT:    vmovaps %zmm6, 128(%rax)
16905 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
16906 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, 192(%rax)
16907 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, (%rax)
16908 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, 64(%rax)
16909 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, 128(%rax)
16910 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
16911 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm9, 128(%rax)
16912 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, 192(%rax)
16913 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, (%rax)
16914 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, 64(%rax)
16915 ; AVX512-FCP-NEXT:    addq $3144, %rsp # imm = 0xC48
16916 ; AVX512-FCP-NEXT:    vzeroupper
16917 ; AVX512-FCP-NEXT:    retq
16919 ; AVX512DQ-LABEL: load_i32_stride8_vf64:
16920 ; AVX512DQ:       # %bb.0:
16921 ; AVX512DQ-NEXT:    subq $3144, %rsp # imm = 0xC48
16922 ; AVX512DQ-NEXT:    vmovdqa64 320(%rdi), %zmm11
16923 ; AVX512DQ-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16924 ; AVX512DQ-NEXT:    vmovdqa64 448(%rdi), %zmm18
16925 ; AVX512DQ-NEXT:    vmovdqa64 1600(%rdi), %zmm31
16926 ; AVX512DQ-NEXT:    vmovaps 1536(%rdi), %zmm0
16927 ; AVX512DQ-NEXT:    vmovups %zmm0, (%rsp) # 64-byte Spill
16928 ; AVX512DQ-NEXT:    vmovdqa64 1728(%rdi), %zmm24
16929 ; AVX512DQ-NEXT:    vmovdqu64 %zmm24, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16930 ; AVX512DQ-NEXT:    vmovaps 1664(%rdi), %zmm0
16931 ; AVX512DQ-NEXT:    vmovups %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16932 ; AVX512DQ-NEXT:    vmovdqa64 1856(%rdi), %zmm21
16933 ; AVX512DQ-NEXT:    vmovdqa64 1792(%rdi), %zmm26
16934 ; AVX512DQ-NEXT:    vmovdqa64 1984(%rdi), %zmm22
16935 ; AVX512DQ-NEXT:    vmovdqa64 1920(%rdi), %zmm5
16936 ; AVX512DQ-NEXT:    vmovdqa64 1088(%rdi), %zmm13
16937 ; AVX512DQ-NEXT:    vmovdqa64 1024(%rdi), %zmm3
16938 ; AVX512DQ-NEXT:    vmovdqa64 1216(%rdi), %zmm30
16939 ; AVX512DQ-NEXT:    vmovdqa64 1152(%rdi), %zmm2
16940 ; AVX512DQ-NEXT:    vmovdqa64 1344(%rdi), %zmm29
16941 ; AVX512DQ-NEXT:    vmovdqa64 1280(%rdi), %zmm27
16942 ; AVX512DQ-NEXT:    vmovdqa64 1472(%rdi), %zmm20
16943 ; AVX512DQ-NEXT:    vmovdqa64 1408(%rdi), %zmm10
16944 ; AVX512DQ-NEXT:    vmovdqa64 576(%rdi), %zmm25
16945 ; AVX512DQ-NEXT:    vmovdqa64 512(%rdi), %zmm7
16946 ; AVX512DQ-NEXT:    vmovdqa64 704(%rdi), %zmm9
16947 ; AVX512DQ-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16948 ; AVX512DQ-NEXT:    vmovdqa64 640(%rdi), %zmm12
16949 ; AVX512DQ-NEXT:    vmovdqa64 832(%rdi), %zmm6
16950 ; AVX512DQ-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16951 ; AVX512DQ-NEXT:    vmovdqa64 768(%rdi), %zmm28
16952 ; AVX512DQ-NEXT:    vmovdqa64 960(%rdi), %zmm23
16953 ; AVX512DQ-NEXT:    vmovdqa64 896(%rdi), %zmm4
16954 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [0,8,16,24,0,8,16,24,0,8,16,24,0,8,16,24]
16955 ; AVX512DQ-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
16956 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm1
16957 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm16
16958 ; AVX512DQ-NEXT:    vpermt2d %zmm23, %zmm0, %zmm1
16959 ; AVX512DQ-NEXT:    vmovdqa64 %zmm28, %zmm4
16960 ; AVX512DQ-NEXT:    vpermt2d %zmm6, %zmm0, %zmm4
16961 ; AVX512DQ-NEXT:    movb $-64, %al
16962 ; AVX512DQ-NEXT:    kmovw %eax, %k1
16963 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
16964 ; AVX512DQ-NEXT:    vmovdqa64 %zmm12, %zmm1
16965 ; AVX512DQ-NEXT:    vmovdqa64 %zmm12, %zmm15
16966 ; AVX512DQ-NEXT:    vpermt2d %zmm9, %zmm0, %zmm1
16967 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, %zmm12
16968 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, %zmm9
16969 ; AVX512DQ-NEXT:    vpermt2d %zmm25, %zmm0, %zmm12
16970 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
16971 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
16972 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16973 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, %zmm1
16974 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, %zmm6
16975 ; AVX512DQ-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16976 ; AVX512DQ-NEXT:    vpermt2d %zmm20, %zmm0, %zmm1
16977 ; AVX512DQ-NEXT:    vmovdqa64 %zmm27, %zmm4
16978 ; AVX512DQ-NEXT:    vpermt2d %zmm29, %zmm0, %zmm4
16979 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
16980 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm1
16981 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm8
16982 ; AVX512DQ-NEXT:    vpermt2d %zmm30, %zmm0, %zmm1
16983 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm10
16984 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm12
16985 ; AVX512DQ-NEXT:    vpermt2d %zmm13, %zmm0, %zmm12
16986 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
16987 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
16988 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16989 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm14
16990 ; AVX512DQ-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16991 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm1
16992 ; AVX512DQ-NEXT:    vpermt2d %zmm22, %zmm0, %zmm1
16993 ; AVX512DQ-NEXT:    vmovdqa64 %zmm22, %zmm17
16994 ; AVX512DQ-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16995 ; AVX512DQ-NEXT:    vmovdqa64 %zmm26, %zmm4
16996 ; AVX512DQ-NEXT:    vpermt2d %zmm21, %zmm0, %zmm4
16997 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
16998 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
16999 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm1
17000 ; AVX512DQ-NEXT:    vpermt2d %zmm24, %zmm0, %zmm1
17001 ; AVX512DQ-NEXT:    vmovdqu64 (%rsp), %zmm2 # 64-byte Reload
17002 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm12
17003 ; AVX512DQ-NEXT:    vmovdqa64 %zmm31, %zmm24
17004 ; AVX512DQ-NEXT:    vpermt2d %zmm31, %zmm0, %zmm12
17005 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
17006 ; AVX512DQ-NEXT:    vmovdqa64 384(%rdi), %zmm5
17007 ; AVX512DQ-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17008 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
17009 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17010 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm1
17011 ; AVX512DQ-NEXT:    vpermt2d %zmm18, %zmm0, %zmm1
17012 ; AVX512DQ-NEXT:    vmovdqa64 256(%rdi), %zmm22
17013 ; AVX512DQ-NEXT:    vmovdqa64 %zmm22, %zmm4
17014 ; AVX512DQ-NEXT:    vpermt2d %zmm11, %zmm0, %zmm4
17015 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
17016 ; AVX512DQ-NEXT:    vmovdqa64 128(%rdi), %zmm1
17017 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17018 ; AVX512DQ-NEXT:    vmovdqa64 192(%rdi), %zmm5
17019 ; AVX512DQ-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17020 ; AVX512DQ-NEXT:    vpermt2d %zmm5, %zmm0, %zmm1
17021 ; AVX512DQ-NEXT:    vmovdqa64 (%rdi), %zmm7
17022 ; AVX512DQ-NEXT:    vmovdqa64 64(%rdi), %zmm19
17023 ; AVX512DQ-NEXT:    vpermi2d %zmm19, %zmm7, %zmm0
17024 ; AVX512DQ-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17025 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
17026 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
17027 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17028 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [1,9,17,25,1,9,17,25,1,9,17,25,1,9,17,25]
17029 ; AVX512DQ-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
17030 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm1
17031 ; AVX512DQ-NEXT:    vpermt2d %zmm20, %zmm0, %zmm1
17032 ; AVX512DQ-NEXT:    vmovdqa64 %zmm27, %zmm4
17033 ; AVX512DQ-NEXT:    vmovdqu64 %zmm29, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17034 ; AVX512DQ-NEXT:    vpermt2d %zmm29, %zmm0, %zmm4
17035 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
17036 ; AVX512DQ-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17037 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm1
17038 ; AVX512DQ-NEXT:    vmovdqa64 %zmm30, %zmm31
17039 ; AVX512DQ-NEXT:    vpermt2d %zmm30, %zmm0, %zmm1
17040 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, %zmm12
17041 ; AVX512DQ-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17042 ; AVX512DQ-NEXT:    vmovdqa64 %zmm13, %zmm30
17043 ; AVX512DQ-NEXT:    vpermt2d %zmm13, %zmm0, %zmm12
17044 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
17045 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
17046 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17047 ; AVX512DQ-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17048 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm1
17049 ; AVX512DQ-NEXT:    vpermt2d %zmm23, %zmm0, %zmm1
17050 ; AVX512DQ-NEXT:    vmovdqa64 %zmm28, %zmm4
17051 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
17052 ; AVX512DQ-NEXT:    vpermt2d %zmm5, %zmm0, %zmm4
17053 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
17054 ; AVX512DQ-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17055 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, %zmm1
17056 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
17057 ; AVX512DQ-NEXT:    vpermt2d %zmm13, %zmm0, %zmm1
17058 ; AVX512DQ-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17059 ; AVX512DQ-NEXT:    vmovdqa64 %zmm9, %zmm12
17060 ; AVX512DQ-NEXT:    vpermt2d %zmm25, %zmm0, %zmm12
17061 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
17062 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
17063 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17064 ; AVX512DQ-NEXT:    vmovdqa64 %zmm14, %zmm1
17065 ; AVX512DQ-NEXT:    vpermt2d %zmm17, %zmm0, %zmm1
17066 ; AVX512DQ-NEXT:    vmovdqa64 %zmm26, %zmm4
17067 ; AVX512DQ-NEXT:    vpermt2d %zmm21, %zmm0, %zmm4
17068 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
17069 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm1
17070 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
17071 ; AVX512DQ-NEXT:    vpermt2d %zmm3, %zmm0, %zmm1
17072 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm12
17073 ; AVX512DQ-NEXT:    vpermt2d %zmm24, %zmm0, %zmm12
17074 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
17075 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
17076 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17077 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
17078 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm1
17079 ; AVX512DQ-NEXT:    vpermt2d %zmm18, %zmm0, %zmm1
17080 ; AVX512DQ-NEXT:    vmovdqa64 %zmm22, %zmm4
17081 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
17082 ; AVX512DQ-NEXT:    vpermt2d %zmm2, %zmm0, %zmm4
17083 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
17084 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
17085 ; AVX512DQ-NEXT:    vmovdqa64 %zmm14, %zmm1
17086 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
17087 ; AVX512DQ-NEXT:    vpermt2d %zmm11, %zmm0, %zmm1
17088 ; AVX512DQ-NEXT:    vpermi2d %zmm19, %zmm7, %zmm0
17089 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
17090 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
17091 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17092 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [2,10,18,26,2,10,18,26,2,10,18,26,2,10,18,26]
17093 ; AVX512DQ-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
17094 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
17095 ; AVX512DQ-NEXT:    vmovdqa64 %zmm17, %zmm1
17096 ; AVX512DQ-NEXT:    vpermt2d %zmm20, %zmm0, %zmm1
17097 ; AVX512DQ-NEXT:    vmovdqa64 %zmm27, %zmm4
17098 ; AVX512DQ-NEXT:    vpermt2d %zmm29, %zmm0, %zmm4
17099 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
17100 ; AVX512DQ-NEXT:    vpermt2d %zmm31, %zmm0, %zmm8
17101 ; AVX512DQ-NEXT:    vpermt2d %zmm30, %zmm0, %zmm10
17102 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm1 = ymm10[0,1,2,3],ymm8[4,5,6,7]
17103 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
17104 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17105 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm1
17106 ; AVX512DQ-NEXT:    vpermt2d %zmm23, %zmm0, %zmm1
17107 ; AVX512DQ-NEXT:    vmovdqa64 %zmm28, %zmm4
17108 ; AVX512DQ-NEXT:    vpermt2d %zmm5, %zmm0, %zmm4
17109 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
17110 ; AVX512DQ-NEXT:    vpermt2d %zmm13, %zmm0, %zmm15
17111 ; AVX512DQ-NEXT:    vmovdqa64 %zmm13, %zmm16
17112 ; AVX512DQ-NEXT:    vpermt2d %zmm25, %zmm0, %zmm9
17113 ; AVX512DQ-NEXT:    vmovdqa64 %zmm25, %zmm29
17114 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm1 = ymm9[0,1,2,3],ymm15[4,5,6,7]
17115 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
17116 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17117 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
17118 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm1
17119 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
17120 ; AVX512DQ-NEXT:    vpermt2d %zmm10, %zmm0, %zmm1
17121 ; AVX512DQ-NEXT:    vmovdqu64 %zmm26, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17122 ; AVX512DQ-NEXT:    vmovdqa64 %zmm26, %zmm4
17123 ; AVX512DQ-NEXT:    vmovdqa64 %zmm21, %zmm7
17124 ; AVX512DQ-NEXT:    vpermt2d %zmm21, %zmm0, %zmm4
17125 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
17126 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
17127 ; AVX512DQ-NEXT:    vmovdqa64 %zmm9, %zmm1
17128 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm25
17129 ; AVX512DQ-NEXT:    vpermt2d %zmm3, %zmm0, %zmm1
17130 ; AVX512DQ-NEXT:    vmovdqu64 (%rsp), %zmm3 # 64-byte Reload
17131 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm12
17132 ; AVX512DQ-NEXT:    vmovdqa64 %zmm24, %zmm15
17133 ; AVX512DQ-NEXT:    vpermt2d %zmm24, %zmm0, %zmm12
17134 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
17135 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
17136 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17137 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm13
17138 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm1
17139 ; AVX512DQ-NEXT:    vpermt2d %zmm18, %zmm0, %zmm1
17140 ; AVX512DQ-NEXT:    vmovdqa64 %zmm22, %zmm4
17141 ; AVX512DQ-NEXT:    vpermt2d %zmm2, %zmm0, %zmm4
17142 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
17143 ; AVX512DQ-NEXT:    vmovdqa64 %zmm14, %zmm6
17144 ; AVX512DQ-NEXT:    vmovdqa64 %zmm14, %zmm1
17145 ; AVX512DQ-NEXT:    vpermt2d %zmm11, %zmm0, %zmm1
17146 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, %zmm24
17147 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
17148 ; AVX512DQ-NEXT:    vpermi2d %zmm19, %zmm14, %zmm0
17149 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
17150 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
17151 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17152 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [3,11,19,27,3,11,19,27,3,11,19,27,3,11,19,27]
17153 ; AVX512DQ-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
17154 ; AVX512DQ-NEXT:    vmovdqa64 %zmm17, %zmm1
17155 ; AVX512DQ-NEXT:    vpermt2d %zmm20, %zmm0, %zmm1
17156 ; AVX512DQ-NEXT:    vmovdqa64 %zmm27, %zmm4
17157 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
17158 ; AVX512DQ-NEXT:    vpermt2d %zmm2, %zmm0, %zmm4
17159 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
17160 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
17161 ; AVX512DQ-NEXT:    vmovdqa64 %zmm31, %zmm21
17162 ; AVX512DQ-NEXT:    vpermt2d %zmm31, %zmm0, %zmm1
17163 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
17164 ; AVX512DQ-NEXT:    vpermt2d %zmm30, %zmm0, %zmm12
17165 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
17166 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
17167 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17168 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
17169 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, %zmm1
17170 ; AVX512DQ-NEXT:    vmovdqu64 %zmm23, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17171 ; AVX512DQ-NEXT:    vpermt2d %zmm23, %zmm0, %zmm1
17172 ; AVX512DQ-NEXT:    vmovdqa64 %zmm28, %zmm4
17173 ; AVX512DQ-NEXT:    vpermt2d %zmm5, %zmm0, %zmm4
17174 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm31
17175 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
17176 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
17177 ; AVX512DQ-NEXT:    vpermt2d %zmm16, %zmm0, %zmm1
17178 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
17179 ; AVX512DQ-NEXT:    vpermt2d %zmm29, %zmm0, %zmm12
17180 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
17181 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
17182 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17183 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm1
17184 ; AVX512DQ-NEXT:    vpermt2d %zmm10, %zmm0, %zmm1
17185 ; AVX512DQ-NEXT:    vmovdqa64 %zmm26, %zmm4
17186 ; AVX512DQ-NEXT:    vpermt2d %zmm7, %zmm0, %zmm4
17187 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, %zmm26
17188 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
17189 ; AVX512DQ-NEXT:    vmovdqa64 %zmm9, %zmm1
17190 ; AVX512DQ-NEXT:    vmovdqa64 %zmm25, %zmm9
17191 ; AVX512DQ-NEXT:    vpermt2d %zmm25, %zmm0, %zmm1
17192 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm12
17193 ; AVX512DQ-NEXT:    vpermt2d %zmm15, %zmm0, %zmm12
17194 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
17195 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
17196 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17197 ; AVX512DQ-NEXT:    vmovdqa64 %zmm13, %zmm1
17198 ; AVX512DQ-NEXT:    vpermt2d %zmm18, %zmm0, %zmm1
17199 ; AVX512DQ-NEXT:    vmovdqa64 %zmm18, %zmm25
17200 ; AVX512DQ-NEXT:    vmovdqa64 %zmm22, %zmm4
17201 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
17202 ; AVX512DQ-NEXT:    vpermt2d %zmm5, %zmm0, %zmm4
17203 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
17204 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm1
17205 ; AVX512DQ-NEXT:    vmovdqa64 %zmm24, %zmm18
17206 ; AVX512DQ-NEXT:    vpermt2d %zmm24, %zmm0, %zmm1
17207 ; AVX512DQ-NEXT:    vpermi2d %zmm19, %zmm14, %zmm0
17208 ; AVX512DQ-NEXT:    vmovdqa64 %zmm19, %zmm24
17209 ; AVX512DQ-NEXT:    vmovdqa64 %zmm14, %zmm13
17210 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
17211 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
17212 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17213 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [4,12,20,28,4,12,20,28,4,12,20,28,4,12,20,28]
17214 ; AVX512DQ-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
17215 ; AVX512DQ-NEXT:    vmovdqa64 %zmm17, %zmm1
17216 ; AVX512DQ-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17217 ; AVX512DQ-NEXT:    vpermt2d %zmm20, %zmm0, %zmm1
17218 ; AVX512DQ-NEXT:    vmovdqu64 %zmm27, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17219 ; AVX512DQ-NEXT:    vmovdqa64 %zmm27, %zmm4
17220 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm3
17221 ; AVX512DQ-NEXT:    vpermt2d %zmm2, %zmm0, %zmm4
17222 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
17223 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
17224 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, %zmm1
17225 ; AVX512DQ-NEXT:    vmovdqa64 %zmm21, %zmm6
17226 ; AVX512DQ-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17227 ; AVX512DQ-NEXT:    vpermt2d %zmm21, %zmm0, %zmm1
17228 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
17229 ; AVX512DQ-NEXT:    vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17230 ; AVX512DQ-NEXT:    vpermt2d %zmm30, %zmm0, %zmm12
17231 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
17232 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
17233 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17234 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, %zmm1
17235 ; AVX512DQ-NEXT:    vpermt2d %zmm23, %zmm0, %zmm1
17236 ; AVX512DQ-NEXT:    vmovdqa64 %zmm28, %zmm4
17237 ; AVX512DQ-NEXT:    vpermt2d %zmm31, %zmm0, %zmm4
17238 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
17239 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
17240 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm1
17241 ; AVX512DQ-NEXT:    vpermt2d %zmm16, %zmm0, %zmm1
17242 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
17243 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm12
17244 ; AVX512DQ-NEXT:    vmovdqa64 %zmm29, %zmm11
17245 ; AVX512DQ-NEXT:    vpermt2d %zmm29, %zmm0, %zmm12
17246 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
17247 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
17248 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17249 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm23 # 64-byte Reload
17250 ; AVX512DQ-NEXT:    vmovdqa64 %zmm23, %zmm1
17251 ; AVX512DQ-NEXT:    vpermt2d %zmm10, %zmm0, %zmm1
17252 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, %zmm31
17253 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
17254 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, %zmm4
17255 ; AVX512DQ-NEXT:    vmovdqa64 %zmm26, %zmm19
17256 ; AVX512DQ-NEXT:    vpermt2d %zmm26, %zmm0, %zmm4
17257 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
17258 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
17259 ; AVX512DQ-NEXT:    vpermt2d %zmm9, %zmm0, %zmm1
17260 ; AVX512DQ-NEXT:    vmovdqa64 %zmm9, %zmm26
17261 ; AVX512DQ-NEXT:    vmovdqu64 (%rsp), %zmm12 # 64-byte Reload
17262 ; AVX512DQ-NEXT:    vpermt2d %zmm15, %zmm0, %zmm12
17263 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, %zmm29
17264 ; AVX512DQ-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17265 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
17266 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
17267 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17268 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm21 # 64-byte Reload
17269 ; AVX512DQ-NEXT:    vmovdqa64 %zmm21, %zmm1
17270 ; AVX512DQ-NEXT:    vpermt2d %zmm25, %zmm0, %zmm1
17271 ; AVX512DQ-NEXT:    vmovdqa64 %zmm22, %zmm4
17272 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm14
17273 ; AVX512DQ-NEXT:    vpermt2d %zmm5, %zmm0, %zmm4
17274 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
17275 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
17276 ; AVX512DQ-NEXT:    vmovdqa64 %zmm9, %zmm1
17277 ; AVX512DQ-NEXT:    vpermt2d %zmm18, %zmm0, %zmm1
17278 ; AVX512DQ-NEXT:    vmovdqa64 %zmm13, %zmm5
17279 ; AVX512DQ-NEXT:    vmovdqa64 %zmm24, %zmm13
17280 ; AVX512DQ-NEXT:    vmovdqu64 %zmm24, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17281 ; AVX512DQ-NEXT:    vpermi2d %zmm24, %zmm5, %zmm0
17282 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
17283 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
17284 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17285 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [5,13,21,29,5,13,21,29,5,13,21,29,5,13,21,29]
17286 ; AVX512DQ-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
17287 ; AVX512DQ-NEXT:    vpermt2d %zmm20, %zmm0, %zmm17
17288 ; AVX512DQ-NEXT:    vpermt2d %zmm3, %zmm0, %zmm27
17289 ; AVX512DQ-NEXT:    vmovdqa64 %zmm17, %zmm27 {%k1}
17290 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, %zmm1
17291 ; AVX512DQ-NEXT:    vpermt2d %zmm6, %zmm0, %zmm1
17292 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
17293 ; AVX512DQ-NEXT:    vpermt2d %zmm30, %zmm0, %zmm12
17294 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
17295 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm1, %zmm27, %zmm1
17296 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17297 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm24 # 64-byte Reload
17298 ; AVX512DQ-NEXT:    vmovdqa64 %zmm24, %zmm1
17299 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
17300 ; AVX512DQ-NEXT:    vpermt2d %zmm3, %zmm0, %zmm1
17301 ; AVX512DQ-NEXT:    vmovdqa64 %zmm28, %zmm4
17302 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
17303 ; AVX512DQ-NEXT:    vpermt2d %zmm7, %zmm0, %zmm4
17304 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
17305 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm1
17306 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm15
17307 ; AVX512DQ-NEXT:    vpermt2d %zmm16, %zmm0, %zmm1
17308 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm8
17309 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm12
17310 ; AVX512DQ-NEXT:    vpermt2d %zmm11, %zmm0, %zmm12
17311 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, %zmm2
17312 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
17313 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
17314 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17315 ; AVX512DQ-NEXT:    vmovdqa64 %zmm23, %zmm1
17316 ; AVX512DQ-NEXT:    vpermt2d %zmm31, %zmm0, %zmm1
17317 ; AVX512DQ-NEXT:    vmovdqa64 %zmm31, %zmm16
17318 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, %zmm4
17319 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, %zmm27
17320 ; AVX512DQ-NEXT:    vpermt2d %zmm19, %zmm0, %zmm4
17321 ; AVX512DQ-NEXT:    vmovdqa64 %zmm19, %zmm20
17322 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
17323 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
17324 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, %zmm1
17325 ; AVX512DQ-NEXT:    vpermt2d %zmm26, %zmm0, %zmm1
17326 ; AVX512DQ-NEXT:    vmovdqa64 %zmm26, %zmm17
17327 ; AVX512DQ-NEXT:    vmovdqu64 (%rsp), %zmm6 # 64-byte Reload
17328 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm12
17329 ; AVX512DQ-NEXT:    vpermt2d %zmm29, %zmm0, %zmm12
17330 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
17331 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
17332 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17333 ; AVX512DQ-NEXT:    vmovdqa64 %zmm21, %zmm1
17334 ; AVX512DQ-NEXT:    vpermt2d %zmm25, %zmm0, %zmm1
17335 ; AVX512DQ-NEXT:    vmovdqa64 %zmm22, %zmm4
17336 ; AVX512DQ-NEXT:    vpermt2d %zmm14, %zmm0, %zmm4
17337 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
17338 ; AVX512DQ-NEXT:    vmovdqa64 %zmm9, %zmm1
17339 ; AVX512DQ-NEXT:    vpermt2d %zmm18, %zmm0, %zmm1
17340 ; AVX512DQ-NEXT:    vpermi2d %zmm13, %zmm5, %zmm0
17341 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
17342 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
17343 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17344 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm1 = [6,14,22,30,6,14,22,30,6,14,22,30,6,14,22,30]
17345 ; AVX512DQ-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
17346 ; AVX512DQ-NEXT:    vmovdqa64 %zmm24, %zmm4
17347 ; AVX512DQ-NEXT:    vmovdqa64 %zmm24, %zmm30
17348 ; AVX512DQ-NEXT:    vpermt2d %zmm3, %zmm1, %zmm30
17349 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [7,15,23,31,7,15,23,31,7,15,23,31,7,15,23,31]
17350 ; AVX512DQ-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
17351 ; AVX512DQ-NEXT:    vpermt2d %zmm3, %zmm0, %zmm4
17352 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm19
17353 ; AVX512DQ-NEXT:    vmovdqa64 %zmm28, %zmm11
17354 ; AVX512DQ-NEXT:    vpermt2d %zmm7, %zmm1, %zmm11
17355 ; AVX512DQ-NEXT:    vpermt2d %zmm7, %zmm0, %zmm28
17356 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, %zmm9
17357 ; AVX512DQ-NEXT:    vpermt2d %zmm8, %zmm1, %zmm9
17358 ; AVX512DQ-NEXT:    vpermt2d %zmm8, %zmm0, %zmm15
17359 ; AVX512DQ-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17360 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
17361 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm8
17362 ; AVX512DQ-NEXT:    vpermt2d %zmm2, %zmm1, %zmm8
17363 ; AVX512DQ-NEXT:    vpermt2d %zmm2, %zmm0, %zmm3
17364 ; AVX512DQ-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17365 ; AVX512DQ-NEXT:    vmovdqa64 %zmm23, %zmm31
17366 ; AVX512DQ-NEXT:    vpermt2d %zmm16, %zmm1, %zmm31
17367 ; AVX512DQ-NEXT:    vpermt2d %zmm16, %zmm0, %zmm23
17368 ; AVX512DQ-NEXT:    vmovdqa64 %zmm23, %zmm16
17369 ; AVX512DQ-NEXT:    vmovdqa64 %zmm27, %zmm29
17370 ; AVX512DQ-NEXT:    vpermt2d %zmm20, %zmm1, %zmm29
17371 ; AVX512DQ-NEXT:    vpermt2d %zmm20, %zmm0, %zmm27
17372 ; AVX512DQ-NEXT:    vmovdqa64 %zmm27, %zmm26
17373 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, %zmm2
17374 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, %zmm5
17375 ; AVX512DQ-NEXT:    vpermt2d %zmm17, %zmm1, %zmm5
17376 ; AVX512DQ-NEXT:    vpermt2d %zmm17, %zmm0, %zmm2
17377 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17378 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm4
17379 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
17380 ; AVX512DQ-NEXT:    vpermt2d %zmm2, %zmm1, %zmm4
17381 ; AVX512DQ-NEXT:    vpermt2d %zmm2, %zmm0, %zmm6
17382 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm15
17383 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
17384 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm23
17385 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
17386 ; AVX512DQ-NEXT:    vpermt2d %zmm2, %zmm1, %zmm23
17387 ; AVX512DQ-NEXT:    vpermt2d %zmm2, %zmm0, %zmm3
17388 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm17
17389 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
17390 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm24
17391 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
17392 ; AVX512DQ-NEXT:    vpermt2d %zmm2, %zmm1, %zmm24
17393 ; AVX512DQ-NEXT:    vpermt2d %zmm2, %zmm0, %zmm3
17394 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm27
17395 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
17396 ; AVX512DQ-NEXT:    vmovdqa64 %zmm12, %zmm13
17397 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
17398 ; AVX512DQ-NEXT:    vpermt2d %zmm3, %zmm1, %zmm13
17399 ; AVX512DQ-NEXT:    vpermt2d %zmm3, %zmm0, %zmm12
17400 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
17401 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, %zmm3
17402 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
17403 ; AVX512DQ-NEXT:    vpermt2d %zmm6, %zmm1, %zmm3
17404 ; AVX512DQ-NEXT:    vpermt2d %zmm6, %zmm0, %zmm10
17405 ; AVX512DQ-NEXT:    vmovdqa64 %zmm21, %zmm6
17406 ; AVX512DQ-NEXT:    vmovdqa64 %zmm21, %zmm20
17407 ; AVX512DQ-NEXT:    vpermt2d %zmm25, %zmm1, %zmm20
17408 ; AVX512DQ-NEXT:    vpermt2d %zmm25, %zmm0, %zmm6
17409 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm21
17410 ; AVX512DQ-NEXT:    vmovdqa64 %zmm22, %zmm25
17411 ; AVX512DQ-NEXT:    vpermt2d %zmm14, %zmm1, %zmm25
17412 ; AVX512DQ-NEXT:    vpermt2d %zmm14, %zmm0, %zmm22
17413 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
17414 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, %zmm14
17415 ; AVX512DQ-NEXT:    vpermt2d %zmm18, %zmm1, %zmm14
17416 ; AVX512DQ-NEXT:    vpermt2d %zmm18, %zmm0, %zmm7
17417 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
17418 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
17419 ; AVX512DQ-NEXT:    vpermi2d %zmm6, %zmm2, %zmm1
17420 ; AVX512DQ-NEXT:    vpermt2d %zmm6, %zmm0, %zmm2
17421 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm6
17422 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm13[4,5,6,7]
17423 ; AVX512DQ-NEXT:    vmovdqa64 %zmm23, %zmm24 {%k1}
17424 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm0, %zmm24, %zmm0
17425 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm2 = ymm8[0,1,2,3],ymm9[4,5,6,7]
17426 ; AVX512DQ-NEXT:    vmovdqa64 %zmm30, %zmm11 {%k1}
17427 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm2, %zmm11, %zmm2
17428 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm5[4,5,6,7]
17429 ; AVX512DQ-NEXT:    vmovdqa64 %zmm31, %zmm29 {%k1}
17430 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm3, %zmm29, %zmm3
17431 ; AVX512DQ-NEXT:    vmovdqa64 %zmm20, %zmm25 {%k1}
17432 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm14[4,5,6,7]
17433 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm1, %zmm25, %zmm1
17434 ; AVX512DQ-NEXT:    vmovdqa64 %zmm19, %zmm28 {%k1}
17435 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
17436 ; AVX512DQ-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload
17437 ; AVX512DQ-NEXT:    # ymm4 = ymm4[0,1,2,3],mem[4,5,6,7]
17438 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm4, %zmm28, %zmm4
17439 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm26 {%k1}
17440 ; AVX512DQ-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm5 # 32-byte Folded Reload
17441 ; AVX512DQ-NEXT:    # ymm5 = ymm15[0,1,2,3],mem[4,5,6,7]
17442 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm5, %zmm26, %zmm5
17443 ; AVX512DQ-NEXT:    vmovdqa64 %zmm17, %zmm27 {%k1}
17444 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm8 = ymm10[0,1,2,3],ymm12[4,5,6,7]
17445 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm8, %zmm27, %zmm9
17446 ; AVX512DQ-NEXT:    vmovdqa64 %zmm21, %zmm22 {%k1}
17447 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm7 = ymm6[0,1,2,3],ymm7[4,5,6,7]
17448 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm7, %zmm22, %zmm7
17449 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
17450 ; AVX512DQ-NEXT:    vmovaps %zmm8, 192(%rsi)
17451 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
17452 ; AVX512DQ-NEXT:    vmovaps %zmm8, 128(%rsi)
17453 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
17454 ; AVX512DQ-NEXT:    vmovaps %zmm8, 64(%rsi)
17455 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
17456 ; AVX512DQ-NEXT:    vmovaps %zmm6, (%rsi)
17457 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
17458 ; AVX512DQ-NEXT:    vmovaps %zmm6, 192(%rdx)
17459 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
17460 ; AVX512DQ-NEXT:    vmovaps %zmm6, (%rdx)
17461 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
17462 ; AVX512DQ-NEXT:    vmovaps %zmm6, 64(%rdx)
17463 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
17464 ; AVX512DQ-NEXT:    vmovaps %zmm6, 128(%rdx)
17465 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
17466 ; AVX512DQ-NEXT:    vmovaps %zmm6, 192(%rcx)
17467 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
17468 ; AVX512DQ-NEXT:    vmovaps %zmm6, (%rcx)
17469 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
17470 ; AVX512DQ-NEXT:    vmovaps %zmm6, 64(%rcx)
17471 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
17472 ; AVX512DQ-NEXT:    vmovaps %zmm6, 128(%rcx)
17473 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
17474 ; AVX512DQ-NEXT:    vmovaps %zmm6, 192(%r8)
17475 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
17476 ; AVX512DQ-NEXT:    vmovaps %zmm6, (%r8)
17477 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
17478 ; AVX512DQ-NEXT:    vmovaps %zmm6, 64(%r8)
17479 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
17480 ; AVX512DQ-NEXT:    vmovaps %zmm6, 128(%r8)
17481 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
17482 ; AVX512DQ-NEXT:    vmovaps %zmm6, 192(%r9)
17483 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
17484 ; AVX512DQ-NEXT:    vmovaps %zmm6, (%r9)
17485 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
17486 ; AVX512DQ-NEXT:    vmovaps %zmm6, 64(%r9)
17487 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
17488 ; AVX512DQ-NEXT:    vmovaps %zmm6, 128(%r9)
17489 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %rax
17490 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
17491 ; AVX512DQ-NEXT:    vmovaps %zmm6, 192(%rax)
17492 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
17493 ; AVX512DQ-NEXT:    vmovaps %zmm6, (%rax)
17494 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
17495 ; AVX512DQ-NEXT:    vmovaps %zmm6, 64(%rax)
17496 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
17497 ; AVX512DQ-NEXT:    vmovaps %zmm6, 128(%rax)
17498 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %rax
17499 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, 192(%rax)
17500 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, (%rax)
17501 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, 64(%rax)
17502 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, 128(%rax)
17503 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %rax
17504 ; AVX512DQ-NEXT:    vmovdqa64 %zmm9, 128(%rax)
17505 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, 192(%rax)
17506 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, (%rax)
17507 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, 64(%rax)
17508 ; AVX512DQ-NEXT:    addq $3144, %rsp # imm = 0xC48
17509 ; AVX512DQ-NEXT:    vzeroupper
17510 ; AVX512DQ-NEXT:    retq
17512 ; AVX512DQ-FCP-LABEL: load_i32_stride8_vf64:
17513 ; AVX512DQ-FCP:       # %bb.0:
17514 ; AVX512DQ-FCP-NEXT:    subq $3144, %rsp # imm = 0xC48
17515 ; AVX512DQ-FCP-NEXT:    vmovdqa64 320(%rdi), %zmm11
17516 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17517 ; AVX512DQ-FCP-NEXT:    vmovdqa64 448(%rdi), %zmm18
17518 ; AVX512DQ-FCP-NEXT:    vmovdqa64 1600(%rdi), %zmm31
17519 ; AVX512DQ-FCP-NEXT:    vmovaps 1536(%rdi), %zmm0
17520 ; AVX512DQ-FCP-NEXT:    vmovups %zmm0, (%rsp) # 64-byte Spill
17521 ; AVX512DQ-FCP-NEXT:    vmovdqa64 1728(%rdi), %zmm24
17522 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm24, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17523 ; AVX512DQ-FCP-NEXT:    vmovaps 1664(%rdi), %zmm0
17524 ; AVX512DQ-FCP-NEXT:    vmovups %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17525 ; AVX512DQ-FCP-NEXT:    vmovdqa64 1856(%rdi), %zmm21
17526 ; AVX512DQ-FCP-NEXT:    vmovdqa64 1792(%rdi), %zmm26
17527 ; AVX512DQ-FCP-NEXT:    vmovdqa64 1984(%rdi), %zmm22
17528 ; AVX512DQ-FCP-NEXT:    vmovdqa64 1920(%rdi), %zmm5
17529 ; AVX512DQ-FCP-NEXT:    vmovdqa64 1088(%rdi), %zmm13
17530 ; AVX512DQ-FCP-NEXT:    vmovdqa64 1024(%rdi), %zmm3
17531 ; AVX512DQ-FCP-NEXT:    vmovdqa64 1216(%rdi), %zmm30
17532 ; AVX512DQ-FCP-NEXT:    vmovdqa64 1152(%rdi), %zmm2
17533 ; AVX512DQ-FCP-NEXT:    vmovdqa64 1344(%rdi), %zmm29
17534 ; AVX512DQ-FCP-NEXT:    vmovdqa64 1280(%rdi), %zmm27
17535 ; AVX512DQ-FCP-NEXT:    vmovdqa64 1472(%rdi), %zmm20
17536 ; AVX512DQ-FCP-NEXT:    vmovdqa64 1408(%rdi), %zmm10
17537 ; AVX512DQ-FCP-NEXT:    vmovdqa64 576(%rdi), %zmm25
17538 ; AVX512DQ-FCP-NEXT:    vmovdqa64 512(%rdi), %zmm7
17539 ; AVX512DQ-FCP-NEXT:    vmovdqa64 704(%rdi), %zmm9
17540 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17541 ; AVX512DQ-FCP-NEXT:    vmovdqa64 640(%rdi), %zmm12
17542 ; AVX512DQ-FCP-NEXT:    vmovdqa64 832(%rdi), %zmm6
17543 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17544 ; AVX512DQ-FCP-NEXT:    vmovdqa64 768(%rdi), %zmm28
17545 ; AVX512DQ-FCP-NEXT:    vmovdqa64 960(%rdi), %zmm23
17546 ; AVX512DQ-FCP-NEXT:    vmovdqa64 896(%rdi), %zmm4
17547 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [0,8,16,24,0,8,16,24,0,8,16,24,0,8,16,24]
17548 ; AVX512DQ-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
17549 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, %zmm1
17550 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, %zmm16
17551 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm23, %zmm0, %zmm1
17552 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm28, %zmm4
17553 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm6, %zmm0, %zmm4
17554 ; AVX512DQ-FCP-NEXT:    movb $-64, %al
17555 ; AVX512DQ-FCP-NEXT:    kmovw %eax, %k1
17556 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
17557 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm1
17558 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm15
17559 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm9, %zmm0, %zmm1
17560 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm12
17561 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm9
17562 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm25, %zmm0, %zmm12
17563 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
17564 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
17565 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17566 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, %zmm1
17567 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, %zmm6
17568 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17569 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm20, %zmm0, %zmm1
17570 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm27, %zmm4
17571 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm29, %zmm0, %zmm4
17572 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
17573 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm1
17574 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm8
17575 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm30, %zmm0, %zmm1
17576 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm10
17577 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm12
17578 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm13, %zmm0, %zmm12
17579 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
17580 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
17581 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17582 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm14
17583 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17584 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm1
17585 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm22, %zmm0, %zmm1
17586 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm22, %zmm17
17587 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17588 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm26, %zmm4
17589 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm21, %zmm0, %zmm4
17590 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
17591 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
17592 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm1
17593 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm24, %zmm0, %zmm1
17594 ; AVX512DQ-FCP-NEXT:    vmovdqu64 (%rsp), %zmm2 # 64-byte Reload
17595 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm12
17596 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm31, %zmm24
17597 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm31, %zmm0, %zmm12
17598 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
17599 ; AVX512DQ-FCP-NEXT:    vmovdqa64 384(%rdi), %zmm5
17600 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17601 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
17602 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17603 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm1
17604 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm18, %zmm0, %zmm1
17605 ; AVX512DQ-FCP-NEXT:    vmovdqa64 256(%rdi), %zmm22
17606 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm22, %zmm4
17607 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm11, %zmm0, %zmm4
17608 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
17609 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm1
17610 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17611 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm5
17612 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17613 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm5, %zmm0, %zmm1
17614 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rdi), %zmm7
17615 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm19
17616 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm19, %zmm7, %zmm0
17617 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17618 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
17619 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
17620 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17621 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [1,9,17,25,1,9,17,25,1,9,17,25,1,9,17,25]
17622 ; AVX512DQ-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
17623 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm1
17624 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm20, %zmm0, %zmm1
17625 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm27, %zmm4
17626 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm29, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17627 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm29, %zmm0, %zmm4
17628 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
17629 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17630 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm1
17631 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm30, %zmm31
17632 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm30, %zmm0, %zmm1
17633 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, %zmm12
17634 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17635 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm13, %zmm30
17636 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm13, %zmm0, %zmm12
17637 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
17638 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
17639 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17640 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17641 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm16, %zmm1
17642 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm23, %zmm0, %zmm1
17643 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm28, %zmm4
17644 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
17645 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm5, %zmm0, %zmm4
17646 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
17647 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17648 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm15, %zmm1
17649 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
17650 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm13, %zmm0, %zmm1
17651 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17652 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, %zmm12
17653 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm25, %zmm0, %zmm12
17654 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
17655 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
17656 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17657 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm14, %zmm1
17658 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm17, %zmm0, %zmm1
17659 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm26, %zmm4
17660 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm21, %zmm0, %zmm4
17661 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
17662 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm1
17663 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
17664 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm3, %zmm0, %zmm1
17665 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm12
17666 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm24, %zmm0, %zmm12
17667 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
17668 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
17669 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17670 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
17671 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm1
17672 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm18, %zmm0, %zmm1
17673 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm22, %zmm4
17674 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
17675 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm2, %zmm0, %zmm4
17676 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
17677 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
17678 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm14, %zmm1
17679 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
17680 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm11, %zmm0, %zmm1
17681 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm19, %zmm7, %zmm0
17682 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
17683 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
17684 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17685 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [2,10,18,26,2,10,18,26,2,10,18,26,2,10,18,26]
17686 ; AVX512DQ-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
17687 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
17688 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm17, %zmm1
17689 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm20, %zmm0, %zmm1
17690 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm27, %zmm4
17691 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm29, %zmm0, %zmm4
17692 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
17693 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm31, %zmm0, %zmm8
17694 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm30, %zmm0, %zmm10
17695 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm10[0,1,2,3],ymm8[4,5,6,7]
17696 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
17697 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17698 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm16, %zmm1
17699 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm23, %zmm0, %zmm1
17700 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm28, %zmm4
17701 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm5, %zmm0, %zmm4
17702 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
17703 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm13, %zmm0, %zmm15
17704 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm13, %zmm16
17705 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm25, %zmm0, %zmm9
17706 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm25, %zmm29
17707 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm9[0,1,2,3],ymm15[4,5,6,7]
17708 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
17709 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17710 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
17711 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm1
17712 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
17713 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm10, %zmm0, %zmm1
17714 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm26, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17715 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm26, %zmm4
17716 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm21, %zmm7
17717 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm21, %zmm0, %zmm4
17718 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
17719 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
17720 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, %zmm1
17721 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm25
17722 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm3, %zmm0, %zmm1
17723 ; AVX512DQ-FCP-NEXT:    vmovdqu64 (%rsp), %zmm3 # 64-byte Reload
17724 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm12
17725 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm24, %zmm15
17726 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm24, %zmm0, %zmm12
17727 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
17728 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
17729 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17730 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm13
17731 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm1
17732 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm18, %zmm0, %zmm1
17733 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm22, %zmm4
17734 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm2, %zmm0, %zmm4
17735 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
17736 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm14, %zmm6
17737 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm14, %zmm1
17738 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm11, %zmm0, %zmm1
17739 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm24
17740 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
17741 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm19, %zmm14, %zmm0
17742 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
17743 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
17744 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17745 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [3,11,19,27,3,11,19,27,3,11,19,27,3,11,19,27]
17746 ; AVX512DQ-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
17747 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm17, %zmm1
17748 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm20, %zmm0, %zmm1
17749 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm27, %zmm4
17750 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
17751 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm2, %zmm0, %zmm4
17752 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
17753 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
17754 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm31, %zmm21
17755 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm31, %zmm0, %zmm1
17756 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
17757 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm30, %zmm0, %zmm12
17758 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
17759 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
17760 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17761 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
17762 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm1
17763 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm23, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17764 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm23, %zmm0, %zmm1
17765 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm28, %zmm4
17766 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm5, %zmm0, %zmm4
17767 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm31
17768 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
17769 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
17770 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm16, %zmm0, %zmm1
17771 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
17772 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm29, %zmm0, %zmm12
17773 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
17774 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
17775 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17776 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm1
17777 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm10, %zmm0, %zmm1
17778 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm26, %zmm4
17779 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm7, %zmm0, %zmm4
17780 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm26
17781 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
17782 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, %zmm1
17783 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm25, %zmm9
17784 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm25, %zmm0, %zmm1
17785 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm12
17786 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm15, %zmm0, %zmm12
17787 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
17788 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
17789 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17790 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm13, %zmm1
17791 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm18, %zmm0, %zmm1
17792 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm18, %zmm25
17793 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm22, %zmm4
17794 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
17795 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm5, %zmm0, %zmm4
17796 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
17797 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm1
17798 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm24, %zmm18
17799 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm24, %zmm0, %zmm1
17800 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm19, %zmm14, %zmm0
17801 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm19, %zmm24
17802 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm14, %zmm13
17803 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
17804 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
17805 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17806 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [4,12,20,28,4,12,20,28,4,12,20,28,4,12,20,28]
17807 ; AVX512DQ-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
17808 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm17, %zmm1
17809 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17810 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm20, %zmm0, %zmm1
17811 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm27, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17812 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm27, %zmm4
17813 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm3
17814 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm2, %zmm0, %zmm4
17815 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
17816 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
17817 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm1
17818 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm21, %zmm6
17819 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17820 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm21, %zmm0, %zmm1
17821 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
17822 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17823 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm30, %zmm0, %zmm12
17824 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
17825 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
17826 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17827 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm1
17828 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm23, %zmm0, %zmm1
17829 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm28, %zmm4
17830 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm31, %zmm0, %zmm4
17831 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
17832 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
17833 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm1
17834 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm16, %zmm0, %zmm1
17835 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
17836 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm12
17837 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm29, %zmm11
17838 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm29, %zmm0, %zmm12
17839 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
17840 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
17841 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17842 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm23 # 64-byte Reload
17843 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm23, %zmm1
17844 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm10, %zmm0, %zmm1
17845 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, %zmm31
17846 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
17847 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, %zmm4
17848 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm26, %zmm19
17849 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm26, %zmm0, %zmm4
17850 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
17851 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
17852 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm9, %zmm0, %zmm1
17853 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, %zmm26
17854 ; AVX512DQ-FCP-NEXT:    vmovdqu64 (%rsp), %zmm12 # 64-byte Reload
17855 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm15, %zmm0, %zmm12
17856 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm15, %zmm29
17857 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17858 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
17859 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
17860 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17861 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm21 # 64-byte Reload
17862 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm21, %zmm1
17863 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm25, %zmm0, %zmm1
17864 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm22, %zmm4
17865 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm14
17866 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm5, %zmm0, %zmm4
17867 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
17868 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
17869 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, %zmm1
17870 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm18, %zmm0, %zmm1
17871 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm13, %zmm5
17872 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm24, %zmm13
17873 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm24, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17874 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm24, %zmm5, %zmm0
17875 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
17876 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
17877 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17878 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [5,13,21,29,5,13,21,29,5,13,21,29,5,13,21,29]
17879 ; AVX512DQ-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
17880 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm20, %zmm0, %zmm17
17881 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm3, %zmm0, %zmm27
17882 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm17, %zmm27 {%k1}
17883 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm1
17884 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm6, %zmm0, %zmm1
17885 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
17886 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm30, %zmm0, %zmm12
17887 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
17888 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm27, %zmm1
17889 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17890 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm24 # 64-byte Reload
17891 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm24, %zmm1
17892 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
17893 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm3, %zmm0, %zmm1
17894 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm28, %zmm4
17895 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
17896 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm7, %zmm0, %zmm4
17897 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
17898 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm1
17899 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm15
17900 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm16, %zmm0, %zmm1
17901 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm16, %zmm8
17902 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm12
17903 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm11, %zmm0, %zmm12
17904 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm2
17905 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
17906 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
17907 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17908 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm23, %zmm1
17909 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm31, %zmm0, %zmm1
17910 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm31, %zmm16
17911 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, %zmm4
17912 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, %zmm27
17913 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm19, %zmm0, %zmm4
17914 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm19, %zmm20
17915 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
17916 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
17917 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, %zmm1
17918 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm26, %zmm0, %zmm1
17919 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm26, %zmm17
17920 ; AVX512DQ-FCP-NEXT:    vmovdqu64 (%rsp), %zmm6 # 64-byte Reload
17921 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm12
17922 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm29, %zmm0, %zmm12
17923 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
17924 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
17925 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17926 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm21, %zmm1
17927 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm25, %zmm0, %zmm1
17928 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm22, %zmm4
17929 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm14, %zmm0, %zmm4
17930 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
17931 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, %zmm1
17932 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm18, %zmm0, %zmm1
17933 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm13, %zmm5, %zmm0
17934 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
17935 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
17936 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17937 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm1 = [6,14,22,30,6,14,22,30,6,14,22,30,6,14,22,30]
17938 ; AVX512DQ-FCP-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
17939 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm24, %zmm4
17940 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm24, %zmm30
17941 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm3, %zmm1, %zmm30
17942 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [7,15,23,31,7,15,23,31,7,15,23,31,7,15,23,31]
17943 ; AVX512DQ-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
17944 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm3, %zmm0, %zmm4
17945 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, %zmm19
17946 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm28, %zmm11
17947 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm7, %zmm1, %zmm11
17948 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm7, %zmm0, %zmm28
17949 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm15, %zmm9
17950 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm8, %zmm1, %zmm9
17951 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm8, %zmm0, %zmm15
17952 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17953 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
17954 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm8
17955 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm2, %zmm1, %zmm8
17956 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm2, %zmm0, %zmm3
17957 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17958 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm23, %zmm31
17959 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm16, %zmm1, %zmm31
17960 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm16, %zmm0, %zmm23
17961 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm23, %zmm16
17962 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm27, %zmm29
17963 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm20, %zmm1, %zmm29
17964 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm20, %zmm0, %zmm27
17965 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm27, %zmm26
17966 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, %zmm2
17967 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, %zmm5
17968 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm17, %zmm1, %zmm5
17969 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm17, %zmm0, %zmm2
17970 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17971 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm4
17972 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
17973 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm2, %zmm1, %zmm4
17974 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm2, %zmm0, %zmm6
17975 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm15
17976 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
17977 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm23
17978 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
17979 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm2, %zmm1, %zmm23
17980 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm2, %zmm0, %zmm3
17981 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm17
17982 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
17983 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm24
17984 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
17985 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm2, %zmm1, %zmm24
17986 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm2, %zmm0, %zmm3
17987 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm27
17988 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
17989 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm13
17990 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
17991 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm3, %zmm1, %zmm13
17992 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm3, %zmm0, %zmm12
17993 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
17994 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, %zmm3
17995 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
17996 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm6, %zmm1, %zmm3
17997 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm6, %zmm0, %zmm10
17998 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm21, %zmm6
17999 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm21, %zmm20
18000 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm25, %zmm1, %zmm20
18001 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm25, %zmm0, %zmm6
18002 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm21
18003 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm22, %zmm25
18004 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm14, %zmm1, %zmm25
18005 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm14, %zmm0, %zmm22
18006 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
18007 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm14
18008 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm18, %zmm1, %zmm14
18009 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm18, %zmm0, %zmm7
18010 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
18011 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18012 ; AVX512DQ-FCP-NEXT:    vpermi2d %zmm6, %zmm2, %zmm1
18013 ; AVX512DQ-FCP-NEXT:    vpermt2d %zmm6, %zmm0, %zmm2
18014 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm6
18015 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm13[4,5,6,7]
18016 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm23, %zmm24 {%k1}
18017 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm24, %zmm0
18018 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm2 = ymm8[0,1,2,3],ymm9[4,5,6,7]
18019 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm30, %zmm11 {%k1}
18020 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm2, %zmm11, %zmm2
18021 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm5[4,5,6,7]
18022 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm31, %zmm29 {%k1}
18023 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm29, %zmm3
18024 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm20, %zmm25 {%k1}
18025 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm14[4,5,6,7]
18026 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm25, %zmm1
18027 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm19, %zmm28 {%k1}
18028 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
18029 ; AVX512DQ-FCP-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload
18030 ; AVX512DQ-FCP-NEXT:    # ymm4 = ymm4[0,1,2,3],mem[4,5,6,7]
18031 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm28, %zmm4
18032 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm16, %zmm26 {%k1}
18033 ; AVX512DQ-FCP-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm5 # 32-byte Folded Reload
18034 ; AVX512DQ-FCP-NEXT:    # ymm5 = ymm15[0,1,2,3],mem[4,5,6,7]
18035 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm5, %zmm26, %zmm5
18036 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm17, %zmm27 {%k1}
18037 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm8 = ymm10[0,1,2,3],ymm12[4,5,6,7]
18038 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm8, %zmm27, %zmm9
18039 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm21, %zmm22 {%k1}
18040 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm7 = ymm6[0,1,2,3],ymm7[4,5,6,7]
18041 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm7, %zmm22, %zmm7
18042 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
18043 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm8, 192(%rsi)
18044 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
18045 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm8, 128(%rsi)
18046 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
18047 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm8, 64(%rsi)
18048 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18049 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm6, (%rsi)
18050 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18051 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm6, 192(%rdx)
18052 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18053 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm6, (%rdx)
18054 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18055 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm6, 64(%rdx)
18056 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18057 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm6, 128(%rdx)
18058 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18059 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm6, 192(%rcx)
18060 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18061 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm6, (%rcx)
18062 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18063 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm6, 64(%rcx)
18064 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18065 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm6, 128(%rcx)
18066 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18067 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm6, 192(%r8)
18068 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18069 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm6, (%r8)
18070 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18071 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm6, 64(%r8)
18072 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18073 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm6, 128(%r8)
18074 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18075 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm6, 192(%r9)
18076 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18077 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm6, (%r9)
18078 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18079 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm6, 64(%r9)
18080 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18081 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm6, 128(%r9)
18082 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
18083 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18084 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm6, 192(%rax)
18085 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18086 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm6, (%rax)
18087 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18088 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm6, 64(%rax)
18089 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18090 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm6, 128(%rax)
18091 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
18092 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, 192(%rax)
18093 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, (%rax)
18094 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, 64(%rax)
18095 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, 128(%rax)
18096 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
18097 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, 128(%rax)
18098 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, 192(%rax)
18099 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, (%rax)
18100 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, 64(%rax)
18101 ; AVX512DQ-FCP-NEXT:    addq $3144, %rsp # imm = 0xC48
18102 ; AVX512DQ-FCP-NEXT:    vzeroupper
18103 ; AVX512DQ-FCP-NEXT:    retq
18105 ; AVX512BW-LABEL: load_i32_stride8_vf64:
18106 ; AVX512BW:       # %bb.0:
18107 ; AVX512BW-NEXT:    subq $3144, %rsp # imm = 0xC48
18108 ; AVX512BW-NEXT:    vmovdqa64 320(%rdi), %zmm11
18109 ; AVX512BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18110 ; AVX512BW-NEXT:    vmovdqa64 448(%rdi), %zmm18
18111 ; AVX512BW-NEXT:    vmovdqa64 1600(%rdi), %zmm31
18112 ; AVX512BW-NEXT:    vmovaps 1536(%rdi), %zmm0
18113 ; AVX512BW-NEXT:    vmovups %zmm0, (%rsp) # 64-byte Spill
18114 ; AVX512BW-NEXT:    vmovdqa64 1728(%rdi), %zmm24
18115 ; AVX512BW-NEXT:    vmovdqu64 %zmm24, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18116 ; AVX512BW-NEXT:    vmovaps 1664(%rdi), %zmm0
18117 ; AVX512BW-NEXT:    vmovups %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18118 ; AVX512BW-NEXT:    vmovdqa64 1856(%rdi), %zmm21
18119 ; AVX512BW-NEXT:    vmovdqa64 1792(%rdi), %zmm26
18120 ; AVX512BW-NEXT:    vmovdqa64 1984(%rdi), %zmm22
18121 ; AVX512BW-NEXT:    vmovdqa64 1920(%rdi), %zmm5
18122 ; AVX512BW-NEXT:    vmovdqa64 1088(%rdi), %zmm13
18123 ; AVX512BW-NEXT:    vmovdqa64 1024(%rdi), %zmm3
18124 ; AVX512BW-NEXT:    vmovdqa64 1216(%rdi), %zmm30
18125 ; AVX512BW-NEXT:    vmovdqa64 1152(%rdi), %zmm2
18126 ; AVX512BW-NEXT:    vmovdqa64 1344(%rdi), %zmm29
18127 ; AVX512BW-NEXT:    vmovdqa64 1280(%rdi), %zmm27
18128 ; AVX512BW-NEXT:    vmovdqa64 1472(%rdi), %zmm20
18129 ; AVX512BW-NEXT:    vmovdqa64 1408(%rdi), %zmm10
18130 ; AVX512BW-NEXT:    vmovdqa64 576(%rdi), %zmm25
18131 ; AVX512BW-NEXT:    vmovdqa64 512(%rdi), %zmm7
18132 ; AVX512BW-NEXT:    vmovdqa64 704(%rdi), %zmm9
18133 ; AVX512BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18134 ; AVX512BW-NEXT:    vmovdqa64 640(%rdi), %zmm12
18135 ; AVX512BW-NEXT:    vmovdqa64 832(%rdi), %zmm6
18136 ; AVX512BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18137 ; AVX512BW-NEXT:    vmovdqa64 768(%rdi), %zmm28
18138 ; AVX512BW-NEXT:    vmovdqa64 960(%rdi), %zmm23
18139 ; AVX512BW-NEXT:    vmovdqa64 896(%rdi), %zmm4
18140 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [0,8,16,24,0,8,16,24,0,8,16,24,0,8,16,24]
18141 ; AVX512BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
18142 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm1
18143 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm16
18144 ; AVX512BW-NEXT:    vpermt2d %zmm23, %zmm0, %zmm1
18145 ; AVX512BW-NEXT:    vmovdqa64 %zmm28, %zmm4
18146 ; AVX512BW-NEXT:    vpermt2d %zmm6, %zmm0, %zmm4
18147 ; AVX512BW-NEXT:    movb $-64, %al
18148 ; AVX512BW-NEXT:    kmovd %eax, %k1
18149 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
18150 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm1
18151 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm15
18152 ; AVX512BW-NEXT:    vpermt2d %zmm9, %zmm0, %zmm1
18153 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm12
18154 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm9
18155 ; AVX512BW-NEXT:    vpermt2d %zmm25, %zmm0, %zmm12
18156 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
18157 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
18158 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18159 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm1
18160 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm6
18161 ; AVX512BW-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18162 ; AVX512BW-NEXT:    vpermt2d %zmm20, %zmm0, %zmm1
18163 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, %zmm4
18164 ; AVX512BW-NEXT:    vpermt2d %zmm29, %zmm0, %zmm4
18165 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
18166 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm1
18167 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm8
18168 ; AVX512BW-NEXT:    vpermt2d %zmm30, %zmm0, %zmm1
18169 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm10
18170 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm12
18171 ; AVX512BW-NEXT:    vpermt2d %zmm13, %zmm0, %zmm12
18172 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
18173 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
18174 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18175 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm14
18176 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18177 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm1
18178 ; AVX512BW-NEXT:    vpermt2d %zmm22, %zmm0, %zmm1
18179 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm17
18180 ; AVX512BW-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18181 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, %zmm4
18182 ; AVX512BW-NEXT:    vpermt2d %zmm21, %zmm0, %zmm4
18183 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
18184 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
18185 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm1
18186 ; AVX512BW-NEXT:    vpermt2d %zmm24, %zmm0, %zmm1
18187 ; AVX512BW-NEXT:    vmovdqu64 (%rsp), %zmm2 # 64-byte Reload
18188 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm12
18189 ; AVX512BW-NEXT:    vmovdqa64 %zmm31, %zmm24
18190 ; AVX512BW-NEXT:    vpermt2d %zmm31, %zmm0, %zmm12
18191 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
18192 ; AVX512BW-NEXT:    vmovdqa64 384(%rdi), %zmm5
18193 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18194 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
18195 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18196 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm1
18197 ; AVX512BW-NEXT:    vpermt2d %zmm18, %zmm0, %zmm1
18198 ; AVX512BW-NEXT:    vmovdqa64 256(%rdi), %zmm22
18199 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm4
18200 ; AVX512BW-NEXT:    vpermt2d %zmm11, %zmm0, %zmm4
18201 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
18202 ; AVX512BW-NEXT:    vmovdqa64 128(%rdi), %zmm1
18203 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18204 ; AVX512BW-NEXT:    vmovdqa64 192(%rdi), %zmm5
18205 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18206 ; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm0, %zmm1
18207 ; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm7
18208 ; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %zmm19
18209 ; AVX512BW-NEXT:    vpermi2d %zmm19, %zmm7, %zmm0
18210 ; AVX512BW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18211 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
18212 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
18213 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18214 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [1,9,17,25,1,9,17,25,1,9,17,25,1,9,17,25]
18215 ; AVX512BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
18216 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm1
18217 ; AVX512BW-NEXT:    vpermt2d %zmm20, %zmm0, %zmm1
18218 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, %zmm4
18219 ; AVX512BW-NEXT:    vmovdqu64 %zmm29, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18220 ; AVX512BW-NEXT:    vpermt2d %zmm29, %zmm0, %zmm4
18221 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
18222 ; AVX512BW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18223 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm1
18224 ; AVX512BW-NEXT:    vmovdqa64 %zmm30, %zmm31
18225 ; AVX512BW-NEXT:    vpermt2d %zmm30, %zmm0, %zmm1
18226 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm12
18227 ; AVX512BW-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18228 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm30
18229 ; AVX512BW-NEXT:    vpermt2d %zmm13, %zmm0, %zmm12
18230 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
18231 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
18232 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18233 ; AVX512BW-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18234 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, %zmm1
18235 ; AVX512BW-NEXT:    vpermt2d %zmm23, %zmm0, %zmm1
18236 ; AVX512BW-NEXT:    vmovdqa64 %zmm28, %zmm4
18237 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
18238 ; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm0, %zmm4
18239 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
18240 ; AVX512BW-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18241 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm1
18242 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
18243 ; AVX512BW-NEXT:    vpermt2d %zmm13, %zmm0, %zmm1
18244 ; AVX512BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18245 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm12
18246 ; AVX512BW-NEXT:    vpermt2d %zmm25, %zmm0, %zmm12
18247 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
18248 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
18249 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18250 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, %zmm1
18251 ; AVX512BW-NEXT:    vpermt2d %zmm17, %zmm0, %zmm1
18252 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, %zmm4
18253 ; AVX512BW-NEXT:    vpermt2d %zmm21, %zmm0, %zmm4
18254 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
18255 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm1
18256 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
18257 ; AVX512BW-NEXT:    vpermt2d %zmm3, %zmm0, %zmm1
18258 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm12
18259 ; AVX512BW-NEXT:    vpermt2d %zmm24, %zmm0, %zmm12
18260 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
18261 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
18262 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18263 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18264 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm1
18265 ; AVX512BW-NEXT:    vpermt2d %zmm18, %zmm0, %zmm1
18266 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm4
18267 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
18268 ; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm0, %zmm4
18269 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
18270 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
18271 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, %zmm1
18272 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
18273 ; AVX512BW-NEXT:    vpermt2d %zmm11, %zmm0, %zmm1
18274 ; AVX512BW-NEXT:    vpermi2d %zmm19, %zmm7, %zmm0
18275 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
18276 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
18277 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18278 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [2,10,18,26,2,10,18,26,2,10,18,26,2,10,18,26]
18279 ; AVX512BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
18280 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
18281 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm1
18282 ; AVX512BW-NEXT:    vpermt2d %zmm20, %zmm0, %zmm1
18283 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, %zmm4
18284 ; AVX512BW-NEXT:    vpermt2d %zmm29, %zmm0, %zmm4
18285 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
18286 ; AVX512BW-NEXT:    vpermt2d %zmm31, %zmm0, %zmm8
18287 ; AVX512BW-NEXT:    vpermt2d %zmm30, %zmm0, %zmm10
18288 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm10[0,1,2,3],ymm8[4,5,6,7]
18289 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
18290 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18291 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, %zmm1
18292 ; AVX512BW-NEXT:    vpermt2d %zmm23, %zmm0, %zmm1
18293 ; AVX512BW-NEXT:    vmovdqa64 %zmm28, %zmm4
18294 ; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm0, %zmm4
18295 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
18296 ; AVX512BW-NEXT:    vpermt2d %zmm13, %zmm0, %zmm15
18297 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm16
18298 ; AVX512BW-NEXT:    vpermt2d %zmm25, %zmm0, %zmm9
18299 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, %zmm29
18300 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm9[0,1,2,3],ymm15[4,5,6,7]
18301 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
18302 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18303 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
18304 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm1
18305 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
18306 ; AVX512BW-NEXT:    vpermt2d %zmm10, %zmm0, %zmm1
18307 ; AVX512BW-NEXT:    vmovdqu64 %zmm26, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18308 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, %zmm4
18309 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, %zmm7
18310 ; AVX512BW-NEXT:    vpermt2d %zmm21, %zmm0, %zmm4
18311 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
18312 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
18313 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm1
18314 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm25
18315 ; AVX512BW-NEXT:    vpermt2d %zmm3, %zmm0, %zmm1
18316 ; AVX512BW-NEXT:    vmovdqu64 (%rsp), %zmm3 # 64-byte Reload
18317 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm12
18318 ; AVX512BW-NEXT:    vmovdqa64 %zmm24, %zmm15
18319 ; AVX512BW-NEXT:    vpermt2d %zmm24, %zmm0, %zmm12
18320 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
18321 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
18322 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18323 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm13
18324 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm1
18325 ; AVX512BW-NEXT:    vpermt2d %zmm18, %zmm0, %zmm1
18326 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm4
18327 ; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm0, %zmm4
18328 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
18329 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, %zmm6
18330 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, %zmm1
18331 ; AVX512BW-NEXT:    vpermt2d %zmm11, %zmm0, %zmm1
18332 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm24
18333 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
18334 ; AVX512BW-NEXT:    vpermi2d %zmm19, %zmm14, %zmm0
18335 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
18336 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
18337 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18338 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [3,11,19,27,3,11,19,27,3,11,19,27,3,11,19,27]
18339 ; AVX512BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
18340 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm1
18341 ; AVX512BW-NEXT:    vpermt2d %zmm20, %zmm0, %zmm1
18342 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, %zmm4
18343 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
18344 ; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm0, %zmm4
18345 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
18346 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
18347 ; AVX512BW-NEXT:    vmovdqa64 %zmm31, %zmm21
18348 ; AVX512BW-NEXT:    vpermt2d %zmm31, %zmm0, %zmm1
18349 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
18350 ; AVX512BW-NEXT:    vpermt2d %zmm30, %zmm0, %zmm12
18351 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
18352 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
18353 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18354 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
18355 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm1
18356 ; AVX512BW-NEXT:    vmovdqu64 %zmm23, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18357 ; AVX512BW-NEXT:    vpermt2d %zmm23, %zmm0, %zmm1
18358 ; AVX512BW-NEXT:    vmovdqa64 %zmm28, %zmm4
18359 ; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm0, %zmm4
18360 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm31
18361 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
18362 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
18363 ; AVX512BW-NEXT:    vpermt2d %zmm16, %zmm0, %zmm1
18364 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
18365 ; AVX512BW-NEXT:    vpermt2d %zmm29, %zmm0, %zmm12
18366 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
18367 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
18368 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18369 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm1
18370 ; AVX512BW-NEXT:    vpermt2d %zmm10, %zmm0, %zmm1
18371 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, %zmm4
18372 ; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm0, %zmm4
18373 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm26
18374 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
18375 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm1
18376 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, %zmm9
18377 ; AVX512BW-NEXT:    vpermt2d %zmm25, %zmm0, %zmm1
18378 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm12
18379 ; AVX512BW-NEXT:    vpermt2d %zmm15, %zmm0, %zmm12
18380 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
18381 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
18382 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18383 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm1
18384 ; AVX512BW-NEXT:    vpermt2d %zmm18, %zmm0, %zmm1
18385 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, %zmm25
18386 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm4
18387 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
18388 ; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm0, %zmm4
18389 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
18390 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm1
18391 ; AVX512BW-NEXT:    vmovdqa64 %zmm24, %zmm18
18392 ; AVX512BW-NEXT:    vpermt2d %zmm24, %zmm0, %zmm1
18393 ; AVX512BW-NEXT:    vpermi2d %zmm19, %zmm14, %zmm0
18394 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm24
18395 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, %zmm13
18396 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
18397 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
18398 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18399 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [4,12,20,28,4,12,20,28,4,12,20,28,4,12,20,28]
18400 ; AVX512BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
18401 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm1
18402 ; AVX512BW-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18403 ; AVX512BW-NEXT:    vpermt2d %zmm20, %zmm0, %zmm1
18404 ; AVX512BW-NEXT:    vmovdqu64 %zmm27, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18405 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, %zmm4
18406 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm3
18407 ; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm0, %zmm4
18408 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
18409 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
18410 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm1
18411 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, %zmm6
18412 ; AVX512BW-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18413 ; AVX512BW-NEXT:    vpermt2d %zmm21, %zmm0, %zmm1
18414 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
18415 ; AVX512BW-NEXT:    vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18416 ; AVX512BW-NEXT:    vpermt2d %zmm30, %zmm0, %zmm12
18417 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
18418 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
18419 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18420 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm1
18421 ; AVX512BW-NEXT:    vpermt2d %zmm23, %zmm0, %zmm1
18422 ; AVX512BW-NEXT:    vmovdqa64 %zmm28, %zmm4
18423 ; AVX512BW-NEXT:    vpermt2d %zmm31, %zmm0, %zmm4
18424 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
18425 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
18426 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm1
18427 ; AVX512BW-NEXT:    vpermt2d %zmm16, %zmm0, %zmm1
18428 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
18429 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm12
18430 ; AVX512BW-NEXT:    vmovdqa64 %zmm29, %zmm11
18431 ; AVX512BW-NEXT:    vpermt2d %zmm29, %zmm0, %zmm12
18432 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
18433 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
18434 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18435 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm23 # 64-byte Reload
18436 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, %zmm1
18437 ; AVX512BW-NEXT:    vpermt2d %zmm10, %zmm0, %zmm1
18438 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm31
18439 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
18440 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm4
18441 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, %zmm19
18442 ; AVX512BW-NEXT:    vpermt2d %zmm26, %zmm0, %zmm4
18443 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
18444 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
18445 ; AVX512BW-NEXT:    vpermt2d %zmm9, %zmm0, %zmm1
18446 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm26
18447 ; AVX512BW-NEXT:    vmovdqu64 (%rsp), %zmm12 # 64-byte Reload
18448 ; AVX512BW-NEXT:    vpermt2d %zmm15, %zmm0, %zmm12
18449 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm29
18450 ; AVX512BW-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18451 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
18452 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
18453 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18454 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm21 # 64-byte Reload
18455 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, %zmm1
18456 ; AVX512BW-NEXT:    vpermt2d %zmm25, %zmm0, %zmm1
18457 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm4
18458 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm14
18459 ; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm0, %zmm4
18460 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
18461 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
18462 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm1
18463 ; AVX512BW-NEXT:    vpermt2d %zmm18, %zmm0, %zmm1
18464 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm5
18465 ; AVX512BW-NEXT:    vmovdqa64 %zmm24, %zmm13
18466 ; AVX512BW-NEXT:    vmovdqu64 %zmm24, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18467 ; AVX512BW-NEXT:    vpermi2d %zmm24, %zmm5, %zmm0
18468 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
18469 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
18470 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18471 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [5,13,21,29,5,13,21,29,5,13,21,29,5,13,21,29]
18472 ; AVX512BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
18473 ; AVX512BW-NEXT:    vpermt2d %zmm20, %zmm0, %zmm17
18474 ; AVX512BW-NEXT:    vpermt2d %zmm3, %zmm0, %zmm27
18475 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm27 {%k1}
18476 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm1
18477 ; AVX512BW-NEXT:    vpermt2d %zmm6, %zmm0, %zmm1
18478 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
18479 ; AVX512BW-NEXT:    vpermt2d %zmm30, %zmm0, %zmm12
18480 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
18481 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm27, %zmm1
18482 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18483 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm24 # 64-byte Reload
18484 ; AVX512BW-NEXT:    vmovdqa64 %zmm24, %zmm1
18485 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
18486 ; AVX512BW-NEXT:    vpermt2d %zmm3, %zmm0, %zmm1
18487 ; AVX512BW-NEXT:    vmovdqa64 %zmm28, %zmm4
18488 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
18489 ; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm0, %zmm4
18490 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
18491 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm1
18492 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm15
18493 ; AVX512BW-NEXT:    vpermt2d %zmm16, %zmm0, %zmm1
18494 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, %zmm8
18495 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm12
18496 ; AVX512BW-NEXT:    vpermt2d %zmm11, %zmm0, %zmm12
18497 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm2
18498 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
18499 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
18500 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18501 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, %zmm1
18502 ; AVX512BW-NEXT:    vpermt2d %zmm31, %zmm0, %zmm1
18503 ; AVX512BW-NEXT:    vmovdqa64 %zmm31, %zmm16
18504 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm4
18505 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm27
18506 ; AVX512BW-NEXT:    vpermt2d %zmm19, %zmm0, %zmm4
18507 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm20
18508 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
18509 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
18510 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm1
18511 ; AVX512BW-NEXT:    vpermt2d %zmm26, %zmm0, %zmm1
18512 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, %zmm17
18513 ; AVX512BW-NEXT:    vmovdqu64 (%rsp), %zmm6 # 64-byte Reload
18514 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm12
18515 ; AVX512BW-NEXT:    vpermt2d %zmm29, %zmm0, %zmm12
18516 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
18517 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
18518 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18519 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, %zmm1
18520 ; AVX512BW-NEXT:    vpermt2d %zmm25, %zmm0, %zmm1
18521 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm4
18522 ; AVX512BW-NEXT:    vpermt2d %zmm14, %zmm0, %zmm4
18523 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
18524 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm1
18525 ; AVX512BW-NEXT:    vpermt2d %zmm18, %zmm0, %zmm1
18526 ; AVX512BW-NEXT:    vpermi2d %zmm13, %zmm5, %zmm0
18527 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
18528 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
18529 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18530 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm1 = [6,14,22,30,6,14,22,30,6,14,22,30,6,14,22,30]
18531 ; AVX512BW-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
18532 ; AVX512BW-NEXT:    vmovdqa64 %zmm24, %zmm4
18533 ; AVX512BW-NEXT:    vmovdqa64 %zmm24, %zmm30
18534 ; AVX512BW-NEXT:    vpermt2d %zmm3, %zmm1, %zmm30
18535 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [7,15,23,31,7,15,23,31,7,15,23,31,7,15,23,31]
18536 ; AVX512BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
18537 ; AVX512BW-NEXT:    vpermt2d %zmm3, %zmm0, %zmm4
18538 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm19
18539 ; AVX512BW-NEXT:    vmovdqa64 %zmm28, %zmm11
18540 ; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm1, %zmm11
18541 ; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm0, %zmm28
18542 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm9
18543 ; AVX512BW-NEXT:    vpermt2d %zmm8, %zmm1, %zmm9
18544 ; AVX512BW-NEXT:    vpermt2d %zmm8, %zmm0, %zmm15
18545 ; AVX512BW-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18546 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
18547 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm8
18548 ; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm1, %zmm8
18549 ; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm0, %zmm3
18550 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18551 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, %zmm31
18552 ; AVX512BW-NEXT:    vpermt2d %zmm16, %zmm1, %zmm31
18553 ; AVX512BW-NEXT:    vpermt2d %zmm16, %zmm0, %zmm23
18554 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, %zmm16
18555 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, %zmm29
18556 ; AVX512BW-NEXT:    vpermt2d %zmm20, %zmm1, %zmm29
18557 ; AVX512BW-NEXT:    vpermt2d %zmm20, %zmm0, %zmm27
18558 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, %zmm26
18559 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm2
18560 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm5
18561 ; AVX512BW-NEXT:    vpermt2d %zmm17, %zmm1, %zmm5
18562 ; AVX512BW-NEXT:    vpermt2d %zmm17, %zmm0, %zmm2
18563 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18564 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm4
18565 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
18566 ; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm1, %zmm4
18567 ; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm0, %zmm6
18568 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm15
18569 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
18570 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm23
18571 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
18572 ; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm1, %zmm23
18573 ; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm0, %zmm3
18574 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm17
18575 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
18576 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm24
18577 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
18578 ; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm1, %zmm24
18579 ; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm0, %zmm3
18580 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm27
18581 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
18582 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm13
18583 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
18584 ; AVX512BW-NEXT:    vpermt2d %zmm3, %zmm1, %zmm13
18585 ; AVX512BW-NEXT:    vpermt2d %zmm3, %zmm0, %zmm12
18586 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
18587 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm3
18588 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18589 ; AVX512BW-NEXT:    vpermt2d %zmm6, %zmm1, %zmm3
18590 ; AVX512BW-NEXT:    vpermt2d %zmm6, %zmm0, %zmm10
18591 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, %zmm6
18592 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, %zmm20
18593 ; AVX512BW-NEXT:    vpermt2d %zmm25, %zmm1, %zmm20
18594 ; AVX512BW-NEXT:    vpermt2d %zmm25, %zmm0, %zmm6
18595 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm21
18596 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm25
18597 ; AVX512BW-NEXT:    vpermt2d %zmm14, %zmm1, %zmm25
18598 ; AVX512BW-NEXT:    vpermt2d %zmm14, %zmm0, %zmm22
18599 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
18600 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm14
18601 ; AVX512BW-NEXT:    vpermt2d %zmm18, %zmm1, %zmm14
18602 ; AVX512BW-NEXT:    vpermt2d %zmm18, %zmm0, %zmm7
18603 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
18604 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18605 ; AVX512BW-NEXT:    vpermi2d %zmm6, %zmm2, %zmm1
18606 ; AVX512BW-NEXT:    vpermt2d %zmm6, %zmm0, %zmm2
18607 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm6
18608 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm13[4,5,6,7]
18609 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, %zmm24 {%k1}
18610 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm24, %zmm0
18611 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm8[0,1,2,3],ymm9[4,5,6,7]
18612 ; AVX512BW-NEXT:    vmovdqa64 %zmm30, %zmm11 {%k1}
18613 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm2, %zmm11, %zmm2
18614 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm5[4,5,6,7]
18615 ; AVX512BW-NEXT:    vmovdqa64 %zmm31, %zmm29 {%k1}
18616 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm3, %zmm29, %zmm3
18617 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, %zmm25 {%k1}
18618 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm14[4,5,6,7]
18619 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm25, %zmm1
18620 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm28 {%k1}
18621 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
18622 ; AVX512BW-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload
18623 ; AVX512BW-NEXT:    # ymm4 = ymm4[0,1,2,3],mem[4,5,6,7]
18624 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm4, %zmm28, %zmm4
18625 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, %zmm26 {%k1}
18626 ; AVX512BW-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm5 # 32-byte Folded Reload
18627 ; AVX512BW-NEXT:    # ymm5 = ymm15[0,1,2,3],mem[4,5,6,7]
18628 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm5, %zmm26, %zmm5
18629 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm27 {%k1}
18630 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm10[0,1,2,3],ymm12[4,5,6,7]
18631 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm27, %zmm9
18632 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, %zmm22 {%k1}
18633 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm7 = ymm6[0,1,2,3],ymm7[4,5,6,7]
18634 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm7, %zmm22, %zmm7
18635 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
18636 ; AVX512BW-NEXT:    vmovaps %zmm8, 192(%rsi)
18637 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
18638 ; AVX512BW-NEXT:    vmovaps %zmm8, 128(%rsi)
18639 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
18640 ; AVX512BW-NEXT:    vmovaps %zmm8, 64(%rsi)
18641 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18642 ; AVX512BW-NEXT:    vmovaps %zmm6, (%rsi)
18643 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18644 ; AVX512BW-NEXT:    vmovaps %zmm6, 192(%rdx)
18645 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18646 ; AVX512BW-NEXT:    vmovaps %zmm6, (%rdx)
18647 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18648 ; AVX512BW-NEXT:    vmovaps %zmm6, 64(%rdx)
18649 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18650 ; AVX512BW-NEXT:    vmovaps %zmm6, 128(%rdx)
18651 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18652 ; AVX512BW-NEXT:    vmovaps %zmm6, 192(%rcx)
18653 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18654 ; AVX512BW-NEXT:    vmovaps %zmm6, (%rcx)
18655 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18656 ; AVX512BW-NEXT:    vmovaps %zmm6, 64(%rcx)
18657 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18658 ; AVX512BW-NEXT:    vmovaps %zmm6, 128(%rcx)
18659 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18660 ; AVX512BW-NEXT:    vmovaps %zmm6, 192(%r8)
18661 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18662 ; AVX512BW-NEXT:    vmovaps %zmm6, (%r8)
18663 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18664 ; AVX512BW-NEXT:    vmovaps %zmm6, 64(%r8)
18665 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18666 ; AVX512BW-NEXT:    vmovaps %zmm6, 128(%r8)
18667 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18668 ; AVX512BW-NEXT:    vmovaps %zmm6, 192(%r9)
18669 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18670 ; AVX512BW-NEXT:    vmovaps %zmm6, (%r9)
18671 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18672 ; AVX512BW-NEXT:    vmovaps %zmm6, 64(%r9)
18673 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18674 ; AVX512BW-NEXT:    vmovaps %zmm6, 128(%r9)
18675 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
18676 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18677 ; AVX512BW-NEXT:    vmovaps %zmm6, 192(%rax)
18678 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18679 ; AVX512BW-NEXT:    vmovaps %zmm6, (%rax)
18680 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18681 ; AVX512BW-NEXT:    vmovaps %zmm6, 64(%rax)
18682 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18683 ; AVX512BW-NEXT:    vmovaps %zmm6, 128(%rax)
18684 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
18685 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, 192(%rax)
18686 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, (%rax)
18687 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, 64(%rax)
18688 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, 128(%rax)
18689 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
18690 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, 128(%rax)
18691 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, 192(%rax)
18692 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, (%rax)
18693 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, 64(%rax)
18694 ; AVX512BW-NEXT:    addq $3144, %rsp # imm = 0xC48
18695 ; AVX512BW-NEXT:    vzeroupper
18696 ; AVX512BW-NEXT:    retq
18698 ; AVX512BW-FCP-LABEL: load_i32_stride8_vf64:
18699 ; AVX512BW-FCP:       # %bb.0:
18700 ; AVX512BW-FCP-NEXT:    subq $3144, %rsp # imm = 0xC48
18701 ; AVX512BW-FCP-NEXT:    vmovdqa64 320(%rdi), %zmm11
18702 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18703 ; AVX512BW-FCP-NEXT:    vmovdqa64 448(%rdi), %zmm18
18704 ; AVX512BW-FCP-NEXT:    vmovdqa64 1600(%rdi), %zmm31
18705 ; AVX512BW-FCP-NEXT:    vmovaps 1536(%rdi), %zmm0
18706 ; AVX512BW-FCP-NEXT:    vmovups %zmm0, (%rsp) # 64-byte Spill
18707 ; AVX512BW-FCP-NEXT:    vmovdqa64 1728(%rdi), %zmm24
18708 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm24, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18709 ; AVX512BW-FCP-NEXT:    vmovaps 1664(%rdi), %zmm0
18710 ; AVX512BW-FCP-NEXT:    vmovups %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18711 ; AVX512BW-FCP-NEXT:    vmovdqa64 1856(%rdi), %zmm21
18712 ; AVX512BW-FCP-NEXT:    vmovdqa64 1792(%rdi), %zmm26
18713 ; AVX512BW-FCP-NEXT:    vmovdqa64 1984(%rdi), %zmm22
18714 ; AVX512BW-FCP-NEXT:    vmovdqa64 1920(%rdi), %zmm5
18715 ; AVX512BW-FCP-NEXT:    vmovdqa64 1088(%rdi), %zmm13
18716 ; AVX512BW-FCP-NEXT:    vmovdqa64 1024(%rdi), %zmm3
18717 ; AVX512BW-FCP-NEXT:    vmovdqa64 1216(%rdi), %zmm30
18718 ; AVX512BW-FCP-NEXT:    vmovdqa64 1152(%rdi), %zmm2
18719 ; AVX512BW-FCP-NEXT:    vmovdqa64 1344(%rdi), %zmm29
18720 ; AVX512BW-FCP-NEXT:    vmovdqa64 1280(%rdi), %zmm27
18721 ; AVX512BW-FCP-NEXT:    vmovdqa64 1472(%rdi), %zmm20
18722 ; AVX512BW-FCP-NEXT:    vmovdqa64 1408(%rdi), %zmm10
18723 ; AVX512BW-FCP-NEXT:    vmovdqa64 576(%rdi), %zmm25
18724 ; AVX512BW-FCP-NEXT:    vmovdqa64 512(%rdi), %zmm7
18725 ; AVX512BW-FCP-NEXT:    vmovdqa64 704(%rdi), %zmm9
18726 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18727 ; AVX512BW-FCP-NEXT:    vmovdqa64 640(%rdi), %zmm12
18728 ; AVX512BW-FCP-NEXT:    vmovdqa64 832(%rdi), %zmm6
18729 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18730 ; AVX512BW-FCP-NEXT:    vmovdqa64 768(%rdi), %zmm28
18731 ; AVX512BW-FCP-NEXT:    vmovdqa64 960(%rdi), %zmm23
18732 ; AVX512BW-FCP-NEXT:    vmovdqa64 896(%rdi), %zmm4
18733 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [0,8,16,24,0,8,16,24,0,8,16,24,0,8,16,24]
18734 ; AVX512BW-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
18735 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm1
18736 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm16
18737 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm23, %zmm0, %zmm1
18738 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm28, %zmm4
18739 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm6, %zmm0, %zmm4
18740 ; AVX512BW-FCP-NEXT:    movb $-64, %al
18741 ; AVX512BW-FCP-NEXT:    kmovd %eax, %k1
18742 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
18743 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm1
18744 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm15
18745 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm9, %zmm0, %zmm1
18746 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm12
18747 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm9
18748 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm25, %zmm0, %zmm12
18749 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
18750 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
18751 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18752 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm1
18753 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm6
18754 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18755 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm20, %zmm0, %zmm1
18756 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm27, %zmm4
18757 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm29, %zmm0, %zmm4
18758 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
18759 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm1
18760 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm8
18761 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm30, %zmm0, %zmm1
18762 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm10
18763 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm12
18764 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm13, %zmm0, %zmm12
18765 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
18766 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
18767 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18768 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm14
18769 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18770 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm1
18771 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm22, %zmm0, %zmm1
18772 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm17
18773 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18774 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm26, %zmm4
18775 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm21, %zmm0, %zmm4
18776 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
18777 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
18778 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm1
18779 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm24, %zmm0, %zmm1
18780 ; AVX512BW-FCP-NEXT:    vmovdqu64 (%rsp), %zmm2 # 64-byte Reload
18781 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm12
18782 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm31, %zmm24
18783 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm31, %zmm0, %zmm12
18784 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
18785 ; AVX512BW-FCP-NEXT:    vmovdqa64 384(%rdi), %zmm5
18786 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18787 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
18788 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18789 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm1
18790 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm18, %zmm0, %zmm1
18791 ; AVX512BW-FCP-NEXT:    vmovdqa64 256(%rdi), %zmm22
18792 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm4
18793 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm11, %zmm0, %zmm4
18794 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
18795 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm1
18796 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18797 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm5
18798 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18799 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm5, %zmm0, %zmm1
18800 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm7
18801 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm19
18802 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm19, %zmm7, %zmm0
18803 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18804 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
18805 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
18806 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18807 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [1,9,17,25,1,9,17,25,1,9,17,25,1,9,17,25]
18808 ; AVX512BW-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
18809 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm1
18810 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm20, %zmm0, %zmm1
18811 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm27, %zmm4
18812 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm29, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18813 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm29, %zmm0, %zmm4
18814 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
18815 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18816 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm1
18817 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm30, %zmm31
18818 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm30, %zmm0, %zmm1
18819 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm12
18820 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18821 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm30
18822 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm13, %zmm0, %zmm12
18823 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
18824 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
18825 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18826 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18827 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm1
18828 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm23, %zmm0, %zmm1
18829 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm28, %zmm4
18830 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
18831 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm5, %zmm0, %zmm4
18832 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
18833 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18834 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm1
18835 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
18836 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm13, %zmm0, %zmm1
18837 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18838 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm12
18839 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm25, %zmm0, %zmm12
18840 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
18841 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
18842 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18843 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm14, %zmm1
18844 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm17, %zmm0, %zmm1
18845 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm26, %zmm4
18846 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm21, %zmm0, %zmm4
18847 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
18848 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm1
18849 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
18850 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm3, %zmm0, %zmm1
18851 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm12
18852 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm24, %zmm0, %zmm12
18853 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
18854 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
18855 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18856 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18857 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm1
18858 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm18, %zmm0, %zmm1
18859 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm4
18860 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
18861 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm2, %zmm0, %zmm4
18862 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
18863 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
18864 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm14, %zmm1
18865 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
18866 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm11, %zmm0, %zmm1
18867 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm19, %zmm7, %zmm0
18868 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
18869 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
18870 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18871 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [2,10,18,26,2,10,18,26,2,10,18,26,2,10,18,26]
18872 ; AVX512BW-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
18873 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
18874 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm17, %zmm1
18875 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm20, %zmm0, %zmm1
18876 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm27, %zmm4
18877 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm29, %zmm0, %zmm4
18878 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
18879 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm31, %zmm0, %zmm8
18880 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm30, %zmm0, %zmm10
18881 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm10[0,1,2,3],ymm8[4,5,6,7]
18882 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
18883 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18884 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm1
18885 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm23, %zmm0, %zmm1
18886 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm28, %zmm4
18887 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm5, %zmm0, %zmm4
18888 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
18889 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm13, %zmm0, %zmm15
18890 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm16
18891 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm25, %zmm0, %zmm9
18892 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm25, %zmm29
18893 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm9[0,1,2,3],ymm15[4,5,6,7]
18894 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
18895 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18896 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
18897 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm1
18898 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
18899 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm10, %zmm0, %zmm1
18900 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm26, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18901 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm26, %zmm4
18902 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm21, %zmm7
18903 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm21, %zmm0, %zmm4
18904 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
18905 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
18906 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm1
18907 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm25
18908 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm3, %zmm0, %zmm1
18909 ; AVX512BW-FCP-NEXT:    vmovdqu64 (%rsp), %zmm3 # 64-byte Reload
18910 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm12
18911 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm24, %zmm15
18912 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm24, %zmm0, %zmm12
18913 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
18914 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
18915 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18916 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm13
18917 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm1
18918 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm18, %zmm0, %zmm1
18919 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm4
18920 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm2, %zmm0, %zmm4
18921 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
18922 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm14, %zmm6
18923 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm14, %zmm1
18924 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm11, %zmm0, %zmm1
18925 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm24
18926 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
18927 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm19, %zmm14, %zmm0
18928 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
18929 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
18930 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18931 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [3,11,19,27,3,11,19,27,3,11,19,27,3,11,19,27]
18932 ; AVX512BW-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
18933 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm17, %zmm1
18934 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm20, %zmm0, %zmm1
18935 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm27, %zmm4
18936 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
18937 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm2, %zmm0, %zmm4
18938 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
18939 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
18940 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm31, %zmm21
18941 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm31, %zmm0, %zmm1
18942 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
18943 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm30, %zmm0, %zmm12
18944 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
18945 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
18946 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18947 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
18948 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm1
18949 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm23, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18950 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm23, %zmm0, %zmm1
18951 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm28, %zmm4
18952 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm5, %zmm0, %zmm4
18953 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm31
18954 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
18955 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
18956 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm16, %zmm0, %zmm1
18957 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
18958 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm29, %zmm0, %zmm12
18959 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
18960 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
18961 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18962 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm1
18963 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm10, %zmm0, %zmm1
18964 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm26, %zmm4
18965 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm7, %zmm0, %zmm4
18966 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm26
18967 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
18968 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm1
18969 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm25, %zmm9
18970 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm25, %zmm0, %zmm1
18971 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm12
18972 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm15, %zmm0, %zmm12
18973 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
18974 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
18975 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18976 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm1
18977 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm18, %zmm0, %zmm1
18978 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm18, %zmm25
18979 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm4
18980 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
18981 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm5, %zmm0, %zmm4
18982 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
18983 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm1
18984 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm24, %zmm18
18985 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm24, %zmm0, %zmm1
18986 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm19, %zmm14, %zmm0
18987 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm19, %zmm24
18988 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm14, %zmm13
18989 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
18990 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
18991 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18992 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [4,12,20,28,4,12,20,28,4,12,20,28,4,12,20,28]
18993 ; AVX512BW-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
18994 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm17, %zmm1
18995 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18996 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm20, %zmm0, %zmm1
18997 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm27, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18998 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm27, %zmm4
18999 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm3
19000 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm2, %zmm0, %zmm4
19001 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
19002 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
19003 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm1
19004 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm21, %zmm6
19005 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19006 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm21, %zmm0, %zmm1
19007 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
19008 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19009 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm30, %zmm0, %zmm12
19010 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
19011 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
19012 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19013 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm1
19014 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm23, %zmm0, %zmm1
19015 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm28, %zmm4
19016 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm31, %zmm0, %zmm4
19017 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
19018 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
19019 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm1
19020 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm16, %zmm0, %zmm1
19021 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
19022 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm12
19023 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm29, %zmm11
19024 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm29, %zmm0, %zmm12
19025 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
19026 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
19027 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19028 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm23 # 64-byte Reload
19029 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm23, %zmm1
19030 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm10, %zmm0, %zmm1
19031 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm31
19032 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
19033 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm4
19034 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm26, %zmm19
19035 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm26, %zmm0, %zmm4
19036 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
19037 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
19038 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm9, %zmm0, %zmm1
19039 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm26
19040 ; AVX512BW-FCP-NEXT:    vmovdqu64 (%rsp), %zmm12 # 64-byte Reload
19041 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm15, %zmm0, %zmm12
19042 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm29
19043 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19044 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
19045 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
19046 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19047 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm21 # 64-byte Reload
19048 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm21, %zmm1
19049 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm25, %zmm0, %zmm1
19050 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm4
19051 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm14
19052 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm5, %zmm0, %zmm4
19053 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
19054 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
19055 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm1
19056 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm18, %zmm0, %zmm1
19057 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm5
19058 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm24, %zmm13
19059 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm24, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19060 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm24, %zmm5, %zmm0
19061 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
19062 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
19063 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19064 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [5,13,21,29,5,13,21,29,5,13,21,29,5,13,21,29]
19065 ; AVX512BW-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
19066 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm20, %zmm0, %zmm17
19067 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm3, %zmm0, %zmm27
19068 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm17, %zmm27 {%k1}
19069 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm1
19070 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm6, %zmm0, %zmm1
19071 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
19072 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm30, %zmm0, %zmm12
19073 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
19074 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm27, %zmm1
19075 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19076 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm24 # 64-byte Reload
19077 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm24, %zmm1
19078 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
19079 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm3, %zmm0, %zmm1
19080 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm28, %zmm4
19081 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
19082 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm7, %zmm0, %zmm4
19083 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
19084 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm1
19085 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm15
19086 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm16, %zmm0, %zmm1
19087 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm8
19088 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm12
19089 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm11, %zmm0, %zmm12
19090 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm2
19091 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
19092 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
19093 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19094 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm23, %zmm1
19095 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm31, %zmm0, %zmm1
19096 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm31, %zmm16
19097 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm4
19098 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm27
19099 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm19, %zmm0, %zmm4
19100 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm19, %zmm20
19101 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
19102 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
19103 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm1
19104 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm26, %zmm0, %zmm1
19105 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm26, %zmm17
19106 ; AVX512BW-FCP-NEXT:    vmovdqu64 (%rsp), %zmm6 # 64-byte Reload
19107 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm12
19108 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm29, %zmm0, %zmm12
19109 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
19110 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
19111 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19112 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm21, %zmm1
19113 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm25, %zmm0, %zmm1
19114 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm4
19115 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm14, %zmm0, %zmm4
19116 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
19117 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm1
19118 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm18, %zmm0, %zmm1
19119 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm13, %zmm5, %zmm0
19120 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
19121 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
19122 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19123 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm1 = [6,14,22,30,6,14,22,30,6,14,22,30,6,14,22,30]
19124 ; AVX512BW-FCP-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
19125 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm24, %zmm4
19126 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm24, %zmm30
19127 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm3, %zmm1, %zmm30
19128 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [7,15,23,31,7,15,23,31,7,15,23,31,7,15,23,31]
19129 ; AVX512BW-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
19130 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm3, %zmm0, %zmm4
19131 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm19
19132 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm28, %zmm11
19133 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm7, %zmm1, %zmm11
19134 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm7, %zmm0, %zmm28
19135 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm9
19136 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm8, %zmm1, %zmm9
19137 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm8, %zmm0, %zmm15
19138 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19139 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
19140 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm8
19141 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm2, %zmm1, %zmm8
19142 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm2, %zmm0, %zmm3
19143 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19144 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm23, %zmm31
19145 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm16, %zmm1, %zmm31
19146 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm16, %zmm0, %zmm23
19147 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm23, %zmm16
19148 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm27, %zmm29
19149 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm20, %zmm1, %zmm29
19150 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm20, %zmm0, %zmm27
19151 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm27, %zmm26
19152 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm2
19153 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm5
19154 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm17, %zmm1, %zmm5
19155 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm17, %zmm0, %zmm2
19156 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19157 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm4
19158 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
19159 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm2, %zmm1, %zmm4
19160 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm2, %zmm0, %zmm6
19161 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm15
19162 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
19163 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm23
19164 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
19165 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm2, %zmm1, %zmm23
19166 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm2, %zmm0, %zmm3
19167 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm17
19168 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
19169 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm24
19170 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
19171 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm2, %zmm1, %zmm24
19172 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm2, %zmm0, %zmm3
19173 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm27
19174 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
19175 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm13
19176 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
19177 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm3, %zmm1, %zmm13
19178 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm3, %zmm0, %zmm12
19179 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
19180 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm3
19181 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19182 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm6, %zmm1, %zmm3
19183 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm6, %zmm0, %zmm10
19184 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm21, %zmm6
19185 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm21, %zmm20
19186 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm25, %zmm1, %zmm20
19187 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm25, %zmm0, %zmm6
19188 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm21
19189 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm25
19190 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm14, %zmm1, %zmm25
19191 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm14, %zmm0, %zmm22
19192 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
19193 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm14
19194 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm18, %zmm1, %zmm14
19195 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm18, %zmm0, %zmm7
19196 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
19197 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19198 ; AVX512BW-FCP-NEXT:    vpermi2d %zmm6, %zmm2, %zmm1
19199 ; AVX512BW-FCP-NEXT:    vpermt2d %zmm6, %zmm0, %zmm2
19200 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm6
19201 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm13[4,5,6,7]
19202 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm23, %zmm24 {%k1}
19203 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm24, %zmm0
19204 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm2 = ymm8[0,1,2,3],ymm9[4,5,6,7]
19205 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm30, %zmm11 {%k1}
19206 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm2, %zmm11, %zmm2
19207 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm5[4,5,6,7]
19208 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm31, %zmm29 {%k1}
19209 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm29, %zmm3
19210 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm20, %zmm25 {%k1}
19211 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm14[4,5,6,7]
19212 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm25, %zmm1
19213 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm19, %zmm28 {%k1}
19214 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
19215 ; AVX512BW-FCP-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload
19216 ; AVX512BW-FCP-NEXT:    # ymm4 = ymm4[0,1,2,3],mem[4,5,6,7]
19217 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm28, %zmm4
19218 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm26 {%k1}
19219 ; AVX512BW-FCP-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm5 # 32-byte Folded Reload
19220 ; AVX512BW-FCP-NEXT:    # ymm5 = ymm15[0,1,2,3],mem[4,5,6,7]
19221 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm5, %zmm26, %zmm5
19222 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm17, %zmm27 {%k1}
19223 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm8 = ymm10[0,1,2,3],ymm12[4,5,6,7]
19224 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm8, %zmm27, %zmm9
19225 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm21, %zmm22 {%k1}
19226 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm7 = ymm6[0,1,2,3],ymm7[4,5,6,7]
19227 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm7, %zmm22, %zmm7
19228 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
19229 ; AVX512BW-FCP-NEXT:    vmovaps %zmm8, 192(%rsi)
19230 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
19231 ; AVX512BW-FCP-NEXT:    vmovaps %zmm8, 128(%rsi)
19232 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
19233 ; AVX512BW-FCP-NEXT:    vmovaps %zmm8, 64(%rsi)
19234 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19235 ; AVX512BW-FCP-NEXT:    vmovaps %zmm6, (%rsi)
19236 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19237 ; AVX512BW-FCP-NEXT:    vmovaps %zmm6, 192(%rdx)
19238 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19239 ; AVX512BW-FCP-NEXT:    vmovaps %zmm6, (%rdx)
19240 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19241 ; AVX512BW-FCP-NEXT:    vmovaps %zmm6, 64(%rdx)
19242 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19243 ; AVX512BW-FCP-NEXT:    vmovaps %zmm6, 128(%rdx)
19244 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19245 ; AVX512BW-FCP-NEXT:    vmovaps %zmm6, 192(%rcx)
19246 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19247 ; AVX512BW-FCP-NEXT:    vmovaps %zmm6, (%rcx)
19248 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19249 ; AVX512BW-FCP-NEXT:    vmovaps %zmm6, 64(%rcx)
19250 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19251 ; AVX512BW-FCP-NEXT:    vmovaps %zmm6, 128(%rcx)
19252 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19253 ; AVX512BW-FCP-NEXT:    vmovaps %zmm6, 192(%r8)
19254 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19255 ; AVX512BW-FCP-NEXT:    vmovaps %zmm6, (%r8)
19256 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19257 ; AVX512BW-FCP-NEXT:    vmovaps %zmm6, 64(%r8)
19258 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19259 ; AVX512BW-FCP-NEXT:    vmovaps %zmm6, 128(%r8)
19260 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19261 ; AVX512BW-FCP-NEXT:    vmovaps %zmm6, 192(%r9)
19262 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19263 ; AVX512BW-FCP-NEXT:    vmovaps %zmm6, (%r9)
19264 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19265 ; AVX512BW-FCP-NEXT:    vmovaps %zmm6, 64(%r9)
19266 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19267 ; AVX512BW-FCP-NEXT:    vmovaps %zmm6, 128(%r9)
19268 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
19269 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19270 ; AVX512BW-FCP-NEXT:    vmovaps %zmm6, 192(%rax)
19271 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19272 ; AVX512BW-FCP-NEXT:    vmovaps %zmm6, (%rax)
19273 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19274 ; AVX512BW-FCP-NEXT:    vmovaps %zmm6, 64(%rax)
19275 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19276 ; AVX512BW-FCP-NEXT:    vmovaps %zmm6, 128(%rax)
19277 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
19278 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, 192(%rax)
19279 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, (%rax)
19280 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, 64(%rax)
19281 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, 128(%rax)
19282 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
19283 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm9, 128(%rax)
19284 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, 192(%rax)
19285 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, (%rax)
19286 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, 64(%rax)
19287 ; AVX512BW-FCP-NEXT:    addq $3144, %rsp # imm = 0xC48
19288 ; AVX512BW-FCP-NEXT:    vzeroupper
19289 ; AVX512BW-FCP-NEXT:    retq
19291 ; AVX512DQ-BW-LABEL: load_i32_stride8_vf64:
19292 ; AVX512DQ-BW:       # %bb.0:
19293 ; AVX512DQ-BW-NEXT:    subq $3144, %rsp # imm = 0xC48
19294 ; AVX512DQ-BW-NEXT:    vmovdqa64 320(%rdi), %zmm11
19295 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19296 ; AVX512DQ-BW-NEXT:    vmovdqa64 448(%rdi), %zmm18
19297 ; AVX512DQ-BW-NEXT:    vmovdqa64 1600(%rdi), %zmm31
19298 ; AVX512DQ-BW-NEXT:    vmovaps 1536(%rdi), %zmm0
19299 ; AVX512DQ-BW-NEXT:    vmovups %zmm0, (%rsp) # 64-byte Spill
19300 ; AVX512DQ-BW-NEXT:    vmovdqa64 1728(%rdi), %zmm24
19301 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm24, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19302 ; AVX512DQ-BW-NEXT:    vmovaps 1664(%rdi), %zmm0
19303 ; AVX512DQ-BW-NEXT:    vmovups %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19304 ; AVX512DQ-BW-NEXT:    vmovdqa64 1856(%rdi), %zmm21
19305 ; AVX512DQ-BW-NEXT:    vmovdqa64 1792(%rdi), %zmm26
19306 ; AVX512DQ-BW-NEXT:    vmovdqa64 1984(%rdi), %zmm22
19307 ; AVX512DQ-BW-NEXT:    vmovdqa64 1920(%rdi), %zmm5
19308 ; AVX512DQ-BW-NEXT:    vmovdqa64 1088(%rdi), %zmm13
19309 ; AVX512DQ-BW-NEXT:    vmovdqa64 1024(%rdi), %zmm3
19310 ; AVX512DQ-BW-NEXT:    vmovdqa64 1216(%rdi), %zmm30
19311 ; AVX512DQ-BW-NEXT:    vmovdqa64 1152(%rdi), %zmm2
19312 ; AVX512DQ-BW-NEXT:    vmovdqa64 1344(%rdi), %zmm29
19313 ; AVX512DQ-BW-NEXT:    vmovdqa64 1280(%rdi), %zmm27
19314 ; AVX512DQ-BW-NEXT:    vmovdqa64 1472(%rdi), %zmm20
19315 ; AVX512DQ-BW-NEXT:    vmovdqa64 1408(%rdi), %zmm10
19316 ; AVX512DQ-BW-NEXT:    vmovdqa64 576(%rdi), %zmm25
19317 ; AVX512DQ-BW-NEXT:    vmovdqa64 512(%rdi), %zmm7
19318 ; AVX512DQ-BW-NEXT:    vmovdqa64 704(%rdi), %zmm9
19319 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19320 ; AVX512DQ-BW-NEXT:    vmovdqa64 640(%rdi), %zmm12
19321 ; AVX512DQ-BW-NEXT:    vmovdqa64 832(%rdi), %zmm6
19322 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19323 ; AVX512DQ-BW-NEXT:    vmovdqa64 768(%rdi), %zmm28
19324 ; AVX512DQ-BW-NEXT:    vmovdqa64 960(%rdi), %zmm23
19325 ; AVX512DQ-BW-NEXT:    vmovdqa64 896(%rdi), %zmm4
19326 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [0,8,16,24,0,8,16,24,0,8,16,24,0,8,16,24]
19327 ; AVX512DQ-BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
19328 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm1
19329 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm16
19330 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm23, %zmm0, %zmm1
19331 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm28, %zmm4
19332 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm6, %zmm0, %zmm4
19333 ; AVX512DQ-BW-NEXT:    movb $-64, %al
19334 ; AVX512DQ-BW-NEXT:    kmovd %eax, %k1
19335 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
19336 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm12, %zmm1
19337 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm12, %zmm15
19338 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm9, %zmm0, %zmm1
19339 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, %zmm12
19340 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, %zmm9
19341 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm25, %zmm0, %zmm12
19342 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
19343 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
19344 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19345 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, %zmm1
19346 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, %zmm6
19347 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19348 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm20, %zmm0, %zmm1
19349 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm27, %zmm4
19350 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm29, %zmm0, %zmm4
19351 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
19352 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm1
19353 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm8
19354 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm30, %zmm0, %zmm1
19355 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm10
19356 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm12
19357 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm13, %zmm0, %zmm12
19358 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
19359 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
19360 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19361 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm14
19362 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19363 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm1
19364 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm22, %zmm0, %zmm1
19365 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm22, %zmm17
19366 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19367 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm26, %zmm4
19368 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm21, %zmm0, %zmm4
19369 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
19370 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
19371 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm1
19372 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm24, %zmm0, %zmm1
19373 ; AVX512DQ-BW-NEXT:    vmovdqu64 (%rsp), %zmm2 # 64-byte Reload
19374 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm12
19375 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm31, %zmm24
19376 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm31, %zmm0, %zmm12
19377 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
19378 ; AVX512DQ-BW-NEXT:    vmovdqa64 384(%rdi), %zmm5
19379 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19380 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
19381 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19382 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm1
19383 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm18, %zmm0, %zmm1
19384 ; AVX512DQ-BW-NEXT:    vmovdqa64 256(%rdi), %zmm22
19385 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm22, %zmm4
19386 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm11, %zmm0, %zmm4
19387 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
19388 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%rdi), %zmm1
19389 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19390 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%rdi), %zmm5
19391 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19392 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm5, %zmm0, %zmm1
19393 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rdi), %zmm7
19394 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rdi), %zmm19
19395 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm19, %zmm7, %zmm0
19396 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19397 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
19398 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
19399 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19400 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [1,9,17,25,1,9,17,25,1,9,17,25,1,9,17,25]
19401 ; AVX512DQ-BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
19402 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm1
19403 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm20, %zmm0, %zmm1
19404 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm27, %zmm4
19405 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm29, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19406 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm29, %zmm0, %zmm4
19407 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
19408 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19409 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm1
19410 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm30, %zmm31
19411 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm30, %zmm0, %zmm1
19412 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, %zmm12
19413 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19414 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm13, %zmm30
19415 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm13, %zmm0, %zmm12
19416 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
19417 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
19418 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19419 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19420 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm1
19421 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm23, %zmm0, %zmm1
19422 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm28, %zmm4
19423 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
19424 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm5, %zmm0, %zmm4
19425 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
19426 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19427 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, %zmm1
19428 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
19429 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm13, %zmm0, %zmm1
19430 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19431 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, %zmm12
19432 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm25, %zmm0, %zmm12
19433 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
19434 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
19435 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19436 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm14, %zmm1
19437 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm17, %zmm0, %zmm1
19438 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm26, %zmm4
19439 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm21, %zmm0, %zmm4
19440 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
19441 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm1
19442 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
19443 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm3, %zmm0, %zmm1
19444 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm12
19445 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm24, %zmm0, %zmm12
19446 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
19447 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
19448 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19449 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19450 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm1
19451 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm18, %zmm0, %zmm1
19452 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm22, %zmm4
19453 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
19454 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm2, %zmm0, %zmm4
19455 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
19456 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
19457 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm14, %zmm1
19458 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
19459 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm11, %zmm0, %zmm1
19460 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm19, %zmm7, %zmm0
19461 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
19462 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
19463 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19464 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [2,10,18,26,2,10,18,26,2,10,18,26,2,10,18,26]
19465 ; AVX512DQ-BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
19466 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
19467 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm17, %zmm1
19468 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm20, %zmm0, %zmm1
19469 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm27, %zmm4
19470 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm29, %zmm0, %zmm4
19471 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
19472 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm31, %zmm0, %zmm8
19473 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm30, %zmm0, %zmm10
19474 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm10[0,1,2,3],ymm8[4,5,6,7]
19475 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
19476 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19477 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm1
19478 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm23, %zmm0, %zmm1
19479 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm28, %zmm4
19480 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm5, %zmm0, %zmm4
19481 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
19482 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm13, %zmm0, %zmm15
19483 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm13, %zmm16
19484 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm25, %zmm0, %zmm9
19485 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm25, %zmm29
19486 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm9[0,1,2,3],ymm15[4,5,6,7]
19487 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
19488 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19489 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
19490 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm1
19491 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
19492 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm10, %zmm0, %zmm1
19493 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm26, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19494 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm26, %zmm4
19495 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm21, %zmm7
19496 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm21, %zmm0, %zmm4
19497 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
19498 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
19499 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, %zmm1
19500 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm25
19501 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm3, %zmm0, %zmm1
19502 ; AVX512DQ-BW-NEXT:    vmovdqu64 (%rsp), %zmm3 # 64-byte Reload
19503 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm12
19504 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm24, %zmm15
19505 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm24, %zmm0, %zmm12
19506 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
19507 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
19508 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19509 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm13
19510 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm1
19511 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm18, %zmm0, %zmm1
19512 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm22, %zmm4
19513 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm2, %zmm0, %zmm4
19514 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
19515 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm14, %zmm6
19516 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm14, %zmm1
19517 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm11, %zmm0, %zmm1
19518 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, %zmm24
19519 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
19520 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm19, %zmm14, %zmm0
19521 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
19522 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
19523 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19524 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [3,11,19,27,3,11,19,27,3,11,19,27,3,11,19,27]
19525 ; AVX512DQ-BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
19526 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm17, %zmm1
19527 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm20, %zmm0, %zmm1
19528 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm27, %zmm4
19529 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
19530 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm2, %zmm0, %zmm4
19531 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
19532 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
19533 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm31, %zmm21
19534 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm31, %zmm0, %zmm1
19535 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
19536 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm30, %zmm0, %zmm12
19537 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
19538 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
19539 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19540 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
19541 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, %zmm1
19542 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm23, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19543 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm23, %zmm0, %zmm1
19544 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm28, %zmm4
19545 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm5, %zmm0, %zmm4
19546 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm31
19547 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
19548 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
19549 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm16, %zmm0, %zmm1
19550 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
19551 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm29, %zmm0, %zmm12
19552 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
19553 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
19554 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19555 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm1
19556 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm10, %zmm0, %zmm1
19557 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm26, %zmm4
19558 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm7, %zmm0, %zmm4
19559 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, %zmm26
19560 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
19561 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, %zmm1
19562 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm25, %zmm9
19563 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm25, %zmm0, %zmm1
19564 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm12
19565 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm15, %zmm0, %zmm12
19566 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
19567 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
19568 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19569 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm13, %zmm1
19570 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm18, %zmm0, %zmm1
19571 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm18, %zmm25
19572 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm22, %zmm4
19573 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
19574 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm5, %zmm0, %zmm4
19575 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
19576 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm1
19577 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm24, %zmm18
19578 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm24, %zmm0, %zmm1
19579 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm19, %zmm14, %zmm0
19580 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm19, %zmm24
19581 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm14, %zmm13
19582 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
19583 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
19584 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19585 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [4,12,20,28,4,12,20,28,4,12,20,28,4,12,20,28]
19586 ; AVX512DQ-BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
19587 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm17, %zmm1
19588 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19589 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm20, %zmm0, %zmm1
19590 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm27, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19591 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm27, %zmm4
19592 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm3
19593 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm2, %zmm0, %zmm4
19594 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
19595 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
19596 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, %zmm1
19597 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm21, %zmm6
19598 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19599 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm21, %zmm0, %zmm1
19600 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
19601 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19602 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm30, %zmm0, %zmm12
19603 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
19604 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
19605 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19606 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, %zmm1
19607 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm23, %zmm0, %zmm1
19608 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm28, %zmm4
19609 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm31, %zmm0, %zmm4
19610 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
19611 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
19612 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm1
19613 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm16, %zmm0, %zmm1
19614 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
19615 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm12
19616 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm29, %zmm11
19617 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm29, %zmm0, %zmm12
19618 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
19619 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
19620 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19621 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm23 # 64-byte Reload
19622 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm23, %zmm1
19623 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm10, %zmm0, %zmm1
19624 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, %zmm31
19625 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
19626 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, %zmm4
19627 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm26, %zmm19
19628 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm26, %zmm0, %zmm4
19629 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
19630 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
19631 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm9, %zmm0, %zmm1
19632 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, %zmm26
19633 ; AVX512DQ-BW-NEXT:    vmovdqu64 (%rsp), %zmm12 # 64-byte Reload
19634 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm15, %zmm0, %zmm12
19635 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, %zmm29
19636 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19637 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
19638 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
19639 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19640 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm21 # 64-byte Reload
19641 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm21, %zmm1
19642 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm25, %zmm0, %zmm1
19643 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm22, %zmm4
19644 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm14
19645 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm5, %zmm0, %zmm4
19646 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
19647 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
19648 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, %zmm1
19649 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm18, %zmm0, %zmm1
19650 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm13, %zmm5
19651 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm24, %zmm13
19652 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm24, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19653 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm24, %zmm5, %zmm0
19654 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
19655 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
19656 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19657 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [5,13,21,29,5,13,21,29,5,13,21,29,5,13,21,29]
19658 ; AVX512DQ-BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
19659 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm20, %zmm0, %zmm17
19660 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm3, %zmm0, %zmm27
19661 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm17, %zmm27 {%k1}
19662 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, %zmm1
19663 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm6, %zmm0, %zmm1
19664 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
19665 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm30, %zmm0, %zmm12
19666 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
19667 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm27, %zmm1
19668 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19669 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm24 # 64-byte Reload
19670 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm24, %zmm1
19671 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
19672 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm3, %zmm0, %zmm1
19673 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm28, %zmm4
19674 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
19675 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm7, %zmm0, %zmm4
19676 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
19677 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm1
19678 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm15
19679 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm16, %zmm0, %zmm1
19680 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm8
19681 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm12
19682 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm11, %zmm0, %zmm12
19683 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, %zmm2
19684 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
19685 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
19686 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19687 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm23, %zmm1
19688 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm31, %zmm0, %zmm1
19689 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm31, %zmm16
19690 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, %zmm4
19691 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, %zmm27
19692 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm19, %zmm0, %zmm4
19693 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm19, %zmm20
19694 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
19695 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
19696 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, %zmm1
19697 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm26, %zmm0, %zmm1
19698 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm26, %zmm17
19699 ; AVX512DQ-BW-NEXT:    vmovdqu64 (%rsp), %zmm6 # 64-byte Reload
19700 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm12
19701 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm29, %zmm0, %zmm12
19702 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
19703 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
19704 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19705 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm21, %zmm1
19706 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm25, %zmm0, %zmm1
19707 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm22, %zmm4
19708 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm14, %zmm0, %zmm4
19709 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
19710 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, %zmm1
19711 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm18, %zmm0, %zmm1
19712 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm13, %zmm5, %zmm0
19713 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
19714 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
19715 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19716 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm1 = [6,14,22,30,6,14,22,30,6,14,22,30,6,14,22,30]
19717 ; AVX512DQ-BW-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
19718 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm24, %zmm4
19719 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm24, %zmm30
19720 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm3, %zmm1, %zmm30
19721 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [7,15,23,31,7,15,23,31,7,15,23,31,7,15,23,31]
19722 ; AVX512DQ-BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
19723 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm3, %zmm0, %zmm4
19724 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm19
19725 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm28, %zmm11
19726 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm7, %zmm1, %zmm11
19727 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm7, %zmm0, %zmm28
19728 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, %zmm9
19729 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm8, %zmm1, %zmm9
19730 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm8, %zmm0, %zmm15
19731 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19732 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
19733 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm8
19734 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm2, %zmm1, %zmm8
19735 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm2, %zmm0, %zmm3
19736 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19737 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm23, %zmm31
19738 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm16, %zmm1, %zmm31
19739 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm16, %zmm0, %zmm23
19740 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm23, %zmm16
19741 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm27, %zmm29
19742 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm20, %zmm1, %zmm29
19743 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm20, %zmm0, %zmm27
19744 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm27, %zmm26
19745 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, %zmm2
19746 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, %zmm5
19747 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm17, %zmm1, %zmm5
19748 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm17, %zmm0, %zmm2
19749 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19750 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm4
19751 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
19752 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm2, %zmm1, %zmm4
19753 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm2, %zmm0, %zmm6
19754 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm15
19755 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
19756 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm23
19757 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
19758 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm2, %zmm1, %zmm23
19759 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm2, %zmm0, %zmm3
19760 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm17
19761 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
19762 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm24
19763 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
19764 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm2, %zmm1, %zmm24
19765 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm2, %zmm0, %zmm3
19766 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm27
19767 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
19768 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm12, %zmm13
19769 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
19770 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm3, %zmm1, %zmm13
19771 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm3, %zmm0, %zmm12
19772 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
19773 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, %zmm3
19774 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19775 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm6, %zmm1, %zmm3
19776 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm6, %zmm0, %zmm10
19777 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm21, %zmm6
19778 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm21, %zmm20
19779 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm25, %zmm1, %zmm20
19780 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm25, %zmm0, %zmm6
19781 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm21
19782 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm22, %zmm25
19783 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm14, %zmm1, %zmm25
19784 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm14, %zmm0, %zmm22
19785 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
19786 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, %zmm14
19787 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm18, %zmm1, %zmm14
19788 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm18, %zmm0, %zmm7
19789 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
19790 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19791 ; AVX512DQ-BW-NEXT:    vpermi2d %zmm6, %zmm2, %zmm1
19792 ; AVX512DQ-BW-NEXT:    vpermt2d %zmm6, %zmm0, %zmm2
19793 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm6
19794 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm13[4,5,6,7]
19795 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm23, %zmm24 {%k1}
19796 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm24, %zmm0
19797 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm8[0,1,2,3],ymm9[4,5,6,7]
19798 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm30, %zmm11 {%k1}
19799 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm2, %zmm11, %zmm2
19800 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm5[4,5,6,7]
19801 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm31, %zmm29 {%k1}
19802 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm3, %zmm29, %zmm3
19803 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm20, %zmm25 {%k1}
19804 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm14[4,5,6,7]
19805 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm25, %zmm1
19806 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm19, %zmm28 {%k1}
19807 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
19808 ; AVX512DQ-BW-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload
19809 ; AVX512DQ-BW-NEXT:    # ymm4 = ymm4[0,1,2,3],mem[4,5,6,7]
19810 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm4, %zmm28, %zmm4
19811 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm26 {%k1}
19812 ; AVX512DQ-BW-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm5 # 32-byte Folded Reload
19813 ; AVX512DQ-BW-NEXT:    # ymm5 = ymm15[0,1,2,3],mem[4,5,6,7]
19814 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm5, %zmm26, %zmm5
19815 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm17, %zmm27 {%k1}
19816 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm10[0,1,2,3],ymm12[4,5,6,7]
19817 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm27, %zmm9
19818 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm21, %zmm22 {%k1}
19819 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm7 = ymm6[0,1,2,3],ymm7[4,5,6,7]
19820 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm7, %zmm22, %zmm7
19821 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
19822 ; AVX512DQ-BW-NEXT:    vmovaps %zmm8, 192(%rsi)
19823 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
19824 ; AVX512DQ-BW-NEXT:    vmovaps %zmm8, 128(%rsi)
19825 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
19826 ; AVX512DQ-BW-NEXT:    vmovaps %zmm8, 64(%rsi)
19827 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19828 ; AVX512DQ-BW-NEXT:    vmovaps %zmm6, (%rsi)
19829 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19830 ; AVX512DQ-BW-NEXT:    vmovaps %zmm6, 192(%rdx)
19831 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19832 ; AVX512DQ-BW-NEXT:    vmovaps %zmm6, (%rdx)
19833 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19834 ; AVX512DQ-BW-NEXT:    vmovaps %zmm6, 64(%rdx)
19835 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19836 ; AVX512DQ-BW-NEXT:    vmovaps %zmm6, 128(%rdx)
19837 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19838 ; AVX512DQ-BW-NEXT:    vmovaps %zmm6, 192(%rcx)
19839 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19840 ; AVX512DQ-BW-NEXT:    vmovaps %zmm6, (%rcx)
19841 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19842 ; AVX512DQ-BW-NEXT:    vmovaps %zmm6, 64(%rcx)
19843 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19844 ; AVX512DQ-BW-NEXT:    vmovaps %zmm6, 128(%rcx)
19845 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19846 ; AVX512DQ-BW-NEXT:    vmovaps %zmm6, 192(%r8)
19847 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19848 ; AVX512DQ-BW-NEXT:    vmovaps %zmm6, (%r8)
19849 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19850 ; AVX512DQ-BW-NEXT:    vmovaps %zmm6, 64(%r8)
19851 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19852 ; AVX512DQ-BW-NEXT:    vmovaps %zmm6, 128(%r8)
19853 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19854 ; AVX512DQ-BW-NEXT:    vmovaps %zmm6, 192(%r9)
19855 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19856 ; AVX512DQ-BW-NEXT:    vmovaps %zmm6, (%r9)
19857 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19858 ; AVX512DQ-BW-NEXT:    vmovaps %zmm6, 64(%r9)
19859 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19860 ; AVX512DQ-BW-NEXT:    vmovaps %zmm6, 128(%r9)
19861 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
19862 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19863 ; AVX512DQ-BW-NEXT:    vmovaps %zmm6, 192(%rax)
19864 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19865 ; AVX512DQ-BW-NEXT:    vmovaps %zmm6, (%rax)
19866 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19867 ; AVX512DQ-BW-NEXT:    vmovaps %zmm6, 64(%rax)
19868 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19869 ; AVX512DQ-BW-NEXT:    vmovaps %zmm6, 128(%rax)
19870 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
19871 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, 192(%rax)
19872 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, (%rax)
19873 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, 64(%rax)
19874 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, 128(%rax)
19875 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
19876 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, 128(%rax)
19877 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, 192(%rax)
19878 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, (%rax)
19879 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, 64(%rax)
19880 ; AVX512DQ-BW-NEXT:    addq $3144, %rsp # imm = 0xC48
19881 ; AVX512DQ-BW-NEXT:    vzeroupper
19882 ; AVX512DQ-BW-NEXT:    retq
19884 ; AVX512DQ-BW-FCP-LABEL: load_i32_stride8_vf64:
19885 ; AVX512DQ-BW-FCP:       # %bb.0:
19886 ; AVX512DQ-BW-FCP-NEXT:    subq $3144, %rsp # imm = 0xC48
19887 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 320(%rdi), %zmm11
19888 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19889 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 448(%rdi), %zmm18
19890 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 1600(%rdi), %zmm31
19891 ; AVX512DQ-BW-FCP-NEXT:    vmovaps 1536(%rdi), %zmm0
19892 ; AVX512DQ-BW-FCP-NEXT:    vmovups %zmm0, (%rsp) # 64-byte Spill
19893 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 1728(%rdi), %zmm24
19894 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm24, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19895 ; AVX512DQ-BW-FCP-NEXT:    vmovaps 1664(%rdi), %zmm0
19896 ; AVX512DQ-BW-FCP-NEXT:    vmovups %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19897 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 1856(%rdi), %zmm21
19898 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 1792(%rdi), %zmm26
19899 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 1984(%rdi), %zmm22
19900 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 1920(%rdi), %zmm5
19901 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 1088(%rdi), %zmm13
19902 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 1024(%rdi), %zmm3
19903 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 1216(%rdi), %zmm30
19904 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 1152(%rdi), %zmm2
19905 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 1344(%rdi), %zmm29
19906 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 1280(%rdi), %zmm27
19907 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 1472(%rdi), %zmm20
19908 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 1408(%rdi), %zmm10
19909 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 576(%rdi), %zmm25
19910 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 512(%rdi), %zmm7
19911 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 704(%rdi), %zmm9
19912 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19913 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 640(%rdi), %zmm12
19914 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 832(%rdi), %zmm6
19915 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19916 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 768(%rdi), %zmm28
19917 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 960(%rdi), %zmm23
19918 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 896(%rdi), %zmm4
19919 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [0,8,16,24,0,8,16,24,0,8,16,24,0,8,16,24]
19920 ; AVX512DQ-BW-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
19921 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm1
19922 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm16
19923 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm23, %zmm0, %zmm1
19924 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm28, %zmm4
19925 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm6, %zmm0, %zmm4
19926 ; AVX512DQ-BW-FCP-NEXT:    movb $-64, %al
19927 ; AVX512DQ-BW-FCP-NEXT:    kmovd %eax, %k1
19928 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
19929 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm1
19930 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm15
19931 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm9, %zmm0, %zmm1
19932 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm12
19933 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm9
19934 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm25, %zmm0, %zmm12
19935 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
19936 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
19937 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19938 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm1
19939 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm6
19940 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19941 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm20, %zmm0, %zmm1
19942 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm27, %zmm4
19943 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm29, %zmm0, %zmm4
19944 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
19945 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm1
19946 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm8
19947 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm30, %zmm0, %zmm1
19948 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm10
19949 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm12
19950 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm13, %zmm0, %zmm12
19951 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
19952 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
19953 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19954 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm14
19955 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19956 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm1
19957 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm22, %zmm0, %zmm1
19958 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm17
19959 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19960 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm26, %zmm4
19961 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm21, %zmm0, %zmm4
19962 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
19963 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
19964 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm1
19965 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm24, %zmm0, %zmm1
19966 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 (%rsp), %zmm2 # 64-byte Reload
19967 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm12
19968 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm31, %zmm24
19969 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm31, %zmm0, %zmm12
19970 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
19971 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 384(%rdi), %zmm5
19972 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19973 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
19974 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19975 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm1
19976 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm18, %zmm0, %zmm1
19977 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 256(%rdi), %zmm22
19978 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm4
19979 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm11, %zmm0, %zmm4
19980 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
19981 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm1
19982 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19983 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm5
19984 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19985 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm5, %zmm0, %zmm1
19986 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm7
19987 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm19
19988 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm19, %zmm7, %zmm0
19989 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19990 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
19991 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
19992 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19993 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [1,9,17,25,1,9,17,25,1,9,17,25,1,9,17,25]
19994 ; AVX512DQ-BW-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
19995 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm1
19996 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm20, %zmm0, %zmm1
19997 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm27, %zmm4
19998 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm29, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19999 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm29, %zmm0, %zmm4
20000 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
20001 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20002 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm1
20003 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm30, %zmm31
20004 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm30, %zmm0, %zmm1
20005 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm12
20006 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20007 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm30
20008 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm13, %zmm0, %zmm12
20009 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
20010 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
20011 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20012 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20013 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm1
20014 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm23, %zmm0, %zmm1
20015 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm28, %zmm4
20016 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
20017 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm5, %zmm0, %zmm4
20018 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
20019 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20020 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm1
20021 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
20022 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm13, %zmm0, %zmm1
20023 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20024 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm12
20025 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm25, %zmm0, %zmm12
20026 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
20027 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
20028 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20029 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm14, %zmm1
20030 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm17, %zmm0, %zmm1
20031 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm26, %zmm4
20032 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm21, %zmm0, %zmm4
20033 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
20034 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm1
20035 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
20036 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm3, %zmm0, %zmm1
20037 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm12
20038 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm24, %zmm0, %zmm12
20039 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
20040 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
20041 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20042 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
20043 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm1
20044 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm18, %zmm0, %zmm1
20045 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm4
20046 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
20047 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm2, %zmm0, %zmm4
20048 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
20049 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
20050 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm14, %zmm1
20051 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
20052 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm11, %zmm0, %zmm1
20053 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm19, %zmm7, %zmm0
20054 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
20055 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
20056 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20057 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [2,10,18,26,2,10,18,26,2,10,18,26,2,10,18,26]
20058 ; AVX512DQ-BW-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
20059 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
20060 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm17, %zmm1
20061 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm20, %zmm0, %zmm1
20062 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm27, %zmm4
20063 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm29, %zmm0, %zmm4
20064 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
20065 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm31, %zmm0, %zmm8
20066 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm30, %zmm0, %zmm10
20067 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm10[0,1,2,3],ymm8[4,5,6,7]
20068 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
20069 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20070 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm1
20071 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm23, %zmm0, %zmm1
20072 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm28, %zmm4
20073 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm5, %zmm0, %zmm4
20074 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
20075 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm13, %zmm0, %zmm15
20076 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm16
20077 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm25, %zmm0, %zmm9
20078 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm25, %zmm29
20079 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm9[0,1,2,3],ymm15[4,5,6,7]
20080 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
20081 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20082 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
20083 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm1
20084 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
20085 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm10, %zmm0, %zmm1
20086 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm26, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20087 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm26, %zmm4
20088 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm21, %zmm7
20089 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm21, %zmm0, %zmm4
20090 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
20091 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
20092 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm1
20093 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm25
20094 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm3, %zmm0, %zmm1
20095 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 (%rsp), %zmm3 # 64-byte Reload
20096 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm12
20097 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm24, %zmm15
20098 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm24, %zmm0, %zmm12
20099 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
20100 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
20101 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20102 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm13
20103 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm1
20104 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm18, %zmm0, %zmm1
20105 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm4
20106 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm2, %zmm0, %zmm4
20107 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
20108 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm14, %zmm6
20109 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm14, %zmm1
20110 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm11, %zmm0, %zmm1
20111 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm24
20112 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
20113 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm19, %zmm14, %zmm0
20114 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
20115 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
20116 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20117 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [3,11,19,27,3,11,19,27,3,11,19,27,3,11,19,27]
20118 ; AVX512DQ-BW-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
20119 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm17, %zmm1
20120 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm20, %zmm0, %zmm1
20121 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm27, %zmm4
20122 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
20123 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm2, %zmm0, %zmm4
20124 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
20125 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
20126 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm31, %zmm21
20127 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm31, %zmm0, %zmm1
20128 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
20129 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm30, %zmm0, %zmm12
20130 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
20131 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
20132 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20133 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
20134 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm1
20135 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm23, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20136 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm23, %zmm0, %zmm1
20137 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm28, %zmm4
20138 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm5, %zmm0, %zmm4
20139 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm31
20140 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
20141 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
20142 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm16, %zmm0, %zmm1
20143 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
20144 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm29, %zmm0, %zmm12
20145 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
20146 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
20147 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20148 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm1
20149 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm10, %zmm0, %zmm1
20150 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm26, %zmm4
20151 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm7, %zmm0, %zmm4
20152 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm26
20153 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
20154 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm1
20155 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm25, %zmm9
20156 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm25, %zmm0, %zmm1
20157 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm12
20158 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm15, %zmm0, %zmm12
20159 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
20160 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
20161 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20162 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm1
20163 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm18, %zmm0, %zmm1
20164 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm18, %zmm25
20165 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm4
20166 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
20167 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm5, %zmm0, %zmm4
20168 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
20169 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm1
20170 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm24, %zmm18
20171 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm24, %zmm0, %zmm1
20172 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm19, %zmm14, %zmm0
20173 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm19, %zmm24
20174 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm14, %zmm13
20175 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
20176 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
20177 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20178 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [4,12,20,28,4,12,20,28,4,12,20,28,4,12,20,28]
20179 ; AVX512DQ-BW-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
20180 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm17, %zmm1
20181 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20182 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm20, %zmm0, %zmm1
20183 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm27, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20184 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm27, %zmm4
20185 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm3
20186 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm2, %zmm0, %zmm4
20187 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
20188 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
20189 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm1
20190 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm21, %zmm6
20191 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20192 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm21, %zmm0, %zmm1
20193 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
20194 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20195 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm30, %zmm0, %zmm12
20196 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
20197 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
20198 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20199 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm1
20200 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm23, %zmm0, %zmm1
20201 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm28, %zmm4
20202 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm31, %zmm0, %zmm4
20203 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
20204 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
20205 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm1
20206 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm16, %zmm0, %zmm1
20207 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
20208 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm12
20209 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm29, %zmm11
20210 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm29, %zmm0, %zmm12
20211 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
20212 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
20213 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20214 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm23 # 64-byte Reload
20215 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm23, %zmm1
20216 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm10, %zmm0, %zmm1
20217 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm31
20218 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
20219 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm4
20220 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm26, %zmm19
20221 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm26, %zmm0, %zmm4
20222 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
20223 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
20224 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm9, %zmm0, %zmm1
20225 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm26
20226 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 (%rsp), %zmm12 # 64-byte Reload
20227 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm15, %zmm0, %zmm12
20228 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm29
20229 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20230 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
20231 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
20232 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20233 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm21 # 64-byte Reload
20234 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm21, %zmm1
20235 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm25, %zmm0, %zmm1
20236 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm4
20237 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm14
20238 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm5, %zmm0, %zmm4
20239 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
20240 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
20241 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm1
20242 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm18, %zmm0, %zmm1
20243 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm5
20244 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm24, %zmm13
20245 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm24, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20246 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm24, %zmm5, %zmm0
20247 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
20248 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
20249 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20250 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [5,13,21,29,5,13,21,29,5,13,21,29,5,13,21,29]
20251 ; AVX512DQ-BW-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
20252 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm20, %zmm0, %zmm17
20253 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm3, %zmm0, %zmm27
20254 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm17, %zmm27 {%k1}
20255 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm1
20256 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm6, %zmm0, %zmm1
20257 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
20258 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm30, %zmm0, %zmm12
20259 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
20260 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm27, %zmm1
20261 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20262 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm24 # 64-byte Reload
20263 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm24, %zmm1
20264 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
20265 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm3, %zmm0, %zmm1
20266 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm28, %zmm4
20267 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
20268 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm7, %zmm0, %zmm4
20269 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
20270 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm1
20271 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm15
20272 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm16, %zmm0, %zmm1
20273 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm8
20274 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm12
20275 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm11, %zmm0, %zmm12
20276 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm2
20277 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
20278 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
20279 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20280 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm23, %zmm1
20281 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm31, %zmm0, %zmm1
20282 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm31, %zmm16
20283 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm4
20284 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm27
20285 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm19, %zmm0, %zmm4
20286 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm19, %zmm20
20287 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
20288 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
20289 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm1
20290 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm26, %zmm0, %zmm1
20291 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm26, %zmm17
20292 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 (%rsp), %zmm6 # 64-byte Reload
20293 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm12
20294 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm29, %zmm0, %zmm12
20295 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm1[4,5,6,7]
20296 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm4, %zmm1
20297 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20298 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm21, %zmm1
20299 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm25, %zmm0, %zmm1
20300 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm4
20301 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm14, %zmm0, %zmm4
20302 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
20303 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm1
20304 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm18, %zmm0, %zmm1
20305 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm13, %zmm5, %zmm0
20306 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
20307 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
20308 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20309 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm1 = [6,14,22,30,6,14,22,30,6,14,22,30,6,14,22,30]
20310 ; AVX512DQ-BW-FCP-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
20311 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm24, %zmm4
20312 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm24, %zmm30
20313 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm3, %zmm1, %zmm30
20314 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [7,15,23,31,7,15,23,31,7,15,23,31,7,15,23,31]
20315 ; AVX512DQ-BW-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
20316 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm3, %zmm0, %zmm4
20317 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm19
20318 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm28, %zmm11
20319 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm7, %zmm1, %zmm11
20320 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm7, %zmm0, %zmm28
20321 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm9
20322 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm8, %zmm1, %zmm9
20323 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm8, %zmm0, %zmm15
20324 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20325 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
20326 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm8
20327 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm2, %zmm1, %zmm8
20328 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm2, %zmm0, %zmm3
20329 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20330 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm23, %zmm31
20331 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm16, %zmm1, %zmm31
20332 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm16, %zmm0, %zmm23
20333 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm23, %zmm16
20334 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm27, %zmm29
20335 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm20, %zmm1, %zmm29
20336 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm20, %zmm0, %zmm27
20337 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm27, %zmm26
20338 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm2
20339 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm5
20340 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm17, %zmm1, %zmm5
20341 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm17, %zmm0, %zmm2
20342 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20343 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm4
20344 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
20345 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm2, %zmm1, %zmm4
20346 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm2, %zmm0, %zmm6
20347 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm15
20348 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
20349 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm23
20350 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
20351 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm2, %zmm1, %zmm23
20352 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm2, %zmm0, %zmm3
20353 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm17
20354 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
20355 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm24
20356 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
20357 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm2, %zmm1, %zmm24
20358 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm2, %zmm0, %zmm3
20359 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm27
20360 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
20361 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm13
20362 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
20363 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm3, %zmm1, %zmm13
20364 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm3, %zmm0, %zmm12
20365 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
20366 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm3
20367 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
20368 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm6, %zmm1, %zmm3
20369 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm6, %zmm0, %zmm10
20370 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm21, %zmm6
20371 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm21, %zmm20
20372 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm25, %zmm1, %zmm20
20373 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm25, %zmm0, %zmm6
20374 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm21
20375 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm25
20376 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm14, %zmm1, %zmm25
20377 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm14, %zmm0, %zmm22
20378 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
20379 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm14
20380 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm18, %zmm1, %zmm14
20381 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm18, %zmm0, %zmm7
20382 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
20383 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
20384 ; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm6, %zmm2, %zmm1
20385 ; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm6, %zmm0, %zmm2
20386 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm6
20387 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm13[4,5,6,7]
20388 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm23, %zmm24 {%k1}
20389 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm24, %zmm0
20390 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm2 = ymm8[0,1,2,3],ymm9[4,5,6,7]
20391 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm30, %zmm11 {%k1}
20392 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm2, %zmm11, %zmm2
20393 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm5[4,5,6,7]
20394 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm31, %zmm29 {%k1}
20395 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm29, %zmm3
20396 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm20, %zmm25 {%k1}
20397 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm14[4,5,6,7]
20398 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm25, %zmm1
20399 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm19, %zmm28 {%k1}
20400 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
20401 ; AVX512DQ-BW-FCP-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload
20402 ; AVX512DQ-BW-FCP-NEXT:    # ymm4 = ymm4[0,1,2,3],mem[4,5,6,7]
20403 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm28, %zmm4
20404 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm26 {%k1}
20405 ; AVX512DQ-BW-FCP-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm5 # 32-byte Folded Reload
20406 ; AVX512DQ-BW-FCP-NEXT:    # ymm5 = ymm15[0,1,2,3],mem[4,5,6,7]
20407 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm5, %zmm26, %zmm5
20408 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm17, %zmm27 {%k1}
20409 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm8 = ymm10[0,1,2,3],ymm12[4,5,6,7]
20410 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm8, %zmm27, %zmm9
20411 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm21, %zmm22 {%k1}
20412 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm7 = ymm6[0,1,2,3],ymm7[4,5,6,7]
20413 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm7, %zmm22, %zmm7
20414 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
20415 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm8, 192(%rsi)
20416 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
20417 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm8, 128(%rsi)
20418 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
20419 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm8, 64(%rsi)
20420 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
20421 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm6, (%rsi)
20422 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
20423 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm6, 192(%rdx)
20424 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
20425 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm6, (%rdx)
20426 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
20427 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm6, 64(%rdx)
20428 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
20429 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm6, 128(%rdx)
20430 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
20431 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm6, 192(%rcx)
20432 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
20433 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm6, (%rcx)
20434 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
20435 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm6, 64(%rcx)
20436 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
20437 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm6, 128(%rcx)
20438 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
20439 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm6, 192(%r8)
20440 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
20441 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm6, (%r8)
20442 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
20443 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm6, 64(%r8)
20444 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
20445 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm6, 128(%r8)
20446 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
20447 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm6, 192(%r9)
20448 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
20449 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm6, (%r9)
20450 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
20451 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm6, 64(%r9)
20452 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
20453 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm6, 128(%r9)
20454 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
20455 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
20456 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm6, 192(%rax)
20457 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
20458 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm6, (%rax)
20459 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
20460 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm6, 64(%rax)
20461 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
20462 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm6, 128(%rax)
20463 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
20464 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, 192(%rax)
20465 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, (%rax)
20466 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, 64(%rax)
20467 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, 128(%rax)
20468 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
20469 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, 128(%rax)
20470 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, 192(%rax)
20471 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, (%rax)
20472 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, 64(%rax)
20473 ; AVX512DQ-BW-FCP-NEXT:    addq $3144, %rsp # imm = 0xC48
20474 ; AVX512DQ-BW-FCP-NEXT:    vzeroupper
20475 ; AVX512DQ-BW-FCP-NEXT:    retq
20476   %wide.vec = load <512 x i32>, ptr %in.vec, align 64
20477   %strided.vec0 = shufflevector <512 x i32> %wide.vec, <512 x i32> poison, <64 x i32> <i32 0, i32 8, i32 16, i32 24, i32 32, i32 40, i32 48, i32 56, i32 64, i32 72, i32 80, i32 88, i32 96, i32 104, i32 112, i32 120, i32 128, i32 136, i32 144, i32 152, i32 160, i32 168, i32 176, i32 184, i32 192, i32 200, i32 208, i32 216, i32 224, i32 232, i32 240, i32 248, i32 256, i32 264, i32 272, i32 280, i32 288, i32 296, i32 304, i32 312, i32 320, i32 328, i32 336, i32 344, i32 352, i32 360, i32 368, i32 376, i32 384, i32 392, i32 400, i32 408, i32 416, i32 424, i32 432, i32 440, i32 448, i32 456, i32 464, i32 472, i32 480, i32 488, i32 496, i32 504>
20478   %strided.vec1 = shufflevector <512 x i32> %wide.vec, <512 x i32> poison, <64 x i32> <i32 1, i32 9, i32 17, i32 25, i32 33, i32 41, i32 49, i32 57, i32 65, i32 73, i32 81, i32 89, i32 97, i32 105, i32 113, i32 121, i32 129, i32 137, i32 145, i32 153, i32 161, i32 169, i32 177, i32 185, i32 193, i32 201, i32 209, i32 217, i32 225, i32 233, i32 241, i32 249, i32 257, i32 265, i32 273, i32 281, i32 289, i32 297, i32 305, i32 313, i32 321, i32 329, i32 337, i32 345, i32 353, i32 361, i32 369, i32 377, i32 385, i32 393, i32 401, i32 409, i32 417, i32 425, i32 433, i32 441, i32 449, i32 457, i32 465, i32 473, i32 481, i32 489, i32 497, i32 505>
20479   %strided.vec2 = shufflevector <512 x i32> %wide.vec, <512 x i32> poison, <64 x i32> <i32 2, i32 10, i32 18, i32 26, i32 34, i32 42, i32 50, i32 58, i32 66, i32 74, i32 82, i32 90, i32 98, i32 106, i32 114, i32 122, i32 130, i32 138, i32 146, i32 154, i32 162, i32 170, i32 178, i32 186, i32 194, i32 202, i32 210, i32 218, i32 226, i32 234, i32 242, i32 250, i32 258, i32 266, i32 274, i32 282, i32 290, i32 298, i32 306, i32 314, i32 322, i32 330, i32 338, i32 346, i32 354, i32 362, i32 370, i32 378, i32 386, i32 394, i32 402, i32 410, i32 418, i32 426, i32 434, i32 442, i32 450, i32 458, i32 466, i32 474, i32 482, i32 490, i32 498, i32 506>
20480   %strided.vec3 = shufflevector <512 x i32> %wide.vec, <512 x i32> poison, <64 x i32> <i32 3, i32 11, i32 19, i32 27, i32 35, i32 43, i32 51, i32 59, i32 67, i32 75, i32 83, i32 91, i32 99, i32 107, i32 115, i32 123, i32 131, i32 139, i32 147, i32 155, i32 163, i32 171, i32 179, i32 187, i32 195, i32 203, i32 211, i32 219, i32 227, i32 235, i32 243, i32 251, i32 259, i32 267, i32 275, i32 283, i32 291, i32 299, i32 307, i32 315, i32 323, i32 331, i32 339, i32 347, i32 355, i32 363, i32 371, i32 379, i32 387, i32 395, i32 403, i32 411, i32 419, i32 427, i32 435, i32 443, i32 451, i32 459, i32 467, i32 475, i32 483, i32 491, i32 499, i32 507>
20481   %strided.vec4 = shufflevector <512 x i32> %wide.vec, <512 x i32> poison, <64 x i32> <i32 4, i32 12, i32 20, i32 28, i32 36, i32 44, i32 52, i32 60, i32 68, i32 76, i32 84, i32 92, i32 100, i32 108, i32 116, i32 124, i32 132, i32 140, i32 148, i32 156, i32 164, i32 172, i32 180, i32 188, i32 196, i32 204, i32 212, i32 220, i32 228, i32 236, i32 244, i32 252, i32 260, i32 268, i32 276, i32 284, i32 292, i32 300, i32 308, i32 316, i32 324, i32 332, i32 340, i32 348, i32 356, i32 364, i32 372, i32 380, i32 388, i32 396, i32 404, i32 412, i32 420, i32 428, i32 436, i32 444, i32 452, i32 460, i32 468, i32 476, i32 484, i32 492, i32 500, i32 508>
20482   %strided.vec5 = shufflevector <512 x i32> %wide.vec, <512 x i32> poison, <64 x i32> <i32 5, i32 13, i32 21, i32 29, i32 37, i32 45, i32 53, i32 61, i32 69, i32 77, i32 85, i32 93, i32 101, i32 109, i32 117, i32 125, i32 133, i32 141, i32 149, i32 157, i32 165, i32 173, i32 181, i32 189, i32 197, i32 205, i32 213, i32 221, i32 229, i32 237, i32 245, i32 253, i32 261, i32 269, i32 277, i32 285, i32 293, i32 301, i32 309, i32 317, i32 325, i32 333, i32 341, i32 349, i32 357, i32 365, i32 373, i32 381, i32 389, i32 397, i32 405, i32 413, i32 421, i32 429, i32 437, i32 445, i32 453, i32 461, i32 469, i32 477, i32 485, i32 493, i32 501, i32 509>
20483   %strided.vec6 = shufflevector <512 x i32> %wide.vec, <512 x i32> poison, <64 x i32> <i32 6, i32 14, i32 22, i32 30, i32 38, i32 46, i32 54, i32 62, i32 70, i32 78, i32 86, i32 94, i32 102, i32 110, i32 118, i32 126, i32 134, i32 142, i32 150, i32 158, i32 166, i32 174, i32 182, i32 190, i32 198, i32 206, i32 214, i32 222, i32 230, i32 238, i32 246, i32 254, i32 262, i32 270, i32 278, i32 286, i32 294, i32 302, i32 310, i32 318, i32 326, i32 334, i32 342, i32 350, i32 358, i32 366, i32 374, i32 382, i32 390, i32 398, i32 406, i32 414, i32 422, i32 430, i32 438, i32 446, i32 454, i32 462, i32 470, i32 478, i32 486, i32 494, i32 502, i32 510>
20484   %strided.vec7 = shufflevector <512 x i32> %wide.vec, <512 x i32> poison, <64 x i32> <i32 7, i32 15, i32 23, i32 31, i32 39, i32 47, i32 55, i32 63, i32 71, i32 79, i32 87, i32 95, i32 103, i32 111, i32 119, i32 127, i32 135, i32 143, i32 151, i32 159, i32 167, i32 175, i32 183, i32 191, i32 199, i32 207, i32 215, i32 223, i32 231, i32 239, i32 247, i32 255, i32 263, i32 271, i32 279, i32 287, i32 295, i32 303, i32 311, i32 319, i32 327, i32 335, i32 343, i32 351, i32 359, i32 367, i32 375, i32 383, i32 391, i32 399, i32 407, i32 415, i32 423, i32 431, i32 439, i32 447, i32 455, i32 463, i32 471, i32 479, i32 487, i32 495, i32 503, i32 511>
20485   store <64 x i32> %strided.vec0, ptr %out.vec0, align 64
20486   store <64 x i32> %strided.vec1, ptr %out.vec1, align 64
20487   store <64 x i32> %strided.vec2, ptr %out.vec2, align 64
20488   store <64 x i32> %strided.vec3, ptr %out.vec3, align 64
20489   store <64 x i32> %strided.vec4, ptr %out.vec4, align 64
20490   store <64 x i32> %strided.vec5, ptr %out.vec5, align 64
20491   store <64 x i32> %strided.vec6, ptr %out.vec6, align 64
20492   store <64 x i32> %strided.vec7, ptr %out.vec7, align 64
20493   ret void