Re-land [openmp] Fix warnings when building on Windows with latest MSVC or Clang...
[llvm-project.git] / llvm / test / CodeGen / X86 / vector-interleaved-load-i32-stride-7.ll
blobe4f94b368b7fd53caeb07c5e7093dca12468ded1
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+sse2 | FileCheck %s --check-prefixes=SSE,FALLBACK0
3 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx  | FileCheck %s --check-prefixes=AVX,AVX1,AVX1-ONLY,FALLBACK1
4 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx2 | FileCheck %s --check-prefixes=AVX,AVX1,AVX2,AVX2-ONLY,AVX2-SLOW,FALLBACK2
5 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx2,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX,AVX1,AVX2,AVX2-ONLY,AVX2-FAST,FALLBACK3
6 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx2,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX,AVX1,AVX2,AVX2-ONLY,AVX2-FAST-PERLANE,FALLBACK4
7 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512F,AVX512F-ONLY,AVX512-SLOW,AVX512F-SLOW,AVX512F-ONLY-SLOW,FALLBACK5
8 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512F,AVX512F-ONLY,AVX512-FAST,AVX512F-FAST,AVX512F-ONLY-FAST,FALLBACK6
9 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512F,AVX512DQ-ONLY,AVX512-SLOW,AVX512F-SLOW,AVX512DQ-SLOW,FALLBACK7
10 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512F,AVX512DQ-ONLY,AVX512-FAST,AVX512F-FAST,AVX512DQ-FAST,FALLBACK8
11 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512bw | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512BW,AVX512BW-ONLY,AVX512-SLOW,AVX512BW-SLOW,AVX512BW-ONLY-SLOW,FALLBACK9
12 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512bw,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512BW,AVX512BW-ONLY,AVX512-FAST,AVX512BW-FAST,AVX512BW-ONLY-FAST,FALLBACK10
13 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq,+avx512bw | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512BW,AVX512DQBW-ONLY,AVX512-SLOW,AVX512BW-SLOW,AVX512DQBW-SLOW,FALLBACK11
14 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq,+avx512bw,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512BW,AVX512DQBW-ONLY,AVX512-FAST,AVX512BW-FAST,AVX512DQBW-FAST,FALLBACK12
16 ; These patterns are produced by LoopVectorizer for interleaved loads.
18 define void @load_i32_stride7_vf2(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4, ptr %out.vec5, ptr %out.vec6) nounwind {
19 ; SSE-LABEL: load_i32_stride7_vf2:
20 ; SSE:       # %bb.0:
21 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
22 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %r10
23 ; SSE-NEXT:    movdqa (%rdi), %xmm0
24 ; SSE-NEXT:    movdqa 16(%rdi), %xmm1
25 ; SSE-NEXT:    movdqa 32(%rdi), %xmm2
26 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm1[3,3,3,3]
27 ; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm0[1,1,1,1]
28 ; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm0[2,3,2,3]
29 ; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm0[2,2,3,3]
30 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
31 ; SSE-NEXT:    punpckldq {{.*#+}} xmm4 = xmm4[0],xmm2[0],xmm4[1],xmm2[1]
32 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm2[1,1,1,1]
33 ; SSE-NEXT:    punpckldq {{.*#+}} xmm5 = xmm5[0],xmm3[0],xmm5[1],xmm3[1]
34 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm6 = xmm6[2],xmm2[2],xmm6[3],xmm2[3]
35 ; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[3,3,3,3]
36 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm1[1,1,1,1]
37 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm1[2,3,2,3]
38 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
39 ; SSE-NEXT:    movdqa 48(%rdi), %xmm2
40 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
41 ; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[1,1,1,1]
42 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm2[0],xmm7[1],xmm2[1]
43 ; SSE-NEXT:    movq %xmm0, (%rsi)
44 ; SSE-NEXT:    movq %xmm4, (%rdx)
45 ; SSE-NEXT:    movq %xmm5, (%rcx)
46 ; SSE-NEXT:    movq %xmm6, (%r8)
47 ; SSE-NEXT:    movq %xmm1, (%r9)
48 ; SSE-NEXT:    movq %xmm3, (%r10)
49 ; SSE-NEXT:    movq %xmm7, (%rax)
50 ; SSE-NEXT:    retq
52 ; AVX1-ONLY-LABEL: load_i32_stride7_vf2:
53 ; AVX1-ONLY:       # %bb.0:
54 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
55 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %r10
56 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %ymm0
57 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %ymm1
58 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %xmm2
59 ; AVX1-ONLY-NEXT:    vmovaps 16(%rdi), %xmm3
60 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %xmm4
61 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm5 = xmm3[2,3,2,3]
62 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm5 = xmm2[0],xmm5[1],xmm2[2,3]
63 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm6 = xmm4[0],xmm2[1],xmm4[2,3]
64 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm6 = xmm6[1,0,2,3]
65 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm7 = xmm2[2,3,2,3]
66 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0],xmm4[1],xmm7[2,3]
67 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm4[0,1,2],xmm2[3]
68 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[3,2,2,3]
69 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm4 = xmm4[2,3,2,3]
70 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0],xmm4[1],xmm3[2,3]
71 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm4 = ymm1[0,0],ymm0[1,0],ymm1[4,4],ymm0[5,4]
72 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[2,0,2,3,6,4,6,7]
73 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm4, %xmm4
74 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[1,0],ymm0[2,0],ymm1[5,4],ymm0[6,4]
75 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,0,2,3,6,4,6,7]
76 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm0, %xmm0
77 ; AVX1-ONLY-NEXT:    vmovlps %xmm5, (%rsi)
78 ; AVX1-ONLY-NEXT:    vmovlps %xmm6, (%rdx)
79 ; AVX1-ONLY-NEXT:    vmovlps %xmm7, (%rcx)
80 ; AVX1-ONLY-NEXT:    vmovlps %xmm2, (%r8)
81 ; AVX1-ONLY-NEXT:    vmovlps %xmm3, (%r9)
82 ; AVX1-ONLY-NEXT:    vmovlps %xmm4, (%r10)
83 ; AVX1-ONLY-NEXT:    vmovlps %xmm0, (%rax)
84 ; AVX1-ONLY-NEXT:    vzeroupper
85 ; AVX1-ONLY-NEXT:    retq
87 ; AVX2-ONLY-LABEL: load_i32_stride7_vf2:
88 ; AVX2-ONLY:       # %bb.0:
89 ; AVX2-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
90 ; AVX2-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %r10
91 ; AVX2-ONLY-NEXT:    vmovaps (%rdi), %ymm0
92 ; AVX2-ONLY-NEXT:    vmovaps 32(%rdi), %ymm1
93 ; AVX2-ONLY-NEXT:    vbroadcastss 28(%rdi), %xmm2
94 ; AVX2-ONLY-NEXT:    vmovaps (%rdi), %xmm3
95 ; AVX2-ONLY-NEXT:    vmovaps 32(%rdi), %xmm4
96 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
97 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm5 = xmm4[0],xmm3[1],xmm4[2,3]
98 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} xmm5 = xmm5[1,0,2,3]
99 ; AVX2-ONLY-NEXT:    vbroadcastss 8(%rdi), %xmm6
100 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0],xmm4[1],xmm6[2,3]
101 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm3 = xmm4[0,1,2],xmm3[3]
102 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} xmm3 = xmm3[3,2,2,3]
103 ; AVX2-ONLY-NEXT:    vmovddup {{.*#+}} xmm4 = [4,3,4,3]
104 ; AVX2-ONLY-NEXT:    # xmm4 = mem[0,0]
105 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm7 = ymm1[0,1,2,3],ymm0[4,5,6,7]
106 ; AVX2-ONLY-NEXT:    vpermps %ymm7, %ymm4, %ymm4
107 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm7 = ymm1[0],ymm0[1],ymm1[2,3,4],ymm0[5],ymm1[6,7]
108 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} ymm7 = ymm7[1,0,2,3,5,4,6,7]
109 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm7, %xmm7
110 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]
111 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4],ymm1[5],ymm0[6,7]
112 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm0, %xmm0
113 ; AVX2-ONLY-NEXT:    vmovlps %xmm2, (%rsi)
114 ; AVX2-ONLY-NEXT:    vmovlps %xmm5, (%rdx)
115 ; AVX2-ONLY-NEXT:    vmovlps %xmm6, (%rcx)
116 ; AVX2-ONLY-NEXT:    vmovlps %xmm3, (%r8)
117 ; AVX2-ONLY-NEXT:    vmovlps %xmm4, (%r9)
118 ; AVX2-ONLY-NEXT:    vmovlps %xmm7, (%r10)
119 ; AVX2-ONLY-NEXT:    vmovlps %xmm0, (%rax)
120 ; AVX2-ONLY-NEXT:    vzeroupper
121 ; AVX2-ONLY-NEXT:    retq
123 ; AVX512-SLOW-LABEL: load_i32_stride7_vf2:
124 ; AVX512-SLOW:       # %bb.0:
125 ; AVX512-SLOW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
126 ; AVX512-SLOW-NEXT:    movq {{[0-9]+}}(%rsp), %r10
127 ; AVX512-SLOW-NEXT:    vmovdqa (%rdi), %xmm0
128 ; AVX512-SLOW-NEXT:    vmovdqa 32(%rdi), %xmm1
129 ; AVX512-SLOW-NEXT:    vpinsrd $1, 28(%rdi), %xmm0, %xmm2
130 ; AVX512-SLOW-NEXT:    vmovd %xmm1, %r11d
131 ; AVX512-SLOW-NEXT:    vpshufd {{.*#+}} xmm3 = xmm0[1,1,1,1]
132 ; AVX512-SLOW-NEXT:    vpinsrd $1, %r11d, %xmm3, %xmm3
133 ; AVX512-SLOW-NEXT:    vpbroadcastd 8(%rdi), %xmm4
134 ; AVX512-SLOW-NEXT:    vpblendd {{.*#+}} xmm4 = xmm4[0],xmm1[1],xmm4[2,3]
135 ; AVX512-SLOW-NEXT:    vpblendd {{.*#+}} xmm0 = xmm1[0,1,2],xmm0[3]
136 ; AVX512-SLOW-NEXT:    vpshufd {{.*#+}} xmm0 = xmm0[3,2,2,3]
137 ; AVX512-SLOW-NEXT:    vpbroadcastq {{.*#+}} xmm1 = [4,11,4,11]
138 ; AVX512-SLOW-NEXT:    vmovdqa 32(%rdi), %ymm5
139 ; AVX512-SLOW-NEXT:    vmovdqa (%rdi), %ymm6
140 ; AVX512-SLOW-NEXT:    vpermi2d %ymm5, %ymm6, %ymm1
141 ; AVX512-SLOW-NEXT:    vpblendd {{.*#+}} ymm7 = ymm5[0],ymm6[1],ymm5[2,3,4],ymm6[5],ymm5[6,7]
142 ; AVX512-SLOW-NEXT:    vpshufd {{.*#+}} ymm7 = ymm7[1,0,2,3,5,4,6,7]
143 ; AVX512-SLOW-NEXT:    vextracti128 $1, %ymm7, %xmm7
144 ; AVX512-SLOW-NEXT:    vpshufd {{.*#+}} ymm6 = ymm6[2,3,2,3,6,7,6,7]
145 ; AVX512-SLOW-NEXT:    vpblendd {{.*#+}} ymm5 = ymm6[0],ymm5[1],ymm6[2,3,4],ymm5[5],ymm6[6,7]
146 ; AVX512-SLOW-NEXT:    vextracti128 $1, %ymm5, %xmm5
147 ; AVX512-SLOW-NEXT:    vmovq %xmm2, (%rsi)
148 ; AVX512-SLOW-NEXT:    vmovq %xmm3, (%rdx)
149 ; AVX512-SLOW-NEXT:    vmovq %xmm4, (%rcx)
150 ; AVX512-SLOW-NEXT:    vmovq %xmm0, (%r8)
151 ; AVX512-SLOW-NEXT:    vmovq %xmm1, (%r9)
152 ; AVX512-SLOW-NEXT:    vmovq %xmm7, (%r10)
153 ; AVX512-SLOW-NEXT:    vmovq %xmm5, (%rax)
154 ; AVX512-SLOW-NEXT:    vzeroupper
155 ; AVX512-SLOW-NEXT:    retq
157 ; AVX512-FAST-LABEL: load_i32_stride7_vf2:
158 ; AVX512-FAST:       # %bb.0:
159 ; AVX512-FAST-NEXT:    movq {{[0-9]+}}(%rsp), %rax
160 ; AVX512-FAST-NEXT:    movq {{[0-9]+}}(%rsp), %r10
161 ; AVX512-FAST-NEXT:    vmovdqa (%rdi), %xmm0
162 ; AVX512-FAST-NEXT:    vmovdqa 32(%rdi), %xmm1
163 ; AVX512-FAST-NEXT:    vpinsrd $1, 28(%rdi), %xmm0, %xmm2
164 ; AVX512-FAST-NEXT:    vpbroadcastq {{.*#+}} xmm3 = [1,4,1,4]
165 ; AVX512-FAST-NEXT:    vpermi2d %xmm1, %xmm0, %xmm3
166 ; AVX512-FAST-NEXT:    vpbroadcastd 8(%rdi), %xmm4
167 ; AVX512-FAST-NEXT:    vpblendd {{.*#+}} xmm4 = xmm4[0],xmm1[1],xmm4[2,3]
168 ; AVX512-FAST-NEXT:    vpbroadcastq {{.*#+}} xmm5 = [7,2,7,2]
169 ; AVX512-FAST-NEXT:    vpermi2d %xmm0, %xmm1, %xmm5
170 ; AVX512-FAST-NEXT:    vpbroadcastq {{.*#+}} xmm0 = [4,11,4,11]
171 ; AVX512-FAST-NEXT:    vmovdqa 32(%rdi), %ymm1
172 ; AVX512-FAST-NEXT:    vmovdqa (%rdi), %ymm6
173 ; AVX512-FAST-NEXT:    vpermi2d %ymm1, %ymm6, %ymm0
174 ; AVX512-FAST-NEXT:    vbroadcasti128 {{.*#+}} ymm7 = [13,4,6,7,13,4,6,7]
175 ; AVX512-FAST-NEXT:    # ymm7 = mem[0,1,0,1]
176 ; AVX512-FAST-NEXT:    vpermi2d %ymm6, %ymm1, %ymm7
177 ; AVX512-FAST-NEXT:    vextracti128 $1, %ymm7, %xmm7
178 ; AVX512-FAST-NEXT:    vbroadcasti128 {{.*#+}} ymm8 = [6,13,6,7,6,13,6,7]
179 ; AVX512-FAST-NEXT:    # ymm8 = mem[0,1,0,1]
180 ; AVX512-FAST-NEXT:    vpermi2d %ymm1, %ymm6, %ymm8
181 ; AVX512-FAST-NEXT:    vextracti128 $1, %ymm8, %xmm1
182 ; AVX512-FAST-NEXT:    vmovq %xmm2, (%rsi)
183 ; AVX512-FAST-NEXT:    vmovq %xmm3, (%rdx)
184 ; AVX512-FAST-NEXT:    vmovq %xmm4, (%rcx)
185 ; AVX512-FAST-NEXT:    vmovq %xmm5, (%r8)
186 ; AVX512-FAST-NEXT:    vmovq %xmm0, (%r9)
187 ; AVX512-FAST-NEXT:    vmovq %xmm7, (%r10)
188 ; AVX512-FAST-NEXT:    vmovq %xmm1, (%rax)
189 ; AVX512-FAST-NEXT:    vzeroupper
190 ; AVX512-FAST-NEXT:    retq
191   %wide.vec = load <14 x i32>, ptr %in.vec, align 64
192   %strided.vec0 = shufflevector <14 x i32> %wide.vec, <14 x i32> poison, <2 x i32> <i32 0, i32 7>
193   %strided.vec1 = shufflevector <14 x i32> %wide.vec, <14 x i32> poison, <2 x i32> <i32 1, i32 8>
194   %strided.vec2 = shufflevector <14 x i32> %wide.vec, <14 x i32> poison, <2 x i32> <i32 2, i32 9>
195   %strided.vec3 = shufflevector <14 x i32> %wide.vec, <14 x i32> poison, <2 x i32> <i32 3, i32 10>
196   %strided.vec4 = shufflevector <14 x i32> %wide.vec, <14 x i32> poison, <2 x i32> <i32 4, i32 11>
197   %strided.vec5 = shufflevector <14 x i32> %wide.vec, <14 x i32> poison, <2 x i32> <i32 5, i32 12>
198   %strided.vec6 = shufflevector <14 x i32> %wide.vec, <14 x i32> poison, <2 x i32> <i32 6, i32 13>
199   store <2 x i32> %strided.vec0, ptr %out.vec0, align 64
200   store <2 x i32> %strided.vec1, ptr %out.vec1, align 64
201   store <2 x i32> %strided.vec2, ptr %out.vec2, align 64
202   store <2 x i32> %strided.vec3, ptr %out.vec3, align 64
203   store <2 x i32> %strided.vec4, ptr %out.vec4, align 64
204   store <2 x i32> %strided.vec5, ptr %out.vec5, align 64
205   store <2 x i32> %strided.vec6, ptr %out.vec6, align 64
206   ret void
209 define void @load_i32_stride7_vf4(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4, ptr %out.vec5, ptr %out.vec6) nounwind {
210 ; SSE-LABEL: load_i32_stride7_vf4:
211 ; SSE:       # %bb.0:
212 ; SSE-NEXT:    movdqa 96(%rdi), %xmm1
213 ; SSE-NEXT:    movdqa 64(%rdi), %xmm0
214 ; SSE-NEXT:    movdqa 80(%rdi), %xmm2
215 ; SSE-NEXT:    movdqa (%rdi), %xmm5
216 ; SSE-NEXT:    movdqa 16(%rdi), %xmm3
217 ; SSE-NEXT:    movdqa 32(%rdi), %xmm4
218 ; SSE-NEXT:    movdqa 48(%rdi), %xmm6
219 ; SSE-NEXT:    pshufd {{.*#+}} xmm10 = xmm3[3,3,3,3]
220 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm5[1,1,1,1]
221 ; SSE-NEXT:    pshufd {{.*#+}} xmm8 = xmm5[2,3,2,3]
222 ; SSE-NEXT:    pshufd {{.*#+}} xmm9 = xmm5[2,2,3,3]
223 ; SSE-NEXT:    movdqa %xmm5, %xmm11
224 ; SSE-NEXT:    punpckldq {{.*#+}} xmm11 = xmm11[0],xmm10[0],xmm11[1],xmm10[1]
225 ; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm6[2,2,3,3]
226 ; SSE-NEXT:    punpckldq {{.*#+}} xmm5 = xmm5[0],xmm2[0],xmm5[1],xmm2[1]
227 ; SSE-NEXT:    movsd {{.*#+}} xmm5 = xmm11[0],xmm5[1]
228 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm4[0],xmm7[1],xmm4[1]
229 ; SSE-NEXT:    pshufd {{.*#+}} xmm11 = xmm2[2,2,2,2]
230 ; SSE-NEXT:    pshufd {{.*#+}} xmm10 = xmm3[1,1,1,1]
231 ; SSE-NEXT:    punpckldq {{.*#+}} xmm10 = xmm10[0],xmm6[0],xmm10[1],xmm6[1]
232 ; SSE-NEXT:    pshufd {{.*#+}} xmm12 = xmm6[1,1,1,1]
233 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm6 = xmm6[2],xmm11[2],xmm6[3],xmm11[3]
234 ; SSE-NEXT:    movsd {{.*#+}} xmm6 = xmm7[0],xmm6[1]
235 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm4[1,1,1,1]
236 ; SSE-NEXT:    punpckldq {{.*#+}} xmm8 = xmm8[0],xmm7[0],xmm8[1],xmm7[1]
237 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm2[2,3,2,3]
238 ; SSE-NEXT:    pshufd {{.*#+}} xmm11 = xmm0[0,0,1,1]
239 ; SSE-NEXT:    punpckldq {{.*#+}} xmm11 = xmm11[0],xmm7[0],xmm11[1],xmm7[1]
240 ; SSE-NEXT:    movsd {{.*#+}} xmm11 = xmm8[0],xmm11[1]
241 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm1[0,0,1,1]
242 ; SSE-NEXT:    movdqa %xmm0, %xmm8
243 ; SSE-NEXT:    punpckldq {{.*#+}} xmm8 = xmm8[0],xmm7[0],xmm8[1],xmm7[1]
244 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
245 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rdi
246 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm9 = xmm9[2],xmm4[2],xmm9[3],xmm4[3]
247 ; SSE-NEXT:    movsd {{.*#+}} xmm8 = xmm9[0],xmm8[1]
248 ; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm4[3,3,3,3]
249 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm3[2,3,2,3]
250 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm4[0],xmm3[1],xmm4[1]
251 ; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm0[2,2,3,3]
252 ; SSE-NEXT:    punpckldq {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1]
253 ; SSE-NEXT:    movsd {{.*#+}} xmm4 = xmm3[0],xmm4[1]
254 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm1[2,2,2,2]
255 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm3[2],xmm0[3],xmm3[3]
256 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm10[0],xmm0[1]
257 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm12[0],xmm7[1],xmm12[1]
258 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[2,3,2,3]
259 ; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[0,0,1,1]
260 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
261 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm7[0],xmm2[1]
262 ; SSE-NEXT:    movapd %xmm5, (%rsi)
263 ; SSE-NEXT:    movapd %xmm6, (%rdx)
264 ; SSE-NEXT:    movapd %xmm11, (%rcx)
265 ; SSE-NEXT:    movapd %xmm8, (%r8)
266 ; SSE-NEXT:    movapd %xmm4, (%r9)
267 ; SSE-NEXT:    movapd %xmm0, (%rdi)
268 ; SSE-NEXT:    movapd %xmm2, (%rax)
269 ; SSE-NEXT:    retq
271 ; AVX1-ONLY-LABEL: load_i32_stride7_vf4:
272 ; AVX1-ONLY:       # %bb.0:
273 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
274 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %r10
275 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %ymm0
276 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %ymm1
277 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm1[0,1,2,3,4,5],ymm0[6],ymm1[7]
278 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm2, %xmm2
279 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %xmm3
280 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %xmm4
281 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdi), %xmm5
282 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm3[0,1],xmm2[2,3]
283 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[0,3,2,3]
284 ; AVX1-ONLY-NEXT:    vmovaps 80(%rdi), %xmm6
285 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm7 = xmm6[0,1,0,1]
286 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1,2],xmm7[3]
287 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm8 = xmm4[0],xmm3[1],xmm4[2,3]
288 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm8 = xmm8[1,0],mem[3,3]
289 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm8 = xmm8[0,1,2],xmm6[2]
290 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm9 = xmm5[0,1,0,1]
291 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm6 = xmm9[0,1,2],xmm6[3]
292 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm9 = xmm3[2,3,2,3]
293 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm9 = xmm9[0],xmm4[1],xmm9[2,3]
294 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm6 = xmm9[0,1],xmm6[2,3]
295 ; AVX1-ONLY-NEXT:    vmovaps 96(%rdi), %xmm9
296 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm10 = xmm9[0],xmm5[1],xmm9[2,3]
297 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm10 = xmm10[0,1,1,0]
298 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm3 = xmm4[0,1,2],xmm3[3]
299 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm3 = xmm3[3,2,2,3]
300 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm10[2,3]
301 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm10 = xmm9[0,1,0,1]
302 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm10 = xmm5[0,1,2],xmm10[3]
303 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm4 = xmm4[2,3,2,3]
304 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm4 = mem[0],xmm4[1],mem[2,3]
305 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],xmm10[2,3]
306 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm5 = xmm9[0,1,2],xmm5[3]
307 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm10 = ymm0[0,0],ymm1[1,0],ymm0[4,4],ymm1[5,4]
308 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm10 = ymm10[2,0,2,3,6,4,6,7]
309 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm10, %xmm10
310 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm5 = xmm10[0,1],xmm5[3,2]
311 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0,1,2],xmm9[3]
312 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[1,0],ymm1[2,0],ymm0[5,4],ymm1[6,4]
313 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,0,2,3,6,4,6,7]
314 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm0, %xmm0
315 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm7[2,3]
316 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, (%rsi)
317 ; AVX1-ONLY-NEXT:    vmovaps %xmm8, (%rdx)
318 ; AVX1-ONLY-NEXT:    vmovaps %xmm6, (%rcx)
319 ; AVX1-ONLY-NEXT:    vmovaps %xmm3, (%r8)
320 ; AVX1-ONLY-NEXT:    vmovaps %xmm4, (%r9)
321 ; AVX1-ONLY-NEXT:    vmovaps %xmm5, (%r10)
322 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, (%rax)
323 ; AVX1-ONLY-NEXT:    vzeroupper
324 ; AVX1-ONLY-NEXT:    retq
326 ; AVX2-SLOW-LABEL: load_i32_stride7_vf4:
327 ; AVX2-SLOW:       # %bb.0:
328 ; AVX2-SLOW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
329 ; AVX2-SLOW-NEXT:    movq {{[0-9]+}}(%rsp), %r10
330 ; AVX2-SLOW-NEXT:    vmovaps (%rdi), %ymm0
331 ; AVX2-SLOW-NEXT:    vmovaps 32(%rdi), %ymm1
332 ; AVX2-SLOW-NEXT:    vmovaps {{.*#+}} xmm2 = [0,7,6,u]
333 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm3 = ymm0[0,1,2,3,4,5],ymm1[6],ymm0[7]
334 ; AVX2-SLOW-NEXT:    vpermps %ymm3, %ymm2, %ymm2
335 ; AVX2-SLOW-NEXT:    vbroadcastss 84(%rdi), %xmm3
336 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1,2],xmm3[3]
337 ; AVX2-SLOW-NEXT:    vmovaps 80(%rdi), %xmm4
338 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm3 = xmm4[2,2,2,2]
339 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm5 = ymm1[0],ymm0[1],ymm1[2,3,4],ymm0[5],ymm1[6,7]
340 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm6 = ymm5[1,0,3,3,5,4,7,7]
341 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm6 = ymm6[0,3,2,3]
342 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm3 = xmm6[0,1,2],xmm3[3]
343 ; AVX2-SLOW-NEXT:    vbroadcastss 8(%rdi), %xmm6
344 ; AVX2-SLOW-NEXT:    vmovaps 32(%rdi), %xmm7
345 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0],xmm7[1],xmm6[2,3]
346 ; AVX2-SLOW-NEXT:    vmovaps 64(%rdi), %xmm8
347 ; AVX2-SLOW-NEXT:    vbroadcastss %xmm8, %xmm9
348 ; AVX2-SLOW-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm9[2],xmm4[2],xmm9[3],xmm4[3]
349 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm4 = xmm6[0,1],xmm4[2,3]
350 ; AVX2-SLOW-NEXT:    vmovaps 96(%rdi), %xmm6
351 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm9 = xmm6[0],xmm8[1],xmm6[2,3]
352 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm9 = xmm9[0,1,1,0]
353 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0,1,2],mem[3]
354 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm7 = xmm7[3,2,2,3]
355 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0,1],xmm9[2,3]
356 ; AVX2-SLOW-NEXT:    vbroadcastss 100(%rdi), %xmm9
357 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm9 = xmm8[0,1,2],xmm9[3]
358 ; AVX2-SLOW-NEXT:    vmovddup {{.*#+}} xmm10 = [4,3,4,3]
359 ; AVX2-SLOW-NEXT:    # xmm10 = mem[0,0]
360 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm11 = ymm1[0,1,2,3],ymm0[4,5,6,7]
361 ; AVX2-SLOW-NEXT:    vpermps %ymm11, %ymm10, %ymm10
362 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm9 = xmm10[0,1],xmm9[2,3]
363 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm8 = xmm6[0,1,2],xmm8[3]
364 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm8 = xmm8[0,1,3,2]
365 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm5 = ymm5[1,0,2,3,5,4,6,7]
366 ; AVX2-SLOW-NEXT:    vextractf128 $1, %ymm5, %xmm5
367 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm5 = xmm5[0,1],xmm8[2,3]
368 ; AVX2-SLOW-NEXT:    vbroadcastss 80(%rdi), %ymm8
369 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm6 = xmm8[0,1,2],xmm6[3]
370 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]
371 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4],ymm1[5],ymm0[6,7]
372 ; AVX2-SLOW-NEXT:    vextractf128 $1, %ymm0, %xmm0
373 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm6[2,3]
374 ; AVX2-SLOW-NEXT:    vmovaps %xmm2, (%rsi)
375 ; AVX2-SLOW-NEXT:    vmovaps %xmm3, (%rdx)
376 ; AVX2-SLOW-NEXT:    vmovaps %xmm4, (%rcx)
377 ; AVX2-SLOW-NEXT:    vmovaps %xmm7, (%r8)
378 ; AVX2-SLOW-NEXT:    vmovaps %xmm9, (%r9)
379 ; AVX2-SLOW-NEXT:    vmovaps %xmm5, (%r10)
380 ; AVX2-SLOW-NEXT:    vmovaps %xmm0, (%rax)
381 ; AVX2-SLOW-NEXT:    vzeroupper
382 ; AVX2-SLOW-NEXT:    retq
384 ; AVX2-FAST-LABEL: load_i32_stride7_vf4:
385 ; AVX2-FAST:       # %bb.0:
386 ; AVX2-FAST-NEXT:    movq {{[0-9]+}}(%rsp), %rax
387 ; AVX2-FAST-NEXT:    movq {{[0-9]+}}(%rsp), %r10
388 ; AVX2-FAST-NEXT:    vmovaps (%rdi), %ymm0
389 ; AVX2-FAST-NEXT:    vmovaps 32(%rdi), %ymm1
390 ; AVX2-FAST-NEXT:    vmovaps {{.*#+}} xmm2 = [0,7,6,u]
391 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm3 = ymm0[0,1,2,3,4,5],ymm1[6],ymm0[7]
392 ; AVX2-FAST-NEXT:    vpermps %ymm3, %ymm2, %ymm2
393 ; AVX2-FAST-NEXT:    vbroadcastss 84(%rdi), %xmm3
394 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1,2],xmm3[3]
395 ; AVX2-FAST-NEXT:    vbroadcastf128 {{.*#+}} ymm3 = [1,0,7,0,1,0,7,0]
396 ; AVX2-FAST-NEXT:    # ymm3 = mem[0,1,0,1]
397 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm4 = ymm1[0],ymm0[1],ymm1[2,3,4],ymm0[5],ymm1[6,7]
398 ; AVX2-FAST-NEXT:    vpermps %ymm4, %ymm3, %ymm3
399 ; AVX2-FAST-NEXT:    vmovaps 80(%rdi), %xmm5
400 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm6 = xmm5[2,2,2,2]
401 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1,2],xmm6[3]
402 ; AVX2-FAST-NEXT:    vbroadcastss 8(%rdi), %xmm6
403 ; AVX2-FAST-NEXT:    vmovaps 32(%rdi), %xmm7
404 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0],xmm7[1],xmm6[2,3]
405 ; AVX2-FAST-NEXT:    vmovaps 64(%rdi), %xmm8
406 ; AVX2-FAST-NEXT:    vbroadcastss %xmm8, %xmm9
407 ; AVX2-FAST-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm9[2],xmm5[2],xmm9[3],xmm5[3]
408 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm5 = xmm6[0,1],xmm5[2,3]
409 ; AVX2-FAST-NEXT:    vmovaps 96(%rdi), %xmm6
410 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm9 = xmm6[0],xmm8[1],xmm6[2,3]
411 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm9 = xmm9[0,1,1,0]
412 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0,1,2],mem[3]
413 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm7 = xmm7[3,2,2,3]
414 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0,1],xmm9[2,3]
415 ; AVX2-FAST-NEXT:    vbroadcastss 100(%rdi), %xmm9
416 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm9 = xmm8[0,1,2],xmm9[3]
417 ; AVX2-FAST-NEXT:    vmovddup {{.*#+}} xmm10 = [4,3,4,3]
418 ; AVX2-FAST-NEXT:    # xmm10 = mem[0,0]
419 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm11 = ymm1[0,1,2,3],ymm0[4,5,6,7]
420 ; AVX2-FAST-NEXT:    vpermps %ymm11, %ymm10, %ymm10
421 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm9 = xmm10[0,1],xmm9[2,3]
422 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm8 = xmm6[0,1,2],xmm8[3]
423 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm8 = xmm8[0,1,3,2]
424 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[1,0,2,3,5,4,6,7]
425 ; AVX2-FAST-NEXT:    vextractf128 $1, %ymm4, %xmm4
426 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],xmm8[2,3]
427 ; AVX2-FAST-NEXT:    vbroadcastss 80(%rdi), %ymm8
428 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm6 = xmm8[0,1,2],xmm6[3]
429 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]
430 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4],ymm1[5],ymm0[6,7]
431 ; AVX2-FAST-NEXT:    vextractf128 $1, %ymm0, %xmm0
432 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm6[2,3]
433 ; AVX2-FAST-NEXT:    vmovaps %xmm2, (%rsi)
434 ; AVX2-FAST-NEXT:    vmovaps %xmm3, (%rdx)
435 ; AVX2-FAST-NEXT:    vmovaps %xmm5, (%rcx)
436 ; AVX2-FAST-NEXT:    vmovaps %xmm7, (%r8)
437 ; AVX2-FAST-NEXT:    vmovaps %xmm9, (%r9)
438 ; AVX2-FAST-NEXT:    vmovaps %xmm4, (%r10)
439 ; AVX2-FAST-NEXT:    vmovaps %xmm0, (%rax)
440 ; AVX2-FAST-NEXT:    vzeroupper
441 ; AVX2-FAST-NEXT:    retq
443 ; AVX2-FAST-PERLANE-LABEL: load_i32_stride7_vf4:
444 ; AVX2-FAST-PERLANE:       # %bb.0:
445 ; AVX2-FAST-PERLANE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
446 ; AVX2-FAST-PERLANE-NEXT:    movq {{[0-9]+}}(%rsp), %r10
447 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%rdi), %ymm0
448 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 32(%rdi), %ymm1
449 ; AVX2-FAST-PERLANE-NEXT:    vmovaps {{.*#+}} xmm2 = [0,7,6,u]
450 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm3 = ymm0[0,1,2,3,4,5],ymm1[6],ymm0[7]
451 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm3, %ymm2, %ymm2
452 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 84(%rdi), %xmm3
453 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1,2],xmm3[3]
454 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 80(%rdi), %xmm4
455 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm3 = xmm4[2,2,2,2]
456 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm5 = ymm1[0],ymm0[1],ymm1[2,3,4],ymm0[5],ymm1[6,7]
457 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm6 = ymm5[1,0,3,3,5,4,7,7]
458 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm6 = ymm6[0,3,2,3]
459 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm3 = xmm6[0,1,2],xmm3[3]
460 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 8(%rdi), %xmm6
461 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 32(%rdi), %xmm7
462 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0],xmm7[1],xmm6[2,3]
463 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 64(%rdi), %xmm8
464 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss %xmm8, %xmm9
465 ; AVX2-FAST-PERLANE-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm9[2],xmm4[2],xmm9[3],xmm4[3]
466 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm4 = xmm6[0,1],xmm4[2,3]
467 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 96(%rdi), %xmm6
468 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm9 = xmm6[0],xmm8[1],xmm6[2,3]
469 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm9 = xmm9[0,1,1,0]
470 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0,1,2],mem[3]
471 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm7 = xmm7[3,2,2,3]
472 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0,1],xmm9[2,3]
473 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 100(%rdi), %xmm9
474 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm9 = xmm8[0,1,2],xmm9[3]
475 ; AVX2-FAST-PERLANE-NEXT:    vmovddup {{.*#+}} xmm10 = [4,3,4,3]
476 ; AVX2-FAST-PERLANE-NEXT:    # xmm10 = mem[0,0]
477 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm11 = ymm1[0,1,2,3],ymm0[4,5,6,7]
478 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm11, %ymm10, %ymm10
479 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm9 = xmm10[0,1],xmm9[2,3]
480 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm8 = xmm6[0,1,2],xmm8[3]
481 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm8 = xmm8[0,1,3,2]
482 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm5 = ymm5[1,0,2,3,5,4,6,7]
483 ; AVX2-FAST-PERLANE-NEXT:    vextractf128 $1, %ymm5, %xmm5
484 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm5 = xmm5[0,1],xmm8[2,3]
485 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 80(%rdi), %ymm8
486 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm6 = xmm8[0,1,2],xmm6[3]
487 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]
488 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4],ymm1[5],ymm0[6,7]
489 ; AVX2-FAST-PERLANE-NEXT:    vextractf128 $1, %ymm0, %xmm0
490 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm6[2,3]
491 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %xmm2, (%rsi)
492 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %xmm3, (%rdx)
493 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %xmm4, (%rcx)
494 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %xmm7, (%r8)
495 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %xmm9, (%r9)
496 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %xmm5, (%r10)
497 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %xmm0, (%rax)
498 ; AVX2-FAST-PERLANE-NEXT:    vzeroupper
499 ; AVX2-FAST-PERLANE-NEXT:    retq
501 ; AVX512-LABEL: load_i32_stride7_vf4:
502 ; AVX512:       # %bb.0:
503 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax
504 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %r10
505 ; AVX512-NEXT:    vmovdqa64 (%rdi), %zmm0
506 ; AVX512-NEXT:    vmovdqa64 64(%rdi), %zmm1
507 ; AVX512-NEXT:    vmovdqa {{.*#+}} xmm2 = [0,7,14,21]
508 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2
509 ; AVX512-NEXT:    vmovdqa {{.*#+}} xmm3 = [1,8,15,22]
510 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm3
511 ; AVX512-NEXT:    vmovdqa {{.*#+}} xmm4 = [2,9,16,23]
512 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm4
513 ; AVX512-NEXT:    vmovdqa {{.*#+}} xmm5 = [3,10,17,24]
514 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm5
515 ; AVX512-NEXT:    vmovdqa {{.*#+}} xmm6 = [4,11,18,25]
516 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm6
517 ; AVX512-NEXT:    vmovdqa {{.*#+}} xmm7 = [5,12,19,26]
518 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm7
519 ; AVX512-NEXT:    vmovdqa {{.*#+}} xmm8 = [6,13,20,27]
520 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm8
521 ; AVX512-NEXT:    vmovdqa %xmm2, (%rsi)
522 ; AVX512-NEXT:    vmovdqa %xmm3, (%rdx)
523 ; AVX512-NEXT:    vmovdqa %xmm4, (%rcx)
524 ; AVX512-NEXT:    vmovdqa %xmm5, (%r8)
525 ; AVX512-NEXT:    vmovdqa %xmm6, (%r9)
526 ; AVX512-NEXT:    vmovdqa %xmm7, (%r10)
527 ; AVX512-NEXT:    vmovdqa %xmm8, (%rax)
528 ; AVX512-NEXT:    vzeroupper
529 ; AVX512-NEXT:    retq
530   %wide.vec = load <28 x i32>, ptr %in.vec, align 64
531   %strided.vec0 = shufflevector <28 x i32> %wide.vec, <28 x i32> poison, <4 x i32> <i32 0, i32 7, i32 14, i32 21>
532   %strided.vec1 = shufflevector <28 x i32> %wide.vec, <28 x i32> poison, <4 x i32> <i32 1, i32 8, i32 15, i32 22>
533   %strided.vec2 = shufflevector <28 x i32> %wide.vec, <28 x i32> poison, <4 x i32> <i32 2, i32 9, i32 16, i32 23>
534   %strided.vec3 = shufflevector <28 x i32> %wide.vec, <28 x i32> poison, <4 x i32> <i32 3, i32 10, i32 17, i32 24>
535   %strided.vec4 = shufflevector <28 x i32> %wide.vec, <28 x i32> poison, <4 x i32> <i32 4, i32 11, i32 18, i32 25>
536   %strided.vec5 = shufflevector <28 x i32> %wide.vec, <28 x i32> poison, <4 x i32> <i32 5, i32 12, i32 19, i32 26>
537   %strided.vec6 = shufflevector <28 x i32> %wide.vec, <28 x i32> poison, <4 x i32> <i32 6, i32 13, i32 20, i32 27>
538   store <4 x i32> %strided.vec0, ptr %out.vec0, align 64
539   store <4 x i32> %strided.vec1, ptr %out.vec1, align 64
540   store <4 x i32> %strided.vec2, ptr %out.vec2, align 64
541   store <4 x i32> %strided.vec3, ptr %out.vec3, align 64
542   store <4 x i32> %strided.vec4, ptr %out.vec4, align 64
543   store <4 x i32> %strided.vec5, ptr %out.vec5, align 64
544   store <4 x i32> %strided.vec6, ptr %out.vec6, align 64
545   ret void
548 define void @load_i32_stride7_vf8(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4, ptr %out.vec5, ptr %out.vec6) nounwind {
549 ; SSE-LABEL: load_i32_stride7_vf8:
550 ; SSE:       # %bb.0:
551 ; SSE-NEXT:    subq $24, %rsp
552 ; SSE-NEXT:    movdqa 144(%rdi), %xmm9
553 ; SSE-NEXT:    movdqa 80(%rdi), %xmm5
554 ; SSE-NEXT:    movdqa (%rdi), %xmm12
555 ; SSE-NEXT:    movdqa 16(%rdi), %xmm7
556 ; SSE-NEXT:    movdqa 48(%rdi), %xmm6
557 ; SSE-NEXT:    movdqa 192(%rdi), %xmm8
558 ; SSE-NEXT:    movdqa 160(%rdi), %xmm10
559 ; SSE-NEXT:    movdqa %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
560 ; SSE-NEXT:    movdqa 112(%rdi), %xmm15
561 ; SSE-NEXT:    movdqa 128(%rdi), %xmm0
562 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
563 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[3,3,3,3]
564 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm15[1,1,1,1]
565 ; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm15[2,3,2,3]
566 ; SSE-NEXT:    movdqa %xmm15, %xmm3
567 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm0[0],xmm3[1],xmm0[1]
568 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm10[2,2,3,3]
569 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm8[0],xmm0[1],xmm8[1]
570 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm3[0],xmm0[1]
571 ; SSE-NEXT:    movapd %xmm0, (%rsp) # 16-byte Spill
572 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm7[3,3,3,3]
573 ; SSE-NEXT:    movdqa %xmm7, %xmm11
574 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm12[1,1,1,1]
575 ; SSE-NEXT:    movdqa %xmm12, %xmm4
576 ; SSE-NEXT:    punpckldq {{.*#+}} xmm4 = xmm4[0],xmm0[0],xmm4[1],xmm0[1]
577 ; SSE-NEXT:    movdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
578 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm6[2,2,3,3]
579 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm5[0],xmm0[1],xmm5[1]
580 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm4[0],xmm0[1]
581 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
582 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm9[0],xmm1[1],xmm9[1]
583 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm8[2,2,2,2]
584 ; SSE-NEXT:    movdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
585 ; SSE-NEXT:    movdqa %xmm10, %xmm4
586 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm4 = xmm4[2],xmm0[2],xmm4[3],xmm0[3]
587 ; SSE-NEXT:    movsd {{.*#+}} xmm4 = xmm1[0],xmm4[1]
588 ; SSE-NEXT:    movapd %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
589 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm5[2,2,2,2]
590 ; SSE-NEXT:    movdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
591 ; SSE-NEXT:    movdqa %xmm6, %xmm1
592 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
593 ; SSE-NEXT:    movdqa 32(%rdi), %xmm4
594 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm4[0],xmm3[1],xmm4[1]
595 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm3[0],xmm1[1]
596 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
597 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm9[1,1,1,1]
598 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
599 ; SSE-NEXT:    movdqa 176(%rdi), %xmm10
600 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm8[2,3,2,3]
601 ; SSE-NEXT:    pshufd {{.*#+}} xmm13 = xmm10[0,0,1,1]
602 ; SSE-NEXT:    punpckldq {{.*#+}} xmm13 = xmm13[0],xmm1[0],xmm13[1],xmm1[1]
603 ; SSE-NEXT:    movsd {{.*#+}} xmm13 = xmm2[0],xmm13[1]
604 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm12[2,3,2,3]
605 ; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm4[1,1,1,1]
606 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
607 ; SSE-NEXT:    movdqa 64(%rdi), %xmm14
608 ; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm5[2,3,2,3]
609 ; SSE-NEXT:    pshufd {{.*#+}} xmm8 = xmm14[0,0,1,1]
610 ; SSE-NEXT:    punpckldq {{.*#+}} xmm8 = xmm8[0],xmm2[0],xmm8[1],xmm2[1]
611 ; SSE-NEXT:    movsd {{.*#+}} xmm8 = xmm1[0],xmm8[1]
612 ; SSE-NEXT:    movdqa 208(%rdi), %xmm3
613 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm3[0,0,1,1]
614 ; SSE-NEXT:    movdqa %xmm10, %xmm7
615 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm1[0],xmm7[1],xmm1[1]
616 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm15[2,2,3,3]
617 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm9[2],xmm1[3],xmm9[3]
618 ; SSE-NEXT:    movsd {{.*#+}} xmm7 = xmm1[0],xmm7[1]
619 ; SSE-NEXT:    movdqa 96(%rdi), %xmm5
620 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm5[0,0,1,1]
621 ; SSE-NEXT:    movdqa %xmm14, %xmm15
622 ; SSE-NEXT:    punpckldq {{.*#+}} xmm15 = xmm15[0],xmm0[0],xmm15[1],xmm0[1]
623 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm12[2,2,3,3]
624 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm4[2],xmm0[3],xmm4[3]
625 ; SSE-NEXT:    movsd {{.*#+}} xmm15 = xmm0[0],xmm15[1]
626 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm9[3,3,3,3]
627 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
628 ; SSE-NEXT:    movdqa %xmm6, %xmm12
629 ; SSE-NEXT:    punpckldq {{.*#+}} xmm12 = xmm12[0],xmm0[0],xmm12[1],xmm0[1]
630 ; SSE-NEXT:    pshufd {{.*#+}} xmm9 = xmm10[2,2,3,3]
631 ; SSE-NEXT:    punpckldq {{.*#+}} xmm9 = xmm9[0],xmm3[0],xmm9[1],xmm3[1]
632 ; SSE-NEXT:    movsd {{.*#+}} xmm9 = xmm12[0],xmm9[1]
633 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm4[3,3,3,3]
634 ; SSE-NEXT:    movdqa %xmm11, %xmm12
635 ; SSE-NEXT:    movdqa %xmm11, %xmm4
636 ; SSE-NEXT:    punpckldq {{.*#+}} xmm4 = xmm4[0],xmm0[0],xmm4[1],xmm0[1]
637 ; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm14[2,2,3,3]
638 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm5[0],xmm2[1],xmm5[1]
639 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm4[0],xmm2[1]
640 ; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm3[2,2,2,2]
641 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm10 = xmm10[2],xmm4[2],xmm10[3],xmm4[3]
642 ; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm6[1,1,1,1]
643 ; SSE-NEXT:    movdqa %xmm6, %xmm11
644 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
645 ; SSE-NEXT:    punpckldq {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1]
646 ; SSE-NEXT:    movsd {{.*#+}} xmm10 = xmm4[0],xmm10[1]
647 ; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm5[2,2,2,2]
648 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm14 = xmm14[2],xmm4[2],xmm14[3],xmm4[3]
649 ; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm12[1,1,1,1]
650 ; SSE-NEXT:    movdqa %xmm12, %xmm6
651 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
652 ; SSE-NEXT:    punpckldq {{.*#+}} xmm4 = xmm4[0],xmm0[0],xmm4[1],xmm0[1]
653 ; SSE-NEXT:    movsd {{.*#+}} xmm14 = xmm4[0],xmm14[1]
654 ; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm1[1,1,1,1]
655 ; SSE-NEXT:    pshufd {{.*#+}} xmm12 = xmm11[2,3,2,3]
656 ; SSE-NEXT:    punpckldq {{.*#+}} xmm12 = xmm12[0],xmm4[0],xmm12[1],xmm4[1]
657 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm3[2,3,2,3]
658 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
659 ; SSE-NEXT:    # xmm4 = mem[0,0,1,1]
660 ; SSE-NEXT:    punpckldq {{.*#+}} xmm4 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]
661 ; SSE-NEXT:    movsd {{.*#+}} xmm4 = xmm12[0],xmm4[1]
662 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm0[1,1,1,1]
663 ; SSE-NEXT:    pshufd {{.*#+}} xmm12 = xmm6[2,3,2,3]
664 ; SSE-NEXT:    punpckldq {{.*#+}} xmm12 = xmm12[0],xmm3[0],xmm12[1],xmm3[1]
665 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm5[2,3,2,3]
666 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload
667 ; SSE-NEXT:    # xmm3 = mem[0,0,1,1]
668 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]
669 ; SSE-NEXT:    movsd {{.*#+}} xmm3 = xmm12[0],xmm3[1]
670 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
671 ; SSE-NEXT:    movaps %xmm1, (%rsi)
672 ; SSE-NEXT:    movaps (%rsp), %xmm1 # 16-byte Reload
673 ; SSE-NEXT:    movaps %xmm1, 16(%rsi)
674 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
675 ; SSE-NEXT:    movaps %xmm0, (%rdx)
676 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
677 ; SSE-NEXT:    movaps %xmm0, 16(%rdx)
678 ; SSE-NEXT:    movapd %xmm8, (%rcx)
679 ; SSE-NEXT:    movapd %xmm13, 16(%rcx)
680 ; SSE-NEXT:    movapd %xmm15, (%r8)
681 ; SSE-NEXT:    movapd %xmm7, 16(%r8)
682 ; SSE-NEXT:    movapd %xmm2, (%r9)
683 ; SSE-NEXT:    movapd %xmm9, 16(%r9)
684 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
685 ; SSE-NEXT:    movapd %xmm14, (%rax)
686 ; SSE-NEXT:    movapd %xmm10, 16(%rax)
687 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
688 ; SSE-NEXT:    movapd %xmm3, (%rax)
689 ; SSE-NEXT:    movapd %xmm4, 16(%rax)
690 ; SSE-NEXT:    addq $24, %rsp
691 ; SSE-NEXT:    retq
693 ; AVX1-ONLY-LABEL: load_i32_stride7_vf8:
694 ; AVX1-ONLY:       # %bb.0:
695 ; AVX1-ONLY-NEXT:    vmovaps 160(%rdi), %ymm4
696 ; AVX1-ONLY-NEXT:    vmovaps 128(%rdi), %ymm8
697 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdi), %ymm11
698 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %ymm0
699 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %ymm1
700 ; AVX1-ONLY-NEXT:    vmovaps 96(%rdi), %ymm12
701 ; AVX1-ONLY-NEXT:    vmovaps 80(%rdi), %xmm2
702 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm12[0],ymm2[0],ymm12[2],ymm2[2]
703 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm1[0,1,2,3,4,5],ymm0[6],ymm1[7]
704 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm5, %xmm5
705 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %xmm13
706 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %xmm9
707 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm5 = xmm13[0,1],xmm5[2,3]
708 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm5 = xmm5[0,3,2,3]
709 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm3 = ymm5[0,1,2],ymm3[3,4,5,6,7]
710 ; AVX1-ONLY-NEXT:    vmovaps 160(%rdi), %xmm5
711 ; AVX1-ONLY-NEXT:    vmovaps 128(%rdi), %xmm6
712 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm7 = xmm6[1],xmm5[1]
713 ; AVX1-ONLY-NEXT:    vmovaps 192(%rdi), %xmm10
714 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm7 = zero,xmm7[1,2],xmm10[1]
715 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
716 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4],ymm7[5,6,7]
717 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm7 = ymm12[1,1],ymm11[2,2],ymm12[5,5],ymm11[6,6]
718 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm7 = ymm7[2,3,2,3]
719 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm14 = xmm9[0],xmm13[1],xmm9[2,3]
720 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm14 = xmm14[1,0],mem[3,3]
721 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm7 = ymm14[0,1,2],ymm7[3,4,5,6,7]
722 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm14 = ymm8[2,3],ymm4[0,1]
723 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm14 = ymm8[0,0],ymm14[3,3],ymm8[4,4],ymm14[7,7]
724 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm14, %xmm14
725 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm14 = zero,xmm14[1,2],xmm10[2]
726 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm14, %ymm0, %ymm14
727 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3,4],ymm14[5,6,7]
728 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm14 = xmm13[2,3,2,3]
729 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm14 = xmm14[0],xmm9[1],xmm14[2,3]
730 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm15 = ymm2[3,1],ymm11[0,3],ymm2[7,5],ymm11[4,7]
731 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm15 = ymm12[2,1],ymm15[2,0],ymm12[6,5],ymm15[6,4]
732 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm15 = ymm14[0,1],ymm15[2,3,4,5,6,7]
733 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm14 = ymm8[0],ymm4[0],ymm8[2],ymm4[2]
734 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm14, %xmm14
735 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm10 = xmm14[0,1,2],xmm10[3]
736 ; AVX1-ONLY-NEXT:    vmovaps 192(%rdi), %ymm14
737 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
738 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm10 = ymm15[0,1,2,3,4],ymm10[5,6,7]
739 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdi), %xmm15
740 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm11 = ymm11[1,0],ymm12[0,0],ymm11[5,4],ymm12[4,4]
741 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm11 = ymm12[3,1],ymm11[0,2],ymm12[7,5],ymm11[4,6]
742 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm12 = xmm9[0,1,2],xmm13[3]
743 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm12 = xmm12[3,2,2,3]
744 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm11 = ymm12[0,1],ymm11[2,3,4,5,6,7]
745 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm12 = ymm14[0,1],ymm4[1,3],ymm14[4,5],ymm4[5,7]
746 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm12 = ymm8[0,2],ymm12[2,0],ymm8[4,6],ymm12[6,4]
747 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1,2,3,4],ymm12[5,6,7]
748 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm12 = ymm14[1,0],ymm4[2,0],ymm14[5,4],ymm4[6,4]
749 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm13 = ymm8[2,3,0,1]
750 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm8 = ymm8[3,0],ymm13[0,0],ymm8[7,4],ymm13[4,4]
751 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm8 = ymm8[2,0],ymm12[2,0],ymm8[6,4],ymm12[6,4]
752 ; AVX1-ONLY-NEXT:    vmovaps 96(%rdi), %xmm12
753 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm13 = xmm12[0,1,0,1]
754 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm13 = xmm15[0,1,2],xmm13[3]
755 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm9 = xmm9[2,3,2,3]
756 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm9 = mem[0],xmm9[1],mem[2,3]
757 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm9 = xmm9[0,1],xmm13[2,3]
758 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm8 = ymm9[0,1,2,3],ymm8[4,5,6,7]
759 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm4 = ymm14[2,1],ymm4[3,3],ymm14[6,5],ymm4[7,7]
760 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm9 = xmm5[0],xmm6[1],xmm5[2,3]
761 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm9, %ymm0, %ymm9
762 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm4 = ymm9[1,0],ymm4[2,0],ymm9[5,4],ymm4[6,4]
763 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm9 = xmm12[0,1,2],xmm15[3]
764 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm13 = ymm0[0,0],ymm1[1,0],ymm0[4,4],ymm1[5,4]
765 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm13 = ymm13[2,0,2,3,6,4,6,7]
766 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm13, %xmm13
767 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm9 = xmm13[0,1],xmm9[3,2]
768 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm9[0,1,2,3],ymm4[4,5,6,7]
769 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm9 = ymm14[2,3,0,1]
770 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm9 = ymm14[3,0],ymm9[0,0],ymm14[7,4],ymm9[4,4]
771 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm6 = xmm6[2,3,2,3]
772 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm5 = xmm6[0],xmm5[1],xmm6[2,3]
773 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
774 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm5 = ymm5[0,1],ymm9[2,0],ymm5[4,5],ymm9[6,4]
775 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[0,1,0,1]
776 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1,2],xmm12[3]
777 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[1,0],ymm1[2,0],ymm0[5,4],ymm1[6,4]
778 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,0,2,3,6,4,6,7]
779 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm0, %xmm0
780 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm2[2,3]
781 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm5[4,5,6,7]
782 ; AVX1-ONLY-NEXT:    vmovaps %ymm3, (%rsi)
783 ; AVX1-ONLY-NEXT:    vmovaps %ymm7, (%rdx)
784 ; AVX1-ONLY-NEXT:    vmovaps %ymm10, (%rcx)
785 ; AVX1-ONLY-NEXT:    vmovaps %ymm11, (%r8)
786 ; AVX1-ONLY-NEXT:    vmovaps %ymm8, (%r9)
787 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
788 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, (%rax)
789 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
790 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, (%rax)
791 ; AVX1-ONLY-NEXT:    vzeroupper
792 ; AVX1-ONLY-NEXT:    retq
794 ; AVX2-SLOW-LABEL: load_i32_stride7_vf8:
795 ; AVX2-SLOW:       # %bb.0:
796 ; AVX2-SLOW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
797 ; AVX2-SLOW-NEXT:    movq {{[0-9]+}}(%rsp), %r10
798 ; AVX2-SLOW-NEXT:    vmovdqa 64(%rdi), %ymm9
799 ; AVX2-SLOW-NEXT:    vmovdqa 160(%rdi), %ymm4
800 ; AVX2-SLOW-NEXT:    vmovdqa 128(%rdi), %ymm5
801 ; AVX2-SLOW-NEXT:    vmovdqa (%rdi), %ymm0
802 ; AVX2-SLOW-NEXT:    vmovdqa 32(%rdi), %ymm1
803 ; AVX2-SLOW-NEXT:    vmovdqa 96(%rdi), %ymm10
804 ; AVX2-SLOW-NEXT:    vpbroadcastq 80(%rdi), %ymm2
805 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm10[4,5,6,7]
806 ; AVX2-SLOW-NEXT:    vmovdqa {{.*#+}} xmm3 = [0,7,6,u]
807 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm6 = ymm0[0,1,2,3,4,5],ymm1[6],ymm0[7]
808 ; AVX2-SLOW-NEXT:    vpermd %ymm6, %ymm3, %ymm3
809 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2],ymm2[3,4,5,6,7]
810 ; AVX2-SLOW-NEXT:    vmovdqa 128(%rdi), %xmm6
811 ; AVX2-SLOW-NEXT:    vmovdqa 160(%rdi), %xmm3
812 ; AVX2-SLOW-NEXT:    vpunpckhqdq {{.*#+}} xmm6 = xmm6[1],xmm3[1]
813 ; AVX2-SLOW-NEXT:    vinserti128 $1, %xmm6, %ymm0, %ymm6
814 ; AVX2-SLOW-NEXT:    vpbroadcastd 196(%rdi), %ymm7
815 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5,6],ymm7[7]
816 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm6[5,6,7]
817 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} xmm6 = mem[2,2,2,2]
818 ; AVX2-SLOW-NEXT:    vinserti128 $1, %xmm6, %ymm0, %ymm6
819 ; AVX2-SLOW-NEXT:    vpalignr {{.*#+}} ymm7 = ymm4[12,13,14,15],ymm5[0,1,2,3,4,5,6,7,8,9,10,11],ymm4[28,29,30,31],ymm5[16,17,18,19,20,21,22,23,24,25,26,27]
820 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm7 = ymm7[0,1,2,0]
821 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm6 = ymm7[0,1,2,3,4,5,6],ymm6[7]
822 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm7 = ymm10[0,1],ymm9[2,3],ymm10[4,5],ymm9[6,7]
823 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm7 = ymm7[1,2,2,3,5,6,6,7]
824 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm7 = ymm7[2,2,2,2]
825 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm1[0],ymm0[1],ymm1[2,3,4],ymm0[5],ymm1[6,7]
826 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm11 = ymm8[1,0,3,3,5,4,7,7]
827 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm11 = ymm11[0,3,2,3]
828 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm7 = ymm11[0,1,2],ymm7[3,4,5,6,7]
829 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm6 = ymm7[0,1,2,3,4],ymm6[5,6,7]
830 ; AVX2-SLOW-NEXT:    vmovdqa 80(%rdi), %xmm7
831 ; AVX2-SLOW-NEXT:    vpalignr {{.*#+}} ymm11 = ymm10[8,9,10,11,12,13,14,15],ymm9[0,1,2,3,4,5,6,7],ymm10[24,25,26,27,28,29,30,31],ymm9[16,17,18,19,20,21,22,23]
832 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm7 = ymm11[0,1,2],ymm7[3],ymm11[4,5,6,7]
833 ; AVX2-SLOW-NEXT:    vpbroadcastd 8(%rdi), %xmm11
834 ; AVX2-SLOW-NEXT:    vmovdqa 32(%rdi), %xmm12
835 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm11 = xmm11[0],xmm12[1],xmm11[2,3]
836 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm7 = ymm11[0,1],ymm7[2,3,4,5,6,7]
837 ; AVX2-SLOW-NEXT:    vpunpcklqdq {{.*#+}} ymm11 = ymm5[0],ymm4[0],ymm5[2],ymm4[2]
838 ; AVX2-SLOW-NEXT:    vpbroadcastd 204(%rdi), %ymm13
839 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm11 = ymm11[0,1,2,3,4,5,6],ymm13[7]
840 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3,4],ymm11[5,6,7]
841 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm11 = xmm12[0,1,2],mem[3]
842 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} xmm11 = xmm11[3,2,2,3]
843 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm9 = ymm10[0],ymm9[1],ymm10[2,3,4,5,6,7]
844 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm9 = ymm9[3,1,1,0,7,5,5,4]
845 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm9 = ymm11[0,1],ymm9[2,3,4,5,6,7]
846 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm10 = ymm5[0,2],ymm4[1,3],ymm5[4,6],ymm4[5,7]
847 ; AVX2-SLOW-NEXT:    vbroadcastss 208(%rdi), %ymm11
848 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1,2,3,4,5,6],ymm11[7]
849 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm9 = ymm9[0,1,2,3,4],ymm10[5,6,7]
850 ; AVX2-SLOW-NEXT:    vpbroadcastd 100(%rdi), %xmm10
851 ; AVX2-SLOW-NEXT:    vmovdqa 64(%rdi), %xmm11
852 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm10 = xmm11[0,1,2],xmm10[3]
853 ; AVX2-SLOW-NEXT:    vpbroadcastq {{.*#+}} xmm12 = [4,3,4,3]
854 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm13 = ymm1[0,1,2,3],ymm0[4,5,6,7]
855 ; AVX2-SLOW-NEXT:    vpermd %ymm13, %ymm12, %ymm12
856 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm10 = xmm12[0,1],xmm10[2,3]
857 ; AVX2-SLOW-NEXT:    vpbroadcastq {{.*#+}} ymm12 = [0,7,0,7,0,7,0,7]
858 ; AVX2-SLOW-NEXT:    vpermd %ymm5, %ymm12, %ymm13
859 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm13 = ymm13[0,1,2,3,4,5],ymm4[6,7]
860 ; AVX2-SLOW-NEXT:    vpbroadcastd 212(%rdi), %ymm14
861 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm13 = ymm13[0,1,2,3,4,5,6],ymm14[7]
862 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm10 = ymm10[0,1,2,3],ymm13[4,5,6,7]
863 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0],ymm5[1],ymm4[2,3,4],ymm5[5],ymm4[6,7]
864 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm4 = ymm4[1,0,3,3,5,4,7,7]
865 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm4 = ymm4[0,1,0,3]
866 ; AVX2-SLOW-NEXT:    vpbroadcastd 216(%rdi), %ymm5
867 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5,6],ymm5[7]
868 ; AVX2-SLOW-NEXT:    vmovdqa 96(%rdi), %xmm5
869 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm11 = xmm5[0,1,2],xmm11[3]
870 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} xmm11 = xmm11[0,1,3,2]
871 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm8 = ymm8[1,0,2,3,5,4,6,7]
872 ; AVX2-SLOW-NEXT:    vextracti128 $1, %ymm8, %xmm8
873 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm8 = xmm8[0,1],xmm11[2,3]
874 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm4 = ymm8[0,1,2,3],ymm4[4,5,6,7]
875 ; AVX2-SLOW-NEXT:    vpermd 192(%rdi), %ymm12, %ymm8
876 ; AVX2-SLOW-NEXT:    vpbroadcastd 136(%rdi), %xmm11
877 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm3 = xmm11[0],xmm3[1],xmm11[2,3]
878 ; AVX2-SLOW-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm3
879 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm8[6,7]
880 ; AVX2-SLOW-NEXT:    vpbroadcastd 80(%rdi), %ymm8
881 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm5 = xmm8[0,1,2],xmm5[3]
882 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]
883 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4],ymm1[5],ymm0[6,7]
884 ; AVX2-SLOW-NEXT:    vextracti128 $1, %ymm0, %xmm0
885 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm0 = xmm0[0,1],xmm5[2,3]
886 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
887 ; AVX2-SLOW-NEXT:    vmovdqa %ymm2, (%rsi)
888 ; AVX2-SLOW-NEXT:    vmovdqa %ymm6, (%rdx)
889 ; AVX2-SLOW-NEXT:    vmovdqa %ymm7, (%rcx)
890 ; AVX2-SLOW-NEXT:    vmovdqa %ymm9, (%r8)
891 ; AVX2-SLOW-NEXT:    vmovdqa %ymm10, (%r9)
892 ; AVX2-SLOW-NEXT:    vmovdqa %ymm4, (%r10)
893 ; AVX2-SLOW-NEXT:    vmovdqa %ymm0, (%rax)
894 ; AVX2-SLOW-NEXT:    vzeroupper
895 ; AVX2-SLOW-NEXT:    retq
897 ; AVX2-FAST-LABEL: load_i32_stride7_vf8:
898 ; AVX2-FAST:       # %bb.0:
899 ; AVX2-FAST-NEXT:    movq {{[0-9]+}}(%rsp), %rax
900 ; AVX2-FAST-NEXT:    movq {{[0-9]+}}(%rsp), %r10
901 ; AVX2-FAST-NEXT:    vmovdqa 64(%rdi), %ymm9
902 ; AVX2-FAST-NEXT:    vmovdqa 160(%rdi), %ymm4
903 ; AVX2-FAST-NEXT:    vmovdqa 128(%rdi), %ymm5
904 ; AVX2-FAST-NEXT:    vmovdqa (%rdi), %ymm0
905 ; AVX2-FAST-NEXT:    vmovdqa 32(%rdi), %ymm1
906 ; AVX2-FAST-NEXT:    vmovdqa 96(%rdi), %ymm10
907 ; AVX2-FAST-NEXT:    vpbroadcastq 80(%rdi), %ymm2
908 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm10[4,5,6,7]
909 ; AVX2-FAST-NEXT:    vmovdqa {{.*#+}} xmm3 = [0,7,6,u]
910 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm6 = ymm0[0,1,2,3,4,5],ymm1[6],ymm0[7]
911 ; AVX2-FAST-NEXT:    vpermd %ymm6, %ymm3, %ymm3
912 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2],ymm2[3,4,5,6,7]
913 ; AVX2-FAST-NEXT:    vmovdqa 128(%rdi), %xmm6
914 ; AVX2-FAST-NEXT:    vmovdqa 160(%rdi), %xmm3
915 ; AVX2-FAST-NEXT:    vpunpckhqdq {{.*#+}} xmm6 = xmm6[1],xmm3[1]
916 ; AVX2-FAST-NEXT:    vinserti128 $1, %xmm6, %ymm0, %ymm6
917 ; AVX2-FAST-NEXT:    vpbroadcastd 196(%rdi), %ymm7
918 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5,6],ymm7[7]
919 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm6[5,6,7]
920 ; AVX2-FAST-NEXT:    vpshufd {{.*#+}} xmm6 = mem[2,2,2,2]
921 ; AVX2-FAST-NEXT:    vinserti128 $1, %xmm6, %ymm0, %ymm6
922 ; AVX2-FAST-NEXT:    vpalignr {{.*#+}} ymm7 = ymm4[12,13,14,15],ymm5[0,1,2,3,4,5,6,7,8,9,10,11],ymm4[28,29,30,31],ymm5[16,17,18,19,20,21,22,23,24,25,26,27]
923 ; AVX2-FAST-NEXT:    vpermq {{.*#+}} ymm7 = ymm7[0,1,2,0]
924 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm6 = ymm7[0,1,2,3,4,5,6],ymm6[7]
925 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm7 = ymm10[0,1],ymm9[2,3],ymm10[4,5],ymm9[6,7]
926 ; AVX2-FAST-NEXT:    vpbroadcastq {{.*#+}} ymm8 = [5,6,5,6,5,6,5,6]
927 ; AVX2-FAST-NEXT:    vpermd %ymm7, %ymm8, %ymm7
928 ; AVX2-FAST-NEXT:    vbroadcasti128 {{.*#+}} ymm11 = [1,0,7,0,1,0,7,0]
929 ; AVX2-FAST-NEXT:    # ymm11 = mem[0,1,0,1]
930 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm8 = ymm1[0],ymm0[1],ymm1[2,3,4],ymm0[5],ymm1[6,7]
931 ; AVX2-FAST-NEXT:    vpermd %ymm8, %ymm11, %ymm11
932 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm7 = ymm11[0,1,2],ymm7[3,4,5,6,7]
933 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm6 = ymm7[0,1,2,3,4],ymm6[5,6,7]
934 ; AVX2-FAST-NEXT:    vmovdqa 80(%rdi), %xmm7
935 ; AVX2-FAST-NEXT:    vpalignr {{.*#+}} ymm11 = ymm10[8,9,10,11,12,13,14,15],ymm9[0,1,2,3,4,5,6,7],ymm10[24,25,26,27,28,29,30,31],ymm9[16,17,18,19,20,21,22,23]
936 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm7 = ymm11[0,1,2],ymm7[3],ymm11[4,5,6,7]
937 ; AVX2-FAST-NEXT:    vpbroadcastd 8(%rdi), %xmm11
938 ; AVX2-FAST-NEXT:    vmovdqa 32(%rdi), %xmm12
939 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm11 = xmm11[0],xmm12[1],xmm11[2,3]
940 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm7 = ymm11[0,1],ymm7[2,3,4,5,6,7]
941 ; AVX2-FAST-NEXT:    vpunpcklqdq {{.*#+}} ymm11 = ymm5[0],ymm4[0],ymm5[2],ymm4[2]
942 ; AVX2-FAST-NEXT:    vpbroadcastd 204(%rdi), %ymm13
943 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm11 = ymm11[0,1,2,3,4,5,6],ymm13[7]
944 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3,4],ymm11[5,6,7]
945 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm11 = xmm12[0,1,2],mem[3]
946 ; AVX2-FAST-NEXT:    vpshufd {{.*#+}} xmm11 = xmm11[3,2,2,3]
947 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm9 = ymm10[0],ymm9[1],ymm10[2,3,4,5,6,7]
948 ; AVX2-FAST-NEXT:    vpshufd {{.*#+}} ymm9 = ymm9[3,1,1,0,7,5,5,4]
949 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm9 = ymm11[0,1],ymm9[2,3,4,5,6,7]
950 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm10 = ymm5[0,2],ymm4[1,3],ymm5[4,6],ymm4[5,7]
951 ; AVX2-FAST-NEXT:    vbroadcastss 208(%rdi), %ymm11
952 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1,2,3,4,5,6],ymm11[7]
953 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm9 = ymm9[0,1,2,3,4],ymm10[5,6,7]
954 ; AVX2-FAST-NEXT:    vpbroadcastd 100(%rdi), %xmm10
955 ; AVX2-FAST-NEXT:    vmovdqa 64(%rdi), %xmm11
956 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm10 = xmm11[0,1,2],xmm10[3]
957 ; AVX2-FAST-NEXT:    vpbroadcastq {{.*#+}} xmm12 = [4,3,4,3]
958 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm13 = ymm1[0,1,2,3],ymm0[4,5,6,7]
959 ; AVX2-FAST-NEXT:    vpermd %ymm13, %ymm12, %ymm12
960 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm10 = xmm12[0,1],xmm10[2,3]
961 ; AVX2-FAST-NEXT:    vpbroadcastq {{.*#+}} ymm12 = [0,7,0,7,0,7,0,7]
962 ; AVX2-FAST-NEXT:    vpermd %ymm5, %ymm12, %ymm13
963 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm13 = ymm13[0,1,2,3,4,5],ymm4[6,7]
964 ; AVX2-FAST-NEXT:    vpbroadcastd 212(%rdi), %ymm14
965 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm13 = ymm13[0,1,2,3,4,5,6],ymm14[7]
966 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm10 = ymm10[0,1,2,3],ymm13[4,5,6,7]
967 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0],ymm5[1],ymm4[2,3,4],ymm5[5],ymm4[6,7]
968 ; AVX2-FAST-NEXT:    vbroadcasti128 {{.*#+}} ymm5 = [1,0,7,0,1,0,7,0]
969 ; AVX2-FAST-NEXT:    # ymm5 = mem[0,1,0,1]
970 ; AVX2-FAST-NEXT:    vpermd %ymm4, %ymm5, %ymm4
971 ; AVX2-FAST-NEXT:    vpbroadcastd 216(%rdi), %ymm5
972 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5,6],ymm5[7]
973 ; AVX2-FAST-NEXT:    vmovdqa 96(%rdi), %xmm5
974 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm11 = xmm5[0,1,2],xmm11[3]
975 ; AVX2-FAST-NEXT:    vpshufd {{.*#+}} xmm11 = xmm11[0,1,3,2]
976 ; AVX2-FAST-NEXT:    vpshufd {{.*#+}} ymm8 = ymm8[1,0,2,3,5,4,6,7]
977 ; AVX2-FAST-NEXT:    vextracti128 $1, %ymm8, %xmm8
978 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm8 = xmm8[0,1],xmm11[2,3]
979 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm4 = ymm8[0,1,2,3],ymm4[4,5,6,7]
980 ; AVX2-FAST-NEXT:    vpermd 192(%rdi), %ymm12, %ymm8
981 ; AVX2-FAST-NEXT:    vpbroadcastd 136(%rdi), %xmm11
982 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm3 = xmm11[0],xmm3[1],xmm11[2,3]
983 ; AVX2-FAST-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm3
984 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm8[6,7]
985 ; AVX2-FAST-NEXT:    vpbroadcastd 80(%rdi), %ymm8
986 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm5 = xmm8[0,1,2],xmm5[3]
987 ; AVX2-FAST-NEXT:    vpshufd {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]
988 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4],ymm1[5],ymm0[6,7]
989 ; AVX2-FAST-NEXT:    vextracti128 $1, %ymm0, %xmm0
990 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm0 = xmm0[0,1],xmm5[2,3]
991 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
992 ; AVX2-FAST-NEXT:    vmovdqa %ymm2, (%rsi)
993 ; AVX2-FAST-NEXT:    vmovdqa %ymm6, (%rdx)
994 ; AVX2-FAST-NEXT:    vmovdqa %ymm7, (%rcx)
995 ; AVX2-FAST-NEXT:    vmovdqa %ymm9, (%r8)
996 ; AVX2-FAST-NEXT:    vmovdqa %ymm10, (%r9)
997 ; AVX2-FAST-NEXT:    vmovdqa %ymm4, (%r10)
998 ; AVX2-FAST-NEXT:    vmovdqa %ymm0, (%rax)
999 ; AVX2-FAST-NEXT:    vzeroupper
1000 ; AVX2-FAST-NEXT:    retq
1002 ; AVX2-FAST-PERLANE-LABEL: load_i32_stride7_vf8:
1003 ; AVX2-FAST-PERLANE:       # %bb.0:
1004 ; AVX2-FAST-PERLANE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1005 ; AVX2-FAST-PERLANE-NEXT:    movq {{[0-9]+}}(%rsp), %r10
1006 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 64(%rdi), %ymm9
1007 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 160(%rdi), %ymm4
1008 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 128(%rdi), %ymm5
1009 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa (%rdi), %ymm0
1010 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 32(%rdi), %ymm1
1011 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 96(%rdi), %ymm10
1012 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastq 80(%rdi), %ymm2
1013 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm10[4,5,6,7]
1014 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa {{.*#+}} xmm3 = [0,7,6,u]
1015 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm6 = ymm0[0,1,2,3,4,5],ymm1[6],ymm0[7]
1016 ; AVX2-FAST-PERLANE-NEXT:    vpermd %ymm6, %ymm3, %ymm3
1017 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2],ymm2[3,4,5,6,7]
1018 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 128(%rdi), %xmm6
1019 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 160(%rdi), %xmm3
1020 ; AVX2-FAST-PERLANE-NEXT:    vpunpckhqdq {{.*#+}} xmm6 = xmm6[1],xmm3[1]
1021 ; AVX2-FAST-PERLANE-NEXT:    vinserti128 $1, %xmm6, %ymm0, %ymm6
1022 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 196(%rdi), %ymm7
1023 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5,6],ymm7[7]
1024 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm6[5,6,7]
1025 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} xmm6 = mem[2,2,2,2]
1026 ; AVX2-FAST-PERLANE-NEXT:    vinserti128 $1, %xmm6, %ymm0, %ymm6
1027 ; AVX2-FAST-PERLANE-NEXT:    vpalignr {{.*#+}} ymm7 = ymm4[12,13,14,15],ymm5[0,1,2,3,4,5,6,7,8,9,10,11],ymm4[28,29,30,31],ymm5[16,17,18,19,20,21,22,23,24,25,26,27]
1028 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm7 = ymm7[0,1,2,0]
1029 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm6 = ymm7[0,1,2,3,4,5,6],ymm6[7]
1030 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm7 = ymm10[0,1],ymm9[2,3],ymm10[4,5],ymm9[6,7]
1031 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm7 = ymm7[1,2,2,3,5,6,6,7]
1032 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm7 = ymm7[2,2,2,2]
1033 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm8 = ymm1[0],ymm0[1],ymm1[2,3,4],ymm0[5],ymm1[6,7]
1034 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm11 = ymm8[1,0,3,3,5,4,7,7]
1035 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm11 = ymm11[0,3,2,3]
1036 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm7 = ymm11[0,1,2],ymm7[3,4,5,6,7]
1037 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm6 = ymm7[0,1,2,3,4],ymm6[5,6,7]
1038 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 80(%rdi), %xmm7
1039 ; AVX2-FAST-PERLANE-NEXT:    vpalignr {{.*#+}} ymm11 = ymm10[8,9,10,11,12,13,14,15],ymm9[0,1,2,3,4,5,6,7],ymm10[24,25,26,27,28,29,30,31],ymm9[16,17,18,19,20,21,22,23]
1040 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm7 = ymm11[0,1,2],ymm7[3],ymm11[4,5,6,7]
1041 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 8(%rdi), %xmm11
1042 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 32(%rdi), %xmm12
1043 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm11 = xmm11[0],xmm12[1],xmm11[2,3]
1044 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm7 = ymm11[0,1],ymm7[2,3,4,5,6,7]
1045 ; AVX2-FAST-PERLANE-NEXT:    vpunpcklqdq {{.*#+}} ymm11 = ymm5[0],ymm4[0],ymm5[2],ymm4[2]
1046 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 204(%rdi), %ymm13
1047 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm11 = ymm11[0,1,2,3,4,5,6],ymm13[7]
1048 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3,4],ymm11[5,6,7]
1049 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm11 = xmm12[0,1,2],mem[3]
1050 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} xmm11 = xmm11[3,2,2,3]
1051 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm9 = ymm10[0],ymm9[1],ymm10[2,3,4,5,6,7]
1052 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm9 = ymm9[3,1,1,0,7,5,5,4]
1053 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm9 = ymm11[0,1],ymm9[2,3,4,5,6,7]
1054 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm10 = ymm5[0,2],ymm4[1,3],ymm5[4,6],ymm4[5,7]
1055 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 208(%rdi), %ymm11
1056 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1,2,3,4,5,6],ymm11[7]
1057 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm9 = ymm9[0,1,2,3,4],ymm10[5,6,7]
1058 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 100(%rdi), %xmm10
1059 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 64(%rdi), %xmm11
1060 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm10 = xmm11[0,1,2],xmm10[3]
1061 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastq {{.*#+}} xmm12 = [4,3,4,3]
1062 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm13 = ymm1[0,1,2,3],ymm0[4,5,6,7]
1063 ; AVX2-FAST-PERLANE-NEXT:    vpermd %ymm13, %ymm12, %ymm12
1064 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm10 = xmm12[0,1],xmm10[2,3]
1065 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastq {{.*#+}} ymm12 = [0,7,0,7,0,7,0,7]
1066 ; AVX2-FAST-PERLANE-NEXT:    vpermd %ymm5, %ymm12, %ymm13
1067 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm13 = ymm13[0,1,2,3,4,5],ymm4[6,7]
1068 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 212(%rdi), %ymm14
1069 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm13 = ymm13[0,1,2,3,4,5,6],ymm14[7]
1070 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm10 = ymm10[0,1,2,3],ymm13[4,5,6,7]
1071 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0],ymm5[1],ymm4[2,3,4],ymm5[5],ymm4[6,7]
1072 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm4 = ymm4[1,0,3,3,5,4,7,7]
1073 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm4 = ymm4[0,1,0,3]
1074 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 216(%rdi), %ymm5
1075 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5,6],ymm5[7]
1076 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 96(%rdi), %xmm5
1077 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm11 = xmm5[0,1,2],xmm11[3]
1078 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} xmm11 = xmm11[0,1,3,2]
1079 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm8 = ymm8[1,0,2,3,5,4,6,7]
1080 ; AVX2-FAST-PERLANE-NEXT:    vextracti128 $1, %ymm8, %xmm8
1081 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm8 = xmm8[0,1],xmm11[2,3]
1082 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm4 = ymm8[0,1,2,3],ymm4[4,5,6,7]
1083 ; AVX2-FAST-PERLANE-NEXT:    vpermd 192(%rdi), %ymm12, %ymm8
1084 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 136(%rdi), %xmm11
1085 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm3 = xmm11[0],xmm3[1],xmm11[2,3]
1086 ; AVX2-FAST-PERLANE-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm3
1087 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm8[6,7]
1088 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 80(%rdi), %ymm8
1089 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm5 = xmm8[0,1,2],xmm5[3]
1090 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]
1091 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4],ymm1[5],ymm0[6,7]
1092 ; AVX2-FAST-PERLANE-NEXT:    vextracti128 $1, %ymm0, %xmm0
1093 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm0 = xmm0[0,1],xmm5[2,3]
1094 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
1095 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %ymm2, (%rsi)
1096 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %ymm6, (%rdx)
1097 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %ymm7, (%rcx)
1098 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %ymm9, (%r8)
1099 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %ymm10, (%r9)
1100 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %ymm4, (%r10)
1101 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %ymm0, (%rax)
1102 ; AVX2-FAST-PERLANE-NEXT:    vzeroupper
1103 ; AVX2-FAST-PERLANE-NEXT:    retq
1105 ; AVX512-LABEL: load_i32_stride7_vf8:
1106 ; AVX512:       # %bb.0:
1107 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1108 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %r10
1109 ; AVX512-NEXT:    vmovdqa64 (%rdi), %zmm0
1110 ; AVX512-NEXT:    vmovdqa64 64(%rdi), %zmm1
1111 ; AVX512-NEXT:    vmovdqa64 128(%rdi), %zmm2
1112 ; AVX512-NEXT:    vmovdqa64 192(%rdi), %zmm3
1113 ; AVX512-NEXT:    vbroadcasti128 {{.*#+}} ymm4 = [0,3,10,17,0,3,10,17]
1114 ; AVX512-NEXT:    # ymm4 = mem[0,1,0,1]
1115 ; AVX512-NEXT:    vpermi2d %zmm3, %zmm2, %zmm4
1116 ; AVX512-NEXT:    vmovdqa {{.*#+}} ymm5 = [0,7,14,21,28,u,u,u]
1117 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm5
1118 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm4 = ymm5[0,1,2,3,4],ymm4[5,6,7]
1119 ; AVX512-NEXT:    vbroadcasti128 {{.*#+}} ymm5 = [0,4,11,18,0,4,11,18]
1120 ; AVX512-NEXT:    # ymm5 = mem[0,1,0,1]
1121 ; AVX512-NEXT:    vpermi2d %zmm3, %zmm2, %zmm5
1122 ; AVX512-NEXT:    vmovdqa {{.*#+}} ymm6 = [1,8,15,22,29,u,u,u]
1123 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm6
1124 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm5 = ymm6[0,1,2,3,4],ymm5[5,6,7]
1125 ; AVX512-NEXT:    vbroadcasti128 {{.*#+}} ymm6 = [0,5,12,19,0,5,12,19]
1126 ; AVX512-NEXT:    # ymm6 = mem[0,1,0,1]
1127 ; AVX512-NEXT:    vpermi2d %zmm3, %zmm2, %zmm6
1128 ; AVX512-NEXT:    vmovdqa {{.*#+}} ymm7 = [18,25,0,7,14,u,u,u]
1129 ; AVX512-NEXT:    vpermi2d %zmm0, %zmm1, %zmm7
1130 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm6 = ymm7[0,1,2,3,4],ymm6[5,6,7]
1131 ; AVX512-NEXT:    vbroadcasti128 {{.*#+}} ymm7 = [0,6,13,20,0,6,13,20]
1132 ; AVX512-NEXT:    # ymm7 = mem[0,1,0,1]
1133 ; AVX512-NEXT:    vpermi2d %zmm3, %zmm2, %zmm7
1134 ; AVX512-NEXT:    vmovdqa {{.*#+}} ymm8 = [19,26,1,8,15,u,u,u]
1135 ; AVX512-NEXT:    vpermi2d %zmm0, %zmm1, %zmm8
1136 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm7 = ymm8[0,1,2,3,4],ymm7[5,6,7]
1137 ; AVX512-NEXT:    vbroadcasti128 {{.*#+}} ymm8 = [0,7,14,21,0,7,14,21]
1138 ; AVX512-NEXT:    # ymm8 = mem[0,1,0,1]
1139 ; AVX512-NEXT:    vpermi2d %zmm3, %zmm2, %zmm8
1140 ; AVX512-NEXT:    vmovdqa {{.*#+}} xmm9 = [4,11,18,25]
1141 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm9
1142 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm8 = ymm9[0,1,2,3],ymm8[4,5,6,7]
1143 ; AVX512-NEXT:    vbroadcasti128 {{.*#+}} ymm9 = [1,8,15,22,1,8,15,22]
1144 ; AVX512-NEXT:    # ymm9 = mem[0,1,0,1]
1145 ; AVX512-NEXT:    vpermi2d %zmm3, %zmm2, %zmm9
1146 ; AVX512-NEXT:    vmovdqa {{.*#+}} xmm10 = [5,12,19,26]
1147 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm10
1148 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm9 = ymm10[0,1,2,3],ymm9[4,5,6,7]
1149 ; AVX512-NEXT:    vbroadcasti128 {{.*#+}} ymm10 = [2,9,16,23,2,9,16,23]
1150 ; AVX512-NEXT:    # ymm10 = mem[0,1,0,1]
1151 ; AVX512-NEXT:    vpermi2d %zmm3, %zmm2, %zmm10
1152 ; AVX512-NEXT:    vmovdqa {{.*#+}} xmm2 = [6,13,20,27]
1153 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2
1154 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm10[4,5,6,7]
1155 ; AVX512-NEXT:    vmovdqa %ymm4, (%rsi)
1156 ; AVX512-NEXT:    vmovdqa %ymm5, (%rdx)
1157 ; AVX512-NEXT:    vmovdqa %ymm6, (%rcx)
1158 ; AVX512-NEXT:    vmovdqa %ymm7, (%r8)
1159 ; AVX512-NEXT:    vmovdqa %ymm8, (%r9)
1160 ; AVX512-NEXT:    vmovdqa %ymm9, (%r10)
1161 ; AVX512-NEXT:    vmovdqa %ymm0, (%rax)
1162 ; AVX512-NEXT:    vzeroupper
1163 ; AVX512-NEXT:    retq
1164   %wide.vec = load <56 x i32>, ptr %in.vec, align 64
1165   %strided.vec0 = shufflevector <56 x i32> %wide.vec, <56 x i32> poison, <8 x i32> <i32 0, i32 7, i32 14, i32 21, i32 28, i32 35, i32 42, i32 49>
1166   %strided.vec1 = shufflevector <56 x i32> %wide.vec, <56 x i32> poison, <8 x i32> <i32 1, i32 8, i32 15, i32 22, i32 29, i32 36, i32 43, i32 50>
1167   %strided.vec2 = shufflevector <56 x i32> %wide.vec, <56 x i32> poison, <8 x i32> <i32 2, i32 9, i32 16, i32 23, i32 30, i32 37, i32 44, i32 51>
1168   %strided.vec3 = shufflevector <56 x i32> %wide.vec, <56 x i32> poison, <8 x i32> <i32 3, i32 10, i32 17, i32 24, i32 31, i32 38, i32 45, i32 52>
1169   %strided.vec4 = shufflevector <56 x i32> %wide.vec, <56 x i32> poison, <8 x i32> <i32 4, i32 11, i32 18, i32 25, i32 32, i32 39, i32 46, i32 53>
1170   %strided.vec5 = shufflevector <56 x i32> %wide.vec, <56 x i32> poison, <8 x i32> <i32 5, i32 12, i32 19, i32 26, i32 33, i32 40, i32 47, i32 54>
1171   %strided.vec6 = shufflevector <56 x i32> %wide.vec, <56 x i32> poison, <8 x i32> <i32 6, i32 13, i32 20, i32 27, i32 34, i32 41, i32 48, i32 55>
1172   store <8 x i32> %strided.vec0, ptr %out.vec0, align 64
1173   store <8 x i32> %strided.vec1, ptr %out.vec1, align 64
1174   store <8 x i32> %strided.vec2, ptr %out.vec2, align 64
1175   store <8 x i32> %strided.vec3, ptr %out.vec3, align 64
1176   store <8 x i32> %strided.vec4, ptr %out.vec4, align 64
1177   store <8 x i32> %strided.vec5, ptr %out.vec5, align 64
1178   store <8 x i32> %strided.vec6, ptr %out.vec6, align 64
1179   ret void
1182 define void @load_i32_stride7_vf16(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4, ptr %out.vec5, ptr %out.vec6) nounwind {
1183 ; SSE-LABEL: load_i32_stride7_vf16:
1184 ; SSE:       # %bb.0:
1185 ; SSE-NEXT:    subq $440, %rsp # imm = 0x1B8
1186 ; SSE-NEXT:    movdqa 304(%rdi), %xmm3
1187 ; SSE-NEXT:    movdqa 272(%rdi), %xmm5
1188 ; SSE-NEXT:    movdqa 224(%rdi), %xmm15
1189 ; SSE-NEXT:    movdqa 240(%rdi), %xmm6
1190 ; SSE-NEXT:    movdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1191 ; SSE-NEXT:    movdqa 80(%rdi), %xmm7
1192 ; SSE-NEXT:    movdqa (%rdi), %xmm2
1193 ; SSE-NEXT:    movdqa 16(%rdi), %xmm8
1194 ; SSE-NEXT:    movdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1195 ; SSE-NEXT:    movdqa 48(%rdi), %xmm9
1196 ; SSE-NEXT:    movdqa 192(%rdi), %xmm14
1197 ; SSE-NEXT:    movdqa 160(%rdi), %xmm11
1198 ; SSE-NEXT:    movdqa 112(%rdi), %xmm4
1199 ; SSE-NEXT:    movdqa 128(%rdi), %xmm0
1200 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1201 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[3,3,3,3]
1202 ; SSE-NEXT:    movdqa %xmm4, %xmm1
1203 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
1204 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm11[2,2,3,3]
1205 ; SSE-NEXT:    movdqa %xmm11, %xmm12
1206 ; SSE-NEXT:    movdqa %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1207 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm14[0],xmm0[1],xmm14[1]
1208 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
1209 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1210 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm8[3,3,3,3]
1211 ; SSE-NEXT:    movdqa %xmm2, %xmm1
1212 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
1213 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm9[2,2,3,3]
1214 ; SSE-NEXT:    movdqa %xmm9, %xmm11
1215 ; SSE-NEXT:    movdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1216 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm7[0],xmm0[1],xmm7[1]
1217 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
1218 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1219 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm6[3,3,3,3]
1220 ; SSE-NEXT:    movdqa %xmm15, %xmm1
1221 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
1222 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm5[2,2,3,3]
1223 ; SSE-NEXT:    movdqa %xmm5, %xmm9
1224 ; SSE-NEXT:    movdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1225 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
1226 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
1227 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1228 ; SSE-NEXT:    movdqa 336(%rdi), %xmm1
1229 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1230 ; SSE-NEXT:    movdqa 352(%rdi), %xmm0
1231 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1232 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[3,3,3,3]
1233 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
1234 ; SSE-NEXT:    movdqa 416(%rdi), %xmm8
1235 ; SSE-NEXT:    movdqa 384(%rdi), %xmm5
1236 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm5[2,2,3,3]
1237 ; SSE-NEXT:    movdqa %xmm5, %xmm13
1238 ; SSE-NEXT:    movdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1239 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm8[0],xmm0[1],xmm8[1]
1240 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
1241 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1242 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm14[2,2,2,2]
1243 ; SSE-NEXT:    movdqa %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1244 ; SSE-NEXT:    movdqa %xmm12, %xmm1
1245 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
1246 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm4[1,1,1,1]
1247 ; SSE-NEXT:    movdqa %xmm4, %xmm5
1248 ; SSE-NEXT:    movdqa 144(%rdi), %xmm4
1249 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1]
1250 ; SSE-NEXT:    movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1251 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
1252 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1253 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm7[2,2,2,2]
1254 ; SSE-NEXT:    movdqa %xmm7, %xmm12
1255 ; SSE-NEXT:    movdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1256 ; SSE-NEXT:    movdqa %xmm11, %xmm1
1257 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
1258 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm2[1,1,1,1]
1259 ; SSE-NEXT:    movdqa %xmm2, %xmm10
1260 ; SSE-NEXT:    movdqa 32(%rdi), %xmm7
1261 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm7[0],xmm0[1],xmm7[1]
1262 ; SSE-NEXT:    movdqa %xmm7, (%rsp) # 16-byte Spill
1263 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
1264 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1265 ; SSE-NEXT:    movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1266 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm3[2,2,2,2]
1267 ; SSE-NEXT:    movdqa %xmm9, %xmm1
1268 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
1269 ; SSE-NEXT:    movdqa %xmm15, %xmm11
1270 ; SSE-NEXT:    movdqa %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1271 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm15[1,1,1,1]
1272 ; SSE-NEXT:    movdqa 256(%rdi), %xmm2
1273 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
1274 ; SSE-NEXT:    movdqa %xmm2, %xmm15
1275 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
1276 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1277 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm8[2,2,2,2]
1278 ; SSE-NEXT:    movdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1279 ; SSE-NEXT:    movdqa %xmm13, %xmm1
1280 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
1281 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload
1282 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm13[1,1,1,1]
1283 ; SSE-NEXT:    movdqa 368(%rdi), %xmm2
1284 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
1285 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
1286 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1287 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm5[2,3,2,3]
1288 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm4[1,1,1,1]
1289 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
1290 ; SSE-NEXT:    movdqa 176(%rdi), %xmm4
1291 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm14[2,3,2,3]
1292 ; SSE-NEXT:    pshufd {{.*#+}} xmm9 = xmm4[0,0,1,1]
1293 ; SSE-NEXT:    punpckldq {{.*#+}} xmm9 = xmm9[0],xmm1[0],xmm9[1],xmm1[1]
1294 ; SSE-NEXT:    movsd {{.*#+}} xmm9 = xmm0[0],xmm9[1]
1295 ; SSE-NEXT:    movapd %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1296 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm10[2,3,2,3]
1297 ; SSE-NEXT:    movdqa %xmm10, %xmm14
1298 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm7[1,1,1,1]
1299 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
1300 ; SSE-NEXT:    movdqa 64(%rdi), %xmm9
1301 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm12[2,3,2,3]
1302 ; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm9[0,0,1,1]
1303 ; SSE-NEXT:    punpckldq {{.*#+}} xmm6 = xmm6[0],xmm1[0],xmm6[1],xmm1[1]
1304 ; SSE-NEXT:    movsd {{.*#+}} xmm6 = xmm0[0],xmm6[1]
1305 ; SSE-NEXT:    movapd %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1306 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm11[2,3,2,3]
1307 ; SSE-NEXT:    movdqa %xmm15, %xmm12
1308 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm15[1,1,1,1]
1309 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
1310 ; SSE-NEXT:    movdqa 288(%rdi), %xmm15
1311 ; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm3[2,3,2,3]
1312 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm15[0,0,1,1]
1313 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm6[0],xmm1[1],xmm6[1]
1314 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
1315 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1316 ; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm13[2,3,2,3]
1317 ; SSE-NEXT:    movdqa %xmm13, %xmm1
1318 ; SSE-NEXT:    movdqa %xmm2, %xmm11
1319 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm2[1,1,1,1]
1320 ; SSE-NEXT:    punpckldq {{.*#+}} xmm6 = xmm6[0],xmm0[0],xmm6[1],xmm0[1]
1321 ; SSE-NEXT:    movdqa 400(%rdi), %xmm13
1322 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm8[2,3,2,3]
1323 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm13[0,0,1,1]
1324 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm7[0],xmm0[1],xmm7[1]
1325 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm6[0],xmm0[1]
1326 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1327 ; SSE-NEXT:    movdqa 208(%rdi), %xmm10
1328 ; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm10[0,0,1,1]
1329 ; SSE-NEXT:    movdqa %xmm4, %xmm2
1330 ; SSE-NEXT:    movdqa %xmm4, %xmm0
1331 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm6[0],xmm0[1],xmm6[1]
1332 ; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm5[2,2,3,3]
1333 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
1334 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm4 = xmm4[2],xmm5[2],xmm4[3],xmm5[3]
1335 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm4[0],xmm0[1]
1336 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1337 ; SSE-NEXT:    movdqa 96(%rdi), %xmm0
1338 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1339 ; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm0[0,0,1,1]
1340 ; SSE-NEXT:    movdqa %xmm9, %xmm3
1341 ; SSE-NEXT:    movdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1342 ; SSE-NEXT:    movdqa %xmm9, %xmm0
1343 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1]
1344 ; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm14[2,2,3,3]
1345 ; SSE-NEXT:    movdqa (%rsp), %xmm6 # 16-byte Reload
1346 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm4 = xmm4[2],xmm6[2],xmm4[3],xmm6[3]
1347 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm4[0],xmm0[1]
1348 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1349 ; SSE-NEXT:    movdqa 320(%rdi), %xmm0
1350 ; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm0[0,0,1,1]
1351 ; SSE-NEXT:    movdqa %xmm0, %xmm7
1352 ; SSE-NEXT:    movdqa %xmm15, %xmm0
1353 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1]
1354 ; SSE-NEXT:    pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
1355 ; SSE-NEXT:    # xmm4 = mem[2,2,3,3]
1356 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm4 = xmm4[2],xmm12[2],xmm4[3],xmm12[3]
1357 ; SSE-NEXT:    movdqa %xmm12, %xmm14
1358 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm4[0],xmm0[1]
1359 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1360 ; SSE-NEXT:    movdqa 432(%rdi), %xmm0
1361 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1362 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,1,1]
1363 ; SSE-NEXT:    movdqa %xmm13, %xmm4
1364 ; SSE-NEXT:    punpckldq {{.*#+}} xmm4 = xmm4[0],xmm0[0],xmm4[1],xmm0[1]
1365 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm1[2,2,3,3]
1366 ; SSE-NEXT:    movdqa %xmm11, %xmm9
1367 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm11[2],xmm0[3],xmm11[3]
1368 ; SSE-NEXT:    movsd {{.*#+}} xmm4 = xmm0[0],xmm4[1]
1369 ; SSE-NEXT:    movapd %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1370 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm5[3,3,3,3]
1371 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
1372 ; SSE-NEXT:    movdqa %xmm8, %xmm5
1373 ; SSE-NEXT:    punpckldq {{.*#+}} xmm5 = xmm5[0],xmm0[0],xmm5[1],xmm0[1]
1374 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm2[2,2,3,3]
1375 ; SSE-NEXT:    movdqa %xmm2, %xmm1
1376 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm10[0],xmm0[1],xmm10[1]
1377 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm5[0],xmm0[1]
1378 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1379 ; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm6[3,3,3,3]
1380 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
1381 ; SSE-NEXT:    movdqa %xmm4, %xmm0
1382 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm5[0],xmm0[1],xmm5[1]
1383 ; SSE-NEXT:    pshufd {{.*#+}} xmm12 = xmm3[2,2,3,3]
1384 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
1385 ; SSE-NEXT:    punpckldq {{.*#+}} xmm12 = xmm12[0],xmm2[0],xmm12[1],xmm2[1]
1386 ; SSE-NEXT:    movsd {{.*#+}} xmm12 = xmm0[0],xmm12[1]
1387 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm14[3,3,3,3]
1388 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
1389 ; SSE-NEXT:    movdqa %xmm6, %xmm5
1390 ; SSE-NEXT:    punpckldq {{.*#+}} xmm5 = xmm5[0],xmm0[0],xmm5[1],xmm0[1]
1391 ; SSE-NEXT:    pshufd {{.*#+}} xmm14 = xmm15[2,2,3,3]
1392 ; SSE-NEXT:    punpckldq {{.*#+}} xmm14 = xmm14[0],xmm7[0],xmm14[1],xmm7[1]
1393 ; SSE-NEXT:    movdqa %xmm7, %xmm11
1394 ; SSE-NEXT:    movdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1395 ; SSE-NEXT:    movsd {{.*#+}} xmm14 = xmm5[0],xmm14[1]
1396 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm9[3,3,3,3]
1397 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
1398 ; SSE-NEXT:    movdqa %xmm7, %xmm5
1399 ; SSE-NEXT:    punpckldq {{.*#+}} xmm5 = xmm5[0],xmm0[0],xmm5[1],xmm0[1]
1400 ; SSE-NEXT:    pshufd {{.*#+}} xmm9 = xmm13[2,2,3,3]
1401 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
1402 ; SSE-NEXT:    punpckldq {{.*#+}} xmm9 = xmm9[0],xmm3[0],xmm9[1],xmm3[1]
1403 ; SSE-NEXT:    movsd {{.*#+}} xmm9 = xmm5[0],xmm9[1]
1404 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm10[2,2,2,2]
1405 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
1406 ; SSE-NEXT:    movdqa %xmm8, %xmm5
1407 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm8[1,1,1,1]
1408 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
1409 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm8[0],xmm0[1],xmm8[1]
1410 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
1411 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1412 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm2[2,2,2,2]
1413 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1414 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
1415 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm4[1,1,1,1]
1416 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
1417 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1]
1418 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
1419 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1420 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm11[2,2,2,2]
1421 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm15 = xmm15[2],xmm0[2],xmm15[3],xmm0[3]
1422 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm6[1,1,1,1]
1423 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1424 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
1425 ; SSE-NEXT:    movsd {{.*#+}} xmm15 = xmm0[0],xmm15[1]
1426 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm3[2,2,2,2]
1427 ; SSE-NEXT:    movdqa %xmm3, %xmm11
1428 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm13 = xmm13[2],xmm0[2],xmm13[3],xmm0[3]
1429 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm7[1,1,1,1]
1430 ; SSE-NEXT:    movdqa %xmm7, %xmm2
1431 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
1432 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
1433 ; SSE-NEXT:    movsd {{.*#+}} xmm13 = xmm0[0],xmm13[1]
1434 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm8[1,1,1,1]
1435 ; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[2,3,2,3]
1436 ; SSE-NEXT:    punpckldq {{.*#+}} xmm5 = xmm5[0],xmm0[0],xmm5[1],xmm0[1]
1437 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm10[2,3,2,3]
1438 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Folded Reload
1439 ; SSE-NEXT:    # xmm10 = mem[0,0,1,1]
1440 ; SSE-NEXT:    punpckldq {{.*#+}} xmm10 = xmm10[0],xmm0[0],xmm10[1],xmm0[1]
1441 ; SSE-NEXT:    movsd {{.*#+}} xmm10 = xmm5[0],xmm10[1]
1442 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm4[1,1,1,1]
1443 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload
1444 ; SSE-NEXT:    # xmm5 = mem[2,3,2,3]
1445 ; SSE-NEXT:    punpckldq {{.*#+}} xmm5 = xmm5[0],xmm0[0],xmm5[1],xmm0[1]
1446 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
1447 ; SSE-NEXT:    # xmm0 = mem[2,3,2,3]
1448 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload
1449 ; SSE-NEXT:    # xmm7 = mem[0,0,1,1]
1450 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm0[0],xmm7[1],xmm0[1]
1451 ; SSE-NEXT:    movsd {{.*#+}} xmm7 = xmm5[0],xmm7[1]
1452 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm1[1,1,1,1]
1453 ; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm6[2,3,2,3]
1454 ; SSE-NEXT:    punpckldq {{.*#+}} xmm5 = xmm5[0],xmm0[0],xmm5[1],xmm0[1]
1455 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
1456 ; SSE-NEXT:    # xmm0 = mem[2,3,2,3]
1457 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload
1458 ; SSE-NEXT:    # xmm6 = mem[0,0,1,1]
1459 ; SSE-NEXT:    punpckldq {{.*#+}} xmm6 = xmm6[0],xmm0[0],xmm6[1],xmm0[1]
1460 ; SSE-NEXT:    movsd {{.*#+}} xmm6 = xmm5[0],xmm6[1]
1461 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm3[1,1,1,1]
1462 ; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm2[2,3,2,3]
1463 ; SSE-NEXT:    punpckldq {{.*#+}} xmm5 = xmm5[0],xmm0[0],xmm5[1],xmm0[1]
1464 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm11[2,3,2,3]
1465 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
1466 ; SSE-NEXT:    # xmm4 = mem[0,0,1,1]
1467 ; SSE-NEXT:    punpckldq {{.*#+}} xmm4 = xmm4[0],xmm0[0],xmm4[1],xmm0[1]
1468 ; SSE-NEXT:    movsd {{.*#+}} xmm4 = xmm5[0],xmm4[1]
1469 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1470 ; SSE-NEXT:    movaps %xmm0, 48(%rsi)
1471 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1472 ; SSE-NEXT:    movaps %xmm0, 32(%rsi)
1473 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1474 ; SSE-NEXT:    movaps %xmm0, (%rsi)
1475 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1476 ; SSE-NEXT:    movaps %xmm0, 16(%rsi)
1477 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1478 ; SSE-NEXT:    movaps %xmm0, 48(%rdx)
1479 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1480 ; SSE-NEXT:    movaps %xmm0, 32(%rdx)
1481 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1482 ; SSE-NEXT:    movaps %xmm0, (%rdx)
1483 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1484 ; SSE-NEXT:    movaps %xmm0, 16(%rdx)
1485 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1486 ; SSE-NEXT:    movaps %xmm0, 48(%rcx)
1487 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1488 ; SSE-NEXT:    movaps %xmm0, 32(%rcx)
1489 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1490 ; SSE-NEXT:    movaps %xmm0, (%rcx)
1491 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1492 ; SSE-NEXT:    movaps %xmm0, 16(%rcx)
1493 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1494 ; SSE-NEXT:    movaps %xmm0, 48(%r8)
1495 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1496 ; SSE-NEXT:    movaps %xmm0, 32(%r8)
1497 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1498 ; SSE-NEXT:    movaps %xmm0, (%r8)
1499 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1500 ; SSE-NEXT:    movaps %xmm0, 16(%r8)
1501 ; SSE-NEXT:    movapd %xmm9, 48(%r9)
1502 ; SSE-NEXT:    movapd %xmm14, 32(%r9)
1503 ; SSE-NEXT:    movapd %xmm12, (%r9)
1504 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1505 ; SSE-NEXT:    movaps %xmm0, 16(%r9)
1506 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1507 ; SSE-NEXT:    movapd %xmm13, 48(%rax)
1508 ; SSE-NEXT:    movapd %xmm15, 32(%rax)
1509 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1510 ; SSE-NEXT:    movaps %xmm0, (%rax)
1511 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1512 ; SSE-NEXT:    movaps %xmm0, 16(%rax)
1513 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1514 ; SSE-NEXT:    movapd %xmm4, 48(%rax)
1515 ; SSE-NEXT:    movapd %xmm6, 32(%rax)
1516 ; SSE-NEXT:    movapd %xmm7, (%rax)
1517 ; SSE-NEXT:    movapd %xmm10, 16(%rax)
1518 ; SSE-NEXT:    addq $440, %rsp # imm = 0x1B8
1519 ; SSE-NEXT:    retq
1521 ; AVX1-ONLY-LABEL: load_i32_stride7_vf16:
1522 ; AVX1-ONLY:       # %bb.0:
1523 ; AVX1-ONLY-NEXT:    subq $456, %rsp # imm = 0x1C8
1524 ; AVX1-ONLY-NEXT:    vmovaps 256(%rdi), %ymm4
1525 ; AVX1-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1526 ; AVX1-ONLY-NEXT:    vmovaps 224(%rdi), %ymm5
1527 ; AVX1-ONLY-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1528 ; AVX1-ONLY-NEXT:    vmovaps 320(%rdi), %ymm15
1529 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %ymm2
1530 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1531 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %ymm1
1532 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1533 ; AVX1-ONLY-NEXT:    vmovaps 96(%rdi), %ymm7
1534 ; AVX1-ONLY-NEXT:    vmovaps 80(%rdi), %xmm0
1535 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1536 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm7[0],ymm0[0],ymm7[2],ymm0[2]
1537 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6],ymm1[7]
1538 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm1, %xmm1
1539 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %xmm13
1540 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm13[0,1],xmm1[2,3]
1541 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[0,3,2,3]
1542 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]
1543 ; AVX1-ONLY-NEXT:    vmovaps 160(%rdi), %xmm2
1544 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1545 ; AVX1-ONLY-NEXT:    vmovaps 128(%rdi), %xmm1
1546 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1547 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
1548 ; AVX1-ONLY-NEXT:    vmovaps 192(%rdi), %xmm12
1549 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm1 = zero,xmm1[1,2],xmm12[1]
1550 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
1551 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
1552 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1553 ; AVX1-ONLY-NEXT:    vmovaps 304(%rdi), %xmm0
1554 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1555 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm15[0],ymm0[0],ymm15[2],ymm0[2]
1556 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm5[0,1,2,3,4,5],ymm4[6],ymm5[7]
1557 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm1, %xmm1
1558 ; AVX1-ONLY-NEXT:    vmovaps 224(%rdi), %xmm10
1559 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm10[0,1],xmm1[2,3]
1560 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[0,3,2,3]
1561 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]
1562 ; AVX1-ONLY-NEXT:    vmovaps 384(%rdi), %xmm2
1563 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1564 ; AVX1-ONLY-NEXT:    vmovaps 352(%rdi), %xmm1
1565 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1566 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
1567 ; AVX1-ONLY-NEXT:    vmovaps 416(%rdi), %xmm8
1568 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm1 = zero,xmm1[1,2],xmm8[1]
1569 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
1570 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
1571 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1572 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdi), %ymm5
1573 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm7[1,1],ymm5[2,2],ymm7[5,5],ymm5[6,6]
1574 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm0[2,3,2,3]
1575 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %xmm11
1576 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm11[0],xmm13[1],xmm11[2,3]
1577 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[1,0],mem[3,3]
1578 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]
1579 ; AVX1-ONLY-NEXT:    vmovaps 160(%rdi), %ymm6
1580 ; AVX1-ONLY-NEXT:    vmovaps 128(%rdi), %ymm1
1581 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm1[2,3],ymm6[0,1]
1582 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm3 = ymm1[0,0],ymm3[3,3],ymm1[4,4],ymm3[7,7]
1583 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm3, %xmm3
1584 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm3 = zero,xmm3[1,2],xmm12[2]
1585 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
1586 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm3[5,6,7]
1587 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1588 ; AVX1-ONLY-NEXT:    vmovaps 288(%rdi), %ymm3
1589 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm15[1,1],ymm3[2,2],ymm15[5,5],ymm3[6,6]
1590 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm0[2,3,2,3]
1591 ; AVX1-ONLY-NEXT:    vmovaps 256(%rdi), %xmm9
1592 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm4 = xmm9[0],xmm10[1],xmm9[2,3]
1593 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm4 = xmm4[1,0],mem[3,3]
1594 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2],ymm0[3,4,5,6,7]
1595 ; AVX1-ONLY-NEXT:    vmovaps 384(%rdi), %ymm4
1596 ; AVX1-ONLY-NEXT:    vmovaps 352(%rdi), %ymm0
1597 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm14 = ymm0[2,3],ymm4[0,1]
1598 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm14 = ymm0[0,0],ymm14[3,3],ymm0[4,4],ymm14[7,7]
1599 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm14, %xmm14
1600 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm14 = zero,xmm14[1,2],xmm8[2]
1601 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm14, %ymm0, %ymm14
1602 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm14[5,6,7]
1603 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1604 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm13[2,3,2,3]
1605 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0],xmm11[1],xmm2[2,3]
1606 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
1607 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[3,1],ymm5[0,3],ymm14[7,5],ymm5[4,7]
1608 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm14 = ymm7[2,1],ymm14[2,0],ymm7[6,5],ymm14[6,4]
1609 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1],ymm14[2,3,4,5,6,7]
1610 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm14 = ymm1[0],ymm6[0],ymm1[2],ymm6[2]
1611 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm14, %xmm14
1612 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm12 = xmm14[0,1,2],xmm12[3]
1613 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm12
1614 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm12[5,6,7]
1615 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1616 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm10[2,3,2,3]
1617 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0],xmm9[1],xmm2[2,3]
1618 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
1619 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm12 = ymm12[3,1],ymm3[0,3],ymm12[7,5],ymm3[4,7]
1620 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm12 = ymm15[2,1],ymm12[2,0],ymm15[6,5],ymm12[6,4]
1621 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1],ymm12[2,3,4,5,6,7]
1622 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm12 = ymm0[0],ymm4[0],ymm0[2],ymm4[2]
1623 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm12, %xmm12
1624 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm8 = xmm12[0,1,2],xmm8[3]
1625 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm8
1626 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm8[5,6,7]
1627 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1628 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm5[1,0],ymm7[0,0],ymm5[5,4],ymm7[4,4]
1629 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm7[3,1],ymm2[0,2],ymm7[7,5],ymm2[4,6]
1630 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm5 = xmm11[0,1,2],xmm13[3]
1631 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm5 = xmm5[3,2,2,3]
1632 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1],ymm2[2,3,4,5,6,7]
1633 ; AVX1-ONLY-NEXT:    vmovaps 192(%rdi), %ymm2
1634 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm7 = ymm2[0,1],ymm6[1,3],ymm2[4,5],ymm6[5,7]
1635 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm7 = ymm1[0,2],ymm7[2,0],ymm1[4,6],ymm7[6,4]
1636 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4],ymm7[5,6,7]
1637 ; AVX1-ONLY-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1638 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[1,0],ymm15[0,0],ymm3[5,4],ymm15[4,4]
1639 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm3 = ymm15[3,1],ymm3[0,2],ymm15[7,5],ymm3[4,6]
1640 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm5 = xmm9[0,1,2],xmm10[3]
1641 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm5 = xmm5[3,2,2,3]
1642 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm3 = ymm5[0,1],ymm3[2,3,4,5,6,7]
1643 ; AVX1-ONLY-NEXT:    vmovaps 416(%rdi), %ymm5
1644 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm8 = ymm5[0,1],ymm4[1,3],ymm5[4,5],ymm4[5,7]
1645 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm8 = ymm0[0,2],ymm8[2,0],ymm0[4,6],ymm8[6,4]
1646 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4],ymm8[5,6,7]
1647 ; AVX1-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1648 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm1[2,3,0,1]
1649 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[3,0],ymm3[0,0],ymm1[7,4],ymm3[4,4]
1650 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm3 = ymm2[1,0],ymm6[2,0],ymm2[5,4],ymm6[6,4]
1651 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[2,0],ymm3[2,0],ymm1[6,4],ymm3[6,4]
1652 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdi), %xmm3
1653 ; AVX1-ONLY-NEXT:    vmovaps 96(%rdi), %xmm10
1654 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm8 = xmm10[0,1,0,1]
1655 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm8 = xmm3[0,1,2],xmm8[3]
1656 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm11 = xmm11[2,3,2,3]
1657 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm11 = mem[0],xmm11[1],mem[2,3]
1658 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm8 = xmm11[0,1],xmm8[2,3]
1659 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm8[0,1,2,3],ymm1[4,5,6,7]
1660 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1661 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm8 = ymm0[2,3,0,1]
1662 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[3,0],ymm8[0,0],ymm0[7,4],ymm8[4,4]
1663 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm8 = ymm5[1,0],ymm4[2,0],ymm5[5,4],ymm4[6,4]
1664 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm8[2,0],ymm0[6,4],ymm8[6,4]
1665 ; AVX1-ONLY-NEXT:    vmovaps 320(%rdi), %xmm8
1666 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm11 = xmm8[0,1,0,1]
1667 ; AVX1-ONLY-NEXT:    vmovaps 288(%rdi), %xmm12
1668 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm11 = xmm12[0,1,2],xmm11[3]
1669 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm9 = xmm9[2,3,2,3]
1670 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm9 = mem[0],xmm9[1],mem[2,3]
1671 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm9 = xmm9[0,1],xmm11[2,3]
1672 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm9[0,1,2,3],ymm0[4,5,6,7]
1673 ; AVX1-ONLY-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
1674 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm6 = ymm2[2,1],ymm6[3,3],ymm2[6,5],ymm6[7,7]
1675 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1676 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1677 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm9 = xmm1[0],xmm0[1],xmm1[2,3]
1678 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm9, %ymm0, %ymm9
1679 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm6 = ymm9[1,0],ymm6[2,0],ymm9[5,4],ymm6[6,4]
1680 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm3 = xmm10[0,1,2],xmm3[3]
1681 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
1682 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
1683 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm9 = ymm14[0,0],ymm13[1,0],ymm14[4,4],ymm13[5,4]
1684 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm9 = ymm9[2,0,2,3,6,4,6,7]
1685 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm9, %xmm9
1686 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm3 = xmm9[0,1],xmm3[3,2]
1687 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm15 = ymm3[0,1,2,3],ymm6[4,5,6,7]
1688 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm4 = ymm5[2,1],ymm4[3,3],ymm5[6,5],ymm4[7,7]
1689 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
1690 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
1691 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm6 = xmm7[0],xmm3[1],xmm7[2,3]
1692 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
1693 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm4 = ymm6[1,0],ymm4[2,0],ymm6[5,4],ymm4[6,4]
1694 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm6 = xmm8[0,1,2],xmm12[3]
1695 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload
1696 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
1697 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm9 = ymm11[0,0],ymm12[1,0],ymm11[4,4],ymm12[5,4]
1698 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm9 = ymm9[2,0,2,3,6,4,6,7]
1699 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm9, %xmm9
1700 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm6 = xmm9[0,1],xmm6[3,2]
1701 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm6[0,1,2,3],ymm4[4,5,6,7]
1702 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm6 = ymm2[2,3,0,1]
1703 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[3,0],ymm6[0,0],ymm2[7,4],ymm6[4,4]
1704 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm6 = xmm0[2,3,2,3]
1705 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0],xmm1[1],xmm6[2,3]
1706 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
1707 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm6[0,1],ymm2[2,0],ymm6[4,5],ymm2[6,4]
1708 ; AVX1-ONLY-NEXT:    vpermilps $68, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload
1709 ; AVX1-ONLY-NEXT:    # xmm6 = mem[0,1,0,1]
1710 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0,1,2],xmm10[3]
1711 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm9 = ymm14[1,0],ymm13[2,0],ymm14[5,4],ymm13[6,4]
1712 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm9 = ymm9[2,0,2,3,6,4,6,7]
1713 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm9, %xmm9
1714 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm6 = xmm9[0,1],xmm6[2,3]
1715 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm6[0,1,2,3],ymm2[4,5,6,7]
1716 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm6 = ymm5[2,3,0,1]
1717 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm5 = ymm5[3,0],ymm6[0,0],ymm5[7,4],ymm6[4,4]
1718 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm6 = xmm3[2,3,2,3]
1719 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0],xmm7[1],xmm6[2,3]
1720 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
1721 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm5 = ymm6[0,1],ymm5[2,0],ymm6[4,5],ymm5[6,4]
1722 ; AVX1-ONLY-NEXT:    vpermilps $68, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload
1723 ; AVX1-ONLY-NEXT:    # xmm6 = mem[0,1,0,1]
1724 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0,1,2],xmm8[3]
1725 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm8 = ymm11[1,0],ymm12[2,0],ymm11[5,4],ymm12[6,4]
1726 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm8 = ymm8[2,0,2,3,6,4,6,7]
1727 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm8, %xmm8
1728 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm6 = xmm8[0,1],xmm6[2,3]
1729 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2,3],ymm5[4,5,6,7]
1730 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
1731 ; AVX1-ONLY-NEXT:    vmovaps %ymm6, 32(%rsi)
1732 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
1733 ; AVX1-ONLY-NEXT:    vmovaps %ymm6, (%rsi)
1734 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1735 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 32(%rdx)
1736 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1737 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, (%rdx)
1738 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1739 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 32(%rcx)
1740 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1741 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, (%rcx)
1742 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1743 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 32(%r8)
1744 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1745 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, (%r8)
1746 ; AVX1-ONLY-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
1747 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 32(%r9)
1748 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1749 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, (%r9)
1750 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1751 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, 32(%rax)
1752 ; AVX1-ONLY-NEXT:    vmovaps %ymm15, (%rax)
1753 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1754 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, 32(%rax)
1755 ; AVX1-ONLY-NEXT:    vmovaps %ymm2, (%rax)
1756 ; AVX1-ONLY-NEXT:    addq $456, %rsp # imm = 0x1C8
1757 ; AVX1-ONLY-NEXT:    vzeroupper
1758 ; AVX1-ONLY-NEXT:    retq
1760 ; AVX2-SLOW-LABEL: load_i32_stride7_vf16:
1761 ; AVX2-SLOW:       # %bb.0:
1762 ; AVX2-SLOW-NEXT:    subq $264, %rsp # imm = 0x108
1763 ; AVX2-SLOW-NEXT:    vmovdqa 288(%rdi), %ymm15
1764 ; AVX2-SLOW-NEXT:    vmovdqa 384(%rdi), %ymm8
1765 ; AVX2-SLOW-NEXT:    vmovdqa 352(%rdi), %ymm6
1766 ; AVX2-SLOW-NEXT:    vmovdqa 320(%rdi), %ymm5
1767 ; AVX2-SLOW-NEXT:    vmovdqa 256(%rdi), %ymm0
1768 ; AVX2-SLOW-NEXT:    vmovdqa 224(%rdi), %ymm10
1769 ; AVX2-SLOW-NEXT:    vmovdqa (%rdi), %ymm9
1770 ; AVX2-SLOW-NEXT:    vmovdqa 32(%rdi), %ymm4
1771 ; AVX2-SLOW-NEXT:    vmovdqa 96(%rdi), %ymm12
1772 ; AVX2-SLOW-NEXT:    vpbroadcastq 80(%rdi), %ymm1
1773 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm12[4,5,6,7]
1774 ; AVX2-SLOW-NEXT:    vmovdqa {{.*#+}} xmm2 = [0,7,6,u]
1775 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm3 = ymm9[0,1,2,3,4,5],ymm4[6],ymm9[7]
1776 ; AVX2-SLOW-NEXT:    vmovdqa %ymm4, %ymm7
1777 ; AVX2-SLOW-NEXT:    vpermd %ymm3, %ymm2, %ymm3
1778 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm3[0,1,2],ymm1[3,4,5,6,7]
1779 ; AVX2-SLOW-NEXT:    vmovdqa 128(%rdi), %xmm3
1780 ; AVX2-SLOW-NEXT:    vmovdqa 160(%rdi), %xmm4
1781 ; AVX2-SLOW-NEXT:    vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1782 ; AVX2-SLOW-NEXT:    vpunpckhqdq {{.*#+}} xmm3 = xmm3[1],xmm4[1]
1783 ; AVX2-SLOW-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm3
1784 ; AVX2-SLOW-NEXT:    vpbroadcastd 196(%rdi), %ymm4
1785 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,6],ymm4[7]
1786 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm3[5,6,7]
1787 ; AVX2-SLOW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1788 ; AVX2-SLOW-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1789 ; AVX2-SLOW-NEXT:    vmovdqu %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1790 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm10[0,1,2,3,4,5],ymm0[6],ymm10[7]
1791 ; AVX2-SLOW-NEXT:    vpermd %ymm1, %ymm2, %ymm1
1792 ; AVX2-SLOW-NEXT:    vpbroadcastq 304(%rdi), %ymm2
1793 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm5[4,5,6,7]
1794 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
1795 ; AVX2-SLOW-NEXT:    vmovdqa 352(%rdi), %xmm2
1796 ; AVX2-SLOW-NEXT:    vmovdqa 384(%rdi), %xmm3
1797 ; AVX2-SLOW-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1798 ; AVX2-SLOW-NEXT:    vpunpckhqdq {{.*#+}} xmm2 = xmm2[1],xmm3[1]
1799 ; AVX2-SLOW-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
1800 ; AVX2-SLOW-NEXT:    vpbroadcastd 420(%rdi), %ymm3
1801 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm3[7]
1802 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
1803 ; AVX2-SLOW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1804 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} xmm1 = mem[2,2,2,2]
1805 ; AVX2-SLOW-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm1
1806 ; AVX2-SLOW-NEXT:    vpalignr {{.*#+}} ymm2 = ymm8[12,13,14,15],ymm6[0,1,2,3,4,5,6,7,8,9,10,11],ymm8[28,29,30,31],ymm6[16,17,18,19,20,21,22,23,24,25,26,27]
1807 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,1,2,0]
1808 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5,6],ymm1[7]
1809 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm5[0,1],ymm15[2,3],ymm5[4,5],ymm15[6,7]
1810 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm2 = ymm2[1,2,2,3,5,6,6,7]
1811 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[2,2,2,2]
1812 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm3 = ymm0[0],ymm10[1],ymm0[2,3,4],ymm10[5],ymm0[6,7]
1813 ; AVX2-SLOW-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1814 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm3 = ymm3[1,0,3,3,5,4,7,7]
1815 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[0,3,2,3]
1816 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2],ymm2[3,4,5,6,7]
1817 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3,4],ymm1[5,6,7]
1818 ; AVX2-SLOW-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1819 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} xmm1 = mem[2,2,2,2]
1820 ; AVX2-SLOW-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm3
1821 ; AVX2-SLOW-NEXT:    vmovdqa 160(%rdi), %ymm2
1822 ; AVX2-SLOW-NEXT:    vmovdqa 128(%rdi), %ymm1
1823 ; AVX2-SLOW-NEXT:    vpalignr {{.*#+}} ymm4 = ymm2[12,13,14,15],ymm1[0,1,2,3,4,5,6,7,8,9,10,11],ymm2[28,29,30,31],ymm1[16,17,18,19,20,21,22,23,24,25,26,27]
1824 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm4 = ymm4[0,1,2,0]
1825 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm3 = ymm4[0,1,2,3,4,5,6],ymm3[7]
1826 ; AVX2-SLOW-NEXT:    vmovdqa 64(%rdi), %ymm10
1827 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm4 = ymm12[0,1],ymm10[2,3],ymm12[4,5],ymm10[6,7]
1828 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm4 = ymm4[1,2,2,3,5,6,6,7]
1829 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm0 = ymm4[2,2,2,2]
1830 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm4 = ymm7[0],ymm9[1],ymm7[2,3,4],ymm9[5],ymm7[6,7]
1831 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm14 = ymm4[1,0,3,3,5,4,7,7]
1832 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm14 = ymm14[0,3,2,3]
1833 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm14[0,1,2],ymm0[3,4,5,6,7]
1834 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm3[5,6,7]
1835 ; AVX2-SLOW-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1836 ; AVX2-SLOW-NEXT:    vmovdqa 80(%rdi), %xmm0
1837 ; AVX2-SLOW-NEXT:    vpalignr {{.*#+}} ymm3 = ymm12[8,9,10,11,12,13,14,15],ymm10[0,1,2,3,4,5,6,7],ymm12[24,25,26,27,28,29,30,31],ymm10[16,17,18,19,20,21,22,23]
1838 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2],ymm0[3],ymm3[4,5,6,7]
1839 ; AVX2-SLOW-NEXT:    vpbroadcastd 8(%rdi), %xmm3
1840 ; AVX2-SLOW-NEXT:    vmovdqa 32(%rdi), %xmm14
1841 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm3 = xmm3[0],xmm14[1],xmm3[2,3]
1842 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1],ymm0[2,3,4,5,6,7]
1843 ; AVX2-SLOW-NEXT:    vpunpcklqdq {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
1844 ; AVX2-SLOW-NEXT:    vpbroadcastd 204(%rdi), %ymm13
1845 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,6],ymm13[7]
1846 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm3[5,6,7]
1847 ; AVX2-SLOW-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1848 ; AVX2-SLOW-NEXT:    vmovdqa 304(%rdi), %xmm0
1849 ; AVX2-SLOW-NEXT:    vpalignr {{.*#+}} ymm3 = ymm5[8,9,10,11,12,13,14,15],ymm15[0,1,2,3,4,5,6,7],ymm5[24,25,26,27,28,29,30,31],ymm15[16,17,18,19,20,21,22,23]
1850 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2],ymm0[3],ymm3[4,5,6,7]
1851 ; AVX2-SLOW-NEXT:    vpbroadcastd 232(%rdi), %xmm3
1852 ; AVX2-SLOW-NEXT:    vmovdqa 256(%rdi), %xmm13
1853 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm3 = xmm3[0],xmm13[1],xmm3[2,3]
1854 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1],ymm0[2,3,4,5,6,7]
1855 ; AVX2-SLOW-NEXT:    vpunpcklqdq {{.*#+}} ymm3 = ymm6[0],ymm8[0],ymm6[2],ymm8[2]
1856 ; AVX2-SLOW-NEXT:    vpbroadcastd 428(%rdi), %ymm11
1857 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,6],ymm11[7]
1858 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm3[5,6,7]
1859 ; AVX2-SLOW-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1860 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm12[0],ymm10[1],ymm12[2,3,4,5,6,7]
1861 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm3 = xmm14[0,1,2],mem[3]
1862 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} xmm3 = xmm3[3,2,2,3]
1863 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm0 = ymm0[3,1,1,0,7,5,5,4]
1864 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1],ymm0[2,3,4,5,6,7]
1865 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm3 = ymm1[0,2],ymm2[1,3],ymm1[4,6],ymm2[5,7]
1866 ; AVX2-SLOW-NEXT:    vbroadcastss 208(%rdi), %ymm10
1867 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,6],ymm10[7]
1868 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm3[5,6,7]
1869 ; AVX2-SLOW-NEXT:    vmovdqu %ymm0, (%rsp) # 32-byte Spill
1870 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm5[0],ymm15[1],ymm5[2,3,4,5,6,7]
1871 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm3 = xmm13[0,1,2],mem[3]
1872 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} xmm3 = xmm3[3,2,2,3]
1873 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm0 = ymm0[3,1,1,0,7,5,5,4]
1874 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1],ymm0[2,3,4,5,6,7]
1875 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm3 = ymm6[0,2],ymm8[1,3],ymm6[4,6],ymm8[5,7]
1876 ; AVX2-SLOW-NEXT:    vbroadcastss 432(%rdi), %ymm5
1877 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,6],ymm5[7]
1878 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm3[5,6,7]
1879 ; AVX2-SLOW-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1880 ; AVX2-SLOW-NEXT:    vpbroadcastd 100(%rdi), %xmm0
1881 ; AVX2-SLOW-NEXT:    vmovdqa 64(%rdi), %xmm3
1882 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm0 = xmm3[0,1,2],xmm0[3]
1883 ; AVX2-SLOW-NEXT:    vpbroadcastq {{.*#+}} xmm5 = [4,3,4,3]
1884 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm10 = ymm7[0,1,2,3],ymm9[4,5,6,7]
1885 ; AVX2-SLOW-NEXT:    vmovdqa %ymm7, %ymm12
1886 ; AVX2-SLOW-NEXT:    vpermd %ymm10, %ymm5, %ymm10
1887 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm10 = xmm10[0,1],xmm0[2,3]
1888 ; AVX2-SLOW-NEXT:    vpbroadcastq {{.*#+}} ymm0 = [0,7,0,7,0,7,0,7]
1889 ; AVX2-SLOW-NEXT:    vpermd %ymm1, %ymm0, %ymm11
1890 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm11 = ymm11[0,1,2,3,4,5],ymm2[6,7]
1891 ; AVX2-SLOW-NEXT:    vpbroadcastd 212(%rdi), %ymm13
1892 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm11 = ymm11[0,1,2,3,4,5,6],ymm13[7]
1893 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm15 = ymm10[0,1,2,3],ymm11[4,5,6,7]
1894 ; AVX2-SLOW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
1895 ; AVX2-SLOW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
1896 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm10 = ymm14[0,1,2,3],ymm7[4,5,6,7]
1897 ; AVX2-SLOW-NEXT:    vpermd %ymm10, %ymm5, %ymm5
1898 ; AVX2-SLOW-NEXT:    vpbroadcastd 324(%rdi), %xmm10
1899 ; AVX2-SLOW-NEXT:    vmovdqa 288(%rdi), %xmm11
1900 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm10 = xmm11[0,1,2],xmm10[3]
1901 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm5 = xmm5[0,1],xmm10[2,3]
1902 ; AVX2-SLOW-NEXT:    vpermd %ymm6, %ymm0, %ymm10
1903 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm10 = ymm10[0,1,2,3,4,5],ymm8[6,7]
1904 ; AVX2-SLOW-NEXT:    vpbroadcastd 436(%rdi), %ymm13
1905 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm10 = ymm10[0,1,2,3,4,5,6],ymm13[7]
1906 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm10 = ymm5[0,1,2,3],ymm10[4,5,6,7]
1907 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0],ymm1[1],ymm2[2,3,4],ymm1[5],ymm2[6,7]
1908 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[1,0,3,3,5,4,7,7]
1909 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,0,3]
1910 ; AVX2-SLOW-NEXT:    vpbroadcastd 216(%rdi), %ymm2
1911 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]
1912 ; AVX2-SLOW-NEXT:    vmovdqa 96(%rdi), %xmm5
1913 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm2 = xmm5[0,1,2],xmm3[3]
1914 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} xmm2 = xmm2[0,1,3,2]
1915 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm3 = ymm4[1,0,2,3,5,4,6,7]
1916 ; AVX2-SLOW-NEXT:    vextracti128 $1, %ymm3, %xmm3
1917 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm2 = xmm3[0,1],xmm2[2,3]
1918 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
1919 ; AVX2-SLOW-NEXT:    vmovdqa 320(%rdi), %xmm3
1920 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm2 = xmm3[0,1,2],xmm11[3]
1921 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} xmm2 = xmm2[0,1,3,2]
1922 ; AVX2-SLOW-NEXT:    vpshufd $225, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Folded Reload
1923 ; AVX2-SLOW-NEXT:    # ymm4 = mem[1,0,2,3,5,4,6,7]
1924 ; AVX2-SLOW-NEXT:    vextracti128 $1, %ymm4, %xmm4
1925 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm2 = xmm4[0,1],xmm2[2,3]
1926 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm4 = ymm8[0],ymm6[1],ymm8[2,3,4],ymm6[5],ymm8[6,7]
1927 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm4 = ymm4[1,0,3,3,5,4,7,7]
1928 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm4 = ymm4[0,1,0,3]
1929 ; AVX2-SLOW-NEXT:    vpbroadcastd 440(%rdi), %ymm6
1930 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5,6],ymm6[7]
1931 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm4[4,5,6,7]
1932 ; AVX2-SLOW-NEXT:    vpbroadcastd 136(%rdi), %xmm4
1933 ; AVX2-SLOW-NEXT:    vpblendd $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload
1934 ; AVX2-SLOW-NEXT:    # xmm4 = xmm4[0],mem[1],xmm4[2,3]
1935 ; AVX2-SLOW-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm4
1936 ; AVX2-SLOW-NEXT:    vpermd 192(%rdi), %ymm0, %ymm6
1937 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],ymm6[6,7]
1938 ; AVX2-SLOW-NEXT:    vpbroadcastd 80(%rdi), %ymm6
1939 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm5 = xmm6[0,1,2],xmm5[3]
1940 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm6 = ymm9[2,3,2,3,6,7,6,7]
1941 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm6 = ymm6[0],ymm12[1],ymm6[2,3,4],ymm12[5],ymm6[6,7]
1942 ; AVX2-SLOW-NEXT:    vextracti128 $1, %ymm6, %xmm6
1943 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm5 = xmm6[0,1],xmm5[2,3]
1944 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm4 = ymm5[0,1,2,3],ymm4[4,5,6,7]
1945 ; AVX2-SLOW-NEXT:    vpbroadcastd 360(%rdi), %xmm5
1946 ; AVX2-SLOW-NEXT:    vpblendd $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm5 # 16-byte Folded Reload
1947 ; AVX2-SLOW-NEXT:    # xmm5 = xmm5[0],mem[1],xmm5[2,3]
1948 ; AVX2-SLOW-NEXT:    vpermd 416(%rdi), %ymm0, %ymm0
1949 ; AVX2-SLOW-NEXT:    vinserti128 $1, %xmm5, %ymm0, %ymm5
1950 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm5[0,1,2,3,4,5],ymm0[6,7]
1951 ; AVX2-SLOW-NEXT:    vpbroadcastd 304(%rdi), %ymm5
1952 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm3 = xmm5[0,1,2],xmm3[3]
1953 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm5 = ymm7[2,3,2,3,6,7,6,7]
1954 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm5 = ymm5[0],ymm14[1],ymm5[2,3,4],ymm14[5],ymm5[6,7]
1955 ; AVX2-SLOW-NEXT:    vextracti128 $1, %ymm5, %xmm5
1956 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm3 = xmm5[0,1],xmm3[2,3]
1957 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm0[4,5,6,7]
1958 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1959 ; AVX2-SLOW-NEXT:    vmovaps %ymm3, 32(%rsi)
1960 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1961 ; AVX2-SLOW-NEXT:    vmovaps %ymm3, (%rsi)
1962 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1963 ; AVX2-SLOW-NEXT:    vmovaps %ymm3, 32(%rdx)
1964 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1965 ; AVX2-SLOW-NEXT:    vmovaps %ymm3, (%rdx)
1966 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1967 ; AVX2-SLOW-NEXT:    vmovaps %ymm3, 32(%rcx)
1968 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1969 ; AVX2-SLOW-NEXT:    vmovaps %ymm3, (%rcx)
1970 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1971 ; AVX2-SLOW-NEXT:    vmovaps %ymm3, 32(%r8)
1972 ; AVX2-SLOW-NEXT:    vmovups (%rsp), %ymm3 # 32-byte Reload
1973 ; AVX2-SLOW-NEXT:    vmovaps %ymm3, (%r8)
1974 ; AVX2-SLOW-NEXT:    vmovdqa %ymm10, 32(%r9)
1975 ; AVX2-SLOW-NEXT:    vmovdqa %ymm15, (%r9)
1976 ; AVX2-SLOW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1977 ; AVX2-SLOW-NEXT:    vmovdqa %ymm2, 32(%rax)
1978 ; AVX2-SLOW-NEXT:    vmovdqa %ymm1, (%rax)
1979 ; AVX2-SLOW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1980 ; AVX2-SLOW-NEXT:    vmovdqa %ymm0, 32(%rax)
1981 ; AVX2-SLOW-NEXT:    vmovdqa %ymm4, (%rax)
1982 ; AVX2-SLOW-NEXT:    addq $264, %rsp # imm = 0x108
1983 ; AVX2-SLOW-NEXT:    vzeroupper
1984 ; AVX2-SLOW-NEXT:    retq
1986 ; AVX2-FAST-LABEL: load_i32_stride7_vf16:
1987 ; AVX2-FAST:       # %bb.0:
1988 ; AVX2-FAST-NEXT:    subq $296, %rsp # imm = 0x128
1989 ; AVX2-FAST-NEXT:    vmovdqa 160(%rdi), %ymm9
1990 ; AVX2-FAST-NEXT:    vmovdqa 128(%rdi), %ymm10
1991 ; AVX2-FAST-NEXT:    vmovdqa 320(%rdi), %ymm3
1992 ; AVX2-FAST-NEXT:    vmovdqa 256(%rdi), %ymm0
1993 ; AVX2-FAST-NEXT:    vmovdqa 224(%rdi), %ymm4
1994 ; AVX2-FAST-NEXT:    vmovdqa (%rdi), %ymm5
1995 ; AVX2-FAST-NEXT:    vmovdqa 32(%rdi), %ymm6
1996 ; AVX2-FAST-NEXT:    vmovdqa 64(%rdi), %ymm11
1997 ; AVX2-FAST-NEXT:    vmovdqa 96(%rdi), %ymm1
1998 ; AVX2-FAST-NEXT:    vpbroadcastq 80(%rdi), %ymm2
1999 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm1[4,5,6,7]
2000 ; AVX2-FAST-NEXT:    vmovdqa {{.*#+}} xmm7 = [0,7,6,u]
2001 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm8 = ymm5[0,1,2,3,4,5],ymm6[6],ymm5[7]
2002 ; AVX2-FAST-NEXT:    vpermd %ymm8, %ymm7, %ymm8
2003 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm8[0,1,2],ymm2[3,4,5,6,7]
2004 ; AVX2-FAST-NEXT:    vmovdqa 128(%rdi), %xmm8
2005 ; AVX2-FAST-NEXT:    vmovdqa 160(%rdi), %xmm12
2006 ; AVX2-FAST-NEXT:    vmovdqa %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2007 ; AVX2-FAST-NEXT:    vpunpckhqdq {{.*#+}} xmm8 = xmm8[1],xmm12[1]
2008 ; AVX2-FAST-NEXT:    vinserti128 $1, %xmm8, %ymm0, %ymm8
2009 ; AVX2-FAST-NEXT:    vpbroadcastd 196(%rdi), %ymm12
2010 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5,6],ymm12[7]
2011 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm8[5,6,7]
2012 ; AVX2-FAST-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2013 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm4[0,1,2,3,4,5],ymm0[6],ymm4[7]
2014 ; AVX2-FAST-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2015 ; AVX2-FAST-NEXT:    vmovdqa %ymm0, %ymm13
2016 ; AVX2-FAST-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2017 ; AVX2-FAST-NEXT:    vpermd %ymm2, %ymm7, %ymm2
2018 ; AVX2-FAST-NEXT:    vpbroadcastq 304(%rdi), %ymm7
2019 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3],ymm3[4,5,6,7]
2020 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2],ymm7[3,4,5,6,7]
2021 ; AVX2-FAST-NEXT:    vmovdqa 352(%rdi), %xmm7
2022 ; AVX2-FAST-NEXT:    vmovdqa 384(%rdi), %xmm0
2023 ; AVX2-FAST-NEXT:    vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2024 ; AVX2-FAST-NEXT:    vpunpckhqdq {{.*#+}} xmm7 = xmm7[1],xmm0[1]
2025 ; AVX2-FAST-NEXT:    vinserti128 $1, %xmm7, %ymm0, %ymm7
2026 ; AVX2-FAST-NEXT:    vpbroadcastd 420(%rdi), %ymm8
2027 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5,6],ymm8[7]
2028 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3,4],ymm7[5,6,7]
2029 ; AVX2-FAST-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2030 ; AVX2-FAST-NEXT:    vpshufd {{.*#+}} xmm2 = mem[2,2,2,2]
2031 ; AVX2-FAST-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
2032 ; AVX2-FAST-NEXT:    vpalignr {{.*#+}} ymm7 = ymm9[12,13,14,15],ymm10[0,1,2,3,4,5,6,7,8,9,10,11],ymm9[28,29,30,31],ymm10[16,17,18,19,20,21,22,23,24,25,26,27]
2033 ; AVX2-FAST-NEXT:    vpermq {{.*#+}} ymm7 = ymm7[0,1,2,0]
2034 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm7[0,1,2,3,4,5,6],ymm2[7]
2035 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm7 = ymm1[0,1],ymm11[2,3],ymm1[4,5],ymm11[6,7]
2036 ; AVX2-FAST-NEXT:    vpbroadcastq {{.*#+}} ymm12 = [5,6,5,6,5,6,5,6]
2037 ; AVX2-FAST-NEXT:    vpermd %ymm7, %ymm12, %ymm8
2038 ; AVX2-FAST-NEXT:    vmovdqa {{.*#+}} ymm7 = [1,0,7,7,5,4,7,7]
2039 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm6[0],ymm5[1],ymm6[2,3,4],ymm5[5],ymm6[6,7]
2040 ; AVX2-FAST-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2041 ; AVX2-FAST-NEXT:    vpermd %ymm0, %ymm7, %ymm14
2042 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm8 = ymm14[0,1,2],ymm8[3,4,5,6,7]
2043 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm8[0,1,2,3,4],ymm2[5,6,7]
2044 ; AVX2-FAST-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2045 ; AVX2-FAST-NEXT:    vpshufd {{.*#+}} xmm2 = mem[2,2,2,2]
2046 ; AVX2-FAST-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
2047 ; AVX2-FAST-NEXT:    vmovdqa 384(%rdi), %ymm14
2048 ; AVX2-FAST-NEXT:    vmovdqa 352(%rdi), %ymm15
2049 ; AVX2-FAST-NEXT:    vpalignr {{.*#+}} ymm8 = ymm14[12,13,14,15],ymm15[0,1,2,3,4,5,6,7,8,9,10,11],ymm14[28,29,30,31],ymm15[16,17,18,19,20,21,22,23,24,25,26,27]
2050 ; AVX2-FAST-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,1,2,0]
2051 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm8[0,1,2,3,4,5,6],ymm2[7]
2052 ; AVX2-FAST-NEXT:    vmovdqa 288(%rdi), %ymm8
2053 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1],ymm8[2,3],ymm3[4,5],ymm8[6,7]
2054 ; AVX2-FAST-NEXT:    vpermd %ymm2, %ymm12, %ymm12
2055 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm13[0],ymm4[1],ymm13[2,3,4],ymm4[5],ymm13[6,7]
2056 ; AVX2-FAST-NEXT:    vpermd %ymm2, %ymm7, %ymm4
2057 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2],ymm12[3,4,5,6,7]
2058 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm4[0,1,2,3,4],ymm0[5,6,7]
2059 ; AVX2-FAST-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2060 ; AVX2-FAST-NEXT:    vmovdqa 80(%rdi), %xmm0
2061 ; AVX2-FAST-NEXT:    vpalignr {{.*#+}} ymm4 = ymm1[8,9,10,11,12,13,14,15],ymm11[0,1,2,3,4,5,6,7],ymm1[24,25,26,27,28,29,30,31],ymm11[16,17,18,19,20,21,22,23]
2062 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm4[0,1,2],ymm0[3],ymm4[4,5,6,7]
2063 ; AVX2-FAST-NEXT:    vpbroadcastd 8(%rdi), %xmm4
2064 ; AVX2-FAST-NEXT:    vmovdqa 32(%rdi), %xmm12
2065 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm4 = xmm4[0],xmm12[1],xmm4[2,3]
2066 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm4[0,1],ymm0[2,3,4,5,6,7]
2067 ; AVX2-FAST-NEXT:    vpunpcklqdq {{.*#+}} ymm4 = ymm10[0],ymm9[0],ymm10[2],ymm9[2]
2068 ; AVX2-FAST-NEXT:    vpbroadcastd 204(%rdi), %ymm7
2069 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5,6],ymm7[7]
2070 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm4[5,6,7]
2071 ; AVX2-FAST-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2072 ; AVX2-FAST-NEXT:    vmovdqa 304(%rdi), %xmm0
2073 ; AVX2-FAST-NEXT:    vpalignr {{.*#+}} ymm4 = ymm3[8,9,10,11,12,13,14,15],ymm8[0,1,2,3,4,5,6,7],ymm3[24,25,26,27,28,29,30,31],ymm8[16,17,18,19,20,21,22,23]
2074 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm4[0,1,2],ymm0[3],ymm4[4,5,6,7]
2075 ; AVX2-FAST-NEXT:    vpbroadcastd 232(%rdi), %xmm4
2076 ; AVX2-FAST-NEXT:    vmovdqa 256(%rdi), %xmm7
2077 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm4 = xmm4[0],xmm7[1],xmm4[2,3]
2078 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm4[0,1],ymm0[2,3,4,5,6,7]
2079 ; AVX2-FAST-NEXT:    vpunpcklqdq {{.*#+}} ymm4 = ymm15[0],ymm14[0],ymm15[2],ymm14[2]
2080 ; AVX2-FAST-NEXT:    vpbroadcastd 428(%rdi), %ymm13
2081 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5,6],ymm13[7]
2082 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm4[5,6,7]
2083 ; AVX2-FAST-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2084 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0],ymm11[1],ymm1[2,3,4,5,6,7]
2085 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm1 = xmm12[0,1,2],mem[3]
2086 ; AVX2-FAST-NEXT:    vpshufd {{.*#+}} xmm1 = xmm1[3,2,2,3]
2087 ; AVX2-FAST-NEXT:    vpshufd {{.*#+}} ymm0 = ymm0[3,1,1,0,7,5,5,4]
2088 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
2089 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm10[0,2],ymm9[1,3],ymm10[4,6],ymm9[5,7]
2090 ; AVX2-FAST-NEXT:    vbroadcastss 208(%rdi), %ymm4
2091 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm4[7]
2092 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
2093 ; AVX2-FAST-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2094 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0],ymm8[1],ymm3[2,3,4,5,6,7]
2095 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm1 = xmm7[0,1,2],mem[3]
2096 ; AVX2-FAST-NEXT:    vpshufd {{.*#+}} xmm1 = xmm1[3,2,2,3]
2097 ; AVX2-FAST-NEXT:    vpshufd {{.*#+}} ymm0 = ymm0[3,1,1,0,7,5,5,4]
2098 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
2099 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm15[0,2],ymm14[1,3],ymm15[4,6],ymm14[5,7]
2100 ; AVX2-FAST-NEXT:    vbroadcastss 432(%rdi), %ymm3
2101 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm3[7]
2102 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
2103 ; AVX2-FAST-NEXT:    vmovdqu %ymm0, (%rsp) # 32-byte Spill
2104 ; AVX2-FAST-NEXT:    vpbroadcastd 100(%rdi), %xmm0
2105 ; AVX2-FAST-NEXT:    vmovdqa 64(%rdi), %xmm1
2106 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm0 = xmm1[0,1,2],xmm0[3]
2107 ; AVX2-FAST-NEXT:    vpbroadcastq {{.*#+}} xmm3 = [4,3,4,3]
2108 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm4 = ymm6[0,1,2,3],ymm5[4,5,6,7]
2109 ; AVX2-FAST-NEXT:    vmovdqa %ymm5, %ymm11
2110 ; AVX2-FAST-NEXT:    vmovdqa %ymm6, %ymm12
2111 ; AVX2-FAST-NEXT:    vpermd %ymm4, %ymm3, %ymm4
2112 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm4 = xmm4[0,1],xmm0[2,3]
2113 ; AVX2-FAST-NEXT:    vpbroadcastq {{.*#+}} ymm0 = [0,7,0,7,0,7,0,7]
2114 ; AVX2-FAST-NEXT:    vpermd %ymm10, %ymm0, %ymm7
2115 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5],ymm9[6,7]
2116 ; AVX2-FAST-NEXT:    vpbroadcastd 212(%rdi), %ymm8
2117 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5,6],ymm8[7]
2118 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm7[4,5,6,7]
2119 ; AVX2-FAST-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2120 ; AVX2-FAST-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
2121 ; AVX2-FAST-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
2122 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm4 = ymm6[0,1,2,3],ymm5[4,5,6,7]
2123 ; AVX2-FAST-NEXT:    vpermd %ymm4, %ymm3, %ymm3
2124 ; AVX2-FAST-NEXT:    vpbroadcastd 324(%rdi), %xmm4
2125 ; AVX2-FAST-NEXT:    vmovdqa 288(%rdi), %xmm13
2126 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm4 = xmm13[0,1,2],xmm4[3]
2127 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm3 = xmm3[0,1],xmm4[2,3]
2128 ; AVX2-FAST-NEXT:    vpermd %ymm15, %ymm0, %ymm4
2129 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],ymm14[6,7]
2130 ; AVX2-FAST-NEXT:    vpbroadcastd 436(%rdi), %ymm7
2131 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5,6],ymm7[7]
2132 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm8 = ymm3[0,1,2,3],ymm4[4,5,6,7]
2133 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm3 = ymm9[0],ymm10[1],ymm9[2,3,4],ymm10[5],ymm9[6,7]
2134 ; AVX2-FAST-NEXT:    vmovdqa {{.*#+}} ymm4 = [1,0,3,3,1,0,7,7]
2135 ; AVX2-FAST-NEXT:    vpermd %ymm3, %ymm4, %ymm3
2136 ; AVX2-FAST-NEXT:    vpbroadcastd 216(%rdi), %ymm7
2137 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,6],ymm7[7]
2138 ; AVX2-FAST-NEXT:    vmovdqa 96(%rdi), %xmm10
2139 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm1 = xmm10[0,1,2],xmm1[3]
2140 ; AVX2-FAST-NEXT:    vpshufd {{.*#+}} xmm1 = xmm1[0,1,3,2]
2141 ; AVX2-FAST-NEXT:    vpshufd $225, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Folded Reload
2142 ; AVX2-FAST-NEXT:    # ymm7 = mem[1,0,2,3,5,4,6,7]
2143 ; AVX2-FAST-NEXT:    vextracti128 $1, %ymm7, %xmm7
2144 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm1 = xmm7[0,1],xmm1[2,3]
2145 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm7 = ymm1[0,1,2,3],ymm3[4,5,6,7]
2146 ; AVX2-FAST-NEXT:    vmovdqa 320(%rdi), %xmm9
2147 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm1 = xmm9[0,1,2],xmm13[3]
2148 ; AVX2-FAST-NEXT:    vpshufd {{.*#+}} xmm1 = xmm1[0,1,3,2]
2149 ; AVX2-FAST-NEXT:    vpshufd {{.*#+}} ymm2 = ymm2[1,0,2,3,5,4,6,7]
2150 ; AVX2-FAST-NEXT:    vextracti128 $1, %ymm2, %xmm2
2151 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
2152 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm14[0],ymm15[1],ymm14[2,3,4],ymm15[5],ymm14[6,7]
2153 ; AVX2-FAST-NEXT:    vpermd %ymm2, %ymm4, %ymm2
2154 ; AVX2-FAST-NEXT:    vpbroadcastd 440(%rdi), %ymm3
2155 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm3[7]
2156 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm2[4,5,6,7]
2157 ; AVX2-FAST-NEXT:    vpbroadcastd 136(%rdi), %xmm1
2158 ; AVX2-FAST-NEXT:    vpblendd $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
2159 ; AVX2-FAST-NEXT:    # xmm1 = xmm1[0],mem[1],xmm1[2,3]
2160 ; AVX2-FAST-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm1
2161 ; AVX2-FAST-NEXT:    vpermd 192(%rdi), %ymm0, %ymm3
2162 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
2163 ; AVX2-FAST-NEXT:    vpbroadcastd 80(%rdi), %ymm3
2164 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm3 = xmm3[0,1,2],xmm10[3]
2165 ; AVX2-FAST-NEXT:    vpshufd {{.*#+}} ymm4 = ymm11[2,3,2,3,6,7,6,7]
2166 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0],ymm12[1],ymm4[2,3,4],ymm12[5],ymm4[6,7]
2167 ; AVX2-FAST-NEXT:    vextracti128 $1, %ymm4, %xmm4
2168 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm3 = xmm4[0,1],xmm3[2,3]
2169 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm1[4,5,6,7]
2170 ; AVX2-FAST-NEXT:    vpbroadcastd 360(%rdi), %xmm3
2171 ; AVX2-FAST-NEXT:    vpblendd $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm3 # 16-byte Folded Reload
2172 ; AVX2-FAST-NEXT:    # xmm3 = xmm3[0],mem[1],xmm3[2,3]
2173 ; AVX2-FAST-NEXT:    vpermd 416(%rdi), %ymm0, %ymm0
2174 ; AVX2-FAST-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm3
2175 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm0[6,7]
2176 ; AVX2-FAST-NEXT:    vpbroadcastd 304(%rdi), %ymm3
2177 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm3 = xmm3[0,1,2],xmm9[3]
2178 ; AVX2-FAST-NEXT:    vpshufd {{.*#+}} ymm4 = ymm5[2,3,2,3,6,7,6,7]
2179 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0],ymm6[1],ymm4[2,3,4],ymm6[5],ymm4[6,7]
2180 ; AVX2-FAST-NEXT:    vextracti128 $1, %ymm4, %xmm4
2181 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm3 = xmm4[0,1],xmm3[2,3]
2182 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm0[4,5,6,7]
2183 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
2184 ; AVX2-FAST-NEXT:    vmovaps %ymm3, 32(%rsi)
2185 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
2186 ; AVX2-FAST-NEXT:    vmovaps %ymm3, (%rsi)
2187 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
2188 ; AVX2-FAST-NEXT:    vmovaps %ymm3, 32(%rdx)
2189 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
2190 ; AVX2-FAST-NEXT:    vmovaps %ymm3, (%rdx)
2191 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
2192 ; AVX2-FAST-NEXT:    vmovaps %ymm3, 32(%rcx)
2193 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
2194 ; AVX2-FAST-NEXT:    vmovaps %ymm3, (%rcx)
2195 ; AVX2-FAST-NEXT:    vmovups (%rsp), %ymm3 # 32-byte Reload
2196 ; AVX2-FAST-NEXT:    vmovaps %ymm3, 32(%r8)
2197 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
2198 ; AVX2-FAST-NEXT:    vmovaps %ymm3, (%r8)
2199 ; AVX2-FAST-NEXT:    vmovdqa %ymm8, 32(%r9)
2200 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
2201 ; AVX2-FAST-NEXT:    vmovaps %ymm3, (%r9)
2202 ; AVX2-FAST-NEXT:    movq {{[0-9]+}}(%rsp), %rax
2203 ; AVX2-FAST-NEXT:    vmovdqa %ymm2, 32(%rax)
2204 ; AVX2-FAST-NEXT:    vmovdqa %ymm7, (%rax)
2205 ; AVX2-FAST-NEXT:    movq {{[0-9]+}}(%rsp), %rax
2206 ; AVX2-FAST-NEXT:    vmovdqa %ymm0, 32(%rax)
2207 ; AVX2-FAST-NEXT:    vmovdqa %ymm1, (%rax)
2208 ; AVX2-FAST-NEXT:    addq $296, %rsp # imm = 0x128
2209 ; AVX2-FAST-NEXT:    vzeroupper
2210 ; AVX2-FAST-NEXT:    retq
2212 ; AVX2-FAST-PERLANE-LABEL: load_i32_stride7_vf16:
2213 ; AVX2-FAST-PERLANE:       # %bb.0:
2214 ; AVX2-FAST-PERLANE-NEXT:    subq $264, %rsp # imm = 0x108
2215 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 288(%rdi), %ymm15
2216 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 384(%rdi), %ymm8
2217 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 352(%rdi), %ymm6
2218 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 320(%rdi), %ymm5
2219 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 256(%rdi), %ymm0
2220 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 224(%rdi), %ymm10
2221 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa (%rdi), %ymm9
2222 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 32(%rdi), %ymm4
2223 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 96(%rdi), %ymm12
2224 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastq 80(%rdi), %ymm1
2225 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm12[4,5,6,7]
2226 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa {{.*#+}} xmm2 = [0,7,6,u]
2227 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm3 = ymm9[0,1,2,3,4,5],ymm4[6],ymm9[7]
2228 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %ymm4, %ymm7
2229 ; AVX2-FAST-PERLANE-NEXT:    vpermd %ymm3, %ymm2, %ymm3
2230 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm3[0,1,2],ymm1[3,4,5,6,7]
2231 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 128(%rdi), %xmm3
2232 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 160(%rdi), %xmm4
2233 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2234 ; AVX2-FAST-PERLANE-NEXT:    vpunpckhqdq {{.*#+}} xmm3 = xmm3[1],xmm4[1]
2235 ; AVX2-FAST-PERLANE-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm3
2236 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 196(%rdi), %ymm4
2237 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,6],ymm4[7]
2238 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm3[5,6,7]
2239 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2240 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2241 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2242 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm10[0,1,2,3,4,5],ymm0[6],ymm10[7]
2243 ; AVX2-FAST-PERLANE-NEXT:    vpermd %ymm1, %ymm2, %ymm1
2244 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastq 304(%rdi), %ymm2
2245 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm5[4,5,6,7]
2246 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
2247 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 352(%rdi), %xmm2
2248 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 384(%rdi), %xmm3
2249 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2250 ; AVX2-FAST-PERLANE-NEXT:    vpunpckhqdq {{.*#+}} xmm2 = xmm2[1],xmm3[1]
2251 ; AVX2-FAST-PERLANE-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
2252 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 420(%rdi), %ymm3
2253 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm3[7]
2254 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
2255 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2256 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} xmm1 = mem[2,2,2,2]
2257 ; AVX2-FAST-PERLANE-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm1
2258 ; AVX2-FAST-PERLANE-NEXT:    vpalignr {{.*#+}} ymm2 = ymm8[12,13,14,15],ymm6[0,1,2,3,4,5,6,7,8,9,10,11],ymm8[28,29,30,31],ymm6[16,17,18,19,20,21,22,23,24,25,26,27]
2259 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,1,2,0]
2260 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5,6],ymm1[7]
2261 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm2 = ymm5[0,1],ymm15[2,3],ymm5[4,5],ymm15[6,7]
2262 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm2 = ymm2[1,2,2,3,5,6,6,7]
2263 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[2,2,2,2]
2264 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm3 = ymm0[0],ymm10[1],ymm0[2,3,4],ymm10[5],ymm0[6,7]
2265 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2266 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm3 = ymm3[1,0,3,3,5,4,7,7]
2267 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[0,3,2,3]
2268 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2],ymm2[3,4,5,6,7]
2269 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3,4],ymm1[5,6,7]
2270 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2271 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} xmm1 = mem[2,2,2,2]
2272 ; AVX2-FAST-PERLANE-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm3
2273 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 160(%rdi), %ymm2
2274 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 128(%rdi), %ymm1
2275 ; AVX2-FAST-PERLANE-NEXT:    vpalignr {{.*#+}} ymm4 = ymm2[12,13,14,15],ymm1[0,1,2,3,4,5,6,7,8,9,10,11],ymm2[28,29,30,31],ymm1[16,17,18,19,20,21,22,23,24,25,26,27]
2276 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm4 = ymm4[0,1,2,0]
2277 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm3 = ymm4[0,1,2,3,4,5,6],ymm3[7]
2278 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 64(%rdi), %ymm10
2279 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm4 = ymm12[0,1],ymm10[2,3],ymm12[4,5],ymm10[6,7]
2280 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm4 = ymm4[1,2,2,3,5,6,6,7]
2281 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm0 = ymm4[2,2,2,2]
2282 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm4 = ymm7[0],ymm9[1],ymm7[2,3,4],ymm9[5],ymm7[6,7]
2283 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm14 = ymm4[1,0,3,3,5,4,7,7]
2284 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm14 = ymm14[0,3,2,3]
2285 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm14[0,1,2],ymm0[3,4,5,6,7]
2286 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm3[5,6,7]
2287 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2288 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 80(%rdi), %xmm0
2289 ; AVX2-FAST-PERLANE-NEXT:    vpalignr {{.*#+}} ymm3 = ymm12[8,9,10,11,12,13,14,15],ymm10[0,1,2,3,4,5,6,7],ymm12[24,25,26,27,28,29,30,31],ymm10[16,17,18,19,20,21,22,23]
2290 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2],ymm0[3],ymm3[4,5,6,7]
2291 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 8(%rdi), %xmm3
2292 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 32(%rdi), %xmm14
2293 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm3 = xmm3[0],xmm14[1],xmm3[2,3]
2294 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1],ymm0[2,3,4,5,6,7]
2295 ; AVX2-FAST-PERLANE-NEXT:    vpunpcklqdq {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
2296 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 204(%rdi), %ymm13
2297 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,6],ymm13[7]
2298 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm3[5,6,7]
2299 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2300 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 304(%rdi), %xmm0
2301 ; AVX2-FAST-PERLANE-NEXT:    vpalignr {{.*#+}} ymm3 = ymm5[8,9,10,11,12,13,14,15],ymm15[0,1,2,3,4,5,6,7],ymm5[24,25,26,27,28,29,30,31],ymm15[16,17,18,19,20,21,22,23]
2302 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2],ymm0[3],ymm3[4,5,6,7]
2303 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 232(%rdi), %xmm3
2304 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 256(%rdi), %xmm13
2305 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm3 = xmm3[0],xmm13[1],xmm3[2,3]
2306 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1],ymm0[2,3,4,5,6,7]
2307 ; AVX2-FAST-PERLANE-NEXT:    vpunpcklqdq {{.*#+}} ymm3 = ymm6[0],ymm8[0],ymm6[2],ymm8[2]
2308 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 428(%rdi), %ymm11
2309 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,6],ymm11[7]
2310 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm3[5,6,7]
2311 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2312 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm12[0],ymm10[1],ymm12[2,3,4,5,6,7]
2313 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm3 = xmm14[0,1,2],mem[3]
2314 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} xmm3 = xmm3[3,2,2,3]
2315 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm0 = ymm0[3,1,1,0,7,5,5,4]
2316 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1],ymm0[2,3,4,5,6,7]
2317 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm3 = ymm1[0,2],ymm2[1,3],ymm1[4,6],ymm2[5,7]
2318 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 208(%rdi), %ymm10
2319 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,6],ymm10[7]
2320 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm3[5,6,7]
2321 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm0, (%rsp) # 32-byte Spill
2322 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm5[0],ymm15[1],ymm5[2,3,4,5,6,7]
2323 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm3 = xmm13[0,1,2],mem[3]
2324 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} xmm3 = xmm3[3,2,2,3]
2325 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm0 = ymm0[3,1,1,0,7,5,5,4]
2326 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1],ymm0[2,3,4,5,6,7]
2327 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm3 = ymm6[0,2],ymm8[1,3],ymm6[4,6],ymm8[5,7]
2328 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 432(%rdi), %ymm5
2329 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,6],ymm5[7]
2330 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm3[5,6,7]
2331 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2332 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 100(%rdi), %xmm0
2333 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 64(%rdi), %xmm3
2334 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm0 = xmm3[0,1,2],xmm0[3]
2335 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastq {{.*#+}} xmm5 = [4,3,4,3]
2336 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm10 = ymm7[0,1,2,3],ymm9[4,5,6,7]
2337 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %ymm7, %ymm12
2338 ; AVX2-FAST-PERLANE-NEXT:    vpermd %ymm10, %ymm5, %ymm10
2339 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm10 = xmm10[0,1],xmm0[2,3]
2340 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastq {{.*#+}} ymm0 = [0,7,0,7,0,7,0,7]
2341 ; AVX2-FAST-PERLANE-NEXT:    vpermd %ymm1, %ymm0, %ymm11
2342 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm11 = ymm11[0,1,2,3,4,5],ymm2[6,7]
2343 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 212(%rdi), %ymm13
2344 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm11 = ymm11[0,1,2,3,4,5,6],ymm13[7]
2345 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm15 = ymm10[0,1,2,3],ymm11[4,5,6,7]
2346 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
2347 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
2348 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm10 = ymm14[0,1,2,3],ymm7[4,5,6,7]
2349 ; AVX2-FAST-PERLANE-NEXT:    vpermd %ymm10, %ymm5, %ymm5
2350 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 324(%rdi), %xmm10
2351 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 288(%rdi), %xmm11
2352 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm10 = xmm11[0,1,2],xmm10[3]
2353 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm5 = xmm5[0,1],xmm10[2,3]
2354 ; AVX2-FAST-PERLANE-NEXT:    vpermd %ymm6, %ymm0, %ymm10
2355 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm10 = ymm10[0,1,2,3,4,5],ymm8[6,7]
2356 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 436(%rdi), %ymm13
2357 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm10 = ymm10[0,1,2,3,4,5,6],ymm13[7]
2358 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm10 = ymm5[0,1,2,3],ymm10[4,5,6,7]
2359 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0],ymm1[1],ymm2[2,3,4],ymm1[5],ymm2[6,7]
2360 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[1,0,3,3,5,4,7,7]
2361 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,0,3]
2362 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 216(%rdi), %ymm2
2363 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]
2364 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 96(%rdi), %xmm5
2365 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm2 = xmm5[0,1,2],xmm3[3]
2366 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} xmm2 = xmm2[0,1,3,2]
2367 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm3 = ymm4[1,0,2,3,5,4,6,7]
2368 ; AVX2-FAST-PERLANE-NEXT:    vextracti128 $1, %ymm3, %xmm3
2369 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm2 = xmm3[0,1],xmm2[2,3]
2370 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
2371 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 320(%rdi), %xmm3
2372 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm2 = xmm3[0,1,2],xmm11[3]
2373 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} xmm2 = xmm2[0,1,3,2]
2374 ; AVX2-FAST-PERLANE-NEXT:    vpshufd $225, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Folded Reload
2375 ; AVX2-FAST-PERLANE-NEXT:    # ymm4 = mem[1,0,2,3,5,4,6,7]
2376 ; AVX2-FAST-PERLANE-NEXT:    vextracti128 $1, %ymm4, %xmm4
2377 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm2 = xmm4[0,1],xmm2[2,3]
2378 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm4 = ymm8[0],ymm6[1],ymm8[2,3,4],ymm6[5],ymm8[6,7]
2379 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm4 = ymm4[1,0,3,3,5,4,7,7]
2380 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm4 = ymm4[0,1,0,3]
2381 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 440(%rdi), %ymm6
2382 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5,6],ymm6[7]
2383 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm4[4,5,6,7]
2384 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 136(%rdi), %xmm4
2385 ; AVX2-FAST-PERLANE-NEXT:    vpblendd $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload
2386 ; AVX2-FAST-PERLANE-NEXT:    # xmm4 = xmm4[0],mem[1],xmm4[2,3]
2387 ; AVX2-FAST-PERLANE-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm4
2388 ; AVX2-FAST-PERLANE-NEXT:    vpermd 192(%rdi), %ymm0, %ymm6
2389 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],ymm6[6,7]
2390 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 80(%rdi), %ymm6
2391 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm5 = xmm6[0,1,2],xmm5[3]
2392 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm6 = ymm9[2,3,2,3,6,7,6,7]
2393 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm6 = ymm6[0],ymm12[1],ymm6[2,3,4],ymm12[5],ymm6[6,7]
2394 ; AVX2-FAST-PERLANE-NEXT:    vextracti128 $1, %ymm6, %xmm6
2395 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm5 = xmm6[0,1],xmm5[2,3]
2396 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm4 = ymm5[0,1,2,3],ymm4[4,5,6,7]
2397 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 360(%rdi), %xmm5
2398 ; AVX2-FAST-PERLANE-NEXT:    vpblendd $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm5 # 16-byte Folded Reload
2399 ; AVX2-FAST-PERLANE-NEXT:    # xmm5 = xmm5[0],mem[1],xmm5[2,3]
2400 ; AVX2-FAST-PERLANE-NEXT:    vpermd 416(%rdi), %ymm0, %ymm0
2401 ; AVX2-FAST-PERLANE-NEXT:    vinserti128 $1, %xmm5, %ymm0, %ymm5
2402 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm5[0,1,2,3,4,5],ymm0[6,7]
2403 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 304(%rdi), %ymm5
2404 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm3 = xmm5[0,1,2],xmm3[3]
2405 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm5 = ymm7[2,3,2,3,6,7,6,7]
2406 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm5 = ymm5[0],ymm14[1],ymm5[2,3,4],ymm14[5],ymm5[6,7]
2407 ; AVX2-FAST-PERLANE-NEXT:    vextracti128 $1, %ymm5, %xmm5
2408 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm3 = xmm5[0,1],xmm3[2,3]
2409 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm0[4,5,6,7]
2410 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
2411 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm3, 32(%rsi)
2412 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
2413 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm3, (%rsi)
2414 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
2415 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm3, 32(%rdx)
2416 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
2417 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm3, (%rdx)
2418 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
2419 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm3, 32(%rcx)
2420 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
2421 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm3, (%rcx)
2422 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
2423 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm3, 32(%r8)
2424 ; AVX2-FAST-PERLANE-NEXT:    vmovups (%rsp), %ymm3 # 32-byte Reload
2425 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm3, (%r8)
2426 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %ymm10, 32(%r9)
2427 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %ymm15, (%r9)
2428 ; AVX2-FAST-PERLANE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
2429 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %ymm2, 32(%rax)
2430 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %ymm1, (%rax)
2431 ; AVX2-FAST-PERLANE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
2432 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %ymm0, 32(%rax)
2433 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %ymm4, (%rax)
2434 ; AVX2-FAST-PERLANE-NEXT:    addq $264, %rsp # imm = 0x108
2435 ; AVX2-FAST-PERLANE-NEXT:    vzeroupper
2436 ; AVX2-FAST-PERLANE-NEXT:    retq
2438 ; AVX512F-LABEL: load_i32_stride7_vf16:
2439 ; AVX512F:       # %bb.0:
2440 ; AVX512F-NEXT:    movq {{[0-9]+}}(%rsp), %rax
2441 ; AVX512F-NEXT:    movq {{[0-9]+}}(%rsp), %r10
2442 ; AVX512F-NEXT:    vmovdqa64 384(%rdi), %zmm1
2443 ; AVX512F-NEXT:    vmovdqa64 320(%rdi), %zmm5
2444 ; AVX512F-NEXT:    vmovdqa64 256(%rdi), %zmm4
2445 ; AVX512F-NEXT:    vmovdqa64 (%rdi), %zmm0
2446 ; AVX512F-NEXT:    vmovdqa64 64(%rdi), %zmm2
2447 ; AVX512F-NEXT:    vmovdqa64 128(%rdi), %zmm8
2448 ; AVX512F-NEXT:    vmovdqa64 192(%rdi), %zmm7
2449 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm6 = [8,15,0,0,0,19,26,1,8,15,0,0,0,19,26,1]
2450 ; AVX512F-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3]
2451 ; AVX512F-NEXT:    vpermi2d %zmm8, %zmm7, %zmm6
2452 ; AVX512F-NEXT:    vmovdqa {{.*#+}} ymm3 = [0,7,14,21,28,u,u,u]
2453 ; AVX512F-NEXT:    vpermi2d %zmm2, %zmm0, %zmm3
2454 ; AVX512F-NEXT:    movw $992, %di # imm = 0x3E0
2455 ; AVX512F-NEXT:    kmovw %edi, %k1
2456 ; AVX512F-NEXT:    vmovdqa32 %zmm6, %zmm3 {%k1}
2457 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm6 = [20,27,6,13,20,27,6,13,20,27,6,13,20,27,6,13]
2458 ; AVX512F-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2459 ; AVX512F-NEXT:    vpermi2d %zmm5, %zmm4, %zmm6
2460 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm9 = [0,0,10,11,12,13,18,25,0,0,10,11,12,13,18,25]
2461 ; AVX512F-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3]
2462 ; AVX512F-NEXT:    vpermi2d %zmm1, %zmm6, %zmm9
2463 ; AVX512F-NEXT:    movb $-32, %dil
2464 ; AVX512F-NEXT:    kmovw %edi, %k1
2465 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm3 {%k1}
2466 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm6 = [25,4,11,18,25,4,11,18,25,4,11,18,25,4,11,18]
2467 ; AVX512F-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2468 ; AVX512F-NEXT:    vmovdqa64 %zmm8, %zmm9
2469 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [27,6,13,20,27,6,13,20,27,6,13,20,27,6,13,20]
2470 ; AVX512F-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2471 ; AVX512F-NEXT:    vpermi2d %zmm7, %zmm8, %zmm10
2472 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm11 = [28,0,0,0,0,7,14,21,28,0,0,0,0,7,14,21]
2473 ; AVX512F-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3]
2474 ; AVX512F-NEXT:    vpermi2d %zmm7, %zmm8, %zmm11
2475 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm12 = [29,0,0,0,1,8,15,22,29,0,0,0,1,8,15,22]
2476 ; AVX512F-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3]
2477 ; AVX512F-NEXT:    vpermi2d %zmm7, %zmm8, %zmm12
2478 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm13 = [14,0,0,0,18,25,0,7,14,0,0,0,18,25,0,7]
2479 ; AVX512F-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3]
2480 ; AVX512F-NEXT:    vpermi2d %zmm8, %zmm7, %zmm13
2481 ; AVX512F-NEXT:    vpermt2d %zmm7, %zmm6, %zmm8
2482 ; AVX512F-NEXT:    vmovdqa {{.*#+}} ymm14 = [1,8,15,22,29,u,u,u]
2483 ; AVX512F-NEXT:    vpermi2d %zmm2, %zmm0, %zmm14
2484 ; AVX512F-NEXT:    movw $480, %di # imm = 0x1E0
2485 ; AVX512F-NEXT:    kmovw %edi, %k2
2486 ; AVX512F-NEXT:    vmovdqa32 %zmm8, %zmm14 {%k2}
2487 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [0,0,7,14,21,28,0,0,0,0,7,14,21,28,0,0]
2488 ; AVX512F-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
2489 ; AVX512F-NEXT:    vpermi2d %zmm5, %zmm4, %zmm8
2490 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm15 = [0,9,10,11,12,13,19,26,0,9,10,11,12,13,19,26]
2491 ; AVX512F-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3]
2492 ; AVX512F-NEXT:    vpermi2d %zmm1, %zmm8, %zmm15
2493 ; AVX512F-NEXT:    movw $-512, %di # imm = 0xFE00
2494 ; AVX512F-NEXT:    kmovw %edi, %k1
2495 ; AVX512F-NEXT:    vmovdqa32 %zmm15, %zmm14 {%k1}
2496 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [26,5,12,19,26,5,12,19,26,5,12,19,26,5,12,19]
2497 ; AVX512F-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2498 ; AVX512F-NEXT:    vpermt2d %zmm7, %zmm8, %zmm9
2499 ; AVX512F-NEXT:    vmovdqa {{.*#+}} ymm7 = [18,25,0,7,14,u,u,u]
2500 ; AVX512F-NEXT:    vpermi2d %zmm0, %zmm2, %zmm7
2501 ; AVX512F-NEXT:    vmovdqa32 %zmm9, %zmm7 {%k2}
2502 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm9 = [0,1,8,15,22,29,0,0,0,1,8,15,22,29,0,0]
2503 ; AVX512F-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3]
2504 ; AVX512F-NEXT:    vpermi2d %zmm5, %zmm4, %zmm9
2505 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm15 = [0,9,10,11,12,13,20,27,0,9,10,11,12,13,20,27]
2506 ; AVX512F-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3]
2507 ; AVX512F-NEXT:    vpermi2d %zmm1, %zmm9, %zmm15
2508 ; AVX512F-NEXT:    vmovdqa32 %zmm15, %zmm7 {%k1}
2509 ; AVX512F-NEXT:    vmovdqa {{.*#+}} ymm9 = [19,26,1,8,15,u,u,u]
2510 ; AVX512F-NEXT:    vpermi2d %zmm0, %zmm2, %zmm9
2511 ; AVX512F-NEXT:    vmovdqa32 %zmm10, %zmm9 {%k2}
2512 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [0,18,25,0,7,14,0,0,0,18,25,0,7,14,0,0]
2513 ; AVX512F-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
2514 ; AVX512F-NEXT:    vpermi2d %zmm4, %zmm5, %zmm10
2515 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm15 = [0,9,10,11,12,13,21,28,0,9,10,11,12,13,21,28]
2516 ; AVX512F-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3]
2517 ; AVX512F-NEXT:    vpermi2d %zmm1, %zmm10, %zmm15
2518 ; AVX512F-NEXT:    vmovdqa32 %zmm15, %zmm9 {%k1}
2519 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [0,19,26,1,8,15,0,0,0,19,26,1,8,15,0,0]
2520 ; AVX512F-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
2521 ; AVX512F-NEXT:    vpermi2d %zmm4, %zmm5, %zmm10
2522 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm15 = [0,9,10,11,12,13,22,29,0,9,10,11,12,13,22,29]
2523 ; AVX512F-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3]
2524 ; AVX512F-NEXT:    vpermi2d %zmm1, %zmm10, %zmm15
2525 ; AVX512F-NEXT:    vmovdqa {{.*#+}} xmm10 = [4,11,18,25]
2526 ; AVX512F-NEXT:    vpermi2d %zmm2, %zmm0, %zmm10
2527 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm10, %zmm11, %zmm10
2528 ; AVX512F-NEXT:    vmovdqa32 %zmm15, %zmm10 {%k1}
2529 ; AVX512F-NEXT:    vpermi2d %zmm5, %zmm4, %zmm6
2530 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm11 = [0,9,10,11,12,16,23,30,0,9,10,11,12,16,23,30]
2531 ; AVX512F-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3]
2532 ; AVX512F-NEXT:    vpermi2d %zmm1, %zmm6, %zmm11
2533 ; AVX512F-NEXT:    vmovdqa {{.*#+}} xmm6 = [5,12,19,26]
2534 ; AVX512F-NEXT:    vpermi2d %zmm2, %zmm0, %zmm6
2535 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm6, %zmm12, %zmm6
2536 ; AVX512F-NEXT:    vmovdqa32 %zmm11, %zmm6 {%k1}
2537 ; AVX512F-NEXT:    vpermt2d %zmm5, %zmm8, %zmm4
2538 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [0,9,10,11,12,17,24,31,0,9,10,11,12,17,24,31]
2539 ; AVX512F-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
2540 ; AVX512F-NEXT:    vpermi2d %zmm1, %zmm4, %zmm5
2541 ; AVX512F-NEXT:    vmovdqa {{.*#+}} xmm1 = [6,13,20,27]
2542 ; AVX512F-NEXT:    vpermi2d %zmm2, %zmm0, %zmm1
2543 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm1, %zmm13, %zmm0
2544 ; AVX512F-NEXT:    vmovdqa32 %zmm5, %zmm0 {%k1}
2545 ; AVX512F-NEXT:    vmovdqa64 %zmm3, (%rsi)
2546 ; AVX512F-NEXT:    vmovdqa64 %zmm14, (%rdx)
2547 ; AVX512F-NEXT:    vmovdqa64 %zmm7, (%rcx)
2548 ; AVX512F-NEXT:    vmovdqa64 %zmm9, (%r8)
2549 ; AVX512F-NEXT:    vmovdqa64 %zmm10, (%r9)
2550 ; AVX512F-NEXT:    vmovdqa64 %zmm6, (%r10)
2551 ; AVX512F-NEXT:    vmovdqa64 %zmm0, (%rax)
2552 ; AVX512F-NEXT:    vzeroupper
2553 ; AVX512F-NEXT:    retq
2555 ; AVX512BW-LABEL: load_i32_stride7_vf16:
2556 ; AVX512BW:       # %bb.0:
2557 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
2558 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %r10
2559 ; AVX512BW-NEXT:    vmovdqa64 384(%rdi), %zmm1
2560 ; AVX512BW-NEXT:    vmovdqa64 320(%rdi), %zmm5
2561 ; AVX512BW-NEXT:    vmovdqa64 256(%rdi), %zmm4
2562 ; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm0
2563 ; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %zmm2
2564 ; AVX512BW-NEXT:    vmovdqa64 128(%rdi), %zmm8
2565 ; AVX512BW-NEXT:    vmovdqa64 192(%rdi), %zmm7
2566 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm6 = [8,15,0,0,0,19,26,1,8,15,0,0,0,19,26,1]
2567 ; AVX512BW-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3]
2568 ; AVX512BW-NEXT:    vpermi2d %zmm8, %zmm7, %zmm6
2569 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} ymm3 = [0,7,14,21,28,u,u,u]
2570 ; AVX512BW-NEXT:    vpermi2d %zmm2, %zmm0, %zmm3
2571 ; AVX512BW-NEXT:    movw $992, %di # imm = 0x3E0
2572 ; AVX512BW-NEXT:    kmovd %edi, %k1
2573 ; AVX512BW-NEXT:    vmovdqa32 %zmm6, %zmm3 {%k1}
2574 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm6 = [20,27,6,13,20,27,6,13,20,27,6,13,20,27,6,13]
2575 ; AVX512BW-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2576 ; AVX512BW-NEXT:    vpermi2d %zmm5, %zmm4, %zmm6
2577 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm9 = [0,0,10,11,12,13,18,25,0,0,10,11,12,13,18,25]
2578 ; AVX512BW-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3]
2579 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm6, %zmm9
2580 ; AVX512BW-NEXT:    movb $-32, %dil
2581 ; AVX512BW-NEXT:    kmovd %edi, %k1
2582 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm3 {%k1}
2583 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm6 = [25,4,11,18,25,4,11,18,25,4,11,18,25,4,11,18]
2584 ; AVX512BW-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2585 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm9
2586 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [27,6,13,20,27,6,13,20,27,6,13,20,27,6,13,20]
2587 ; AVX512BW-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2588 ; AVX512BW-NEXT:    vpermi2d %zmm7, %zmm8, %zmm10
2589 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm11 = [28,0,0,0,0,7,14,21,28,0,0,0,0,7,14,21]
2590 ; AVX512BW-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3]
2591 ; AVX512BW-NEXT:    vpermi2d %zmm7, %zmm8, %zmm11
2592 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm12 = [29,0,0,0,1,8,15,22,29,0,0,0,1,8,15,22]
2593 ; AVX512BW-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3]
2594 ; AVX512BW-NEXT:    vpermi2d %zmm7, %zmm8, %zmm12
2595 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm13 = [14,0,0,0,18,25,0,7,14,0,0,0,18,25,0,7]
2596 ; AVX512BW-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3]
2597 ; AVX512BW-NEXT:    vpermi2d %zmm8, %zmm7, %zmm13
2598 ; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm6, %zmm8
2599 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} ymm14 = [1,8,15,22,29,u,u,u]
2600 ; AVX512BW-NEXT:    vpermi2d %zmm2, %zmm0, %zmm14
2601 ; AVX512BW-NEXT:    movw $480, %di # imm = 0x1E0
2602 ; AVX512BW-NEXT:    kmovd %edi, %k2
2603 ; AVX512BW-NEXT:    vmovdqa32 %zmm8, %zmm14 {%k2}
2604 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [0,0,7,14,21,28,0,0,0,0,7,14,21,28,0,0]
2605 ; AVX512BW-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
2606 ; AVX512BW-NEXT:    vpermi2d %zmm5, %zmm4, %zmm8
2607 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm15 = [0,9,10,11,12,13,19,26,0,9,10,11,12,13,19,26]
2608 ; AVX512BW-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3]
2609 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm8, %zmm15
2610 ; AVX512BW-NEXT:    movw $-512, %di # imm = 0xFE00
2611 ; AVX512BW-NEXT:    kmovd %edi, %k1
2612 ; AVX512BW-NEXT:    vmovdqa32 %zmm15, %zmm14 {%k1}
2613 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [26,5,12,19,26,5,12,19,26,5,12,19,26,5,12,19]
2614 ; AVX512BW-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2615 ; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm8, %zmm9
2616 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} ymm7 = [18,25,0,7,14,u,u,u]
2617 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm2, %zmm7
2618 ; AVX512BW-NEXT:    vmovdqa32 %zmm9, %zmm7 {%k2}
2619 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm9 = [0,1,8,15,22,29,0,0,0,1,8,15,22,29,0,0]
2620 ; AVX512BW-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3]
2621 ; AVX512BW-NEXT:    vpermi2d %zmm5, %zmm4, %zmm9
2622 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm15 = [0,9,10,11,12,13,20,27,0,9,10,11,12,13,20,27]
2623 ; AVX512BW-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3]
2624 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm9, %zmm15
2625 ; AVX512BW-NEXT:    vmovdqa32 %zmm15, %zmm7 {%k1}
2626 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} ymm9 = [19,26,1,8,15,u,u,u]
2627 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm2, %zmm9
2628 ; AVX512BW-NEXT:    vmovdqa32 %zmm10, %zmm9 {%k2}
2629 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [0,18,25,0,7,14,0,0,0,18,25,0,7,14,0,0]
2630 ; AVX512BW-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
2631 ; AVX512BW-NEXT:    vpermi2d %zmm4, %zmm5, %zmm10
2632 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm15 = [0,9,10,11,12,13,21,28,0,9,10,11,12,13,21,28]
2633 ; AVX512BW-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3]
2634 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm10, %zmm15
2635 ; AVX512BW-NEXT:    vmovdqa32 %zmm15, %zmm9 {%k1}
2636 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [0,19,26,1,8,15,0,0,0,19,26,1,8,15,0,0]
2637 ; AVX512BW-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
2638 ; AVX512BW-NEXT:    vpermi2d %zmm4, %zmm5, %zmm10
2639 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm15 = [0,9,10,11,12,13,22,29,0,9,10,11,12,13,22,29]
2640 ; AVX512BW-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3]
2641 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm10, %zmm15
2642 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} xmm10 = [4,11,18,25]
2643 ; AVX512BW-NEXT:    vpermi2d %zmm2, %zmm0, %zmm10
2644 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm10, %zmm11, %zmm10
2645 ; AVX512BW-NEXT:    vmovdqa32 %zmm15, %zmm10 {%k1}
2646 ; AVX512BW-NEXT:    vpermi2d %zmm5, %zmm4, %zmm6
2647 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm11 = [0,9,10,11,12,16,23,30,0,9,10,11,12,16,23,30]
2648 ; AVX512BW-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3]
2649 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm6, %zmm11
2650 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} xmm6 = [5,12,19,26]
2651 ; AVX512BW-NEXT:    vpermi2d %zmm2, %zmm0, %zmm6
2652 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm6, %zmm12, %zmm6
2653 ; AVX512BW-NEXT:    vmovdqa32 %zmm11, %zmm6 {%k1}
2654 ; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm8, %zmm4
2655 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [0,9,10,11,12,17,24,31,0,9,10,11,12,17,24,31]
2656 ; AVX512BW-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
2657 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm4, %zmm5
2658 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} xmm1 = [6,13,20,27]
2659 ; AVX512BW-NEXT:    vpermi2d %zmm2, %zmm0, %zmm1
2660 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm1, %zmm13, %zmm0
2661 ; AVX512BW-NEXT:    vmovdqa32 %zmm5, %zmm0 {%k1}
2662 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, (%rsi)
2663 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, (%rdx)
2664 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, (%rcx)
2665 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, (%r8)
2666 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, (%r9)
2667 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, (%r10)
2668 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, (%rax)
2669 ; AVX512BW-NEXT:    vzeroupper
2670 ; AVX512BW-NEXT:    retq
2671   %wide.vec = load <112 x i32>, ptr %in.vec, align 64
2672   %strided.vec0 = shufflevector <112 x i32> %wide.vec, <112 x i32> poison, <16 x i32> <i32 0, i32 7, i32 14, i32 21, i32 28, i32 35, i32 42, i32 49, i32 56, i32 63, i32 70, i32 77, i32 84, i32 91, i32 98, i32 105>
2673   %strided.vec1 = shufflevector <112 x i32> %wide.vec, <112 x i32> poison, <16 x i32> <i32 1, i32 8, i32 15, i32 22, i32 29, i32 36, i32 43, i32 50, i32 57, i32 64, i32 71, i32 78, i32 85, i32 92, i32 99, i32 106>
2674   %strided.vec2 = shufflevector <112 x i32> %wide.vec, <112 x i32> poison, <16 x i32> <i32 2, i32 9, i32 16, i32 23, i32 30, i32 37, i32 44, i32 51, i32 58, i32 65, i32 72, i32 79, i32 86, i32 93, i32 100, i32 107>
2675   %strided.vec3 = shufflevector <112 x i32> %wide.vec, <112 x i32> poison, <16 x i32> <i32 3, i32 10, i32 17, i32 24, i32 31, i32 38, i32 45, i32 52, i32 59, i32 66, i32 73, i32 80, i32 87, i32 94, i32 101, i32 108>
2676   %strided.vec4 = shufflevector <112 x i32> %wide.vec, <112 x i32> poison, <16 x i32> <i32 4, i32 11, i32 18, i32 25, i32 32, i32 39, i32 46, i32 53, i32 60, i32 67, i32 74, i32 81, i32 88, i32 95, i32 102, i32 109>
2677   %strided.vec5 = shufflevector <112 x i32> %wide.vec, <112 x i32> poison, <16 x i32> <i32 5, i32 12, i32 19, i32 26, i32 33, i32 40, i32 47, i32 54, i32 61, i32 68, i32 75, i32 82, i32 89, i32 96, i32 103, i32 110>
2678   %strided.vec6 = shufflevector <112 x i32> %wide.vec, <112 x i32> poison, <16 x i32> <i32 6, i32 13, i32 20, i32 27, i32 34, i32 41, i32 48, i32 55, i32 62, i32 69, i32 76, i32 83, i32 90, i32 97, i32 104, i32 111>
2679   store <16 x i32> %strided.vec0, ptr %out.vec0, align 64
2680   store <16 x i32> %strided.vec1, ptr %out.vec1, align 64
2681   store <16 x i32> %strided.vec2, ptr %out.vec2, align 64
2682   store <16 x i32> %strided.vec3, ptr %out.vec3, align 64
2683   store <16 x i32> %strided.vec4, ptr %out.vec4, align 64
2684   store <16 x i32> %strided.vec5, ptr %out.vec5, align 64
2685   store <16 x i32> %strided.vec6, ptr %out.vec6, align 64
2686   ret void
2689 define void @load_i32_stride7_vf32(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4, ptr %out.vec5, ptr %out.vec6) nounwind {
2690 ; SSE-LABEL: load_i32_stride7_vf32:
2691 ; SSE:       # %bb.0:
2692 ; SSE-NEXT:    subq $1160, %rsp # imm = 0x488
2693 ; SSE-NEXT:    movdqa 80(%rdi), %xmm8
2694 ; SSE-NEXT:    movdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2695 ; SSE-NEXT:    movdqa (%rdi), %xmm13
2696 ; SSE-NEXT:    movdqa %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2697 ; SSE-NEXT:    movdqa 16(%rdi), %xmm6
2698 ; SSE-NEXT:    movdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2699 ; SSE-NEXT:    movdqa 48(%rdi), %xmm5
2700 ; SSE-NEXT:    movdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2701 ; SSE-NEXT:    movdqa 640(%rdi), %xmm3
2702 ; SSE-NEXT:    movdqa 608(%rdi), %xmm4
2703 ; SSE-NEXT:    movdqa 560(%rdi), %xmm10
2704 ; SSE-NEXT:    movdqa 576(%rdi), %xmm1
2705 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2706 ; SSE-NEXT:    movdqa 192(%rdi), %xmm7
2707 ; SSE-NEXT:    movdqa 160(%rdi), %xmm9
2708 ; SSE-NEXT:    movdqa 112(%rdi), %xmm2
2709 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2710 ; SSE-NEXT:    movdqa 128(%rdi), %xmm0
2711 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2712 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[3,3,3,3]
2713 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]
2714 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm9[2,2,3,3]
2715 ; SSE-NEXT:    movdqa %xmm9, %xmm12
2716 ; SSE-NEXT:    movdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2717 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm7[0],xmm0[1],xmm7[1]
2718 ; SSE-NEXT:    movdqa %xmm7, %xmm14
2719 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm2[0],xmm0[1]
2720 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2721 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm1[3,3,3,3]
2722 ; SSE-NEXT:    movdqa %xmm10, %xmm2
2723 ; SSE-NEXT:    movdqa %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2724 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]
2725 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm4[2,2,3,3]
2726 ; SSE-NEXT:    movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2727 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
2728 ; SSE-NEXT:    movdqa %xmm3, %xmm7
2729 ; SSE-NEXT:    movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2730 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm2[0],xmm0[1]
2731 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2732 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm6[3,3,3,3]
2733 ; SSE-NEXT:    movdqa %xmm13, %xmm2
2734 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]
2735 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm5[2,2,3,3]
2736 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm8[0],xmm0[1],xmm8[1]
2737 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm2[0],xmm0[1]
2738 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2739 ; SSE-NEXT:    movdqa 448(%rdi), %xmm2
2740 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2741 ; SSE-NEXT:    movdqa 464(%rdi), %xmm0
2742 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2743 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[3,3,3,3]
2744 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]
2745 ; SSE-NEXT:    movdqa 528(%rdi), %xmm9
2746 ; SSE-NEXT:    movdqa 496(%rdi), %xmm13
2747 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm13[2,2,3,3]
2748 ; SSE-NEXT:    movdqa %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2749 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm9[0],xmm0[1],xmm9[1]
2750 ; SSE-NEXT:    movdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2751 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm2[0],xmm0[1]
2752 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2753 ; SSE-NEXT:    movdqa 336(%rdi), %xmm2
2754 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2755 ; SSE-NEXT:    movdqa 352(%rdi), %xmm0
2756 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2757 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[3,3,3,3]
2758 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]
2759 ; SSE-NEXT:    movdqa 416(%rdi), %xmm3
2760 ; SSE-NEXT:    movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2761 ; SSE-NEXT:    movdqa 384(%rdi), %xmm11
2762 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm11[2,2,3,3]
2763 ; SSE-NEXT:    movdqa %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2764 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
2765 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm2[0],xmm0[1]
2766 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2767 ; SSE-NEXT:    movdqa 784(%rdi), %xmm2
2768 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2769 ; SSE-NEXT:    movdqa 800(%rdi), %xmm0
2770 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2771 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[3,3,3,3]
2772 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]
2773 ; SSE-NEXT:    movdqa 864(%rdi), %xmm3
2774 ; SSE-NEXT:    movdqa 832(%rdi), %xmm15
2775 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm15[2,2,3,3]
2776 ; SSE-NEXT:    movdqa %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2777 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
2778 ; SSE-NEXT:    movdqa %xmm3, %xmm8
2779 ; SSE-NEXT:    movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2780 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm2[0],xmm0[1]
2781 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2782 ; SSE-NEXT:    movdqa 224(%rdi), %xmm3
2783 ; SSE-NEXT:    movdqa %xmm3, (%rsp) # 16-byte Spill
2784 ; SSE-NEXT:    movdqa 240(%rdi), %xmm0
2785 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2786 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[3,3,3,3]
2787 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm0[0],xmm3[1],xmm0[1]
2788 ; SSE-NEXT:    movdqa 304(%rdi), %xmm1
2789 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2790 ; SSE-NEXT:    movdqa 272(%rdi), %xmm6
2791 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm6[2,2,3,3]
2792 ; SSE-NEXT:    movdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2793 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
2794 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm3[0],xmm0[1]
2795 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2796 ; SSE-NEXT:    movdqa 672(%rdi), %xmm3
2797 ; SSE-NEXT:    movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2798 ; SSE-NEXT:    movdqa 688(%rdi), %xmm0
2799 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2800 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[3,3,3,3]
2801 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm0[0],xmm3[1],xmm0[1]
2802 ; SSE-NEXT:    movdqa 752(%rdi), %xmm1
2803 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2804 ; SSE-NEXT:    movdqa 720(%rdi), %xmm0
2805 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2806 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,2,3,3]
2807 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
2808 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm3[0],xmm0[1]
2809 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2810 ; SSE-NEXT:    movdqa %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2811 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm14[2,2,2,2]
2812 ; SSE-NEXT:    movdqa %xmm12, %xmm3
2813 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm3 = xmm3[2],xmm0[2],xmm3[3],xmm0[3]
2814 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
2815 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm2[1,1,1,1]
2816 ; SSE-NEXT:    movdqa 144(%rdi), %xmm1
2817 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2818 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
2819 ; SSE-NEXT:    movsd {{.*#+}} xmm3 = xmm0[0],xmm3[1]
2820 ; SSE-NEXT:    movapd %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2821 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm7[2,2,2,2]
2822 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm4 = xmm4[2],xmm0[2],xmm4[3],xmm0[3]
2823 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm10[1,1,1,1]
2824 ; SSE-NEXT:    movdqa 592(%rdi), %xmm1
2825 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2826 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
2827 ; SSE-NEXT:    movsd {{.*#+}} xmm4 = xmm0[0],xmm4[1]
2828 ; SSE-NEXT:    movapd %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2829 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
2830 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm10[2,2,2,2]
2831 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2832 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
2833 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
2834 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm3[1,1,1,1]
2835 ; SSE-NEXT:    movdqa 32(%rdi), %xmm4
2836 ; SSE-NEXT:    movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2837 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1]
2838 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2839 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2840 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm9[2,2,2,2]
2841 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm13 = xmm13[2],xmm0[2],xmm13[3],xmm0[3]
2842 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
2843 ; SSE-NEXT:    # xmm0 = mem[1,1,1,1]
2844 ; SSE-NEXT:    movdqa 480(%rdi), %xmm4
2845 ; SSE-NEXT:    movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2846 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1]
2847 ; SSE-NEXT:    movsd {{.*#+}} xmm13 = xmm0[0],xmm13[1]
2848 ; SSE-NEXT:    movapd %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2849 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
2850 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm5[2,2,2,2]
2851 ; SSE-NEXT:    movdqa %xmm11, %xmm4
2852 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm4 = xmm4[2],xmm0[2],xmm4[3],xmm0[3]
2853 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2854 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm1[1,1,1,1]
2855 ; SSE-NEXT:    movdqa 368(%rdi), %xmm11
2856 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm11[0],xmm0[1],xmm11[1]
2857 ; SSE-NEXT:    movdqa %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2858 ; SSE-NEXT:    movsd {{.*#+}} xmm4 = xmm0[0],xmm4[1]
2859 ; SSE-NEXT:    movapd %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2860 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm8[2,2,2,2]
2861 ; SSE-NEXT:    movdqa %xmm15, %xmm4
2862 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm4 = xmm4[2],xmm0[2],xmm4[3],xmm0[3]
2863 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
2864 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm15[1,1,1,1]
2865 ; SSE-NEXT:    movdqa 816(%rdi), %xmm7
2866 ; SSE-NEXT:    movdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2867 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm7[0],xmm0[1],xmm7[1]
2868 ; SSE-NEXT:    movsd {{.*#+}} xmm4 = xmm0[0],xmm4[1]
2869 ; SSE-NEXT:    movapd %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2870 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
2871 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm4[2,2,2,2]
2872 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm6 = xmm6[2],xmm0[2],xmm6[3],xmm0[3]
2873 ; SSE-NEXT:    movdqa (%rsp), %xmm9 # 16-byte Reload
2874 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm9[1,1,1,1]
2875 ; SSE-NEXT:    movdqa 256(%rdi), %xmm13
2876 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm13[0],xmm7[1],xmm13[1]
2877 ; SSE-NEXT:    movsd {{.*#+}} xmm6 = xmm7[0],xmm6[1]
2878 ; SSE-NEXT:    movapd %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2879 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload
2880 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm12[2,2,2,2]
2881 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
2882 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm6 = xmm6[2],xmm7[2],xmm6[3],xmm7[3]
2883 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload
2884 ; SSE-NEXT:    # xmm7 = mem[1,1,1,1]
2885 ; SSE-NEXT:    movdqa 704(%rdi), %xmm0
2886 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2887 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm0[0],xmm7[1],xmm0[1]
2888 ; SSE-NEXT:    movsd {{.*#+}} xmm6 = xmm7[0],xmm6[1]
2889 ; SSE-NEXT:    movapd %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2890 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm2[2,3,2,3]
2891 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload
2892 ; SSE-NEXT:    # xmm8 = mem[1,1,1,1]
2893 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm8[0],xmm7[1],xmm8[1]
2894 ; SSE-NEXT:    movdqa 176(%rdi), %xmm0
2895 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2896 ; SSE-NEXT:    pshufd {{.*#+}} xmm8 = xmm14[2,3,2,3]
2897 ; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm0[0,0,1,1]
2898 ; SSE-NEXT:    punpckldq {{.*#+}} xmm6 = xmm6[0],xmm8[0],xmm6[1],xmm8[1]
2899 ; SSE-NEXT:    movsd {{.*#+}} xmm6 = xmm7[0],xmm6[1]
2900 ; SSE-NEXT:    movapd %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2901 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm3[2,3,2,3]
2902 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2903 ; SSE-NEXT:    pshufd {{.*#+}} xmm8 = xmm0[1,1,1,1]
2904 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm8[0],xmm7[1],xmm8[1]
2905 ; SSE-NEXT:    movdqa 64(%rdi), %xmm3
2906 ; SSE-NEXT:    pshufd {{.*#+}} xmm8 = xmm10[2,3,2,3]
2907 ; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm3[0,0,1,1]
2908 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm8[0],xmm2[1],xmm8[1]
2909 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm7[0],xmm2[1]
2910 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2911 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm1[2,3,2,3]
2912 ; SSE-NEXT:    pshufd {{.*#+}} xmm8 = xmm11[1,1,1,1]
2913 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm8[0],xmm7[1],xmm8[1]
2914 ; SSE-NEXT:    movdqa 400(%rdi), %xmm1
2915 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2916 ; SSE-NEXT:    pshufd {{.*#+}} xmm8 = xmm5[2,3,2,3]
2917 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[0,0,1,1]
2918 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm8[0],xmm1[1],xmm8[1]
2919 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm7[0],xmm1[1]
2920 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2921 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm9[2,3,2,3]
2922 ; SSE-NEXT:    pshufd {{.*#+}} xmm8 = xmm13[1,1,1,1]
2923 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm8[0],xmm7[1],xmm8[1]
2924 ; SSE-NEXT:    movdqa 288(%rdi), %xmm2
2925 ; SSE-NEXT:    pshufd {{.*#+}} xmm8 = xmm4[2,3,2,3]
2926 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm2[0,0,1,1]
2927 ; SSE-NEXT:    movdqa %xmm2, %xmm10
2928 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2929 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm8[0],xmm1[1],xmm8[1]
2930 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm7[0],xmm1[1]
2931 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2932 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload
2933 ; SSE-NEXT:    # xmm7 = mem[2,3,2,3]
2934 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload
2935 ; SSE-NEXT:    # xmm8 = mem[1,1,1,1]
2936 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm8[0],xmm7[1],xmm8[1]
2937 ; SSE-NEXT:    movdqa 624(%rdi), %xmm1
2938 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2939 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload
2940 ; SSE-NEXT:    # xmm8 = mem[2,3,2,3]
2941 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[0,0,1,1]
2942 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm8[0],xmm1[1],xmm8[1]
2943 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm7[0],xmm1[1]
2944 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2945 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload
2946 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm9[2,3,2,3]
2947 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
2948 ; SSE-NEXT:    pshufd {{.*#+}} xmm8 = xmm14[1,1,1,1]
2949 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm8[0],xmm7[1],xmm8[1]
2950 ; SSE-NEXT:    movdqa 512(%rdi), %xmm1
2951 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2952 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload
2953 ; SSE-NEXT:    # xmm8 = mem[2,3,2,3]
2954 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[0,0,1,1]
2955 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm8[0],xmm1[1],xmm8[1]
2956 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm7[0],xmm1[1]
2957 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2958 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm15[2,3,2,3]
2959 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload
2960 ; SSE-NEXT:    # xmm8 = mem[1,1,1,1]
2961 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm8[0],xmm7[1],xmm8[1]
2962 ; SSE-NEXT:    movdqa 848(%rdi), %xmm1
2963 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2964 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload
2965 ; SSE-NEXT:    # xmm8 = mem[2,3,2,3]
2966 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[0,0,1,1]
2967 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm8[0],xmm1[1],xmm8[1]
2968 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm7[0],xmm1[1]
2969 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2970 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
2971 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm6[2,3,2,3]
2972 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload
2973 ; SSE-NEXT:    pshufd {{.*#+}} xmm8 = xmm11[1,1,1,1]
2974 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm8[0],xmm7[1],xmm8[1]
2975 ; SSE-NEXT:    movdqa 736(%rdi), %xmm2
2976 ; SSE-NEXT:    pshufd {{.*#+}} xmm8 = xmm12[2,3,2,3]
2977 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm2[0,0,1,1]
2978 ; SSE-NEXT:    movdqa %xmm2, %xmm12
2979 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2980 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm8[0],xmm1[1],xmm8[1]
2981 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm7[0],xmm1[1]
2982 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2983 ; SSE-NEXT:    movdqa 96(%rdi), %xmm1
2984 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2985 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm1[0,0,1,1]
2986 ; SSE-NEXT:    movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2987 ; SSE-NEXT:    movdqa %xmm3, %xmm1
2988 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm7[0],xmm1[1],xmm7[1]
2989 ; SSE-NEXT:    pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload
2990 ; SSE-NEXT:    # xmm5 = mem[2,2,3,3]
2991 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm5 = xmm5[2],xmm0[2],xmm5[3],xmm0[3]
2992 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm5[0],xmm1[1]
2993 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2994 ; SSE-NEXT:    movdqa 208(%rdi), %xmm0
2995 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2996 ; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm0[0,0,1,1]
2997 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
2998 ; SSE-NEXT:    movdqa %xmm4, %xmm2
2999 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm5[0],xmm2[1],xmm5[1]
3000 ; SSE-NEXT:    pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
3001 ; SSE-NEXT:    # xmm1 = mem[2,2,3,3]
3002 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
3003 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm8[2],xmm1[3],xmm8[3]
3004 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm1[0],xmm2[1]
3005 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3006 ; SSE-NEXT:    movdqa 320(%rdi), %xmm0
3007 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3008 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm0[0,0,1,1]
3009 ; SSE-NEXT:    movdqa %xmm10, %xmm2
3010 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
3011 ; SSE-NEXT:    pshufd $250, (%rsp), %xmm1 # 16-byte Folded Reload
3012 ; SSE-NEXT:    # xmm1 = mem[2,2,3,3]
3013 ; SSE-NEXT:    movdqa %xmm13, %xmm10
3014 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm13[2],xmm1[3],xmm13[3]
3015 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm1[0],xmm2[1]
3016 ; SSE-NEXT:    movapd %xmm2, (%rsp) # 16-byte Spill
3017 ; SSE-NEXT:    movdqa 432(%rdi), %xmm0
3018 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3019 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm0[0,0,1,1]
3020 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload
3021 ; SSE-NEXT:    movdqa %xmm13, %xmm2
3022 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
3023 ; SSE-NEXT:    pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
3024 ; SSE-NEXT:    # xmm1 = mem[2,2,3,3]
3025 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
3026 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm15[2],xmm1[3],xmm15[3]
3027 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm1[0],xmm2[1]
3028 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3029 ; SSE-NEXT:    movdqa 544(%rdi), %xmm0
3030 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3031 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm0[0,0,1,1]
3032 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
3033 ; SSE-NEXT:    movdqa %xmm5, %xmm2
3034 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
3035 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm9[2,2,3,3]
3036 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm14[2],xmm1[3],xmm14[3]
3037 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm1[0],xmm2[1]
3038 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3039 ; SSE-NEXT:    movdqa 656(%rdi), %xmm0
3040 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3041 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm0[0,0,1,1]
3042 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
3043 ; SSE-NEXT:    movdqa %xmm7, %xmm2
3044 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
3045 ; SSE-NEXT:    pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
3046 ; SSE-NEXT:    # xmm1 = mem[2,2,3,3]
3047 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
3048 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm14[2],xmm1[3],xmm14[3]
3049 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm1[0],xmm2[1]
3050 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3051 ; SSE-NEXT:    movdqa 768(%rdi), %xmm0
3052 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3053 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm0[0,0,1,1]
3054 ; SSE-NEXT:    movdqa %xmm12, %xmm2
3055 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
3056 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm6[2,2,3,3]
3057 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm11[2],xmm1[3],xmm11[3]
3058 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm1[0],xmm2[1]
3059 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3060 ; SSE-NEXT:    movdqa 880(%rdi), %xmm0
3061 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3062 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm0[0,0,1,1]
3063 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload
3064 ; SSE-NEXT:    movdqa %xmm11, %xmm0
3065 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
3066 ; SSE-NEXT:    pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
3067 ; SSE-NEXT:    # xmm1 = mem[2,2,3,3]
3068 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload
3069 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm12[2],xmm1[3],xmm12[3]
3070 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
3071 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3072 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
3073 ; SSE-NEXT:    # xmm1 = mem[3,3,3,3]
3074 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
3075 ; SSE-NEXT:    movdqa %xmm6, %xmm2
3076 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
3077 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm3[2,2,3,3]
3078 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
3079 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
3080 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm2[0],xmm0[1]
3081 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3082 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm8[3,3,3,3]
3083 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
3084 ; SSE-NEXT:    movdqa %xmm8, %xmm2
3085 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
3086 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm4[2,2,3,3]
3087 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
3088 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1]
3089 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm2[0],xmm0[1]
3090 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3091 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm10[3,3,3,3]
3092 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload
3093 ; SSE-NEXT:    movdqa %xmm9, %xmm1
3094 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
3095 ; SSE-NEXT:    pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
3096 ; SSE-NEXT:    # xmm0 = mem[2,2,3,3]
3097 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
3098 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
3099 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
3100 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3101 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm15[3,3,3,3]
3102 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
3103 ; SSE-NEXT:    movdqa %xmm10, %xmm1
3104 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
3105 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm13[2,2,3,3]
3106 ; SSE-NEXT:    punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
3107 ; SSE-NEXT:    # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
3108 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
3109 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3110 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
3111 ; SSE-NEXT:    # xmm0 = mem[3,3,3,3]
3112 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload
3113 ; SSE-NEXT:    movdqa %xmm13, %xmm1
3114 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
3115 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm5[2,2,3,3]
3116 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
3117 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm5[0],xmm0[1],xmm5[1]
3118 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
3119 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3120 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm14[3,3,3,3]
3121 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
3122 ; SSE-NEXT:    movdqa %xmm14, %xmm1
3123 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
3124 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm7[2,2,3,3]
3125 ; SSE-NEXT:    punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
3126 ; SSE-NEXT:    # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
3127 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
3128 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3129 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
3130 ; SSE-NEXT:    # xmm0 = mem[3,3,3,3]
3131 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
3132 ; SSE-NEXT:    movdqa %xmm15, %xmm1
3133 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
3134 ; SSE-NEXT:    pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
3135 ; SSE-NEXT:    # xmm0 = mem[2,2,3,3]
3136 ; SSE-NEXT:    punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
3137 ; SSE-NEXT:    # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
3138 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
3139 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3140 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm12[3,3,3,3]
3141 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3142 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
3143 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm11[2,2,3,3]
3144 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
3145 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm7[0],xmm0[1],xmm7[1]
3146 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
3147 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3148 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm3[2,2,2,2]
3149 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3150 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
3151 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm6[1,1,1,1]
3152 ; SSE-NEXT:    punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
3153 ; SSE-NEXT:    # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
3154 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
3155 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3156 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm4[2,2,2,2]
3157 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3158 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
3159 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm8[1,1,1,1]
3160 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
3161 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm6[0],xmm0[1],xmm6[1]
3162 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
3163 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3164 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm2[2,2,2,2]
3165 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3166 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
3167 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm9[1,1,1,1]
3168 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
3169 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
3170 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
3171 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3172 ; SSE-NEXT:    pshufd $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
3173 ; SSE-NEXT:    # xmm0 = mem[2,2,2,2]
3174 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3175 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
3176 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm10[1,1,1,1]
3177 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
3178 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm10[0],xmm0[1],xmm10[1]
3179 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
3180 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3181 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm5[2,2,2,2]
3182 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3183 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
3184 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm13[1,1,1,1]
3185 ; SSE-NEXT:    movdqa %xmm13, %xmm5
3186 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
3187 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1]
3188 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
3189 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3190 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload
3191 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm13[2,2,2,2]
3192 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3193 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
3194 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm14[1,1,1,1]
3195 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
3196 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
3197 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
3198 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3199 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
3200 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm14[2,2,2,2]
3201 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3202 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
3203 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm15[1,1,1,1]
3204 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload
3205 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm12[0],xmm0[1],xmm12[1]
3206 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
3207 ; SSE-NEXT:    movapd %xmm1, %xmm15
3208 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm7[2,2,2,2]
3209 ; SSE-NEXT:    movdqa %xmm11, %xmm1
3210 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
3211 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
3212 ; SSE-NEXT:    # xmm0 = mem[1,1,1,1]
3213 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload
3214 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm11[0],xmm0[1],xmm11[1]
3215 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
3216 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3217 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
3218 ; SSE-NEXT:    # xmm0 = mem[1,1,1,1]
3219 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
3220 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
3221 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
3222 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
3223 ; SSE-NEXT:    # xmm0 = mem[2,3,2,3]
3224 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload
3225 ; SSE-NEXT:    # xmm9 = mem[0,0,1,1]
3226 ; SSE-NEXT:    punpckldq {{.*#+}} xmm9 = xmm9[0],xmm0[0],xmm9[1],xmm0[1]
3227 ; SSE-NEXT:    movsd {{.*#+}} xmm9 = xmm1[0],xmm9[1]
3228 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm6[1,1,1,1]
3229 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm8[2,3,2,3]
3230 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
3231 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
3232 ; SSE-NEXT:    # xmm0 = mem[2,3,2,3]
3233 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload
3234 ; SSE-NEXT:    # xmm8 = mem[0,0,1,1]
3235 ; SSE-NEXT:    punpckldq {{.*#+}} xmm8 = xmm8[0],xmm0[0],xmm8[1],xmm0[1]
3236 ; SSE-NEXT:    movsd {{.*#+}} xmm8 = xmm1[0],xmm8[1]
3237 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm2[1,1,1,1]
3238 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
3239 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
3240 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
3241 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
3242 ; SSE-NEXT:    # xmm0 = mem[2,3,2,3]
3243 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload
3244 ; SSE-NEXT:    # xmm7 = mem[0,0,1,1]
3245 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm0[0],xmm7[1],xmm0[1]
3246 ; SSE-NEXT:    movsd {{.*#+}} xmm7 = xmm1[0],xmm7[1]
3247 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm10[1,1,1,1]
3248 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
3249 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
3250 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
3251 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
3252 ; SSE-NEXT:    # xmm0 = mem[2,3,2,3]
3253 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload
3254 ; SSE-NEXT:    # xmm6 = mem[0,0,1,1]
3255 ; SSE-NEXT:    punpckldq {{.*#+}} xmm6 = xmm6[0],xmm0[0],xmm6[1],xmm0[1]
3256 ; SSE-NEXT:    movsd {{.*#+}} xmm6 = xmm1[0],xmm6[1]
3257 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm4[1,1,1,1]
3258 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm5[2,3,2,3]
3259 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
3260 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
3261 ; SSE-NEXT:    # xmm0 = mem[2,3,2,3]
3262 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload
3263 ; SSE-NEXT:    # xmm5 = mem[0,0,1,1]
3264 ; SSE-NEXT:    punpckldq {{.*#+}} xmm5 = xmm5[0],xmm0[0],xmm5[1],xmm0[1]
3265 ; SSE-NEXT:    movsd {{.*#+}} xmm5 = xmm1[0],xmm5[1]
3266 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm3[1,1,1,1]
3267 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
3268 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
3269 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
3270 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm13[2,3,2,3]
3271 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
3272 ; SSE-NEXT:    # xmm4 = mem[0,0,1,1]
3273 ; SSE-NEXT:    punpckldq {{.*#+}} xmm4 = xmm4[0],xmm0[0],xmm4[1],xmm0[1]
3274 ; SSE-NEXT:    movsd {{.*#+}} xmm4 = xmm1[0],xmm4[1]
3275 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm12[1,1,1,1]
3276 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
3277 ; SSE-NEXT:    # xmm0 = mem[2,3,2,3]
3278 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
3279 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm14[2,3,2,3]
3280 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload
3281 ; SSE-NEXT:    # xmm3 = mem[0,0,1,1]
3282 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]
3283 ; SSE-NEXT:    movsd {{.*#+}} xmm3 = xmm0[0],xmm3[1]
3284 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm11[1,1,1,1]
3285 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
3286 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
3287 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
3288 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
3289 ; SSE-NEXT:    # xmm2 = mem[2,3,2,3]
3290 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
3291 ; SSE-NEXT:    # xmm0 = mem[0,0,1,1]
3292 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
3293 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
3294 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3295 ; SSE-NEXT:    movaps %xmm1, 96(%rsi)
3296 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3297 ; SSE-NEXT:    movaps %xmm1, 32(%rsi)
3298 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3299 ; SSE-NEXT:    movaps %xmm1, 112(%rsi)
3300 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3301 ; SSE-NEXT:    movaps %xmm1, 48(%rsi)
3302 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3303 ; SSE-NEXT:    movaps %xmm1, 64(%rsi)
3304 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3305 ; SSE-NEXT:    movaps %xmm1, (%rsi)
3306 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3307 ; SSE-NEXT:    movaps %xmm1, 80(%rsi)
3308 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3309 ; SSE-NEXT:    movaps %xmm1, 16(%rsi)
3310 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3311 ; SSE-NEXT:    movaps %xmm1, 96(%rdx)
3312 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3313 ; SSE-NEXT:    movaps %xmm1, 32(%rdx)
3314 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3315 ; SSE-NEXT:    movaps %xmm1, 112(%rdx)
3316 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3317 ; SSE-NEXT:    movaps %xmm1, 48(%rdx)
3318 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3319 ; SSE-NEXT:    movaps %xmm1, 64(%rdx)
3320 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3321 ; SSE-NEXT:    movaps %xmm1, (%rdx)
3322 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3323 ; SSE-NEXT:    movaps %xmm1, 80(%rdx)
3324 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3325 ; SSE-NEXT:    movaps %xmm1, 16(%rdx)
3326 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3327 ; SSE-NEXT:    movaps %xmm1, 96(%rcx)
3328 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3329 ; SSE-NEXT:    movaps %xmm1, 112(%rcx)
3330 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3331 ; SSE-NEXT:    movaps %xmm1, 64(%rcx)
3332 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3333 ; SSE-NEXT:    movaps %xmm1, 80(%rcx)
3334 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3335 ; SSE-NEXT:    movaps %xmm1, 32(%rcx)
3336 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3337 ; SSE-NEXT:    movaps %xmm1, 48(%rcx)
3338 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3339 ; SSE-NEXT:    movaps %xmm1, (%rcx)
3340 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3341 ; SSE-NEXT:    movaps %xmm1, 16(%rcx)
3342 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3343 ; SSE-NEXT:    movaps %xmm1, 112(%r8)
3344 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3345 ; SSE-NEXT:    movaps %xmm1, 96(%r8)
3346 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3347 ; SSE-NEXT:    movaps %xmm1, 80(%r8)
3348 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3349 ; SSE-NEXT:    movaps %xmm1, 64(%r8)
3350 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3351 ; SSE-NEXT:    movaps %xmm1, 48(%r8)
3352 ; SSE-NEXT:    movaps (%rsp), %xmm1 # 16-byte Reload
3353 ; SSE-NEXT:    movaps %xmm1, 32(%r8)
3354 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3355 ; SSE-NEXT:    movaps %xmm1, 16(%r8)
3356 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3357 ; SSE-NEXT:    movaps %xmm1, (%r8)
3358 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3359 ; SSE-NEXT:    movaps %xmm1, 112(%r9)
3360 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3361 ; SSE-NEXT:    movaps %xmm1, 96(%r9)
3362 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3363 ; SSE-NEXT:    movaps %xmm1, 80(%r9)
3364 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3365 ; SSE-NEXT:    movaps %xmm1, 64(%r9)
3366 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3367 ; SSE-NEXT:    movaps %xmm1, 48(%r9)
3368 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3369 ; SSE-NEXT:    movaps %xmm1, 32(%r9)
3370 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3371 ; SSE-NEXT:    movaps %xmm1, 16(%r9)
3372 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3373 ; SSE-NEXT:    movaps %xmm1, (%r9)
3374 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3375 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3376 ; SSE-NEXT:    movaps %xmm1, 112(%rax)
3377 ; SSE-NEXT:    movapd %xmm15, 96(%rax)
3378 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3379 ; SSE-NEXT:    movaps %xmm1, 80(%rax)
3380 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3381 ; SSE-NEXT:    movaps %xmm1, 64(%rax)
3382 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3383 ; SSE-NEXT:    movaps %xmm1, 48(%rax)
3384 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3385 ; SSE-NEXT:    movaps %xmm1, 32(%rax)
3386 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3387 ; SSE-NEXT:    movaps %xmm1, 16(%rax)
3388 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3389 ; SSE-NEXT:    movaps %xmm1, (%rax)
3390 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3391 ; SSE-NEXT:    movapd %xmm0, 112(%rax)
3392 ; SSE-NEXT:    movapd %xmm3, 96(%rax)
3393 ; SSE-NEXT:    movapd %xmm4, 80(%rax)
3394 ; SSE-NEXT:    movapd %xmm5, 64(%rax)
3395 ; SSE-NEXT:    movapd %xmm6, 48(%rax)
3396 ; SSE-NEXT:    movapd %xmm7, 32(%rax)
3397 ; SSE-NEXT:    movapd %xmm8, 16(%rax)
3398 ; SSE-NEXT:    movapd %xmm9, (%rax)
3399 ; SSE-NEXT:    addq $1160, %rsp # imm = 0x488
3400 ; SSE-NEXT:    retq
3402 ; AVX1-ONLY-LABEL: load_i32_stride7_vf32:
3403 ; AVX1-ONLY:       # %bb.0:
3404 ; AVX1-ONLY-NEXT:    subq $1464, %rsp # imm = 0x5B8
3405 ; AVX1-ONLY-NEXT:    vmovaps 480(%rdi), %ymm4
3406 ; AVX1-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3407 ; AVX1-ONLY-NEXT:    vmovaps 448(%rdi), %ymm3
3408 ; AVX1-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3409 ; AVX1-ONLY-NEXT:    vmovaps 544(%rdi), %ymm7
3410 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %ymm2
3411 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3412 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %ymm1
3413 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3414 ; AVX1-ONLY-NEXT:    vmovaps 96(%rdi), %ymm6
3415 ; AVX1-ONLY-NEXT:    vmovaps 80(%rdi), %xmm0
3416 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3417 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm6[0],ymm0[0],ymm6[2],ymm0[2]
3418 ; AVX1-ONLY-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3419 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6],ymm1[7]
3420 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm1, %xmm1
3421 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %xmm2
3422 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
3423 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, %xmm9
3424 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3425 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[0,3,2,3]
3426 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]
3427 ; AVX1-ONLY-NEXT:    vmovaps 160(%rdi), %xmm2
3428 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3429 ; AVX1-ONLY-NEXT:    vmovaps 128(%rdi), %xmm1
3430 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3431 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
3432 ; AVX1-ONLY-NEXT:    vmovaps 192(%rdi), %xmm2
3433 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm1 = zero,xmm1[1,2],xmm2[1]
3434 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, %xmm10
3435 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3436 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
3437 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
3438 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3439 ; AVX1-ONLY-NEXT:    vmovaps 528(%rdi), %xmm0
3440 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3441 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm7[0],ymm0[0],ymm7[2],ymm0[2]
3442 ; AVX1-ONLY-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3443 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3,4,5],ymm4[6],ymm3[7]
3444 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm1, %xmm1
3445 ; AVX1-ONLY-NEXT:    vmovaps 448(%rdi), %xmm8
3446 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm8[0,1],xmm1[2,3]
3447 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[0,3,2,3]
3448 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]
3449 ; AVX1-ONLY-NEXT:    vmovaps 608(%rdi), %xmm2
3450 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3451 ; AVX1-ONLY-NEXT:    vmovaps 576(%rdi), %xmm1
3452 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3453 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
3454 ; AVX1-ONLY-NEXT:    vmovaps 640(%rdi), %xmm2
3455 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm1 = zero,xmm1[1,2],xmm2[1]
3456 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, %xmm4
3457 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3458 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
3459 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
3460 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3461 ; AVX1-ONLY-NEXT:    vmovaps 256(%rdi), %ymm1
3462 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3463 ; AVX1-ONLY-NEXT:    vmovaps 224(%rdi), %ymm0
3464 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3465 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6],ymm0[7]
3466 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm0, %xmm0
3467 ; AVX1-ONLY-NEXT:    vmovaps 224(%rdi), %xmm5
3468 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm5[0,1],xmm0[2,3]
3469 ; AVX1-ONLY-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3470 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[0,3,2,3]
3471 ; AVX1-ONLY-NEXT:    vmovaps 320(%rdi), %ymm13
3472 ; AVX1-ONLY-NEXT:    vmovaps 304(%rdi), %xmm1
3473 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3474 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm13[0],ymm1[0],ymm13[2],ymm1[2]
3475 ; AVX1-ONLY-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3476 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
3477 ; AVX1-ONLY-NEXT:    vmovaps 384(%rdi), %xmm2
3478 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3479 ; AVX1-ONLY-NEXT:    vmovaps 352(%rdi), %xmm1
3480 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3481 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
3482 ; AVX1-ONLY-NEXT:    vmovaps 416(%rdi), %xmm11
3483 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm1 = zero,xmm1[1,2],xmm11[1]
3484 ; AVX1-ONLY-NEXT:    vmovaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3485 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
3486 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
3487 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3488 ; AVX1-ONLY-NEXT:    vmovaps 704(%rdi), %ymm1
3489 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3490 ; AVX1-ONLY-NEXT:    vmovaps 672(%rdi), %ymm0
3491 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3492 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6],ymm0[7]
3493 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm0, %xmm0
3494 ; AVX1-ONLY-NEXT:    vmovaps 672(%rdi), %xmm1
3495 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3496 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
3497 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[0,3,2,3]
3498 ; AVX1-ONLY-NEXT:    vmovaps 768(%rdi), %ymm3
3499 ; AVX1-ONLY-NEXT:    vmovaps 752(%rdi), %xmm1
3500 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3501 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm3[0],ymm1[0],ymm3[2],ymm1[2]
3502 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
3503 ; AVX1-ONLY-NEXT:    vmovaps 832(%rdi), %xmm2
3504 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3505 ; AVX1-ONLY-NEXT:    vmovaps 800(%rdi), %xmm1
3506 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3507 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
3508 ; AVX1-ONLY-NEXT:    vmovaps 864(%rdi), %xmm2
3509 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3510 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm1 = zero,xmm1[1,2],xmm2[1]
3511 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
3512 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
3513 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3514 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdi), %ymm0
3515 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3516 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm6[1,1],ymm0[2,2],ymm6[5,5],ymm0[6,6]
3517 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm0[2,3,2,3]
3518 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %xmm1
3519 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3520 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0],xmm9[1],xmm1[2,3]
3521 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[1,0],mem[3,3]
3522 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]
3523 ; AVX1-ONLY-NEXT:    vmovaps 160(%rdi), %ymm1
3524 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3525 ; AVX1-ONLY-NEXT:    vmovaps 128(%rdi), %ymm2
3526 ; AVX1-ONLY-NEXT:    vmovups %ymm2, (%rsp) # 32-byte Spill
3527 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm2[2,3],ymm1[0,1]
3528 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm2[0,0],ymm1[3,3],ymm2[4,4],ymm1[7,7]
3529 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm1, %xmm1
3530 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm1 = zero,xmm1[1,2],xmm10[2]
3531 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
3532 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
3533 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3534 ; AVX1-ONLY-NEXT:    vmovaps 512(%rdi), %ymm0
3535 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3536 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm7[1,1],ymm0[2,2],ymm7[5,5],ymm0[6,6]
3537 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm0[2,3,2,3]
3538 ; AVX1-ONLY-NEXT:    vmovaps 480(%rdi), %xmm10
3539 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm10[0],xmm8[1],xmm10[2,3]
3540 ; AVX1-ONLY-NEXT:    vmovaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3541 ; AVX1-ONLY-NEXT:    vmovaps %xmm8, %xmm7
3542 ; AVX1-ONLY-NEXT:    vmovaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3543 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[1,0],mem[3,3]
3544 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2],ymm0[3,4,5,6,7]
3545 ; AVX1-ONLY-NEXT:    vmovaps 608(%rdi), %ymm14
3546 ; AVX1-ONLY-NEXT:    vmovaps 576(%rdi), %ymm12
3547 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm2 = ymm12[2,3],ymm14[0,1]
3548 ; AVX1-ONLY-NEXT:    vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3549 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm12[0,0],ymm2[3,3],ymm12[4,4],ymm2[7,7]
3550 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm2, %xmm2
3551 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm2 = zero,xmm2[1,2],xmm4[2]
3552 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
3553 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4],ymm2[5,6,7]
3554 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3555 ; AVX1-ONLY-NEXT:    vmovaps 288(%rdi), %ymm0
3556 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3557 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm13[1,1],ymm0[2,2],ymm13[5,5],ymm0[6,6]
3558 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm1[2,3,2,3]
3559 ; AVX1-ONLY-NEXT:    vmovaps 256(%rdi), %xmm0
3560 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3561 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm0[0],xmm5[1],xmm0[2,3]
3562 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[1,0],mem[3,3]
3563 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7]
3564 ; AVX1-ONLY-NEXT:    vmovaps 384(%rdi), %ymm0
3565 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3566 ; AVX1-ONLY-NEXT:    vmovaps 352(%rdi), %ymm2
3567 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3568 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm5 = ymm2[2,3],ymm0[0,1]
3569 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm5 = ymm2[0,0],ymm5[3,3],ymm2[4,4],ymm5[7,7]
3570 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm5, %xmm5
3571 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm5 = zero,xmm5[1,2],xmm11[2]
3572 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
3573 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4],ymm5[5,6,7]
3574 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3575 ; AVX1-ONLY-NEXT:    vmovaps 736(%rdi), %ymm8
3576 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm3[1,1],ymm8[2,2],ymm3[5,5],ymm8[6,6]
3577 ; AVX1-ONLY-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3578 ; AVX1-ONLY-NEXT:    vmovaps %ymm3, %ymm9
3579 ; AVX1-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3580 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm1[2,3,2,3]
3581 ; AVX1-ONLY-NEXT:    vmovaps 704(%rdi), %xmm6
3582 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
3583 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm11 = xmm6[0],xmm2[1],xmm6[2,3]
3584 ; AVX1-ONLY-NEXT:    vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3585 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm11 = xmm11[1,0],mem[3,3]
3586 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm11[0,1,2],ymm1[3,4,5,6,7]
3587 ; AVX1-ONLY-NEXT:    vmovaps 832(%rdi), %ymm5
3588 ; AVX1-ONLY-NEXT:    vmovaps 800(%rdi), %ymm15
3589 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm13 = ymm15[2,3],ymm5[0,1]
3590 ; AVX1-ONLY-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3591 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm13 = ymm15[0,0],ymm13[3,3],ymm15[4,4],ymm13[7,7]
3592 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm13, %xmm13
3593 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
3594 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm13 = zero,xmm13[1,2],xmm4[2]
3595 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm13, %ymm0, %ymm13
3596 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm13[5,6,7]
3597 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3598 ; AVX1-ONLY-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
3599 ; AVX1-ONLY-NEXT:    # xmm0 = mem[2,3,2,3]
3600 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3601 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2,3]
3602 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
3603 ; AVX1-ONLY-NEXT:    vshufps $199, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm13 # 32-byte Folded Reload
3604 ; AVX1-ONLY-NEXT:    # ymm13 = ymm13[3,1],mem[0,3],ymm13[7,5],mem[4,7]
3605 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload
3606 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm13 = ymm11[2,1],ymm13[2,0],ymm11[6,5],ymm13[6,4]
3607 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm13[2,3,4,5,6,7]
3608 ; AVX1-ONLY-NEXT:    vmovups (%rsp), %ymm3 # 32-byte Reload
3609 ; AVX1-ONLY-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm13 # 32-byte Folded Reload
3610 ; AVX1-ONLY-NEXT:    # ymm13 = ymm3[0],mem[0],ymm3[2],mem[2]
3611 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm13, %xmm13
3612 ; AVX1-ONLY-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm13, %xmm13 # 16-byte Folded Reload
3613 ; AVX1-ONLY-NEXT:    # xmm13 = xmm13[0,1,2],mem[3]
3614 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm13, %ymm0, %ymm13
3615 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm13[5,6,7]
3616 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3617 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm7[2,3,2,3]
3618 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0],xmm10[1],xmm0[2,3]
3619 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
3620 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
3621 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm13 = ymm13[3,1],ymm10[0,3],ymm13[7,5],ymm10[4,7]
3622 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
3623 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm13 = ymm7[2,1],ymm13[2,0],ymm7[6,5],ymm13[6,4]
3624 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm13[2,3,4,5,6,7]
3625 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm13 = ymm12[0],ymm14[0],ymm12[2],ymm14[2]
3626 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm13, %xmm13
3627 ; AVX1-ONLY-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm13, %xmm13 # 16-byte Folded Reload
3628 ; AVX1-ONLY-NEXT:    # xmm13 = xmm13[0,1,2],mem[3]
3629 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm13, %ymm0, %ymm13
3630 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm13[5,6,7]
3631 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3632 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm2[2,3,2,3]
3633 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0],xmm6[1],xmm0[2,3]
3634 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
3635 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm13 = ymm13[3,1],ymm8[0,3],ymm13[7,5],ymm8[4,7]
3636 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm13 = ymm9[2,1],ymm13[2,0],ymm9[6,5],ymm13[6,4]
3637 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm13[2,3,4,5,6,7]
3638 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm13 = ymm15[0],ymm5[0],ymm15[2],ymm5[2]
3639 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm13, %xmm13
3640 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm8 = xmm13[0,1,2],xmm4[3]
3641 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm8
3642 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm8[5,6,7]
3643 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3644 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
3645 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm5[2,3,2,3]
3646 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
3647 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0],xmm2[1],xmm0[2,3]
3648 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
3649 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
3650 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm8 = ymm8[3,1],ymm14[0,3],ymm8[7,5],ymm14[4,7]
3651 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3652 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm8 = ymm4[2,1],ymm8[2,0],ymm4[6,5],ymm8[6,4]
3653 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm8[2,3,4,5,6,7]
3654 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
3655 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
3656 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm8 = ymm6[0],ymm13[0],ymm6[2],ymm13[2]
3657 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm8, %xmm8
3658 ; AVX1-ONLY-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm8, %xmm8 # 16-byte Folded Reload
3659 ; AVX1-ONLY-NEXT:    # xmm8 = xmm8[0,1,2],mem[3]
3660 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm8
3661 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm8[5,6,7]
3662 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3663 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3664 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[1,0],ymm11[0,0],ymm0[5,4],ymm11[4,4]
3665 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm11[3,1],ymm0[0,2],ymm11[7,5],ymm0[4,6]
3666 ; AVX1-ONLY-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm8 # 16-byte Folded Reload
3667 ; AVX1-ONLY-NEXT:    # xmm8 = xmm1[0,1,2],mem[3]
3668 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm8 = xmm8[3,2,2,3]
3669 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm8[0,1],ymm0[2,3,4,5,6,7]
3670 ; AVX1-ONLY-NEXT:    vmovaps 192(%rdi), %ymm1
3671 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3672 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
3673 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm8 = ymm1[0,1],ymm9[1,3],ymm1[4,5],ymm9[5,7]
3674 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm8 = ymm3[0,2],ymm8[2,0],ymm3[4,6],ymm8[6,4]
3675 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm8[5,6,7]
3676 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3677 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm10[1,0],ymm7[0,0],ymm10[5,4],ymm7[4,4]
3678 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm7[3,1],ymm0[0,2],ymm7[7,5],ymm0[4,6]
3679 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload
3680 ; AVX1-ONLY-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm11, %xmm8 # 16-byte Folded Reload
3681 ; AVX1-ONLY-NEXT:    # xmm8 = xmm11[0,1,2],mem[3]
3682 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm8 = xmm8[3,2,2,3]
3683 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm8[0,1],ymm0[2,3,4,5,6,7]
3684 ; AVX1-ONLY-NEXT:    vmovaps 640(%rdi), %ymm1
3685 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
3686 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm10 = ymm1[0,1],ymm8[1,3],ymm1[4,5],ymm8[5,7]
3687 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3688 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm10 = ymm12[0,2],ymm10[2,0],ymm12[4,6],ymm10[6,4]
3689 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm10[5,6,7]
3690 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3691 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm14[1,0],ymm4[0,0],ymm14[5,4],ymm4[4,4]
3692 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm4[3,1],ymm0[0,2],ymm4[7,5],ymm0[4,6]
3693 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm7 = xmm2[0,1,2],xmm5[3]
3694 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm7 = xmm7[3,2,2,3]
3695 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm7[0,1],ymm0[2,3,4,5,6,7]
3696 ; AVX1-ONLY-NEXT:    vmovaps 416(%rdi), %ymm7
3697 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm10 = ymm7[0,1],ymm13[1,3],ymm7[4,5],ymm13[5,7]
3698 ; AVX1-ONLY-NEXT:    vmovaps %ymm7, %ymm14
3699 ; AVX1-ONLY-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3700 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm10 = ymm6[0,2],ymm10[2,0],ymm6[4,6],ymm10[6,4]
3701 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm10[5,6,7]
3702 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3703 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
3704 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3705 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[1,0],ymm2[0,0],ymm0[5,4],ymm2[4,4]
3706 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm2[3,1],ymm0[0,2],ymm2[7,5],ymm0[4,6]
3707 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
3708 ; AVX1-ONLY-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm5 # 16-byte Folded Reload
3709 ; AVX1-ONLY-NEXT:    # xmm5 = mem[0,1,2],xmm2[3]
3710 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm5 = xmm5[3,2,2,3]
3711 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm5[0,1],ymm0[2,3,4,5,6,7]
3712 ; AVX1-ONLY-NEXT:    vmovaps 864(%rdi), %ymm5
3713 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
3714 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm6 = ymm5[0,1],ymm7[1,3],ymm5[4,5],ymm7[5,7]
3715 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm6 = ymm15[0,2],ymm6[2,0],ymm15[4,6],ymm6[6,4]
3716 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm6[5,6,7]
3717 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3718 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm12[2,3,0,1]
3719 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm12[3,0],ymm0[0,0],ymm12[7,4],ymm0[4,4]
3720 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm3 = ymm1[1,0],ymm8[2,0],ymm1[5,4],ymm8[6,4]
3721 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm3[2,0],ymm0[6,4],ymm3[6,4]
3722 ; AVX1-ONLY-NEXT:    vmovaps 544(%rdi), %xmm1
3723 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3724 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm10 = xmm1[0,1,0,1]
3725 ; AVX1-ONLY-NEXT:    vmovaps 512(%rdi), %xmm6
3726 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm10 = xmm6[0,1,2],xmm10[3]
3727 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm12 = xmm11[2,3,2,3]
3728 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm12 = mem[0],xmm12[1],mem[2,3]
3729 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm10 = xmm12[0,1],xmm10[2,3]
3730 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm0[4,5,6,7]
3731 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3732 ; AVX1-ONLY-NEXT:    vmovups (%rsp), %ymm2 # 32-byte Reload
3733 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm2[2,3,0,1]
3734 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm2[3,0],ymm0[0,0],ymm2[7,4],ymm0[4,4]
3735 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3736 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm4 = ymm3[1,0],ymm9[2,0],ymm3[5,4],ymm9[6,4]
3737 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm10 = ymm0[2,0],ymm4[2,0],ymm0[6,4],ymm4[6,4]
3738 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdi), %xmm0
3739 ; AVX1-ONLY-NEXT:    vmovaps 96(%rdi), %xmm4
3740 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm12 = xmm4[0,1,0,1]
3741 ; AVX1-ONLY-NEXT:    vmovaps %xmm4, (%rsp) # 16-byte Spill
3742 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm12 = xmm0[0,1,2],xmm12[3]
3743 ; AVX1-ONLY-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Folded Reload
3744 ; AVX1-ONLY-NEXT:    # xmm13 = mem[2,3,2,3]
3745 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm13 = mem[0],xmm13[1],mem[2,3]
3746 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm12 = xmm13[0,1],xmm12[2,3]
3747 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm12[0,1,2,3],ymm10[4,5,6,7]
3748 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3749 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3750 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm10 = ymm1[2,3,0,1]
3751 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm1[3,0],ymm10[0,0],ymm1[7,4],ymm10[4,4]
3752 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload
3753 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm10 = ymm14[1,0],ymm11[2,0],ymm14[5,4],ymm11[6,4]
3754 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm12 = ymm2[2,0],ymm10[2,0],ymm2[6,4],ymm10[6,4]
3755 ; AVX1-ONLY-NEXT:    vmovaps 320(%rdi), %xmm1
3756 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3757 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm13 = xmm1[0,1,0,1]
3758 ; AVX1-ONLY-NEXT:    vmovaps 288(%rdi), %xmm2
3759 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm13 = xmm2[0,1,2],xmm13[3]
3760 ; AVX1-ONLY-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Folded Reload
3761 ; AVX1-ONLY-NEXT:    # xmm14 = mem[2,3,2,3]
3762 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm14 = mem[0],xmm14[1],mem[2,3]
3763 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm13 = xmm14[0,1],xmm13[2,3]
3764 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm13[0,1,2,3],ymm12[4,5,6,7]
3765 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3766 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm12 = ymm15[2,3,0,1]
3767 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm15[3,0],ymm12[0,0],ymm15[7,4],ymm12[4,4]
3768 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm12 = ymm5[1,0],ymm7[2,0],ymm5[5,4],ymm7[6,4]
3769 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm12 = ymm1[2,0],ymm12[2,0],ymm1[6,4],ymm12[6,4]
3770 ; AVX1-ONLY-NEXT:    vmovaps 768(%rdi), %xmm1
3771 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3772 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm14 = xmm1[0,1,0,1]
3773 ; AVX1-ONLY-NEXT:    vmovaps 736(%rdi), %xmm13
3774 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm14 = xmm13[0,1,2],xmm14[3]
3775 ; AVX1-ONLY-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload
3776 ; AVX1-ONLY-NEXT:    # xmm15 = mem[2,3,2,3]
3777 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm15 = mem[0],xmm15[1],mem[2,3]
3778 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm14 = xmm15[0,1],xmm14[2,3]
3779 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm14[0,1,2,3],ymm12[4,5,6,7]
3780 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3781 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm12 = ymm3[2,1],ymm9[3,3],ymm3[6,5],ymm9[7,7]
3782 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3783 ; AVX1-ONLY-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm15 # 16-byte Folded Reload
3784 ; AVX1-ONLY-NEXT:    # xmm15 = xmm1[0],mem[1],xmm1[2,3]
3785 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm15
3786 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm12 = ymm15[1,0],ymm12[2,0],ymm15[5,4],ymm12[6,4]
3787 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm4[0,1,2],xmm0[3]
3788 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3789 ; AVX1-ONLY-NEXT:    vshufps $16, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm15 # 32-byte Folded Reload
3790 ; AVX1-ONLY-NEXT:    # ymm15 = ymm1[0,0],mem[1,0],ymm1[4,4],mem[5,4]
3791 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm15 = ymm15[2,0,2,3,6,4,6,7]
3792 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm15, %xmm15
3793 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm15[0,1],xmm0[3,2]
3794 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm12[4,5,6,7]
3795 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3796 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3797 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm3[2,1],ymm8[3,3],ymm3[6,5],ymm8[7,7]
3798 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
3799 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
3800 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm15 = xmm8[0],xmm7[1],xmm8[2,3]
3801 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm15
3802 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm15[1,0],ymm0[2,0],ymm15[5,4],ymm0[6,4]
3803 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
3804 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm6 = xmm10[0,1,2],xmm6[3]
3805 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
3806 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
3807 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm15 = ymm9[0,0],ymm12[1,0],ymm9[4,4],ymm12[5,4]
3808 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm15 = ymm15[2,0,2,3,6,4,6,7]
3809 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm15, %xmm15
3810 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm6 = xmm15[0,1],xmm6[3,2]
3811 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm6[0,1,2,3],ymm0[4,5,6,7]
3812 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3813 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3814 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,1],ymm11[3,3],ymm0[6,5],ymm11[7,7]
3815 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3816 ; AVX1-ONLY-NEXT:    vblendps $13, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm15 # 16-byte Folded Reload
3817 ; AVX1-ONLY-NEXT:    # xmm15 = mem[0],xmm1[1],mem[2,3]
3818 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm15
3819 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm15[1,0],ymm0[2,0],ymm15[5,4],ymm0[6,4]
3820 ; AVX1-ONLY-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
3821 ; AVX1-ONLY-NEXT:    # xmm2 = mem[0,1,2],xmm2[3]
3822 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3823 ; AVX1-ONLY-NEXT:    vshufps $16, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm15 # 32-byte Folded Reload
3824 ; AVX1-ONLY-NEXT:    # ymm15 = ymm1[0,0],mem[1,0],ymm1[4,4],mem[5,4]
3825 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm15 = ymm15[2,0,2,3,6,4,6,7]
3826 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm15, %xmm15
3827 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm15[0,1],xmm2[3,2]
3828 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm15 = ymm2[0,1,2,3],ymm0[4,5,6,7]
3829 ; AVX1-ONLY-NEXT:    vshufps $246, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm0 # 32-byte Folded Reload
3830 ; AVX1-ONLY-NEXT:    # ymm0 = ymm5[2,1],mem[3,3],ymm5[6,5],mem[7,7]
3831 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, %ymm14
3832 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
3833 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3834 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm4[0],xmm1[1],xmm4[2,3]
3835 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
3836 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm2[1,0],ymm0[2,0],ymm2[5,4],ymm0[6,4]
3837 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
3838 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm6[0,1,2],xmm13[3]
3839 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
3840 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
3841 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm11 = ymm5[0,0],ymm13[1,0],ymm5[4,4],ymm13[5,4]
3842 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm11 = ymm11[2,0,2,3,6,4,6,7]
3843 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm11, %xmm11
3844 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm11[0,1],xmm2[3,2]
3845 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm11 = ymm2[0,1,2,3],ymm0[4,5,6,7]
3846 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm3[2,3,0,1]
3847 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm3[3,0],ymm0[0,0],ymm3[7,4],ymm0[4,4]
3848 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm7[2,3,2,3]
3849 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0],xmm8[1],xmm2[2,3]
3850 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
3851 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,0],ymm2[4,5],ymm0[6,4]
3852 ; AVX1-ONLY-NEXT:    vpermilps $68, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
3853 ; AVX1-ONLY-NEXT:    # xmm2 = mem[0,1,0,1]
3854 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1,2],xmm10[3]
3855 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm3 = ymm9[1,0],ymm12[2,0],ymm9[5,4],ymm12[6,4]
3856 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[2,0,2,3,6,4,6,7]
3857 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm3, %xmm3
3858 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm3[0,1],xmm2[2,3]
3859 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm3 = ymm2[0,1,2,3],ymm0[4,5,6,7]
3860 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm14[2,3,0,1]
3861 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm14[3,0],ymm0[0,0],ymm14[7,4],ymm0[4,4]
3862 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm1[2,3,2,3]
3863 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0],xmm4[1],xmm2[2,3]
3864 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
3865 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,0],ymm2[4,5],ymm0[6,4]
3866 ; AVX1-ONLY-NEXT:    vpermilps $68, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
3867 ; AVX1-ONLY-NEXT:    # xmm2 = mem[0,1,0,1]
3868 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1,2],xmm6[3]
3869 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm5[1,0],ymm13[2,0],ymm5[5,4],ymm13[6,4]
3870 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[2,0,2,3,6,4,6,7]
3871 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm2, %xmm2
3872 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
3873 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3874 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
3875 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm2[2,3,0,1]
3876 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm2[3,0],ymm1[0,0],ymm2[7,4],ymm1[4,4]
3877 ; AVX1-ONLY-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
3878 ; AVX1-ONLY-NEXT:    # xmm2 = mem[2,3,2,3]
3879 ; AVX1-ONLY-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
3880 ; AVX1-ONLY-NEXT:    # xmm2 = xmm2[0],mem[1],xmm2[2,3]
3881 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
3882 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,0],ymm2[4,5],ymm1[6,4]
3883 ; AVX1-ONLY-NEXT:    vpermilps $68, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
3884 ; AVX1-ONLY-NEXT:    # xmm2 = mem[0,1,0,1]
3885 ; AVX1-ONLY-NEXT:    vblendps $8, (%rsp), %xmm2, %xmm2 # 16-byte Folded Reload
3886 ; AVX1-ONLY-NEXT:    # xmm2 = xmm2[0,1,2],mem[3]
3887 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3888 ; AVX1-ONLY-NEXT:    vshufps $33, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload
3889 ; AVX1-ONLY-NEXT:    # ymm4 = ymm4[1,0],mem[2,0],ymm4[5,4],mem[6,4]
3890 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[2,0,2,3,6,4,6,7]
3891 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm4, %xmm4
3892 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm4[0,1],xmm2[2,3]
3893 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
3894 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3895 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm2 = ymm4[2,3,0,1]
3896 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm4[3,0],ymm2[0,0],ymm4[7,4],ymm2[4,4]
3897 ; AVX1-ONLY-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
3898 ; AVX1-ONLY-NEXT:    # xmm4 = mem[2,3,2,3]
3899 ; AVX1-ONLY-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload
3900 ; AVX1-ONLY-NEXT:    # xmm4 = xmm4[0],mem[1],xmm4[2,3]
3901 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
3902 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm4[0,1],ymm2[2,0],ymm4[4,5],ymm2[6,4]
3903 ; AVX1-ONLY-NEXT:    vpermilps $68, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
3904 ; AVX1-ONLY-NEXT:    # xmm4 = mem[0,1,0,1]
3905 ; AVX1-ONLY-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload
3906 ; AVX1-ONLY-NEXT:    # xmm4 = xmm4[0,1,2],mem[3]
3907 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
3908 ; AVX1-ONLY-NEXT:    vshufps $33, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm5 # 32-byte Folded Reload
3909 ; AVX1-ONLY-NEXT:    # ymm5 = ymm5[1,0],mem[2,0],ymm5[5,4],mem[6,4]
3910 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm5 = ymm5[2,0,2,3,6,4,6,7]
3911 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm5, %xmm5
3912 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm4 = xmm5[0,1],xmm4[2,3]
3913 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3],ymm2[4,5,6,7]
3914 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3915 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, 96(%rsi)
3916 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3917 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, 32(%rsi)
3918 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3919 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, 64(%rsi)
3920 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3921 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, (%rsi)
3922 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3923 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, 96(%rdx)
3924 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3925 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, 32(%rdx)
3926 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3927 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, 64(%rdx)
3928 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3929 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, (%rdx)
3930 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3931 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, 32(%rcx)
3932 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3933 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, 96(%rcx)
3934 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3935 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, 64(%rcx)
3936 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3937 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, (%rcx)
3938 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3939 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, 96(%r8)
3940 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3941 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, 32(%r8)
3942 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3943 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, 64(%r8)
3944 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3945 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, (%r8)
3946 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3947 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, 96(%r9)
3948 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3949 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, 32(%r9)
3950 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3951 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, (%r9)
3952 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3953 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, 64(%r9)
3954 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3955 ; AVX1-ONLY-NEXT:    vmovaps %ymm11, 96(%rax)
3956 ; AVX1-ONLY-NEXT:    vmovaps %ymm15, 32(%rax)
3957 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3958 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, 64(%rax)
3959 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3960 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, (%rax)
3961 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3962 ; AVX1-ONLY-NEXT:    vmovaps %ymm2, 32(%rax)
3963 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, (%rax)
3964 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 96(%rax)
3965 ; AVX1-ONLY-NEXT:    vmovaps %ymm3, 64(%rax)
3966 ; AVX1-ONLY-NEXT:    addq $1464, %rsp # imm = 0x5B8
3967 ; AVX1-ONLY-NEXT:    vzeroupper
3968 ; AVX1-ONLY-NEXT:    retq
3970 ; AVX2-SLOW-LABEL: load_i32_stride7_vf32:
3971 ; AVX2-SLOW:       # %bb.0:
3972 ; AVX2-SLOW-NEXT:    subq $1224, %rsp # imm = 0x4C8
3973 ; AVX2-SLOW-NEXT:    vmovdqa 320(%rdi), %ymm9
3974 ; AVX2-SLOW-NEXT:    vmovdqa 256(%rdi), %ymm4
3975 ; AVX2-SLOW-NEXT:    vmovdqa 224(%rdi), %ymm5
3976 ; AVX2-SLOW-NEXT:    vmovdqa 544(%rdi), %ymm10
3977 ; AVX2-SLOW-NEXT:    vmovdqa 480(%rdi), %ymm7
3978 ; AVX2-SLOW-NEXT:    vmovdqa 448(%rdi), %ymm8
3979 ; AVX2-SLOW-NEXT:    vmovdqa (%rdi), %ymm3
3980 ; AVX2-SLOW-NEXT:    vmovdqa 32(%rdi), %ymm6
3981 ; AVX2-SLOW-NEXT:    vmovdqa 96(%rdi), %ymm1
3982 ; AVX2-SLOW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3983 ; AVX2-SLOW-NEXT:    vpbroadcastq 80(%rdi), %ymm0
3984 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
3985 ; AVX2-SLOW-NEXT:    vmovdqa {{.*#+}} xmm0 = [0,7,6,u]
3986 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3,4,5],ymm6[6],ymm3[7]
3987 ; AVX2-SLOW-NEXT:    vmovdqa %ymm6, %ymm12
3988 ; AVX2-SLOW-NEXT:    vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3989 ; AVX2-SLOW-NEXT:    vmovdqa %ymm3, %ymm14
3990 ; AVX2-SLOW-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3991 ; AVX2-SLOW-NEXT:    vpermd %ymm2, %ymm0, %ymm2
3992 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7]
3993 ; AVX2-SLOW-NEXT:    vmovdqa 128(%rdi), %xmm2
3994 ; AVX2-SLOW-NEXT:    vmovdqa 160(%rdi), %xmm3
3995 ; AVX2-SLOW-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3996 ; AVX2-SLOW-NEXT:    vpunpckhqdq {{.*#+}} xmm2 = xmm2[1],xmm3[1]
3997 ; AVX2-SLOW-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
3998 ; AVX2-SLOW-NEXT:    vpbroadcastd 196(%rdi), %ymm3
3999 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm3[7]
4000 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
4001 ; AVX2-SLOW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4002 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm8[0,1,2,3,4,5],ymm7[6],ymm8[7]
4003 ; AVX2-SLOW-NEXT:    vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4004 ; AVX2-SLOW-NEXT:    vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4005 ; AVX2-SLOW-NEXT:    vpermd %ymm1, %ymm0, %ymm1
4006 ; AVX2-SLOW-NEXT:    vpbroadcastq 528(%rdi), %ymm2
4007 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm10[4,5,6,7]
4008 ; AVX2-SLOW-NEXT:    vmovdqu %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4009 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
4010 ; AVX2-SLOW-NEXT:    vmovdqa 576(%rdi), %xmm2
4011 ; AVX2-SLOW-NEXT:    vmovdqa 608(%rdi), %xmm3
4012 ; AVX2-SLOW-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4013 ; AVX2-SLOW-NEXT:    vpunpckhqdq {{.*#+}} xmm2 = xmm2[1],xmm3[1]
4014 ; AVX2-SLOW-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
4015 ; AVX2-SLOW-NEXT:    vpbroadcastd 644(%rdi), %ymm3
4016 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm3[7]
4017 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
4018 ; AVX2-SLOW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4019 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm5[0,1,2,3,4,5],ymm4[6],ymm5[7]
4020 ; AVX2-SLOW-NEXT:    vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4021 ; AVX2-SLOW-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4022 ; AVX2-SLOW-NEXT:    vpermd %ymm1, %ymm0, %ymm1
4023 ; AVX2-SLOW-NEXT:    vpbroadcastq 304(%rdi), %ymm2
4024 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm9[4,5,6,7]
4025 ; AVX2-SLOW-NEXT:    vmovdqa %ymm9, %ymm13
4026 ; AVX2-SLOW-NEXT:    vmovdqu %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4027 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
4028 ; AVX2-SLOW-NEXT:    vmovdqa 352(%rdi), %xmm2
4029 ; AVX2-SLOW-NEXT:    vmovdqa 384(%rdi), %xmm3
4030 ; AVX2-SLOW-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4031 ; AVX2-SLOW-NEXT:    vpunpckhqdq {{.*#+}} xmm2 = xmm2[1],xmm3[1]
4032 ; AVX2-SLOW-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
4033 ; AVX2-SLOW-NEXT:    vpbroadcastd 420(%rdi), %ymm3
4034 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm3[7]
4035 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
4036 ; AVX2-SLOW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4037 ; AVX2-SLOW-NEXT:    vmovdqa 704(%rdi), %ymm2
4038 ; AVX2-SLOW-NEXT:    vmovdqa 672(%rdi), %ymm3
4039 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm3[0,1,2,3,4,5],ymm2[6],ymm3[7]
4040 ; AVX2-SLOW-NEXT:    vmovdqa %ymm3, %ymm6
4041 ; AVX2-SLOW-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4042 ; AVX2-SLOW-NEXT:    vmovdqa %ymm2, %ymm3
4043 ; AVX2-SLOW-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4044 ; AVX2-SLOW-NEXT:    vpermd %ymm1, %ymm0, %ymm0
4045 ; AVX2-SLOW-NEXT:    vmovdqa 768(%rdi), %ymm11
4046 ; AVX2-SLOW-NEXT:    vpbroadcastq 752(%rdi), %ymm1
4047 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm11[4,5,6,7]
4048 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
4049 ; AVX2-SLOW-NEXT:    vmovdqa 800(%rdi), %xmm1
4050 ; AVX2-SLOW-NEXT:    vmovdqa 832(%rdi), %xmm2
4051 ; AVX2-SLOW-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4052 ; AVX2-SLOW-NEXT:    vpunpckhqdq {{.*#+}} xmm1 = xmm1[1],xmm2[1]
4053 ; AVX2-SLOW-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm1
4054 ; AVX2-SLOW-NEXT:    vpbroadcastd 868(%rdi), %ymm2
4055 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]
4056 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
4057 ; AVX2-SLOW-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4058 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} xmm0 = mem[2,2,2,2]
4059 ; AVX2-SLOW-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
4060 ; AVX2-SLOW-NEXT:    vmovdqa 608(%rdi), %ymm2
4061 ; AVX2-SLOW-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4062 ; AVX2-SLOW-NEXT:    vmovdqa 576(%rdi), %ymm1
4063 ; AVX2-SLOW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4064 ; AVX2-SLOW-NEXT:    vpalignr {{.*#+}} ymm1 = ymm2[12,13,14,15],ymm1[0,1,2,3,4,5,6,7,8,9,10,11],ymm2[28,29,30,31],ymm1[16,17,18,19,20,21,22,23,24,25,26,27]
4065 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,2,0]
4066 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5,6],ymm0[7]
4067 ; AVX2-SLOW-NEXT:    vmovdqa 512(%rdi), %ymm2
4068 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm10[0,1],ymm2[2,3],ymm10[4,5],ymm2[6,7]
4069 ; AVX2-SLOW-NEXT:    vmovdqa %ymm2, %ymm9
4070 ; AVX2-SLOW-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4071 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[1,2,2,3,5,6,6,7]
4072 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,2,2,2]
4073 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm7[0],ymm8[1],ymm7[2,3,4],ymm8[5],ymm7[6,7]
4074 ; AVX2-SLOW-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4075 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm2 = ymm2[1,0,3,3,5,4,7,7]
4076 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,3,2,3]
4077 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7]
4078 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4],ymm0[5,6,7]
4079 ; AVX2-SLOW-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4080 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} xmm0 = mem[2,2,2,2]
4081 ; AVX2-SLOW-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
4082 ; AVX2-SLOW-NEXT:    vmovdqa 384(%rdi), %ymm2
4083 ; AVX2-SLOW-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4084 ; AVX2-SLOW-NEXT:    vmovdqa 352(%rdi), %ymm1
4085 ; AVX2-SLOW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4086 ; AVX2-SLOW-NEXT:    vpalignr {{.*#+}} ymm1 = ymm2[12,13,14,15],ymm1[0,1,2,3,4,5,6,7,8,9,10,11],ymm2[28,29,30,31],ymm1[16,17,18,19,20,21,22,23,24,25,26,27]
4087 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,2,0]
4088 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5,6],ymm0[7]
4089 ; AVX2-SLOW-NEXT:    vmovdqa 288(%rdi), %ymm1
4090 ; AVX2-SLOW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4091 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm13[0,1],ymm1[2,3],ymm13[4,5],ymm1[6,7]
4092 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[1,2,2,3,5,6,6,7]
4093 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,2,2,2]
4094 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm4[0],ymm5[1],ymm4[2,3,4],ymm5[5],ymm4[6,7]
4095 ; AVX2-SLOW-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4096 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm2 = ymm2[1,0,3,3,5,4,7,7]
4097 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,3,2,3]
4098 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7]
4099 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4],ymm0[5,6,7]
4100 ; AVX2-SLOW-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4101 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} xmm0 = mem[2,2,2,2]
4102 ; AVX2-SLOW-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
4103 ; AVX2-SLOW-NEXT:    vmovdqa 832(%rdi), %ymm2
4104 ; AVX2-SLOW-NEXT:    vmovdqa 800(%rdi), %ymm4
4105 ; AVX2-SLOW-NEXT:    vpalignr {{.*#+}} ymm1 = ymm2[12,13,14,15],ymm4[0,1,2,3,4,5,6,7,8,9,10,11],ymm2[28,29,30,31],ymm4[16,17,18,19,20,21,22,23,24,25,26,27]
4106 ; AVX2-SLOW-NEXT:    vmovdqa %ymm4, %ymm13
4107 ; AVX2-SLOW-NEXT:    vmovdqa %ymm2, %ymm15
4108 ; AVX2-SLOW-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4109 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,2,0]
4110 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5,6],ymm0[7]
4111 ; AVX2-SLOW-NEXT:    vmovdqa 736(%rdi), %ymm2
4112 ; AVX2-SLOW-NEXT:    vmovdqu %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4113 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm11[0,1],ymm2[2,3],ymm11[4,5],ymm2[6,7]
4114 ; AVX2-SLOW-NEXT:    vmovdqa %ymm2, %ymm10
4115 ; AVX2-SLOW-NEXT:    vmovdqu %ymm2, (%rsp) # 32-byte Spill
4116 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[1,2,2,3,5,6,6,7]
4117 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,2,2,2]
4118 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0],ymm6[1],ymm3[2,3,4],ymm6[5],ymm3[6,7]
4119 ; AVX2-SLOW-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4120 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm2 = ymm2[1,0,3,3,5,4,7,7]
4121 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,3,2,3]
4122 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7]
4123 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4],ymm0[5,6,7]
4124 ; AVX2-SLOW-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4125 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} xmm0 = mem[2,2,2,2]
4126 ; AVX2-SLOW-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
4127 ; AVX2-SLOW-NEXT:    vmovdqa 160(%rdi), %ymm2
4128 ; AVX2-SLOW-NEXT:    vmovdqa 128(%rdi), %ymm3
4129 ; AVX2-SLOW-NEXT:    vpalignr {{.*#+}} ymm1 = ymm2[12,13,14,15],ymm3[0,1,2,3,4,5,6,7,8,9,10,11],ymm2[28,29,30,31],ymm3[16,17,18,19,20,21,22,23,24,25,26,27]
4130 ; AVX2-SLOW-NEXT:    vmovdqa %ymm3, %ymm6
4131 ; AVX2-SLOW-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4132 ; AVX2-SLOW-NEXT:    vmovdqa %ymm2, %ymm5
4133 ; AVX2-SLOW-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4134 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,2,0]
4135 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5,6],ymm0[7]
4136 ; AVX2-SLOW-NEXT:    vmovdqa 64(%rdi), %ymm1
4137 ; AVX2-SLOW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
4138 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm4[0,1],ymm1[2,3],ymm4[4,5],ymm1[6,7]
4139 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm2 = ymm2[1,2,2,3,5,6,6,7]
4140 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[2,2,2,2]
4141 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm3 = ymm12[0],ymm14[1],ymm12[2,3,4],ymm14[5],ymm12[6,7]
4142 ; AVX2-SLOW-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4143 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm3 = ymm3[1,0,3,3,5,4,7,7]
4144 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[0,3,2,3]
4145 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2],ymm2[3,4,5,6,7]
4146 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3,4],ymm0[5,6,7]
4147 ; AVX2-SLOW-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4148 ; AVX2-SLOW-NEXT:    vmovdqa 80(%rdi), %xmm0
4149 ; AVX2-SLOW-NEXT:    vpalignr {{.*#+}} ymm2 = ymm4[8,9,10,11,12,13,14,15],ymm1[0,1,2,3,4,5,6,7],ymm4[24,25,26,27,28,29,30,31],ymm1[16,17,18,19,20,21,22,23]
4150 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm2[0,1,2],ymm0[3],ymm2[4,5,6,7]
4151 ; AVX2-SLOW-NEXT:    vpbroadcastd 8(%rdi), %xmm2
4152 ; AVX2-SLOW-NEXT:    vmovdqa 32(%rdi), %xmm3
4153 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0],xmm3[1],xmm2[2,3]
4154 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,3,4,5,6,7]
4155 ; AVX2-SLOW-NEXT:    vpunpcklqdq {{.*#+}} ymm2 = ymm6[0],ymm5[0],ymm6[2],ymm5[2]
4156 ; AVX2-SLOW-NEXT:    vpbroadcastd 204(%rdi), %ymm4
4157 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm4[7]
4158 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm2[5,6,7]
4159 ; AVX2-SLOW-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4160 ; AVX2-SLOW-NEXT:    vmovdqa 528(%rdi), %xmm0
4161 ; AVX2-SLOW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
4162 ; AVX2-SLOW-NEXT:    vpalignr {{.*#+}} ymm2 = ymm8[8,9,10,11,12,13,14,15],ymm9[0,1,2,3,4,5,6,7],ymm8[24,25,26,27,28,29,30,31],ymm9[16,17,18,19,20,21,22,23]
4163 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm2[0,1,2],ymm0[3],ymm2[4,5,6,7]
4164 ; AVX2-SLOW-NEXT:    vpbroadcastd 456(%rdi), %xmm4
4165 ; AVX2-SLOW-NEXT:    vmovdqa 480(%rdi), %xmm2
4166 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm4 = xmm4[0],xmm2[1],xmm4[2,3]
4167 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm4[0,1],ymm0[2,3,4,5,6,7]
4168 ; AVX2-SLOW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
4169 ; AVX2-SLOW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
4170 ; AVX2-SLOW-NEXT:    vpunpcklqdq {{.*#+}} ymm4 = ymm7[0],ymm9[0],ymm7[2],ymm9[2]
4171 ; AVX2-SLOW-NEXT:    vpbroadcastd 652(%rdi), %ymm12
4172 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5,6],ymm12[7]
4173 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm4[5,6,7]
4174 ; AVX2-SLOW-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4175 ; AVX2-SLOW-NEXT:    vmovdqa 752(%rdi), %xmm0
4176 ; AVX2-SLOW-NEXT:    vpalignr {{.*#+}} ymm4 = ymm11[8,9,10,11,12,13,14,15],ymm10[0,1,2,3,4,5,6,7],ymm11[24,25,26,27,28,29,30,31],ymm10[16,17,18,19,20,21,22,23]
4177 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm4[0,1,2],ymm0[3],ymm4[4,5,6,7]
4178 ; AVX2-SLOW-NEXT:    vpbroadcastd 680(%rdi), %xmm12
4179 ; AVX2-SLOW-NEXT:    vmovdqa 704(%rdi), %xmm4
4180 ; AVX2-SLOW-NEXT:    vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4181 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm12 = xmm12[0],xmm4[1],xmm12[2,3]
4182 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm12[0,1],ymm0[2,3,4,5,6,7]
4183 ; AVX2-SLOW-NEXT:    vpunpcklqdq {{.*#+}} ymm12 = ymm13[0],ymm15[0],ymm13[2],ymm15[2]
4184 ; AVX2-SLOW-NEXT:    vmovdqa %ymm13, %ymm10
4185 ; AVX2-SLOW-NEXT:    vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4186 ; AVX2-SLOW-NEXT:    vpbroadcastd 876(%rdi), %ymm15
4187 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm12 = ymm12[0,1,2,3,4,5,6],ymm15[7]
4188 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm12[5,6,7]
4189 ; AVX2-SLOW-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4190 ; AVX2-SLOW-NEXT:    vmovdqa 304(%rdi), %xmm0
4191 ; AVX2-SLOW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
4192 ; AVX2-SLOW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
4193 ; AVX2-SLOW-NEXT:    vpalignr {{.*#+}} ymm12 = ymm5[8,9,10,11,12,13,14,15],ymm6[0,1,2,3,4,5,6,7],ymm5[24,25,26,27,28,29,30,31],ymm6[16,17,18,19,20,21,22,23]
4194 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm12 = ymm12[0,1,2],ymm0[3],ymm12[4,5,6,7]
4195 ; AVX2-SLOW-NEXT:    vpbroadcastd 232(%rdi), %xmm15
4196 ; AVX2-SLOW-NEXT:    vmovdqa 256(%rdi), %xmm0
4197 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm15 = xmm15[0],xmm0[1],xmm15[2,3]
4198 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm12 = ymm15[0,1],ymm12[2,3,4,5,6,7]
4199 ; AVX2-SLOW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
4200 ; AVX2-SLOW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
4201 ; AVX2-SLOW-NEXT:    vpunpcklqdq {{.*#+}} ymm15 = ymm13[0],ymm4[0],ymm13[2],ymm4[2]
4202 ; AVX2-SLOW-NEXT:    vpbroadcastd 428(%rdi), %ymm14
4203 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm14 = ymm15[0,1,2,3,4,5,6],ymm14[7]
4204 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm12 = ymm12[0,1,2,3,4],ymm14[5,6,7]
4205 ; AVX2-SLOW-NEXT:    vmovdqu %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4206 ; AVX2-SLOW-NEXT:    vpblendd $253, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
4207 ; AVX2-SLOW-NEXT:    # ymm1 = mem[0],ymm1[1],mem[2,3,4,5,6,7]
4208 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm3 = xmm3[0,1,2],mem[3]
4209 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} xmm3 = xmm3[3,2,2,3]
4210 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[3,1,1,0,7,5,5,4]
4211 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm3[0,1],ymm1[2,3,4,5,6,7]
4212 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload
4213 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
4214 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm3 = ymm14[0,2],ymm15[1,3],ymm14[4,6],ymm15[5,7]
4215 ; AVX2-SLOW-NEXT:    vbroadcastss 208(%rdi), %ymm11
4216 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,6],ymm11[7]
4217 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm3[5,6,7]
4218 ; AVX2-SLOW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4219 ; AVX2-SLOW-NEXT:    vpblendd $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm1 # 32-byte Folded Reload
4220 ; AVX2-SLOW-NEXT:    # ymm1 = ymm8[0],mem[1],ymm8[2,3,4,5,6,7]
4221 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0,1,2],mem[3]
4222 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} xmm2 = xmm2[3,2,2,3]
4223 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[3,1,1,0,7,5,5,4]
4224 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
4225 ; AVX2-SLOW-NEXT:    vmovdqa %ymm9, %ymm12
4226 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm2 = ymm7[0,2],ymm9[1,3],ymm7[4,6],ymm9[5,7]
4227 ; AVX2-SLOW-NEXT:    vbroadcastss 656(%rdi), %ymm3
4228 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm3[7]
4229 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
4230 ; AVX2-SLOW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4231 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm5[0],ymm6[1],ymm5[2,3,4,5,6,7]
4232 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm0 = xmm0[0,1,2],mem[3]
4233 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} xmm0 = xmm0[3,2,2,3]
4234 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[3,1,1,0,7,5,5,4]
4235 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3,4,5,6,7]
4236 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm13[0,2],ymm4[1,3],ymm13[4,6],ymm4[5,7]
4237 ; AVX2-SLOW-NEXT:    vmovdqa %ymm4, %ymm8
4238 ; AVX2-SLOW-NEXT:    vbroadcastss 432(%rdi), %ymm2
4239 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]
4240 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
4241 ; AVX2-SLOW-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4242 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4243 ; AVX2-SLOW-NEXT:    vblendps $2, (%rsp), %ymm0, %ymm0 # 32-byte Folded Reload
4244 ; AVX2-SLOW-NEXT:    # ymm0 = ymm0[0],mem[1],ymm0[2,3,4,5,6,7]
4245 ; AVX2-SLOW-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
4246 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1,2],mem[3]
4247 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[3,2,2,3]
4248 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[3,1,1,0,7,5,5,4]
4249 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
4250 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
4251 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm10[0,2],ymm9[1,3],ymm10[4,6],ymm9[5,7]
4252 ; AVX2-SLOW-NEXT:    vbroadcastss 880(%rdi), %ymm2
4253 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]
4254 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
4255 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4256 ; AVX2-SLOW-NEXT:    vpbroadcastq {{.*#+}} xmm1 = [4,3,4,3]
4257 ; AVX2-SLOW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4258 ; AVX2-SLOW-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
4259 ; AVX2-SLOW-NEXT:    # ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
4260 ; AVX2-SLOW-NEXT:    vpermd %ymm0, %ymm1, %ymm0
4261 ; AVX2-SLOW-NEXT:    vpbroadcastd 548(%rdi), %xmm2
4262 ; AVX2-SLOW-NEXT:    vmovdqa 512(%rdi), %xmm6
4263 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm2 = xmm6[0,1,2],xmm2[3]
4264 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm0 = xmm0[0,1],xmm2[2,3]
4265 ; AVX2-SLOW-NEXT:    vpbroadcastq {{.*#+}} ymm11 = [0,7,0,7,0,7,0,7]
4266 ; AVX2-SLOW-NEXT:    vpermd %ymm7, %ymm11, %ymm2
4267 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm12[6,7]
4268 ; AVX2-SLOW-NEXT:    vpbroadcastd 660(%rdi), %ymm3
4269 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm3[7]
4270 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
4271 ; AVX2-SLOW-NEXT:    vmovdqu %ymm0, (%rsp) # 32-byte Spill
4272 ; AVX2-SLOW-NEXT:    vpbroadcastd 100(%rdi), %xmm2
4273 ; AVX2-SLOW-NEXT:    vmovdqa 64(%rdi), %xmm0
4274 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm2 = xmm0[0,1,2],xmm2[3]
4275 ; AVX2-SLOW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
4276 ; AVX2-SLOW-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
4277 ; AVX2-SLOW-NEXT:    # ymm3 = mem[0,1,2,3],ymm3[4,5,6,7]
4278 ; AVX2-SLOW-NEXT:    vpermd %ymm3, %ymm1, %ymm3
4279 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm2 = xmm3[0,1],xmm2[2,3]
4280 ; AVX2-SLOW-NEXT:    vmovaps %ymm14, %ymm10
4281 ; AVX2-SLOW-NEXT:    vpermd %ymm14, %ymm11, %ymm3
4282 ; AVX2-SLOW-NEXT:    vmovaps %ymm15, %ymm7
4283 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm15[6,7]
4284 ; AVX2-SLOW-NEXT:    vpbroadcastd 212(%rdi), %ymm4
4285 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,6],ymm4[7]
4286 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
4287 ; AVX2-SLOW-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4288 ; AVX2-SLOW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
4289 ; AVX2-SLOW-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
4290 ; AVX2-SLOW-NEXT:    # ymm2 = mem[0,1,2,3],ymm2[4,5,6,7]
4291 ; AVX2-SLOW-NEXT:    vpermd %ymm2, %ymm1, %ymm3
4292 ; AVX2-SLOW-NEXT:    vpbroadcastd 324(%rdi), %xmm4
4293 ; AVX2-SLOW-NEXT:    vmovdqa 288(%rdi), %xmm2
4294 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm4 = xmm2[0,1,2],xmm4[3]
4295 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm3 = xmm3[0,1],xmm4[2,3]
4296 ; AVX2-SLOW-NEXT:    vpermd %ymm13, %ymm11, %ymm4
4297 ; AVX2-SLOW-NEXT:    vmovdqa %ymm13, %ymm14
4298 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],ymm8[6,7]
4299 ; AVX2-SLOW-NEXT:    vmovdqa %ymm8, %ymm13
4300 ; AVX2-SLOW-NEXT:    vpbroadcastd 436(%rdi), %ymm8
4301 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5,6],ymm8[7]
4302 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm4[4,5,6,7]
4303 ; AVX2-SLOW-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4304 ; AVX2-SLOW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
4305 ; AVX2-SLOW-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
4306 ; AVX2-SLOW-NEXT:    # ymm3 = mem[0,1,2,3],ymm3[4,5,6,7]
4307 ; AVX2-SLOW-NEXT:    vpermd %ymm3, %ymm1, %ymm1
4308 ; AVX2-SLOW-NEXT:    vpbroadcastd 772(%rdi), %xmm4
4309 ; AVX2-SLOW-NEXT:    vmovdqa 736(%rdi), %xmm3
4310 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm4 = xmm3[0,1,2],xmm4[3]
4311 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm1 = xmm1[0,1],xmm4[2,3]
4312 ; AVX2-SLOW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload
4313 ; AVX2-SLOW-NEXT:    vpermd %ymm15, %ymm11, %ymm4
4314 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],ymm9[6,7]
4315 ; AVX2-SLOW-NEXT:    vpbroadcastd 884(%rdi), %ymm8
4316 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5,6],ymm8[7]
4317 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
4318 ; AVX2-SLOW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4319 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm7[0],ymm10[1],ymm7[2,3,4],ymm10[5],ymm7[6,7]
4320 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[1,0,3,3,5,4,7,7]
4321 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,1,0,3]
4322 ; AVX2-SLOW-NEXT:    vbroadcastss 216(%rdi), %ymm4
4323 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm4[7]
4324 ; AVX2-SLOW-NEXT:    vmovdqa 96(%rdi), %xmm10
4325 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm0 = xmm10[0,1,2],xmm0[3]
4326 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} xmm0 = xmm0[0,1,3,2]
4327 ; AVX2-SLOW-NEXT:    vpshufd $225, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Folded Reload
4328 ; AVX2-SLOW-NEXT:    # ymm4 = mem[1,0,2,3,5,4,6,7]
4329 ; AVX2-SLOW-NEXT:    vextracti128 $1, %ymm4, %xmm4
4330 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm0 = xmm4[0,1],xmm0[2,3]
4331 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4332 ; AVX2-SLOW-NEXT:    vmovdqa 544(%rdi), %xmm4
4333 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm1 = xmm4[0,1,2],xmm6[3]
4334 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} xmm1 = xmm1[0,1,3,2]
4335 ; AVX2-SLOW-NEXT:    vpshufd $225, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Folded Reload
4336 ; AVX2-SLOW-NEXT:    # ymm5 = mem[1,0,2,3,5,4,6,7]
4337 ; AVX2-SLOW-NEXT:    vextracti128 $1, %ymm5, %xmm5
4338 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm1 = xmm5[0,1],xmm1[2,3]
4339 ; AVX2-SLOW-NEXT:    vpblendd $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm5 # 32-byte Folded Reload
4340 ; AVX2-SLOW-NEXT:    # ymm5 = ymm12[0],mem[1],ymm12[2,3,4],mem[5],ymm12[6,7]
4341 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm5 = ymm5[1,0,3,3,5,4,7,7]
4342 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm5 = ymm5[0,1,0,3]
4343 ; AVX2-SLOW-NEXT:    vpbroadcastd 664(%rdi), %ymm7
4344 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5,6],ymm7[7]
4345 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm5[4,5,6,7]
4346 ; AVX2-SLOW-NEXT:    vmovdqa 320(%rdi), %xmm12
4347 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm2 = xmm12[0,1,2],xmm2[3]
4348 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} xmm2 = xmm2[0,1,3,2]
4349 ; AVX2-SLOW-NEXT:    vpshufd $225, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Folded Reload
4350 ; AVX2-SLOW-NEXT:    # ymm5 = mem[1,0,2,3,5,4,6,7]
4351 ; AVX2-SLOW-NEXT:    vextracti128 $1, %ymm5, %xmm5
4352 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm2 = xmm5[0,1],xmm2[2,3]
4353 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm5 = ymm13[0],ymm14[1],ymm13[2,3,4],ymm14[5],ymm13[6,7]
4354 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm5 = ymm5[1,0,3,3,5,4,7,7]
4355 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm5 = ymm5[0,1,0,3]
4356 ; AVX2-SLOW-NEXT:    vpbroadcastd 440(%rdi), %ymm7
4357 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5,6],ymm7[7]
4358 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm5 = ymm2[0,1,2,3],ymm5[4,5,6,7]
4359 ; AVX2-SLOW-NEXT:    vmovdqa 768(%rdi), %xmm2
4360 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm3 = xmm2[0,1,2],xmm3[3]
4361 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} xmm3 = xmm3[0,1,3,2]
4362 ; AVX2-SLOW-NEXT:    vpshufd $225, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Folded Reload
4363 ; AVX2-SLOW-NEXT:    # ymm7 = mem[1,0,2,3,5,4,6,7]
4364 ; AVX2-SLOW-NEXT:    vextracti128 $1, %ymm7, %xmm7
4365 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm3 = xmm7[0,1],xmm3[2,3]
4366 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm7 = ymm9[0],ymm15[1],ymm9[2,3,4],ymm15[5],ymm9[6,7]
4367 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm7 = ymm7[1,0,3,3,5,4,7,7]
4368 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm7 = ymm7[0,1,0,3]
4369 ; AVX2-SLOW-NEXT:    vpbroadcastd 888(%rdi), %ymm8
4370 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5,6],ymm8[7]
4371 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm7 = ymm3[0,1,2,3],ymm7[4,5,6,7]
4372 ; AVX2-SLOW-NEXT:    vbroadcastss 584(%rdi), %xmm3
4373 ; AVX2-SLOW-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm3 # 16-byte Folded Reload
4374 ; AVX2-SLOW-NEXT:    # xmm3 = xmm3[0],mem[1],xmm3[2,3]
4375 ; AVX2-SLOW-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
4376 ; AVX2-SLOW-NEXT:    vpermd 640(%rdi), %ymm11, %ymm8
4377 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm8[6,7]
4378 ; AVX2-SLOW-NEXT:    vpbroadcastd 528(%rdi), %ymm8
4379 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm4 = xmm8[0,1,2],xmm4[3]
4380 ; AVX2-SLOW-NEXT:    vpshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Folded Reload
4381 ; AVX2-SLOW-NEXT:    # ymm8 = mem[2,3,2,3,6,7,6,7]
4382 ; AVX2-SLOW-NEXT:    vpblendd $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
4383 ; AVX2-SLOW-NEXT:    # ymm8 = ymm8[0],mem[1],ymm8[2,3,4],mem[5],ymm8[6,7]
4384 ; AVX2-SLOW-NEXT:    vextracti128 $1, %ymm8, %xmm8
4385 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm4 = xmm8[0,1],xmm4[2,3]
4386 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm8 = ymm4[0,1,2,3],ymm3[4,5,6,7]
4387 ; AVX2-SLOW-NEXT:    vbroadcastss 808(%rdi), %xmm3
4388 ; AVX2-SLOW-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm3 # 16-byte Folded Reload
4389 ; AVX2-SLOW-NEXT:    # xmm3 = xmm3[0],mem[1],xmm3[2,3]
4390 ; AVX2-SLOW-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
4391 ; AVX2-SLOW-NEXT:    vpermd 864(%rdi), %ymm11, %ymm4
4392 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm4[6,7]
4393 ; AVX2-SLOW-NEXT:    vpbroadcastd 752(%rdi), %ymm4
4394 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm2 = xmm4[0,1,2],xmm2[3]
4395 ; AVX2-SLOW-NEXT:    vpshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Folded Reload
4396 ; AVX2-SLOW-NEXT:    # ymm4 = mem[2,3,2,3,6,7,6,7]
4397 ; AVX2-SLOW-NEXT:    vpblendd $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload
4398 ; AVX2-SLOW-NEXT:    # ymm4 = ymm4[0],mem[1],ymm4[2,3,4],mem[5],ymm4[6,7]
4399 ; AVX2-SLOW-NEXT:    vextracti128 $1, %ymm4, %xmm4
4400 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm2 = xmm4[0,1],xmm2[2,3]
4401 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
4402 ; AVX2-SLOW-NEXT:    vbroadcastss 136(%rdi), %xmm3
4403 ; AVX2-SLOW-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm3 # 16-byte Folded Reload
4404 ; AVX2-SLOW-NEXT:    # xmm3 = xmm3[0],mem[1],xmm3[2,3]
4405 ; AVX2-SLOW-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
4406 ; AVX2-SLOW-NEXT:    vpermd 192(%rdi), %ymm11, %ymm4
4407 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm4[6,7]
4408 ; AVX2-SLOW-NEXT:    vpbroadcastd 80(%rdi), %ymm4
4409 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm4 = xmm4[0,1,2],xmm10[3]
4410 ; AVX2-SLOW-NEXT:    vpshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Folded Reload
4411 ; AVX2-SLOW-NEXT:    # ymm6 = mem[2,3,2,3,6,7,6,7]
4412 ; AVX2-SLOW-NEXT:    vpblendd $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm6 # 32-byte Folded Reload
4413 ; AVX2-SLOW-NEXT:    # ymm6 = ymm6[0],mem[1],ymm6[2,3,4],mem[5],ymm6[6,7]
4414 ; AVX2-SLOW-NEXT:    vextracti128 $1, %ymm6, %xmm6
4415 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm4 = xmm6[0,1],xmm4[2,3]
4416 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
4417 ; AVX2-SLOW-NEXT:    vbroadcastss 360(%rdi), %xmm4
4418 ; AVX2-SLOW-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload
4419 ; AVX2-SLOW-NEXT:    # xmm4 = xmm4[0],mem[1],xmm4[2,3]
4420 ; AVX2-SLOW-NEXT:    vpermd 416(%rdi), %ymm11, %ymm6
4421 ; AVX2-SLOW-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
4422 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],ymm6[6,7]
4423 ; AVX2-SLOW-NEXT:    vpbroadcastd 304(%rdi), %ymm6
4424 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm6 = xmm6[0,1,2],xmm12[3]
4425 ; AVX2-SLOW-NEXT:    vpshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Folded Reload
4426 ; AVX2-SLOW-NEXT:    # ymm9 = mem[2,3,2,3,6,7,6,7]
4427 ; AVX2-SLOW-NEXT:    vpblendd $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm9 # 32-byte Folded Reload
4428 ; AVX2-SLOW-NEXT:    # ymm9 = ymm9[0],mem[1],ymm9[2,3,4],mem[5],ymm9[6,7]
4429 ; AVX2-SLOW-NEXT:    vextracti128 $1, %ymm9, %xmm9
4430 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm6 = xmm9[0,1],xmm6[2,3]
4431 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm4 = ymm6[0,1,2,3],ymm4[4,5,6,7]
4432 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
4433 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 96(%rsi)
4434 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
4435 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 32(%rsi)
4436 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
4437 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 64(%rsi)
4438 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
4439 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, (%rsi)
4440 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
4441 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 96(%rdx)
4442 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
4443 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 32(%rdx)
4444 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
4445 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 64(%rdx)
4446 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
4447 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, (%rdx)
4448 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
4449 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 32(%rcx)
4450 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
4451 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 96(%rcx)
4452 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
4453 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 64(%rcx)
4454 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
4455 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, (%rcx)
4456 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
4457 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 96(%r8)
4458 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
4459 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 32(%r8)
4460 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
4461 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 64(%r8)
4462 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
4463 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, (%r8)
4464 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
4465 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 96(%r9)
4466 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
4467 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 32(%r9)
4468 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
4469 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, (%r9)
4470 ; AVX2-SLOW-NEXT:    vmovups (%rsp), %ymm6 # 32-byte Reload
4471 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 64(%r9)
4472 ; AVX2-SLOW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
4473 ; AVX2-SLOW-NEXT:    vmovdqa %ymm7, 96(%rax)
4474 ; AVX2-SLOW-NEXT:    vmovdqa %ymm5, 32(%rax)
4475 ; AVX2-SLOW-NEXT:    vmovdqa %ymm1, 64(%rax)
4476 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, (%rax)
4477 ; AVX2-SLOW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
4478 ; AVX2-SLOW-NEXT:    vmovaps %ymm4, 32(%rax)
4479 ; AVX2-SLOW-NEXT:    vmovaps %ymm3, (%rax)
4480 ; AVX2-SLOW-NEXT:    vmovaps %ymm2, 96(%rax)
4481 ; AVX2-SLOW-NEXT:    vmovaps %ymm8, 64(%rax)
4482 ; AVX2-SLOW-NEXT:    addq $1224, %rsp # imm = 0x4C8
4483 ; AVX2-SLOW-NEXT:    vzeroupper
4484 ; AVX2-SLOW-NEXT:    retq
4486 ; AVX2-FAST-LABEL: load_i32_stride7_vf32:
4487 ; AVX2-FAST:       # %bb.0:
4488 ; AVX2-FAST-NEXT:    subq $1192, %rsp # imm = 0x4A8
4489 ; AVX2-FAST-NEXT:    vmovdqa 320(%rdi), %ymm10
4490 ; AVX2-FAST-NEXT:    vmovdqu %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4491 ; AVX2-FAST-NEXT:    vmovdqa 256(%rdi), %ymm4
4492 ; AVX2-FAST-NEXT:    vmovdqa 224(%rdi), %ymm5
4493 ; AVX2-FAST-NEXT:    vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4494 ; AVX2-FAST-NEXT:    vmovdqa 544(%rdi), %ymm11
4495 ; AVX2-FAST-NEXT:    vmovdqu %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4496 ; AVX2-FAST-NEXT:    vmovdqa 480(%rdi), %ymm7
4497 ; AVX2-FAST-NEXT:    vmovdqa 448(%rdi), %ymm13
4498 ; AVX2-FAST-NEXT:    vmovdqa (%rdi), %ymm3
4499 ; AVX2-FAST-NEXT:    vmovdqa 32(%rdi), %ymm9
4500 ; AVX2-FAST-NEXT:    vmovdqa 96(%rdi), %ymm2
4501 ; AVX2-FAST-NEXT:    vpbroadcastq 80(%rdi), %ymm0
4502 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm2[4,5,6,7]
4503 ; AVX2-FAST-NEXT:    vmovdqa %ymm2, %ymm12
4504 ; AVX2-FAST-NEXT:    vmovdqa {{.*#+}} xmm0 = [0,7,6,u]
4505 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3,4,5],ymm9[6],ymm3[7]
4506 ; AVX2-FAST-NEXT:    vmovdqu %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4507 ; AVX2-FAST-NEXT:    vmovdqa %ymm3, %ymm6
4508 ; AVX2-FAST-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4509 ; AVX2-FAST-NEXT:    vpermd %ymm2, %ymm0, %ymm2
4510 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7]
4511 ; AVX2-FAST-NEXT:    vmovdqa 128(%rdi), %xmm2
4512 ; AVX2-FAST-NEXT:    vmovdqa 160(%rdi), %xmm3
4513 ; AVX2-FAST-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4514 ; AVX2-FAST-NEXT:    vpunpckhqdq {{.*#+}} xmm2 = xmm2[1],xmm3[1]
4515 ; AVX2-FAST-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
4516 ; AVX2-FAST-NEXT:    vpbroadcastd 196(%rdi), %ymm3
4517 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm3[7]
4518 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
4519 ; AVX2-FAST-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4520 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm13[0,1,2,3,4,5],ymm7[6],ymm13[7]
4521 ; AVX2-FAST-NEXT:    vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4522 ; AVX2-FAST-NEXT:    vmovdqa %ymm7, %ymm8
4523 ; AVX2-FAST-NEXT:    vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4524 ; AVX2-FAST-NEXT:    vpermd %ymm1, %ymm0, %ymm1
4525 ; AVX2-FAST-NEXT:    vpbroadcastq 528(%rdi), %ymm2
4526 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm11[4,5,6,7]
4527 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
4528 ; AVX2-FAST-NEXT:    vmovdqa 576(%rdi), %xmm2
4529 ; AVX2-FAST-NEXT:    vmovdqa 608(%rdi), %xmm3
4530 ; AVX2-FAST-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4531 ; AVX2-FAST-NEXT:    vpunpckhqdq {{.*#+}} xmm2 = xmm2[1],xmm3[1]
4532 ; AVX2-FAST-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
4533 ; AVX2-FAST-NEXT:    vpbroadcastd 644(%rdi), %ymm3
4534 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm3[7]
4535 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
4536 ; AVX2-FAST-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4537 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm5[0,1,2,3,4,5],ymm4[6],ymm5[7]
4538 ; AVX2-FAST-NEXT:    vmovdqa %ymm4, %ymm11
4539 ; AVX2-FAST-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4540 ; AVX2-FAST-NEXT:    vpermd %ymm1, %ymm0, %ymm1
4541 ; AVX2-FAST-NEXT:    vpbroadcastq 304(%rdi), %ymm2
4542 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm10[4,5,6,7]
4543 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
4544 ; AVX2-FAST-NEXT:    vmovdqa 352(%rdi), %xmm2
4545 ; AVX2-FAST-NEXT:    vmovdqa 384(%rdi), %xmm3
4546 ; AVX2-FAST-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4547 ; AVX2-FAST-NEXT:    vpunpckhqdq {{.*#+}} xmm2 = xmm2[1],xmm3[1]
4548 ; AVX2-FAST-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
4549 ; AVX2-FAST-NEXT:    vpbroadcastd 420(%rdi), %ymm3
4550 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm3[7]
4551 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
4552 ; AVX2-FAST-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4553 ; AVX2-FAST-NEXT:    vmovdqa 704(%rdi), %ymm14
4554 ; AVX2-FAST-NEXT:    vmovdqa 672(%rdi), %ymm1
4555 ; AVX2-FAST-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4556 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm14[6],ymm1[7]
4557 ; AVX2-FAST-NEXT:    vmovdqu %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4558 ; AVX2-FAST-NEXT:    vpermd %ymm1, %ymm0, %ymm0
4559 ; AVX2-FAST-NEXT:    vmovdqa 768(%rdi), %ymm2
4560 ; AVX2-FAST-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4561 ; AVX2-FAST-NEXT:    vpbroadcastq 752(%rdi), %ymm1
4562 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]
4563 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
4564 ; AVX2-FAST-NEXT:    vmovdqa 800(%rdi), %xmm1
4565 ; AVX2-FAST-NEXT:    vmovdqa 832(%rdi), %xmm2
4566 ; AVX2-FAST-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4567 ; AVX2-FAST-NEXT:    vpunpckhqdq {{.*#+}} xmm1 = xmm1[1],xmm2[1]
4568 ; AVX2-FAST-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm1
4569 ; AVX2-FAST-NEXT:    vpbroadcastd 868(%rdi), %ymm2
4570 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]
4571 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
4572 ; AVX2-FAST-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4573 ; AVX2-FAST-NEXT:    vpshufd {{.*#+}} xmm0 = mem[2,2,2,2]
4574 ; AVX2-FAST-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
4575 ; AVX2-FAST-NEXT:    vmovdqa 160(%rdi), %ymm2
4576 ; AVX2-FAST-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4577 ; AVX2-FAST-NEXT:    vmovdqa 128(%rdi), %ymm1
4578 ; AVX2-FAST-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4579 ; AVX2-FAST-NEXT:    vpalignr {{.*#+}} ymm1 = ymm2[12,13,14,15],ymm1[0,1,2,3,4,5,6,7,8,9,10,11],ymm2[28,29,30,31],ymm1[16,17,18,19,20,21,22,23,24,25,26,27]
4580 ; AVX2-FAST-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,2,0]
4581 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm1[0,1,2,3,4,5,6],ymm0[7]
4582 ; AVX2-FAST-NEXT:    vmovdqa 64(%rdi), %ymm0
4583 ; AVX2-FAST-NEXT:    vmovdqa %ymm12, %ymm7
4584 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1],ymm0[2,3],ymm12[4,5],ymm0[6,7]
4585 ; AVX2-FAST-NEXT:    vmovdqa %ymm0, %ymm12
4586 ; AVX2-FAST-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4587 ; AVX2-FAST-NEXT:    vpbroadcastq {{.*#+}} ymm0 = [5,6,5,6,5,6,5,6]
4588 ; AVX2-FAST-NEXT:    vpermd %ymm1, %ymm0, %ymm3
4589 ; AVX2-FAST-NEXT:    vmovdqa {{.*#+}} ymm1 = [1,0,7,7,5,4,7,7]
4590 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm4 = ymm9[0],ymm6[1],ymm9[2,3,4],ymm6[5],ymm9[6,7]
4591 ; AVX2-FAST-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4592 ; AVX2-FAST-NEXT:    vpermd %ymm4, %ymm1, %ymm4
4593 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm3 = ymm4[0,1,2],ymm3[3,4,5,6,7]
4594 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3,4],ymm2[5,6,7]
4595 ; AVX2-FAST-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4596 ; AVX2-FAST-NEXT:    vpshufd {{.*#+}} xmm2 = mem[2,2,2,2]
4597 ; AVX2-FAST-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
4598 ; AVX2-FAST-NEXT:    vmovdqa 608(%rdi), %ymm15
4599 ; AVX2-FAST-NEXT:    vmovdqa 576(%rdi), %ymm3
4600 ; AVX2-FAST-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4601 ; AVX2-FAST-NEXT:    vpalignr {{.*#+}} ymm3 = ymm15[12,13,14,15],ymm3[0,1,2,3,4,5,6,7,8,9,10,11],ymm15[28,29,30,31],ymm3[16,17,18,19,20,21,22,23,24,25,26,27]
4602 ; AVX2-FAST-NEXT:    vmovdqu %ymm15, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4603 ; AVX2-FAST-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[0,1,2,0]
4604 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3,4,5,6],ymm2[7]
4605 ; AVX2-FAST-NEXT:    vmovdqa 512(%rdi), %ymm10
4606 ; AVX2-FAST-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
4607 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm3 = ymm5[0,1],ymm10[2,3],ymm5[4,5],ymm10[6,7]
4608 ; AVX2-FAST-NEXT:    vmovdqu %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4609 ; AVX2-FAST-NEXT:    vpermd %ymm3, %ymm0, %ymm3
4610 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm4 = ymm8[0],ymm13[1],ymm8[2,3,4],ymm13[5],ymm8[6,7]
4611 ; AVX2-FAST-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4612 ; AVX2-FAST-NEXT:    vpermd %ymm4, %ymm1, %ymm4
4613 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm3 = ymm4[0,1,2],ymm3[3,4,5,6,7]
4614 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3,4],ymm2[5,6,7]
4615 ; AVX2-FAST-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4616 ; AVX2-FAST-NEXT:    vpshufd {{.*#+}} xmm2 = mem[2,2,2,2]
4617 ; AVX2-FAST-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
4618 ; AVX2-FAST-NEXT:    vmovdqa 384(%rdi), %ymm4
4619 ; AVX2-FAST-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4620 ; AVX2-FAST-NEXT:    vmovdqa 352(%rdi), %ymm3
4621 ; AVX2-FAST-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4622 ; AVX2-FAST-NEXT:    vpalignr {{.*#+}} ymm3 = ymm4[12,13,14,15],ymm3[0,1,2,3,4,5,6,7,8,9,10,11],ymm4[28,29,30,31],ymm3[16,17,18,19,20,21,22,23,24,25,26,27]
4623 ; AVX2-FAST-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[0,1,2,0]
4624 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3,4,5,6],ymm2[7]
4625 ; AVX2-FAST-NEXT:    vmovdqa 288(%rdi), %ymm3
4626 ; AVX2-FAST-NEXT:    vmovdqu %ymm3, (%rsp) # 32-byte Spill
4627 ; AVX2-FAST-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
4628 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm3 = ymm9[0,1],ymm3[2,3],ymm9[4,5],ymm3[6,7]
4629 ; AVX2-FAST-NEXT:    vpermd %ymm3, %ymm0, %ymm3
4630 ; AVX2-FAST-NEXT:    vpblendd $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm4 # 32-byte Folded Reload
4631 ; AVX2-FAST-NEXT:    # ymm4 = ymm11[0],mem[1],ymm11[2,3,4],mem[5],ymm11[6,7]
4632 ; AVX2-FAST-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4633 ; AVX2-FAST-NEXT:    vpermd %ymm4, %ymm1, %ymm4
4634 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm3 = ymm4[0,1,2],ymm3[3,4,5,6,7]
4635 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3,4],ymm2[5,6,7]
4636 ; AVX2-FAST-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4637 ; AVX2-FAST-NEXT:    vpshufd {{.*#+}} xmm2 = mem[2,2,2,2]
4638 ; AVX2-FAST-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
4639 ; AVX2-FAST-NEXT:    vmovdqa 832(%rdi), %ymm6
4640 ; AVX2-FAST-NEXT:    vmovdqa 800(%rdi), %ymm11
4641 ; AVX2-FAST-NEXT:    vpalignr {{.*#+}} ymm3 = ymm6[12,13,14,15],ymm11[0,1,2,3,4,5,6,7,8,9,10,11],ymm6[28,29,30,31],ymm11[16,17,18,19,20,21,22,23,24,25,26,27]
4642 ; AVX2-FAST-NEXT:    vmovdqa %ymm11, %ymm13
4643 ; AVX2-FAST-NEXT:    vmovdqu %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4644 ; AVX2-FAST-NEXT:    vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4645 ; AVX2-FAST-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[0,1,2,0]
4646 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3,4,5,6],ymm2[7]
4647 ; AVX2-FAST-NEXT:    vmovdqa 736(%rdi), %ymm4
4648 ; AVX2-FAST-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
4649 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm3 = ymm8[0,1],ymm4[2,3],ymm8[4,5],ymm4[6,7]
4650 ; AVX2-FAST-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4651 ; AVX2-FAST-NEXT:    vpermd %ymm3, %ymm0, %ymm0
4652 ; AVX2-FAST-NEXT:    vpblendd $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm3 # 32-byte Folded Reload
4653 ; AVX2-FAST-NEXT:    # ymm3 = ymm14[0],mem[1],ymm14[2,3,4],mem[5],ymm14[6,7]
4654 ; AVX2-FAST-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4655 ; AVX2-FAST-NEXT:    vpermd %ymm3, %ymm1, %ymm1
4656 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]
4657 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm2[5,6,7]
4658 ; AVX2-FAST-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4659 ; AVX2-FAST-NEXT:    vmovdqa 80(%rdi), %xmm0
4660 ; AVX2-FAST-NEXT:    vpalignr {{.*#+}} ymm1 = ymm7[8,9,10,11,12,13,14,15],ymm12[0,1,2,3,4,5,6,7],ymm7[24,25,26,27,28,29,30,31],ymm12[16,17,18,19,20,21,22,23]
4661 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6,7]
4662 ; AVX2-FAST-NEXT:    vpbroadcastd 8(%rdi), %xmm1
4663 ; AVX2-FAST-NEXT:    vmovdqa 32(%rdi), %xmm2
4664 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm1 = xmm1[0],xmm2[1],xmm1[2,3]
4665 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
4666 ; AVX2-FAST-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
4667 ; AVX2-FAST-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4668 ; AVX2-FAST-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm1[0],ymm14[0],ymm1[2],ymm14[2]
4669 ; AVX2-FAST-NEXT:    vpbroadcastd 204(%rdi), %ymm3
4670 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm3[7]
4671 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
4672 ; AVX2-FAST-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4673 ; AVX2-FAST-NEXT:    vmovdqa 528(%rdi), %xmm0
4674 ; AVX2-FAST-NEXT:    vpalignr {{.*#+}} ymm1 = ymm5[8,9,10,11,12,13,14,15],ymm10[0,1,2,3,4,5,6,7],ymm5[24,25,26,27,28,29,30,31],ymm10[16,17,18,19,20,21,22,23]
4675 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6,7]
4676 ; AVX2-FAST-NEXT:    vpbroadcastd 456(%rdi), %xmm3
4677 ; AVX2-FAST-NEXT:    vmovdqa 480(%rdi), %xmm1
4678 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm3 = xmm3[0],xmm1[1],xmm3[2,3]
4679 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1],ymm0[2,3,4,5,6,7]
4680 ; AVX2-FAST-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
4681 ; AVX2-FAST-NEXT:    vpunpcklqdq {{.*#+}} ymm3 = ymm12[0],ymm15[0],ymm12[2],ymm15[2]
4682 ; AVX2-FAST-NEXT:    vpbroadcastd 652(%rdi), %ymm11
4683 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,6],ymm11[7]
4684 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm3[5,6,7]
4685 ; AVX2-FAST-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4686 ; AVX2-FAST-NEXT:    vmovdqa 752(%rdi), %xmm0
4687 ; AVX2-FAST-NEXT:    vpalignr {{.*#+}} ymm3 = ymm8[8,9,10,11,12,13,14,15],ymm4[0,1,2,3,4,5,6,7],ymm8[24,25,26,27,28,29,30,31],ymm4[16,17,18,19,20,21,22,23]
4688 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2],ymm0[3],ymm3[4,5,6,7]
4689 ; AVX2-FAST-NEXT:    vpbroadcastd 680(%rdi), %xmm11
4690 ; AVX2-FAST-NEXT:    vmovdqa 704(%rdi), %xmm10
4691 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm11 = xmm11[0],xmm10[1],xmm11[2,3]
4692 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm11[0,1],ymm0[2,3,4,5,6,7]
4693 ; AVX2-FAST-NEXT:    vpunpcklqdq {{.*#+}} ymm11 = ymm13[0],ymm6[0],ymm13[2],ymm6[2]
4694 ; AVX2-FAST-NEXT:    vpbroadcastd 876(%rdi), %ymm15
4695 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm11 = ymm11[0,1,2,3,4,5,6],ymm15[7]
4696 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm11[5,6,7]
4697 ; AVX2-FAST-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4698 ; AVX2-FAST-NEXT:    vmovdqa 304(%rdi), %xmm0
4699 ; AVX2-FAST-NEXT:    vmovdqu (%rsp), %ymm4 # 32-byte Reload
4700 ; AVX2-FAST-NEXT:    vpalignr {{.*#+}} ymm11 = ymm9[8,9,10,11,12,13,14,15],ymm4[0,1,2,3,4,5,6,7],ymm9[24,25,26,27,28,29,30,31],ymm4[16,17,18,19,20,21,22,23]
4701 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm11 = ymm11[0,1,2],ymm0[3],ymm11[4,5,6,7]
4702 ; AVX2-FAST-NEXT:    vpbroadcastd 232(%rdi), %xmm15
4703 ; AVX2-FAST-NEXT:    vmovdqa 256(%rdi), %xmm0
4704 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm15 = xmm15[0],xmm0[1],xmm15[2,3]
4705 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm11 = ymm15[0,1],ymm11[2,3,4,5,6,7]
4706 ; AVX2-FAST-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
4707 ; AVX2-FAST-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
4708 ; AVX2-FAST-NEXT:    vpunpcklqdq {{.*#+}} ymm15 = ymm3[0],ymm8[0],ymm3[2],ymm8[2]
4709 ; AVX2-FAST-NEXT:    vpbroadcastd 428(%rdi), %ymm13
4710 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm13 = ymm15[0,1,2,3,4,5,6],ymm13[7]
4711 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm5 = ymm11[0,1,2,3,4],ymm13[5,6,7]
4712 ; AVX2-FAST-NEXT:    vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4713 ; AVX2-FAST-NEXT:    vpblendd $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload
4714 ; AVX2-FAST-NEXT:    # ymm7 = ymm7[0],mem[1],ymm7[2,3,4,5,6,7]
4715 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0,1,2],mem[3]
4716 ; AVX2-FAST-NEXT:    vpshufd {{.*#+}} xmm2 = xmm2[3,2,2,3]
4717 ; AVX2-FAST-NEXT:    vpshufd {{.*#+}} ymm7 = ymm7[3,1,1,0,7,5,5,4]
4718 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1],ymm7[2,3,4,5,6,7]
4719 ; AVX2-FAST-NEXT:    vmovdqa %ymm14, %ymm5
4720 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
4721 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm7 = ymm14[0,2],ymm5[1,3],ymm14[4,6],ymm5[5,7]
4722 ; AVX2-FAST-NEXT:    vbroadcastss 208(%rdi), %ymm9
4723 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5,6],ymm9[7]
4724 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm7[5,6,7]
4725 ; AVX2-FAST-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4726 ; AVX2-FAST-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
4727 ; AVX2-FAST-NEXT:    vpblendd $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
4728 ; AVX2-FAST-NEXT:    # ymm2 = ymm2[0],mem[1],ymm2[2,3,4,5,6,7]
4729 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm1 = xmm1[0,1,2],mem[3]
4730 ; AVX2-FAST-NEXT:    vpshufd {{.*#+}} xmm1 = xmm1[3,2,2,3]
4731 ; AVX2-FAST-NEXT:    vpshufd {{.*#+}} ymm2 = ymm2[3,1,1,0,7,5,5,4]
4732 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3,4,5,6,7]
4733 ; AVX2-FAST-NEXT:    vmovdqa %ymm12, %ymm9
4734 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
4735 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm2 = ymm12[0,2],ymm13[1,3],ymm12[4,6],ymm13[5,7]
4736 ; AVX2-FAST-NEXT:    vbroadcastss 656(%rdi), %ymm6
4737 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm6[7]
4738 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
4739 ; AVX2-FAST-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4740 ; AVX2-FAST-NEXT:    vpblendd $253, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm1 # 32-byte Folded Reload
4741 ; AVX2-FAST-NEXT:    # ymm1 = mem[0],ymm4[1],mem[2,3,4,5,6,7]
4742 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm0 = xmm0[0,1,2],mem[3]
4743 ; AVX2-FAST-NEXT:    vpshufd {{.*#+}} xmm0 = xmm0[3,2,2,3]
4744 ; AVX2-FAST-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[3,1,1,0,7,5,5,4]
4745 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3,4,5,6,7]
4746 ; AVX2-FAST-NEXT:    vmovdqa %ymm3, %ymm7
4747 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm3[0,2],ymm8[1,3],ymm3[4,6],ymm8[5,7]
4748 ; AVX2-FAST-NEXT:    vbroadcastss 432(%rdi), %ymm2
4749 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]
4750 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
4751 ; AVX2-FAST-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4752 ; AVX2-FAST-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4753 ; AVX2-FAST-NEXT:    vpblendd $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
4754 ; AVX2-FAST-NEXT:    # ymm0 = ymm0[0],mem[1],ymm0[2,3,4,5,6,7]
4755 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm1 = xmm10[0,1,2],mem[3]
4756 ; AVX2-FAST-NEXT:    vpshufd {{.*#+}} xmm1 = xmm1[3,2,2,3]
4757 ; AVX2-FAST-NEXT:    vpshufd {{.*#+}} ymm0 = ymm0[3,1,1,0,7,5,5,4]
4758 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
4759 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
4760 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
4761 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm10[0,2],ymm12[1,3],ymm10[4,6],ymm12[5,7]
4762 ; AVX2-FAST-NEXT:    vbroadcastss 880(%rdi), %ymm2
4763 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]
4764 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
4765 ; AVX2-FAST-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4766 ; AVX2-FAST-NEXT:    vpbroadcastq {{.*#+}} xmm0 = [4,3,4,3]
4767 ; AVX2-FAST-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4768 ; AVX2-FAST-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
4769 ; AVX2-FAST-NEXT:    # ymm1 = mem[0,1,2,3],ymm1[4,5,6,7]
4770 ; AVX2-FAST-NEXT:    vpermd %ymm1, %ymm0, %ymm1
4771 ; AVX2-FAST-NEXT:    vpbroadcastd 548(%rdi), %xmm2
4772 ; AVX2-FAST-NEXT:    vmovdqa 512(%rdi), %xmm15
4773 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm2 = xmm15[0,1,2],xmm2[3]
4774 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
4775 ; AVX2-FAST-NEXT:    vpbroadcastq {{.*#+}} ymm11 = [0,7,0,7,0,7,0,7]
4776 ; AVX2-FAST-NEXT:    vpermd %ymm9, %ymm11, %ymm2
4777 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm13[6,7]
4778 ; AVX2-FAST-NEXT:    vmovdqa %ymm13, %ymm9
4779 ; AVX2-FAST-NEXT:    vpbroadcastd 660(%rdi), %ymm3
4780 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm3[7]
4781 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]
4782 ; AVX2-FAST-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4783 ; AVX2-FAST-NEXT:    vpbroadcastd 100(%rdi), %xmm1
4784 ; AVX2-FAST-NEXT:    vmovdqa 64(%rdi), %xmm3
4785 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm1 = xmm3[0,1,2],xmm1[3]
4786 ; AVX2-FAST-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
4787 ; AVX2-FAST-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
4788 ; AVX2-FAST-NEXT:    # ymm2 = mem[0,1,2,3],ymm2[4,5,6,7]
4789 ; AVX2-FAST-NEXT:    vpermd %ymm2, %ymm0, %ymm2
4790 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
4791 ; AVX2-FAST-NEXT:    vpermd %ymm14, %ymm11, %ymm2
4792 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm5[6,7]
4793 ; AVX2-FAST-NEXT:    vmovdqa %ymm5, %ymm4
4794 ; AVX2-FAST-NEXT:    vpbroadcastd 212(%rdi), %ymm5
4795 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm5[7]
4796 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]
4797 ; AVX2-FAST-NEXT:    vmovdqu %ymm1, (%rsp) # 32-byte Spill
4798 ; AVX2-FAST-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4799 ; AVX2-FAST-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
4800 ; AVX2-FAST-NEXT:    # ymm1 = mem[0,1,2,3],ymm1[4,5,6,7]
4801 ; AVX2-FAST-NEXT:    vpermd %ymm1, %ymm0, %ymm1
4802 ; AVX2-FAST-NEXT:    vpbroadcastd 324(%rdi), %xmm2
4803 ; AVX2-FAST-NEXT:    vmovdqa 288(%rdi), %xmm6
4804 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm2 = xmm6[0,1,2],xmm2[3]
4805 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
4806 ; AVX2-FAST-NEXT:    vpermd %ymm7, %ymm11, %ymm2
4807 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm8[6,7]
4808 ; AVX2-FAST-NEXT:    vmovdqa %ymm8, %ymm13
4809 ; AVX2-FAST-NEXT:    vpbroadcastd 436(%rdi), %ymm5
4810 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm5[7]
4811 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]
4812 ; AVX2-FAST-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4813 ; AVX2-FAST-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4814 ; AVX2-FAST-NEXT:    vpblendd $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
4815 ; AVX2-FAST-NEXT:    # ymm1 = ymm1[0,1,2,3],mem[4,5,6,7]
4816 ; AVX2-FAST-NEXT:    vpermd %ymm1, %ymm0, %ymm0
4817 ; AVX2-FAST-NEXT:    vpbroadcastd 772(%rdi), %xmm1
4818 ; AVX2-FAST-NEXT:    vmovdqa 736(%rdi), %xmm8
4819 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm1 = xmm8[0,1,2],xmm1[3]
4820 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
4821 ; AVX2-FAST-NEXT:    vpermd %ymm10, %ymm11, %ymm1
4822 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm12[6,7]
4823 ; AVX2-FAST-NEXT:    vmovdqa %ymm12, %ymm2
4824 ; AVX2-FAST-NEXT:    vpbroadcastd 884(%rdi), %ymm5
4825 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm5[7]
4826 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4827 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm4[0],ymm14[1],ymm4[2,3,4],ymm14[5],ymm4[6,7]
4828 ; AVX2-FAST-NEXT:    vmovdqa {{.*#+}} ymm12 = [1,0,3,3,1,0,7,7]
4829 ; AVX2-FAST-NEXT:    vpermd %ymm0, %ymm12, %ymm0
4830 ; AVX2-FAST-NEXT:    vpbroadcastd 216(%rdi), %ymm5
4831 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5,6],ymm5[7]
4832 ; AVX2-FAST-NEXT:    vmovdqa 96(%rdi), %xmm7
4833 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm3 = xmm7[0,1,2],xmm3[3]
4834 ; AVX2-FAST-NEXT:    vpshufd {{.*#+}} xmm3 = xmm3[0,1,3,2]
4835 ; AVX2-FAST-NEXT:    vpshufd $225, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Folded Reload
4836 ; AVX2-FAST-NEXT:    # ymm5 = mem[1,0,2,3,5,4,6,7]
4837 ; AVX2-FAST-NEXT:    vextracti128 $1, %ymm5, %xmm5
4838 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm3 = xmm5[0,1],xmm3[2,3]
4839 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm0[4,5,6,7]
4840 ; AVX2-FAST-NEXT:    vmovdqa 544(%rdi), %xmm0
4841 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm4 = xmm0[0,1,2],xmm15[3]
4842 ; AVX2-FAST-NEXT:    vpshufd {{.*#+}} xmm4 = xmm4[0,1,3,2]
4843 ; AVX2-FAST-NEXT:    vpshufd $225, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Folded Reload
4844 ; AVX2-FAST-NEXT:    # ymm5 = mem[1,0,2,3,5,4,6,7]
4845 ; AVX2-FAST-NEXT:    vextracti128 $1, %ymm5, %xmm5
4846 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm4 = xmm5[0,1],xmm4[2,3]
4847 ; AVX2-FAST-NEXT:    vpblendd $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm5 # 32-byte Folded Reload
4848 ; AVX2-FAST-NEXT:    # ymm5 = ymm9[0],mem[1],ymm9[2,3,4],mem[5],ymm9[6,7]
4849 ; AVX2-FAST-NEXT:    vpermd %ymm5, %ymm12, %ymm5
4850 ; AVX2-FAST-NEXT:    vpbroadcastd 664(%rdi), %ymm9
4851 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5,6],ymm9[7]
4852 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm5 = ymm4[0,1,2,3],ymm5[4,5,6,7]
4853 ; AVX2-FAST-NEXT:    vmovdqa 320(%rdi), %xmm9
4854 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm4 = xmm9[0,1,2],xmm6[3]
4855 ; AVX2-FAST-NEXT:    vpshufd {{.*#+}} xmm4 = xmm4[0,1,3,2]
4856 ; AVX2-FAST-NEXT:    vpshufd $225, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Folded Reload
4857 ; AVX2-FAST-NEXT:    # ymm6 = mem[1,0,2,3,5,4,6,7]
4858 ; AVX2-FAST-NEXT:    vextracti128 $1, %ymm6, %xmm6
4859 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm4 = xmm6[0,1],xmm4[2,3]
4860 ; AVX2-FAST-NEXT:    vpblendd $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm6 # 32-byte Folded Reload
4861 ; AVX2-FAST-NEXT:    # ymm6 = ymm13[0],mem[1],ymm13[2,3,4],mem[5],ymm13[6,7]
4862 ; AVX2-FAST-NEXT:    vpermd %ymm6, %ymm12, %ymm6
4863 ; AVX2-FAST-NEXT:    vpbroadcastd 440(%rdi), %ymm13
4864 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5,6],ymm13[7]
4865 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm6[4,5,6,7]
4866 ; AVX2-FAST-NEXT:    vmovdqa 768(%rdi), %xmm14
4867 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm6 = xmm14[0,1,2],xmm8[3]
4868 ; AVX2-FAST-NEXT:    vpshufd {{.*#+}} xmm6 = xmm6[0,1,3,2]
4869 ; AVX2-FAST-NEXT:    vpshufd $225, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Folded Reload
4870 ; AVX2-FAST-NEXT:    # ymm8 = mem[1,0,2,3,5,4,6,7]
4871 ; AVX2-FAST-NEXT:    vextracti128 $1, %ymm8, %xmm8
4872 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm6 = xmm8[0,1],xmm6[2,3]
4873 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm8 = ymm2[0],ymm10[1],ymm2[2,3,4],ymm10[5],ymm2[6,7]
4874 ; AVX2-FAST-NEXT:    vpermd %ymm8, %ymm12, %ymm8
4875 ; AVX2-FAST-NEXT:    vpbroadcastd 888(%rdi), %ymm10
4876 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5,6],ymm10[7]
4877 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm8[4,5,6,7]
4878 ; AVX2-FAST-NEXT:    vpbroadcastd 584(%rdi), %xmm8
4879 ; AVX2-FAST-NEXT:    vpblendd $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm8, %xmm8 # 16-byte Folded Reload
4880 ; AVX2-FAST-NEXT:    # xmm8 = xmm8[0],mem[1],xmm8[2,3]
4881 ; AVX2-FAST-NEXT:    vinserti128 $1, %xmm8, %ymm0, %ymm8
4882 ; AVX2-FAST-NEXT:    vpermd 640(%rdi), %ymm11, %ymm10
4883 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],ymm10[6,7]
4884 ; AVX2-FAST-NEXT:    vpbroadcastd 528(%rdi), %ymm10
4885 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm0 = xmm10[0,1,2],xmm0[3]
4886 ; AVX2-FAST-NEXT:    vpshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Folded Reload
4887 ; AVX2-FAST-NEXT:    # ymm10 = mem[2,3,2,3,6,7,6,7]
4888 ; AVX2-FAST-NEXT:    vpblendd $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
4889 ; AVX2-FAST-NEXT:    # ymm10 = ymm10[0],mem[1],ymm10[2,3,4],mem[5],ymm10[6,7]
4890 ; AVX2-FAST-NEXT:    vextracti128 $1, %ymm10, %xmm10
4891 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm0 = xmm10[0,1],xmm0[2,3]
4892 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm8 = ymm0[0,1,2,3],ymm8[4,5,6,7]
4893 ; AVX2-FAST-NEXT:    vpbroadcastd 808(%rdi), %xmm0
4894 ; AVX2-FAST-NEXT:    vpblendd $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
4895 ; AVX2-FAST-NEXT:    # xmm0 = xmm0[0],mem[1],xmm0[2,3]
4896 ; AVX2-FAST-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
4897 ; AVX2-FAST-NEXT:    vpermd 864(%rdi), %ymm11, %ymm10
4898 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm10[6,7]
4899 ; AVX2-FAST-NEXT:    vpbroadcastd 752(%rdi), %ymm10
4900 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm10 = xmm10[0,1,2],xmm14[3]
4901 ; AVX2-FAST-NEXT:    vpshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Folded Reload
4902 ; AVX2-FAST-NEXT:    # ymm12 = mem[2,3,2,3,6,7,6,7]
4903 ; AVX2-FAST-NEXT:    vpblendd $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm12 # 32-byte Folded Reload
4904 ; AVX2-FAST-NEXT:    # ymm12 = ymm12[0],mem[1],ymm12[2,3,4],mem[5],ymm12[6,7]
4905 ; AVX2-FAST-NEXT:    vextracti128 $1, %ymm12, %xmm12
4906 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm10 = xmm12[0,1],xmm10[2,3]
4907 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm10 = ymm10[0,1,2,3],ymm0[4,5,6,7]
4908 ; AVX2-FAST-NEXT:    vpbroadcastd 136(%rdi), %xmm0
4909 ; AVX2-FAST-NEXT:    vpblendd $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
4910 ; AVX2-FAST-NEXT:    # xmm0 = xmm0[0],mem[1],xmm0[2,3]
4911 ; AVX2-FAST-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
4912 ; AVX2-FAST-NEXT:    vpermd 192(%rdi), %ymm11, %ymm12
4913 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm12[6,7]
4914 ; AVX2-FAST-NEXT:    vpbroadcastd 80(%rdi), %ymm12
4915 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm7 = xmm12[0,1,2],xmm7[3]
4916 ; AVX2-FAST-NEXT:    vpshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Folded Reload
4917 ; AVX2-FAST-NEXT:    # ymm12 = mem[2,3,2,3,6,7,6,7]
4918 ; AVX2-FAST-NEXT:    vpblendd $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm12 # 32-byte Folded Reload
4919 ; AVX2-FAST-NEXT:    # ymm12 = ymm12[0],mem[1],ymm12[2,3,4],mem[5],ymm12[6,7]
4920 ; AVX2-FAST-NEXT:    vextracti128 $1, %ymm12, %xmm12
4921 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm7 = xmm12[0,1],xmm7[2,3]
4922 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm7[0,1,2,3],ymm0[4,5,6,7]
4923 ; AVX2-FAST-NEXT:    vpbroadcastd 360(%rdi), %xmm7
4924 ; AVX2-FAST-NEXT:    vpblendd $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7, %xmm7 # 16-byte Folded Reload
4925 ; AVX2-FAST-NEXT:    # xmm7 = xmm7[0],mem[1],xmm7[2,3]
4926 ; AVX2-FAST-NEXT:    vpermd 416(%rdi), %ymm11, %ymm11
4927 ; AVX2-FAST-NEXT:    vinserti128 $1, %xmm7, %ymm0, %ymm7
4928 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5],ymm11[6,7]
4929 ; AVX2-FAST-NEXT:    vpbroadcastd 304(%rdi), %ymm11
4930 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm9 = xmm11[0,1,2],xmm9[3]
4931 ; AVX2-FAST-NEXT:    vpshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Folded Reload
4932 ; AVX2-FAST-NEXT:    # ymm11 = mem[2,3,2,3,6,7,6,7]
4933 ; AVX2-FAST-NEXT:    vpblendd $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm11 # 32-byte Folded Reload
4934 ; AVX2-FAST-NEXT:    # ymm11 = ymm11[0],mem[1],ymm11[2,3,4],mem[5],ymm11[6,7]
4935 ; AVX2-FAST-NEXT:    vextracti128 $1, %ymm11, %xmm11
4936 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm9 = xmm11[0,1],xmm9[2,3]
4937 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm7 = ymm9[0,1,2,3],ymm7[4,5,6,7]
4938 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
4939 ; AVX2-FAST-NEXT:    vmovaps %ymm9, 96(%rsi)
4940 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
4941 ; AVX2-FAST-NEXT:    vmovaps %ymm9, 32(%rsi)
4942 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
4943 ; AVX2-FAST-NEXT:    vmovaps %ymm9, 64(%rsi)
4944 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
4945 ; AVX2-FAST-NEXT:    vmovaps %ymm9, (%rsi)
4946 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
4947 ; AVX2-FAST-NEXT:    vmovaps %ymm2, 96(%rdx)
4948 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
4949 ; AVX2-FAST-NEXT:    vmovaps %ymm2, 32(%rdx)
4950 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
4951 ; AVX2-FAST-NEXT:    vmovaps %ymm2, 64(%rdx)
4952 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
4953 ; AVX2-FAST-NEXT:    vmovaps %ymm9, (%rdx)
4954 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
4955 ; AVX2-FAST-NEXT:    vmovaps %ymm2, 32(%rcx)
4956 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
4957 ; AVX2-FAST-NEXT:    vmovaps %ymm2, 96(%rcx)
4958 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
4959 ; AVX2-FAST-NEXT:    vmovaps %ymm2, 64(%rcx)
4960 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
4961 ; AVX2-FAST-NEXT:    vmovaps %ymm2, (%rcx)
4962 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
4963 ; AVX2-FAST-NEXT:    vmovaps %ymm2, 96(%r8)
4964 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
4965 ; AVX2-FAST-NEXT:    vmovaps %ymm2, 32(%r8)
4966 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
4967 ; AVX2-FAST-NEXT:    vmovaps %ymm2, 64(%r8)
4968 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
4969 ; AVX2-FAST-NEXT:    vmovaps %ymm2, (%r8)
4970 ; AVX2-FAST-NEXT:    vmovdqa %ymm1, 96(%r9)
4971 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4972 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 32(%r9)
4973 ; AVX2-FAST-NEXT:    vmovups (%rsp), %ymm1 # 32-byte Reload
4974 ; AVX2-FAST-NEXT:    vmovaps %ymm1, (%r9)
4975 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4976 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 64(%r9)
4977 ; AVX2-FAST-NEXT:    movq {{[0-9]+}}(%rsp), %rax
4978 ; AVX2-FAST-NEXT:    vmovdqa %ymm6, 96(%rax)
4979 ; AVX2-FAST-NEXT:    vmovdqa %ymm4, 32(%rax)
4980 ; AVX2-FAST-NEXT:    vmovdqa %ymm5, 64(%rax)
4981 ; AVX2-FAST-NEXT:    vmovdqa %ymm3, (%rax)
4982 ; AVX2-FAST-NEXT:    movq {{[0-9]+}}(%rsp), %rax
4983 ; AVX2-FAST-NEXT:    vmovdqa %ymm7, 32(%rax)
4984 ; AVX2-FAST-NEXT:    vmovdqa %ymm0, (%rax)
4985 ; AVX2-FAST-NEXT:    vmovdqa %ymm10, 96(%rax)
4986 ; AVX2-FAST-NEXT:    vmovdqa %ymm8, 64(%rax)
4987 ; AVX2-FAST-NEXT:    addq $1192, %rsp # imm = 0x4A8
4988 ; AVX2-FAST-NEXT:    vzeroupper
4989 ; AVX2-FAST-NEXT:    retq
4991 ; AVX2-FAST-PERLANE-LABEL: load_i32_stride7_vf32:
4992 ; AVX2-FAST-PERLANE:       # %bb.0:
4993 ; AVX2-FAST-PERLANE-NEXT:    subq $1224, %rsp # imm = 0x4C8
4994 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 320(%rdi), %ymm9
4995 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 256(%rdi), %ymm4
4996 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 224(%rdi), %ymm5
4997 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 544(%rdi), %ymm10
4998 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 480(%rdi), %ymm7
4999 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 448(%rdi), %ymm8
5000 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa (%rdi), %ymm3
5001 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 32(%rdi), %ymm6
5002 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 96(%rdi), %ymm1
5003 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5004 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastq 80(%rdi), %ymm0
5005 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
5006 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa {{.*#+}} xmm0 = [0,7,6,u]
5007 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3,4,5],ymm6[6],ymm3[7]
5008 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %ymm6, %ymm12
5009 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5010 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %ymm3, %ymm14
5011 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5012 ; AVX2-FAST-PERLANE-NEXT:    vpermd %ymm2, %ymm0, %ymm2
5013 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7]
5014 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 128(%rdi), %xmm2
5015 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 160(%rdi), %xmm3
5016 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5017 ; AVX2-FAST-PERLANE-NEXT:    vpunpckhqdq {{.*#+}} xmm2 = xmm2[1],xmm3[1]
5018 ; AVX2-FAST-PERLANE-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
5019 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 196(%rdi), %ymm3
5020 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm3[7]
5021 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
5022 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5023 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm8[0,1,2,3,4,5],ymm7[6],ymm8[7]
5024 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5025 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5026 ; AVX2-FAST-PERLANE-NEXT:    vpermd %ymm1, %ymm0, %ymm1
5027 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastq 528(%rdi), %ymm2
5028 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm10[4,5,6,7]
5029 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5030 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
5031 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 576(%rdi), %xmm2
5032 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 608(%rdi), %xmm3
5033 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5034 ; AVX2-FAST-PERLANE-NEXT:    vpunpckhqdq {{.*#+}} xmm2 = xmm2[1],xmm3[1]
5035 ; AVX2-FAST-PERLANE-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
5036 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 644(%rdi), %ymm3
5037 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm3[7]
5038 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
5039 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5040 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm5[0,1,2,3,4,5],ymm4[6],ymm5[7]
5041 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5042 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5043 ; AVX2-FAST-PERLANE-NEXT:    vpermd %ymm1, %ymm0, %ymm1
5044 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastq 304(%rdi), %ymm2
5045 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm9[4,5,6,7]
5046 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %ymm9, %ymm13
5047 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5048 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
5049 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 352(%rdi), %xmm2
5050 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 384(%rdi), %xmm3
5051 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5052 ; AVX2-FAST-PERLANE-NEXT:    vpunpckhqdq {{.*#+}} xmm2 = xmm2[1],xmm3[1]
5053 ; AVX2-FAST-PERLANE-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
5054 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 420(%rdi), %ymm3
5055 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm3[7]
5056 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
5057 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5058 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 704(%rdi), %ymm2
5059 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 672(%rdi), %ymm3
5060 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm3[0,1,2,3,4,5],ymm2[6],ymm3[7]
5061 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %ymm3, %ymm6
5062 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5063 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %ymm2, %ymm3
5064 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5065 ; AVX2-FAST-PERLANE-NEXT:    vpermd %ymm1, %ymm0, %ymm0
5066 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 768(%rdi), %ymm11
5067 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastq 752(%rdi), %ymm1
5068 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm11[4,5,6,7]
5069 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
5070 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 800(%rdi), %xmm1
5071 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 832(%rdi), %xmm2
5072 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5073 ; AVX2-FAST-PERLANE-NEXT:    vpunpckhqdq {{.*#+}} xmm1 = xmm1[1],xmm2[1]
5074 ; AVX2-FAST-PERLANE-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm1
5075 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 868(%rdi), %ymm2
5076 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]
5077 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
5078 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5079 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} xmm0 = mem[2,2,2,2]
5080 ; AVX2-FAST-PERLANE-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
5081 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 608(%rdi), %ymm2
5082 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5083 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 576(%rdi), %ymm1
5084 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5085 ; AVX2-FAST-PERLANE-NEXT:    vpalignr {{.*#+}} ymm1 = ymm2[12,13,14,15],ymm1[0,1,2,3,4,5,6,7,8,9,10,11],ymm2[28,29,30,31],ymm1[16,17,18,19,20,21,22,23,24,25,26,27]
5086 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,2,0]
5087 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5,6],ymm0[7]
5088 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 512(%rdi), %ymm2
5089 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm10[0,1],ymm2[2,3],ymm10[4,5],ymm2[6,7]
5090 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %ymm2, %ymm9
5091 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5092 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[1,2,2,3,5,6,6,7]
5093 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,2,2,2]
5094 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm2 = ymm7[0],ymm8[1],ymm7[2,3,4],ymm8[5],ymm7[6,7]
5095 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5096 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm2 = ymm2[1,0,3,3,5,4,7,7]
5097 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,3,2,3]
5098 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7]
5099 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4],ymm0[5,6,7]
5100 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5101 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} xmm0 = mem[2,2,2,2]
5102 ; AVX2-FAST-PERLANE-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
5103 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 384(%rdi), %ymm2
5104 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5105 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 352(%rdi), %ymm1
5106 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5107 ; AVX2-FAST-PERLANE-NEXT:    vpalignr {{.*#+}} ymm1 = ymm2[12,13,14,15],ymm1[0,1,2,3,4,5,6,7,8,9,10,11],ymm2[28,29,30,31],ymm1[16,17,18,19,20,21,22,23,24,25,26,27]
5108 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,2,0]
5109 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5,6],ymm0[7]
5110 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 288(%rdi), %ymm1
5111 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5112 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm13[0,1],ymm1[2,3],ymm13[4,5],ymm1[6,7]
5113 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[1,2,2,3,5,6,6,7]
5114 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,2,2,2]
5115 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm2 = ymm4[0],ymm5[1],ymm4[2,3,4],ymm5[5],ymm4[6,7]
5116 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5117 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm2 = ymm2[1,0,3,3,5,4,7,7]
5118 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,3,2,3]
5119 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7]
5120 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4],ymm0[5,6,7]
5121 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5122 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} xmm0 = mem[2,2,2,2]
5123 ; AVX2-FAST-PERLANE-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
5124 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 832(%rdi), %ymm2
5125 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 800(%rdi), %ymm4
5126 ; AVX2-FAST-PERLANE-NEXT:    vpalignr {{.*#+}} ymm1 = ymm2[12,13,14,15],ymm4[0,1,2,3,4,5,6,7,8,9,10,11],ymm2[28,29,30,31],ymm4[16,17,18,19,20,21,22,23,24,25,26,27]
5127 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %ymm4, %ymm13
5128 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %ymm2, %ymm15
5129 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5130 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,2,0]
5131 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5,6],ymm0[7]
5132 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 736(%rdi), %ymm2
5133 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5134 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm11[0,1],ymm2[2,3],ymm11[4,5],ymm2[6,7]
5135 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %ymm2, %ymm10
5136 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm2, (%rsp) # 32-byte Spill
5137 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[1,2,2,3,5,6,6,7]
5138 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,2,2,2]
5139 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0],ymm6[1],ymm3[2,3,4],ymm6[5],ymm3[6,7]
5140 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5141 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm2 = ymm2[1,0,3,3,5,4,7,7]
5142 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,3,2,3]
5143 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7]
5144 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4],ymm0[5,6,7]
5145 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5146 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} xmm0 = mem[2,2,2,2]
5147 ; AVX2-FAST-PERLANE-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
5148 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 160(%rdi), %ymm2
5149 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 128(%rdi), %ymm3
5150 ; AVX2-FAST-PERLANE-NEXT:    vpalignr {{.*#+}} ymm1 = ymm2[12,13,14,15],ymm3[0,1,2,3,4,5,6,7,8,9,10,11],ymm2[28,29,30,31],ymm3[16,17,18,19,20,21,22,23,24,25,26,27]
5151 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %ymm3, %ymm6
5152 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5153 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %ymm2, %ymm5
5154 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5155 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,2,0]
5156 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5,6],ymm0[7]
5157 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 64(%rdi), %ymm1
5158 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
5159 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm2 = ymm4[0,1],ymm1[2,3],ymm4[4,5],ymm1[6,7]
5160 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm2 = ymm2[1,2,2,3,5,6,6,7]
5161 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[2,2,2,2]
5162 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm3 = ymm12[0],ymm14[1],ymm12[2,3,4],ymm14[5],ymm12[6,7]
5163 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5164 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm3 = ymm3[1,0,3,3,5,4,7,7]
5165 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[0,3,2,3]
5166 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2],ymm2[3,4,5,6,7]
5167 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3,4],ymm0[5,6,7]
5168 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5169 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 80(%rdi), %xmm0
5170 ; AVX2-FAST-PERLANE-NEXT:    vpalignr {{.*#+}} ymm2 = ymm4[8,9,10,11,12,13,14,15],ymm1[0,1,2,3,4,5,6,7],ymm4[24,25,26,27,28,29,30,31],ymm1[16,17,18,19,20,21,22,23]
5171 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm2[0,1,2],ymm0[3],ymm2[4,5,6,7]
5172 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 8(%rdi), %xmm2
5173 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 32(%rdi), %xmm3
5174 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0],xmm3[1],xmm2[2,3]
5175 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,3,4,5,6,7]
5176 ; AVX2-FAST-PERLANE-NEXT:    vpunpcklqdq {{.*#+}} ymm2 = ymm6[0],ymm5[0],ymm6[2],ymm5[2]
5177 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 204(%rdi), %ymm4
5178 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm4[7]
5179 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm2[5,6,7]
5180 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5181 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 528(%rdi), %xmm0
5182 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
5183 ; AVX2-FAST-PERLANE-NEXT:    vpalignr {{.*#+}} ymm2 = ymm8[8,9,10,11,12,13,14,15],ymm9[0,1,2,3,4,5,6,7],ymm8[24,25,26,27,28,29,30,31],ymm9[16,17,18,19,20,21,22,23]
5184 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm2[0,1,2],ymm0[3],ymm2[4,5,6,7]
5185 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 456(%rdi), %xmm4
5186 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 480(%rdi), %xmm2
5187 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm4 = xmm4[0],xmm2[1],xmm4[2,3]
5188 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm4[0,1],ymm0[2,3,4,5,6,7]
5189 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
5190 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
5191 ; AVX2-FAST-PERLANE-NEXT:    vpunpcklqdq {{.*#+}} ymm4 = ymm7[0],ymm9[0],ymm7[2],ymm9[2]
5192 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 652(%rdi), %ymm12
5193 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5,6],ymm12[7]
5194 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm4[5,6,7]
5195 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5196 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 752(%rdi), %xmm0
5197 ; AVX2-FAST-PERLANE-NEXT:    vpalignr {{.*#+}} ymm4 = ymm11[8,9,10,11,12,13,14,15],ymm10[0,1,2,3,4,5,6,7],ymm11[24,25,26,27,28,29,30,31],ymm10[16,17,18,19,20,21,22,23]
5198 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm4[0,1,2],ymm0[3],ymm4[4,5,6,7]
5199 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 680(%rdi), %xmm12
5200 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 704(%rdi), %xmm4
5201 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5202 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm12 = xmm12[0],xmm4[1],xmm12[2,3]
5203 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm12[0,1],ymm0[2,3,4,5,6,7]
5204 ; AVX2-FAST-PERLANE-NEXT:    vpunpcklqdq {{.*#+}} ymm12 = ymm13[0],ymm15[0],ymm13[2],ymm15[2]
5205 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %ymm13, %ymm10
5206 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5207 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 876(%rdi), %ymm15
5208 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm12 = ymm12[0,1,2,3,4,5,6],ymm15[7]
5209 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm12[5,6,7]
5210 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5211 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 304(%rdi), %xmm0
5212 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
5213 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
5214 ; AVX2-FAST-PERLANE-NEXT:    vpalignr {{.*#+}} ymm12 = ymm5[8,9,10,11,12,13,14,15],ymm6[0,1,2,3,4,5,6,7],ymm5[24,25,26,27,28,29,30,31],ymm6[16,17,18,19,20,21,22,23]
5215 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm12 = ymm12[0,1,2],ymm0[3],ymm12[4,5,6,7]
5216 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 232(%rdi), %xmm15
5217 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 256(%rdi), %xmm0
5218 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm15 = xmm15[0],xmm0[1],xmm15[2,3]
5219 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm12 = ymm15[0,1],ymm12[2,3,4,5,6,7]
5220 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
5221 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
5222 ; AVX2-FAST-PERLANE-NEXT:    vpunpcklqdq {{.*#+}} ymm15 = ymm13[0],ymm4[0],ymm13[2],ymm4[2]
5223 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 428(%rdi), %ymm14
5224 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm14 = ymm15[0,1,2,3,4,5,6],ymm14[7]
5225 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm12 = ymm12[0,1,2,3,4],ymm14[5,6,7]
5226 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5227 ; AVX2-FAST-PERLANE-NEXT:    vpblendd $253, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
5228 ; AVX2-FAST-PERLANE-NEXT:    # ymm1 = mem[0],ymm1[1],mem[2,3,4,5,6,7]
5229 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm3 = xmm3[0,1,2],mem[3]
5230 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} xmm3 = xmm3[3,2,2,3]
5231 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[3,1,1,0,7,5,5,4]
5232 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm3[0,1],ymm1[2,3,4,5,6,7]
5233 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload
5234 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
5235 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm3 = ymm14[0,2],ymm15[1,3],ymm14[4,6],ymm15[5,7]
5236 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 208(%rdi), %ymm11
5237 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,6],ymm11[7]
5238 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm3[5,6,7]
5239 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5240 ; AVX2-FAST-PERLANE-NEXT:    vpblendd $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm1 # 32-byte Folded Reload
5241 ; AVX2-FAST-PERLANE-NEXT:    # ymm1 = ymm8[0],mem[1],ymm8[2,3,4,5,6,7]
5242 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0,1,2],mem[3]
5243 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} xmm2 = xmm2[3,2,2,3]
5244 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[3,1,1,0,7,5,5,4]
5245 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
5246 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %ymm9, %ymm12
5247 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm2 = ymm7[0,2],ymm9[1,3],ymm7[4,6],ymm9[5,7]
5248 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 656(%rdi), %ymm3
5249 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm3[7]
5250 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
5251 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5252 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm5[0],ymm6[1],ymm5[2,3,4,5,6,7]
5253 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm0 = xmm0[0,1,2],mem[3]
5254 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} xmm0 = xmm0[3,2,2,3]
5255 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[3,1,1,0,7,5,5,4]
5256 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3,4,5,6,7]
5257 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm13[0,2],ymm4[1,3],ymm13[4,6],ymm4[5,7]
5258 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %ymm4, %ymm8
5259 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 432(%rdi), %ymm2
5260 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]
5261 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
5262 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5263 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5264 ; AVX2-FAST-PERLANE-NEXT:    vblendps $2, (%rsp), %ymm0, %ymm0 # 32-byte Folded Reload
5265 ; AVX2-FAST-PERLANE-NEXT:    # ymm0 = ymm0[0],mem[1],ymm0[2,3,4,5,6,7]
5266 ; AVX2-FAST-PERLANE-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
5267 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1,2],mem[3]
5268 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[3,2,2,3]
5269 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[3,1,1,0,7,5,5,4]
5270 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
5271 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
5272 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm10[0,2],ymm9[1,3],ymm10[4,6],ymm9[5,7]
5273 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 880(%rdi), %ymm2
5274 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]
5275 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
5276 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5277 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastq {{.*#+}} xmm1 = [4,3,4,3]
5278 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5279 ; AVX2-FAST-PERLANE-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
5280 ; AVX2-FAST-PERLANE-NEXT:    # ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
5281 ; AVX2-FAST-PERLANE-NEXT:    vpermd %ymm0, %ymm1, %ymm0
5282 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 548(%rdi), %xmm2
5283 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 512(%rdi), %xmm6
5284 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm2 = xmm6[0,1,2],xmm2[3]
5285 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm0 = xmm0[0,1],xmm2[2,3]
5286 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastq {{.*#+}} ymm11 = [0,7,0,7,0,7,0,7]
5287 ; AVX2-FAST-PERLANE-NEXT:    vpermd %ymm7, %ymm11, %ymm2
5288 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm12[6,7]
5289 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 660(%rdi), %ymm3
5290 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm3[7]
5291 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
5292 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm0, (%rsp) # 32-byte Spill
5293 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 100(%rdi), %xmm2
5294 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 64(%rdi), %xmm0
5295 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm2 = xmm0[0,1,2],xmm2[3]
5296 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
5297 ; AVX2-FAST-PERLANE-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
5298 ; AVX2-FAST-PERLANE-NEXT:    # ymm3 = mem[0,1,2,3],ymm3[4,5,6,7]
5299 ; AVX2-FAST-PERLANE-NEXT:    vpermd %ymm3, %ymm1, %ymm3
5300 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm2 = xmm3[0,1],xmm2[2,3]
5301 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm14, %ymm10
5302 ; AVX2-FAST-PERLANE-NEXT:    vpermd %ymm14, %ymm11, %ymm3
5303 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm15, %ymm7
5304 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm15[6,7]
5305 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 212(%rdi), %ymm4
5306 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,6],ymm4[7]
5307 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
5308 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5309 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
5310 ; AVX2-FAST-PERLANE-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
5311 ; AVX2-FAST-PERLANE-NEXT:    # ymm2 = mem[0,1,2,3],ymm2[4,5,6,7]
5312 ; AVX2-FAST-PERLANE-NEXT:    vpermd %ymm2, %ymm1, %ymm3
5313 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 324(%rdi), %xmm4
5314 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 288(%rdi), %xmm2
5315 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm4 = xmm2[0,1,2],xmm4[3]
5316 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm3 = xmm3[0,1],xmm4[2,3]
5317 ; AVX2-FAST-PERLANE-NEXT:    vpermd %ymm13, %ymm11, %ymm4
5318 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %ymm13, %ymm14
5319 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],ymm8[6,7]
5320 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %ymm8, %ymm13
5321 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 436(%rdi), %ymm8
5322 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5,6],ymm8[7]
5323 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm4[4,5,6,7]
5324 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5325 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
5326 ; AVX2-FAST-PERLANE-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
5327 ; AVX2-FAST-PERLANE-NEXT:    # ymm3 = mem[0,1,2,3],ymm3[4,5,6,7]
5328 ; AVX2-FAST-PERLANE-NEXT:    vpermd %ymm3, %ymm1, %ymm1
5329 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 772(%rdi), %xmm4
5330 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 736(%rdi), %xmm3
5331 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm4 = xmm3[0,1,2],xmm4[3]
5332 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm1 = xmm1[0,1],xmm4[2,3]
5333 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload
5334 ; AVX2-FAST-PERLANE-NEXT:    vpermd %ymm15, %ymm11, %ymm4
5335 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],ymm9[6,7]
5336 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 884(%rdi), %ymm8
5337 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5,6],ymm8[7]
5338 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
5339 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5340 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm7[0],ymm10[1],ymm7[2,3,4],ymm10[5],ymm7[6,7]
5341 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[1,0,3,3,5,4,7,7]
5342 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,1,0,3]
5343 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 216(%rdi), %ymm4
5344 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm4[7]
5345 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 96(%rdi), %xmm10
5346 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm0 = xmm10[0,1,2],xmm0[3]
5347 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} xmm0 = xmm0[0,1,3,2]
5348 ; AVX2-FAST-PERLANE-NEXT:    vpshufd $225, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Folded Reload
5349 ; AVX2-FAST-PERLANE-NEXT:    # ymm4 = mem[1,0,2,3,5,4,6,7]
5350 ; AVX2-FAST-PERLANE-NEXT:    vextracti128 $1, %ymm4, %xmm4
5351 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm0 = xmm4[0,1],xmm0[2,3]
5352 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
5353 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 544(%rdi), %xmm4
5354 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm1 = xmm4[0,1,2],xmm6[3]
5355 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} xmm1 = xmm1[0,1,3,2]
5356 ; AVX2-FAST-PERLANE-NEXT:    vpshufd $225, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Folded Reload
5357 ; AVX2-FAST-PERLANE-NEXT:    # ymm5 = mem[1,0,2,3,5,4,6,7]
5358 ; AVX2-FAST-PERLANE-NEXT:    vextracti128 $1, %ymm5, %xmm5
5359 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm1 = xmm5[0,1],xmm1[2,3]
5360 ; AVX2-FAST-PERLANE-NEXT:    vpblendd $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm5 # 32-byte Folded Reload
5361 ; AVX2-FAST-PERLANE-NEXT:    # ymm5 = ymm12[0],mem[1],ymm12[2,3,4],mem[5],ymm12[6,7]
5362 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm5 = ymm5[1,0,3,3,5,4,7,7]
5363 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm5 = ymm5[0,1,0,3]
5364 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 664(%rdi), %ymm7
5365 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5,6],ymm7[7]
5366 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm5[4,5,6,7]
5367 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 320(%rdi), %xmm12
5368 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm2 = xmm12[0,1,2],xmm2[3]
5369 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} xmm2 = xmm2[0,1,3,2]
5370 ; AVX2-FAST-PERLANE-NEXT:    vpshufd $225, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Folded Reload
5371 ; AVX2-FAST-PERLANE-NEXT:    # ymm5 = mem[1,0,2,3,5,4,6,7]
5372 ; AVX2-FAST-PERLANE-NEXT:    vextracti128 $1, %ymm5, %xmm5
5373 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm2 = xmm5[0,1],xmm2[2,3]
5374 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm5 = ymm13[0],ymm14[1],ymm13[2,3,4],ymm14[5],ymm13[6,7]
5375 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm5 = ymm5[1,0,3,3,5,4,7,7]
5376 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm5 = ymm5[0,1,0,3]
5377 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 440(%rdi), %ymm7
5378 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5,6],ymm7[7]
5379 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm5 = ymm2[0,1,2,3],ymm5[4,5,6,7]
5380 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 768(%rdi), %xmm2
5381 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm3 = xmm2[0,1,2],xmm3[3]
5382 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} xmm3 = xmm3[0,1,3,2]
5383 ; AVX2-FAST-PERLANE-NEXT:    vpshufd $225, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Folded Reload
5384 ; AVX2-FAST-PERLANE-NEXT:    # ymm7 = mem[1,0,2,3,5,4,6,7]
5385 ; AVX2-FAST-PERLANE-NEXT:    vextracti128 $1, %ymm7, %xmm7
5386 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm3 = xmm7[0,1],xmm3[2,3]
5387 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm7 = ymm9[0],ymm15[1],ymm9[2,3,4],ymm15[5],ymm9[6,7]
5388 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm7 = ymm7[1,0,3,3,5,4,7,7]
5389 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm7 = ymm7[0,1,0,3]
5390 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 888(%rdi), %ymm8
5391 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5,6],ymm8[7]
5392 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm7 = ymm3[0,1,2,3],ymm7[4,5,6,7]
5393 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 584(%rdi), %xmm3
5394 ; AVX2-FAST-PERLANE-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm3 # 16-byte Folded Reload
5395 ; AVX2-FAST-PERLANE-NEXT:    # xmm3 = xmm3[0],mem[1],xmm3[2,3]
5396 ; AVX2-FAST-PERLANE-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
5397 ; AVX2-FAST-PERLANE-NEXT:    vpermd 640(%rdi), %ymm11, %ymm8
5398 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm8[6,7]
5399 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 528(%rdi), %ymm8
5400 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm4 = xmm8[0,1,2],xmm4[3]
5401 ; AVX2-FAST-PERLANE-NEXT:    vpshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Folded Reload
5402 ; AVX2-FAST-PERLANE-NEXT:    # ymm8 = mem[2,3,2,3,6,7,6,7]
5403 ; AVX2-FAST-PERLANE-NEXT:    vpblendd $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
5404 ; AVX2-FAST-PERLANE-NEXT:    # ymm8 = ymm8[0],mem[1],ymm8[2,3,4],mem[5],ymm8[6,7]
5405 ; AVX2-FAST-PERLANE-NEXT:    vextracti128 $1, %ymm8, %xmm8
5406 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm4 = xmm8[0,1],xmm4[2,3]
5407 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm8 = ymm4[0,1,2,3],ymm3[4,5,6,7]
5408 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 808(%rdi), %xmm3
5409 ; AVX2-FAST-PERLANE-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm3 # 16-byte Folded Reload
5410 ; AVX2-FAST-PERLANE-NEXT:    # xmm3 = xmm3[0],mem[1],xmm3[2,3]
5411 ; AVX2-FAST-PERLANE-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
5412 ; AVX2-FAST-PERLANE-NEXT:    vpermd 864(%rdi), %ymm11, %ymm4
5413 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm4[6,7]
5414 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 752(%rdi), %ymm4
5415 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm2 = xmm4[0,1,2],xmm2[3]
5416 ; AVX2-FAST-PERLANE-NEXT:    vpshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Folded Reload
5417 ; AVX2-FAST-PERLANE-NEXT:    # ymm4 = mem[2,3,2,3,6,7,6,7]
5418 ; AVX2-FAST-PERLANE-NEXT:    vpblendd $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload
5419 ; AVX2-FAST-PERLANE-NEXT:    # ymm4 = ymm4[0],mem[1],ymm4[2,3,4],mem[5],ymm4[6,7]
5420 ; AVX2-FAST-PERLANE-NEXT:    vextracti128 $1, %ymm4, %xmm4
5421 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm2 = xmm4[0,1],xmm2[2,3]
5422 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
5423 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 136(%rdi), %xmm3
5424 ; AVX2-FAST-PERLANE-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm3 # 16-byte Folded Reload
5425 ; AVX2-FAST-PERLANE-NEXT:    # xmm3 = xmm3[0],mem[1],xmm3[2,3]
5426 ; AVX2-FAST-PERLANE-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
5427 ; AVX2-FAST-PERLANE-NEXT:    vpermd 192(%rdi), %ymm11, %ymm4
5428 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm4[6,7]
5429 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 80(%rdi), %ymm4
5430 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm4 = xmm4[0,1,2],xmm10[3]
5431 ; AVX2-FAST-PERLANE-NEXT:    vpshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Folded Reload
5432 ; AVX2-FAST-PERLANE-NEXT:    # ymm6 = mem[2,3,2,3,6,7,6,7]
5433 ; AVX2-FAST-PERLANE-NEXT:    vpblendd $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm6 # 32-byte Folded Reload
5434 ; AVX2-FAST-PERLANE-NEXT:    # ymm6 = ymm6[0],mem[1],ymm6[2,3,4],mem[5],ymm6[6,7]
5435 ; AVX2-FAST-PERLANE-NEXT:    vextracti128 $1, %ymm6, %xmm6
5436 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm4 = xmm6[0,1],xmm4[2,3]
5437 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
5438 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 360(%rdi), %xmm4
5439 ; AVX2-FAST-PERLANE-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload
5440 ; AVX2-FAST-PERLANE-NEXT:    # xmm4 = xmm4[0],mem[1],xmm4[2,3]
5441 ; AVX2-FAST-PERLANE-NEXT:    vpermd 416(%rdi), %ymm11, %ymm6
5442 ; AVX2-FAST-PERLANE-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
5443 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],ymm6[6,7]
5444 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 304(%rdi), %ymm6
5445 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm6 = xmm6[0,1,2],xmm12[3]
5446 ; AVX2-FAST-PERLANE-NEXT:    vpshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Folded Reload
5447 ; AVX2-FAST-PERLANE-NEXT:    # ymm9 = mem[2,3,2,3,6,7,6,7]
5448 ; AVX2-FAST-PERLANE-NEXT:    vpblendd $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm9 # 32-byte Folded Reload
5449 ; AVX2-FAST-PERLANE-NEXT:    # ymm9 = ymm9[0],mem[1],ymm9[2,3,4],mem[5],ymm9[6,7]
5450 ; AVX2-FAST-PERLANE-NEXT:    vextracti128 $1, %ymm9, %xmm9
5451 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm6 = xmm9[0,1],xmm6[2,3]
5452 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm4 = ymm6[0,1,2,3],ymm4[4,5,6,7]
5453 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
5454 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 96(%rsi)
5455 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
5456 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 32(%rsi)
5457 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
5458 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 64(%rsi)
5459 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
5460 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, (%rsi)
5461 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
5462 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 96(%rdx)
5463 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
5464 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 32(%rdx)
5465 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
5466 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 64(%rdx)
5467 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
5468 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, (%rdx)
5469 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
5470 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 32(%rcx)
5471 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
5472 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 96(%rcx)
5473 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
5474 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 64(%rcx)
5475 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
5476 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, (%rcx)
5477 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
5478 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 96(%r8)
5479 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
5480 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 32(%r8)
5481 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
5482 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 64(%r8)
5483 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
5484 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, (%r8)
5485 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
5486 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 96(%r9)
5487 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
5488 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 32(%r9)
5489 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
5490 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, (%r9)
5491 ; AVX2-FAST-PERLANE-NEXT:    vmovups (%rsp), %ymm6 # 32-byte Reload
5492 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 64(%r9)
5493 ; AVX2-FAST-PERLANE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
5494 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %ymm7, 96(%rax)
5495 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %ymm5, 32(%rax)
5496 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %ymm1, 64(%rax)
5497 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, (%rax)
5498 ; AVX2-FAST-PERLANE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
5499 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm4, 32(%rax)
5500 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm3, (%rax)
5501 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm2, 96(%rax)
5502 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm8, 64(%rax)
5503 ; AVX2-FAST-PERLANE-NEXT:    addq $1224, %rsp # imm = 0x4C8
5504 ; AVX2-FAST-PERLANE-NEXT:    vzeroupper
5505 ; AVX2-FAST-PERLANE-NEXT:    retq
5507 ; AVX512F-LABEL: load_i32_stride7_vf32:
5508 ; AVX512F:       # %bb.0:
5509 ; AVX512F-NEXT:    movq {{[0-9]+}}(%rsp), %rax
5510 ; AVX512F-NEXT:    movq {{[0-9]+}}(%rsp), %r10
5511 ; AVX512F-NEXT:    vmovdqa64 512(%rdi), %zmm1
5512 ; AVX512F-NEXT:    vmovdqa64 448(%rdi), %zmm0
5513 ; AVX512F-NEXT:    vmovdqa64 576(%rdi), %zmm4
5514 ; AVX512F-NEXT:    vmovdqa64 640(%rdi), %zmm2
5515 ; AVX512F-NEXT:    vmovdqa64 832(%rdi), %zmm5
5516 ; AVX512F-NEXT:    vmovdqa64 768(%rdi), %zmm6
5517 ; AVX512F-NEXT:    vmovdqa64 704(%rdi), %zmm3
5518 ; AVX512F-NEXT:    vmovdqa64 384(%rdi), %zmm13
5519 ; AVX512F-NEXT:    vmovdqa64 320(%rdi), %zmm15
5520 ; AVX512F-NEXT:    vmovdqa64 256(%rdi), %zmm9
5521 ; AVX512F-NEXT:    vmovdqa64 (%rdi), %zmm10
5522 ; AVX512F-NEXT:    vmovdqa64 64(%rdi), %zmm11
5523 ; AVX512F-NEXT:    vmovdqa64 128(%rdi), %zmm14
5524 ; AVX512F-NEXT:    vmovdqa64 192(%rdi), %zmm12
5525 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm16 = [8,15,0,0,0,19,26,1,8,15,0,0,0,19,26,1]
5526 ; AVX512F-NEXT:    # zmm16 = mem[0,1,2,3,0,1,2,3]
5527 ; AVX512F-NEXT:    vmovdqa64 %zmm12, %zmm17
5528 ; AVX512F-NEXT:    vpermt2d %zmm14, %zmm16, %zmm17
5529 ; AVX512F-NEXT:    vmovdqa {{.*#+}} ymm7 = [0,7,14,21,28,u,u,u]
5530 ; AVX512F-NEXT:    vmovdqa64 %zmm10, %zmm8
5531 ; AVX512F-NEXT:    vpermt2d %zmm11, %zmm7, %zmm8
5532 ; AVX512F-NEXT:    movw $992, %di # imm = 0x3E0
5533 ; AVX512F-NEXT:    kmovw %edi, %k1
5534 ; AVX512F-NEXT:    vmovdqa32 %zmm17, %zmm8 {%k1}
5535 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm17 = [20,27,6,13,20,27,6,13,20,27,6,13,20,27,6,13]
5536 ; AVX512F-NEXT:    # zmm17 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5537 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm18
5538 ; AVX512F-NEXT:    vpermt2d %zmm15, %zmm17, %zmm18
5539 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm19 = [0,0,10,11,12,13,18,25,0,0,10,11,12,13,18,25]
5540 ; AVX512F-NEXT:    # zmm19 = mem[0,1,2,3,0,1,2,3]
5541 ; AVX512F-NEXT:    vpermt2d %zmm13, %zmm19, %zmm18
5542 ; AVX512F-NEXT:    movb $-32, %dil
5543 ; AVX512F-NEXT:    kmovw %edi, %k2
5544 ; AVX512F-NEXT:    vmovdqa64 %zmm18, %zmm8 {%k2}
5545 ; AVX512F-NEXT:    vpermi2d %zmm6, %zmm3, %zmm17
5546 ; AVX512F-NEXT:    vpermt2d %zmm5, %zmm19, %zmm17
5547 ; AVX512F-NEXT:    vpermi2d %zmm4, %zmm2, %zmm16
5548 ; AVX512F-NEXT:    vpermi2d %zmm1, %zmm0, %zmm7
5549 ; AVX512F-NEXT:    vmovdqa32 %zmm16, %zmm7 {%k1}
5550 ; AVX512F-NEXT:    vmovdqa64 %zmm17, %zmm7 {%k2}
5551 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm18 = [25,4,11,18,25,4,11,18,25,4,11,18,25,4,11,18]
5552 ; AVX512F-NEXT:    # zmm18 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5553 ; AVX512F-NEXT:    vmovdqa64 %zmm14, %zmm19
5554 ; AVX512F-NEXT:    vpermt2d %zmm12, %zmm18, %zmm19
5555 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} ymm16 = [1,8,15,22,29,u,u,u]
5556 ; AVX512F-NEXT:    vmovdqa64 %zmm10, %zmm17
5557 ; AVX512F-NEXT:    vpermt2d %zmm11, %zmm16, %zmm17
5558 ; AVX512F-NEXT:    movw $480, %di # imm = 0x1E0
5559 ; AVX512F-NEXT:    kmovw %edi, %k2
5560 ; AVX512F-NEXT:    vmovdqa32 %zmm19, %zmm17 {%k2}
5561 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm19 = [0,0,7,14,21,28,0,0,0,0,7,14,21,28,0,0]
5562 ; AVX512F-NEXT:    # zmm19 = mem[0,1,2,3,0,1,2,3]
5563 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm20
5564 ; AVX512F-NEXT:    vpermt2d %zmm15, %zmm19, %zmm20
5565 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm21 = [0,9,10,11,12,13,19,26,0,9,10,11,12,13,19,26]
5566 ; AVX512F-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3]
5567 ; AVX512F-NEXT:    vpermt2d %zmm13, %zmm21, %zmm20
5568 ; AVX512F-NEXT:    movw $-512, %di # imm = 0xFE00
5569 ; AVX512F-NEXT:    kmovw %edi, %k1
5570 ; AVX512F-NEXT:    vmovdqa32 %zmm20, %zmm17 {%k1}
5571 ; AVX512F-NEXT:    vpermi2d %zmm6, %zmm3, %zmm19
5572 ; AVX512F-NEXT:    vpermt2d %zmm5, %zmm21, %zmm19
5573 ; AVX512F-NEXT:    vmovdqa64 %zmm4, %zmm20
5574 ; AVX512F-NEXT:    vpermt2d %zmm2, %zmm18, %zmm20
5575 ; AVX512F-NEXT:    vpermi2d %zmm1, %zmm0, %zmm16
5576 ; AVX512F-NEXT:    vmovdqa32 %zmm20, %zmm16 {%k2}
5577 ; AVX512F-NEXT:    vmovdqa32 %zmm19, %zmm16 {%k1}
5578 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm21 = [26,5,12,19,26,5,12,19,26,5,12,19,26,5,12,19]
5579 ; AVX512F-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5580 ; AVX512F-NEXT:    vmovdqa64 %zmm14, %zmm22
5581 ; AVX512F-NEXT:    vpermt2d %zmm12, %zmm21, %zmm22
5582 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} ymm19 = [18,25,0,7,14,u,u,u]
5583 ; AVX512F-NEXT:    vmovdqa64 %zmm11, %zmm20
5584 ; AVX512F-NEXT:    vpermt2d %zmm10, %zmm19, %zmm20
5585 ; AVX512F-NEXT:    vmovdqa32 %zmm22, %zmm20 {%k2}
5586 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm22 = [0,1,8,15,22,29,0,0,0,1,8,15,22,29,0,0]
5587 ; AVX512F-NEXT:    # zmm22 = mem[0,1,2,3,0,1,2,3]
5588 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm23
5589 ; AVX512F-NEXT:    vpermt2d %zmm15, %zmm22, %zmm23
5590 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm24 = [0,9,10,11,12,13,20,27,0,9,10,11,12,13,20,27]
5591 ; AVX512F-NEXT:    # zmm24 = mem[0,1,2,3,0,1,2,3]
5592 ; AVX512F-NEXT:    vpermt2d %zmm13, %zmm24, %zmm23
5593 ; AVX512F-NEXT:    vmovdqa32 %zmm23, %zmm20 {%k1}
5594 ; AVX512F-NEXT:    vpermi2d %zmm6, %zmm3, %zmm22
5595 ; AVX512F-NEXT:    vpermt2d %zmm5, %zmm24, %zmm22
5596 ; AVX512F-NEXT:    vmovdqa64 %zmm4, %zmm23
5597 ; AVX512F-NEXT:    vpermt2d %zmm2, %zmm21, %zmm23
5598 ; AVX512F-NEXT:    vpermi2d %zmm0, %zmm1, %zmm19
5599 ; AVX512F-NEXT:    vmovdqa32 %zmm23, %zmm19 {%k2}
5600 ; AVX512F-NEXT:    vmovdqa32 %zmm22, %zmm19 {%k1}
5601 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm24 = [27,6,13,20,27,6,13,20,27,6,13,20,27,6,13,20]
5602 ; AVX512F-NEXT:    # zmm24 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5603 ; AVX512F-NEXT:    vmovdqa64 %zmm14, %zmm25
5604 ; AVX512F-NEXT:    vpermt2d %zmm12, %zmm24, %zmm25
5605 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} ymm22 = [19,26,1,8,15,u,u,u]
5606 ; AVX512F-NEXT:    vmovdqa64 %zmm11, %zmm23
5607 ; AVX512F-NEXT:    vpermt2d %zmm10, %zmm22, %zmm23
5608 ; AVX512F-NEXT:    vmovdqa32 %zmm25, %zmm23 {%k2}
5609 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm25 = [0,18,25,0,7,14,0,0,0,18,25,0,7,14,0,0]
5610 ; AVX512F-NEXT:    # zmm25 = mem[0,1,2,3,0,1,2,3]
5611 ; AVX512F-NEXT:    vmovdqa64 %zmm15, %zmm26
5612 ; AVX512F-NEXT:    vpermt2d %zmm9, %zmm25, %zmm26
5613 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm27 = [0,9,10,11,12,13,21,28,0,9,10,11,12,13,21,28]
5614 ; AVX512F-NEXT:    # zmm27 = mem[0,1,2,3,0,1,2,3]
5615 ; AVX512F-NEXT:    vpermt2d %zmm13, %zmm27, %zmm26
5616 ; AVX512F-NEXT:    vmovdqa32 %zmm26, %zmm23 {%k1}
5617 ; AVX512F-NEXT:    vpermi2d %zmm3, %zmm6, %zmm25
5618 ; AVX512F-NEXT:    vpermt2d %zmm5, %zmm27, %zmm25
5619 ; AVX512F-NEXT:    vpermi2d %zmm2, %zmm4, %zmm24
5620 ; AVX512F-NEXT:    vpermi2d %zmm0, %zmm1, %zmm22
5621 ; AVX512F-NEXT:    vmovdqa32 %zmm24, %zmm22 {%k2}
5622 ; AVX512F-NEXT:    vmovdqa32 %zmm25, %zmm22 {%k1}
5623 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm26 = [0,19,26,1,8,15,0,0,0,19,26,1,8,15,0,0]
5624 ; AVX512F-NEXT:    # zmm26 = mem[0,1,2,3,0,1,2,3]
5625 ; AVX512F-NEXT:    vmovdqa64 %zmm15, %zmm25
5626 ; AVX512F-NEXT:    vpermt2d %zmm9, %zmm26, %zmm25
5627 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm27 = [0,9,10,11,12,13,22,29,0,9,10,11,12,13,22,29]
5628 ; AVX512F-NEXT:    # zmm27 = mem[0,1,2,3,0,1,2,3]
5629 ; AVX512F-NEXT:    vpermt2d %zmm13, %zmm27, %zmm25
5630 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm28 = [28,0,0,0,0,7,14,21,28,0,0,0,0,7,14,21]
5631 ; AVX512F-NEXT:    # zmm28 = mem[0,1,2,3,0,1,2,3]
5632 ; AVX512F-NEXT:    vmovdqa64 %zmm14, %zmm24
5633 ; AVX512F-NEXT:    vpermt2d %zmm12, %zmm28, %zmm24
5634 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} xmm29 = [4,11,18,25]
5635 ; AVX512F-NEXT:    vmovdqa64 %zmm10, %zmm30
5636 ; AVX512F-NEXT:    vpermt2d %zmm11, %zmm29, %zmm30
5637 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm30, %zmm24, %zmm24
5638 ; AVX512F-NEXT:    vmovdqa32 %zmm25, %zmm24 {%k1}
5639 ; AVX512F-NEXT:    vpermi2d %zmm3, %zmm6, %zmm26
5640 ; AVX512F-NEXT:    vpermt2d %zmm5, %zmm27, %zmm26
5641 ; AVX512F-NEXT:    vpermi2d %zmm2, %zmm4, %zmm28
5642 ; AVX512F-NEXT:    vpermi2d %zmm1, %zmm0, %zmm29
5643 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm29, %zmm28, %zmm25
5644 ; AVX512F-NEXT:    vmovdqa32 %zmm26, %zmm25 {%k1}
5645 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm26
5646 ; AVX512F-NEXT:    vpermt2d %zmm15, %zmm18, %zmm26
5647 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm27 = [0,9,10,11,12,16,23,30,0,9,10,11,12,16,23,30]
5648 ; AVX512F-NEXT:    # zmm27 = mem[0,1,2,3,0,1,2,3]
5649 ; AVX512F-NEXT:    vpermt2d %zmm13, %zmm27, %zmm26
5650 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm28 = [29,0,0,0,1,8,15,22,29,0,0,0,1,8,15,22]
5651 ; AVX512F-NEXT:    # zmm28 = mem[0,1,2,3,0,1,2,3]
5652 ; AVX512F-NEXT:    vmovdqa64 %zmm14, %zmm29
5653 ; AVX512F-NEXT:    vpermt2d %zmm12, %zmm28, %zmm29
5654 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} xmm30 = [5,12,19,26]
5655 ; AVX512F-NEXT:    vmovdqa64 %zmm10, %zmm31
5656 ; AVX512F-NEXT:    vpermt2d %zmm11, %zmm30, %zmm31
5657 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm31, %zmm29, %zmm29
5658 ; AVX512F-NEXT:    vmovdqa32 %zmm26, %zmm29 {%k1}
5659 ; AVX512F-NEXT:    vpermi2d %zmm6, %zmm3, %zmm18
5660 ; AVX512F-NEXT:    vpermt2d %zmm5, %zmm27, %zmm18
5661 ; AVX512F-NEXT:    vpermi2d %zmm2, %zmm4, %zmm28
5662 ; AVX512F-NEXT:    vpermi2d %zmm1, %zmm0, %zmm30
5663 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm30, %zmm28, %zmm26
5664 ; AVX512F-NEXT:    vmovdqa32 %zmm18, %zmm26 {%k1}
5665 ; AVX512F-NEXT:    vpermt2d %zmm15, %zmm21, %zmm9
5666 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm15 = [0,9,10,11,12,17,24,31,0,9,10,11,12,17,24,31]
5667 ; AVX512F-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3]
5668 ; AVX512F-NEXT:    vpermt2d %zmm13, %zmm15, %zmm9
5669 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm13 = [14,0,0,0,18,25,0,7,14,0,0,0,18,25,0,7]
5670 ; AVX512F-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3]
5671 ; AVX512F-NEXT:    vpermt2d %zmm14, %zmm13, %zmm12
5672 ; AVX512F-NEXT:    vmovdqa {{.*#+}} xmm14 = [6,13,20,27]
5673 ; AVX512F-NEXT:    vpermt2d %zmm11, %zmm14, %zmm10
5674 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm10, %zmm12, %zmm10
5675 ; AVX512F-NEXT:    vmovdqa32 %zmm9, %zmm10 {%k1}
5676 ; AVX512F-NEXT:    vpermt2d %zmm6, %zmm21, %zmm3
5677 ; AVX512F-NEXT:    vpermt2d %zmm5, %zmm15, %zmm3
5678 ; AVX512F-NEXT:    vpermt2d %zmm4, %zmm13, %zmm2
5679 ; AVX512F-NEXT:    vpermt2d %zmm1, %zmm14, %zmm0
5680 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm0, %zmm2, %zmm0
5681 ; AVX512F-NEXT:    vmovdqa32 %zmm3, %zmm0 {%k1}
5682 ; AVX512F-NEXT:    vmovdqa64 %zmm7, 64(%rsi)
5683 ; AVX512F-NEXT:    vmovdqa64 %zmm8, (%rsi)
5684 ; AVX512F-NEXT:    vmovdqa64 %zmm16, 64(%rdx)
5685 ; AVX512F-NEXT:    vmovdqa64 %zmm17, (%rdx)
5686 ; AVX512F-NEXT:    vmovdqa64 %zmm19, 64(%rcx)
5687 ; AVX512F-NEXT:    vmovdqa64 %zmm20, (%rcx)
5688 ; AVX512F-NEXT:    vmovdqa64 %zmm22, 64(%r8)
5689 ; AVX512F-NEXT:    vmovdqa64 %zmm23, (%r8)
5690 ; AVX512F-NEXT:    vmovdqa64 %zmm25, 64(%r9)
5691 ; AVX512F-NEXT:    vmovdqa64 %zmm24, (%r9)
5692 ; AVX512F-NEXT:    vmovdqa64 %zmm26, 64(%r10)
5693 ; AVX512F-NEXT:    vmovdqa64 %zmm29, (%r10)
5694 ; AVX512F-NEXT:    vmovdqa64 %zmm0, 64(%rax)
5695 ; AVX512F-NEXT:    vmovdqa64 %zmm10, (%rax)
5696 ; AVX512F-NEXT:    vzeroupper
5697 ; AVX512F-NEXT:    retq
5699 ; AVX512BW-LABEL: load_i32_stride7_vf32:
5700 ; AVX512BW:       # %bb.0:
5701 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
5702 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %r10
5703 ; AVX512BW-NEXT:    vmovdqa64 512(%rdi), %zmm1
5704 ; AVX512BW-NEXT:    vmovdqa64 448(%rdi), %zmm0
5705 ; AVX512BW-NEXT:    vmovdqa64 576(%rdi), %zmm4
5706 ; AVX512BW-NEXT:    vmovdqa64 640(%rdi), %zmm2
5707 ; AVX512BW-NEXT:    vmovdqa64 832(%rdi), %zmm5
5708 ; AVX512BW-NEXT:    vmovdqa64 768(%rdi), %zmm6
5709 ; AVX512BW-NEXT:    vmovdqa64 704(%rdi), %zmm3
5710 ; AVX512BW-NEXT:    vmovdqa64 384(%rdi), %zmm13
5711 ; AVX512BW-NEXT:    vmovdqa64 320(%rdi), %zmm15
5712 ; AVX512BW-NEXT:    vmovdqa64 256(%rdi), %zmm9
5713 ; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm10
5714 ; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %zmm11
5715 ; AVX512BW-NEXT:    vmovdqa64 128(%rdi), %zmm14
5716 ; AVX512BW-NEXT:    vmovdqa64 192(%rdi), %zmm12
5717 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm16 = [8,15,0,0,0,19,26,1,8,15,0,0,0,19,26,1]
5718 ; AVX512BW-NEXT:    # zmm16 = mem[0,1,2,3,0,1,2,3]
5719 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm17
5720 ; AVX512BW-NEXT:    vpermt2d %zmm14, %zmm16, %zmm17
5721 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} ymm7 = [0,7,14,21,28,u,u,u]
5722 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm8
5723 ; AVX512BW-NEXT:    vpermt2d %zmm11, %zmm7, %zmm8
5724 ; AVX512BW-NEXT:    movw $992, %di # imm = 0x3E0
5725 ; AVX512BW-NEXT:    kmovd %edi, %k1
5726 ; AVX512BW-NEXT:    vmovdqa32 %zmm17, %zmm8 {%k1}
5727 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm17 = [20,27,6,13,20,27,6,13,20,27,6,13,20,27,6,13]
5728 ; AVX512BW-NEXT:    # zmm17 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5729 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm18
5730 ; AVX512BW-NEXT:    vpermt2d %zmm15, %zmm17, %zmm18
5731 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm19 = [0,0,10,11,12,13,18,25,0,0,10,11,12,13,18,25]
5732 ; AVX512BW-NEXT:    # zmm19 = mem[0,1,2,3,0,1,2,3]
5733 ; AVX512BW-NEXT:    vpermt2d %zmm13, %zmm19, %zmm18
5734 ; AVX512BW-NEXT:    movb $-32, %dil
5735 ; AVX512BW-NEXT:    kmovd %edi, %k2
5736 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, %zmm8 {%k2}
5737 ; AVX512BW-NEXT:    vpermi2d %zmm6, %zmm3, %zmm17
5738 ; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm19, %zmm17
5739 ; AVX512BW-NEXT:    vpermi2d %zmm4, %zmm2, %zmm16
5740 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm7
5741 ; AVX512BW-NEXT:    vmovdqa32 %zmm16, %zmm7 {%k1}
5742 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm7 {%k2}
5743 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm18 = [25,4,11,18,25,4,11,18,25,4,11,18,25,4,11,18]
5744 ; AVX512BW-NEXT:    # zmm18 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5745 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, %zmm19
5746 ; AVX512BW-NEXT:    vpermt2d %zmm12, %zmm18, %zmm19
5747 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} ymm16 = [1,8,15,22,29,u,u,u]
5748 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm17
5749 ; AVX512BW-NEXT:    vpermt2d %zmm11, %zmm16, %zmm17
5750 ; AVX512BW-NEXT:    movw $480, %di # imm = 0x1E0
5751 ; AVX512BW-NEXT:    kmovd %edi, %k2
5752 ; AVX512BW-NEXT:    vmovdqa32 %zmm19, %zmm17 {%k2}
5753 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm19 = [0,0,7,14,21,28,0,0,0,0,7,14,21,28,0,0]
5754 ; AVX512BW-NEXT:    # zmm19 = mem[0,1,2,3,0,1,2,3]
5755 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm20
5756 ; AVX512BW-NEXT:    vpermt2d %zmm15, %zmm19, %zmm20
5757 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm21 = [0,9,10,11,12,13,19,26,0,9,10,11,12,13,19,26]
5758 ; AVX512BW-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3]
5759 ; AVX512BW-NEXT:    vpermt2d %zmm13, %zmm21, %zmm20
5760 ; AVX512BW-NEXT:    movw $-512, %di # imm = 0xFE00
5761 ; AVX512BW-NEXT:    kmovd %edi, %k1
5762 ; AVX512BW-NEXT:    vmovdqa32 %zmm20, %zmm17 {%k1}
5763 ; AVX512BW-NEXT:    vpermi2d %zmm6, %zmm3, %zmm19
5764 ; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm21, %zmm19
5765 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm20
5766 ; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm18, %zmm20
5767 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm16
5768 ; AVX512BW-NEXT:    vmovdqa32 %zmm20, %zmm16 {%k2}
5769 ; AVX512BW-NEXT:    vmovdqa32 %zmm19, %zmm16 {%k1}
5770 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm21 = [26,5,12,19,26,5,12,19,26,5,12,19,26,5,12,19]
5771 ; AVX512BW-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5772 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, %zmm22
5773 ; AVX512BW-NEXT:    vpermt2d %zmm12, %zmm21, %zmm22
5774 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} ymm19 = [18,25,0,7,14,u,u,u]
5775 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm20
5776 ; AVX512BW-NEXT:    vpermt2d %zmm10, %zmm19, %zmm20
5777 ; AVX512BW-NEXT:    vmovdqa32 %zmm22, %zmm20 {%k2}
5778 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm22 = [0,1,8,15,22,29,0,0,0,1,8,15,22,29,0,0]
5779 ; AVX512BW-NEXT:    # zmm22 = mem[0,1,2,3,0,1,2,3]
5780 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm23
5781 ; AVX512BW-NEXT:    vpermt2d %zmm15, %zmm22, %zmm23
5782 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm24 = [0,9,10,11,12,13,20,27,0,9,10,11,12,13,20,27]
5783 ; AVX512BW-NEXT:    # zmm24 = mem[0,1,2,3,0,1,2,3]
5784 ; AVX512BW-NEXT:    vpermt2d %zmm13, %zmm24, %zmm23
5785 ; AVX512BW-NEXT:    vmovdqa32 %zmm23, %zmm20 {%k1}
5786 ; AVX512BW-NEXT:    vpermi2d %zmm6, %zmm3, %zmm22
5787 ; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm24, %zmm22
5788 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm23
5789 ; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm21, %zmm23
5790 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm1, %zmm19
5791 ; AVX512BW-NEXT:    vmovdqa32 %zmm23, %zmm19 {%k2}
5792 ; AVX512BW-NEXT:    vmovdqa32 %zmm22, %zmm19 {%k1}
5793 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm24 = [27,6,13,20,27,6,13,20,27,6,13,20,27,6,13,20]
5794 ; AVX512BW-NEXT:    # zmm24 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5795 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, %zmm25
5796 ; AVX512BW-NEXT:    vpermt2d %zmm12, %zmm24, %zmm25
5797 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} ymm22 = [19,26,1,8,15,u,u,u]
5798 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm23
5799 ; AVX512BW-NEXT:    vpermt2d %zmm10, %zmm22, %zmm23
5800 ; AVX512BW-NEXT:    vmovdqa32 %zmm25, %zmm23 {%k2}
5801 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm25 = [0,18,25,0,7,14,0,0,0,18,25,0,7,14,0,0]
5802 ; AVX512BW-NEXT:    # zmm25 = mem[0,1,2,3,0,1,2,3]
5803 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm26
5804 ; AVX512BW-NEXT:    vpermt2d %zmm9, %zmm25, %zmm26
5805 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm27 = [0,9,10,11,12,13,21,28,0,9,10,11,12,13,21,28]
5806 ; AVX512BW-NEXT:    # zmm27 = mem[0,1,2,3,0,1,2,3]
5807 ; AVX512BW-NEXT:    vpermt2d %zmm13, %zmm27, %zmm26
5808 ; AVX512BW-NEXT:    vmovdqa32 %zmm26, %zmm23 {%k1}
5809 ; AVX512BW-NEXT:    vpermi2d %zmm3, %zmm6, %zmm25
5810 ; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm27, %zmm25
5811 ; AVX512BW-NEXT:    vpermi2d %zmm2, %zmm4, %zmm24
5812 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm1, %zmm22
5813 ; AVX512BW-NEXT:    vmovdqa32 %zmm24, %zmm22 {%k2}
5814 ; AVX512BW-NEXT:    vmovdqa32 %zmm25, %zmm22 {%k1}
5815 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm26 = [0,19,26,1,8,15,0,0,0,19,26,1,8,15,0,0]
5816 ; AVX512BW-NEXT:    # zmm26 = mem[0,1,2,3,0,1,2,3]
5817 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm25
5818 ; AVX512BW-NEXT:    vpermt2d %zmm9, %zmm26, %zmm25
5819 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm27 = [0,9,10,11,12,13,22,29,0,9,10,11,12,13,22,29]
5820 ; AVX512BW-NEXT:    # zmm27 = mem[0,1,2,3,0,1,2,3]
5821 ; AVX512BW-NEXT:    vpermt2d %zmm13, %zmm27, %zmm25
5822 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm28 = [28,0,0,0,0,7,14,21,28,0,0,0,0,7,14,21]
5823 ; AVX512BW-NEXT:    # zmm28 = mem[0,1,2,3,0,1,2,3]
5824 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, %zmm24
5825 ; AVX512BW-NEXT:    vpermt2d %zmm12, %zmm28, %zmm24
5826 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} xmm29 = [4,11,18,25]
5827 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm30
5828 ; AVX512BW-NEXT:    vpermt2d %zmm11, %zmm29, %zmm30
5829 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm30, %zmm24, %zmm24
5830 ; AVX512BW-NEXT:    vmovdqa32 %zmm25, %zmm24 {%k1}
5831 ; AVX512BW-NEXT:    vpermi2d %zmm3, %zmm6, %zmm26
5832 ; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm27, %zmm26
5833 ; AVX512BW-NEXT:    vpermi2d %zmm2, %zmm4, %zmm28
5834 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm29
5835 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm29, %zmm28, %zmm25
5836 ; AVX512BW-NEXT:    vmovdqa32 %zmm26, %zmm25 {%k1}
5837 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm26
5838 ; AVX512BW-NEXT:    vpermt2d %zmm15, %zmm18, %zmm26
5839 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm27 = [0,9,10,11,12,16,23,30,0,9,10,11,12,16,23,30]
5840 ; AVX512BW-NEXT:    # zmm27 = mem[0,1,2,3,0,1,2,3]
5841 ; AVX512BW-NEXT:    vpermt2d %zmm13, %zmm27, %zmm26
5842 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm28 = [29,0,0,0,1,8,15,22,29,0,0,0,1,8,15,22]
5843 ; AVX512BW-NEXT:    # zmm28 = mem[0,1,2,3,0,1,2,3]
5844 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, %zmm29
5845 ; AVX512BW-NEXT:    vpermt2d %zmm12, %zmm28, %zmm29
5846 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} xmm30 = [5,12,19,26]
5847 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm31
5848 ; AVX512BW-NEXT:    vpermt2d %zmm11, %zmm30, %zmm31
5849 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm31, %zmm29, %zmm29
5850 ; AVX512BW-NEXT:    vmovdqa32 %zmm26, %zmm29 {%k1}
5851 ; AVX512BW-NEXT:    vpermi2d %zmm6, %zmm3, %zmm18
5852 ; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm27, %zmm18
5853 ; AVX512BW-NEXT:    vpermi2d %zmm2, %zmm4, %zmm28
5854 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm30
5855 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm30, %zmm28, %zmm26
5856 ; AVX512BW-NEXT:    vmovdqa32 %zmm18, %zmm26 {%k1}
5857 ; AVX512BW-NEXT:    vpermt2d %zmm15, %zmm21, %zmm9
5858 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm15 = [0,9,10,11,12,17,24,31,0,9,10,11,12,17,24,31]
5859 ; AVX512BW-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3]
5860 ; AVX512BW-NEXT:    vpermt2d %zmm13, %zmm15, %zmm9
5861 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm13 = [14,0,0,0,18,25,0,7,14,0,0,0,18,25,0,7]
5862 ; AVX512BW-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3]
5863 ; AVX512BW-NEXT:    vpermt2d %zmm14, %zmm13, %zmm12
5864 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} xmm14 = [6,13,20,27]
5865 ; AVX512BW-NEXT:    vpermt2d %zmm11, %zmm14, %zmm10
5866 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm10, %zmm12, %zmm10
5867 ; AVX512BW-NEXT:    vmovdqa32 %zmm9, %zmm10 {%k1}
5868 ; AVX512BW-NEXT:    vpermt2d %zmm6, %zmm21, %zmm3
5869 ; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm15, %zmm3
5870 ; AVX512BW-NEXT:    vpermt2d %zmm4, %zmm13, %zmm2
5871 ; AVX512BW-NEXT:    vpermt2d %zmm1, %zmm14, %zmm0
5872 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm0, %zmm2, %zmm0
5873 ; AVX512BW-NEXT:    vmovdqa32 %zmm3, %zmm0 {%k1}
5874 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, 64(%rsi)
5875 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, (%rsi)
5876 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, 64(%rdx)
5877 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, (%rdx)
5878 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, 64(%rcx)
5879 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, (%rcx)
5880 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, 64(%r8)
5881 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, (%r8)
5882 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, 64(%r9)
5883 ; AVX512BW-NEXT:    vmovdqa64 %zmm24, (%r9)
5884 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, 64(%r10)
5885 ; AVX512BW-NEXT:    vmovdqa64 %zmm29, (%r10)
5886 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, 64(%rax)
5887 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, (%rax)
5888 ; AVX512BW-NEXT:    vzeroupper
5889 ; AVX512BW-NEXT:    retq
5890   %wide.vec = load <224 x i32>, ptr %in.vec, align 64
5891   %strided.vec0 = shufflevector <224 x i32> %wide.vec, <224 x i32> poison, <32 x i32> <i32 0, i32 7, i32 14, i32 21, i32 28, i32 35, i32 42, i32 49, i32 56, i32 63, i32 70, i32 77, i32 84, i32 91, i32 98, i32 105, i32 112, i32 119, i32 126, i32 133, i32 140, i32 147, i32 154, i32 161, i32 168, i32 175, i32 182, i32 189, i32 196, i32 203, i32 210, i32 217>
5892   %strided.vec1 = shufflevector <224 x i32> %wide.vec, <224 x i32> poison, <32 x i32> <i32 1, i32 8, i32 15, i32 22, i32 29, i32 36, i32 43, i32 50, i32 57, i32 64, i32 71, i32 78, i32 85, i32 92, i32 99, i32 106, i32 113, i32 120, i32 127, i32 134, i32 141, i32 148, i32 155, i32 162, i32 169, i32 176, i32 183, i32 190, i32 197, i32 204, i32 211, i32 218>
5893   %strided.vec2 = shufflevector <224 x i32> %wide.vec, <224 x i32> poison, <32 x i32> <i32 2, i32 9, i32 16, i32 23, i32 30, i32 37, i32 44, i32 51, i32 58, i32 65, i32 72, i32 79, i32 86, i32 93, i32 100, i32 107, i32 114, i32 121, i32 128, i32 135, i32 142, i32 149, i32 156, i32 163, i32 170, i32 177, i32 184, i32 191, i32 198, i32 205, i32 212, i32 219>
5894   %strided.vec3 = shufflevector <224 x i32> %wide.vec, <224 x i32> poison, <32 x i32> <i32 3, i32 10, i32 17, i32 24, i32 31, i32 38, i32 45, i32 52, i32 59, i32 66, i32 73, i32 80, i32 87, i32 94, i32 101, i32 108, i32 115, i32 122, i32 129, i32 136, i32 143, i32 150, i32 157, i32 164, i32 171, i32 178, i32 185, i32 192, i32 199, i32 206, i32 213, i32 220>
5895   %strided.vec4 = shufflevector <224 x i32> %wide.vec, <224 x i32> poison, <32 x i32> <i32 4, i32 11, i32 18, i32 25, i32 32, i32 39, i32 46, i32 53, i32 60, i32 67, i32 74, i32 81, i32 88, i32 95, i32 102, i32 109, i32 116, i32 123, i32 130, i32 137, i32 144, i32 151, i32 158, i32 165, i32 172, i32 179, i32 186, i32 193, i32 200, i32 207, i32 214, i32 221>
5896   %strided.vec5 = shufflevector <224 x i32> %wide.vec, <224 x i32> poison, <32 x i32> <i32 5, i32 12, i32 19, i32 26, i32 33, i32 40, i32 47, i32 54, i32 61, i32 68, i32 75, i32 82, i32 89, i32 96, i32 103, i32 110, i32 117, i32 124, i32 131, i32 138, i32 145, i32 152, i32 159, i32 166, i32 173, i32 180, i32 187, i32 194, i32 201, i32 208, i32 215, i32 222>
5897   %strided.vec6 = shufflevector <224 x i32> %wide.vec, <224 x i32> poison, <32 x i32> <i32 6, i32 13, i32 20, i32 27, i32 34, i32 41, i32 48, i32 55, i32 62, i32 69, i32 76, i32 83, i32 90, i32 97, i32 104, i32 111, i32 118, i32 125, i32 132, i32 139, i32 146, i32 153, i32 160, i32 167, i32 174, i32 181, i32 188, i32 195, i32 202, i32 209, i32 216, i32 223>
5898   store <32 x i32> %strided.vec0, ptr %out.vec0, align 64
5899   store <32 x i32> %strided.vec1, ptr %out.vec1, align 64
5900   store <32 x i32> %strided.vec2, ptr %out.vec2, align 64
5901   store <32 x i32> %strided.vec3, ptr %out.vec3, align 64
5902   store <32 x i32> %strided.vec4, ptr %out.vec4, align 64
5903   store <32 x i32> %strided.vec5, ptr %out.vec5, align 64
5904   store <32 x i32> %strided.vec6, ptr %out.vec6, align 64
5905   ret void
5908 define void @load_i32_stride7_vf64(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4, ptr %out.vec5, ptr %out.vec6) nounwind {
5909 ; SSE-LABEL: load_i32_stride7_vf64:
5910 ; SSE:       # %bb.0:
5911 ; SSE-NEXT:    subq $2456, %rsp # imm = 0x998
5912 ; SSE-NEXT:    movdqa 1088(%rdi), %xmm3
5913 ; SSE-NEXT:    movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5914 ; SSE-NEXT:    movdqa 1056(%rdi), %xmm4
5915 ; SSE-NEXT:    movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5916 ; SSE-NEXT:    movdqa 1008(%rdi), %xmm9
5917 ; SSE-NEXT:    movdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5918 ; SSE-NEXT:    movdqa 1024(%rdi), %xmm5
5919 ; SSE-NEXT:    movdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5920 ; SSE-NEXT:    movdqa 640(%rdi), %xmm13
5921 ; SSE-NEXT:    movdqa 608(%rdi), %xmm6
5922 ; SSE-NEXT:    movdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5923 ; SSE-NEXT:    movdqa 560(%rdi), %xmm10
5924 ; SSE-NEXT:    movdqa %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5925 ; SSE-NEXT:    movdqa 576(%rdi), %xmm7
5926 ; SSE-NEXT:    movdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5927 ; SSE-NEXT:    movdqa 192(%rdi), %xmm2
5928 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5929 ; SSE-NEXT:    movdqa 160(%rdi), %xmm15
5930 ; SSE-NEXT:    movdqa 112(%rdi), %xmm1
5931 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5932 ; SSE-NEXT:    movdqa 128(%rdi), %xmm0
5933 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5934 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[3,3,3,3]
5935 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
5936 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm15[2,2,3,3]
5937 ; SSE-NEXT:    movdqa %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5938 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
5939 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
5940 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5941 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm7[3,3,3,3]
5942 ; SSE-NEXT:    movdqa %xmm10, %xmm1
5943 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
5944 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm6[2,2,3,3]
5945 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm13[0],xmm0[1],xmm13[1]
5946 ; SSE-NEXT:    movdqa %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5947 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
5948 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5949 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm5[3,3,3,3]
5950 ; SSE-NEXT:    movdqa %xmm9, %xmm1
5951 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
5952 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm4[2,2,3,3]
5953 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
5954 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
5955 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5956 ; SSE-NEXT:    movdqa 1456(%rdi), %xmm1
5957 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5958 ; SSE-NEXT:    movdqa 1472(%rdi), %xmm0
5959 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5960 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[3,3,3,3]
5961 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
5962 ; SSE-NEXT:    movdqa 1536(%rdi), %xmm2
5963 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5964 ; SSE-NEXT:    movdqa 1504(%rdi), %xmm0
5965 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5966 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,2,3,3]
5967 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
5968 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
5969 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5970 ; SSE-NEXT:    movdqa (%rdi), %xmm1
5971 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5972 ; SSE-NEXT:    movdqa 16(%rdi), %xmm0
5973 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5974 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[3,3,3,3]
5975 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
5976 ; SSE-NEXT:    movdqa 80(%rdi), %xmm2
5977 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5978 ; SSE-NEXT:    movdqa 48(%rdi), %xmm0
5979 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5980 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,2,3,3]
5981 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
5982 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
5983 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5984 ; SSE-NEXT:    movdqa 448(%rdi), %xmm1
5985 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5986 ; SSE-NEXT:    movdqa 464(%rdi), %xmm0
5987 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5988 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[3,3,3,3]
5989 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
5990 ; SSE-NEXT:    movdqa 528(%rdi), %xmm2
5991 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5992 ; SSE-NEXT:    movdqa 496(%rdi), %xmm0
5993 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5994 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,2,3,3]
5995 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
5996 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
5997 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5998 ; SSE-NEXT:    movdqa 896(%rdi), %xmm1
5999 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6000 ; SSE-NEXT:    movdqa 912(%rdi), %xmm0
6001 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6002 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[3,3,3,3]
6003 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
6004 ; SSE-NEXT:    movdqa 976(%rdi), %xmm2
6005 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6006 ; SSE-NEXT:    movdqa 944(%rdi), %xmm0
6007 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6008 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,2,3,3]
6009 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
6010 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
6011 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6012 ; SSE-NEXT:    movdqa 1344(%rdi), %xmm1
6013 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6014 ; SSE-NEXT:    movdqa 1360(%rdi), %xmm0
6015 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6016 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[3,3,3,3]
6017 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
6018 ; SSE-NEXT:    movdqa 1424(%rdi), %xmm2
6019 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6020 ; SSE-NEXT:    movdqa 1392(%rdi), %xmm0
6021 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6022 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,2,3,3]
6023 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
6024 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
6025 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6026 ; SSE-NEXT:    movdqa 336(%rdi), %xmm12
6027 ; SSE-NEXT:    movdqa 352(%rdi), %xmm0
6028 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6029 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[3,3,3,3]
6030 ; SSE-NEXT:    movdqa %xmm12, %xmm5
6031 ; SSE-NEXT:    movdqa %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6032 ; SSE-NEXT:    punpckldq {{.*#+}} xmm5 = xmm5[0],xmm0[0],xmm5[1],xmm0[1]
6033 ; SSE-NEXT:    movdqa 416(%rdi), %xmm4
6034 ; SSE-NEXT:    movdqa 384(%rdi), %xmm10
6035 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm10[2,2,3,3]
6036 ; SSE-NEXT:    movdqa %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6037 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1]
6038 ; SSE-NEXT:    movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6039 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm5[0],xmm0[1]
6040 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6041 ; SSE-NEXT:    movdqa 784(%rdi), %xmm6
6042 ; SSE-NEXT:    movdqa %xmm6, (%rsp) # 16-byte Spill
6043 ; SSE-NEXT:    movdqa 800(%rdi), %xmm0
6044 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6045 ; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm0[3,3,3,3]
6046 ; SSE-NEXT:    punpckldq {{.*#+}} xmm6 = xmm6[0],xmm5[0],xmm6[1],xmm5[1]
6047 ; SSE-NEXT:    movdqa 864(%rdi), %xmm0
6048 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6049 ; SSE-NEXT:    movdqa 832(%rdi), %xmm1
6050 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6051 ; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm1[2,2,3,3]
6052 ; SSE-NEXT:    punpckldq {{.*#+}} xmm5 = xmm5[0],xmm0[0],xmm5[1],xmm0[1]
6053 ; SSE-NEXT:    movsd {{.*#+}} xmm5 = xmm6[0],xmm5[1]
6054 ; SSE-NEXT:    movapd %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6055 ; SSE-NEXT:    movdqa 1232(%rdi), %xmm6
6056 ; SSE-NEXT:    movdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6057 ; SSE-NEXT:    movdqa 1248(%rdi), %xmm0
6058 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6059 ; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm0[3,3,3,3]
6060 ; SSE-NEXT:    punpckldq {{.*#+}} xmm6 = xmm6[0],xmm5[0],xmm6[1],xmm5[1]
6061 ; SSE-NEXT:    movdqa 1312(%rdi), %xmm0
6062 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6063 ; SSE-NEXT:    movdqa 1280(%rdi), %xmm1
6064 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6065 ; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm1[2,2,3,3]
6066 ; SSE-NEXT:    punpckldq {{.*#+}} xmm5 = xmm5[0],xmm0[0],xmm5[1],xmm0[1]
6067 ; SSE-NEXT:    movsd {{.*#+}} xmm5 = xmm6[0],xmm5[1]
6068 ; SSE-NEXT:    movapd %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6069 ; SSE-NEXT:    movdqa 1680(%rdi), %xmm6
6070 ; SSE-NEXT:    movdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6071 ; SSE-NEXT:    movdqa 1696(%rdi), %xmm0
6072 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6073 ; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm0[3,3,3,3]
6074 ; SSE-NEXT:    punpckldq {{.*#+}} xmm6 = xmm6[0],xmm5[0],xmm6[1],xmm5[1]
6075 ; SSE-NEXT:    movdqa 1760(%rdi), %xmm1
6076 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6077 ; SSE-NEXT:    movdqa 1728(%rdi), %xmm0
6078 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6079 ; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm0[2,2,3,3]
6080 ; SSE-NEXT:    punpckldq {{.*#+}} xmm5 = xmm5[0],xmm1[0],xmm5[1],xmm1[1]
6081 ; SSE-NEXT:    movsd {{.*#+}} xmm5 = xmm6[0],xmm5[1]
6082 ; SSE-NEXT:    movapd %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6083 ; SSE-NEXT:    movdqa 224(%rdi), %xmm8
6084 ; SSE-NEXT:    movdqa 240(%rdi), %xmm0
6085 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6086 ; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm0[3,3,3,3]
6087 ; SSE-NEXT:    movdqa %xmm8, %xmm6
6088 ; SSE-NEXT:    movdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6089 ; SSE-NEXT:    punpckldq {{.*#+}} xmm6 = xmm6[0],xmm5[0],xmm6[1],xmm5[1]
6090 ; SSE-NEXT:    movdqa 304(%rdi), %xmm2
6091 ; SSE-NEXT:    movdqa 272(%rdi), %xmm3
6092 ; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm3[2,2,3,3]
6093 ; SSE-NEXT:    movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6094 ; SSE-NEXT:    punpckldq {{.*#+}} xmm5 = xmm5[0],xmm2[0],xmm5[1],xmm2[1]
6095 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6096 ; SSE-NEXT:    movsd {{.*#+}} xmm5 = xmm6[0],xmm5[1]
6097 ; SSE-NEXT:    movapd %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6098 ; SSE-NEXT:    movdqa 672(%rdi), %xmm11
6099 ; SSE-NEXT:    movdqa 688(%rdi), %xmm0
6100 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6101 ; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm0[3,3,3,3]
6102 ; SSE-NEXT:    movdqa %xmm11, %xmm7
6103 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm5[0],xmm7[1],xmm5[1]
6104 ; SSE-NEXT:    movdqa 752(%rdi), %xmm14
6105 ; SSE-NEXT:    movdqa 720(%rdi), %xmm1
6106 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm1[2,2,3,3]
6107 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6108 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm14[0],xmm0[1],xmm14[1]
6109 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm7[0],xmm0[1]
6110 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6111 ; SSE-NEXT:    movdqa 1120(%rdi), %xmm9
6112 ; SSE-NEXT:    movdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6113 ; SSE-NEXT:    movdqa 1136(%rdi), %xmm0
6114 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6115 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm0[3,3,3,3]
6116 ; SSE-NEXT:    punpckldq {{.*#+}} xmm9 = xmm9[0],xmm7[0],xmm9[1],xmm7[1]
6117 ; SSE-NEXT:    movdqa 1200(%rdi), %xmm5
6118 ; SSE-NEXT:    movdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6119 ; SSE-NEXT:    movdqa 1168(%rdi), %xmm6
6120 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm6[2,2,3,3]
6121 ; SSE-NEXT:    movdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6122 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm5[0],xmm0[1],xmm5[1]
6123 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm9[0],xmm0[1]
6124 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6125 ; SSE-NEXT:    movdqa 1568(%rdi), %xmm9
6126 ; SSE-NEXT:    movdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6127 ; SSE-NEXT:    movdqa 1584(%rdi), %xmm0
6128 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6129 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm0[3,3,3,3]
6130 ; SSE-NEXT:    punpckldq {{.*#+}} xmm9 = xmm9[0],xmm7[0],xmm9[1],xmm7[1]
6131 ; SSE-NEXT:    movdqa 1648(%rdi), %xmm5
6132 ; SSE-NEXT:    movdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6133 ; SSE-NEXT:    movdqa 1616(%rdi), %xmm0
6134 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6135 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,2,3,3]
6136 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm5[0],xmm0[1],xmm5[1]
6137 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm9[0],xmm0[1]
6138 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6139 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6140 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm0[2,2,2,2]
6141 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm15 = xmm15[2],xmm7[2],xmm15[3],xmm7[3]
6142 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload
6143 ; SSE-NEXT:    # xmm7 = mem[1,1,1,1]
6144 ; SSE-NEXT:    movdqa 144(%rdi), %xmm0
6145 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6146 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm0[0],xmm7[1],xmm0[1]
6147 ; SSE-NEXT:    movsd {{.*#+}} xmm15 = xmm7[0],xmm15[1]
6148 ; SSE-NEXT:    movapd %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6149 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
6150 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm15[2,2,2,2]
6151 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload
6152 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm9 = xmm9[2],xmm7[2],xmm9[3],xmm7[3]
6153 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6154 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm0[1,1,1,1]
6155 ; SSE-NEXT:    movdqa 32(%rdi), %xmm5
6156 ; SSE-NEXT:    movdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6157 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm5[0],xmm7[1],xmm5[1]
6158 ; SSE-NEXT:    movsd {{.*#+}} xmm9 = xmm7[0],xmm9[1]
6159 ; SSE-NEXT:    movapd %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6160 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm4[2,2,2,2]
6161 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm10 = xmm10[2],xmm7[2],xmm10[3],xmm7[3]
6162 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm12[1,1,1,1]
6163 ; SSE-NEXT:    movdqa 368(%rdi), %xmm4
6164 ; SSE-NEXT:    movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6165 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm4[0],xmm7[1],xmm4[1]
6166 ; SSE-NEXT:    movsd {{.*#+}} xmm10 = xmm7[0],xmm10[1]
6167 ; SSE-NEXT:    movapd %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6168 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm2[2,2,2,2]
6169 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm3 = xmm3[2],xmm7[2],xmm3[3],xmm7[3]
6170 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm8[1,1,1,1]
6171 ; SSE-NEXT:    movdqa 256(%rdi), %xmm2
6172 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6173 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm2[0],xmm7[1],xmm2[1]
6174 ; SSE-NEXT:    movsd {{.*#+}} xmm3 = xmm7[0],xmm3[1]
6175 ; SSE-NEXT:    movapd %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6176 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm13[2,2,2,2]
6177 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
6178 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm4 = xmm4[2],xmm7[2],xmm4[3],xmm7[3]
6179 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload
6180 ; SSE-NEXT:    # xmm7 = mem[1,1,1,1]
6181 ; SSE-NEXT:    movdqa 592(%rdi), %xmm2
6182 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6183 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm2[0],xmm7[1],xmm2[1]
6184 ; SSE-NEXT:    movsd {{.*#+}} xmm4 = xmm7[0],xmm4[1]
6185 ; SSE-NEXT:    movapd %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6186 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
6187 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm4[2,2,2,2]
6188 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
6189 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm2 = xmm2[2],xmm7[2],xmm2[3],xmm7[3]
6190 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
6191 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm3[1,1,1,1]
6192 ; SSE-NEXT:    movdqa 480(%rdi), %xmm5
6193 ; SSE-NEXT:    movdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6194 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm5[0],xmm7[1],xmm5[1]
6195 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm7[0],xmm2[1]
6196 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6197 ; SSE-NEXT:    pshufd $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload
6198 ; SSE-NEXT:    # xmm7 = mem[2,2,2,2]
6199 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
6200 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm2 = xmm2[2],xmm7[2],xmm2[3],xmm7[3]
6201 ; SSE-NEXT:    movdqa (%rsp), %xmm13 # 16-byte Reload
6202 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm13[1,1,1,1]
6203 ; SSE-NEXT:    movdqa 816(%rdi), %xmm5
6204 ; SSE-NEXT:    movdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6205 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm5[0],xmm7[1],xmm5[1]
6206 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm7[0],xmm2[1]
6207 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6208 ; SSE-NEXT:    movdqa %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6209 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm14[2,2,2,2]
6210 ; SSE-NEXT:    movdqa %xmm1, %xmm2
6211 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm2 = xmm2[2],xmm7[2],xmm2[3],xmm7[3]
6212 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm11[1,1,1,1]
6213 ; SSE-NEXT:    movdqa %xmm11, %xmm12
6214 ; SSE-NEXT:    movdqa 704(%rdi), %xmm1
6215 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6216 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm1[0],xmm7[1],xmm1[1]
6217 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm7[0],xmm2[1]
6218 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6219 ; SSE-NEXT:    pshufd $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload
6220 ; SSE-NEXT:    # xmm7 = mem[2,2,2,2]
6221 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6222 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm7[2],xmm1[3],xmm7[3]
6223 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload
6224 ; SSE-NEXT:    # xmm7 = mem[1,1,1,1]
6225 ; SSE-NEXT:    movdqa 1040(%rdi), %xmm2
6226 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6227 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm2[0],xmm7[1],xmm2[1]
6228 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm7[0],xmm1[1]
6229 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6230 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
6231 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm5[2,2,2,2]
6232 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6233 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm7[2],xmm1[3],xmm7[3]
6234 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload
6235 ; SSE-NEXT:    # xmm7 = mem[1,1,1,1]
6236 ; SSE-NEXT:    movdqa 928(%rdi), %xmm2
6237 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6238 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm2[0],xmm7[1],xmm2[1]
6239 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm7[0],xmm1[1]
6240 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6241 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6242 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm1[2,2,2,2]
6243 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
6244 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm2 = xmm2[2],xmm7[2],xmm2[3],xmm7[3]
6245 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload
6246 ; SSE-NEXT:    # xmm7 = mem[1,1,1,1]
6247 ; SSE-NEXT:    movdqa 1264(%rdi), %xmm1
6248 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6249 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm1[0],xmm7[1],xmm1[1]
6250 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm7[0],xmm2[1]
6251 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6252 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
6253 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm8[2,2,2,2]
6254 ; SSE-NEXT:    movdqa %xmm6, %xmm2
6255 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm2 = xmm2[2],xmm7[2],xmm2[3],xmm7[3]
6256 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6257 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm1[1,1,1,1]
6258 ; SSE-NEXT:    movdqa 1152(%rdi), %xmm6
6259 ; SSE-NEXT:    movdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6260 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm6[0],xmm7[1],xmm6[1]
6261 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm7[0],xmm2[1]
6262 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6263 ; SSE-NEXT:    pshufd $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload
6264 ; SSE-NEXT:    # xmm7 = mem[2,2,2,2]
6265 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
6266 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm2 = xmm2[2],xmm7[2],xmm2[3],xmm7[3]
6267 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload
6268 ; SSE-NEXT:    # xmm7 = mem[1,1,1,1]
6269 ; SSE-NEXT:    movdqa 1488(%rdi), %xmm6
6270 ; SSE-NEXT:    movdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6271 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm6[0],xmm7[1],xmm6[1]
6272 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm7[0],xmm2[1]
6273 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6274 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
6275 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm10[2,2,2,2]
6276 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
6277 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm2 = xmm2[2],xmm7[2],xmm2[3],xmm7[3]
6278 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload
6279 ; SSE-NEXT:    # xmm7 = mem[1,1,1,1]
6280 ; SSE-NEXT:    movdqa 1376(%rdi), %xmm6
6281 ; SSE-NEXT:    movdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6282 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm6[0],xmm7[1],xmm6[1]
6283 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm7[0],xmm2[1]
6284 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6285 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload
6286 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm11[2,2,2,2]
6287 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
6288 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm2 = xmm2[2],xmm7[2],xmm2[3],xmm7[3]
6289 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload
6290 ; SSE-NEXT:    # xmm7 = mem[1,1,1,1]
6291 ; SSE-NEXT:    movdqa 1712(%rdi), %xmm6
6292 ; SSE-NEXT:    movdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6293 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm6[0],xmm7[1],xmm6[1]
6294 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm7[0],xmm2[1]
6295 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6296 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
6297 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm6[2,2,2,2]
6298 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
6299 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm2 = xmm2[2],xmm7[2],xmm2[3],xmm7[3]
6300 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload
6301 ; SSE-NEXT:    # xmm7 = mem[1,1,1,1]
6302 ; SSE-NEXT:    movdqa 1600(%rdi), %xmm9
6303 ; SSE-NEXT:    movdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6304 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm9[0],xmm7[1],xmm9[1]
6305 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm7[0],xmm2[1]
6306 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6307 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm0[2,3,2,3]
6308 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload
6309 ; SSE-NEXT:    # xmm9 = mem[1,1,1,1]
6310 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm9[0],xmm7[1],xmm9[1]
6311 ; SSE-NEXT:    movdqa 64(%rdi), %xmm0
6312 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6313 ; SSE-NEXT:    pshufd {{.*#+}} xmm9 = xmm15[2,3,2,3]
6314 ; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm0[0,0,1,1]
6315 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm9[0],xmm2[1],xmm9[1]
6316 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm7[0],xmm2[1]
6317 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6318 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
6319 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm2[2,3,2,3]
6320 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload
6321 ; SSE-NEXT:    # xmm9 = mem[1,1,1,1]
6322 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm9[0],xmm7[1],xmm9[1]
6323 ; SSE-NEXT:    movdqa 176(%rdi), %xmm0
6324 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6325 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload
6326 ; SSE-NEXT:    # xmm9 = mem[2,3,2,3]
6327 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,1,1]
6328 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm9[0],xmm0[1],xmm9[1]
6329 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm7[0],xmm0[1]
6330 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6331 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload
6332 ; SSE-NEXT:    # xmm7 = mem[2,3,2,3]
6333 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload
6334 ; SSE-NEXT:    # xmm9 = mem[1,1,1,1]
6335 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm9[0],xmm7[1],xmm9[1]
6336 ; SSE-NEXT:    movdqa 288(%rdi), %xmm0
6337 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6338 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload
6339 ; SSE-NEXT:    # xmm9 = mem[2,3,2,3]
6340 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,1,1]
6341 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm9[0],xmm0[1],xmm9[1]
6342 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm7[0],xmm0[1]
6343 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6344 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload
6345 ; SSE-NEXT:    # xmm7 = mem[2,3,2,3]
6346 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload
6347 ; SSE-NEXT:    # xmm9 = mem[1,1,1,1]
6348 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm9[0],xmm7[1],xmm9[1]
6349 ; SSE-NEXT:    movdqa 400(%rdi), %xmm0
6350 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6351 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload
6352 ; SSE-NEXT:    # xmm9 = mem[2,3,2,3]
6353 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,1,1]
6354 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm9[0],xmm0[1],xmm9[1]
6355 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm7[0],xmm0[1]
6356 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6357 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm3[2,3,2,3]
6358 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload
6359 ; SSE-NEXT:    # xmm9 = mem[1,1,1,1]
6360 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm9[0],xmm7[1],xmm9[1]
6361 ; SSE-NEXT:    movdqa 512(%rdi), %xmm0
6362 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6363 ; SSE-NEXT:    pshufd {{.*#+}} xmm9 = xmm4[2,3,2,3]
6364 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,1,1]
6365 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm9[0],xmm0[1],xmm9[1]
6366 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm7[0],xmm0[1]
6367 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6368 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload
6369 ; SSE-NEXT:    # xmm7 = mem[2,3,2,3]
6370 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload
6371 ; SSE-NEXT:    # xmm9 = mem[1,1,1,1]
6372 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm9[0],xmm7[1],xmm9[1]
6373 ; SSE-NEXT:    movdqa 624(%rdi), %xmm0
6374 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6375 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload
6376 ; SSE-NEXT:    # xmm9 = mem[2,3,2,3]
6377 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,1,1]
6378 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm9[0],xmm0[1],xmm9[1]
6379 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm7[0],xmm0[1]
6380 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6381 ; SSE-NEXT:    movdqa %xmm12, %xmm15
6382 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm12[2,3,2,3]
6383 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload
6384 ; SSE-NEXT:    # xmm9 = mem[1,1,1,1]
6385 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm9[0],xmm7[1],xmm9[1]
6386 ; SSE-NEXT:    movdqa 736(%rdi), %xmm0
6387 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6388 ; SSE-NEXT:    pshufd {{.*#+}} xmm9 = xmm14[2,3,2,3]
6389 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,1,1]
6390 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm9[0],xmm0[1],xmm9[1]
6391 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm7[0],xmm0[1]
6392 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6393 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm13[2,3,2,3]
6394 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload
6395 ; SSE-NEXT:    pshufd {{.*#+}} xmm9 = xmm12[1,1,1,1]
6396 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm9[0],xmm7[1],xmm9[1]
6397 ; SSE-NEXT:    movdqa 848(%rdi), %xmm0
6398 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6399 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload
6400 ; SSE-NEXT:    # xmm9 = mem[2,3,2,3]
6401 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,1,1]
6402 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm9[0],xmm0[1],xmm9[1]
6403 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm7[0],xmm0[1]
6404 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6405 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload
6406 ; SSE-NEXT:    # xmm7 = mem[2,3,2,3]
6407 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload
6408 ; SSE-NEXT:    # xmm9 = mem[1,1,1,1]
6409 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm9[0],xmm7[1],xmm9[1]
6410 ; SSE-NEXT:    movdqa 960(%rdi), %xmm0
6411 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6412 ; SSE-NEXT:    pshufd {{.*#+}} xmm9 = xmm5[2,3,2,3]
6413 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,1,1]
6414 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm9[0],xmm0[1],xmm9[1]
6415 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm7[0],xmm0[1]
6416 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6417 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload
6418 ; SSE-NEXT:    # xmm7 = mem[2,3,2,3]
6419 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
6420 ; SSE-NEXT:    pshufd {{.*#+}} xmm9 = xmm14[1,1,1,1]
6421 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm9[0],xmm7[1],xmm9[1]
6422 ; SSE-NEXT:    movdqa 1072(%rdi), %xmm0
6423 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6424 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload
6425 ; SSE-NEXT:    # xmm9 = mem[2,3,2,3]
6426 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,1,1]
6427 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm9[0],xmm0[1],xmm9[1]
6428 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm7[0],xmm0[1]
6429 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6430 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm1[2,3,2,3]
6431 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
6432 ; SSE-NEXT:    pshufd {{.*#+}} xmm9 = xmm3[1,1,1,1]
6433 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm9[0],xmm7[1],xmm9[1]
6434 ; SSE-NEXT:    movdqa 1184(%rdi), %xmm0
6435 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6436 ; SSE-NEXT:    pshufd {{.*#+}} xmm9 = xmm8[2,3,2,3]
6437 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,1,1]
6438 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm9[0],xmm0[1],xmm9[1]
6439 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm7[0],xmm0[1]
6440 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6441 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
6442 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm8[2,3,2,3]
6443 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload
6444 ; SSE-NEXT:    # xmm9 = mem[1,1,1,1]
6445 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm9[0],xmm7[1],xmm9[1]
6446 ; SSE-NEXT:    movdqa 1296(%rdi), %xmm0
6447 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6448 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload
6449 ; SSE-NEXT:    # xmm9 = mem[2,3,2,3]
6450 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,1,1]
6451 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm9[0],xmm0[1],xmm9[1]
6452 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm7[0],xmm0[1]
6453 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6454 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload
6455 ; SSE-NEXT:    # xmm7 = mem[2,3,2,3]
6456 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload
6457 ; SSE-NEXT:    # xmm9 = mem[1,1,1,1]
6458 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm9[0],xmm7[1],xmm9[1]
6459 ; SSE-NEXT:    movdqa 1408(%rdi), %xmm0
6460 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6461 ; SSE-NEXT:    pshufd {{.*#+}} xmm9 = xmm10[2,3,2,3]
6462 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,1,1]
6463 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm9[0],xmm0[1],xmm9[1]
6464 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm7[0],xmm0[1]
6465 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6466 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload
6467 ; SSE-NEXT:    # xmm7 = mem[2,3,2,3]
6468 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload
6469 ; SSE-NEXT:    # xmm9 = mem[1,1,1,1]
6470 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm9[0],xmm7[1],xmm9[1]
6471 ; SSE-NEXT:    movdqa 1520(%rdi), %xmm0
6472 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6473 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload
6474 ; SSE-NEXT:    # xmm9 = mem[2,3,2,3]
6475 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,1,1]
6476 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm9[0],xmm0[1],xmm9[1]
6477 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm7[0],xmm0[1]
6478 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6479 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload
6480 ; SSE-NEXT:    # xmm7 = mem[2,3,2,3]
6481 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload
6482 ; SSE-NEXT:    # xmm9 = mem[1,1,1,1]
6483 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm9[0],xmm7[1],xmm9[1]
6484 ; SSE-NEXT:    movdqa 1632(%rdi), %xmm0
6485 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6486 ; SSE-NEXT:    pshufd {{.*#+}} xmm9 = xmm6[2,3,2,3]
6487 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,1,1]
6488 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm9[0],xmm0[1],xmm9[1]
6489 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm7[0],xmm0[1]
6490 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6491 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload
6492 ; SSE-NEXT:    # xmm7 = mem[2,3,2,3]
6493 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload
6494 ; SSE-NEXT:    # xmm9 = mem[1,1,1,1]
6495 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm9[0],xmm7[1],xmm9[1]
6496 ; SSE-NEXT:    movdqa 1744(%rdi), %xmm0
6497 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6498 ; SSE-NEXT:    pshufd {{.*#+}} xmm9 = xmm11[2,3,2,3]
6499 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,1,1]
6500 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm9[0],xmm0[1],xmm9[1]
6501 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm7[0],xmm0[1]
6502 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6503 ; SSE-NEXT:    movdqa 96(%rdi), %xmm0
6504 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6505 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm0[0,0,1,1]
6506 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
6507 ; SSE-NEXT:    movdqa %xmm5, %xmm0
6508 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm7[0],xmm0[1],xmm7[1]
6509 ; SSE-NEXT:    pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
6510 ; SSE-NEXT:    # xmm4 = mem[2,2,3,3]
6511 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
6512 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm4 = xmm4[2],xmm7[2],xmm4[3],xmm7[3]
6513 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm4[0],xmm0[1]
6514 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6515 ; SSE-NEXT:    movdqa 208(%rdi), %xmm0
6516 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6517 ; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm0[0,0,1,1]
6518 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6519 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1]
6520 ; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[2,2,3,3]
6521 ; SSE-NEXT:    punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
6522 ; SSE-NEXT:    # xmm2 = xmm2[2],mem[2],xmm2[3],mem[3]
6523 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm2[0],xmm0[1]
6524 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6525 ; SSE-NEXT:    movdqa 320(%rdi), %xmm0
6526 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6527 ; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm0[0,0,1,1]
6528 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload
6529 ; SSE-NEXT:    movdqa %xmm13, %xmm0
6530 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
6531 ; SSE-NEXT:    pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
6532 ; SSE-NEXT:    # xmm2 = mem[2,2,3,3]
6533 ; SSE-NEXT:    punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
6534 ; SSE-NEXT:    # xmm2 = xmm2[2],mem[2],xmm2[3],mem[3]
6535 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm2[0],xmm0[1]
6536 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6537 ; SSE-NEXT:    movdqa 432(%rdi), %xmm0
6538 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6539 ; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm0[0,0,1,1]
6540 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload
6541 ; SSE-NEXT:    movdqa %xmm11, %xmm0
6542 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
6543 ; SSE-NEXT:    pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
6544 ; SSE-NEXT:    # xmm1 = mem[2,2,3,3]
6545 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
6546 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm10[2],xmm1[3],xmm10[3]
6547 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
6548 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6549 ; SSE-NEXT:    movdqa 544(%rdi), %xmm0
6550 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6551 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm0[0,0,1,1]
6552 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6553 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
6554 ; SSE-NEXT:    pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
6555 ; SSE-NEXT:    # xmm1 = mem[2,2,3,3]
6556 ; SSE-NEXT:    punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
6557 ; SSE-NEXT:    # xmm1 = xmm1[2],mem[2],xmm1[3],mem[3]
6558 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
6559 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6560 ; SSE-NEXT:    movdqa 656(%rdi), %xmm0
6561 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6562 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm0[0,0,1,1]
6563 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6564 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
6565 ; SSE-NEXT:    pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
6566 ; SSE-NEXT:    # xmm1 = mem[2,2,3,3]
6567 ; SSE-NEXT:    punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
6568 ; SSE-NEXT:    # xmm1 = xmm1[2],mem[2],xmm1[3],mem[3]
6569 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
6570 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6571 ; SSE-NEXT:    movdqa 768(%rdi), %xmm0
6572 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6573 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm0[0,0,1,1]
6574 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6575 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
6576 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm15[2,2,3,3]
6577 ; SSE-NEXT:    punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
6578 ; SSE-NEXT:    # xmm1 = xmm1[2],mem[2],xmm1[3],mem[3]
6579 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
6580 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6581 ; SSE-NEXT:    movdqa 880(%rdi), %xmm0
6582 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6583 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm0[0,0,1,1]
6584 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
6585 ; SSE-NEXT:    movdqa %xmm15, %xmm2
6586 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
6587 ; SSE-NEXT:    pshufd $250, (%rsp), %xmm0 # 16-byte Folded Reload
6588 ; SSE-NEXT:    # xmm0 = mem[2,2,3,3]
6589 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm12[2],xmm0[3],xmm12[3]
6590 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm0[0],xmm2[1]
6591 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6592 ; SSE-NEXT:    movdqa 992(%rdi), %xmm0
6593 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6594 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,1,1]
6595 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6596 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
6597 ; SSE-NEXT:    pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6598 ; SSE-NEXT:    # xmm0 = mem[2,2,3,3]
6599 ; SSE-NEXT:    punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6600 ; SSE-NEXT:    # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]
6601 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
6602 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6603 ; SSE-NEXT:    movdqa 1104(%rdi), %xmm0
6604 ; SSE-NEXT:    movdqa %xmm0, (%rsp) # 16-byte Spill
6605 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,1,1]
6606 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload
6607 ; SSE-NEXT:    movdqa %xmm12, %xmm1
6608 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
6609 ; SSE-NEXT:    pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6610 ; SSE-NEXT:    # xmm0 = mem[2,2,3,3]
6611 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm14[2],xmm0[3],xmm14[3]
6612 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
6613 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6614 ; SSE-NEXT:    movdqa 1216(%rdi), %xmm0
6615 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6616 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,1,1]
6617 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6618 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
6619 ; SSE-NEXT:    pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6620 ; SSE-NEXT:    # xmm0 = mem[2,2,3,3]
6621 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm3[2],xmm0[3],xmm3[3]
6622 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
6623 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6624 ; SSE-NEXT:    movdqa 1328(%rdi), %xmm0
6625 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6626 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,1,1]
6627 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
6628 ; SSE-NEXT:    movdqa %xmm14, %xmm1
6629 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
6630 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm8[2,2,3,3]
6631 ; SSE-NEXT:    punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6632 ; SSE-NEXT:    # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]
6633 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
6634 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6635 ; SSE-NEXT:    movdqa 1440(%rdi), %xmm0
6636 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6637 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,1,1]
6638 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload
6639 ; SSE-NEXT:    movdqa %xmm9, %xmm1
6640 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
6641 ; SSE-NEXT:    pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6642 ; SSE-NEXT:    # xmm0 = mem[2,2,3,3]
6643 ; SSE-NEXT:    punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6644 ; SSE-NEXT:    # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]
6645 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
6646 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6647 ; SSE-NEXT:    movdqa 1552(%rdi), %xmm0
6648 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6649 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,1,1]
6650 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
6651 ; SSE-NEXT:    movdqa %xmm6, %xmm1
6652 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
6653 ; SSE-NEXT:    pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6654 ; SSE-NEXT:    # xmm0 = mem[2,2,3,3]
6655 ; SSE-NEXT:    punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6656 ; SSE-NEXT:    # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]
6657 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
6658 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6659 ; SSE-NEXT:    movdqa 1664(%rdi), %xmm0
6660 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6661 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,1,1]
6662 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6663 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
6664 ; SSE-NEXT:    pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6665 ; SSE-NEXT:    # xmm0 = mem[2,2,3,3]
6666 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
6667 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm2[2],xmm0[3],xmm2[3]
6668 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
6669 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6670 ; SSE-NEXT:    movdqa 1776(%rdi), %xmm0
6671 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6672 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,1,1]
6673 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
6674 ; SSE-NEXT:    movdqa %xmm4, %xmm1
6675 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
6676 ; SSE-NEXT:    pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6677 ; SSE-NEXT:    # xmm0 = mem[2,2,3,3]
6678 ; SSE-NEXT:    punpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6679 ; SSE-NEXT:    # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]
6680 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
6681 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6682 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm7[3,3,3,3]
6683 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
6684 ; SSE-NEXT:    movdqa %xmm7, %xmm1
6685 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
6686 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm5[2,2,3,3]
6687 ; SSE-NEXT:    punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6688 ; SSE-NEXT:    # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
6689 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
6690 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6691 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6692 ; SSE-NEXT:    # xmm0 = mem[3,3,3,3]
6693 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
6694 ; SSE-NEXT:    movdqa %xmm5, %xmm1
6695 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
6696 ; SSE-NEXT:    pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6697 ; SSE-NEXT:    # xmm0 = mem[2,2,3,3]
6698 ; SSE-NEXT:    punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6699 ; SSE-NEXT:    # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
6700 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
6701 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6702 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6703 ; SSE-NEXT:    # xmm0 = mem[3,3,3,3]
6704 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
6705 ; SSE-NEXT:    movdqa %xmm8, %xmm1
6706 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
6707 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm13[2,2,3,3]
6708 ; SSE-NEXT:    punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6709 ; SSE-NEXT:    # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
6710 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
6711 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6712 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm10[3,3,3,3]
6713 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
6714 ; SSE-NEXT:    movdqa %xmm10, %xmm1
6715 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
6716 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm11[2,2,3,3]
6717 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
6718 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
6719 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
6720 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6721 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6722 ; SSE-NEXT:    # xmm0 = mem[3,3,3,3]
6723 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload
6724 ; SSE-NEXT:    movdqa %xmm11, %xmm1
6725 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
6726 ; SSE-NEXT:    pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6727 ; SSE-NEXT:    # xmm0 = mem[2,2,3,3]
6728 ; SSE-NEXT:    punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6729 ; SSE-NEXT:    # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
6730 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
6731 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6732 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6733 ; SSE-NEXT:    # xmm0 = mem[3,3,3,3]
6734 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload
6735 ; SSE-NEXT:    movdqa %xmm13, %xmm1
6736 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
6737 ; SSE-NEXT:    pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6738 ; SSE-NEXT:    # xmm0 = mem[2,2,3,3]
6739 ; SSE-NEXT:    punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6740 ; SSE-NEXT:    # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
6741 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
6742 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6743 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6744 ; SSE-NEXT:    # xmm0 = mem[3,3,3,3]
6745 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6746 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
6747 ; SSE-NEXT:    pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6748 ; SSE-NEXT:    # xmm0 = mem[2,2,3,3]
6749 ; SSE-NEXT:    punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6750 ; SSE-NEXT:    # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
6751 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
6752 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6753 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6754 ; SSE-NEXT:    # xmm0 = mem[3,3,3,3]
6755 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6756 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
6757 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm15[2,2,3,3]
6758 ; SSE-NEXT:    punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6759 ; SSE-NEXT:    # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
6760 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
6761 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6762 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6763 ; SSE-NEXT:    # xmm0 = mem[3,3,3,3]
6764 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6765 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
6766 ; SSE-NEXT:    pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload
6767 ; SSE-NEXT:    # xmm15 = mem[2,2,3,3]
6768 ; SSE-NEXT:    punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload
6769 ; SSE-NEXT:    # xmm15 = xmm15[0],mem[0],xmm15[1],mem[1]
6770 ; SSE-NEXT:    movsd {{.*#+}} xmm15 = xmm1[0],xmm15[1]
6771 ; SSE-NEXT:    movapd %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6772 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6773 ; SSE-NEXT:    # xmm0 = mem[3,3,3,3]
6774 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6775 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
6776 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm12[2,2,3,3]
6777 ; SSE-NEXT:    movdqa (%rsp), %xmm15 # 16-byte Reload
6778 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm15[0],xmm0[1],xmm15[1]
6779 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
6780 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6781 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6782 ; SSE-NEXT:    # xmm0 = mem[3,3,3,3]
6783 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6784 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
6785 ; SSE-NEXT:    pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6786 ; SSE-NEXT:    # xmm0 = mem[2,2,3,3]
6787 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload
6788 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm12[0],xmm0[1],xmm12[1]
6789 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
6790 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6791 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6792 ; SSE-NEXT:    # xmm0 = mem[3,3,3,3]
6793 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6794 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
6795 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm14[2,2,3,3]
6796 ; SSE-NEXT:    punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6797 ; SSE-NEXT:    # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
6798 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
6799 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6800 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6801 ; SSE-NEXT:    # xmm0 = mem[3,3,3,3]
6802 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6803 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
6804 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm9[2,2,3,3]
6805 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload
6806 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm9[0],xmm0[1],xmm9[1]
6807 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
6808 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6809 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6810 ; SSE-NEXT:    # xmm0 = mem[3,3,3,3]
6811 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6812 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
6813 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm6[2,2,3,3]
6814 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
6815 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm14[0],xmm0[1],xmm14[1]
6816 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
6817 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6818 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm2[3,3,3,3]
6819 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6820 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
6821 ; SSE-NEXT:    pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6822 ; SSE-NEXT:    # xmm0 = mem[2,2,3,3]
6823 ; SSE-NEXT:    punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6824 ; SSE-NEXT:    # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
6825 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
6826 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6827 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
6828 ; SSE-NEXT:    # xmm2 = mem[3,3,3,3]
6829 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6830 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
6831 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm4[2,2,3,3]
6832 ; SSE-NEXT:    punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6833 ; SSE-NEXT:    # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
6834 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
6835 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6836 ; SSE-NEXT:    pshufd $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6837 ; SSE-NEXT:    # xmm0 = mem[2,2,2,2]
6838 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6839 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
6840 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm7[1,1,1,1]
6841 ; SSE-NEXT:    punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6842 ; SSE-NEXT:    # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
6843 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
6844 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6845 ; SSE-NEXT:    pshufd $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6846 ; SSE-NEXT:    # xmm0 = mem[2,2,2,2]
6847 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6848 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
6849 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm5[1,1,1,1]
6850 ; SSE-NEXT:    punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6851 ; SSE-NEXT:    # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
6852 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
6853 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6854 ; SSE-NEXT:    pshufd $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6855 ; SSE-NEXT:    # xmm0 = mem[2,2,2,2]
6856 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6857 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
6858 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm8[1,1,1,1]
6859 ; SSE-NEXT:    punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6860 ; SSE-NEXT:    # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
6861 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
6862 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6863 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm3[2,2,2,2]
6864 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6865 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
6866 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm10[1,1,1,1]
6867 ; SSE-NEXT:    punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6868 ; SSE-NEXT:    # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
6869 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
6870 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6871 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
6872 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm10[2,2,2,2]
6873 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6874 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
6875 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm11[1,1,1,1]
6876 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
6877 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm6[0],xmm0[1],xmm6[1]
6878 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
6879 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6880 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload
6881 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm11[2,2,2,2]
6882 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6883 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
6884 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm13[1,1,1,1]
6885 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
6886 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm7[0],xmm0[1],xmm7[1]
6887 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
6888 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6889 ; SSE-NEXT:    pshufd $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6890 ; SSE-NEXT:    # xmm0 = mem[2,2,2,2]
6891 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6892 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
6893 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6894 ; SSE-NEXT:    # xmm0 = mem[1,1,1,1]
6895 ; SSE-NEXT:    punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6896 ; SSE-NEXT:    # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
6897 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
6898 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6899 ; SSE-NEXT:    pshufd $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6900 ; SSE-NEXT:    # xmm0 = mem[2,2,2,2]
6901 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6902 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
6903 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6904 ; SSE-NEXT:    # xmm0 = mem[1,1,1,1]
6905 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
6906 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm8[0],xmm0[1],xmm8[1]
6907 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
6908 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6909 ; SSE-NEXT:    pshufd $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6910 ; SSE-NEXT:    # xmm0 = mem[2,2,2,2]
6911 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6912 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
6913 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6914 ; SSE-NEXT:    # xmm0 = mem[1,1,1,1]
6915 ; SSE-NEXT:    punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6916 ; SSE-NEXT:    # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
6917 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
6918 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6919 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm15[2,2,2,2]
6920 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6921 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
6922 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6923 ; SSE-NEXT:    # xmm0 = mem[1,1,1,1]
6924 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
6925 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm5[0],xmm0[1],xmm5[1]
6926 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
6927 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6928 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm12[2,2,2,2]
6929 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6930 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
6931 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6932 ; SSE-NEXT:    # xmm0 = mem[1,1,1,1]
6933 ; SSE-NEXT:    punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6934 ; SSE-NEXT:    # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
6935 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
6936 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6937 ; SSE-NEXT:    pshufd $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6938 ; SSE-NEXT:    # xmm0 = mem[2,2,2,2]
6939 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6940 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
6941 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6942 ; SSE-NEXT:    # xmm0 = mem[1,1,1,1]
6943 ; SSE-NEXT:    punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6944 ; SSE-NEXT:    # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
6945 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
6946 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6947 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm9[2,2,2,2]
6948 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6949 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
6950 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6951 ; SSE-NEXT:    # xmm0 = mem[1,1,1,1]
6952 ; SSE-NEXT:    punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6953 ; SSE-NEXT:    # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
6954 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
6955 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6956 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm14[2,2,2,2]
6957 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6958 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
6959 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6960 ; SSE-NEXT:    # xmm0 = mem[1,1,1,1]
6961 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
6962 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
6963 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
6964 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6965 ; SSE-NEXT:    pshufd $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6966 ; SSE-NEXT:    # xmm0 = mem[2,2,2,2]
6967 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
6968 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm2 = xmm2[2],xmm0[2],xmm2[3],xmm0[3]
6969 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6970 ; SSE-NEXT:    # xmm0 = mem[1,1,1,1]
6971 ; SSE-NEXT:    punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6972 ; SSE-NEXT:    # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
6973 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm0[0],xmm2[1]
6974 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6975 ; SSE-NEXT:    pshufd $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6976 ; SSE-NEXT:    # xmm0 = mem[2,2,2,2]
6977 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm4 = xmm4[2],xmm0[2],xmm4[3],xmm0[3]
6978 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6979 ; SSE-NEXT:    # xmm0 = mem[1,1,1,1]
6980 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
6981 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
6982 ; SSE-NEXT:    movsd {{.*#+}} xmm4 = xmm0[0],xmm4[1]
6983 ; SSE-NEXT:    movapd %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6984 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6985 ; SSE-NEXT:    # xmm0 = mem[1,1,1,1]
6986 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
6987 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
6988 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
6989 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6990 ; SSE-NEXT:    # xmm0 = mem[2,3,2,3]
6991 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
6992 ; SSE-NEXT:    # xmm4 = mem[0,0,1,1]
6993 ; SSE-NEXT:    punpckldq {{.*#+}} xmm4 = xmm4[0],xmm0[0],xmm4[1],xmm0[1]
6994 ; SSE-NEXT:    movsd {{.*#+}} xmm4 = xmm1[0],xmm4[1]
6995 ; SSE-NEXT:    movapd %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6996 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6997 ; SSE-NEXT:    # xmm0 = mem[1,1,1,1]
6998 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
6999 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
7000 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
7001 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
7002 ; SSE-NEXT:    # xmm0 = mem[2,3,2,3]
7003 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
7004 ; SSE-NEXT:    # xmm4 = mem[0,0,1,1]
7005 ; SSE-NEXT:    punpckldq {{.*#+}} xmm4 = xmm4[0],xmm0[0],xmm4[1],xmm0[1]
7006 ; SSE-NEXT:    movsd {{.*#+}} xmm4 = xmm1[0],xmm4[1]
7007 ; SSE-NEXT:    movapd %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7008 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
7009 ; SSE-NEXT:    # xmm0 = mem[1,1,1,1]
7010 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
7011 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
7012 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
7013 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
7014 ; SSE-NEXT:    # xmm0 = mem[2,3,2,3]
7015 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload
7016 ; SSE-NEXT:    # xmm15 = mem[0,0,1,1]
7017 ; SSE-NEXT:    punpckldq {{.*#+}} xmm15 = xmm15[0],xmm0[0],xmm15[1],xmm0[1]
7018 ; SSE-NEXT:    movsd {{.*#+}} xmm15 = xmm1[0],xmm15[1]
7019 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
7020 ; SSE-NEXT:    # xmm0 = mem[1,1,1,1]
7021 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
7022 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
7023 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
7024 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
7025 ; SSE-NEXT:    # xmm0 = mem[2,3,2,3]
7026 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Folded Reload
7027 ; SSE-NEXT:    # xmm14 = mem[0,0,1,1]
7028 ; SSE-NEXT:    punpckldq {{.*#+}} xmm14 = xmm14[0],xmm0[0],xmm14[1],xmm0[1]
7029 ; SSE-NEXT:    movsd {{.*#+}} xmm14 = xmm1[0],xmm14[1]
7030 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm6[1,1,1,1]
7031 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
7032 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
7033 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
7034 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm10[2,3,2,3]
7035 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Folded Reload
7036 ; SSE-NEXT:    # xmm13 = mem[0,0,1,1]
7037 ; SSE-NEXT:    punpckldq {{.*#+}} xmm13 = xmm13[0],xmm0[0],xmm13[1],xmm0[1]
7038 ; SSE-NEXT:    movsd {{.*#+}} xmm13 = xmm1[0],xmm13[1]
7039 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm7[1,1,1,1]
7040 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
7041 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
7042 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
7043 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm11[2,3,2,3]
7044 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Folded Reload
7045 ; SSE-NEXT:    # xmm12 = mem[0,0,1,1]
7046 ; SSE-NEXT:    punpckldq {{.*#+}} xmm12 = xmm12[0],xmm0[0],xmm12[1],xmm0[1]
7047 ; SSE-NEXT:    movsd {{.*#+}} xmm12 = xmm1[0],xmm12[1]
7048 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
7049 ; SSE-NEXT:    # xmm0 = mem[1,1,1,1]
7050 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
7051 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
7052 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
7053 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
7054 ; SSE-NEXT:    # xmm0 = mem[2,3,2,3]
7055 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Folded Reload
7056 ; SSE-NEXT:    # xmm11 = mem[0,0,1,1]
7057 ; SSE-NEXT:    punpckldq {{.*#+}} xmm11 = xmm11[0],xmm0[0],xmm11[1],xmm0[1]
7058 ; SSE-NEXT:    movsd {{.*#+}} xmm11 = xmm1[0],xmm11[1]
7059 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm8[1,1,1,1]
7060 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
7061 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
7062 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
7063 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
7064 ; SSE-NEXT:    # xmm0 = mem[2,3,2,3]
7065 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Folded Reload
7066 ; SSE-NEXT:    # xmm10 = mem[0,0,1,1]
7067 ; SSE-NEXT:    punpckldq {{.*#+}} xmm10 = xmm10[0],xmm0[0],xmm10[1],xmm0[1]
7068 ; SSE-NEXT:    movsd {{.*#+}} xmm10 = xmm1[0],xmm10[1]
7069 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
7070 ; SSE-NEXT:    # xmm0 = mem[1,1,1,1]
7071 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
7072 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
7073 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
7074 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
7075 ; SSE-NEXT:    # xmm0 = mem[2,3,2,3]
7076 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload
7077 ; SSE-NEXT:    # xmm9 = mem[0,0,1,1]
7078 ; SSE-NEXT:    punpckldq {{.*#+}} xmm9 = xmm9[0],xmm0[0],xmm9[1],xmm0[1]
7079 ; SSE-NEXT:    movsd {{.*#+}} xmm9 = xmm1[0],xmm9[1]
7080 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm5[1,1,1,1]
7081 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
7082 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
7083 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
7084 ; SSE-NEXT:    pshufd $238, (%rsp), %xmm0 # 16-byte Folded Reload
7085 ; SSE-NEXT:    # xmm0 = mem[2,3,2,3]
7086 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload
7087 ; SSE-NEXT:    # xmm8 = mem[0,0,1,1]
7088 ; SSE-NEXT:    punpckldq {{.*#+}} xmm8 = xmm8[0],xmm0[0],xmm8[1],xmm0[1]
7089 ; SSE-NEXT:    movsd {{.*#+}} xmm8 = xmm1[0],xmm8[1]
7090 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
7091 ; SSE-NEXT:    # xmm0 = mem[1,1,1,1]
7092 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
7093 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
7094 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
7095 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
7096 ; SSE-NEXT:    # xmm0 = mem[2,3,2,3]
7097 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload
7098 ; SSE-NEXT:    # xmm7 = mem[0,0,1,1]
7099 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm0[0],xmm7[1],xmm0[1]
7100 ; SSE-NEXT:    movsd {{.*#+}} xmm7 = xmm1[0],xmm7[1]
7101 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
7102 ; SSE-NEXT:    # xmm0 = mem[1,1,1,1]
7103 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
7104 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
7105 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
7106 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
7107 ; SSE-NEXT:    # xmm0 = mem[2,3,2,3]
7108 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload
7109 ; SSE-NEXT:    # xmm6 = mem[0,0,1,1]
7110 ; SSE-NEXT:    punpckldq {{.*#+}} xmm6 = xmm6[0],xmm0[0],xmm6[1],xmm0[1]
7111 ; SSE-NEXT:    movsd {{.*#+}} xmm6 = xmm1[0],xmm6[1]
7112 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
7113 ; SSE-NEXT:    # xmm0 = mem[1,1,1,1]
7114 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
7115 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
7116 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
7117 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
7118 ; SSE-NEXT:    # xmm0 = mem[2,3,2,3]
7119 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload
7120 ; SSE-NEXT:    # xmm5 = mem[0,0,1,1]
7121 ; SSE-NEXT:    punpckldq {{.*#+}} xmm5 = xmm5[0],xmm0[0],xmm5[1],xmm0[1]
7122 ; SSE-NEXT:    movsd {{.*#+}} xmm5 = xmm1[0],xmm5[1]
7123 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm3[1,1,1,1]
7124 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
7125 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
7126 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
7127 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
7128 ; SSE-NEXT:    # xmm0 = mem[2,3,2,3]
7129 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
7130 ; SSE-NEXT:    # xmm4 = mem[0,0,1,1]
7131 ; SSE-NEXT:    punpckldq {{.*#+}} xmm4 = xmm4[0],xmm0[0],xmm4[1],xmm0[1]
7132 ; SSE-NEXT:    movsd {{.*#+}} xmm4 = xmm1[0],xmm4[1]
7133 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
7134 ; SSE-NEXT:    # xmm1 = mem[1,1,1,1]
7135 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
7136 ; SSE-NEXT:    # xmm0 = mem[2,3,2,3]
7137 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
7138 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
7139 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
7140 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload
7141 ; SSE-NEXT:    # xmm3 = mem[0,0,1,1]
7142 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]
7143 ; SSE-NEXT:    movsd {{.*#+}} xmm3 = xmm0[0],xmm3[1]
7144 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm2[1,1,1,1]
7145 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
7146 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
7147 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
7148 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
7149 ; SSE-NEXT:    # xmm0 = mem[2,3,2,3]
7150 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
7151 ; SSE-NEXT:    # xmm2 = mem[0,0,1,1]
7152 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]
7153 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm1[0],xmm2[1]
7154 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7155 ; SSE-NEXT:    movaps %xmm0, 224(%rsi)
7156 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7157 ; SSE-NEXT:    movaps %xmm0, 160(%rsi)
7158 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7159 ; SSE-NEXT:    movaps %xmm0, 96(%rsi)
7160 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7161 ; SSE-NEXT:    movaps %xmm0, 32(%rsi)
7162 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7163 ; SSE-NEXT:    movaps %xmm0, 240(%rsi)
7164 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7165 ; SSE-NEXT:    movaps %xmm0, 176(%rsi)
7166 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7167 ; SSE-NEXT:    movaps %xmm0, 112(%rsi)
7168 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7169 ; SSE-NEXT:    movaps %xmm0, 48(%rsi)
7170 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7171 ; SSE-NEXT:    movaps %xmm0, 192(%rsi)
7172 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7173 ; SSE-NEXT:    movaps %xmm0, 128(%rsi)
7174 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7175 ; SSE-NEXT:    movaps %xmm0, 64(%rsi)
7176 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7177 ; SSE-NEXT:    movaps %xmm0, (%rsi)
7178 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7179 ; SSE-NEXT:    movaps %xmm0, 208(%rsi)
7180 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7181 ; SSE-NEXT:    movaps %xmm0, 144(%rsi)
7182 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7183 ; SSE-NEXT:    movaps %xmm0, 80(%rsi)
7184 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7185 ; SSE-NEXT:    movaps %xmm0, 16(%rsi)
7186 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7187 ; SSE-NEXT:    movaps %xmm0, 224(%rdx)
7188 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7189 ; SSE-NEXT:    movaps %xmm0, 240(%rdx)
7190 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7191 ; SSE-NEXT:    movaps %xmm0, 192(%rdx)
7192 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7193 ; SSE-NEXT:    movaps %xmm0, 208(%rdx)
7194 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7195 ; SSE-NEXT:    movaps %xmm0, 160(%rdx)
7196 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7197 ; SSE-NEXT:    movaps %xmm0, 176(%rdx)
7198 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7199 ; SSE-NEXT:    movaps %xmm0, 128(%rdx)
7200 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7201 ; SSE-NEXT:    movaps %xmm0, 144(%rdx)
7202 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7203 ; SSE-NEXT:    movaps %xmm0, 96(%rdx)
7204 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7205 ; SSE-NEXT:    movaps %xmm0, 112(%rdx)
7206 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7207 ; SSE-NEXT:    movaps %xmm0, 64(%rdx)
7208 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7209 ; SSE-NEXT:    movaps %xmm0, 80(%rdx)
7210 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7211 ; SSE-NEXT:    movaps %xmm0, 32(%rdx)
7212 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7213 ; SSE-NEXT:    movaps %xmm0, 48(%rdx)
7214 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7215 ; SSE-NEXT:    movaps %xmm0, (%rdx)
7216 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7217 ; SSE-NEXT:    movaps %xmm0, 16(%rdx)
7218 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7219 ; SSE-NEXT:    movaps %xmm0, 240(%rcx)
7220 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7221 ; SSE-NEXT:    movaps %xmm0, 224(%rcx)
7222 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7223 ; SSE-NEXT:    movaps %xmm0, 208(%rcx)
7224 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7225 ; SSE-NEXT:    movaps %xmm0, 192(%rcx)
7226 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7227 ; SSE-NEXT:    movaps %xmm0, 176(%rcx)
7228 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7229 ; SSE-NEXT:    movaps %xmm0, 160(%rcx)
7230 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7231 ; SSE-NEXT:    movaps %xmm0, 144(%rcx)
7232 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7233 ; SSE-NEXT:    movaps %xmm0, 128(%rcx)
7234 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7235 ; SSE-NEXT:    movaps %xmm0, 112(%rcx)
7236 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7237 ; SSE-NEXT:    movaps %xmm0, 96(%rcx)
7238 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7239 ; SSE-NEXT:    movaps %xmm0, 80(%rcx)
7240 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7241 ; SSE-NEXT:    movaps %xmm0, 64(%rcx)
7242 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7243 ; SSE-NEXT:    movaps %xmm0, 48(%rcx)
7244 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7245 ; SSE-NEXT:    movaps %xmm0, 32(%rcx)
7246 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7247 ; SSE-NEXT:    movaps %xmm0, 16(%rcx)
7248 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7249 ; SSE-NEXT:    movaps %xmm0, (%rcx)
7250 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7251 ; SSE-NEXT:    movaps %xmm0, 240(%r8)
7252 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7253 ; SSE-NEXT:    movaps %xmm0, 224(%r8)
7254 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7255 ; SSE-NEXT:    movaps %xmm0, 208(%r8)
7256 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7257 ; SSE-NEXT:    movaps %xmm0, 192(%r8)
7258 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7259 ; SSE-NEXT:    movaps %xmm0, 176(%r8)
7260 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7261 ; SSE-NEXT:    movaps %xmm0, 160(%r8)
7262 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7263 ; SSE-NEXT:    movaps %xmm0, 144(%r8)
7264 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7265 ; SSE-NEXT:    movaps %xmm0, 128(%r8)
7266 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7267 ; SSE-NEXT:    movaps %xmm0, 112(%r8)
7268 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7269 ; SSE-NEXT:    movaps %xmm0, 96(%r8)
7270 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7271 ; SSE-NEXT:    movaps %xmm0, 80(%r8)
7272 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7273 ; SSE-NEXT:    movaps %xmm0, 64(%r8)
7274 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7275 ; SSE-NEXT:    movaps %xmm0, 48(%r8)
7276 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7277 ; SSE-NEXT:    movaps %xmm0, 32(%r8)
7278 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7279 ; SSE-NEXT:    movaps %xmm0, 16(%r8)
7280 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7281 ; SSE-NEXT:    movaps %xmm0, (%r8)
7282 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7283 ; SSE-NEXT:    movaps %xmm0, 240(%r9)
7284 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7285 ; SSE-NEXT:    movaps %xmm0, 224(%r9)
7286 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7287 ; SSE-NEXT:    movaps %xmm0, 208(%r9)
7288 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7289 ; SSE-NEXT:    movaps %xmm0, 192(%r9)
7290 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7291 ; SSE-NEXT:    movaps %xmm0, 176(%r9)
7292 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7293 ; SSE-NEXT:    movaps %xmm0, 160(%r9)
7294 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7295 ; SSE-NEXT:    movaps %xmm0, 144(%r9)
7296 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7297 ; SSE-NEXT:    movaps %xmm0, 128(%r9)
7298 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7299 ; SSE-NEXT:    movaps %xmm0, 112(%r9)
7300 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7301 ; SSE-NEXT:    movaps %xmm0, 96(%r9)
7302 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7303 ; SSE-NEXT:    movaps %xmm0, 80(%r9)
7304 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7305 ; SSE-NEXT:    movaps %xmm0, 64(%r9)
7306 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7307 ; SSE-NEXT:    movaps %xmm0, 48(%r9)
7308 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7309 ; SSE-NEXT:    movaps %xmm0, 32(%r9)
7310 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7311 ; SSE-NEXT:    movaps %xmm0, 16(%r9)
7312 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7313 ; SSE-NEXT:    movaps %xmm0, (%r9)
7314 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
7315 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7316 ; SSE-NEXT:    movaps %xmm0, 240(%rax)
7317 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7318 ; SSE-NEXT:    movaps %xmm0, 224(%rax)
7319 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7320 ; SSE-NEXT:    movaps %xmm0, 208(%rax)
7321 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7322 ; SSE-NEXT:    movaps %xmm0, 192(%rax)
7323 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7324 ; SSE-NEXT:    movaps %xmm0, 176(%rax)
7325 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7326 ; SSE-NEXT:    movaps %xmm0, 160(%rax)
7327 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7328 ; SSE-NEXT:    movaps %xmm0, 144(%rax)
7329 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7330 ; SSE-NEXT:    movaps %xmm0, 128(%rax)
7331 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7332 ; SSE-NEXT:    movaps %xmm0, 112(%rax)
7333 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7334 ; SSE-NEXT:    movaps %xmm0, 96(%rax)
7335 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7336 ; SSE-NEXT:    movaps %xmm0, 80(%rax)
7337 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7338 ; SSE-NEXT:    movaps %xmm0, 64(%rax)
7339 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7340 ; SSE-NEXT:    movaps %xmm0, 48(%rax)
7341 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7342 ; SSE-NEXT:    movaps %xmm0, 32(%rax)
7343 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7344 ; SSE-NEXT:    movaps %xmm0, 16(%rax)
7345 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7346 ; SSE-NEXT:    movaps %xmm0, (%rax)
7347 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
7348 ; SSE-NEXT:    movapd %xmm2, 240(%rax)
7349 ; SSE-NEXT:    movapd %xmm3, 224(%rax)
7350 ; SSE-NEXT:    movapd %xmm4, 208(%rax)
7351 ; SSE-NEXT:    movapd %xmm5, 192(%rax)
7352 ; SSE-NEXT:    movapd %xmm6, 176(%rax)
7353 ; SSE-NEXT:    movapd %xmm7, 160(%rax)
7354 ; SSE-NEXT:    movapd %xmm8, 144(%rax)
7355 ; SSE-NEXT:    movapd %xmm9, 128(%rax)
7356 ; SSE-NEXT:    movapd %xmm10, 112(%rax)
7357 ; SSE-NEXT:    movapd %xmm11, 96(%rax)
7358 ; SSE-NEXT:    movapd %xmm12, 80(%rax)
7359 ; SSE-NEXT:    movapd %xmm13, 64(%rax)
7360 ; SSE-NEXT:    movapd %xmm14, 48(%rax)
7361 ; SSE-NEXT:    movapd %xmm15, 32(%rax)
7362 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7363 ; SSE-NEXT:    movaps %xmm0, 16(%rax)
7364 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7365 ; SSE-NEXT:    movaps %xmm0, (%rax)
7366 ; SSE-NEXT:    addq $2456, %rsp # imm = 0x998
7367 ; SSE-NEXT:    retq
7369 ; AVX1-ONLY-LABEL: load_i32_stride7_vf64:
7370 ; AVX1-ONLY:       # %bb.0:
7371 ; AVX1-ONLY-NEXT:    subq $3176, %rsp # imm = 0xC68
7372 ; AVX1-ONLY-NEXT:    vmovaps 704(%rdi), %ymm2
7373 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7374 ; AVX1-ONLY-NEXT:    vmovaps 672(%rdi), %ymm3
7375 ; AVX1-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7376 ; AVX1-ONLY-NEXT:    vmovaps 768(%rdi), %ymm5
7377 ; AVX1-ONLY-NEXT:    vmovaps 256(%rdi), %ymm4
7378 ; AVX1-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7379 ; AVX1-ONLY-NEXT:    vmovaps 224(%rdi), %ymm1
7380 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7381 ; AVX1-ONLY-NEXT:    vmovaps 320(%rdi), %ymm6
7382 ; AVX1-ONLY-NEXT:    vmovaps 304(%rdi), %xmm0
7383 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7384 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm6[0],ymm0[0],ymm6[2],ymm0[2]
7385 ; AVX1-ONLY-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7386 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm4[6],ymm1[7]
7387 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm1, %xmm1
7388 ; AVX1-ONLY-NEXT:    vmovaps 224(%rdi), %xmm13
7389 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm13[0,1],xmm1[2,3]
7390 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[0,3,2,3]
7391 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]
7392 ; AVX1-ONLY-NEXT:    vmovaps 384(%rdi), %xmm4
7393 ; AVX1-ONLY-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7394 ; AVX1-ONLY-NEXT:    vmovaps 352(%rdi), %xmm1
7395 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7396 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm4[1]
7397 ; AVX1-ONLY-NEXT:    vmovaps 416(%rdi), %xmm4
7398 ; AVX1-ONLY-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7399 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm1 = zero,xmm1[1,2],xmm4[1]
7400 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
7401 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
7402 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7403 ; AVX1-ONLY-NEXT:    vmovaps 752(%rdi), %xmm0
7404 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7405 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm5[0],ymm0[0],ymm5[2],ymm0[2]
7406 ; AVX1-ONLY-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7407 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3,4,5],ymm2[6],ymm3[7]
7408 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm1, %xmm1
7409 ; AVX1-ONLY-NEXT:    vmovaps 672(%rdi), %xmm2
7410 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
7411 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, %xmm3
7412 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[0,3,2,3]
7413 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]
7414 ; AVX1-ONLY-NEXT:    vmovaps 832(%rdi), %xmm2
7415 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7416 ; AVX1-ONLY-NEXT:    vmovaps 800(%rdi), %xmm1
7417 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7418 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
7419 ; AVX1-ONLY-NEXT:    vmovaps 864(%rdi), %xmm2
7420 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7421 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm1 = zero,xmm1[1,2],xmm2[1]
7422 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
7423 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
7424 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7425 ; AVX1-ONLY-NEXT:    vmovaps 1152(%rdi), %ymm1
7426 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7427 ; AVX1-ONLY-NEXT:    vmovaps 1120(%rdi), %ymm0
7428 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7429 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6],ymm0[7]
7430 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm0, %xmm0
7431 ; AVX1-ONLY-NEXT:    vmovaps 1120(%rdi), %xmm1
7432 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7433 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
7434 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[0,3,2,3]
7435 ; AVX1-ONLY-NEXT:    vmovaps 1216(%rdi), %ymm9
7436 ; AVX1-ONLY-NEXT:    vmovaps 1200(%rdi), %xmm1
7437 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7438 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm9[0],ymm1[0],ymm9[2],ymm1[2]
7439 ; AVX1-ONLY-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7440 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
7441 ; AVX1-ONLY-NEXT:    vmovaps 1280(%rdi), %xmm1
7442 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7443 ; AVX1-ONLY-NEXT:    vmovaps 1248(%rdi), %xmm2
7444 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7445 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm2[1],xmm1[1]
7446 ; AVX1-ONLY-NEXT:    vmovaps 1312(%rdi), %xmm2
7447 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7448 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm1 = zero,xmm1[1,2],xmm2[1]
7449 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
7450 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
7451 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7452 ; AVX1-ONLY-NEXT:    vmovaps 1600(%rdi), %ymm1
7453 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7454 ; AVX1-ONLY-NEXT:    vmovaps 1568(%rdi), %ymm0
7455 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7456 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6],ymm0[7]
7457 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm0, %xmm0
7458 ; AVX1-ONLY-NEXT:    vmovaps 1568(%rdi), %xmm1
7459 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7460 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
7461 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[0,3,2,3]
7462 ; AVX1-ONLY-NEXT:    vmovaps 1664(%rdi), %ymm2
7463 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7464 ; AVX1-ONLY-NEXT:    vmovaps 1648(%rdi), %xmm1
7465 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7466 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],ymm1[0],ymm2[2],ymm1[2]
7467 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
7468 ; AVX1-ONLY-NEXT:    vmovaps 1728(%rdi), %xmm1
7469 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7470 ; AVX1-ONLY-NEXT:    vmovaps 1696(%rdi), %xmm2
7471 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7472 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm2[1],xmm1[1]
7473 ; AVX1-ONLY-NEXT:    vmovaps 1760(%rdi), %xmm2
7474 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7475 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm1 = zero,xmm1[1,2],xmm2[1]
7476 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
7477 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
7478 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7479 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %ymm0
7480 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7481 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %ymm1
7482 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7483 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6],ymm1[7]
7484 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm0, %xmm0
7485 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %xmm1
7486 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7487 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
7488 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[0,3,2,3]
7489 ; AVX1-ONLY-NEXT:    vmovaps 96(%rdi), %ymm15
7490 ; AVX1-ONLY-NEXT:    vmovaps 80(%rdi), %xmm1
7491 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7492 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm15[0],ymm1[0],ymm15[2],ymm1[2]
7493 ; AVX1-ONLY-NEXT:    vmovups %ymm15, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7494 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
7495 ; AVX1-ONLY-NEXT:    vmovaps 160(%rdi), %xmm2
7496 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7497 ; AVX1-ONLY-NEXT:    vmovaps 128(%rdi), %xmm1
7498 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7499 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
7500 ; AVX1-ONLY-NEXT:    vmovaps 192(%rdi), %xmm2
7501 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7502 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm1 = zero,xmm1[1,2],xmm2[1]
7503 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
7504 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
7505 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7506 ; AVX1-ONLY-NEXT:    vmovaps 480(%rdi), %ymm1
7507 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7508 ; AVX1-ONLY-NEXT:    vmovaps 448(%rdi), %ymm0
7509 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7510 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6],ymm0[7]
7511 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm0, %xmm0
7512 ; AVX1-ONLY-NEXT:    vmovaps 448(%rdi), %xmm1
7513 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7514 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
7515 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[0,3,2,3]
7516 ; AVX1-ONLY-NEXT:    vmovaps 544(%rdi), %ymm2
7517 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7518 ; AVX1-ONLY-NEXT:    vmovaps 528(%rdi), %xmm1
7519 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7520 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],ymm1[0],ymm2[2],ymm1[2]
7521 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
7522 ; AVX1-ONLY-NEXT:    vmovaps 608(%rdi), %xmm1
7523 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7524 ; AVX1-ONLY-NEXT:    vmovaps 576(%rdi), %xmm2
7525 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7526 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm2[1],xmm1[1]
7527 ; AVX1-ONLY-NEXT:    vmovaps 640(%rdi), %xmm2
7528 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7529 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm1 = zero,xmm1[1,2],xmm2[1]
7530 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
7531 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
7532 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7533 ; AVX1-ONLY-NEXT:    vmovaps 928(%rdi), %ymm1
7534 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7535 ; AVX1-ONLY-NEXT:    vmovaps 896(%rdi), %ymm0
7536 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7537 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6],ymm0[7]
7538 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm0, %xmm0
7539 ; AVX1-ONLY-NEXT:    vmovaps 896(%rdi), %xmm12
7540 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm12[0,1],xmm0[2,3]
7541 ; AVX1-ONLY-NEXT:    vmovaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7542 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[0,3,2,3]
7543 ; AVX1-ONLY-NEXT:    vmovaps 992(%rdi), %ymm4
7544 ; AVX1-ONLY-NEXT:    vmovaps 976(%rdi), %xmm1
7545 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7546 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm4[0],ymm1[0],ymm4[2],ymm1[2]
7547 ; AVX1-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7548 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
7549 ; AVX1-ONLY-NEXT:    vmovaps 1056(%rdi), %xmm1
7550 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7551 ; AVX1-ONLY-NEXT:    vmovaps 1024(%rdi), %xmm2
7552 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7553 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm2[1],xmm1[1]
7554 ; AVX1-ONLY-NEXT:    vmovaps 1088(%rdi), %xmm10
7555 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm1 = zero,xmm1[1,2],xmm10[1]
7556 ; AVX1-ONLY-NEXT:    vmovaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7557 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
7558 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
7559 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7560 ; AVX1-ONLY-NEXT:    vmovaps 1376(%rdi), %ymm1
7561 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7562 ; AVX1-ONLY-NEXT:    vmovaps 1344(%rdi), %ymm0
7563 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7564 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6],ymm0[7]
7565 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm0, %xmm0
7566 ; AVX1-ONLY-NEXT:    vmovaps 1344(%rdi), %xmm1
7567 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7568 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
7569 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[0,3,2,3]
7570 ; AVX1-ONLY-NEXT:    vmovaps 1440(%rdi), %ymm8
7571 ; AVX1-ONLY-NEXT:    vmovaps 1424(%rdi), %xmm1
7572 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7573 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm8[0],ymm1[0],ymm8[2],ymm1[2]
7574 ; AVX1-ONLY-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7575 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
7576 ; AVX1-ONLY-NEXT:    vmovaps 1504(%rdi), %xmm2
7577 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7578 ; AVX1-ONLY-NEXT:    vmovaps 1472(%rdi), %xmm1
7579 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7580 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
7581 ; AVX1-ONLY-NEXT:    vmovaps 1536(%rdi), %xmm14
7582 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm1 = zero,xmm1[1,2],xmm14[1]
7583 ; AVX1-ONLY-NEXT:    vmovaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7584 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
7585 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
7586 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7587 ; AVX1-ONLY-NEXT:    vmovaps 288(%rdi), %ymm0
7588 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7589 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm6[1,1],ymm0[2,2],ymm6[5,5],ymm0[6,6]
7590 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm0[2,3,2,3]
7591 ; AVX1-ONLY-NEXT:    vmovaps 256(%rdi), %xmm1
7592 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7593 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0],xmm13[1],xmm1[2,3]
7594 ; AVX1-ONLY-NEXT:    vmovaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7595 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[1,0],mem[3,3]
7596 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]
7597 ; AVX1-ONLY-NEXT:    vmovaps 384(%rdi), %ymm1
7598 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7599 ; AVX1-ONLY-NEXT:    vmovaps 352(%rdi), %ymm2
7600 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7601 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm2[2,3],ymm1[0,1]
7602 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm2[0,0],ymm1[3,3],ymm2[4,4],ymm1[7,7]
7603 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm1, %xmm1
7604 ; AVX1-ONLY-NEXT:    vinsertps $49, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
7605 ; AVX1-ONLY-NEXT:    # xmm1 = zero,xmm1[1,2],mem[0]
7606 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
7607 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
7608 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7609 ; AVX1-ONLY-NEXT:    vmovaps 736(%rdi), %ymm0
7610 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7611 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm5[1,1],ymm0[2,2],ymm5[5,5],ymm0[6,6]
7612 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm0[2,3,2,3]
7613 ; AVX1-ONLY-NEXT:    vmovaps 704(%rdi), %xmm1
7614 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7615 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0],xmm3[1],xmm1[2,3]
7616 ; AVX1-ONLY-NEXT:    vmovaps %xmm3, %xmm5
7617 ; AVX1-ONLY-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7618 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[1,0],mem[3,3]
7619 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]
7620 ; AVX1-ONLY-NEXT:    vmovaps 832(%rdi), %ymm1
7621 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7622 ; AVX1-ONLY-NEXT:    vmovaps 800(%rdi), %ymm3
7623 ; AVX1-ONLY-NEXT:    vmovups %ymm3, (%rsp) # 32-byte Spill
7624 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm3[2,3],ymm1[0,1]
7625 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm3[0,0],ymm1[3,3],ymm3[4,4],ymm1[7,7]
7626 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm1, %xmm1
7627 ; AVX1-ONLY-NEXT:    vinsertps $49, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
7628 ; AVX1-ONLY-NEXT:    # xmm1 = zero,xmm1[1,2],mem[0]
7629 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
7630 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
7631 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7632 ; AVX1-ONLY-NEXT:    vmovaps 1184(%rdi), %ymm0
7633 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7634 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm9[1,1],ymm0[2,2],ymm9[5,5],ymm0[6,6]
7635 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm0[2,3,2,3]
7636 ; AVX1-ONLY-NEXT:    vmovaps 1152(%rdi), %xmm11
7637 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload
7638 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm11[0],xmm9[1],xmm11[2,3]
7639 ; AVX1-ONLY-NEXT:    vmovaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7640 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[1,0],mem[3,3]
7641 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]
7642 ; AVX1-ONLY-NEXT:    vmovaps 1280(%rdi), %ymm1
7643 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7644 ; AVX1-ONLY-NEXT:    vmovaps 1248(%rdi), %ymm2
7645 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7646 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm2[2,3],ymm1[0,1]
7647 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm2[0,0],ymm1[3,3],ymm2[4,4],ymm1[7,7]
7648 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm1, %xmm1
7649 ; AVX1-ONLY-NEXT:    vinsertps $49, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
7650 ; AVX1-ONLY-NEXT:    # xmm1 = zero,xmm1[1,2],mem[0]
7651 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
7652 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
7653 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7654 ; AVX1-ONLY-NEXT:    vmovaps 1632(%rdi), %ymm0
7655 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7656 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7657 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[1,1],ymm0[2,2],ymm1[5,5],ymm0[6,6]
7658 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm0[2,3,2,3]
7659 ; AVX1-ONLY-NEXT:    vmovaps 1600(%rdi), %xmm1
7660 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7661 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
7662 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0],xmm7[1],xmm1[2,3]
7663 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[1,0],mem[3,3]
7664 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]
7665 ; AVX1-ONLY-NEXT:    vmovaps 1728(%rdi), %ymm1
7666 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7667 ; AVX1-ONLY-NEXT:    vmovaps 1696(%rdi), %ymm2
7668 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7669 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm2[2,3],ymm1[0,1]
7670 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm2[0,0],ymm1[3,3],ymm2[4,4],ymm1[7,7]
7671 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm1, %xmm1
7672 ; AVX1-ONLY-NEXT:    vinsertps $49, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
7673 ; AVX1-ONLY-NEXT:    # xmm1 = zero,xmm1[1,2],mem[0]
7674 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
7675 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
7676 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7677 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdi), %ymm0
7678 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7679 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm15[1,1],ymm0[2,2],ymm15[5,5],ymm0[6,6]
7680 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm0[2,3,2,3]
7681 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %xmm1
7682 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7683 ; AVX1-ONLY-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
7684 ; AVX1-ONLY-NEXT:    # xmm1 = xmm1[0],mem[1],xmm1[2,3]
7685 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[1,0],mem[3,3]
7686 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2],ymm0[3,4,5,6,7]
7687 ; AVX1-ONLY-NEXT:    vmovaps 160(%rdi), %ymm2
7688 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7689 ; AVX1-ONLY-NEXT:    vmovaps 128(%rdi), %ymm0
7690 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7691 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm2 = ymm0[2,3],ymm2[0,1]
7692 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm0[0,0],ymm2[3,3],ymm0[4,4],ymm2[7,7]
7693 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm2, %xmm2
7694 ; AVX1-ONLY-NEXT:    vinsertps $49, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
7695 ; AVX1-ONLY-NEXT:    # xmm2 = zero,xmm2[1,2],mem[0]
7696 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
7697 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
7698 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7699 ; AVX1-ONLY-NEXT:    vmovaps 512(%rdi), %ymm0
7700 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7701 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
7702 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm6[1,1],ymm0[2,2],ymm6[5,5],ymm0[6,6]
7703 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm1[2,3,2,3]
7704 ; AVX1-ONLY-NEXT:    vmovaps 480(%rdi), %xmm0
7705 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7706 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
7707 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm0[0],xmm15[1],xmm0[2,3]
7708 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[1,0],mem[3,3]
7709 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2],ymm1[3,4,5,6,7]
7710 ; AVX1-ONLY-NEXT:    vmovaps 608(%rdi), %ymm0
7711 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7712 ; AVX1-ONLY-NEXT:    vmovaps 576(%rdi), %ymm1
7713 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7714 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm1[2,3],ymm0[0,1]
7715 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm3 = ymm1[0,0],ymm3[3,3],ymm1[4,4],ymm3[7,7]
7716 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm3, %xmm3
7717 ; AVX1-ONLY-NEXT:    vinsertps $49, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm3 # 16-byte Folded Reload
7718 ; AVX1-ONLY-NEXT:    # xmm3 = zero,xmm3[1,2],mem[0]
7719 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
7720 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm3[5,6,7]
7721 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7722 ; AVX1-ONLY-NEXT:    vmovaps 960(%rdi), %ymm0
7723 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7724 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm4[1,1],ymm0[2,2],ymm4[5,5],ymm0[6,6]
7725 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm2 = ymm2[2,3,2,3]
7726 ; AVX1-ONLY-NEXT:    vmovaps 928(%rdi), %xmm0
7727 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7728 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm3 = xmm0[0],xmm12[1],xmm0[2,3]
7729 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm3 = xmm3[1,0],mem[3,3]
7730 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2],ymm2[3,4,5,6,7]
7731 ; AVX1-ONLY-NEXT:    vmovaps 1056(%rdi), %ymm0
7732 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7733 ; AVX1-ONLY-NEXT:    vmovaps 1024(%rdi), %ymm1
7734 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7735 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm4 = ymm1[2,3],ymm0[0,1]
7736 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm4 = ymm1[0,0],ymm4[3,3],ymm1[4,4],ymm4[7,7]
7737 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm4, %xmm4
7738 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm4 = zero,xmm4[1,2],xmm10[2]
7739 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
7740 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm4[5,6,7]
7741 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7742 ; AVX1-ONLY-NEXT:    vmovaps 1408(%rdi), %ymm0
7743 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7744 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm4 = ymm8[1,1],ymm0[2,2],ymm8[5,5],ymm0[6,6]
7745 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm4 = ymm4[2,3,2,3]
7746 ; AVX1-ONLY-NEXT:    vmovaps 1376(%rdi), %xmm0
7747 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7748 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
7749 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm12 = xmm0[0],xmm3[1],xmm0[2,3]
7750 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm12 = xmm12[1,0],mem[3,3]
7751 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2],ymm4[3,4,5,6,7]
7752 ; AVX1-ONLY-NEXT:    vmovaps 1504(%rdi), %ymm0
7753 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7754 ; AVX1-ONLY-NEXT:    vmovaps 1472(%rdi), %ymm1
7755 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7756 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm10 = ymm1[2,3],ymm0[0,1]
7757 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm10 = ymm1[0,0],ymm10[3,3],ymm1[4,4],ymm10[7,7]
7758 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm10, %xmm10
7759 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm10 = zero,xmm10[1,2],xmm14[2]
7760 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
7761 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm10 = ymm12[0,1,2,3,4],ymm10[5,6,7]
7762 ; AVX1-ONLY-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7763 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm10 = xmm13[2,3,2,3]
7764 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
7765 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0],xmm14[1],xmm10[2,3]
7766 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
7767 ; AVX1-ONLY-NEXT:    vshufps $199, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm12 # 32-byte Folded Reload
7768 ; AVX1-ONLY-NEXT:    # ymm12 = ymm12[3,1],mem[0,3],ymm12[7,5],mem[4,7]
7769 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7770 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm12 = ymm0[2,1],ymm12[2,0],ymm0[6,5],ymm12[6,4]
7771 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1],ymm12[2,3,4,5,6,7]
7772 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
7773 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7774 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm12 = ymm0[0],ymm8[0],ymm0[2],ymm8[2]
7775 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm12, %xmm12
7776 ; AVX1-ONLY-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm12, %xmm12 # 16-byte Folded Reload
7777 ; AVX1-ONLY-NEXT:    # xmm12 = xmm12[0,1,2],mem[3]
7778 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm12
7779 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1,2,3,4],ymm12[5,6,7]
7780 ; AVX1-ONLY-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7781 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm10 = xmm5[2,3,2,3]
7782 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
7783 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0],xmm5[1],xmm10[2,3]
7784 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
7785 ; AVX1-ONLY-NEXT:    vshufps $199, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm12 # 32-byte Folded Reload
7786 ; AVX1-ONLY-NEXT:    # ymm12 = ymm12[3,1],mem[0,3],ymm12[7,5],mem[4,7]
7787 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7788 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm12 = ymm0[2,1],ymm12[2,0],ymm0[6,5],ymm12[6,4]
7789 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1],ymm12[2,3,4,5,6,7]
7790 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7791 ; AVX1-ONLY-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
7792 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm12 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
7793 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm12, %xmm12
7794 ; AVX1-ONLY-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm12, %xmm12 # 16-byte Folded Reload
7795 ; AVX1-ONLY-NEXT:    # xmm12 = xmm12[0,1,2],mem[3]
7796 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm12
7797 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1,2,3,4],ymm12[5,6,7]
7798 ; AVX1-ONLY-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7799 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm10 = xmm9[2,3,2,3]
7800 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0],xmm11[1],xmm10[2,3]
7801 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
7802 ; AVX1-ONLY-NEXT:    vshufps $199, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm12 # 32-byte Folded Reload
7803 ; AVX1-ONLY-NEXT:    # ymm12 = ymm12[3,1],mem[0,3],ymm12[7,5],mem[4,7]
7804 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7805 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm12 = ymm0[2,1],ymm12[2,0],ymm0[6,5],ymm12[6,4]
7806 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1],ymm12[2,3,4,5,6,7]
7807 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7808 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
7809 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm12 = ymm13[0],ymm0[0],ymm13[2],ymm0[2]
7810 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm12, %xmm12
7811 ; AVX1-ONLY-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm12, %xmm12 # 16-byte Folded Reload
7812 ; AVX1-ONLY-NEXT:    # xmm12 = xmm12[0,1,2],mem[3]
7813 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm12
7814 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1,2,3,4],ymm12[5,6,7]
7815 ; AVX1-ONLY-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7816 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm10 = xmm7[2,3,2,3]
7817 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload
7818 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0],xmm9[1],xmm10[2,3]
7819 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
7820 ; AVX1-ONLY-NEXT:    vshufps $199, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm12 # 32-byte Folded Reload
7821 ; AVX1-ONLY-NEXT:    # ymm12 = ymm12[3,1],mem[0,3],ymm12[7,5],mem[4,7]
7822 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
7823 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm12 = ymm2[2,1],ymm12[2,0],ymm2[6,5],ymm12[6,4]
7824 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1],ymm12[2,3,4,5,6,7]
7825 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload
7826 ; AVX1-ONLY-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm12 # 32-byte Folded Reload
7827 ; AVX1-ONLY-NEXT:    # ymm12 = ymm11[0],mem[0],ymm11[2],mem[2]
7828 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm12, %xmm12
7829 ; AVX1-ONLY-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm12, %xmm12 # 16-byte Folded Reload
7830 ; AVX1-ONLY-NEXT:    # xmm12 = xmm12[0,1,2],mem[3]
7831 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm12
7832 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1,2,3,4],ymm12[5,6,7]
7833 ; AVX1-ONLY-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7834 ; AVX1-ONLY-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Folded Reload
7835 ; AVX1-ONLY-NEXT:    # xmm10 = mem[2,3,2,3]
7836 ; AVX1-ONLY-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm10, %xmm10 # 16-byte Folded Reload
7837 ; AVX1-ONLY-NEXT:    # xmm10 = xmm10[0],mem[1],xmm10[2,3]
7838 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
7839 ; AVX1-ONLY-NEXT:    vshufps $199, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm12 # 32-byte Folded Reload
7840 ; AVX1-ONLY-NEXT:    # ymm12 = ymm12[3,1],mem[0,3],ymm12[7,5],mem[4,7]
7841 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
7842 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm12 = ymm2[2,1],ymm12[2,0],ymm2[6,5],ymm12[6,4]
7843 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1],ymm12[2,3,4,5,6,7]
7844 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
7845 ; AVX1-ONLY-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm12 # 32-byte Folded Reload
7846 ; AVX1-ONLY-NEXT:    # ymm12 = ymm2[0],mem[0],ymm2[2],mem[2]
7847 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm12, %xmm12
7848 ; AVX1-ONLY-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm12, %xmm12 # 16-byte Folded Reload
7849 ; AVX1-ONLY-NEXT:    # xmm12 = xmm12[0,1,2],mem[3]
7850 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm12
7851 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1,2,3,4],ymm12[5,6,7]
7852 ; AVX1-ONLY-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7853 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm10 = xmm15[2,3,2,3]
7854 ; AVX1-ONLY-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm10, %xmm10 # 16-byte Folded Reload
7855 ; AVX1-ONLY-NEXT:    # xmm10 = xmm10[0],mem[1],xmm10[2,3]
7856 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
7857 ; AVX1-ONLY-NEXT:    vshufps $199, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm12 # 32-byte Folded Reload
7858 ; AVX1-ONLY-NEXT:    # ymm12 = ymm12[3,1],mem[0,3],ymm12[7,5],mem[4,7]
7859 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm12 = ymm6[2,1],ymm12[2,0],ymm6[6,5],ymm12[6,4]
7860 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1],ymm12[2,3,4,5,6,7]
7861 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
7862 ; AVX1-ONLY-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm12 # 32-byte Folded Reload
7863 ; AVX1-ONLY-NEXT:    # ymm12 = ymm2[0],mem[0],ymm2[2],mem[2]
7864 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm12, %xmm12
7865 ; AVX1-ONLY-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm12, %xmm12 # 16-byte Folded Reload
7866 ; AVX1-ONLY-NEXT:    # xmm12 = xmm12[0,1,2],mem[3]
7867 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm12
7868 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1,2,3,4],ymm12[5,6,7]
7869 ; AVX1-ONLY-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7870 ; AVX1-ONLY-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Folded Reload
7871 ; AVX1-ONLY-NEXT:    # xmm10 = mem[2,3,2,3]
7872 ; AVX1-ONLY-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm10, %xmm10 # 16-byte Folded Reload
7873 ; AVX1-ONLY-NEXT:    # xmm10 = xmm10[0],mem[1],xmm10[2,3]
7874 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
7875 ; AVX1-ONLY-NEXT:    vshufps $199, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm12 # 32-byte Folded Reload
7876 ; AVX1-ONLY-NEXT:    # ymm12 = ymm12[3,1],mem[0,3],ymm12[7,5],mem[4,7]
7877 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
7878 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm12 = ymm2[2,1],ymm12[2,0],ymm2[6,5],ymm12[6,4]
7879 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1],ymm12[2,3,4,5,6,7]
7880 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
7881 ; AVX1-ONLY-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm12 # 32-byte Folded Reload
7882 ; AVX1-ONLY-NEXT:    # ymm12 = ymm2[0],mem[0],ymm2[2],mem[2]
7883 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm12, %xmm12
7884 ; AVX1-ONLY-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm12, %xmm12 # 16-byte Folded Reload
7885 ; AVX1-ONLY-NEXT:    # xmm12 = xmm12[0,1,2],mem[3]
7886 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm12
7887 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1,2,3,4],ymm12[5,6,7]
7888 ; AVX1-ONLY-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7889 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm10 = xmm3[2,3,2,3]
7890 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
7891 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0],xmm4[1],xmm10[2,3]
7892 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
7893 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
7894 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm12 = ymm12[3,1],ymm6[0,3],ymm12[7,5],ymm6[4,7]
7895 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
7896 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm12 = ymm2[2,1],ymm12[2,0],ymm2[6,5],ymm12[6,4]
7897 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1],ymm12[2,3,4,5,6,7]
7898 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
7899 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
7900 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm12 = ymm7[0],ymm3[0],ymm7[2],ymm3[2]
7901 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm12, %xmm12
7902 ; AVX1-ONLY-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm12, %xmm12 # 16-byte Folded Reload
7903 ; AVX1-ONLY-NEXT:    # xmm12 = xmm12[0,1,2],mem[3]
7904 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm12
7905 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1,2,3,4],ymm12[5,6,7]
7906 ; AVX1-ONLY-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7907 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
7908 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
7909 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm10 = ymm10[1,0],ymm12[0,0],ymm10[5,4],ymm12[4,4]
7910 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm10 = ymm12[3,1],ymm10[0,2],ymm12[7,5],ymm10[4,6]
7911 ; AVX1-ONLY-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm14, %xmm12 # 16-byte Folded Reload
7912 ; AVX1-ONLY-NEXT:    # xmm12 = xmm14[0,1,2],mem[3]
7913 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm12 = xmm12[3,2,2,3]
7914 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm10 = ymm12[0,1],ymm10[2,3,4,5,6,7]
7915 ; AVX1-ONLY-NEXT:    vmovaps 416(%rdi), %ymm12
7916 ; AVX1-ONLY-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7917 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm15 = ymm12[0,1],ymm8[1,3],ymm12[4,5],ymm8[5,7]
7918 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
7919 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm15 = ymm8[0,2],ymm15[2,0],ymm8[4,6],ymm15[6,4]
7920 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1,2,3,4],ymm15[5,6,7]
7921 ; AVX1-ONLY-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7922 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
7923 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
7924 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm10 = ymm8[1,0],ymm12[0,0],ymm8[5,4],ymm12[4,4]
7925 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm10 = ymm12[3,1],ymm10[0,2],ymm12[7,5],ymm10[4,6]
7926 ; AVX1-ONLY-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm15 # 16-byte Folded Reload
7927 ; AVX1-ONLY-NEXT:    # xmm15 = xmm5[0,1,2],mem[3]
7928 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm15 = xmm15[3,2,2,3]
7929 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm10 = ymm15[0,1],ymm10[2,3,4,5,6,7]
7930 ; AVX1-ONLY-NEXT:    vmovaps 864(%rdi), %ymm5
7931 ; AVX1-ONLY-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7932 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm15 = ymm5[0,1],ymm1[1,3],ymm5[4,5],ymm1[5,7]
7933 ; AVX1-ONLY-NEXT:    vmovups (%rsp), %ymm1 # 32-byte Reload
7934 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm15 = ymm1[0,2],ymm15[2,0],ymm1[4,6],ymm15[6,4]
7935 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm10[0,1,2,3,4],ymm15[5,6,7]
7936 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7937 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7938 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
7939 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm10 = ymm5[1,0],ymm1[0,0],ymm5[5,4],ymm1[4,4]
7940 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm10 = ymm1[3,1],ymm10[0,2],ymm1[7,5],ymm10[4,6]
7941 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7942 ; AVX1-ONLY-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm15 # 16-byte Folded Reload
7943 ; AVX1-ONLY-NEXT:    # xmm15 = mem[0,1,2],xmm1[3]
7944 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm15 = xmm15[3,2,2,3]
7945 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm10 = ymm15[0,1],ymm10[2,3,4,5,6,7]
7946 ; AVX1-ONLY-NEXT:    vmovaps 1312(%rdi), %ymm1
7947 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7948 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm15 = ymm1[0,1],ymm0[1,3],ymm1[4,5],ymm0[5,7]
7949 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm15 = ymm13[0,2],ymm15[2,0],ymm13[4,6],ymm15[6,4]
7950 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1,2,3,4],ymm15[5,6,7]
7951 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7952 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7953 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7954 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm10 = ymm1[1,0],ymm0[0,0],ymm1[5,4],ymm0[4,4]
7955 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm10 = ymm0[3,1],ymm10[0,2],ymm0[7,5],ymm10[4,6]
7956 ; AVX1-ONLY-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9, %xmm15 # 16-byte Folded Reload
7957 ; AVX1-ONLY-NEXT:    # xmm15 = xmm9[0,1,2],mem[3]
7958 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm15 = xmm15[3,2,2,3]
7959 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm10 = ymm15[0,1],ymm10[2,3,4,5,6,7]
7960 ; AVX1-ONLY-NEXT:    vmovaps 1760(%rdi), %ymm0
7961 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7962 ; AVX1-ONLY-NEXT:    vshufps $212, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm15 # 32-byte Folded Reload
7963 ; AVX1-ONLY-NEXT:    # ymm15 = ymm0[0,1],mem[1,3],ymm0[4,5],mem[5,7]
7964 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm15 = ymm11[0,2],ymm15[2,0],ymm11[4,6],ymm15[6,4]
7965 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1,2,3,4],ymm15[5,6,7]
7966 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7967 ; AVX1-ONLY-NEXT:    vmovaps %ymm2, %ymm0
7968 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm6[1,0],ymm2[0,0],ymm6[5,4],ymm2[4,4]
7969 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm0[3,1],ymm2[0,2],ymm0[7,5],ymm2[4,6]
7970 ; AVX1-ONLY-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm9 # 16-byte Folded Reload
7971 ; AVX1-ONLY-NEXT:    # xmm9 = xmm4[0,1,2],mem[3]
7972 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm9 = xmm9[3,2,2,3]
7973 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm9[0,1],ymm2[2,3,4,5,6,7]
7974 ; AVX1-ONLY-NEXT:    vmovaps 1536(%rdi), %ymm0
7975 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7976 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm9 = ymm0[0,1],ymm3[1,3],ymm0[4,5],ymm3[5,7]
7977 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm9 = ymm7[0,2],ymm9[2,0],ymm7[4,6],ymm9[6,4]
7978 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3,4],ymm9[5,6,7]
7979 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7980 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7981 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7982 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm1[1,0],ymm0[0,0],ymm1[5,4],ymm0[4,4]
7983 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm0[3,1],ymm2[0,2],ymm0[7,5],ymm2[4,6]
7984 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
7985 ; AVX1-ONLY-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm7 # 16-byte Folded Reload
7986 ; AVX1-ONLY-NEXT:    # xmm7 = xmm15[0,1,2],mem[3]
7987 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm7 = xmm7[3,2,2,3]
7988 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm7[0,1],ymm2[2,3,4,5,6,7]
7989 ; AVX1-ONLY-NEXT:    vmovaps 1088(%rdi), %ymm12
7990 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
7991 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm7 = ymm12[0,1],ymm8[1,3],ymm12[4,5],ymm8[5,7]
7992 ; AVX1-ONLY-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7993 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload
7994 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm7 = ymm11[0,2],ymm7[2,0],ymm11[4,6],ymm7[6,4]
7995 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3,4],ymm7[5,6,7]
7996 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7997 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7998 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7999 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm1[1,0],ymm0[0,0],ymm1[5,4],ymm0[4,4]
8000 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm0[3,1],ymm2[0,2],ymm0[7,5],ymm2[4,6]
8001 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
8002 ; AVX1-ONLY-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm14, %xmm7 # 16-byte Folded Reload
8003 ; AVX1-ONLY-NEXT:    # xmm7 = xmm14[0,1,2],mem[3]
8004 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm7 = xmm7[3,2,2,3]
8005 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm7[0,1],ymm2[2,3,4,5,6,7]
8006 ; AVX1-ONLY-NEXT:    vmovaps 640(%rdi), %ymm4
8007 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
8008 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm7 = ymm4[0,1],ymm10[1,3],ymm4[4,5],ymm10[5,7]
8009 ; AVX1-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8010 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
8011 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm7 = ymm3[0,2],ymm7[2,0],ymm3[4,6],ymm7[6,4]
8012 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3,4],ymm7[5,6,7]
8013 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8014 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8015 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8016 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm1[1,0],ymm0[0,0],ymm1[5,4],ymm0[4,4]
8017 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm0[3,1],ymm2[0,2],ymm0[7,5],ymm2[4,6]
8018 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
8019 ; AVX1-ONLY-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm7 # 16-byte Folded Reload
8020 ; AVX1-ONLY-NEXT:    # xmm7 = xmm5[0,1,2],mem[3]
8021 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm7 = xmm7[3,2,2,3]
8022 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1],ymm2[2,3,4,5,6,7]
8023 ; AVX1-ONLY-NEXT:    vmovaps 192(%rdi), %ymm13
8024 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8025 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm9 = ymm13[0,1],ymm1[1,3],ymm13[4,5],ymm1[5,7]
8026 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
8027 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm9 = ymm2[0,2],ymm9[2,0],ymm2[4,6],ymm9[6,4]
8028 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm7[0,1,2,3,4],ymm9[5,6,7]
8029 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8030 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm7 = ymm2[2,3,0,1]
8031 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm2[3,0],ymm7[0,0],ymm2[7,4],ymm7[4,4]
8032 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm7 = ymm13[1,0],ymm1[2,0],ymm13[5,4],ymm1[6,4]
8033 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm7[2,0],ymm0[6,4],ymm7[6,4]
8034 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdi), %xmm9
8035 ; AVX1-ONLY-NEXT:    vmovaps 96(%rdi), %xmm1
8036 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8037 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm7 = xmm1[0,1,0,1]
8038 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm7 = xmm9[0,1,2],xmm7[3]
8039 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm6 = xmm5[2,3,2,3]
8040 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm6 = mem[0],xmm6[1],mem[2,3]
8041 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0,1],xmm7[2,3]
8042 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm6[0,1,2,3],ymm0[4,5,6,7]
8043 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8044 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8045 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm1[2,3,0,1]
8046 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[3,0],ymm0[0,0],ymm1[7,4],ymm0[4,4]
8047 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
8048 ; AVX1-ONLY-NEXT:    vshufps $33, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm5 # 32-byte Folded Reload
8049 ; AVX1-ONLY-NEXT:    # ymm5 = ymm7[1,0],mem[2,0],ymm7[5,4],mem[6,4]
8050 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm5[2,0],ymm0[6,4],ymm5[6,4]
8051 ; AVX1-ONLY-NEXT:    vmovaps 320(%rdi), %xmm1
8052 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8053 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm5 = xmm1[0,1,0,1]
8054 ; AVX1-ONLY-NEXT:    vmovaps 288(%rdi), %xmm1
8055 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8056 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm5 = xmm1[0,1,2],xmm5[3]
8057 ; AVX1-ONLY-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload
8058 ; AVX1-ONLY-NEXT:    # xmm6 = mem[2,3,2,3]
8059 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm6 = mem[0],xmm6[1],mem[2,3]
8060 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm5 = xmm6[0,1],xmm5[2,3]
8061 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm5[0,1,2,3],ymm0[4,5,6,7]
8062 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8063 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm3[2,3,0,1]
8064 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm3[3,0],ymm0[0,0],ymm3[7,4],ymm0[4,4]
8065 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm4[1,0],ymm10[2,0],ymm4[5,4],ymm10[6,4]
8066 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm1[2,0],ymm0[6,4],ymm1[6,4]
8067 ; AVX1-ONLY-NEXT:    vmovaps 544(%rdi), %xmm1
8068 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8069 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[0,1,0,1]
8070 ; AVX1-ONLY-NEXT:    vmovaps 512(%rdi), %xmm6
8071 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm6[0,1,2],xmm1[3]
8072 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm5 = xmm14[2,3,2,3]
8073 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm5 = mem[0],xmm5[1],mem[2,3]
8074 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm5[0,1],xmm1[2,3]
8075 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
8076 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8077 ; AVX1-ONLY-NEXT:    vmovups (%rsp), %ymm1 # 32-byte Reload
8078 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm1[2,3,0,1]
8079 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[3,0],ymm0[0,0],ymm1[7,4],ymm0[4,4]
8080 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8081 ; AVX1-ONLY-NEXT:    vshufps $33, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm1 # 32-byte Folded Reload
8082 ; AVX1-ONLY-NEXT:    # ymm1 = ymm5[1,0],mem[2,0],ymm5[5,4],mem[6,4]
8083 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm1[2,0],ymm0[6,4],ymm1[6,4]
8084 ; AVX1-ONLY-NEXT:    vmovaps 768(%rdi), %xmm1
8085 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, (%rsp) # 16-byte Spill
8086 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[0,1,0,1]
8087 ; AVX1-ONLY-NEXT:    vmovaps 736(%rdi), %xmm2
8088 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8089 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1,2],xmm1[3]
8090 ; AVX1-ONLY-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Folded Reload
8091 ; AVX1-ONLY-NEXT:    # xmm14 = mem[2,3,2,3]
8092 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm14 = mem[0],xmm14[1],mem[2,3]
8093 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm14[0,1],xmm1[2,3]
8094 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
8095 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8096 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm11[2,3,0,1]
8097 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm11[3,0],ymm0[0,0],ymm11[7,4],ymm0[4,4]
8098 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm12[1,0],ymm8[2,0],ymm12[5,4],ymm8[6,4]
8099 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm1[2,0],ymm0[6,4],ymm1[6,4]
8100 ; AVX1-ONLY-NEXT:    vmovaps 992(%rdi), %xmm1
8101 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8102 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[0,1,0,1]
8103 ; AVX1-ONLY-NEXT:    vmovaps 960(%rdi), %xmm3
8104 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm3[0,1,2],xmm1[3]
8105 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm14 = xmm15[2,3,2,3]
8106 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm14 = mem[0],xmm14[1],mem[2,3]
8107 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm14[0,1],xmm1[2,3]
8108 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
8109 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8110 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8111 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm1[2,3,0,1]
8112 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[3,0],ymm0[0,0],ymm1[7,4],ymm0[4,4]
8113 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
8114 ; AVX1-ONLY-NEXT:    vshufps $33, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm1 # 32-byte Folded Reload
8115 ; AVX1-ONLY-NEXT:    # ymm1 = ymm8[1,0],mem[2,0],ymm8[5,4],mem[6,4]
8116 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm1[2,0],ymm0[6,4],ymm1[6,4]
8117 ; AVX1-ONLY-NEXT:    vmovaps 1216(%rdi), %xmm1
8118 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8119 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[0,1,0,1]
8120 ; AVX1-ONLY-NEXT:    vmovaps 1184(%rdi), %xmm2
8121 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8122 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1,2],xmm1[3]
8123 ; AVX1-ONLY-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Folded Reload
8124 ; AVX1-ONLY-NEXT:    # xmm14 = mem[2,3,2,3]
8125 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm14 = mem[0],xmm14[1],mem[2,3]
8126 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm14[0,1],xmm1[2,3]
8127 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
8128 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8129 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8130 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm1[2,3,0,1]
8131 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[3,0],ymm0[0,0],ymm1[7,4],ymm0[4,4]
8132 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8133 ; AVX1-ONLY-NEXT:    vshufps $33, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
8134 ; AVX1-ONLY-NEXT:    # ymm1 = ymm1[1,0],mem[2,0],ymm1[5,4],mem[6,4]
8135 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm1[2,0],ymm0[6,4],ymm1[6,4]
8136 ; AVX1-ONLY-NEXT:    vmovaps 1440(%rdi), %xmm1
8137 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8138 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm14 = xmm1[0,1,0,1]
8139 ; AVX1-ONLY-NEXT:    vmovaps 1408(%rdi), %xmm1
8140 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm14 = xmm1[0,1,2],xmm14[3]
8141 ; AVX1-ONLY-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
8142 ; AVX1-ONLY-NEXT:    # xmm4 = mem[2,3,2,3]
8143 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm4 = mem[0],xmm4[1],mem[2,3]
8144 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],xmm14[2,3]
8145 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3],ymm0[4,5,6,7]
8146 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8147 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
8148 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm2[2,3,0,1]
8149 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm2[3,0],ymm0[0,0],ymm2[7,4],ymm0[4,4]
8150 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
8151 ; AVX1-ONLY-NEXT:    vshufps $33, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm4 # 32-byte Folded Reload
8152 ; AVX1-ONLY-NEXT:    # ymm4 = ymm2[1,0],mem[2,0],ymm2[5,4],mem[6,4]
8153 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm4 = ymm0[2,0],ymm4[2,0],ymm0[6,4],ymm4[6,4]
8154 ; AVX1-ONLY-NEXT:    vmovaps 1664(%rdi), %xmm0
8155 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8156 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm14 = xmm0[0,1,0,1]
8157 ; AVX1-ONLY-NEXT:    vmovaps 1632(%rdi), %xmm0
8158 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm14 = xmm0[0,1,2],xmm14[3]
8159 ; AVX1-ONLY-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Folded Reload
8160 ; AVX1-ONLY-NEXT:    # xmm11 = mem[2,3,2,3]
8161 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm11 = mem[0],xmm11[1],mem[2,3]
8162 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm11 = xmm11[0,1],xmm14[2,3]
8163 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm11[0,1,2,3],ymm4[4,5,6,7]
8164 ; AVX1-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8165 ; AVX1-ONLY-NEXT:    vshufps $246, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm4 # 32-byte Folded Reload
8166 ; AVX1-ONLY-NEXT:    # ymm4 = ymm13[2,1],mem[3,3],ymm13[6,5],mem[7,7]
8167 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload
8168 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
8169 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm11 = xmm12[0],xmm10[1],xmm12[2,3]
8170 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm11, %ymm0, %ymm11
8171 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm4 = ymm11[1,0],ymm4[2,0],ymm11[5,4],ymm4[6,4]
8172 ; AVX1-ONLY-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9, %xmm11 # 16-byte Folded Reload
8173 ; AVX1-ONLY-NEXT:    # xmm11 = mem[0,1,2],xmm9[3]
8174 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload
8175 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
8176 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm14 = ymm9[0,0],ymm15[1,0],ymm9[4,4],ymm15[5,4]
8177 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[2,0,2,3,6,4,6,7]
8178 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm14, %xmm14
8179 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm11 = xmm14[0,1],xmm11[3,2]
8180 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm11[0,1,2,3],ymm4[4,5,6,7]
8181 ; AVX1-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8182 ; AVX1-ONLY-NEXT:    vshufps $246, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm4 # 32-byte Folded Reload
8183 ; AVX1-ONLY-NEXT:    # ymm4 = ymm7[2,1],mem[3,3],ymm7[6,5],mem[7,7]
8184 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
8185 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload
8186 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm11 = xmm14[0],xmm9[1],xmm14[2,3]
8187 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm11, %ymm0, %ymm11
8188 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm4 = ymm11[1,0],ymm4[2,0],ymm11[5,4],ymm4[6,4]
8189 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
8190 ; AVX1-ONLY-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7, %xmm7 # 16-byte Folded Reload
8191 ; AVX1-ONLY-NEXT:    # xmm7 = mem[0,1,2],xmm7[3]
8192 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload
8193 ; AVX1-ONLY-NEXT:    vshufps $16, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm11 # 32-byte Folded Reload
8194 ; AVX1-ONLY-NEXT:    # ymm11 = ymm11[0,0],mem[1,0],ymm11[4,4],mem[5,4]
8195 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm11 = ymm11[2,0,2,3,6,4,6,7]
8196 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm11, %xmm11
8197 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm7 = xmm11[0,1],xmm7[3,2]
8198 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm7[0,1,2,3],ymm4[4,5,6,7]
8199 ; AVX1-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8200 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
8201 ; AVX1-ONLY-NEXT:    vshufps $246, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload
8202 ; AVX1-ONLY-NEXT:    # ymm4 = ymm4[2,1],mem[3,3],ymm4[6,5],mem[7,7]
8203 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload
8204 ; AVX1-ONLY-NEXT:    vblendps $13, {{[-0-9]+}}(%r{{[sb]}}p), %xmm11, %xmm7 # 16-byte Folded Reload
8205 ; AVX1-ONLY-NEXT:    # xmm7 = mem[0],xmm11[1],mem[2,3]
8206 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
8207 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm4 = ymm7[1,0],ymm4[2,0],ymm7[5,4],ymm4[6,4]
8208 ; AVX1-ONLY-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6, %xmm6 # 16-byte Folded Reload
8209 ; AVX1-ONLY-NEXT:    # xmm6 = mem[0,1,2],xmm6[3]
8210 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
8211 ; AVX1-ONLY-NEXT:    vshufps $16, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload
8212 ; AVX1-ONLY-NEXT:    # ymm7 = ymm7[0,0],mem[1,0],ymm7[4,4],mem[5,4]
8213 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm7 = ymm7[2,0,2,3,6,4,6,7]
8214 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm7, %xmm7
8215 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm6 = xmm7[0,1],xmm6[3,2]
8216 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm6[0,1,2,3],ymm4[4,5,6,7]
8217 ; AVX1-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8218 ; AVX1-ONLY-NEXT:    vshufps $246, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm4 # 32-byte Folded Reload
8219 ; AVX1-ONLY-NEXT:    # ymm4 = ymm5[2,1],mem[3,3],ymm5[6,5],mem[7,7]
8220 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
8221 ; AVX1-ONLY-NEXT:    vblendps $13, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7, %xmm6 # 16-byte Folded Reload
8222 ; AVX1-ONLY-NEXT:    # xmm6 = mem[0],xmm7[1],mem[2,3]
8223 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
8224 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm4 = ymm6[1,0],ymm4[2,0],ymm6[5,4],ymm4[6,4]
8225 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
8226 ; AVX1-ONLY-NEXT:    vblendps $7, (%rsp), %xmm5, %xmm5 # 16-byte Folded Reload
8227 ; AVX1-ONLY-NEXT:    # xmm5 = mem[0,1,2],xmm5[3]
8228 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
8229 ; AVX1-ONLY-NEXT:    vshufps $16, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm6 # 32-byte Folded Reload
8230 ; AVX1-ONLY-NEXT:    # ymm6 = ymm6[0,0],mem[1,0],ymm6[4,4],mem[5,4]
8231 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm6 = ymm6[2,0,2,3,6,4,6,7]
8232 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm6, %xmm6
8233 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm5 = xmm6[0,1],xmm5[3,2]
8234 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1,2,3],ymm4[4,5,6,7]
8235 ; AVX1-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8236 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
8237 ; AVX1-ONLY-NEXT:    vshufps $246, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload
8238 ; AVX1-ONLY-NEXT:    # ymm4 = ymm4[2,1],mem[3,3],ymm4[6,5],mem[7,7]
8239 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
8240 ; AVX1-ONLY-NEXT:    vblendps $13, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm5 # 16-byte Folded Reload
8241 ; AVX1-ONLY-NEXT:    # xmm5 = mem[0],xmm5[1],mem[2,3]
8242 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
8243 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm4 = ymm5[1,0],ymm4[2,0],ymm5[5,4],ymm4[6,4]
8244 ; AVX1-ONLY-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm3 # 16-byte Folded Reload
8245 ; AVX1-ONLY-NEXT:    # xmm3 = mem[0,1,2],xmm3[3]
8246 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8247 ; AVX1-ONLY-NEXT:    vshufps $16, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm5 # 32-byte Folded Reload
8248 ; AVX1-ONLY-NEXT:    # ymm5 = ymm5[0,0],mem[1,0],ymm5[4,4],mem[5,4]
8249 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm5 = ymm5[2,0,2,3,6,4,6,7]
8250 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm5, %xmm5
8251 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm3 = xmm5[0,1],xmm3[3,2]
8252 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm4[4,5,6,7]
8253 ; AVX1-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8254 ; AVX1-ONLY-NEXT:    vshufps $246, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm3 # 32-byte Folded Reload
8255 ; AVX1-ONLY-NEXT:    # ymm3 = ymm8[2,1],mem[3,3],ymm8[6,5],mem[7,7]
8256 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
8257 ; AVX1-ONLY-NEXT:    vblendps $13, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6, %xmm4 # 16-byte Folded Reload
8258 ; AVX1-ONLY-NEXT:    # xmm4 = mem[0],xmm6[1],mem[2,3]
8259 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
8260 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm3 = ymm4[1,0],ymm3[2,0],ymm4[5,4],ymm3[6,4]
8261 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
8262 ; AVX1-ONLY-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload
8263 ; AVX1-ONLY-NEXT:    # xmm4 = mem[0,1,2],xmm4[3]
8264 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8265 ; AVX1-ONLY-NEXT:    vshufps $16, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm5 # 32-byte Folded Reload
8266 ; AVX1-ONLY-NEXT:    # ymm5 = ymm5[0,0],mem[1,0],ymm5[4,4],mem[5,4]
8267 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm5 = ymm5[2,0,2,3,6,4,6,7]
8268 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm5, %xmm5
8269 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm4 = xmm5[0,1],xmm4[3,2]
8270 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
8271 ; AVX1-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8272 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
8273 ; AVX1-ONLY-NEXT:    vshufps $246, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm3 # 32-byte Folded Reload
8274 ; AVX1-ONLY-NEXT:    # ymm3 = ymm8[2,1],mem[3,3],ymm8[6,5],mem[7,7]
8275 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
8276 ; AVX1-ONLY-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm4 # 16-byte Folded Reload
8277 ; AVX1-ONLY-NEXT:    # xmm4 = xmm5[0],mem[1],xmm5[2,3]
8278 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
8279 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm3 = ymm4[1,0],ymm3[2,0],ymm4[5,4],ymm3[6,4]
8280 ; AVX1-ONLY-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
8281 ; AVX1-ONLY-NEXT:    # xmm1 = mem[0,1,2],xmm1[3]
8282 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
8283 ; AVX1-ONLY-NEXT:    vshufps $16, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload
8284 ; AVX1-ONLY-NEXT:    # ymm4 = ymm4[0,0],mem[1,0],ymm4[4,4],mem[5,4]
8285 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[2,0,2,3,6,4,6,7]
8286 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm4, %xmm4
8287 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm4[0,1],xmm1[3,2]
8288 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
8289 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8290 ; AVX1-ONLY-NEXT:    vshufps $246, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm1 # 32-byte Folded Reload
8291 ; AVX1-ONLY-NEXT:    # ymm1 = ymm2[2,1],mem[3,3],ymm2[6,5],mem[7,7]
8292 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
8293 ; AVX1-ONLY-NEXT:    vblendps $13, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm3 # 16-byte Folded Reload
8294 ; AVX1-ONLY-NEXT:    # xmm3 = mem[0],xmm3[1],mem[2,3]
8295 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
8296 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm3[1,0],ymm1[2,0],ymm3[5,4],ymm1[6,4]
8297 ; AVX1-ONLY-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
8298 ; AVX1-ONLY-NEXT:    # xmm0 = mem[0,1,2],xmm0[3]
8299 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
8300 ; AVX1-ONLY-NEXT:    vshufps $16, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
8301 ; AVX1-ONLY-NEXT:    # ymm3 = ymm3[0,0],mem[1,0],ymm3[4,4],mem[5,4]
8302 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[2,0,2,3,6,4,6,7]
8303 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm3, %xmm3
8304 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm3[0,1],xmm0[3,2]
8305 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
8306 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8307 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm13[2,3,0,1]
8308 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm13[3,0],ymm0[0,0],ymm13[7,4],ymm0[4,4]
8309 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm10[2,3,2,3]
8310 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0],xmm12[1],xmm1[2,3]
8311 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
8312 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]
8313 ; AVX1-ONLY-NEXT:    vpermilps $68, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
8314 ; AVX1-ONLY-NEXT:    # xmm1 = mem[0,1,0,1]
8315 ; AVX1-ONLY-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
8316 ; AVX1-ONLY-NEXT:    # xmm1 = xmm1[0,1,2],mem[3]
8317 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
8318 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[1,0],ymm15[2,0],ymm2[5,4],ymm15[6,4]
8319 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[2,0,2,3,6,4,6,7]
8320 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm2, %xmm2
8321 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
8322 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm13 = ymm1[0,1,2,3],ymm0[4,5,6,7]
8323 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8324 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm0[2,3,0,1]
8325 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm0[3,0],ymm1[0,0],ymm0[7,4],ymm1[4,4]
8326 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm9[2,3,2,3]
8327 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0],xmm14[1],xmm2[2,3]
8328 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
8329 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,0],ymm2[4,5],ymm1[6,4]
8330 ; AVX1-ONLY-NEXT:    vpermilps $68, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
8331 ; AVX1-ONLY-NEXT:    # xmm2 = mem[0,1,0,1]
8332 ; AVX1-ONLY-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
8333 ; AVX1-ONLY-NEXT:    # xmm2 = xmm2[0,1,2],mem[3]
8334 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8335 ; AVX1-ONLY-NEXT:    vshufps $33, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm3 # 32-byte Folded Reload
8336 ; AVX1-ONLY-NEXT:    # ymm3 = ymm0[1,0],mem[2,0],ymm0[5,4],mem[6,4]
8337 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[2,0,2,3,6,4,6,7]
8338 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm3, %xmm3
8339 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm3[0,1],xmm2[2,3]
8340 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm1[4,5,6,7]
8341 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8342 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm0[2,3,0,1]
8343 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm0[3,0],ymm1[0,0],ymm0[7,4],ymm1[4,4]
8344 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm3 = xmm11[2,3,2,3]
8345 ; AVX1-ONLY-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm3 # 16-byte Folded Reload
8346 ; AVX1-ONLY-NEXT:    # xmm3 = xmm3[0],mem[1],xmm3[2,3]
8347 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
8348 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm3[0,1],ymm1[2,0],ymm3[4,5],ymm1[6,4]
8349 ; AVX1-ONLY-NEXT:    vpermilps $68, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload
8350 ; AVX1-ONLY-NEXT:    # xmm3 = mem[0,1,0,1]
8351 ; AVX1-ONLY-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm3 # 16-byte Folded Reload
8352 ; AVX1-ONLY-NEXT:    # xmm3 = xmm3[0,1,2],mem[3]
8353 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8354 ; AVX1-ONLY-NEXT:    vshufps $33, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm4 # 32-byte Folded Reload
8355 ; AVX1-ONLY-NEXT:    # ymm4 = ymm0[1,0],mem[2,0],ymm0[5,4],mem[6,4]
8356 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[2,0,2,3,6,4,6,7]
8357 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm4, %xmm4
8358 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm3 = xmm4[0,1],xmm3[2,3]
8359 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm1[4,5,6,7]
8360 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
8361 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm3[2,3,0,1]
8362 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm3[3,0],ymm1[0,0],ymm3[7,4],ymm1[4,4]
8363 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm3 = xmm7[2,3,2,3]
8364 ; AVX1-ONLY-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm3 # 16-byte Folded Reload
8365 ; AVX1-ONLY-NEXT:    # xmm3 = xmm3[0],mem[1],xmm3[2,3]
8366 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
8367 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm3[0,1],ymm1[2,0],ymm3[4,5],ymm1[6,4]
8368 ; AVX1-ONLY-NEXT:    vpermilps $68, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload
8369 ; AVX1-ONLY-NEXT:    # xmm3 = mem[0,1,0,1]
8370 ; AVX1-ONLY-NEXT:    vblendps $8, (%rsp), %xmm3, %xmm3 # 16-byte Folded Reload
8371 ; AVX1-ONLY-NEXT:    # xmm3 = xmm3[0,1,2],mem[3]
8372 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
8373 ; AVX1-ONLY-NEXT:    vshufps $33, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload
8374 ; AVX1-ONLY-NEXT:    # ymm4 = ymm4[1,0],mem[2,0],ymm4[5,4],mem[6,4]
8375 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[2,0,2,3,6,4,6,7]
8376 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm4, %xmm4
8377 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm3 = xmm4[0,1],xmm3[2,3]
8378 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm1[4,5,6,7]
8379 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
8380 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3,0,1]
8381 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm3 = ymm4[3,0],ymm3[0,0],ymm4[7,4],ymm3[4,4]
8382 ; AVX1-ONLY-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
8383 ; AVX1-ONLY-NEXT:    # xmm4 = mem[2,3,2,3]
8384 ; AVX1-ONLY-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload
8385 ; AVX1-ONLY-NEXT:    # xmm4 = xmm4[0],mem[1],xmm4[2,3]
8386 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
8387 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm3 = ymm4[0,1],ymm3[2,0],ymm4[4,5],ymm3[6,4]
8388 ; AVX1-ONLY-NEXT:    vpermilps $68, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
8389 ; AVX1-ONLY-NEXT:    # xmm4 = mem[0,1,0,1]
8390 ; AVX1-ONLY-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload
8391 ; AVX1-ONLY-NEXT:    # xmm4 = xmm4[0,1,2],mem[3]
8392 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
8393 ; AVX1-ONLY-NEXT:    vshufps $33, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm9 # 32-byte Folded Reload
8394 ; AVX1-ONLY-NEXT:    # ymm9 = ymm7[1,0],mem[2,0],ymm7[5,4],mem[6,4]
8395 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm9 = ymm9[2,0,2,3,6,4,6,7]
8396 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm9, %xmm9
8397 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm4 = xmm9[0,1],xmm4[2,3]
8398 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
8399 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
8400 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm4 = ymm7[2,3,0,1]
8401 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm4 = ymm7[3,0],ymm4[0,0],ymm7[7,4],ymm4[4,4]
8402 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm9 = xmm6[2,3,2,3]
8403 ; AVX1-ONLY-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9, %xmm9 # 16-byte Folded Reload
8404 ; AVX1-ONLY-NEXT:    # xmm9 = xmm9[0],mem[1],xmm9[2,3]
8405 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm9, %ymm0, %ymm9
8406 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm4 = ymm9[0,1],ymm4[2,0],ymm9[4,5],ymm4[6,4]
8407 ; AVX1-ONLY-NEXT:    vpermilps $68, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload
8408 ; AVX1-ONLY-NEXT:    # xmm9 = mem[0,1,0,1]
8409 ; AVX1-ONLY-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9, %xmm9 # 16-byte Folded Reload
8410 ; AVX1-ONLY-NEXT:    # xmm9 = xmm9[0,1,2],mem[3]
8411 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
8412 ; AVX1-ONLY-NEXT:    vshufps $33, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm10 # 32-byte Folded Reload
8413 ; AVX1-ONLY-NEXT:    # ymm10 = ymm6[1,0],mem[2,0],ymm6[5,4],mem[6,4]
8414 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm10 = ymm10[2,0,2,3,6,4,6,7]
8415 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm10, %xmm10
8416 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm9 = xmm10[0,1],xmm9[2,3]
8417 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3],ymm4[4,5,6,7]
8418 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm4 = ymm8[2,3,0,1]
8419 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm4 = ymm8[3,0],ymm4[0,0],ymm8[7,4],ymm4[4,4]
8420 ; AVX1-ONLY-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Folded Reload
8421 ; AVX1-ONLY-NEXT:    # xmm10 = mem[2,3,2,3]
8422 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0],xmm5[1],xmm10[2,3]
8423 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
8424 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm4 = ymm10[0,1],ymm4[2,0],ymm10[4,5],ymm4[6,4]
8425 ; AVX1-ONLY-NEXT:    vpermilps $68, {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Folded Reload
8426 ; AVX1-ONLY-NEXT:    # xmm10 = mem[0,1,0,1]
8427 ; AVX1-ONLY-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm10, %xmm10 # 16-byte Folded Reload
8428 ; AVX1-ONLY-NEXT:    # xmm10 = xmm10[0,1,2],mem[3]
8429 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
8430 ; AVX1-ONLY-NEXT:    vshufps $33, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm11 # 32-byte Folded Reload
8431 ; AVX1-ONLY-NEXT:    # ymm11 = ymm6[1,0],mem[2,0],ymm6[5,4],mem[6,4]
8432 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm11 = ymm11[2,0,2,3,6,4,6,7]
8433 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm11, %xmm11
8434 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm10 = xmm11[0,1],xmm10[2,3]
8435 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm10[0,1,2,3],ymm4[4,5,6,7]
8436 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8437 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm10 = ymm5[2,3,0,1]
8438 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm10 = ymm5[3,0],ymm10[0,0],ymm5[7,4],ymm10[4,4]
8439 ; AVX1-ONLY-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Folded Reload
8440 ; AVX1-ONLY-NEXT:    # xmm11 = mem[2,3,2,3]
8441 ; AVX1-ONLY-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm11, %xmm11 # 16-byte Folded Reload
8442 ; AVX1-ONLY-NEXT:    # xmm11 = xmm11[0],mem[1],xmm11[2,3]
8443 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm11, %ymm0, %ymm11
8444 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm10 = ymm11[0,1],ymm10[2,0],ymm11[4,5],ymm10[6,4]
8445 ; AVX1-ONLY-NEXT:    vpermilps $68, {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Folded Reload
8446 ; AVX1-ONLY-NEXT:    # xmm11 = mem[0,1,0,1]
8447 ; AVX1-ONLY-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm11, %xmm11 # 16-byte Folded Reload
8448 ; AVX1-ONLY-NEXT:    # xmm11 = xmm11[0,1,2],mem[3]
8449 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8450 ; AVX1-ONLY-NEXT:    vshufps $33, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm12 # 32-byte Folded Reload
8451 ; AVX1-ONLY-NEXT:    # ymm12 = ymm5[1,0],mem[2,0],ymm5[5,4],mem[6,4]
8452 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm12 = ymm12[2,0,2,3,6,4,6,7]
8453 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm12, %xmm12
8454 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm11 = xmm12[0,1],xmm11[2,3]
8455 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm10 = ymm11[0,1,2,3],ymm10[4,5,6,7]
8456 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8457 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, 192(%rsi)
8458 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8459 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, 128(%rsi)
8460 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8461 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, 64(%rsi)
8462 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8463 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, (%rsi)
8464 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload
8465 ; AVX1-ONLY-NEXT:    vmovaps %ymm11, 224(%rsi)
8466 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload
8467 ; AVX1-ONLY-NEXT:    vmovaps %ymm11, 160(%rsi)
8468 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload
8469 ; AVX1-ONLY-NEXT:    vmovaps %ymm11, 96(%rsi)
8470 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload
8471 ; AVX1-ONLY-NEXT:    vmovaps %ymm11, 32(%rsi)
8472 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8473 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, 192(%rdx)
8474 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8475 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, 128(%rdx)
8476 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8477 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, 64(%rdx)
8478 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8479 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, (%rdx)
8480 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8481 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, 224(%rdx)
8482 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8483 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, 160(%rdx)
8484 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8485 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, 96(%rdx)
8486 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8487 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, 32(%rdx)
8488 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8489 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, 192(%rcx)
8490 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8491 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, 128(%rcx)
8492 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8493 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, 64(%rcx)
8494 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8495 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, (%rcx)
8496 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8497 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, 224(%rcx)
8498 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8499 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, 160(%rcx)
8500 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8501 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, 96(%rcx)
8502 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8503 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, 32(%rcx)
8504 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8505 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, (%r8)
8506 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8507 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, 64(%r8)
8508 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8509 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, 128(%r8)
8510 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8511 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, 192(%r8)
8512 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8513 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, 224(%r8)
8514 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8515 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, 160(%r8)
8516 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8517 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, 96(%r8)
8518 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8519 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, 32(%r8)
8520 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8521 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, 224(%r9)
8522 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8523 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, 192(%r9)
8524 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8525 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, 160(%r9)
8526 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8527 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, 128(%r9)
8528 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8529 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, 96(%r9)
8530 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8531 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, 64(%r9)
8532 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8533 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, 32(%r9)
8534 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8535 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, (%r9)
8536 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
8537 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8538 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, 224(%rax)
8539 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8540 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, 192(%rax)
8541 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8542 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, 160(%rax)
8543 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8544 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, 128(%rax)
8545 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8546 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, 96(%rax)
8547 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8548 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, 64(%rax)
8549 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8550 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, 32(%rax)
8551 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8552 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, (%rax)
8553 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
8554 ; AVX1-ONLY-NEXT:    vmovaps %ymm10, 224(%rax)
8555 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, 192(%rax)
8556 ; AVX1-ONLY-NEXT:    vmovaps %ymm9, 160(%rax)
8557 ; AVX1-ONLY-NEXT:    vmovaps %ymm3, 128(%rax)
8558 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 96(%rax)
8559 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 64(%rax)
8560 ; AVX1-ONLY-NEXT:    vmovaps %ymm2, 32(%rax)
8561 ; AVX1-ONLY-NEXT:    vmovaps %ymm13, (%rax)
8562 ; AVX1-ONLY-NEXT:    addq $3176, %rsp # imm = 0xC68
8563 ; AVX1-ONLY-NEXT:    vzeroupper
8564 ; AVX1-ONLY-NEXT:    retq
8566 ; AVX2-SLOW-LABEL: load_i32_stride7_vf64:
8567 ; AVX2-SLOW:       # %bb.0:
8568 ; AVX2-SLOW-NEXT:    subq $2680, %rsp # imm = 0xA78
8569 ; AVX2-SLOW-NEXT:    vmovdqa 1216(%rdi), %ymm12
8570 ; AVX2-SLOW-NEXT:    vmovdqu %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8571 ; AVX2-SLOW-NEXT:    vmovdqa 1152(%rdi), %ymm4
8572 ; AVX2-SLOW-NEXT:    vmovdqa 1120(%rdi), %ymm5
8573 ; AVX2-SLOW-NEXT:    vmovdqa 768(%rdi), %ymm13
8574 ; AVX2-SLOW-NEXT:    vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8575 ; AVX2-SLOW-NEXT:    vmovdqa 704(%rdi), %ymm6
8576 ; AVX2-SLOW-NEXT:    vmovdqa 672(%rdi), %ymm7
8577 ; AVX2-SLOW-NEXT:    vmovdqa 320(%rdi), %ymm8
8578 ; AVX2-SLOW-NEXT:    vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8579 ; AVX2-SLOW-NEXT:    vmovdqa 256(%rdi), %ymm2
8580 ; AVX2-SLOW-NEXT:    vmovdqa 224(%rdi), %ymm3
8581 ; AVX2-SLOW-NEXT:    vmovdqa {{.*#+}} xmm0 = [0,7,6,u]
8582 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm3[0,1,2,3,4,5],ymm2[6],ymm3[7]
8583 ; AVX2-SLOW-NEXT:    vmovdqa %ymm3, %ymm11
8584 ; AVX2-SLOW-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8585 ; AVX2-SLOW-NEXT:    vmovdqa %ymm2, %ymm10
8586 ; AVX2-SLOW-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8587 ; AVX2-SLOW-NEXT:    vpermd %ymm1, %ymm0, %ymm1
8588 ; AVX2-SLOW-NEXT:    vpbroadcastq 304(%rdi), %ymm2
8589 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm8[4,5,6,7]
8590 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
8591 ; AVX2-SLOW-NEXT:    vmovdqa 352(%rdi), %xmm2
8592 ; AVX2-SLOW-NEXT:    vmovdqa 384(%rdi), %xmm3
8593 ; AVX2-SLOW-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8594 ; AVX2-SLOW-NEXT:    vpunpckhqdq {{.*#+}} xmm2 = xmm2[1],xmm3[1]
8595 ; AVX2-SLOW-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
8596 ; AVX2-SLOW-NEXT:    vpbroadcastd 420(%rdi), %ymm3
8597 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm3[7]
8598 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
8599 ; AVX2-SLOW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8600 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm7[0,1,2,3,4,5],ymm6[6],ymm7[7]
8601 ; AVX2-SLOW-NEXT:    vmovdqa %ymm7, %ymm9
8602 ; AVX2-SLOW-NEXT:    vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8603 ; AVX2-SLOW-NEXT:    vmovdqa %ymm6, %ymm8
8604 ; AVX2-SLOW-NEXT:    vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8605 ; AVX2-SLOW-NEXT:    vpermd %ymm1, %ymm0, %ymm1
8606 ; AVX2-SLOW-NEXT:    vpbroadcastq 752(%rdi), %ymm2
8607 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm13[4,5,6,7]
8608 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
8609 ; AVX2-SLOW-NEXT:    vmovdqa 800(%rdi), %xmm2
8610 ; AVX2-SLOW-NEXT:    vmovdqa 832(%rdi), %xmm3
8611 ; AVX2-SLOW-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8612 ; AVX2-SLOW-NEXT:    vpunpckhqdq {{.*#+}} xmm2 = xmm2[1],xmm3[1]
8613 ; AVX2-SLOW-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
8614 ; AVX2-SLOW-NEXT:    vpbroadcastd 868(%rdi), %ymm3
8615 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm3[7]
8616 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
8617 ; AVX2-SLOW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8618 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm5[0,1,2,3,4,5],ymm4[6],ymm5[7]
8619 ; AVX2-SLOW-NEXT:    vmovdqa %ymm5, %ymm6
8620 ; AVX2-SLOW-NEXT:    vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8621 ; AVX2-SLOW-NEXT:    vmovdqa %ymm4, %ymm5
8622 ; AVX2-SLOW-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8623 ; AVX2-SLOW-NEXT:    vpermd %ymm1, %ymm0, %ymm1
8624 ; AVX2-SLOW-NEXT:    vpbroadcastq 1200(%rdi), %ymm2
8625 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm12[4,5,6,7]
8626 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
8627 ; AVX2-SLOW-NEXT:    vmovdqa 1248(%rdi), %xmm2
8628 ; AVX2-SLOW-NEXT:    vmovdqa 1280(%rdi), %xmm3
8629 ; AVX2-SLOW-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8630 ; AVX2-SLOW-NEXT:    vpunpckhqdq {{.*#+}} xmm2 = xmm2[1],xmm3[1]
8631 ; AVX2-SLOW-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
8632 ; AVX2-SLOW-NEXT:    vpbroadcastd 1316(%rdi), %ymm3
8633 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm3[7]
8634 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
8635 ; AVX2-SLOW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8636 ; AVX2-SLOW-NEXT:    vmovdqa 1600(%rdi), %ymm2
8637 ; AVX2-SLOW-NEXT:    vmovdqa 1568(%rdi), %ymm1
8638 ; AVX2-SLOW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8639 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6],ymm1[7]
8640 ; AVX2-SLOW-NEXT:    vmovdqa %ymm2, %ymm14
8641 ; AVX2-SLOW-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8642 ; AVX2-SLOW-NEXT:    vpermd %ymm1, %ymm0, %ymm1
8643 ; AVX2-SLOW-NEXT:    vmovdqa 1664(%rdi), %ymm3
8644 ; AVX2-SLOW-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8645 ; AVX2-SLOW-NEXT:    vpbroadcastq 1648(%rdi), %ymm2
8646 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
8647 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
8648 ; AVX2-SLOW-NEXT:    vmovdqa 1696(%rdi), %xmm2
8649 ; AVX2-SLOW-NEXT:    vmovdqa 1728(%rdi), %xmm3
8650 ; AVX2-SLOW-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8651 ; AVX2-SLOW-NEXT:    vpunpckhqdq {{.*#+}} xmm2 = xmm2[1],xmm3[1]
8652 ; AVX2-SLOW-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
8653 ; AVX2-SLOW-NEXT:    vpbroadcastd 1764(%rdi), %ymm3
8654 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm3[7]
8655 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
8656 ; AVX2-SLOW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8657 ; AVX2-SLOW-NEXT:    vmovdqa 96(%rdi), %ymm2
8658 ; AVX2-SLOW-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8659 ; AVX2-SLOW-NEXT:    vpbroadcastq 80(%rdi), %ymm1
8660 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]
8661 ; AVX2-SLOW-NEXT:    vmovdqa (%rdi), %ymm3
8662 ; AVX2-SLOW-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8663 ; AVX2-SLOW-NEXT:    vmovdqa 32(%rdi), %ymm2
8664 ; AVX2-SLOW-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8665 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3,4,5],ymm2[6],ymm3[7]
8666 ; AVX2-SLOW-NEXT:    vpermd %ymm2, %ymm0, %ymm2
8667 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7]
8668 ; AVX2-SLOW-NEXT:    vmovdqa 128(%rdi), %xmm2
8669 ; AVX2-SLOW-NEXT:    vmovdqa 160(%rdi), %xmm3
8670 ; AVX2-SLOW-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8671 ; AVX2-SLOW-NEXT:    vpunpckhqdq {{.*#+}} xmm2 = xmm2[1],xmm3[1]
8672 ; AVX2-SLOW-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
8673 ; AVX2-SLOW-NEXT:    vpbroadcastd 196(%rdi), %ymm3
8674 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm3[7]
8675 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
8676 ; AVX2-SLOW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8677 ; AVX2-SLOW-NEXT:    vmovdqa 480(%rdi), %ymm2
8678 ; AVX2-SLOW-NEXT:    vmovdqa 448(%rdi), %ymm13
8679 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm13[0,1,2,3,4,5],ymm2[6],ymm13[7]
8680 ; AVX2-SLOW-NEXT:    vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8681 ; AVX2-SLOW-NEXT:    vmovdqa %ymm2, %ymm12
8682 ; AVX2-SLOW-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8683 ; AVX2-SLOW-NEXT:    vpermd %ymm1, %ymm0, %ymm1
8684 ; AVX2-SLOW-NEXT:    vmovdqa 544(%rdi), %ymm3
8685 ; AVX2-SLOW-NEXT:    vmovdqu %ymm3, (%rsp) # 32-byte Spill
8686 ; AVX2-SLOW-NEXT:    vpbroadcastq 528(%rdi), %ymm2
8687 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
8688 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
8689 ; AVX2-SLOW-NEXT:    vmovdqa 576(%rdi), %xmm2
8690 ; AVX2-SLOW-NEXT:    vmovdqa 608(%rdi), %xmm3
8691 ; AVX2-SLOW-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8692 ; AVX2-SLOW-NEXT:    vpunpckhqdq {{.*#+}} xmm2 = xmm2[1],xmm3[1]
8693 ; AVX2-SLOW-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
8694 ; AVX2-SLOW-NEXT:    vpbroadcastd 644(%rdi), %ymm3
8695 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm3[7]
8696 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
8697 ; AVX2-SLOW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8698 ; AVX2-SLOW-NEXT:    vmovdqa 928(%rdi), %ymm1
8699 ; AVX2-SLOW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8700 ; AVX2-SLOW-NEXT:    vmovdqa 896(%rdi), %ymm3
8701 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm3[0,1,2,3,4,5],ymm1[6],ymm3[7]
8702 ; AVX2-SLOW-NEXT:    vmovdqa %ymm3, %ymm15
8703 ; AVX2-SLOW-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8704 ; AVX2-SLOW-NEXT:    vpermd %ymm1, %ymm0, %ymm1
8705 ; AVX2-SLOW-NEXT:    vmovdqa 992(%rdi), %ymm3
8706 ; AVX2-SLOW-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8707 ; AVX2-SLOW-NEXT:    vpbroadcastq 976(%rdi), %ymm2
8708 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
8709 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
8710 ; AVX2-SLOW-NEXT:    vmovdqa 1024(%rdi), %xmm2
8711 ; AVX2-SLOW-NEXT:    vmovdqa 1056(%rdi), %xmm3
8712 ; AVX2-SLOW-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8713 ; AVX2-SLOW-NEXT:    vpunpckhqdq {{.*#+}} xmm2 = xmm2[1],xmm3[1]
8714 ; AVX2-SLOW-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
8715 ; AVX2-SLOW-NEXT:    vpbroadcastd 1092(%rdi), %ymm3
8716 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm3[7]
8717 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
8718 ; AVX2-SLOW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8719 ; AVX2-SLOW-NEXT:    vmovdqa 1376(%rdi), %ymm2
8720 ; AVX2-SLOW-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8721 ; AVX2-SLOW-NEXT:    vmovdqa 1344(%rdi), %ymm1
8722 ; AVX2-SLOW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8723 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6],ymm1[7]
8724 ; AVX2-SLOW-NEXT:    vpermd %ymm1, %ymm0, %ymm0
8725 ; AVX2-SLOW-NEXT:    vmovdqa 1440(%rdi), %ymm7
8726 ; AVX2-SLOW-NEXT:    vpbroadcastq 1424(%rdi), %ymm1
8727 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm7[4,5,6,7]
8728 ; AVX2-SLOW-NEXT:    vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8729 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
8730 ; AVX2-SLOW-NEXT:    vmovdqa 1472(%rdi), %xmm1
8731 ; AVX2-SLOW-NEXT:    vmovdqa 1504(%rdi), %xmm2
8732 ; AVX2-SLOW-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8733 ; AVX2-SLOW-NEXT:    vpunpckhqdq {{.*#+}} xmm1 = xmm1[1],xmm2[1]
8734 ; AVX2-SLOW-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm1
8735 ; AVX2-SLOW-NEXT:    vpbroadcastd 1540(%rdi), %ymm2
8736 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]
8737 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
8738 ; AVX2-SLOW-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8739 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} xmm0 = mem[2,2,2,2]
8740 ; AVX2-SLOW-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm3
8741 ; AVX2-SLOW-NEXT:    vmovdqa 384(%rdi), %ymm1
8742 ; AVX2-SLOW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8743 ; AVX2-SLOW-NEXT:    vmovdqa 352(%rdi), %ymm0
8744 ; AVX2-SLOW-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8745 ; AVX2-SLOW-NEXT:    vpalignr {{.*#+}} ymm1 = ymm1[12,13,14,15],ymm0[0,1,2,3,4,5,6,7,8,9,10,11],ymm1[28,29,30,31],ymm0[16,17,18,19,20,21,22,23,24,25,26,27]
8746 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,2,0]
8747 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5,6],ymm3[7]
8748 ; AVX2-SLOW-NEXT:    vmovdqa 288(%rdi), %ymm1
8749 ; AVX2-SLOW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8750 ; AVX2-SLOW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
8751 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm4[0,1],ymm1[2,3],ymm4[4,5],ymm1[6,7]
8752 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[1,2,2,3,5,6,6,7]
8753 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,2,2,2]
8754 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm10[0],ymm11[1],ymm10[2,3,4],ymm11[5],ymm10[6,7]
8755 ; AVX2-SLOW-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8756 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm2 = ymm2[1,0,3,3,5,4,7,7]
8757 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,3,2,3]
8758 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7]
8759 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4],ymm0[5,6,7]
8760 ; AVX2-SLOW-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8761 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} xmm0 = mem[2,2,2,2]
8762 ; AVX2-SLOW-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
8763 ; AVX2-SLOW-NEXT:    vmovdqa 832(%rdi), %ymm2
8764 ; AVX2-SLOW-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8765 ; AVX2-SLOW-NEXT:    vmovdqa 800(%rdi), %ymm1
8766 ; AVX2-SLOW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8767 ; AVX2-SLOW-NEXT:    vpalignr {{.*#+}} ymm1 = ymm2[12,13,14,15],ymm1[0,1,2,3,4,5,6,7,8,9,10,11],ymm2[28,29,30,31],ymm1[16,17,18,19,20,21,22,23,24,25,26,27]
8768 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,2,0]
8769 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5,6],ymm0[7]
8770 ; AVX2-SLOW-NEXT:    vmovdqa 736(%rdi), %ymm10
8771 ; AVX2-SLOW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload
8772 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm11[0,1],ymm10[2,3],ymm11[4,5],ymm10[6,7]
8773 ; AVX2-SLOW-NEXT:    vmovdqu %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8774 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[1,2,2,3,5,6,6,7]
8775 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,2,2,2]
8776 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm8[0],ymm9[1],ymm8[2,3,4],ymm9[5],ymm8[6,7]
8777 ; AVX2-SLOW-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8778 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm2 = ymm2[1,0,3,3,5,4,7,7]
8779 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,3,2,3]
8780 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7]
8781 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4],ymm0[5,6,7]
8782 ; AVX2-SLOW-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8783 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} xmm0 = mem[2,2,2,2]
8784 ; AVX2-SLOW-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
8785 ; AVX2-SLOW-NEXT:    vmovdqa 1280(%rdi), %ymm2
8786 ; AVX2-SLOW-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8787 ; AVX2-SLOW-NEXT:    vmovdqa 1248(%rdi), %ymm1
8788 ; AVX2-SLOW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8789 ; AVX2-SLOW-NEXT:    vpalignr {{.*#+}} ymm1 = ymm2[12,13,14,15],ymm1[0,1,2,3,4,5,6,7,8,9,10,11],ymm2[28,29,30,31],ymm1[16,17,18,19,20,21,22,23,24,25,26,27]
8790 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,2,0]
8791 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5,6],ymm0[7]
8792 ; AVX2-SLOW-NEXT:    vmovdqa 1184(%rdi), %ymm1
8793 ; AVX2-SLOW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8794 ; AVX2-SLOW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
8795 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm9[0,1],ymm1[2,3],ymm9[4,5],ymm1[6,7]
8796 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[1,2,2,3,5,6,6,7]
8797 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,2,2,2]
8798 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm5[0],ymm6[1],ymm5[2,3,4],ymm6[5],ymm5[6,7]
8799 ; AVX2-SLOW-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8800 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm2 = ymm2[1,0,3,3,5,4,7,7]
8801 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,3,2,3]
8802 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7]
8803 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4],ymm0[5,6,7]
8804 ; AVX2-SLOW-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8805 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} xmm0 = mem[2,2,2,2]
8806 ; AVX2-SLOW-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
8807 ; AVX2-SLOW-NEXT:    vmovdqa 1728(%rdi), %ymm2
8808 ; AVX2-SLOW-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8809 ; AVX2-SLOW-NEXT:    vmovdqa 1696(%rdi), %ymm1
8810 ; AVX2-SLOW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8811 ; AVX2-SLOW-NEXT:    vpalignr {{.*#+}} ymm1 = ymm2[12,13,14,15],ymm1[0,1,2,3,4,5,6,7,8,9,10,11],ymm2[28,29,30,31],ymm1[16,17,18,19,20,21,22,23,24,25,26,27]
8812 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,2,0]
8813 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5,6],ymm0[7]
8814 ; AVX2-SLOW-NEXT:    vmovdqa 1632(%rdi), %ymm6
8815 ; AVX2-SLOW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8816 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm5[0,1],ymm6[2,3],ymm5[4,5],ymm6[6,7]
8817 ; AVX2-SLOW-NEXT:    vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8818 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[1,2,2,3,5,6,6,7]
8819 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,2,2,2]
8820 ; AVX2-SLOW-NEXT:    vpblendd $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm2 # 32-byte Folded Reload
8821 ; AVX2-SLOW-NEXT:    # ymm2 = ymm14[0],mem[1],ymm14[2,3,4],mem[5],ymm14[6,7]
8822 ; AVX2-SLOW-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8823 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm2 = ymm2[1,0,3,3,5,4,7,7]
8824 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,3,2,3]
8825 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7]
8826 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4],ymm0[5,6,7]
8827 ; AVX2-SLOW-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8828 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} xmm0 = mem[2,2,2,2]
8829 ; AVX2-SLOW-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
8830 ; AVX2-SLOW-NEXT:    vmovdqa 608(%rdi), %ymm2
8831 ; AVX2-SLOW-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8832 ; AVX2-SLOW-NEXT:    vmovdqa 576(%rdi), %ymm1
8833 ; AVX2-SLOW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8834 ; AVX2-SLOW-NEXT:    vpalignr {{.*#+}} ymm1 = ymm2[12,13,14,15],ymm1[0,1,2,3,4,5,6,7,8,9,10,11],ymm2[28,29,30,31],ymm1[16,17,18,19,20,21,22,23,24,25,26,27]
8835 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,2,0]
8836 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5,6],ymm0[7]
8837 ; AVX2-SLOW-NEXT:    vmovdqa 512(%rdi), %ymm1
8838 ; AVX2-SLOW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8839 ; AVX2-SLOW-NEXT:    vmovdqu (%rsp), %ymm14 # 32-byte Reload
8840 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm14[0,1],ymm1[2,3],ymm14[4,5],ymm1[6,7]
8841 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[1,2,2,3,5,6,6,7]
8842 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,2,2,2]
8843 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm12[0],ymm13[1],ymm12[2,3,4],ymm13[5],ymm12[6,7]
8844 ; AVX2-SLOW-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8845 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm2 = ymm2[1,0,3,3,5,4,7,7]
8846 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,3,2,3]
8847 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7]
8848 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4],ymm0[5,6,7]
8849 ; AVX2-SLOW-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8850 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} xmm0 = mem[2,2,2,2]
8851 ; AVX2-SLOW-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
8852 ; AVX2-SLOW-NEXT:    vmovdqa 1056(%rdi), %ymm2
8853 ; AVX2-SLOW-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8854 ; AVX2-SLOW-NEXT:    vmovdqa 1024(%rdi), %ymm1
8855 ; AVX2-SLOW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8856 ; AVX2-SLOW-NEXT:    vpalignr {{.*#+}} ymm1 = ymm2[12,13,14,15],ymm1[0,1,2,3,4,5,6,7,8,9,10,11],ymm2[28,29,30,31],ymm1[16,17,18,19,20,21,22,23,24,25,26,27]
8857 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,2,0]
8858 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5,6],ymm0[7]
8859 ; AVX2-SLOW-NEXT:    vmovdqa 960(%rdi), %ymm1
8860 ; AVX2-SLOW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8861 ; AVX2-SLOW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
8862 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm8[0,1],ymm1[2,3],ymm8[4,5],ymm1[6,7]
8863 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[1,2,2,3,5,6,6,7]
8864 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,2,2,2]
8865 ; AVX2-SLOW-NEXT:    vpblendd $221, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm2 # 32-byte Folded Reload
8866 ; AVX2-SLOW-NEXT:    # ymm2 = mem[0],ymm15[1],mem[2,3,4],ymm15[5],mem[6,7]
8867 ; AVX2-SLOW-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8868 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm2 = ymm2[1,0,3,3,5,4,7,7]
8869 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,3,2,3]
8870 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7]
8871 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4],ymm0[5,6,7]
8872 ; AVX2-SLOW-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8873 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} xmm0 = mem[2,2,2,2]
8874 ; AVX2-SLOW-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
8875 ; AVX2-SLOW-NEXT:    vmovdqa 1504(%rdi), %ymm2
8876 ; AVX2-SLOW-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8877 ; AVX2-SLOW-NEXT:    vmovdqa 1472(%rdi), %ymm1
8878 ; AVX2-SLOW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8879 ; AVX2-SLOW-NEXT:    vpalignr {{.*#+}} ymm1 = ymm2[12,13,14,15],ymm1[0,1,2,3,4,5,6,7,8,9,10,11],ymm2[28,29,30,31],ymm1[16,17,18,19,20,21,22,23,24,25,26,27]
8880 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,2,0]
8881 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5,6],ymm0[7]
8882 ; AVX2-SLOW-NEXT:    vmovdqa 1408(%rdi), %ymm1
8883 ; AVX2-SLOW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8884 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm7[0,1],ymm1[2,3],ymm7[4,5],ymm1[6,7]
8885 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[1,2,2,3,5,6,6,7]
8886 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,2,2,2]
8887 ; AVX2-SLOW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
8888 ; AVX2-SLOW-NEXT:    vpblendd $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
8889 ; AVX2-SLOW-NEXT:    # ymm2 = ymm2[0],mem[1],ymm2[2,3,4],mem[5],ymm2[6,7]
8890 ; AVX2-SLOW-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8891 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm2 = ymm2[1,0,3,3,5,4,7,7]
8892 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,3,2,3]
8893 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7]
8894 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4],ymm0[5,6,7]
8895 ; AVX2-SLOW-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8896 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} xmm0 = mem[2,2,2,2]
8897 ; AVX2-SLOW-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
8898 ; AVX2-SLOW-NEXT:    vmovdqa 160(%rdi), %ymm2
8899 ; AVX2-SLOW-NEXT:    vmovdqa 128(%rdi), %ymm3
8900 ; AVX2-SLOW-NEXT:    vpalignr {{.*#+}} ymm1 = ymm2[12,13,14,15],ymm3[0,1,2,3,4,5,6,7,8,9,10,11],ymm2[28,29,30,31],ymm3[16,17,18,19,20,21,22,23,24,25,26,27]
8901 ; AVX2-SLOW-NEXT:    vmovdqa %ymm3, %ymm13
8902 ; AVX2-SLOW-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8903 ; AVX2-SLOW-NEXT:    vmovdqa %ymm2, %ymm12
8904 ; AVX2-SLOW-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8905 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,2,0]
8906 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5,6],ymm0[7]
8907 ; AVX2-SLOW-NEXT:    vmovdqa 64(%rdi), %ymm3
8908 ; AVX2-SLOW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
8909 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm7[0,1],ymm3[2,3],ymm7[4,5],ymm3[6,7]
8910 ; AVX2-SLOW-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8911 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[1,2,2,3,5,6,6,7]
8912 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,2,2,2]
8913 ; AVX2-SLOW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
8914 ; AVX2-SLOW-NEXT:    vpblendd $221, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
8915 ; AVX2-SLOW-NEXT:    # ymm2 = mem[0],ymm2[1],mem[2,3,4],ymm2[5],mem[6,7]
8916 ; AVX2-SLOW-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8917 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm2 = ymm2[1,0,3,3,5,4,7,7]
8918 ; AVX2-SLOW-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,3,2,3]
8919 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7]
8920 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4],ymm0[5,6,7]
8921 ; AVX2-SLOW-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8922 ; AVX2-SLOW-NEXT:    vmovdqa 304(%rdi), %xmm0
8923 ; AVX2-SLOW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8924 ; AVX2-SLOW-NEXT:    vpalignr {{.*#+}} ymm1 = ymm4[8,9,10,11,12,13,14,15],ymm1[0,1,2,3,4,5,6,7],ymm4[24,25,26,27,28,29,30,31],ymm1[16,17,18,19,20,21,22,23]
8925 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6,7]
8926 ; AVX2-SLOW-NEXT:    vpbroadcastd 232(%rdi), %xmm1
8927 ; AVX2-SLOW-NEXT:    vmovdqa 256(%rdi), %xmm2
8928 ; AVX2-SLOW-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8929 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm1 = xmm1[0],xmm2[1],xmm1[2,3]
8930 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
8931 ; AVX2-SLOW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
8932 ; AVX2-SLOW-NEXT:    vpunpcklqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm1 # 32-byte Folded Reload
8933 ; AVX2-SLOW-NEXT:    # ymm1 = ymm4[0],mem[0],ymm4[2],mem[2]
8934 ; AVX2-SLOW-NEXT:    vpbroadcastd 428(%rdi), %ymm2
8935 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]
8936 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
8937 ; AVX2-SLOW-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8938 ; AVX2-SLOW-NEXT:    vmovdqa 752(%rdi), %xmm0
8939 ; AVX2-SLOW-NEXT:    vpalignr {{.*#+}} ymm1 = ymm11[8,9,10,11,12,13,14,15],ymm10[0,1,2,3,4,5,6,7],ymm11[24,25,26,27,28,29,30,31],ymm10[16,17,18,19,20,21,22,23]
8940 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6,7]
8941 ; AVX2-SLOW-NEXT:    vpbroadcastd 680(%rdi), %xmm1
8942 ; AVX2-SLOW-NEXT:    vmovdqa 704(%rdi), %xmm2
8943 ; AVX2-SLOW-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8944 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm1 = xmm1[0],xmm2[1],xmm1[2,3]
8945 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
8946 ; AVX2-SLOW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload
8947 ; AVX2-SLOW-NEXT:    vpunpcklqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm1 # 32-byte Folded Reload
8948 ; AVX2-SLOW-NEXT:    # ymm1 = ymm11[0],mem[0],ymm11[2],mem[2]
8949 ; AVX2-SLOW-NEXT:    vpbroadcastd 876(%rdi), %ymm2
8950 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]
8951 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
8952 ; AVX2-SLOW-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8953 ; AVX2-SLOW-NEXT:    vmovdqa 1200(%rdi), %xmm0
8954 ; AVX2-SLOW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8955 ; AVX2-SLOW-NEXT:    vpalignr {{.*#+}} ymm1 = ymm9[8,9,10,11,12,13,14,15],ymm1[0,1,2,3,4,5,6,7],ymm9[24,25,26,27,28,29,30,31],ymm1[16,17,18,19,20,21,22,23]
8956 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6,7]
8957 ; AVX2-SLOW-NEXT:    vpbroadcastd 1128(%rdi), %xmm1
8958 ; AVX2-SLOW-NEXT:    vmovdqa 1152(%rdi), %xmm2
8959 ; AVX2-SLOW-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8960 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm1 = xmm1[0],xmm2[1],xmm1[2,3]
8961 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
8962 ; AVX2-SLOW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8963 ; AVX2-SLOW-NEXT:    vpunpcklqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
8964 ; AVX2-SLOW-NEXT:    # ymm1 = ymm1[0],mem[0],ymm1[2],mem[2]
8965 ; AVX2-SLOW-NEXT:    vpbroadcastd 1324(%rdi), %ymm2
8966 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]
8967 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
8968 ; AVX2-SLOW-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8969 ; AVX2-SLOW-NEXT:    vmovdqa 1648(%rdi), %xmm0
8970 ; AVX2-SLOW-NEXT:    vpalignr {{.*#+}} ymm1 = ymm5[8,9,10,11,12,13,14,15],ymm6[0,1,2,3,4,5,6,7],ymm5[24,25,26,27,28,29,30,31],ymm6[16,17,18,19,20,21,22,23]
8971 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6,7]
8972 ; AVX2-SLOW-NEXT:    vpbroadcastd 1576(%rdi), %xmm1
8973 ; AVX2-SLOW-NEXT:    vmovdqa 1600(%rdi), %xmm2
8974 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm1 = xmm1[0],xmm2[1],xmm1[2,3]
8975 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
8976 ; AVX2-SLOW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8977 ; AVX2-SLOW-NEXT:    vpunpcklqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
8978 ; AVX2-SLOW-NEXT:    # ymm1 = ymm1[0],mem[0],ymm1[2],mem[2]
8979 ; AVX2-SLOW-NEXT:    vpbroadcastd 1772(%rdi), %ymm6
8980 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm6[7]
8981 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
8982 ; AVX2-SLOW-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8983 ; AVX2-SLOW-NEXT:    vmovdqa 80(%rdi), %xmm0
8984 ; AVX2-SLOW-NEXT:    vpalignr {{.*#+}} ymm1 = ymm7[8,9,10,11,12,13,14,15],ymm3[0,1,2,3,4,5,6,7],ymm7[24,25,26,27,28,29,30,31],ymm3[16,17,18,19,20,21,22,23]
8985 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6,7]
8986 ; AVX2-SLOW-NEXT:    vpbroadcastd 8(%rdi), %xmm1
8987 ; AVX2-SLOW-NEXT:    vmovdqa 32(%rdi), %xmm3
8988 ; AVX2-SLOW-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8989 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm1 = xmm1[0],xmm3[1],xmm1[2,3]
8990 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
8991 ; AVX2-SLOW-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm13[0],ymm12[0],ymm13[2],ymm12[2]
8992 ; AVX2-SLOW-NEXT:    vpbroadcastd 204(%rdi), %ymm6
8993 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm6[7]
8994 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
8995 ; AVX2-SLOW-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8996 ; AVX2-SLOW-NEXT:    vmovdqa 528(%rdi), %xmm0
8997 ; AVX2-SLOW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8998 ; AVX2-SLOW-NEXT:    vpalignr {{.*#+}} ymm1 = ymm14[8,9,10,11,12,13,14,15],ymm1[0,1,2,3,4,5,6,7],ymm14[24,25,26,27,28,29,30,31],ymm1[16,17,18,19,20,21,22,23]
8999 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6,7]
9000 ; AVX2-SLOW-NEXT:    vpbroadcastd 456(%rdi), %xmm1
9001 ; AVX2-SLOW-NEXT:    vmovdqa 480(%rdi), %xmm3
9002 ; AVX2-SLOW-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9003 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm1 = xmm1[0],xmm3[1],xmm1[2,3]
9004 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
9005 ; AVX2-SLOW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9006 ; AVX2-SLOW-NEXT:    vpunpcklqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
9007 ; AVX2-SLOW-NEXT:    # ymm1 = ymm1[0],mem[0],ymm1[2],mem[2]
9008 ; AVX2-SLOW-NEXT:    vpbroadcastd 652(%rdi), %ymm15
9009 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm15[7]
9010 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
9011 ; AVX2-SLOW-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9012 ; AVX2-SLOW-NEXT:    vmovdqa 976(%rdi), %xmm0
9013 ; AVX2-SLOW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9014 ; AVX2-SLOW-NEXT:    vpalignr {{.*#+}} ymm1 = ymm8[8,9,10,11,12,13,14,15],ymm1[0,1,2,3,4,5,6,7],ymm8[24,25,26,27,28,29,30,31],ymm1[16,17,18,19,20,21,22,23]
9015 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6,7]
9016 ; AVX2-SLOW-NEXT:    vpbroadcastd 904(%rdi), %xmm15
9017 ; AVX2-SLOW-NEXT:    vmovdqa 928(%rdi), %xmm12
9018 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm15 = xmm15[0],xmm12[1],xmm15[2,3]
9019 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm15[0,1],ymm0[2,3,4,5,6,7]
9020 ; AVX2-SLOW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
9021 ; AVX2-SLOW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
9022 ; AVX2-SLOW-NEXT:    vpunpcklqdq {{.*#+}} ymm15 = ymm8[0],ymm7[0],ymm8[2],ymm7[2]
9023 ; AVX2-SLOW-NEXT:    vpbroadcastd 1100(%rdi), %ymm14
9024 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm14 = ymm15[0,1,2,3,4,5,6],ymm14[7]
9025 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm14[5,6,7]
9026 ; AVX2-SLOW-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9027 ; AVX2-SLOW-NEXT:    vmovdqa 1424(%rdi), %xmm0
9028 ; AVX2-SLOW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
9029 ; AVX2-SLOW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
9030 ; AVX2-SLOW-NEXT:    vpalignr {{.*#+}} ymm14 = ymm10[8,9,10,11,12,13,14,15],ymm9[0,1,2,3,4,5,6,7],ymm10[24,25,26,27,28,29,30,31],ymm9[16,17,18,19,20,21,22,23]
9031 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm14 = ymm14[0,1,2],ymm0[3],ymm14[4,5,6,7]
9032 ; AVX2-SLOW-NEXT:    vpbroadcastd 1352(%rdi), %xmm15
9033 ; AVX2-SLOW-NEXT:    vmovdqa 1376(%rdi), %xmm0
9034 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm15 = xmm15[0],xmm0[1],xmm15[2,3]
9035 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm14 = ymm15[0,1],ymm14[2,3,4,5,6,7]
9036 ; AVX2-SLOW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9037 ; AVX2-SLOW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9038 ; AVX2-SLOW-NEXT:    vpunpcklqdq {{.*#+}} ymm15 = ymm6[0],ymm1[0],ymm6[2],ymm1[2]
9039 ; AVX2-SLOW-NEXT:    vpbroadcastd 1548(%rdi), %ymm13
9040 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm13 = ymm15[0,1,2,3,4,5,6],ymm13[7]
9041 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm13 = ymm14[0,1,2,3,4],ymm13[5,6,7]
9042 ; AVX2-SLOW-NEXT:    vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9043 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
9044 ; AVX2-SLOW-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm13 # 32-byte Folded Reload
9045 ; AVX2-SLOW-NEXT:    # ymm13 = ymm3[0],mem[1],ymm3[2,3,4,5,6,7]
9046 ; AVX2-SLOW-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
9047 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm5 = xmm3[0,1,2],mem[3]
9048 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm5 = xmm5[3,2,2,3]
9049 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm13 = ymm13[3,1,1,0,7,5,5,4]
9050 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1],ymm13[2,3,4,5,6,7]
9051 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload
9052 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm13 = ymm4[0,2],ymm15[1,3],ymm4[4,6],ymm15[5,7]
9053 ; AVX2-SLOW-NEXT:    vbroadcastss 432(%rdi), %ymm14
9054 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1,2,3,4,5,6],ymm14[7]
9055 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1,2,3,4],ymm13[5,6,7]
9056 ; AVX2-SLOW-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9057 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
9058 ; AVX2-SLOW-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm5 # 32-byte Folded Reload
9059 ; AVX2-SLOW-NEXT:    # ymm5 = ymm3[0],mem[1],ymm3[2,3,4,5,6,7]
9060 ; AVX2-SLOW-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
9061 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm4 = xmm3[0,1,2],mem[3]
9062 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm4 = xmm4[3,2,2,3]
9063 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm5 = ymm5[3,1,1,0,7,5,5,4]
9064 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1],ymm5[2,3,4,5,6,7]
9065 ; AVX2-SLOW-NEXT:    vshufps $216, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm5 # 32-byte Folded Reload
9066 ; AVX2-SLOW-NEXT:    # ymm5 = ymm11[0,2],mem[1,3],ymm11[4,6],mem[5,7]
9067 ; AVX2-SLOW-NEXT:    vbroadcastss 880(%rdi), %ymm13
9068 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5,6],ymm13[7]
9069 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3,4],ymm5[5,6,7]
9070 ; AVX2-SLOW-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9071 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
9072 ; AVX2-SLOW-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm4 # 32-byte Folded Reload
9073 ; AVX2-SLOW-NEXT:    # ymm4 = ymm3[0],mem[1],ymm3[2,3,4,5,6,7]
9074 ; AVX2-SLOW-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
9075 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1,2],mem[3]
9076 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm3 = xmm3[3,2,2,3]
9077 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[3,1,1,0,7,5,5,4]
9078 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1],ymm4[2,3,4,5,6,7]
9079 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
9080 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
9081 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm4 = ymm13[0,2],ymm14[1,3],ymm13[4,6],ymm14[5,7]
9082 ; AVX2-SLOW-NEXT:    vbroadcastss 1328(%rdi), %ymm5
9083 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5,6],ymm5[7]
9084 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4],ymm4[5,6,7]
9085 ; AVX2-SLOW-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9086 ; AVX2-SLOW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
9087 ; AVX2-SLOW-NEXT:    vpblendd $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
9088 ; AVX2-SLOW-NEXT:    # ymm3 = ymm3[0],mem[1],ymm3[2,3,4,5,6,7]
9089 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0,1,2],mem[3]
9090 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} xmm2 = xmm2[3,2,2,3]
9091 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm3 = ymm3[3,1,1,0,7,5,5,4]
9092 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1],ymm3[2,3,4,5,6,7]
9093 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
9094 ; AVX2-SLOW-NEXT:    vshufps $216, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
9095 ; AVX2-SLOW-NEXT:    # ymm3 = ymm3[0,2],mem[1,3],ymm3[4,6],mem[5,7]
9096 ; AVX2-SLOW-NEXT:    vbroadcastss 1776(%rdi), %ymm4
9097 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,6],ymm4[7]
9098 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm3[5,6,7]
9099 ; AVX2-SLOW-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9100 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm10[0],ymm9[1],ymm10[2,3,4,5,6,7]
9101 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm0 = xmm0[0,1,2],mem[3]
9102 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} xmm0 = xmm0[3,2,2,3]
9103 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm2 = ymm2[3,1,1,0,7,5,5,4]
9104 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm2[2,3,4,5,6,7]
9105 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm2 = ymm6[0,2],ymm1[1,3],ymm6[4,6],ymm1[5,7]
9106 ; AVX2-SLOW-NEXT:    vbroadcastss 1552(%rdi), %ymm3
9107 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm3[7]
9108 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm2[5,6,7]
9109 ; AVX2-SLOW-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9110 ; AVX2-SLOW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9111 ; AVX2-SLOW-NEXT:    vpblendd $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
9112 ; AVX2-SLOW-NEXT:    # ymm0 = ymm0[0],mem[1],ymm0[2,3,4,5,6,7]
9113 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} xmm1 = xmm12[0,1,2],mem[3]
9114 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} xmm1 = xmm1[3,2,2,3]
9115 ; AVX2-SLOW-NEXT:    vpshufd {{.*#+}} ymm0 = ymm0[3,1,1,0,7,5,5,4]
9116 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
9117 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm8[0,2],ymm7[1,3],ymm8[4,6],ymm7[5,7]
9118 ; AVX2-SLOW-NEXT:    vmovaps %ymm7, %ymm9
9119 ; AVX2-SLOW-NEXT:    vmovaps %ymm8, %ymm11
9120 ; AVX2-SLOW-NEXT:    vbroadcastss 1104(%rdi), %ymm2
9121 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]
9122 ; AVX2-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
9123 ; AVX2-SLOW-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9124 ; AVX2-SLOW-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
9125 ; AVX2-SLOW-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
9126 ; AVX2-SLOW-NEXT:    # ymm0 = ymm0[0],mem[1],ymm0[2,3,4,5,6,7]
9127 ; AVX2-SLOW-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
9128 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1,2],mem[3]
9129 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[3,2,2,3]
9130 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[3,1,1,0,7,5,5,4]
9131 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
9132 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9133 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
9134 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm6[0,2],ymm8[1,3],ymm6[4,6],ymm8[5,7]
9135 ; AVX2-SLOW-NEXT:    vbroadcastss 656(%rdi), %ymm2
9136 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]
9137 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
9138 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9139 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9140 ; AVX2-SLOW-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
9141 ; AVX2-SLOW-NEXT:    # ymm0 = ymm0[0],mem[1],ymm0[2,3,4,5,6,7]
9142 ; AVX2-SLOW-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
9143 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1,2],mem[3]
9144 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[3,2,2,3]
9145 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[3,1,1,0,7,5,5,4]
9146 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
9147 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
9148 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
9149 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm3[0,2],ymm4[1,3],ymm3[4,6],ymm4[5,7]
9150 ; AVX2-SLOW-NEXT:    vbroadcastss 208(%rdi), %ymm2
9151 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]
9152 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
9153 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9154 ; AVX2-SLOW-NEXT:    vbroadcastss 100(%rdi), %xmm0
9155 ; AVX2-SLOW-NEXT:    vmovaps 64(%rdi), %xmm1
9156 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0,1,2],xmm0[3]
9157 ; AVX2-SLOW-NEXT:    vmovddup {{.*#+}} xmm7 = [4,3,4,3]
9158 ; AVX2-SLOW-NEXT:    # xmm7 = mem[0,0]
9159 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9160 ; AVX2-SLOW-NEXT:    vblendps $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
9161 ; AVX2-SLOW-NEXT:    # ymm2 = mem[0,1,2,3],ymm2[4,5,6,7]
9162 ; AVX2-SLOW-NEXT:    vpermps %ymm2, %ymm7, %ymm2
9163 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm0[2,3]
9164 ; AVX2-SLOW-NEXT:    vbroadcastsd {{.*#+}} ymm0 = [0,7,0,7,0,7,0,7]
9165 ; AVX2-SLOW-NEXT:    vpermps %ymm3, %ymm0, %ymm3
9166 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm4[6,7]
9167 ; AVX2-SLOW-NEXT:    vbroadcastss 212(%rdi), %ymm4
9168 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,6],ymm4[7]
9169 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
9170 ; AVX2-SLOW-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9171 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9172 ; AVX2-SLOW-NEXT:    vblendps $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
9173 ; AVX2-SLOW-NEXT:    # ymm2 = mem[0,1,2,3],ymm2[4,5,6,7]
9174 ; AVX2-SLOW-NEXT:    vpermps %ymm2, %ymm7, %ymm3
9175 ; AVX2-SLOW-NEXT:    vbroadcastss 324(%rdi), %xmm4
9176 ; AVX2-SLOW-NEXT:    vmovaps 288(%rdi), %xmm2
9177 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm4 = xmm2[0,1,2],xmm4[3]
9178 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm4[2,3]
9179 ; AVX2-SLOW-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm4 # 32-byte Folded Reload
9180 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],ymm15[6,7]
9181 ; AVX2-SLOW-NEXT:    vbroadcastss 436(%rdi), %ymm5
9182 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5,6],ymm5[7]
9183 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm4[4,5,6,7]
9184 ; AVX2-SLOW-NEXT:    vmovups %ymm3, (%rsp) # 32-byte Spill
9185 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
9186 ; AVX2-SLOW-NEXT:    vblendps $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
9187 ; AVX2-SLOW-NEXT:    # ymm3 = mem[0,1,2,3],ymm3[4,5,6,7]
9188 ; AVX2-SLOW-NEXT:    vpermps %ymm3, %ymm7, %ymm4
9189 ; AVX2-SLOW-NEXT:    vbroadcastss 548(%rdi), %xmm5
9190 ; AVX2-SLOW-NEXT:    vmovaps 512(%rdi), %xmm3
9191 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm5 = xmm3[0,1,2],xmm5[3]
9192 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],xmm5[2,3]
9193 ; AVX2-SLOW-NEXT:    vpermps %ymm6, %ymm0, %ymm5
9194 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],ymm8[6,7]
9195 ; AVX2-SLOW-NEXT:    vbroadcastss 660(%rdi), %ymm6
9196 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5,6],ymm6[7]
9197 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm5[4,5,6,7]
9198 ; AVX2-SLOW-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9199 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
9200 ; AVX2-SLOW-NEXT:    vblendps $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload
9201 ; AVX2-SLOW-NEXT:    # ymm4 = mem[0,1,2,3],ymm4[4,5,6,7]
9202 ; AVX2-SLOW-NEXT:    vpermps %ymm4, %ymm7, %ymm5
9203 ; AVX2-SLOW-NEXT:    vbroadcastss 772(%rdi), %xmm6
9204 ; AVX2-SLOW-NEXT:    vmovaps 736(%rdi), %xmm4
9205 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm6 = xmm4[0,1,2],xmm6[3]
9206 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm5 = xmm5[0,1],xmm6[2,3]
9207 ; AVX2-SLOW-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm6 # 32-byte Folded Reload
9208 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
9209 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5],ymm10[6,7]
9210 ; AVX2-SLOW-NEXT:    vbroadcastss 884(%rdi), %ymm8
9211 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5,6],ymm8[7]
9212 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm6[4,5,6,7]
9213 ; AVX2-SLOW-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9214 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
9215 ; AVX2-SLOW-NEXT:    vblendps $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm5 # 32-byte Folded Reload
9216 ; AVX2-SLOW-NEXT:    # ymm5 = mem[0,1,2,3],ymm5[4,5,6,7]
9217 ; AVX2-SLOW-NEXT:    vpermps %ymm5, %ymm7, %ymm6
9218 ; AVX2-SLOW-NEXT:    vbroadcastss 996(%rdi), %xmm8
9219 ; AVX2-SLOW-NEXT:    vmovaps 960(%rdi), %xmm5
9220 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm8 = xmm5[0,1,2],xmm8[3]
9221 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0,1],xmm8[2,3]
9222 ; AVX2-SLOW-NEXT:    vpermps %ymm11, %ymm0, %ymm8
9223 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],ymm9[6,7]
9224 ; AVX2-SLOW-NEXT:    vbroadcastss 1108(%rdi), %ymm9
9225 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5,6],ymm9[7]
9226 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm8[4,5,6,7]
9227 ; AVX2-SLOW-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9228 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9229 ; AVX2-SLOW-NEXT:    vblendps $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm6 # 32-byte Folded Reload
9230 ; AVX2-SLOW-NEXT:    # ymm6 = mem[0,1,2,3],ymm6[4,5,6,7]
9231 ; AVX2-SLOW-NEXT:    vpermps %ymm6, %ymm7, %ymm8
9232 ; AVX2-SLOW-NEXT:    vbroadcastss 1220(%rdi), %xmm9
9233 ; AVX2-SLOW-NEXT:    vmovaps 1184(%rdi), %xmm6
9234 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm9 = xmm6[0,1,2],xmm9[3]
9235 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm8 = xmm8[0,1],xmm9[2,3]
9236 ; AVX2-SLOW-NEXT:    vpermps %ymm13, %ymm0, %ymm9
9237 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5],ymm14[6,7]
9238 ; AVX2-SLOW-NEXT:    vbroadcastss 1332(%rdi), %ymm12
9239 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5,6],ymm12[7]
9240 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm9[4,5,6,7]
9241 ; AVX2-SLOW-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9242 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
9243 ; AVX2-SLOW-NEXT:    vblendps $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
9244 ; AVX2-SLOW-NEXT:    # ymm8 = mem[0,1,2,3],ymm8[4,5,6,7]
9245 ; AVX2-SLOW-NEXT:    vpermps %ymm8, %ymm7, %ymm8
9246 ; AVX2-SLOW-NEXT:    vbroadcastss 1444(%rdi), %xmm9
9247 ; AVX2-SLOW-NEXT:    vmovaps 1408(%rdi), %xmm13
9248 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm9 = xmm13[0,1,2],xmm9[3]
9249 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm8 = xmm8[0,1],xmm9[2,3]
9250 ; AVX2-SLOW-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm9 # 32-byte Folded Reload
9251 ; AVX2-SLOW-NEXT:    vblendps $192, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm9 # 32-byte Folded Reload
9252 ; AVX2-SLOW-NEXT:    # ymm9 = ymm9[0,1,2,3,4,5],mem[6,7]
9253 ; AVX2-SLOW-NEXT:    vbroadcastss 1556(%rdi), %ymm12
9254 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5,6],ymm12[7]
9255 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm9[4,5,6,7]
9256 ; AVX2-SLOW-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9257 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
9258 ; AVX2-SLOW-NEXT:    vblendps $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
9259 ; AVX2-SLOW-NEXT:    # ymm8 = mem[0,1,2,3],ymm8[4,5,6,7]
9260 ; AVX2-SLOW-NEXT:    vpermps %ymm8, %ymm7, %ymm7
9261 ; AVX2-SLOW-NEXT:    vbroadcastss 1668(%rdi), %xmm8
9262 ; AVX2-SLOW-NEXT:    vmovaps 1632(%rdi), %xmm14
9263 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm8 = xmm14[0,1,2],xmm8[3]
9264 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0,1],xmm8[2,3]
9265 ; AVX2-SLOW-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm8 # 32-byte Folded Reload
9266 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload
9267 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],ymm11[6,7]
9268 ; AVX2-SLOW-NEXT:    vbroadcastss 1780(%rdi), %ymm9
9269 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5,6],ymm9[7]
9270 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3],ymm8[4,5,6,7]
9271 ; AVX2-SLOW-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9272 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
9273 ; AVX2-SLOW-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload
9274 ; AVX2-SLOW-NEXT:    # ymm7 = ymm7[0],mem[1],ymm7[2,3,4],mem[5],ymm7[6,7]
9275 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm7 = ymm7[1,0,3,3,5,4,7,7]
9276 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm7 = ymm7[0,1,0,3]
9277 ; AVX2-SLOW-NEXT:    vbroadcastss 216(%rdi), %ymm8
9278 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5,6],ymm8[7]
9279 ; AVX2-SLOW-NEXT:    vmovaps 96(%rdi), %xmm12
9280 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm1 = xmm12[0,1,2],xmm1[3]
9281 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[0,1,3,2]
9282 ; AVX2-SLOW-NEXT:    vpermilps $225, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Folded Reload
9283 ; AVX2-SLOW-NEXT:    # ymm8 = mem[1,0,2,3,5,4,6,7]
9284 ; AVX2-SLOW-NEXT:    vextractf128 $1, %ymm8, %xmm8
9285 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm1 = xmm8[0,1],xmm1[2,3]
9286 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm7[4,5,6,7]
9287 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9288 ; AVX2-SLOW-NEXT:    vmovaps 320(%rdi), %xmm1
9289 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm2 = xmm1[0,1,2],xmm2[3]
9290 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[0,1,3,2]
9291 ; AVX2-SLOW-NEXT:    vpermilps $225, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Folded Reload
9292 ; AVX2-SLOW-NEXT:    # ymm7 = mem[1,0,2,3,5,4,6,7]
9293 ; AVX2-SLOW-NEXT:    vextractf128 $1, %ymm7, %xmm7
9294 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm2 = xmm7[0,1],xmm2[2,3]
9295 ; AVX2-SLOW-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm7 # 32-byte Folded Reload
9296 ; AVX2-SLOW-NEXT:    # ymm7 = ymm15[0],mem[1],ymm15[2,3,4],mem[5],ymm15[6,7]
9297 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm7 = ymm7[1,0,3,3,5,4,7,7]
9298 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm7 = ymm7[0,1,0,3]
9299 ; AVX2-SLOW-NEXT:    vbroadcastss 440(%rdi), %ymm8
9300 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5,6],ymm8[7]
9301 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm7[4,5,6,7]
9302 ; AVX2-SLOW-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9303 ; AVX2-SLOW-NEXT:    vmovaps 544(%rdi), %xmm2
9304 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm3 = xmm2[0,1,2],xmm3[3]
9305 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm3 = xmm3[0,1,3,2]
9306 ; AVX2-SLOW-NEXT:    vpermilps $225, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Folded Reload
9307 ; AVX2-SLOW-NEXT:    # ymm7 = mem[1,0,2,3,5,4,6,7]
9308 ; AVX2-SLOW-NEXT:    vextractf128 $1, %ymm7, %xmm7
9309 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm3 = xmm7[0,1],xmm3[2,3]
9310 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
9311 ; AVX2-SLOW-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload
9312 ; AVX2-SLOW-NEXT:    # ymm7 = ymm7[0],mem[1],ymm7[2,3,4],mem[5],ymm7[6,7]
9313 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm7 = ymm7[1,0,3,3,5,4,7,7]
9314 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm7 = ymm7[0,1,0,3]
9315 ; AVX2-SLOW-NEXT:    vbroadcastss 664(%rdi), %ymm8
9316 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5,6],ymm8[7]
9317 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm7[4,5,6,7]
9318 ; AVX2-SLOW-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9319 ; AVX2-SLOW-NEXT:    vmovaps 768(%rdi), %xmm3
9320 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm4 = xmm3[0,1,2],xmm4[3]
9321 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm4 = xmm4[0,1,3,2]
9322 ; AVX2-SLOW-NEXT:    vpermilps $225, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Folded Reload
9323 ; AVX2-SLOW-NEXT:    # ymm7 = mem[1,0,2,3,5,4,6,7]
9324 ; AVX2-SLOW-NEXT:    vextractf128 $1, %ymm7, %xmm7
9325 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm4 = xmm7[0,1],xmm4[2,3]
9326 ; AVX2-SLOW-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm7 # 32-byte Folded Reload
9327 ; AVX2-SLOW-NEXT:    # ymm7 = ymm10[0],mem[1],ymm10[2,3,4],mem[5],ymm10[6,7]
9328 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm7 = ymm7[1,0,3,3,5,4,7,7]
9329 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm7 = ymm7[0,1,0,3]
9330 ; AVX2-SLOW-NEXT:    vbroadcastss 888(%rdi), %ymm8
9331 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5,6],ymm8[7]
9332 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm7[4,5,6,7]
9333 ; AVX2-SLOW-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9334 ; AVX2-SLOW-NEXT:    vmovaps 992(%rdi), %xmm4
9335 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm5 = xmm4[0,1,2],xmm5[3]
9336 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm5 = xmm5[0,1,3,2]
9337 ; AVX2-SLOW-NEXT:    vpermilps $225, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Folded Reload
9338 ; AVX2-SLOW-NEXT:    # ymm7 = mem[1,0,2,3,5,4,6,7]
9339 ; AVX2-SLOW-NEXT:    vextractf128 $1, %ymm7, %xmm7
9340 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm5 = xmm7[0,1],xmm5[2,3]
9341 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
9342 ; AVX2-SLOW-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload
9343 ; AVX2-SLOW-NEXT:    # ymm7 = ymm7[0],mem[1],ymm7[2,3,4],mem[5],ymm7[6,7]
9344 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm7 = ymm7[1,0,3,3,5,4,7,7]
9345 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm7 = ymm7[0,1,0,3]
9346 ; AVX2-SLOW-NEXT:    vbroadcastss 1112(%rdi), %ymm10
9347 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5,6],ymm10[7]
9348 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm10 = ymm5[0,1,2,3],ymm7[4,5,6,7]
9349 ; AVX2-SLOW-NEXT:    vmovaps 1216(%rdi), %xmm15
9350 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm5 = xmm15[0,1,2],xmm6[3]
9351 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm5 = xmm5[0,1,3,2]
9352 ; AVX2-SLOW-NEXT:    vpermilps $225, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Folded Reload
9353 ; AVX2-SLOW-NEXT:    # ymm6 = mem[1,0,2,3,5,4,6,7]
9354 ; AVX2-SLOW-NEXT:    vextractf128 $1, %ymm6, %xmm6
9355 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm5 = xmm6[0,1],xmm5[2,3]
9356 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9357 ; AVX2-SLOW-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm6 # 32-byte Folded Reload
9358 ; AVX2-SLOW-NEXT:    # ymm6 = ymm6[0],mem[1],ymm6[2,3,4],mem[5],ymm6[6,7]
9359 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm6 = ymm6[1,0,3,3,5,4,7,7]
9360 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm6 = ymm6[0,1,0,3]
9361 ; AVX2-SLOW-NEXT:    vbroadcastss 1336(%rdi), %ymm7
9362 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5,6],ymm7[7]
9363 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm8 = ymm5[0,1,2,3],ymm6[4,5,6,7]
9364 ; AVX2-SLOW-NEXT:    vmovaps 1440(%rdi), %xmm5
9365 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm6 = xmm5[0,1,2],xmm13[3]
9366 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm6 = xmm6[0,1,3,2]
9367 ; AVX2-SLOW-NEXT:    vpermilps $225, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Folded Reload
9368 ; AVX2-SLOW-NEXT:    # ymm7 = mem[1,0,2,3,5,4,6,7]
9369 ; AVX2-SLOW-NEXT:    vextractf128 $1, %ymm7, %xmm7
9370 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm6 = xmm7[0,1],xmm6[2,3]
9371 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
9372 ; AVX2-SLOW-NEXT:    vblendps $221, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload
9373 ; AVX2-SLOW-NEXT:    # ymm7 = mem[0],ymm7[1],mem[2,3,4],ymm7[5],mem[6,7]
9374 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm7 = ymm7[1,0,3,3,5,4,7,7]
9375 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm7 = ymm7[0,1,0,3]
9376 ; AVX2-SLOW-NEXT:    vbroadcastss 1560(%rdi), %ymm13
9377 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5,6],ymm13[7]
9378 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm7 = ymm6[0,1,2,3],ymm7[4,5,6,7]
9379 ; AVX2-SLOW-NEXT:    vmovaps 1664(%rdi), %xmm6
9380 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm13 = xmm6[0,1,2],xmm14[3]
9381 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm13 = xmm13[0,1,3,2]
9382 ; AVX2-SLOW-NEXT:    vpermilps $225, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Folded Reload
9383 ; AVX2-SLOW-NEXT:    # ymm14 = mem[1,0,2,3,5,4,6,7]
9384 ; AVX2-SLOW-NEXT:    vextractf128 $1, %ymm14, %xmm14
9385 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm13 = xmm14[0,1],xmm13[2,3]
9386 ; AVX2-SLOW-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm14 # 32-byte Folded Reload
9387 ; AVX2-SLOW-NEXT:    # ymm14 = ymm11[0],mem[1],ymm11[2,3,4],mem[5],ymm11[6,7]
9388 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[1,0,3,3,5,4,7,7]
9389 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm14 = ymm14[0,1,0,3]
9390 ; AVX2-SLOW-NEXT:    vbroadcastss 1784(%rdi), %ymm9
9391 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm9 = ymm14[0,1,2,3,4,5,6],ymm9[7]
9392 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1,2,3],ymm9[4,5,6,7]
9393 ; AVX2-SLOW-NEXT:    vbroadcastss 136(%rdi), %xmm9
9394 ; AVX2-SLOW-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9, %xmm9 # 16-byte Folded Reload
9395 ; AVX2-SLOW-NEXT:    # xmm9 = xmm9[0],mem[1],xmm9[2,3]
9396 ; AVX2-SLOW-NEXT:    vinsertf128 $1, %xmm9, %ymm0, %ymm9
9397 ; AVX2-SLOW-NEXT:    vpermps 192(%rdi), %ymm0, %ymm14
9398 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5],ymm14[6,7]
9399 ; AVX2-SLOW-NEXT:    vbroadcastss 80(%rdi), %ymm14
9400 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm12 = xmm14[0,1,2],xmm12[3]
9401 ; AVX2-SLOW-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Folded Reload
9402 ; AVX2-SLOW-NEXT:    # ymm14 = mem[2,3,2,3,6,7,6,7]
9403 ; AVX2-SLOW-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
9404 ; AVX2-SLOW-NEXT:    # ymm14 = ymm14[0],mem[1],ymm14[2,3,4],mem[5],ymm14[6,7]
9405 ; AVX2-SLOW-NEXT:    vextractf128 $1, %ymm14, %xmm14
9406 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm12 = xmm14[0,1],xmm12[2,3]
9407 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3],ymm9[4,5,6,7]
9408 ; AVX2-SLOW-NEXT:    vbroadcastss 360(%rdi), %xmm9
9409 ; AVX2-SLOW-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9, %xmm9 # 16-byte Folded Reload
9410 ; AVX2-SLOW-NEXT:    # xmm9 = xmm9[0],mem[1],xmm9[2,3]
9411 ; AVX2-SLOW-NEXT:    vinsertf128 $1, %xmm9, %ymm0, %ymm9
9412 ; AVX2-SLOW-NEXT:    vpermps 416(%rdi), %ymm0, %ymm14
9413 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5],ymm14[6,7]
9414 ; AVX2-SLOW-NEXT:    vbroadcastss 304(%rdi), %ymm14
9415 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm1 = xmm14[0,1,2],xmm1[3]
9416 ; AVX2-SLOW-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Folded Reload
9417 ; AVX2-SLOW-NEXT:    # ymm14 = mem[2,3,2,3,6,7,6,7]
9418 ; AVX2-SLOW-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
9419 ; AVX2-SLOW-NEXT:    # ymm14 = ymm14[0],mem[1],ymm14[2,3,4],mem[5],ymm14[6,7]
9420 ; AVX2-SLOW-NEXT:    vextractf128 $1, %ymm14, %xmm14
9421 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm1 = xmm14[0,1],xmm1[2,3]
9422 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm14 = ymm1[0,1,2,3],ymm9[4,5,6,7]
9423 ; AVX2-SLOW-NEXT:    vbroadcastss 584(%rdi), %xmm1
9424 ; AVX2-SLOW-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
9425 ; AVX2-SLOW-NEXT:    # xmm1 = xmm1[0],mem[1],xmm1[2,3]
9426 ; AVX2-SLOW-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
9427 ; AVX2-SLOW-NEXT:    vpermps 640(%rdi), %ymm0, %ymm9
9428 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm9[6,7]
9429 ; AVX2-SLOW-NEXT:    vbroadcastss 528(%rdi), %ymm9
9430 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm2 = xmm9[0,1,2],xmm2[3]
9431 ; AVX2-SLOW-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Folded Reload
9432 ; AVX2-SLOW-NEXT:    # ymm9 = mem[2,3,2,3,6,7,6,7]
9433 ; AVX2-SLOW-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm9 # 32-byte Folded Reload
9434 ; AVX2-SLOW-NEXT:    # ymm9 = ymm9[0],mem[1],ymm9[2,3,4],mem[5],ymm9[6,7]
9435 ; AVX2-SLOW-NEXT:    vextractf128 $1, %ymm9, %xmm9
9436 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm2 = xmm9[0,1],xmm2[2,3]
9437 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
9438 ; AVX2-SLOW-NEXT:    vbroadcastss 808(%rdi), %xmm2
9439 ; AVX2-SLOW-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
9440 ; AVX2-SLOW-NEXT:    # xmm2 = xmm2[0],mem[1],xmm2[2,3]
9441 ; AVX2-SLOW-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
9442 ; AVX2-SLOW-NEXT:    vpermps 864(%rdi), %ymm0, %ymm9
9443 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm9[6,7]
9444 ; AVX2-SLOW-NEXT:    vbroadcastss 752(%rdi), %ymm9
9445 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm3 = xmm9[0,1,2],xmm3[3]
9446 ; AVX2-SLOW-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Folded Reload
9447 ; AVX2-SLOW-NEXT:    # ymm9 = mem[2,3,2,3,6,7,6,7]
9448 ; AVX2-SLOW-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm9 # 32-byte Folded Reload
9449 ; AVX2-SLOW-NEXT:    # ymm9 = ymm9[0],mem[1],ymm9[2,3,4],mem[5],ymm9[6,7]
9450 ; AVX2-SLOW-NEXT:    vextractf128 $1, %ymm9, %xmm9
9451 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm3 = xmm9[0,1],xmm3[2,3]
9452 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
9453 ; AVX2-SLOW-NEXT:    vbroadcastss 1032(%rdi), %xmm3
9454 ; AVX2-SLOW-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm3 # 16-byte Folded Reload
9455 ; AVX2-SLOW-NEXT:    # xmm3 = xmm3[0],mem[1],xmm3[2,3]
9456 ; AVX2-SLOW-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
9457 ; AVX2-SLOW-NEXT:    vpermps 1088(%rdi), %ymm0, %ymm9
9458 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm9[6,7]
9459 ; AVX2-SLOW-NEXT:    vbroadcastss 976(%rdi), %ymm9
9460 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm4 = xmm9[0,1,2],xmm4[3]
9461 ; AVX2-SLOW-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Folded Reload
9462 ; AVX2-SLOW-NEXT:    # ymm9 = mem[2,3,2,3,6,7,6,7]
9463 ; AVX2-SLOW-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm9 # 32-byte Folded Reload
9464 ; AVX2-SLOW-NEXT:    # ymm9 = ymm9[0],mem[1],ymm9[2,3,4],mem[5],ymm9[6,7]
9465 ; AVX2-SLOW-NEXT:    vextractf128 $1, %ymm9, %xmm9
9466 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm4 = xmm9[0,1],xmm4[2,3]
9467 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
9468 ; AVX2-SLOW-NEXT:    vbroadcastss 1256(%rdi), %xmm4
9469 ; AVX2-SLOW-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload
9470 ; AVX2-SLOW-NEXT:    # xmm4 = xmm4[0],mem[1],xmm4[2,3]
9471 ; AVX2-SLOW-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
9472 ; AVX2-SLOW-NEXT:    vpermps 1312(%rdi), %ymm0, %ymm9
9473 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],ymm9[6,7]
9474 ; AVX2-SLOW-NEXT:    vbroadcastss 1200(%rdi), %ymm9
9475 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm9 = xmm9[0,1,2],xmm15[3]
9476 ; AVX2-SLOW-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Folded Reload
9477 ; AVX2-SLOW-NEXT:    # ymm15 = mem[2,3,2,3,6,7,6,7]
9478 ; AVX2-SLOW-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm15 # 32-byte Folded Reload
9479 ; AVX2-SLOW-NEXT:    # ymm15 = ymm15[0],mem[1],ymm15[2,3,4],mem[5],ymm15[6,7]
9480 ; AVX2-SLOW-NEXT:    vextractf128 $1, %ymm15, %xmm15
9481 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm9 = xmm15[0,1],xmm9[2,3]
9482 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm4 = ymm9[0,1,2,3],ymm4[4,5,6,7]
9483 ; AVX2-SLOW-NEXT:    vbroadcastss 1480(%rdi), %xmm9
9484 ; AVX2-SLOW-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9, %xmm9 # 16-byte Folded Reload
9485 ; AVX2-SLOW-NEXT:    # xmm9 = xmm9[0],mem[1],xmm9[2,3]
9486 ; AVX2-SLOW-NEXT:    vinsertf128 $1, %xmm9, %ymm0, %ymm9
9487 ; AVX2-SLOW-NEXT:    vpermps 1536(%rdi), %ymm0, %ymm15
9488 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5],ymm15[6,7]
9489 ; AVX2-SLOW-NEXT:    vbroadcastss 1424(%rdi), %ymm15
9490 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm5 = xmm15[0,1,2],xmm5[3]
9491 ; AVX2-SLOW-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Folded Reload
9492 ; AVX2-SLOW-NEXT:    # ymm15 = mem[2,3,2,3,6,7,6,7]
9493 ; AVX2-SLOW-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm15 # 32-byte Folded Reload
9494 ; AVX2-SLOW-NEXT:    # ymm15 = ymm15[0],mem[1],ymm15[2,3,4],mem[5],ymm15[6,7]
9495 ; AVX2-SLOW-NEXT:    vextractf128 $1, %ymm15, %xmm15
9496 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm5 = xmm15[0,1],xmm5[2,3]
9497 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm9[4,5,6,7]
9498 ; AVX2-SLOW-NEXT:    vbroadcastss 1704(%rdi), %xmm9
9499 ; AVX2-SLOW-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9, %xmm9 # 16-byte Folded Reload
9500 ; AVX2-SLOW-NEXT:    # xmm9 = xmm9[0],mem[1],xmm9[2,3]
9501 ; AVX2-SLOW-NEXT:    vpermps 1760(%rdi), %ymm0, %ymm0
9502 ; AVX2-SLOW-NEXT:    vinsertf128 $1, %xmm9, %ymm0, %ymm9
9503 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm9[0,1,2,3,4,5],ymm0[6,7]
9504 ; AVX2-SLOW-NEXT:    vbroadcastss 1648(%rdi), %ymm9
9505 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm6 = xmm9[0,1,2],xmm6[3]
9506 ; AVX2-SLOW-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Folded Reload
9507 ; AVX2-SLOW-NEXT:    # ymm9 = mem[2,3,2,3,6,7,6,7]
9508 ; AVX2-SLOW-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm9 # 32-byte Folded Reload
9509 ; AVX2-SLOW-NEXT:    # ymm9 = ymm9[0],mem[1],ymm9[2,3,4],mem[5],ymm9[6,7]
9510 ; AVX2-SLOW-NEXT:    vextractf128 $1, %ymm9, %xmm9
9511 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm6 = xmm9[0,1],xmm6[2,3]
9512 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm6[0,1,2,3],ymm0[4,5,6,7]
9513 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9514 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 192(%rsi)
9515 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9516 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 128(%rsi)
9517 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9518 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 64(%rsi)
9519 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9520 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, (%rsi)
9521 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9522 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 224(%rsi)
9523 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9524 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 160(%rsi)
9525 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9526 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 96(%rsi)
9527 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9528 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 32(%rsi)
9529 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9530 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 192(%rdx)
9531 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9532 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 128(%rdx)
9533 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9534 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 64(%rdx)
9535 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9536 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, (%rdx)
9537 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9538 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 224(%rdx)
9539 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9540 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 160(%rdx)
9541 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9542 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 96(%rdx)
9543 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9544 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 32(%rdx)
9545 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9546 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 192(%rcx)
9547 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9548 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 128(%rcx)
9549 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9550 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 64(%rcx)
9551 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9552 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, (%rcx)
9553 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9554 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 224(%rcx)
9555 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9556 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 160(%rcx)
9557 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9558 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 96(%rcx)
9559 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9560 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 32(%rcx)
9561 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9562 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, (%r8)
9563 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9564 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 64(%r8)
9565 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9566 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 128(%r8)
9567 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9568 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 192(%r8)
9569 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9570 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 224(%r8)
9571 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9572 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 160(%r8)
9573 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9574 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 96(%r8)
9575 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9576 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 32(%r8)
9577 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9578 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 224(%r9)
9579 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9580 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 192(%r9)
9581 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9582 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 160(%r9)
9583 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9584 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 128(%r9)
9585 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9586 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 96(%r9)
9587 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9588 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 64(%r9)
9589 ; AVX2-SLOW-NEXT:    vmovups (%rsp), %ymm6 # 32-byte Reload
9590 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 32(%r9)
9591 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9592 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, (%r9)
9593 ; AVX2-SLOW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
9594 ; AVX2-SLOW-NEXT:    vmovaps %ymm13, 224(%rax)
9595 ; AVX2-SLOW-NEXT:    vmovaps %ymm7, 192(%rax)
9596 ; AVX2-SLOW-NEXT:    vmovaps %ymm8, 160(%rax)
9597 ; AVX2-SLOW-NEXT:    vmovaps %ymm10, 128(%rax)
9598 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9599 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 96(%rax)
9600 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9601 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 64(%rax)
9602 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9603 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 32(%rax)
9604 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9605 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, (%rax)
9606 ; AVX2-SLOW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
9607 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 224(%rax)
9608 ; AVX2-SLOW-NEXT:    vmovaps %ymm5, 192(%rax)
9609 ; AVX2-SLOW-NEXT:    vmovaps %ymm4, 160(%rax)
9610 ; AVX2-SLOW-NEXT:    vmovaps %ymm3, 128(%rax)
9611 ; AVX2-SLOW-NEXT:    vmovaps %ymm2, 96(%rax)
9612 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 64(%rax)
9613 ; AVX2-SLOW-NEXT:    vmovaps %ymm14, 32(%rax)
9614 ; AVX2-SLOW-NEXT:    vmovaps %ymm12, (%rax)
9615 ; AVX2-SLOW-NEXT:    addq $2680, %rsp # imm = 0xA78
9616 ; AVX2-SLOW-NEXT:    vzeroupper
9617 ; AVX2-SLOW-NEXT:    retq
9619 ; AVX2-FAST-LABEL: load_i32_stride7_vf64:
9620 ; AVX2-FAST:       # %bb.0:
9621 ; AVX2-FAST-NEXT:    subq $2680, %rsp # imm = 0xA78
9622 ; AVX2-FAST-NEXT:    vmovdqa 1216(%rdi), %ymm13
9623 ; AVX2-FAST-NEXT:    vmovdqa 1152(%rdi), %ymm4
9624 ; AVX2-FAST-NEXT:    vmovdqa 1120(%rdi), %ymm5
9625 ; AVX2-FAST-NEXT:    vmovdqa 768(%rdi), %ymm8
9626 ; AVX2-FAST-NEXT:    vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9627 ; AVX2-FAST-NEXT:    vmovdqa 704(%rdi), %ymm6
9628 ; AVX2-FAST-NEXT:    vmovdqa 672(%rdi), %ymm7
9629 ; AVX2-FAST-NEXT:    vmovdqa 320(%rdi), %ymm12
9630 ; AVX2-FAST-NEXT:    vmovdqa 256(%rdi), %ymm2
9631 ; AVX2-FAST-NEXT:    vmovdqa 224(%rdi), %ymm10
9632 ; AVX2-FAST-NEXT:    vmovdqa {{.*#+}} xmm0 = [0,7,6,u]
9633 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm10[0,1,2,3,4,5],ymm2[6],ymm10[7]
9634 ; AVX2-FAST-NEXT:    vmovdqu %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9635 ; AVX2-FAST-NEXT:    vmovdqa %ymm2, %ymm11
9636 ; AVX2-FAST-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9637 ; AVX2-FAST-NEXT:    vpermd %ymm1, %ymm0, %ymm1
9638 ; AVX2-FAST-NEXT:    vpbroadcastq 304(%rdi), %ymm2
9639 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm12[4,5,6,7]
9640 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
9641 ; AVX2-FAST-NEXT:    vmovdqa 352(%rdi), %xmm2
9642 ; AVX2-FAST-NEXT:    vmovdqa 384(%rdi), %xmm3
9643 ; AVX2-FAST-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9644 ; AVX2-FAST-NEXT:    vpunpckhqdq {{.*#+}} xmm2 = xmm2[1],xmm3[1]
9645 ; AVX2-FAST-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
9646 ; AVX2-FAST-NEXT:    vpbroadcastd 420(%rdi), %ymm3
9647 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm3[7]
9648 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
9649 ; AVX2-FAST-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9650 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm7[0,1,2,3,4,5],ymm6[6],ymm7[7]
9651 ; AVX2-FAST-NEXT:    vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9652 ; AVX2-FAST-NEXT:    vmovdqa %ymm6, %ymm9
9653 ; AVX2-FAST-NEXT:    vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9654 ; AVX2-FAST-NEXT:    vpermd %ymm1, %ymm0, %ymm1
9655 ; AVX2-FAST-NEXT:    vpbroadcastq 752(%rdi), %ymm2
9656 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm8[4,5,6,7]
9657 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
9658 ; AVX2-FAST-NEXT:    vmovdqa 800(%rdi), %xmm2
9659 ; AVX2-FAST-NEXT:    vmovdqa 832(%rdi), %xmm3
9660 ; AVX2-FAST-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9661 ; AVX2-FAST-NEXT:    vpunpckhqdq {{.*#+}} xmm2 = xmm2[1],xmm3[1]
9662 ; AVX2-FAST-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
9663 ; AVX2-FAST-NEXT:    vpbroadcastd 868(%rdi), %ymm3
9664 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm3[7]
9665 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
9666 ; AVX2-FAST-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9667 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm5[0,1,2,3,4,5],ymm4[6],ymm5[7]
9668 ; AVX2-FAST-NEXT:    vmovdqa %ymm5, %ymm6
9669 ; AVX2-FAST-NEXT:    vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9670 ; AVX2-FAST-NEXT:    vmovdqa %ymm4, %ymm8
9671 ; AVX2-FAST-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9672 ; AVX2-FAST-NEXT:    vpermd %ymm1, %ymm0, %ymm1
9673 ; AVX2-FAST-NEXT:    vpbroadcastq 1200(%rdi), %ymm2
9674 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm13[4,5,6,7]
9675 ; AVX2-FAST-NEXT:    vmovdqa %ymm13, %ymm15
9676 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
9677 ; AVX2-FAST-NEXT:    vmovdqa 1248(%rdi), %xmm2
9678 ; AVX2-FAST-NEXT:    vmovdqa 1280(%rdi), %xmm3
9679 ; AVX2-FAST-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9680 ; AVX2-FAST-NEXT:    vpunpckhqdq {{.*#+}} xmm2 = xmm2[1],xmm3[1]
9681 ; AVX2-FAST-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
9682 ; AVX2-FAST-NEXT:    vpbroadcastd 1316(%rdi), %ymm3
9683 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm3[7]
9684 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
9685 ; AVX2-FAST-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9686 ; AVX2-FAST-NEXT:    vmovdqa 1600(%rdi), %ymm2
9687 ; AVX2-FAST-NEXT:    vmovdqa 1568(%rdi), %ymm3
9688 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm3[0,1,2,3,4,5],ymm2[6],ymm3[7]
9689 ; AVX2-FAST-NEXT:    vmovdqa %ymm3, %ymm13
9690 ; AVX2-FAST-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9691 ; AVX2-FAST-NEXT:    vmovdqa %ymm2, %ymm5
9692 ; AVX2-FAST-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9693 ; AVX2-FAST-NEXT:    vpermd %ymm1, %ymm0, %ymm1
9694 ; AVX2-FAST-NEXT:    vmovdqa 1664(%rdi), %ymm3
9695 ; AVX2-FAST-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9696 ; AVX2-FAST-NEXT:    vpbroadcastq 1648(%rdi), %ymm2
9697 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
9698 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
9699 ; AVX2-FAST-NEXT:    vmovdqa 1696(%rdi), %xmm2
9700 ; AVX2-FAST-NEXT:    vmovdqa 1728(%rdi), %xmm3
9701 ; AVX2-FAST-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9702 ; AVX2-FAST-NEXT:    vpunpckhqdq {{.*#+}} xmm2 = xmm2[1],xmm3[1]
9703 ; AVX2-FAST-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
9704 ; AVX2-FAST-NEXT:    vpbroadcastd 1764(%rdi), %ymm3
9705 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm3[7]
9706 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
9707 ; AVX2-FAST-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9708 ; AVX2-FAST-NEXT:    vmovdqa 96(%rdi), %ymm2
9709 ; AVX2-FAST-NEXT:    vpbroadcastq 80(%rdi), %ymm1
9710 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]
9711 ; AVX2-FAST-NEXT:    vmovdqa %ymm2, %ymm14
9712 ; AVX2-FAST-NEXT:    vmovdqa (%rdi), %ymm3
9713 ; AVX2-FAST-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9714 ; AVX2-FAST-NEXT:    vmovdqa 32(%rdi), %ymm2
9715 ; AVX2-FAST-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9716 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3,4,5],ymm2[6],ymm3[7]
9717 ; AVX2-FAST-NEXT:    vpermd %ymm2, %ymm0, %ymm2
9718 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7]
9719 ; AVX2-FAST-NEXT:    vmovdqa 128(%rdi), %xmm2
9720 ; AVX2-FAST-NEXT:    vmovdqa 160(%rdi), %xmm3
9721 ; AVX2-FAST-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9722 ; AVX2-FAST-NEXT:    vpunpckhqdq {{.*#+}} xmm2 = xmm2[1],xmm3[1]
9723 ; AVX2-FAST-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
9724 ; AVX2-FAST-NEXT:    vpbroadcastd 196(%rdi), %ymm3
9725 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm3[7]
9726 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
9727 ; AVX2-FAST-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9728 ; AVX2-FAST-NEXT:    vmovdqa 480(%rdi), %ymm1
9729 ; AVX2-FAST-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9730 ; AVX2-FAST-NEXT:    vmovdqa 448(%rdi), %ymm2
9731 ; AVX2-FAST-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9732 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6],ymm2[7]
9733 ; AVX2-FAST-NEXT:    vpermd %ymm1, %ymm0, %ymm1
9734 ; AVX2-FAST-NEXT:    vmovdqa 544(%rdi), %ymm3
9735 ; AVX2-FAST-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9736 ; AVX2-FAST-NEXT:    vpbroadcastq 528(%rdi), %ymm2
9737 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
9738 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
9739 ; AVX2-FAST-NEXT:    vmovdqa 576(%rdi), %xmm2
9740 ; AVX2-FAST-NEXT:    vmovdqa 608(%rdi), %xmm3
9741 ; AVX2-FAST-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9742 ; AVX2-FAST-NEXT:    vpunpckhqdq {{.*#+}} xmm2 = xmm2[1],xmm3[1]
9743 ; AVX2-FAST-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
9744 ; AVX2-FAST-NEXT:    vpbroadcastd 644(%rdi), %ymm3
9745 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm3[7]
9746 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
9747 ; AVX2-FAST-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9748 ; AVX2-FAST-NEXT:    vmovdqa 928(%rdi), %ymm2
9749 ; AVX2-FAST-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9750 ; AVX2-FAST-NEXT:    vmovdqa 896(%rdi), %ymm1
9751 ; AVX2-FAST-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9752 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6],ymm1[7]
9753 ; AVX2-FAST-NEXT:    vpermd %ymm1, %ymm0, %ymm1
9754 ; AVX2-FAST-NEXT:    vmovdqa 992(%rdi), %ymm3
9755 ; AVX2-FAST-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9756 ; AVX2-FAST-NEXT:    vpbroadcastq 976(%rdi), %ymm2
9757 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
9758 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
9759 ; AVX2-FAST-NEXT:    vmovdqa 1024(%rdi), %xmm2
9760 ; AVX2-FAST-NEXT:    vmovdqa 1056(%rdi), %xmm3
9761 ; AVX2-FAST-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9762 ; AVX2-FAST-NEXT:    vpunpckhqdq {{.*#+}} xmm2 = xmm2[1],xmm3[1]
9763 ; AVX2-FAST-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
9764 ; AVX2-FAST-NEXT:    vpbroadcastd 1092(%rdi), %ymm3
9765 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm3[7]
9766 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
9767 ; AVX2-FAST-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9768 ; AVX2-FAST-NEXT:    vmovdqa 1376(%rdi), %ymm2
9769 ; AVX2-FAST-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9770 ; AVX2-FAST-NEXT:    vmovdqa 1344(%rdi), %ymm1
9771 ; AVX2-FAST-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9772 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6],ymm1[7]
9773 ; AVX2-FAST-NEXT:    vpermd %ymm1, %ymm0, %ymm0
9774 ; AVX2-FAST-NEXT:    vmovdqa 1440(%rdi), %ymm2
9775 ; AVX2-FAST-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9776 ; AVX2-FAST-NEXT:    vpbroadcastq 1424(%rdi), %ymm1
9777 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]
9778 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
9779 ; AVX2-FAST-NEXT:    vmovdqa 1472(%rdi), %xmm1
9780 ; AVX2-FAST-NEXT:    vmovdqa 1504(%rdi), %xmm2
9781 ; AVX2-FAST-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9782 ; AVX2-FAST-NEXT:    vpunpckhqdq {{.*#+}} xmm1 = xmm1[1],xmm2[1]
9783 ; AVX2-FAST-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm1
9784 ; AVX2-FAST-NEXT:    vpbroadcastd 1540(%rdi), %ymm2
9785 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]
9786 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
9787 ; AVX2-FAST-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9788 ; AVX2-FAST-NEXT:    vpshufd {{.*#+}} xmm0 = mem[2,2,2,2]
9789 ; AVX2-FAST-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
9790 ; AVX2-FAST-NEXT:    vmovdqa 384(%rdi), %ymm2
9791 ; AVX2-FAST-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9792 ; AVX2-FAST-NEXT:    vmovdqa 352(%rdi), %ymm1
9793 ; AVX2-FAST-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9794 ; AVX2-FAST-NEXT:    vpalignr {{.*#+}} ymm1 = ymm2[12,13,14,15],ymm1[0,1,2,3,4,5,6,7,8,9,10,11],ymm2[28,29,30,31],ymm1[16,17,18,19,20,21,22,23,24,25,26,27]
9795 ; AVX2-FAST-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,2,0]
9796 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm1[0,1,2,3,4,5,6],ymm0[7]
9797 ; AVX2-FAST-NEXT:    vmovdqa 288(%rdi), %ymm0
9798 ; AVX2-FAST-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9799 ; AVX2-FAST-NEXT:    vmovdqu %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9800 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm12[0,1],ymm0[2,3],ymm12[4,5],ymm0[6,7]
9801 ; AVX2-FAST-NEXT:    vpbroadcastq {{.*#+}} ymm0 = [5,6,5,6,5,6,5,6]
9802 ; AVX2-FAST-NEXT:    vpermd %ymm1, %ymm0, %ymm3
9803 ; AVX2-FAST-NEXT:    vmovdqa {{.*#+}} ymm1 = [1,0,7,7,5,4,7,7]
9804 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm4 = ymm11[0],ymm10[1],ymm11[2,3,4],ymm10[5],ymm11[6,7]
9805 ; AVX2-FAST-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9806 ; AVX2-FAST-NEXT:    vpermd %ymm4, %ymm1, %ymm4
9807 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm3 = ymm4[0,1,2],ymm3[3,4,5,6,7]
9808 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3,4],ymm2[5,6,7]
9809 ; AVX2-FAST-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9810 ; AVX2-FAST-NEXT:    vpshufd {{.*#+}} xmm2 = mem[2,2,2,2]
9811 ; AVX2-FAST-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
9812 ; AVX2-FAST-NEXT:    vmovdqa 832(%rdi), %ymm4
9813 ; AVX2-FAST-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9814 ; AVX2-FAST-NEXT:    vmovdqa 800(%rdi), %ymm3
9815 ; AVX2-FAST-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9816 ; AVX2-FAST-NEXT:    vpalignr {{.*#+}} ymm3 = ymm4[12,13,14,15],ymm3[0,1,2,3,4,5,6,7,8,9,10,11],ymm4[28,29,30,31],ymm3[16,17,18,19,20,21,22,23,24,25,26,27]
9817 ; AVX2-FAST-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[0,1,2,0]
9818 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3,4,5,6],ymm2[7]
9819 ; AVX2-FAST-NEXT:    vmovdqa 736(%rdi), %ymm3
9820 ; AVX2-FAST-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9821 ; AVX2-FAST-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload
9822 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm3 = ymm11[0,1],ymm3[2,3],ymm11[4,5],ymm3[6,7]
9823 ; AVX2-FAST-NEXT:    vpermd %ymm3, %ymm0, %ymm3
9824 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm4 = ymm9[0],ymm7[1],ymm9[2,3,4],ymm7[5],ymm9[6,7]
9825 ; AVX2-FAST-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9826 ; AVX2-FAST-NEXT:    vpermd %ymm4, %ymm1, %ymm4
9827 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm3 = ymm4[0,1,2],ymm3[3,4,5,6,7]
9828 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3,4],ymm2[5,6,7]
9829 ; AVX2-FAST-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9830 ; AVX2-FAST-NEXT:    vpshufd {{.*#+}} xmm2 = mem[2,2,2,2]
9831 ; AVX2-FAST-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
9832 ; AVX2-FAST-NEXT:    vmovdqa 1280(%rdi), %ymm4
9833 ; AVX2-FAST-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9834 ; AVX2-FAST-NEXT:    vmovdqa 1248(%rdi), %ymm3
9835 ; AVX2-FAST-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9836 ; AVX2-FAST-NEXT:    vpalignr {{.*#+}} ymm3 = ymm4[12,13,14,15],ymm3[0,1,2,3,4,5,6,7,8,9,10,11],ymm4[28,29,30,31],ymm3[16,17,18,19,20,21,22,23,24,25,26,27]
9837 ; AVX2-FAST-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[0,1,2,0]
9838 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3,4,5,6],ymm2[7]
9839 ; AVX2-FAST-NEXT:    vmovdqa 1184(%rdi), %ymm3
9840 ; AVX2-FAST-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9841 ; AVX2-FAST-NEXT:    vmovdqa %ymm15, %ymm10
9842 ; AVX2-FAST-NEXT:    vmovdqu %ymm15, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9843 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm3 = ymm15[0,1],ymm3[2,3],ymm15[4,5],ymm3[6,7]
9844 ; AVX2-FAST-NEXT:    vpermd %ymm3, %ymm0, %ymm3
9845 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm4 = ymm8[0],ymm6[1],ymm8[2,3,4],ymm6[5],ymm8[6,7]
9846 ; AVX2-FAST-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9847 ; AVX2-FAST-NEXT:    vpermd %ymm4, %ymm1, %ymm4
9848 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm3 = ymm4[0,1,2],ymm3[3,4,5,6,7]
9849 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3,4],ymm2[5,6,7]
9850 ; AVX2-FAST-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9851 ; AVX2-FAST-NEXT:    vpshufd {{.*#+}} xmm2 = mem[2,2,2,2]
9852 ; AVX2-FAST-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
9853 ; AVX2-FAST-NEXT:    vmovdqa 1728(%rdi), %ymm4
9854 ; AVX2-FAST-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9855 ; AVX2-FAST-NEXT:    vmovdqa 1696(%rdi), %ymm3
9856 ; AVX2-FAST-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9857 ; AVX2-FAST-NEXT:    vpalignr {{.*#+}} ymm3 = ymm4[12,13,14,15],ymm3[0,1,2,3,4,5,6,7,8,9,10,11],ymm4[28,29,30,31],ymm3[16,17,18,19,20,21,22,23,24,25,26,27]
9858 ; AVX2-FAST-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[0,1,2,0]
9859 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3,4,5,6],ymm2[7]
9860 ; AVX2-FAST-NEXT:    vmovdqa 1632(%rdi), %ymm15
9861 ; AVX2-FAST-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9862 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm3 = ymm6[0,1],ymm15[2,3],ymm6[4,5],ymm15[6,7]
9863 ; AVX2-FAST-NEXT:    vmovdqu %ymm15, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9864 ; AVX2-FAST-NEXT:    vpermd %ymm3, %ymm0, %ymm3
9865 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm4 = ymm5[0],ymm13[1],ymm5[2,3,4],ymm13[5],ymm5[6,7]
9866 ; AVX2-FAST-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9867 ; AVX2-FAST-NEXT:    vpermd %ymm4, %ymm1, %ymm4
9868 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm3 = ymm4[0,1,2],ymm3[3,4,5,6,7]
9869 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3,4],ymm2[5,6,7]
9870 ; AVX2-FAST-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9871 ; AVX2-FAST-NEXT:    vpshufd {{.*#+}} xmm2 = mem[2,2,2,2]
9872 ; AVX2-FAST-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
9873 ; AVX2-FAST-NEXT:    vmovdqa 160(%rdi), %ymm4
9874 ; AVX2-FAST-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9875 ; AVX2-FAST-NEXT:    vmovdqa 128(%rdi), %ymm3
9876 ; AVX2-FAST-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9877 ; AVX2-FAST-NEXT:    vpalignr {{.*#+}} ymm3 = ymm4[12,13,14,15],ymm3[0,1,2,3,4,5,6,7,8,9,10,11],ymm4[28,29,30,31],ymm3[16,17,18,19,20,21,22,23,24,25,26,27]
9878 ; AVX2-FAST-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[0,1,2,0]
9879 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3,4,5,6],ymm2[7]
9880 ; AVX2-FAST-NEXT:    vmovdqa 64(%rdi), %ymm4
9881 ; AVX2-FAST-NEXT:    vmovdqa %ymm14, %ymm8
9882 ; AVX2-FAST-NEXT:    vmovdqu %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9883 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm3 = ymm14[0,1],ymm4[2,3],ymm14[4,5],ymm4[6,7]
9884 ; AVX2-FAST-NEXT:    vmovdqa %ymm4, %ymm14
9885 ; AVX2-FAST-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9886 ; AVX2-FAST-NEXT:    vpermd %ymm3, %ymm0, %ymm3
9887 ; AVX2-FAST-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
9888 ; AVX2-FAST-NEXT:    vpblendd $221, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload
9889 ; AVX2-FAST-NEXT:    # ymm4 = mem[0],ymm4[1],mem[2,3,4],ymm4[5],mem[6,7]
9890 ; AVX2-FAST-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9891 ; AVX2-FAST-NEXT:    vpermd %ymm4, %ymm1, %ymm4
9892 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm3 = ymm4[0,1,2],ymm3[3,4,5,6,7]
9893 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3,4],ymm2[5,6,7]
9894 ; AVX2-FAST-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9895 ; AVX2-FAST-NEXT:    vpshufd {{.*#+}} xmm2 = mem[2,2,2,2]
9896 ; AVX2-FAST-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
9897 ; AVX2-FAST-NEXT:    vmovdqa 608(%rdi), %ymm4
9898 ; AVX2-FAST-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9899 ; AVX2-FAST-NEXT:    vmovdqa 576(%rdi), %ymm3
9900 ; AVX2-FAST-NEXT:    vmovdqu %ymm3, (%rsp) # 32-byte Spill
9901 ; AVX2-FAST-NEXT:    vpalignr {{.*#+}} ymm3 = ymm4[12,13,14,15],ymm3[0,1,2,3,4,5,6,7,8,9,10,11],ymm4[28,29,30,31],ymm3[16,17,18,19,20,21,22,23,24,25,26,27]
9902 ; AVX2-FAST-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[0,1,2,0]
9903 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3,4,5,6],ymm2[7]
9904 ; AVX2-FAST-NEXT:    vmovdqa 512(%rdi), %ymm13
9905 ; AVX2-FAST-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
9906 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm3 = ymm9[0,1],ymm13[2,3],ymm9[4,5],ymm13[6,7]
9907 ; AVX2-FAST-NEXT:    vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9908 ; AVX2-FAST-NEXT:    vpermd %ymm3, %ymm0, %ymm3
9909 ; AVX2-FAST-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
9910 ; AVX2-FAST-NEXT:    vpblendd $221, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload
9911 ; AVX2-FAST-NEXT:    # ymm4 = mem[0],ymm4[1],mem[2,3,4],ymm4[5],mem[6,7]
9912 ; AVX2-FAST-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9913 ; AVX2-FAST-NEXT:    vpermd %ymm4, %ymm1, %ymm4
9914 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm3 = ymm4[0,1,2],ymm3[3,4,5,6,7]
9915 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3,4],ymm2[5,6,7]
9916 ; AVX2-FAST-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9917 ; AVX2-FAST-NEXT:    vpshufd {{.*#+}} xmm2 = mem[2,2,2,2]
9918 ; AVX2-FAST-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
9919 ; AVX2-FAST-NEXT:    vmovdqa 1056(%rdi), %ymm4
9920 ; AVX2-FAST-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9921 ; AVX2-FAST-NEXT:    vmovdqa 1024(%rdi), %ymm3
9922 ; AVX2-FAST-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9923 ; AVX2-FAST-NEXT:    vpalignr {{.*#+}} ymm3 = ymm4[12,13,14,15],ymm3[0,1,2,3,4,5,6,7,8,9,10,11],ymm4[28,29,30,31],ymm3[16,17,18,19,20,21,22,23,24,25,26,27]
9924 ; AVX2-FAST-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[0,1,2,0]
9925 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3,4,5,6],ymm2[7]
9926 ; AVX2-FAST-NEXT:    vmovdqa 960(%rdi), %ymm3
9927 ; AVX2-FAST-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9928 ; AVX2-FAST-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
9929 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm3 = ymm7[0,1],ymm3[2,3],ymm7[4,5],ymm3[6,7]
9930 ; AVX2-FAST-NEXT:    vpermd %ymm3, %ymm0, %ymm3
9931 ; AVX2-FAST-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
9932 ; AVX2-FAST-NEXT:    vpblendd $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload
9933 ; AVX2-FAST-NEXT:    # ymm4 = ymm4[0],mem[1],ymm4[2,3,4],mem[5],ymm4[6,7]
9934 ; AVX2-FAST-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9935 ; AVX2-FAST-NEXT:    vpermd %ymm4, %ymm1, %ymm4
9936 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm3 = ymm4[0,1,2],ymm3[3,4,5,6,7]
9937 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3,4],ymm2[5,6,7]
9938 ; AVX2-FAST-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9939 ; AVX2-FAST-NEXT:    vpshufd {{.*#+}} xmm2 = mem[2,2,2,2]
9940 ; AVX2-FAST-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
9941 ; AVX2-FAST-NEXT:    vmovdqa 1504(%rdi), %ymm4
9942 ; AVX2-FAST-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9943 ; AVX2-FAST-NEXT:    vmovdqa 1472(%rdi), %ymm3
9944 ; AVX2-FAST-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9945 ; AVX2-FAST-NEXT:    vpalignr {{.*#+}} ymm3 = ymm4[12,13,14,15],ymm3[0,1,2,3,4,5,6,7,8,9,10,11],ymm4[28,29,30,31],ymm3[16,17,18,19,20,21,22,23,24,25,26,27]
9946 ; AVX2-FAST-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[0,1,2,0]
9947 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3,4,5,6],ymm2[7]
9948 ; AVX2-FAST-NEXT:    vmovdqa 1408(%rdi), %ymm3
9949 ; AVX2-FAST-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9950 ; AVX2-FAST-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
9951 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm3 = ymm5[0,1],ymm3[2,3],ymm5[4,5],ymm3[6,7]
9952 ; AVX2-FAST-NEXT:    vpermd %ymm3, %ymm0, %ymm0
9953 ; AVX2-FAST-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
9954 ; AVX2-FAST-NEXT:    vpblendd $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
9955 ; AVX2-FAST-NEXT:    # ymm3 = ymm3[0],mem[1],ymm3[2,3,4],mem[5],ymm3[6,7]
9956 ; AVX2-FAST-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9957 ; AVX2-FAST-NEXT:    vpermd %ymm3, %ymm1, %ymm1
9958 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]
9959 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm2[5,6,7]
9960 ; AVX2-FAST-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9961 ; AVX2-FAST-NEXT:    vmovdqa 304(%rdi), %xmm0
9962 ; AVX2-FAST-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9963 ; AVX2-FAST-NEXT:    vpalignr {{.*#+}} ymm1 = ymm12[8,9,10,11,12,13,14,15],ymm1[0,1,2,3,4,5,6,7],ymm12[24,25,26,27,28,29,30,31],ymm1[16,17,18,19,20,21,22,23]
9964 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6,7]
9965 ; AVX2-FAST-NEXT:    vpbroadcastd 232(%rdi), %xmm1
9966 ; AVX2-FAST-NEXT:    vmovdqa 256(%rdi), %xmm2
9967 ; AVX2-FAST-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9968 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm1 = xmm1[0],xmm2[1],xmm1[2,3]
9969 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
9970 ; AVX2-FAST-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
9971 ; AVX2-FAST-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
9972 ; AVX2-FAST-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm12[0],ymm4[0],ymm12[2],ymm4[2]
9973 ; AVX2-FAST-NEXT:    vpbroadcastd 428(%rdi), %ymm2
9974 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]
9975 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
9976 ; AVX2-FAST-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9977 ; AVX2-FAST-NEXT:    vmovdqa 752(%rdi), %xmm0
9978 ; AVX2-FAST-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9979 ; AVX2-FAST-NEXT:    vpalignr {{.*#+}} ymm1 = ymm11[8,9,10,11,12,13,14,15],ymm1[0,1,2,3,4,5,6,7],ymm11[24,25,26,27,28,29,30,31],ymm1[16,17,18,19,20,21,22,23]
9980 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6,7]
9981 ; AVX2-FAST-NEXT:    vpbroadcastd 680(%rdi), %xmm1
9982 ; AVX2-FAST-NEXT:    vmovdqa 704(%rdi), %xmm2
9983 ; AVX2-FAST-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9984 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm1 = xmm1[0],xmm2[1],xmm1[2,3]
9985 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
9986 ; AVX2-FAST-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
9987 ; AVX2-FAST-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9988 ; AVX2-FAST-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[2],ymm3[2]
9989 ; AVX2-FAST-NEXT:    vpbroadcastd 876(%rdi), %ymm2
9990 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]
9991 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
9992 ; AVX2-FAST-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9993 ; AVX2-FAST-NEXT:    vmovdqa 1200(%rdi), %xmm0
9994 ; AVX2-FAST-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9995 ; AVX2-FAST-NEXT:    vpalignr {{.*#+}} ymm1 = ymm10[8,9,10,11,12,13,14,15],ymm1[0,1,2,3,4,5,6,7],ymm10[24,25,26,27,28,29,30,31],ymm1[16,17,18,19,20,21,22,23]
9996 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6,7]
9997 ; AVX2-FAST-NEXT:    vpbroadcastd 1128(%rdi), %xmm1
9998 ; AVX2-FAST-NEXT:    vmovdqa 1152(%rdi), %xmm2
9999 ; AVX2-FAST-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10000 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm1 = xmm1[0],xmm2[1],xmm1[2,3]
10001 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
10002 ; AVX2-FAST-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10003 ; AVX2-FAST-NEXT:    vpunpcklqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
10004 ; AVX2-FAST-NEXT:    # ymm1 = ymm1[0],mem[0],ymm1[2],mem[2]
10005 ; AVX2-FAST-NEXT:    vpbroadcastd 1324(%rdi), %ymm2
10006 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]
10007 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
10008 ; AVX2-FAST-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10009 ; AVX2-FAST-NEXT:    vmovdqa 1648(%rdi), %xmm0
10010 ; AVX2-FAST-NEXT:    vpalignr {{.*#+}} ymm1 = ymm6[8,9,10,11,12,13,14,15],ymm15[0,1,2,3,4,5,6,7],ymm6[24,25,26,27,28,29,30,31],ymm15[16,17,18,19,20,21,22,23]
10011 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6,7]
10012 ; AVX2-FAST-NEXT:    vpbroadcastd 1576(%rdi), %xmm1
10013 ; AVX2-FAST-NEXT:    vmovdqa 1600(%rdi), %xmm2
10014 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm1 = xmm1[0],xmm2[1],xmm1[2,3]
10015 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
10016 ; AVX2-FAST-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10017 ; AVX2-FAST-NEXT:    vpunpcklqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
10018 ; AVX2-FAST-NEXT:    # ymm1 = ymm1[0],mem[0],ymm1[2],mem[2]
10019 ; AVX2-FAST-NEXT:    vpbroadcastd 1772(%rdi), %ymm6
10020 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm6[7]
10021 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
10022 ; AVX2-FAST-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10023 ; AVX2-FAST-NEXT:    vmovdqa 80(%rdi), %xmm0
10024 ; AVX2-FAST-NEXT:    vpalignr {{.*#+}} ymm1 = ymm8[8,9,10,11,12,13,14,15],ymm14[0,1,2,3,4,5,6,7],ymm8[24,25,26,27,28,29,30,31],ymm14[16,17,18,19,20,21,22,23]
10025 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6,7]
10026 ; AVX2-FAST-NEXT:    vpbroadcastd 8(%rdi), %xmm1
10027 ; AVX2-FAST-NEXT:    vmovdqa 32(%rdi), %xmm6
10028 ; AVX2-FAST-NEXT:    vmovdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10029 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm1 = xmm1[0],xmm6[1],xmm1[2,3]
10030 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
10031 ; AVX2-FAST-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10032 ; AVX2-FAST-NEXT:    vpunpcklqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
10033 ; AVX2-FAST-NEXT:    # ymm1 = ymm1[0],mem[0],ymm1[2],mem[2]
10034 ; AVX2-FAST-NEXT:    vpbroadcastd 204(%rdi), %ymm6
10035 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm6[7]
10036 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
10037 ; AVX2-FAST-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10038 ; AVX2-FAST-NEXT:    vmovdqa 528(%rdi), %xmm0
10039 ; AVX2-FAST-NEXT:    vpalignr {{.*#+}} ymm1 = ymm9[8,9,10,11,12,13,14,15],ymm13[0,1,2,3,4,5,6,7],ymm9[24,25,26,27,28,29,30,31],ymm13[16,17,18,19,20,21,22,23]
10040 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6,7]
10041 ; AVX2-FAST-NEXT:    vpbroadcastd 456(%rdi), %xmm1
10042 ; AVX2-FAST-NEXT:    vmovdqa 480(%rdi), %xmm6
10043 ; AVX2-FAST-NEXT:    vmovdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10044 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm1 = xmm1[0],xmm6[1],xmm1[2,3]
10045 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
10046 ; AVX2-FAST-NEXT:    vmovdqu (%rsp), %ymm1 # 32-byte Reload
10047 ; AVX2-FAST-NEXT:    vpunpcklqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
10048 ; AVX2-FAST-NEXT:    # ymm1 = ymm1[0],mem[0],ymm1[2],mem[2]
10049 ; AVX2-FAST-NEXT:    vpbroadcastd 652(%rdi), %ymm15
10050 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm15[7]
10051 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
10052 ; AVX2-FAST-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10053 ; AVX2-FAST-NEXT:    vmovdqa 976(%rdi), %xmm0
10054 ; AVX2-FAST-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10055 ; AVX2-FAST-NEXT:    vpalignr {{.*#+}} ymm1 = ymm7[8,9,10,11,12,13,14,15],ymm1[0,1,2,3,4,5,6,7],ymm7[24,25,26,27,28,29,30,31],ymm1[16,17,18,19,20,21,22,23]
10056 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6,7]
10057 ; AVX2-FAST-NEXT:    vpbroadcastd 904(%rdi), %xmm15
10058 ; AVX2-FAST-NEXT:    vmovdqa 928(%rdi), %xmm11
10059 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm15 = xmm15[0],xmm11[1],xmm15[2,3]
10060 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm15[0,1],ymm0[2,3,4,5,6,7]
10061 ; AVX2-FAST-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
10062 ; AVX2-FAST-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
10063 ; AVX2-FAST-NEXT:    vpunpcklqdq {{.*#+}} ymm15 = ymm10[0],ymm7[0],ymm10[2],ymm7[2]
10064 ; AVX2-FAST-NEXT:    vpbroadcastd 1100(%rdi), %ymm13
10065 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm13 = ymm15[0,1,2,3,4,5,6],ymm13[7]
10066 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm13[5,6,7]
10067 ; AVX2-FAST-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10068 ; AVX2-FAST-NEXT:    vmovdqa 1424(%rdi), %xmm0
10069 ; AVX2-FAST-NEXT:    vmovdqa %ymm5, %ymm9
10070 ; AVX2-FAST-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
10071 ; AVX2-FAST-NEXT:    vpalignr {{.*#+}} ymm13 = ymm5[8,9,10,11,12,13,14,15],ymm8[0,1,2,3,4,5,6,7],ymm5[24,25,26,27,28,29,30,31],ymm8[16,17,18,19,20,21,22,23]
10072 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm13 = ymm13[0,1,2],ymm0[3],ymm13[4,5,6,7]
10073 ; AVX2-FAST-NEXT:    vpbroadcastd 1352(%rdi), %xmm15
10074 ; AVX2-FAST-NEXT:    vmovdqa 1376(%rdi), %xmm0
10075 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm15 = xmm15[0],xmm0[1],xmm15[2,3]
10076 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm13 = ymm15[0,1],ymm13[2,3,4,5,6,7]
10077 ; AVX2-FAST-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
10078 ; AVX2-FAST-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10079 ; AVX2-FAST-NEXT:    vpunpcklqdq {{.*#+}} ymm15 = ymm6[0],ymm1[0],ymm6[2],ymm1[2]
10080 ; AVX2-FAST-NEXT:    vpbroadcastd 1548(%rdi), %ymm14
10081 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm14 = ymm15[0,1,2,3,4,5,6],ymm14[7]
10082 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm13 = ymm13[0,1,2,3,4],ymm14[5,6,7]
10083 ; AVX2-FAST-NEXT:    vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10084 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
10085 ; AVX2-FAST-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm13 # 32-byte Folded Reload
10086 ; AVX2-FAST-NEXT:    # ymm13 = ymm5[0],mem[1],ymm5[2,3,4,5,6,7]
10087 ; AVX2-FAST-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
10088 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm5 = xmm5[0,1,2],mem[3]
10089 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm5 = xmm5[3,2,2,3]
10090 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm13 = ymm13[3,1,1,0,7,5,5,4]
10091 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1],ymm13[2,3,4,5,6,7]
10092 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm13 = ymm12[0,2],ymm4[1,3],ymm12[4,6],ymm4[5,7]
10093 ; AVX2-FAST-NEXT:    vbroadcastss 432(%rdi), %ymm14
10094 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1,2,3,4,5,6],ymm14[7]
10095 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4],ymm13[5,6,7]
10096 ; AVX2-FAST-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10097 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
10098 ; AVX2-FAST-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm5 # 32-byte Folded Reload
10099 ; AVX2-FAST-NEXT:    # ymm5 = ymm4[0],mem[1],ymm4[2,3,4,5,6,7]
10100 ; AVX2-FAST-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
10101 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1,2],mem[3]
10102 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm4 = xmm4[3,2,2,3]
10103 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm5 = ymm5[3,1,1,0,7,5,5,4]
10104 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1],ymm5[2,3,4,5,6,7]
10105 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload
10106 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm5 = ymm15[0,2],ymm3[1,3],ymm15[4,6],ymm3[5,7]
10107 ; AVX2-FAST-NEXT:    vmovaps %ymm3, %ymm13
10108 ; AVX2-FAST-NEXT:    vbroadcastss 880(%rdi), %ymm12
10109 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5,6],ymm12[7]
10110 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3,4],ymm5[5,6,7]
10111 ; AVX2-FAST-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10112 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
10113 ; AVX2-FAST-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm4 # 32-byte Folded Reload
10114 ; AVX2-FAST-NEXT:    # ymm4 = ymm3[0],mem[1],ymm3[2,3,4,5,6,7]
10115 ; AVX2-FAST-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
10116 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1,2],mem[3]
10117 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm3 = xmm3[3,2,2,3]
10118 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[3,1,1,0,7,5,5,4]
10119 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1],ymm4[2,3,4,5,6,7]
10120 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
10121 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
10122 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm4 = ymm14[0,2],ymm12[1,3],ymm14[4,6],ymm12[5,7]
10123 ; AVX2-FAST-NEXT:    vbroadcastss 1328(%rdi), %ymm5
10124 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5,6],ymm5[7]
10125 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4],ymm4[5,6,7]
10126 ; AVX2-FAST-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10127 ; AVX2-FAST-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
10128 ; AVX2-FAST-NEXT:    vpblendd $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
10129 ; AVX2-FAST-NEXT:    # ymm3 = ymm3[0],mem[1],ymm3[2,3,4,5,6,7]
10130 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0,1,2],mem[3]
10131 ; AVX2-FAST-NEXT:    vpshufd {{.*#+}} xmm2 = xmm2[3,2,2,3]
10132 ; AVX2-FAST-NEXT:    vpshufd {{.*#+}} ymm3 = ymm3[3,1,1,0,7,5,5,4]
10133 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1],ymm3[2,3,4,5,6,7]
10134 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
10135 ; AVX2-FAST-NEXT:    vshufps $216, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
10136 ; AVX2-FAST-NEXT:    # ymm3 = ymm3[0,2],mem[1,3],ymm3[4,6],mem[5,7]
10137 ; AVX2-FAST-NEXT:    vbroadcastss 1776(%rdi), %ymm4
10138 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,6],ymm4[7]
10139 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm3[5,6,7]
10140 ; AVX2-FAST-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10141 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm9[0],ymm8[1],ymm9[2,3,4,5,6,7]
10142 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm0 = xmm0[0,1,2],mem[3]
10143 ; AVX2-FAST-NEXT:    vpshufd {{.*#+}} xmm0 = xmm0[3,2,2,3]
10144 ; AVX2-FAST-NEXT:    vpshufd {{.*#+}} ymm2 = ymm2[3,1,1,0,7,5,5,4]
10145 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm2[2,3,4,5,6,7]
10146 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm2 = ymm6[0,2],ymm1[1,3],ymm6[4,6],ymm1[5,7]
10147 ; AVX2-FAST-NEXT:    vbroadcastss 1552(%rdi), %ymm3
10148 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm3[7]
10149 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm2[5,6,7]
10150 ; AVX2-FAST-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10151 ; AVX2-FAST-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10152 ; AVX2-FAST-NEXT:    vpblendd $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
10153 ; AVX2-FAST-NEXT:    # ymm0 = ymm0[0],mem[1],ymm0[2,3,4,5,6,7]
10154 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} xmm1 = xmm11[0,1,2],mem[3]
10155 ; AVX2-FAST-NEXT:    vpshufd {{.*#+}} xmm1 = xmm1[3,2,2,3]
10156 ; AVX2-FAST-NEXT:    vpshufd {{.*#+}} ymm0 = ymm0[3,1,1,0,7,5,5,4]
10157 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
10158 ; AVX2-FAST-NEXT:    vmovdqa %ymm10, %ymm8
10159 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm10[0,2],ymm7[1,3],ymm10[4,6],ymm7[5,7]
10160 ; AVX2-FAST-NEXT:    vmovaps %ymm7, %ymm10
10161 ; AVX2-FAST-NEXT:    vbroadcastss 1104(%rdi), %ymm2
10162 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]
10163 ; AVX2-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
10164 ; AVX2-FAST-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10165 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10166 ; AVX2-FAST-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
10167 ; AVX2-FAST-NEXT:    # ymm0 = ymm0[0],mem[1],ymm0[2,3,4,5,6,7]
10168 ; AVX2-FAST-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10169 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1,2],mem[3]
10170 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[3,2,2,3]
10171 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[3,1,1,0,7,5,5,4]
10172 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
10173 ; AVX2-FAST-NEXT:    vmovups (%rsp), %ymm6 # 32-byte Reload
10174 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
10175 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm6[0,2],ymm7[1,3],ymm6[4,6],ymm7[5,7]
10176 ; AVX2-FAST-NEXT:    vbroadcastss 656(%rdi), %ymm2
10177 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]
10178 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
10179 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10180 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10181 ; AVX2-FAST-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
10182 ; AVX2-FAST-NEXT:    # ymm0 = ymm0[0],mem[1],ymm0[2,3,4,5,6,7]
10183 ; AVX2-FAST-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
10184 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1,2],mem[3]
10185 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[3,2,2,3]
10186 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[3,1,1,0,7,5,5,4]
10187 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
10188 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
10189 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
10190 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm3[0,2],ymm5[1,3],ymm3[4,6],ymm5[5,7]
10191 ; AVX2-FAST-NEXT:    vbroadcastss 208(%rdi), %ymm2
10192 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]
10193 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
10194 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10195 ; AVX2-FAST-NEXT:    vbroadcastss 100(%rdi), %xmm0
10196 ; AVX2-FAST-NEXT:    vmovaps 64(%rdi), %xmm9
10197 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm0 = xmm9[0,1,2],xmm0[3]
10198 ; AVX2-FAST-NEXT:    vmovddup {{.*#+}} xmm4 = [4,3,4,3]
10199 ; AVX2-FAST-NEXT:    # xmm4 = mem[0,0]
10200 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10201 ; AVX2-FAST-NEXT:    vblendps $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
10202 ; AVX2-FAST-NEXT:    # ymm1 = mem[0,1,2,3],ymm1[4,5,6,7]
10203 ; AVX2-FAST-NEXT:    vpermps %ymm1, %ymm4, %ymm1
10204 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm0[2,3]
10205 ; AVX2-FAST-NEXT:    vbroadcastsd {{.*#+}} ymm0 = [0,7,0,7,0,7,0,7]
10206 ; AVX2-FAST-NEXT:    vpermps %ymm3, %ymm0, %ymm2
10207 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm5[6,7]
10208 ; AVX2-FAST-NEXT:    vbroadcastss 212(%rdi), %ymm3
10209 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm3[7]
10210 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]
10211 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10212 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10213 ; AVX2-FAST-NEXT:    vblendps $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
10214 ; AVX2-FAST-NEXT:    # ymm1 = mem[0,1,2,3],ymm1[4,5,6,7]
10215 ; AVX2-FAST-NEXT:    vpermps %ymm1, %ymm4, %ymm1
10216 ; AVX2-FAST-NEXT:    vbroadcastss 324(%rdi), %xmm3
10217 ; AVX2-FAST-NEXT:    vmovaps 288(%rdi), %xmm2
10218 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm3 = xmm2[0,1,2],xmm3[3]
10219 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm3[2,3]
10220 ; AVX2-FAST-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm3 # 32-byte Folded Reload
10221 ; AVX2-FAST-NEXT:    vblendps $192, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
10222 ; AVX2-FAST-NEXT:    # ymm3 = ymm3[0,1,2,3,4,5],mem[6,7]
10223 ; AVX2-FAST-NEXT:    vbroadcastss 436(%rdi), %ymm5
10224 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,6],ymm5[7]
10225 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
10226 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10227 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10228 ; AVX2-FAST-NEXT:    vblendps $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
10229 ; AVX2-FAST-NEXT:    # ymm1 = mem[0,1,2,3],ymm1[4,5,6,7]
10230 ; AVX2-FAST-NEXT:    vpermps %ymm1, %ymm4, %ymm1
10231 ; AVX2-FAST-NEXT:    vbroadcastss 548(%rdi), %xmm5
10232 ; AVX2-FAST-NEXT:    vmovaps 512(%rdi), %xmm3
10233 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm5 = xmm3[0,1,2],xmm5[3]
10234 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm5[2,3]
10235 ; AVX2-FAST-NEXT:    vpermps %ymm6, %ymm0, %ymm5
10236 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],ymm7[6,7]
10237 ; AVX2-FAST-NEXT:    vbroadcastss 660(%rdi), %ymm6
10238 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5,6],ymm6[7]
10239 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm5[4,5,6,7]
10240 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10241 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10242 ; AVX2-FAST-NEXT:    vblendps $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
10243 ; AVX2-FAST-NEXT:    # ymm1 = mem[0,1,2,3],ymm1[4,5,6,7]
10244 ; AVX2-FAST-NEXT:    vpermps %ymm1, %ymm4, %ymm1
10245 ; AVX2-FAST-NEXT:    vbroadcastss 772(%rdi), %xmm6
10246 ; AVX2-FAST-NEXT:    vmovaps 736(%rdi), %xmm5
10247 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm6 = xmm5[0,1,2],xmm6[3]
10248 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm6[2,3]
10249 ; AVX2-FAST-NEXT:    vpermps %ymm15, %ymm0, %ymm6
10250 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5],ymm13[6,7]
10251 ; AVX2-FAST-NEXT:    vbroadcastss 884(%rdi), %ymm7
10252 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5,6],ymm7[7]
10253 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm6[4,5,6,7]
10254 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10255 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10256 ; AVX2-FAST-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
10257 ; AVX2-FAST-NEXT:    # ymm1 = ymm1[0,1,2,3],mem[4,5,6,7]
10258 ; AVX2-FAST-NEXT:    vpermps %ymm1, %ymm4, %ymm1
10259 ; AVX2-FAST-NEXT:    vbroadcastss 996(%rdi), %xmm7
10260 ; AVX2-FAST-NEXT:    vmovaps 960(%rdi), %xmm6
10261 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm7 = xmm6[0,1,2],xmm7[3]
10262 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm7[2,3]
10263 ; AVX2-FAST-NEXT:    vpermps %ymm8, %ymm0, %ymm7
10264 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5],ymm10[6,7]
10265 ; AVX2-FAST-NEXT:    vbroadcastss 1108(%rdi), %ymm8
10266 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5,6],ymm8[7]
10267 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm7[4,5,6,7]
10268 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10269 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10270 ; AVX2-FAST-NEXT:    vblendps $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
10271 ; AVX2-FAST-NEXT:    # ymm1 = mem[0,1,2,3],ymm1[4,5,6,7]
10272 ; AVX2-FAST-NEXT:    vpermps %ymm1, %ymm4, %ymm1
10273 ; AVX2-FAST-NEXT:    vbroadcastss 1220(%rdi), %xmm8
10274 ; AVX2-FAST-NEXT:    vmovaps 1184(%rdi), %xmm7
10275 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm8 = xmm7[0,1,2],xmm8[3]
10276 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm8[2,3]
10277 ; AVX2-FAST-NEXT:    vpermps %ymm14, %ymm0, %ymm8
10278 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],ymm12[6,7]
10279 ; AVX2-FAST-NEXT:    vmovaps %ymm12, %ymm15
10280 ; AVX2-FAST-NEXT:    vbroadcastss 1332(%rdi), %ymm10
10281 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5,6],ymm10[7]
10282 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm8[4,5,6,7]
10283 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10284 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10285 ; AVX2-FAST-NEXT:    vblendps $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
10286 ; AVX2-FAST-NEXT:    # ymm1 = mem[0,1,2,3],ymm1[4,5,6,7]
10287 ; AVX2-FAST-NEXT:    vpermps %ymm1, %ymm4, %ymm1
10288 ; AVX2-FAST-NEXT:    vbroadcastss 1444(%rdi), %xmm10
10289 ; AVX2-FAST-NEXT:    vmovaps 1408(%rdi), %xmm8
10290 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm10 = xmm8[0,1,2],xmm10[3]
10291 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm10[2,3]
10292 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
10293 ; AVX2-FAST-NEXT:    vpermps %ymm14, %ymm0, %ymm10
10294 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
10295 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1,2,3,4,5],ymm13[6,7]
10296 ; AVX2-FAST-NEXT:    vbroadcastss 1556(%rdi), %ymm11
10297 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1,2,3,4,5,6],ymm11[7]
10298 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm10[4,5,6,7]
10299 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10300 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10301 ; AVX2-FAST-NEXT:    vblendps $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
10302 ; AVX2-FAST-NEXT:    # ymm1 = mem[0,1,2,3],ymm1[4,5,6,7]
10303 ; AVX2-FAST-NEXT:    vpermps %ymm1, %ymm4, %ymm1
10304 ; AVX2-FAST-NEXT:    vbroadcastss 1668(%rdi), %xmm4
10305 ; AVX2-FAST-NEXT:    vmovaps 1632(%rdi), %xmm12
10306 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm4 = xmm12[0,1,2],xmm4[3]
10307 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm4[2,3]
10308 ; AVX2-FAST-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm4 # 32-byte Folded Reload
10309 ; AVX2-FAST-NEXT:    vblendps $192, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload
10310 ; AVX2-FAST-NEXT:    # ymm4 = ymm4[0,1,2,3,4,5],mem[6,7]
10311 ; AVX2-FAST-NEXT:    vbroadcastss 1780(%rdi), %ymm10
10312 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5,6],ymm10[7]
10313 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
10314 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10315 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
10316 ; AVX2-FAST-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm4 # 32-byte Folded Reload
10317 ; AVX2-FAST-NEXT:    # ymm4 = ymm1[0],mem[1],ymm1[2,3,4],mem[5],ymm1[6,7]
10318 ; AVX2-FAST-NEXT:    vmovaps {{.*#+}} ymm1 = [1,0,3,3,1,0,7,7]
10319 ; AVX2-FAST-NEXT:    vpermps %ymm4, %ymm1, %ymm4
10320 ; AVX2-FAST-NEXT:    vbroadcastss 216(%rdi), %ymm10
10321 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5,6],ymm10[7]
10322 ; AVX2-FAST-NEXT:    vmovaps 96(%rdi), %xmm10
10323 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm9 = xmm10[0,1,2],xmm9[3]
10324 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm9 = xmm9[0,1,3,2]
10325 ; AVX2-FAST-NEXT:    vpermilps $225, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Folded Reload
10326 ; AVX2-FAST-NEXT:    # ymm11 = mem[1,0,2,3,5,4,6,7]
10327 ; AVX2-FAST-NEXT:    vextractf128 $1, %ymm11, %xmm11
10328 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm9 = xmm11[0,1],xmm9[2,3]
10329 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm4 = ymm9[0,1,2,3],ymm4[4,5,6,7]
10330 ; AVX2-FAST-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10331 ; AVX2-FAST-NEXT:    vmovaps 320(%rdi), %xmm4
10332 ; AVX2-FAST-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10333 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm2 = xmm4[0,1,2],xmm2[3]
10334 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[0,1,3,2]
10335 ; AVX2-FAST-NEXT:    vpermilps $225, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Folded Reload
10336 ; AVX2-FAST-NEXT:    # ymm4 = mem[1,0,2,3,5,4,6,7]
10337 ; AVX2-FAST-NEXT:    vextractf128 $1, %ymm4, %xmm4
10338 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm2 = xmm4[0,1],xmm2[2,3]
10339 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
10340 ; AVX2-FAST-NEXT:    vblendps $221, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload
10341 ; AVX2-FAST-NEXT:    # ymm4 = mem[0],ymm4[1],mem[2,3,4],ymm4[5],mem[6,7]
10342 ; AVX2-FAST-NEXT:    vpermps %ymm4, %ymm1, %ymm4
10343 ; AVX2-FAST-NEXT:    vbroadcastss 440(%rdi), %ymm9
10344 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5,6],ymm9[7]
10345 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm4[4,5,6,7]
10346 ; AVX2-FAST-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10347 ; AVX2-FAST-NEXT:    vmovaps 544(%rdi), %xmm2
10348 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm3 = xmm2[0,1,2],xmm3[3]
10349 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm3 = xmm3[0,1,3,2]
10350 ; AVX2-FAST-NEXT:    vpermilps $225, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Folded Reload
10351 ; AVX2-FAST-NEXT:    # ymm4 = mem[1,0,2,3,5,4,6,7]
10352 ; AVX2-FAST-NEXT:    vextractf128 $1, %ymm4, %xmm4
10353 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm3 = xmm4[0,1],xmm3[2,3]
10354 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
10355 ; AVX2-FAST-NEXT:    vblendps $34, (%rsp), %ymm4, %ymm4 # 32-byte Folded Reload
10356 ; AVX2-FAST-NEXT:    # ymm4 = ymm4[0],mem[1],ymm4[2,3,4],mem[5],ymm4[6,7]
10357 ; AVX2-FAST-NEXT:    vpermps %ymm4, %ymm1, %ymm4
10358 ; AVX2-FAST-NEXT:    vbroadcastss 664(%rdi), %ymm9
10359 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5,6],ymm9[7]
10360 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm4[4,5,6,7]
10361 ; AVX2-FAST-NEXT:    vmovups %ymm3, (%rsp) # 32-byte Spill
10362 ; AVX2-FAST-NEXT:    vmovaps 768(%rdi), %xmm4
10363 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm3 = xmm4[0,1,2],xmm5[3]
10364 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm3 = xmm3[0,1,3,2]
10365 ; AVX2-FAST-NEXT:    vpermilps $225, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Folded Reload
10366 ; AVX2-FAST-NEXT:    # ymm5 = mem[1,0,2,3,5,4,6,7]
10367 ; AVX2-FAST-NEXT:    vextractf128 $1, %ymm5, %xmm5
10368 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm3 = xmm5[0,1],xmm3[2,3]
10369 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
10370 ; AVX2-FAST-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm5 # 32-byte Folded Reload
10371 ; AVX2-FAST-NEXT:    # ymm5 = ymm5[0],mem[1],ymm5[2,3,4],mem[5],ymm5[6,7]
10372 ; AVX2-FAST-NEXT:    vpermps %ymm5, %ymm1, %ymm5
10373 ; AVX2-FAST-NEXT:    vbroadcastss 888(%rdi), %ymm9
10374 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5,6],ymm9[7]
10375 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm5[4,5,6,7]
10376 ; AVX2-FAST-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10377 ; AVX2-FAST-NEXT:    vmovaps 992(%rdi), %xmm9
10378 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm3 = xmm9[0,1,2],xmm6[3]
10379 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm3 = xmm3[0,1,3,2]
10380 ; AVX2-FAST-NEXT:    vpermilps $225, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Folded Reload
10381 ; AVX2-FAST-NEXT:    # ymm5 = mem[1,0,2,3,5,4,6,7]
10382 ; AVX2-FAST-NEXT:    vextractf128 $1, %ymm5, %xmm5
10383 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm3 = xmm5[0,1],xmm3[2,3]
10384 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
10385 ; AVX2-FAST-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm5 # 32-byte Folded Reload
10386 ; AVX2-FAST-NEXT:    # ymm5 = ymm5[0],mem[1],ymm5[2,3,4],mem[5],ymm5[6,7]
10387 ; AVX2-FAST-NEXT:    vpermps %ymm5, %ymm1, %ymm5
10388 ; AVX2-FAST-NEXT:    vbroadcastss 1112(%rdi), %ymm6
10389 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5,6],ymm6[7]
10390 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm6 = ymm3[0,1,2,3],ymm5[4,5,6,7]
10391 ; AVX2-FAST-NEXT:    vmovaps 1216(%rdi), %xmm3
10392 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm5 = xmm3[0,1,2],xmm7[3]
10393 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm5 = xmm5[0,1,3,2]
10394 ; AVX2-FAST-NEXT:    vpermilps $225, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Folded Reload
10395 ; AVX2-FAST-NEXT:    # ymm7 = mem[1,0,2,3,5,4,6,7]
10396 ; AVX2-FAST-NEXT:    vextractf128 $1, %ymm7, %xmm7
10397 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm5 = xmm7[0,1],xmm5[2,3]
10398 ; AVX2-FAST-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm7 # 32-byte Folded Reload
10399 ; AVX2-FAST-NEXT:    # ymm7 = ymm15[0],mem[1],ymm15[2,3,4],mem[5],ymm15[6,7]
10400 ; AVX2-FAST-NEXT:    vpermps %ymm7, %ymm1, %ymm7
10401 ; AVX2-FAST-NEXT:    vbroadcastss 1336(%rdi), %ymm15
10402 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5,6],ymm15[7]
10403 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm7 = ymm5[0,1,2,3],ymm7[4,5,6,7]
10404 ; AVX2-FAST-NEXT:    vmovaps 1440(%rdi), %xmm5
10405 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm8 = xmm5[0,1,2],xmm8[3]
10406 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm8 = xmm8[0,1,3,2]
10407 ; AVX2-FAST-NEXT:    vpermilps $225, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Folded Reload
10408 ; AVX2-FAST-NEXT:    # ymm15 = mem[1,0,2,3,5,4,6,7]
10409 ; AVX2-FAST-NEXT:    vextractf128 $1, %ymm15, %xmm15
10410 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm8 = xmm15[0,1],xmm8[2,3]
10411 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm15 = ymm13[0],ymm14[1],ymm13[2,3,4],ymm14[5],ymm13[6,7]
10412 ; AVX2-FAST-NEXT:    vpermps %ymm15, %ymm1, %ymm15
10413 ; AVX2-FAST-NEXT:    vbroadcastss 1560(%rdi), %ymm11
10414 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm11 = ymm15[0,1,2,3,4,5,6],ymm11[7]
10415 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm11[4,5,6,7]
10416 ; AVX2-FAST-NEXT:    vmovaps 1664(%rdi), %xmm15
10417 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm11 = xmm15[0,1,2],xmm12[3]
10418 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm11 = xmm11[0,1,3,2]
10419 ; AVX2-FAST-NEXT:    vpermilps $225, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Folded Reload
10420 ; AVX2-FAST-NEXT:    # ymm12 = mem[1,0,2,3,5,4,6,7]
10421 ; AVX2-FAST-NEXT:    vextractf128 $1, %ymm12, %xmm12
10422 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm11 = xmm12[0,1],xmm11[2,3]
10423 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
10424 ; AVX2-FAST-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm12 # 32-byte Folded Reload
10425 ; AVX2-FAST-NEXT:    # ymm12 = ymm12[0],mem[1],ymm12[2,3,4],mem[5],ymm12[6,7]
10426 ; AVX2-FAST-NEXT:    vpermps %ymm12, %ymm1, %ymm1
10427 ; AVX2-FAST-NEXT:    vbroadcastss 1784(%rdi), %ymm12
10428 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm12[7]
10429 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm12 = ymm11[0,1,2,3],ymm1[4,5,6,7]
10430 ; AVX2-FAST-NEXT:    vbroadcastss 136(%rdi), %xmm1
10431 ; AVX2-FAST-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
10432 ; AVX2-FAST-NEXT:    # xmm1 = xmm1[0],mem[1],xmm1[2,3]
10433 ; AVX2-FAST-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
10434 ; AVX2-FAST-NEXT:    vpermps 192(%rdi), %ymm0, %ymm11
10435 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm11[6,7]
10436 ; AVX2-FAST-NEXT:    vbroadcastss 80(%rdi), %ymm11
10437 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm10 = xmm11[0,1,2],xmm10[3]
10438 ; AVX2-FAST-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Folded Reload
10439 ; AVX2-FAST-NEXT:    # ymm11 = mem[2,3,2,3,6,7,6,7]
10440 ; AVX2-FAST-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm11 # 32-byte Folded Reload
10441 ; AVX2-FAST-NEXT:    # ymm11 = ymm11[0],mem[1],ymm11[2,3,4],mem[5],ymm11[6,7]
10442 ; AVX2-FAST-NEXT:    vextractf128 $1, %ymm11, %xmm11
10443 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm10 = xmm11[0,1],xmm10[2,3]
10444 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1,2,3],ymm1[4,5,6,7]
10445 ; AVX2-FAST-NEXT:    vbroadcastss 360(%rdi), %xmm1
10446 ; AVX2-FAST-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
10447 ; AVX2-FAST-NEXT:    # xmm1 = xmm1[0],mem[1],xmm1[2,3]
10448 ; AVX2-FAST-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
10449 ; AVX2-FAST-NEXT:    vpermps 416(%rdi), %ymm0, %ymm11
10450 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm11[6,7]
10451 ; AVX2-FAST-NEXT:    vbroadcastss 304(%rdi), %ymm11
10452 ; AVX2-FAST-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %xmm11, %xmm11 # 16-byte Folded Reload
10453 ; AVX2-FAST-NEXT:    # xmm11 = xmm11[0,1,2],mem[3]
10454 ; AVX2-FAST-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Folded Reload
10455 ; AVX2-FAST-NEXT:    # ymm13 = mem[2,3,2,3,6,7,6,7]
10456 ; AVX2-FAST-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm13 # 32-byte Folded Reload
10457 ; AVX2-FAST-NEXT:    # ymm13 = ymm13[0],mem[1],ymm13[2,3,4],mem[5],ymm13[6,7]
10458 ; AVX2-FAST-NEXT:    vextractf128 $1, %ymm13, %xmm13
10459 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm11 = xmm13[0,1],xmm11[2,3]
10460 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm13 = ymm11[0,1,2,3],ymm1[4,5,6,7]
10461 ; AVX2-FAST-NEXT:    vbroadcastss 584(%rdi), %xmm1
10462 ; AVX2-FAST-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
10463 ; AVX2-FAST-NEXT:    # xmm1 = xmm1[0],mem[1],xmm1[2,3]
10464 ; AVX2-FAST-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
10465 ; AVX2-FAST-NEXT:    vpermps 640(%rdi), %ymm0, %ymm11
10466 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm11[6,7]
10467 ; AVX2-FAST-NEXT:    vbroadcastss 528(%rdi), %ymm11
10468 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm2 = xmm11[0,1,2],xmm2[3]
10469 ; AVX2-FAST-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Folded Reload
10470 ; AVX2-FAST-NEXT:    # ymm11 = mem[2,3,2,3,6,7,6,7]
10471 ; AVX2-FAST-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm11 # 32-byte Folded Reload
10472 ; AVX2-FAST-NEXT:    # ymm11 = ymm11[0],mem[1],ymm11[2,3,4],mem[5],ymm11[6,7]
10473 ; AVX2-FAST-NEXT:    vextractf128 $1, %ymm11, %xmm11
10474 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm2 = xmm11[0,1],xmm2[2,3]
10475 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
10476 ; AVX2-FAST-NEXT:    vbroadcastss 808(%rdi), %xmm2
10477 ; AVX2-FAST-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
10478 ; AVX2-FAST-NEXT:    # xmm2 = xmm2[0],mem[1],xmm2[2,3]
10479 ; AVX2-FAST-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
10480 ; AVX2-FAST-NEXT:    vpermps 864(%rdi), %ymm0, %ymm11
10481 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm11[6,7]
10482 ; AVX2-FAST-NEXT:    vbroadcastss 752(%rdi), %ymm11
10483 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm4 = xmm11[0,1,2],xmm4[3]
10484 ; AVX2-FAST-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Folded Reload
10485 ; AVX2-FAST-NEXT:    # ymm11 = mem[2,3,2,3,6,7,6,7]
10486 ; AVX2-FAST-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm11 # 32-byte Folded Reload
10487 ; AVX2-FAST-NEXT:    # ymm11 = ymm11[0],mem[1],ymm11[2,3,4],mem[5],ymm11[6,7]
10488 ; AVX2-FAST-NEXT:    vextractf128 $1, %ymm11, %xmm11
10489 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm4 = xmm11[0,1],xmm4[2,3]
10490 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm2[4,5,6,7]
10491 ; AVX2-FAST-NEXT:    vbroadcastss 1032(%rdi), %xmm2
10492 ; AVX2-FAST-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
10493 ; AVX2-FAST-NEXT:    # xmm2 = xmm2[0],mem[1],xmm2[2,3]
10494 ; AVX2-FAST-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
10495 ; AVX2-FAST-NEXT:    vpermps 1088(%rdi), %ymm0, %ymm11
10496 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm11[6,7]
10497 ; AVX2-FAST-NEXT:    vbroadcastss 976(%rdi), %ymm11
10498 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm11 = xmm11[0,1,2],xmm9[3]
10499 ; AVX2-FAST-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Folded Reload
10500 ; AVX2-FAST-NEXT:    # ymm14 = mem[2,3,2,3,6,7,6,7]
10501 ; AVX2-FAST-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
10502 ; AVX2-FAST-NEXT:    # ymm14 = ymm14[0],mem[1],ymm14[2,3,4],mem[5],ymm14[6,7]
10503 ; AVX2-FAST-NEXT:    vextractf128 $1, %ymm14, %xmm14
10504 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm11 = xmm14[0,1],xmm11[2,3]
10505 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm14 = ymm11[0,1,2,3],ymm2[4,5,6,7]
10506 ; AVX2-FAST-NEXT:    vbroadcastss 1256(%rdi), %xmm2
10507 ; AVX2-FAST-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
10508 ; AVX2-FAST-NEXT:    # xmm2 = xmm2[0],mem[1],xmm2[2,3]
10509 ; AVX2-FAST-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
10510 ; AVX2-FAST-NEXT:    vpermps 1312(%rdi), %ymm0, %ymm11
10511 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm11[6,7]
10512 ; AVX2-FAST-NEXT:    vbroadcastss 1200(%rdi), %ymm11
10513 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm3 = xmm11[0,1,2],xmm3[3]
10514 ; AVX2-FAST-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Folded Reload
10515 ; AVX2-FAST-NEXT:    # ymm11 = mem[2,3,2,3,6,7,6,7]
10516 ; AVX2-FAST-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm11 # 32-byte Folded Reload
10517 ; AVX2-FAST-NEXT:    # ymm11 = ymm11[0],mem[1],ymm11[2,3,4],mem[5],ymm11[6,7]
10518 ; AVX2-FAST-NEXT:    vextractf128 $1, %ymm11, %xmm11
10519 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm3 = xmm11[0,1],xmm3[2,3]
10520 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
10521 ; AVX2-FAST-NEXT:    vbroadcastss 1480(%rdi), %xmm3
10522 ; AVX2-FAST-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm3 # 16-byte Folded Reload
10523 ; AVX2-FAST-NEXT:    # xmm3 = xmm3[0],mem[1],xmm3[2,3]
10524 ; AVX2-FAST-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
10525 ; AVX2-FAST-NEXT:    vpermps 1536(%rdi), %ymm0, %ymm11
10526 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm11[6,7]
10527 ; AVX2-FAST-NEXT:    vbroadcastss 1424(%rdi), %ymm11
10528 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm5 = xmm11[0,1,2],xmm5[3]
10529 ; AVX2-FAST-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Folded Reload
10530 ; AVX2-FAST-NEXT:    # ymm11 = mem[2,3,2,3,6,7,6,7]
10531 ; AVX2-FAST-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm11 # 32-byte Folded Reload
10532 ; AVX2-FAST-NEXT:    # ymm11 = ymm11[0],mem[1],ymm11[2,3,4],mem[5],ymm11[6,7]
10533 ; AVX2-FAST-NEXT:    vextractf128 $1, %ymm11, %xmm11
10534 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm5 = xmm11[0,1],xmm5[2,3]
10535 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm3 = ymm5[0,1,2,3],ymm3[4,5,6,7]
10536 ; AVX2-FAST-NEXT:    vbroadcastss 1704(%rdi), %xmm5
10537 ; AVX2-FAST-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm5 # 16-byte Folded Reload
10538 ; AVX2-FAST-NEXT:    # xmm5 = xmm5[0],mem[1],xmm5[2,3]
10539 ; AVX2-FAST-NEXT:    vpermps 1760(%rdi), %ymm0, %ymm0
10540 ; AVX2-FAST-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
10541 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm5[0,1,2,3,4,5],ymm0[6,7]
10542 ; AVX2-FAST-NEXT:    vbroadcastss 1648(%rdi), %ymm5
10543 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm5 = xmm5[0,1,2],xmm15[3]
10544 ; AVX2-FAST-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Folded Reload
10545 ; AVX2-FAST-NEXT:    # ymm11 = mem[2,3,2,3,6,7,6,7]
10546 ; AVX2-FAST-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm11 # 32-byte Folded Reload
10547 ; AVX2-FAST-NEXT:    # ymm11 = ymm11[0],mem[1],ymm11[2,3,4],mem[5],ymm11[6,7]
10548 ; AVX2-FAST-NEXT:    vextractf128 $1, %ymm11, %xmm11
10549 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm5 = xmm11[0,1],xmm5[2,3]
10550 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm5[0,1,2,3],ymm0[4,5,6,7]
10551 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
10552 ; AVX2-FAST-NEXT:    vmovaps %ymm5, 192(%rsi)
10553 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
10554 ; AVX2-FAST-NEXT:    vmovaps %ymm5, 128(%rsi)
10555 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
10556 ; AVX2-FAST-NEXT:    vmovaps %ymm5, 64(%rsi)
10557 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
10558 ; AVX2-FAST-NEXT:    vmovaps %ymm5, (%rsi)
10559 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
10560 ; AVX2-FAST-NEXT:    vmovaps %ymm5, 224(%rsi)
10561 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
10562 ; AVX2-FAST-NEXT:    vmovaps %ymm5, 160(%rsi)
10563 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
10564 ; AVX2-FAST-NEXT:    vmovaps %ymm5, 96(%rsi)
10565 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
10566 ; AVX2-FAST-NEXT:    vmovaps %ymm5, 32(%rsi)
10567 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
10568 ; AVX2-FAST-NEXT:    vmovaps %ymm5, 192(%rdx)
10569 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
10570 ; AVX2-FAST-NEXT:    vmovaps %ymm5, 128(%rdx)
10571 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
10572 ; AVX2-FAST-NEXT:    vmovaps %ymm5, 64(%rdx)
10573 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
10574 ; AVX2-FAST-NEXT:    vmovaps %ymm5, (%rdx)
10575 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
10576 ; AVX2-FAST-NEXT:    vmovaps %ymm5, 224(%rdx)
10577 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
10578 ; AVX2-FAST-NEXT:    vmovaps %ymm5, 160(%rdx)
10579 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
10580 ; AVX2-FAST-NEXT:    vmovaps %ymm5, 96(%rdx)
10581 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
10582 ; AVX2-FAST-NEXT:    vmovaps %ymm5, 32(%rdx)
10583 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
10584 ; AVX2-FAST-NEXT:    vmovaps %ymm5, 192(%rcx)
10585 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
10586 ; AVX2-FAST-NEXT:    vmovaps %ymm5, 128(%rcx)
10587 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
10588 ; AVX2-FAST-NEXT:    vmovaps %ymm5, 64(%rcx)
10589 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
10590 ; AVX2-FAST-NEXT:    vmovaps %ymm5, (%rcx)
10591 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
10592 ; AVX2-FAST-NEXT:    vmovaps %ymm5, 224(%rcx)
10593 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
10594 ; AVX2-FAST-NEXT:    vmovaps %ymm5, 160(%rcx)
10595 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
10596 ; AVX2-FAST-NEXT:    vmovaps %ymm5, 96(%rcx)
10597 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
10598 ; AVX2-FAST-NEXT:    vmovaps %ymm5, 32(%rcx)
10599 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
10600 ; AVX2-FAST-NEXT:    vmovaps %ymm5, (%r8)
10601 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
10602 ; AVX2-FAST-NEXT:    vmovaps %ymm5, 64(%r8)
10603 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
10604 ; AVX2-FAST-NEXT:    vmovaps %ymm5, 128(%r8)
10605 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
10606 ; AVX2-FAST-NEXT:    vmovaps %ymm5, 192(%r8)
10607 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
10608 ; AVX2-FAST-NEXT:    vmovaps %ymm5, 224(%r8)
10609 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
10610 ; AVX2-FAST-NEXT:    vmovaps %ymm5, 160(%r8)
10611 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
10612 ; AVX2-FAST-NEXT:    vmovaps %ymm5, 96(%r8)
10613 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
10614 ; AVX2-FAST-NEXT:    vmovaps %ymm5, 32(%r8)
10615 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
10616 ; AVX2-FAST-NEXT:    vmovaps %ymm5, 224(%r9)
10617 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
10618 ; AVX2-FAST-NEXT:    vmovaps %ymm5, 192(%r9)
10619 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
10620 ; AVX2-FAST-NEXT:    vmovaps %ymm5, 160(%r9)
10621 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
10622 ; AVX2-FAST-NEXT:    vmovaps %ymm5, 128(%r9)
10623 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
10624 ; AVX2-FAST-NEXT:    vmovaps %ymm5, 96(%r9)
10625 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
10626 ; AVX2-FAST-NEXT:    vmovaps %ymm5, 64(%r9)
10627 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
10628 ; AVX2-FAST-NEXT:    vmovaps %ymm5, 32(%r9)
10629 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
10630 ; AVX2-FAST-NEXT:    vmovaps %ymm5, (%r9)
10631 ; AVX2-FAST-NEXT:    movq {{[0-9]+}}(%rsp), %rax
10632 ; AVX2-FAST-NEXT:    vmovaps %ymm12, 224(%rax)
10633 ; AVX2-FAST-NEXT:    vmovaps %ymm8, 192(%rax)
10634 ; AVX2-FAST-NEXT:    vmovaps %ymm7, 160(%rax)
10635 ; AVX2-FAST-NEXT:    vmovaps %ymm6, 128(%rax)
10636 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
10637 ; AVX2-FAST-NEXT:    vmovaps %ymm5, 96(%rax)
10638 ; AVX2-FAST-NEXT:    vmovups (%rsp), %ymm5 # 32-byte Reload
10639 ; AVX2-FAST-NEXT:    vmovaps %ymm5, 64(%rax)
10640 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
10641 ; AVX2-FAST-NEXT:    vmovaps %ymm5, 32(%rax)
10642 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
10643 ; AVX2-FAST-NEXT:    vmovaps %ymm5, (%rax)
10644 ; AVX2-FAST-NEXT:    movq {{[0-9]+}}(%rsp), %rax
10645 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 224(%rax)
10646 ; AVX2-FAST-NEXT:    vmovaps %ymm3, 192(%rax)
10647 ; AVX2-FAST-NEXT:    vmovaps %ymm2, 160(%rax)
10648 ; AVX2-FAST-NEXT:    vmovaps %ymm14, 128(%rax)
10649 ; AVX2-FAST-NEXT:    vmovaps %ymm4, 96(%rax)
10650 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 64(%rax)
10651 ; AVX2-FAST-NEXT:    vmovaps %ymm13, 32(%rax)
10652 ; AVX2-FAST-NEXT:    vmovaps %ymm10, (%rax)
10653 ; AVX2-FAST-NEXT:    addq $2680, %rsp # imm = 0xA78
10654 ; AVX2-FAST-NEXT:    vzeroupper
10655 ; AVX2-FAST-NEXT:    retq
10657 ; AVX2-FAST-PERLANE-LABEL: load_i32_stride7_vf64:
10658 ; AVX2-FAST-PERLANE:       # %bb.0:
10659 ; AVX2-FAST-PERLANE-NEXT:    subq $2680, %rsp # imm = 0xA78
10660 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 1216(%rdi), %ymm12
10661 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10662 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 1152(%rdi), %ymm4
10663 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 1120(%rdi), %ymm5
10664 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 768(%rdi), %ymm13
10665 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10666 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 704(%rdi), %ymm6
10667 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 672(%rdi), %ymm7
10668 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 320(%rdi), %ymm8
10669 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10670 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 256(%rdi), %ymm2
10671 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 224(%rdi), %ymm3
10672 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa {{.*#+}} xmm0 = [0,7,6,u]
10673 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm3[0,1,2,3,4,5],ymm2[6],ymm3[7]
10674 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %ymm3, %ymm11
10675 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10676 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %ymm2, %ymm10
10677 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10678 ; AVX2-FAST-PERLANE-NEXT:    vpermd %ymm1, %ymm0, %ymm1
10679 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastq 304(%rdi), %ymm2
10680 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm8[4,5,6,7]
10681 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
10682 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 352(%rdi), %xmm2
10683 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 384(%rdi), %xmm3
10684 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10685 ; AVX2-FAST-PERLANE-NEXT:    vpunpckhqdq {{.*#+}} xmm2 = xmm2[1],xmm3[1]
10686 ; AVX2-FAST-PERLANE-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
10687 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 420(%rdi), %ymm3
10688 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm3[7]
10689 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
10690 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10691 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm7[0,1,2,3,4,5],ymm6[6],ymm7[7]
10692 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %ymm7, %ymm9
10693 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10694 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %ymm6, %ymm8
10695 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10696 ; AVX2-FAST-PERLANE-NEXT:    vpermd %ymm1, %ymm0, %ymm1
10697 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastq 752(%rdi), %ymm2
10698 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm13[4,5,6,7]
10699 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
10700 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 800(%rdi), %xmm2
10701 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 832(%rdi), %xmm3
10702 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10703 ; AVX2-FAST-PERLANE-NEXT:    vpunpckhqdq {{.*#+}} xmm2 = xmm2[1],xmm3[1]
10704 ; AVX2-FAST-PERLANE-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
10705 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 868(%rdi), %ymm3
10706 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm3[7]
10707 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
10708 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10709 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm5[0,1,2,3,4,5],ymm4[6],ymm5[7]
10710 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %ymm5, %ymm6
10711 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10712 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %ymm4, %ymm5
10713 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10714 ; AVX2-FAST-PERLANE-NEXT:    vpermd %ymm1, %ymm0, %ymm1
10715 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastq 1200(%rdi), %ymm2
10716 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm12[4,5,6,7]
10717 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
10718 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 1248(%rdi), %xmm2
10719 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 1280(%rdi), %xmm3
10720 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10721 ; AVX2-FAST-PERLANE-NEXT:    vpunpckhqdq {{.*#+}} xmm2 = xmm2[1],xmm3[1]
10722 ; AVX2-FAST-PERLANE-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
10723 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 1316(%rdi), %ymm3
10724 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm3[7]
10725 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
10726 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10727 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 1600(%rdi), %ymm2
10728 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 1568(%rdi), %ymm1
10729 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10730 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6],ymm1[7]
10731 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %ymm2, %ymm14
10732 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10733 ; AVX2-FAST-PERLANE-NEXT:    vpermd %ymm1, %ymm0, %ymm1
10734 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 1664(%rdi), %ymm3
10735 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10736 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastq 1648(%rdi), %ymm2
10737 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
10738 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
10739 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 1696(%rdi), %xmm2
10740 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 1728(%rdi), %xmm3
10741 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10742 ; AVX2-FAST-PERLANE-NEXT:    vpunpckhqdq {{.*#+}} xmm2 = xmm2[1],xmm3[1]
10743 ; AVX2-FAST-PERLANE-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
10744 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 1764(%rdi), %ymm3
10745 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm3[7]
10746 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
10747 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10748 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 96(%rdi), %ymm2
10749 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10750 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastq 80(%rdi), %ymm1
10751 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]
10752 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa (%rdi), %ymm3
10753 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10754 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 32(%rdi), %ymm2
10755 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10756 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm2 = ymm3[0,1,2,3,4,5],ymm2[6],ymm3[7]
10757 ; AVX2-FAST-PERLANE-NEXT:    vpermd %ymm2, %ymm0, %ymm2
10758 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7]
10759 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 128(%rdi), %xmm2
10760 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 160(%rdi), %xmm3
10761 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10762 ; AVX2-FAST-PERLANE-NEXT:    vpunpckhqdq {{.*#+}} xmm2 = xmm2[1],xmm3[1]
10763 ; AVX2-FAST-PERLANE-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
10764 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 196(%rdi), %ymm3
10765 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm3[7]
10766 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
10767 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10768 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 480(%rdi), %ymm2
10769 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 448(%rdi), %ymm13
10770 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm13[0,1,2,3,4,5],ymm2[6],ymm13[7]
10771 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10772 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %ymm2, %ymm12
10773 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10774 ; AVX2-FAST-PERLANE-NEXT:    vpermd %ymm1, %ymm0, %ymm1
10775 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 544(%rdi), %ymm3
10776 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm3, (%rsp) # 32-byte Spill
10777 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastq 528(%rdi), %ymm2
10778 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
10779 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
10780 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 576(%rdi), %xmm2
10781 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 608(%rdi), %xmm3
10782 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10783 ; AVX2-FAST-PERLANE-NEXT:    vpunpckhqdq {{.*#+}} xmm2 = xmm2[1],xmm3[1]
10784 ; AVX2-FAST-PERLANE-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
10785 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 644(%rdi), %ymm3
10786 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm3[7]
10787 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
10788 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10789 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 928(%rdi), %ymm1
10790 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10791 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 896(%rdi), %ymm3
10792 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm3[0,1,2,3,4,5],ymm1[6],ymm3[7]
10793 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %ymm3, %ymm15
10794 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10795 ; AVX2-FAST-PERLANE-NEXT:    vpermd %ymm1, %ymm0, %ymm1
10796 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 992(%rdi), %ymm3
10797 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10798 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastq 976(%rdi), %ymm2
10799 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
10800 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
10801 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 1024(%rdi), %xmm2
10802 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 1056(%rdi), %xmm3
10803 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10804 ; AVX2-FAST-PERLANE-NEXT:    vpunpckhqdq {{.*#+}} xmm2 = xmm2[1],xmm3[1]
10805 ; AVX2-FAST-PERLANE-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
10806 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 1092(%rdi), %ymm3
10807 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm3[7]
10808 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
10809 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10810 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 1376(%rdi), %ymm2
10811 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10812 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 1344(%rdi), %ymm1
10813 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10814 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6],ymm1[7]
10815 ; AVX2-FAST-PERLANE-NEXT:    vpermd %ymm1, %ymm0, %ymm0
10816 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 1440(%rdi), %ymm7
10817 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastq 1424(%rdi), %ymm1
10818 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm7[4,5,6,7]
10819 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10820 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
10821 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 1472(%rdi), %xmm1
10822 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 1504(%rdi), %xmm2
10823 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
10824 ; AVX2-FAST-PERLANE-NEXT:    vpunpckhqdq {{.*#+}} xmm1 = xmm1[1],xmm2[1]
10825 ; AVX2-FAST-PERLANE-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm1
10826 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 1540(%rdi), %ymm2
10827 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]
10828 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
10829 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10830 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} xmm0 = mem[2,2,2,2]
10831 ; AVX2-FAST-PERLANE-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm3
10832 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 384(%rdi), %ymm1
10833 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10834 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 352(%rdi), %ymm0
10835 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10836 ; AVX2-FAST-PERLANE-NEXT:    vpalignr {{.*#+}} ymm1 = ymm1[12,13,14,15],ymm0[0,1,2,3,4,5,6,7,8,9,10,11],ymm1[28,29,30,31],ymm0[16,17,18,19,20,21,22,23,24,25,26,27]
10837 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,2,0]
10838 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5,6],ymm3[7]
10839 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 288(%rdi), %ymm1
10840 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10841 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
10842 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm4[0,1],ymm1[2,3],ymm4[4,5],ymm1[6,7]
10843 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[1,2,2,3,5,6,6,7]
10844 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,2,2,2]
10845 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm2 = ymm10[0],ymm11[1],ymm10[2,3,4],ymm11[5],ymm10[6,7]
10846 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10847 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm2 = ymm2[1,0,3,3,5,4,7,7]
10848 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,3,2,3]
10849 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7]
10850 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4],ymm0[5,6,7]
10851 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10852 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} xmm0 = mem[2,2,2,2]
10853 ; AVX2-FAST-PERLANE-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
10854 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 832(%rdi), %ymm2
10855 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10856 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 800(%rdi), %ymm1
10857 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10858 ; AVX2-FAST-PERLANE-NEXT:    vpalignr {{.*#+}} ymm1 = ymm2[12,13,14,15],ymm1[0,1,2,3,4,5,6,7,8,9,10,11],ymm2[28,29,30,31],ymm1[16,17,18,19,20,21,22,23,24,25,26,27]
10859 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,2,0]
10860 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5,6],ymm0[7]
10861 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 736(%rdi), %ymm10
10862 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload
10863 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm11[0,1],ymm10[2,3],ymm11[4,5],ymm10[6,7]
10864 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10865 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[1,2,2,3,5,6,6,7]
10866 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,2,2,2]
10867 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm2 = ymm8[0],ymm9[1],ymm8[2,3,4],ymm9[5],ymm8[6,7]
10868 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10869 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm2 = ymm2[1,0,3,3,5,4,7,7]
10870 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,3,2,3]
10871 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7]
10872 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4],ymm0[5,6,7]
10873 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10874 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} xmm0 = mem[2,2,2,2]
10875 ; AVX2-FAST-PERLANE-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
10876 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 1280(%rdi), %ymm2
10877 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10878 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 1248(%rdi), %ymm1
10879 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10880 ; AVX2-FAST-PERLANE-NEXT:    vpalignr {{.*#+}} ymm1 = ymm2[12,13,14,15],ymm1[0,1,2,3,4,5,6,7,8,9,10,11],ymm2[28,29,30,31],ymm1[16,17,18,19,20,21,22,23,24,25,26,27]
10881 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,2,0]
10882 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5,6],ymm0[7]
10883 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 1184(%rdi), %ymm1
10884 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10885 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
10886 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm9[0,1],ymm1[2,3],ymm9[4,5],ymm1[6,7]
10887 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[1,2,2,3,5,6,6,7]
10888 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,2,2,2]
10889 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm2 = ymm5[0],ymm6[1],ymm5[2,3,4],ymm6[5],ymm5[6,7]
10890 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10891 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm2 = ymm2[1,0,3,3,5,4,7,7]
10892 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,3,2,3]
10893 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7]
10894 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4],ymm0[5,6,7]
10895 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10896 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} xmm0 = mem[2,2,2,2]
10897 ; AVX2-FAST-PERLANE-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
10898 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 1728(%rdi), %ymm2
10899 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10900 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 1696(%rdi), %ymm1
10901 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10902 ; AVX2-FAST-PERLANE-NEXT:    vpalignr {{.*#+}} ymm1 = ymm2[12,13,14,15],ymm1[0,1,2,3,4,5,6,7,8,9,10,11],ymm2[28,29,30,31],ymm1[16,17,18,19,20,21,22,23,24,25,26,27]
10903 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,2,0]
10904 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5,6],ymm0[7]
10905 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 1632(%rdi), %ymm6
10906 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
10907 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm5[0,1],ymm6[2,3],ymm5[4,5],ymm6[6,7]
10908 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10909 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[1,2,2,3,5,6,6,7]
10910 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,2,2,2]
10911 ; AVX2-FAST-PERLANE-NEXT:    vpblendd $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm2 # 32-byte Folded Reload
10912 ; AVX2-FAST-PERLANE-NEXT:    # ymm2 = ymm14[0],mem[1],ymm14[2,3,4],mem[5],ymm14[6,7]
10913 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10914 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm2 = ymm2[1,0,3,3,5,4,7,7]
10915 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,3,2,3]
10916 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7]
10917 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4],ymm0[5,6,7]
10918 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10919 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} xmm0 = mem[2,2,2,2]
10920 ; AVX2-FAST-PERLANE-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
10921 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 608(%rdi), %ymm2
10922 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10923 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 576(%rdi), %ymm1
10924 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10925 ; AVX2-FAST-PERLANE-NEXT:    vpalignr {{.*#+}} ymm1 = ymm2[12,13,14,15],ymm1[0,1,2,3,4,5,6,7,8,9,10,11],ymm2[28,29,30,31],ymm1[16,17,18,19,20,21,22,23,24,25,26,27]
10926 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,2,0]
10927 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5,6],ymm0[7]
10928 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 512(%rdi), %ymm1
10929 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10930 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu (%rsp), %ymm14 # 32-byte Reload
10931 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm14[0,1],ymm1[2,3],ymm14[4,5],ymm1[6,7]
10932 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[1,2,2,3,5,6,6,7]
10933 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,2,2,2]
10934 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm2 = ymm12[0],ymm13[1],ymm12[2,3,4],ymm13[5],ymm12[6,7]
10935 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10936 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm2 = ymm2[1,0,3,3,5,4,7,7]
10937 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,3,2,3]
10938 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7]
10939 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4],ymm0[5,6,7]
10940 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10941 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} xmm0 = mem[2,2,2,2]
10942 ; AVX2-FAST-PERLANE-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
10943 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 1056(%rdi), %ymm2
10944 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10945 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 1024(%rdi), %ymm1
10946 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10947 ; AVX2-FAST-PERLANE-NEXT:    vpalignr {{.*#+}} ymm1 = ymm2[12,13,14,15],ymm1[0,1,2,3,4,5,6,7,8,9,10,11],ymm2[28,29,30,31],ymm1[16,17,18,19,20,21,22,23,24,25,26,27]
10948 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,2,0]
10949 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5,6],ymm0[7]
10950 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 960(%rdi), %ymm1
10951 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10952 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
10953 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm8[0,1],ymm1[2,3],ymm8[4,5],ymm1[6,7]
10954 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[1,2,2,3,5,6,6,7]
10955 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,2,2,2]
10956 ; AVX2-FAST-PERLANE-NEXT:    vpblendd $221, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm2 # 32-byte Folded Reload
10957 ; AVX2-FAST-PERLANE-NEXT:    # ymm2 = mem[0],ymm15[1],mem[2,3,4],ymm15[5],mem[6,7]
10958 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10959 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm2 = ymm2[1,0,3,3,5,4,7,7]
10960 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,3,2,3]
10961 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7]
10962 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4],ymm0[5,6,7]
10963 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10964 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} xmm0 = mem[2,2,2,2]
10965 ; AVX2-FAST-PERLANE-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
10966 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 1504(%rdi), %ymm2
10967 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10968 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 1472(%rdi), %ymm1
10969 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10970 ; AVX2-FAST-PERLANE-NEXT:    vpalignr {{.*#+}} ymm1 = ymm2[12,13,14,15],ymm1[0,1,2,3,4,5,6,7,8,9,10,11],ymm2[28,29,30,31],ymm1[16,17,18,19,20,21,22,23,24,25,26,27]
10971 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,2,0]
10972 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5,6],ymm0[7]
10973 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 1408(%rdi), %ymm1
10974 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10975 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm7[0,1],ymm1[2,3],ymm7[4,5],ymm1[6,7]
10976 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[1,2,2,3,5,6,6,7]
10977 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,2,2,2]
10978 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
10979 ; AVX2-FAST-PERLANE-NEXT:    vpblendd $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
10980 ; AVX2-FAST-PERLANE-NEXT:    # ymm2 = ymm2[0],mem[1],ymm2[2,3,4],mem[5],ymm2[6,7]
10981 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10982 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm2 = ymm2[1,0,3,3,5,4,7,7]
10983 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,3,2,3]
10984 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7]
10985 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4],ymm0[5,6,7]
10986 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10987 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} xmm0 = mem[2,2,2,2]
10988 ; AVX2-FAST-PERLANE-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
10989 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 160(%rdi), %ymm2
10990 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 128(%rdi), %ymm3
10991 ; AVX2-FAST-PERLANE-NEXT:    vpalignr {{.*#+}} ymm1 = ymm2[12,13,14,15],ymm3[0,1,2,3,4,5,6,7,8,9,10,11],ymm2[28,29,30,31],ymm3[16,17,18,19,20,21,22,23,24,25,26,27]
10992 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %ymm3, %ymm13
10993 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10994 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %ymm2, %ymm12
10995 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10996 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,1,2,0]
10997 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5,6],ymm0[7]
10998 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 64(%rdi), %ymm3
10999 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
11000 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm7[0,1],ymm3[2,3],ymm7[4,5],ymm3[6,7]
11001 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11002 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[1,2,2,3,5,6,6,7]
11003 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[2,2,2,2]
11004 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
11005 ; AVX2-FAST-PERLANE-NEXT:    vpblendd $221, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
11006 ; AVX2-FAST-PERLANE-NEXT:    # ymm2 = mem[0],ymm2[1],mem[2,3,4],ymm2[5],mem[6,7]
11007 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11008 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm2 = ymm2[1,0,3,3,5,4,7,7]
11009 ; AVX2-FAST-PERLANE-NEXT:    vpermq {{.*#+}} ymm2 = ymm2[0,3,2,3]
11010 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7]
11011 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4],ymm0[5,6,7]
11012 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11013 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 304(%rdi), %xmm0
11014 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11015 ; AVX2-FAST-PERLANE-NEXT:    vpalignr {{.*#+}} ymm1 = ymm4[8,9,10,11,12,13,14,15],ymm1[0,1,2,3,4,5,6,7],ymm4[24,25,26,27,28,29,30,31],ymm1[16,17,18,19,20,21,22,23]
11016 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6,7]
11017 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 232(%rdi), %xmm1
11018 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 256(%rdi), %xmm2
11019 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11020 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm1 = xmm1[0],xmm2[1],xmm1[2,3]
11021 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
11022 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
11023 ; AVX2-FAST-PERLANE-NEXT:    vpunpcklqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm1 # 32-byte Folded Reload
11024 ; AVX2-FAST-PERLANE-NEXT:    # ymm1 = ymm4[0],mem[0],ymm4[2],mem[2]
11025 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 428(%rdi), %ymm2
11026 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]
11027 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
11028 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11029 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 752(%rdi), %xmm0
11030 ; AVX2-FAST-PERLANE-NEXT:    vpalignr {{.*#+}} ymm1 = ymm11[8,9,10,11,12,13,14,15],ymm10[0,1,2,3,4,5,6,7],ymm11[24,25,26,27,28,29,30,31],ymm10[16,17,18,19,20,21,22,23]
11031 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6,7]
11032 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 680(%rdi), %xmm1
11033 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 704(%rdi), %xmm2
11034 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11035 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm1 = xmm1[0],xmm2[1],xmm1[2,3]
11036 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
11037 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload
11038 ; AVX2-FAST-PERLANE-NEXT:    vpunpcklqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm1 # 32-byte Folded Reload
11039 ; AVX2-FAST-PERLANE-NEXT:    # ymm1 = ymm11[0],mem[0],ymm11[2],mem[2]
11040 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 876(%rdi), %ymm2
11041 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]
11042 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
11043 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11044 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 1200(%rdi), %xmm0
11045 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11046 ; AVX2-FAST-PERLANE-NEXT:    vpalignr {{.*#+}} ymm1 = ymm9[8,9,10,11,12,13,14,15],ymm1[0,1,2,3,4,5,6,7],ymm9[24,25,26,27,28,29,30,31],ymm1[16,17,18,19,20,21,22,23]
11047 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6,7]
11048 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 1128(%rdi), %xmm1
11049 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 1152(%rdi), %xmm2
11050 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11051 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm1 = xmm1[0],xmm2[1],xmm1[2,3]
11052 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
11053 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11054 ; AVX2-FAST-PERLANE-NEXT:    vpunpcklqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
11055 ; AVX2-FAST-PERLANE-NEXT:    # ymm1 = ymm1[0],mem[0],ymm1[2],mem[2]
11056 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 1324(%rdi), %ymm2
11057 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]
11058 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
11059 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11060 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 1648(%rdi), %xmm0
11061 ; AVX2-FAST-PERLANE-NEXT:    vpalignr {{.*#+}} ymm1 = ymm5[8,9,10,11,12,13,14,15],ymm6[0,1,2,3,4,5,6,7],ymm5[24,25,26,27,28,29,30,31],ymm6[16,17,18,19,20,21,22,23]
11062 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6,7]
11063 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 1576(%rdi), %xmm1
11064 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 1600(%rdi), %xmm2
11065 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm1 = xmm1[0],xmm2[1],xmm1[2,3]
11066 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
11067 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11068 ; AVX2-FAST-PERLANE-NEXT:    vpunpcklqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
11069 ; AVX2-FAST-PERLANE-NEXT:    # ymm1 = ymm1[0],mem[0],ymm1[2],mem[2]
11070 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 1772(%rdi), %ymm6
11071 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm6[7]
11072 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
11073 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11074 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 80(%rdi), %xmm0
11075 ; AVX2-FAST-PERLANE-NEXT:    vpalignr {{.*#+}} ymm1 = ymm7[8,9,10,11,12,13,14,15],ymm3[0,1,2,3,4,5,6,7],ymm7[24,25,26,27,28,29,30,31],ymm3[16,17,18,19,20,21,22,23]
11076 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6,7]
11077 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 8(%rdi), %xmm1
11078 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 32(%rdi), %xmm3
11079 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11080 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm1 = xmm1[0],xmm3[1],xmm1[2,3]
11081 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
11082 ; AVX2-FAST-PERLANE-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm13[0],ymm12[0],ymm13[2],ymm12[2]
11083 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 204(%rdi), %ymm6
11084 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm6[7]
11085 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
11086 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11087 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 528(%rdi), %xmm0
11088 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11089 ; AVX2-FAST-PERLANE-NEXT:    vpalignr {{.*#+}} ymm1 = ymm14[8,9,10,11,12,13,14,15],ymm1[0,1,2,3,4,5,6,7],ymm14[24,25,26,27,28,29,30,31],ymm1[16,17,18,19,20,21,22,23]
11090 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6,7]
11091 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 456(%rdi), %xmm1
11092 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 480(%rdi), %xmm3
11093 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11094 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm1 = xmm1[0],xmm3[1],xmm1[2,3]
11095 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
11096 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11097 ; AVX2-FAST-PERLANE-NEXT:    vpunpcklqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
11098 ; AVX2-FAST-PERLANE-NEXT:    # ymm1 = ymm1[0],mem[0],ymm1[2],mem[2]
11099 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 652(%rdi), %ymm15
11100 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm15[7]
11101 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
11102 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11103 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 976(%rdi), %xmm0
11104 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11105 ; AVX2-FAST-PERLANE-NEXT:    vpalignr {{.*#+}} ymm1 = ymm8[8,9,10,11,12,13,14,15],ymm1[0,1,2,3,4,5,6,7],ymm8[24,25,26,27,28,29,30,31],ymm1[16,17,18,19,20,21,22,23]
11106 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6,7]
11107 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 904(%rdi), %xmm15
11108 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 928(%rdi), %xmm12
11109 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm15 = xmm15[0],xmm12[1],xmm15[2,3]
11110 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm15[0,1],ymm0[2,3,4,5,6,7]
11111 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
11112 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
11113 ; AVX2-FAST-PERLANE-NEXT:    vpunpcklqdq {{.*#+}} ymm15 = ymm8[0],ymm7[0],ymm8[2],ymm7[2]
11114 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 1100(%rdi), %ymm14
11115 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm14 = ymm15[0,1,2,3,4,5,6],ymm14[7]
11116 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm14[5,6,7]
11117 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11118 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 1424(%rdi), %xmm0
11119 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
11120 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
11121 ; AVX2-FAST-PERLANE-NEXT:    vpalignr {{.*#+}} ymm14 = ymm10[8,9,10,11,12,13,14,15],ymm9[0,1,2,3,4,5,6,7],ymm10[24,25,26,27,28,29,30,31],ymm9[16,17,18,19,20,21,22,23]
11122 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm14 = ymm14[0,1,2],ymm0[3],ymm14[4,5,6,7]
11123 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 1352(%rdi), %xmm15
11124 ; AVX2-FAST-PERLANE-NEXT:    vmovdqa 1376(%rdi), %xmm0
11125 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm15 = xmm15[0],xmm0[1],xmm15[2,3]
11126 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm14 = ymm15[0,1],ymm14[2,3,4,5,6,7]
11127 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11128 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
11129 ; AVX2-FAST-PERLANE-NEXT:    vpunpcklqdq {{.*#+}} ymm15 = ymm6[0],ymm1[0],ymm6[2],ymm1[2]
11130 ; AVX2-FAST-PERLANE-NEXT:    vpbroadcastd 1548(%rdi), %ymm13
11131 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm13 = ymm15[0,1,2,3,4,5,6],ymm13[7]
11132 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm13 = ymm14[0,1,2,3,4],ymm13[5,6,7]
11133 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11134 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
11135 ; AVX2-FAST-PERLANE-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm13 # 32-byte Folded Reload
11136 ; AVX2-FAST-PERLANE-NEXT:    # ymm13 = ymm3[0],mem[1],ymm3[2,3,4,5,6,7]
11137 ; AVX2-FAST-PERLANE-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
11138 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm5 = xmm3[0,1,2],mem[3]
11139 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm5 = xmm5[3,2,2,3]
11140 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm13 = ymm13[3,1,1,0,7,5,5,4]
11141 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1],ymm13[2,3,4,5,6,7]
11142 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload
11143 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm13 = ymm4[0,2],ymm15[1,3],ymm4[4,6],ymm15[5,7]
11144 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 432(%rdi), %ymm14
11145 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1,2,3,4,5,6],ymm14[7]
11146 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1,2,3,4],ymm13[5,6,7]
11147 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11148 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
11149 ; AVX2-FAST-PERLANE-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm5 # 32-byte Folded Reload
11150 ; AVX2-FAST-PERLANE-NEXT:    # ymm5 = ymm3[0],mem[1],ymm3[2,3,4,5,6,7]
11151 ; AVX2-FAST-PERLANE-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
11152 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm4 = xmm3[0,1,2],mem[3]
11153 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm4 = xmm4[3,2,2,3]
11154 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm5 = ymm5[3,1,1,0,7,5,5,4]
11155 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1],ymm5[2,3,4,5,6,7]
11156 ; AVX2-FAST-PERLANE-NEXT:    vshufps $216, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm5 # 32-byte Folded Reload
11157 ; AVX2-FAST-PERLANE-NEXT:    # ymm5 = ymm11[0,2],mem[1,3],ymm11[4,6],mem[5,7]
11158 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 880(%rdi), %ymm13
11159 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5,6],ymm13[7]
11160 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3,4],ymm5[5,6,7]
11161 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11162 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
11163 ; AVX2-FAST-PERLANE-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm4 # 32-byte Folded Reload
11164 ; AVX2-FAST-PERLANE-NEXT:    # ymm4 = ymm3[0],mem[1],ymm3[2,3,4,5,6,7]
11165 ; AVX2-FAST-PERLANE-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
11166 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1,2],mem[3]
11167 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm3 = xmm3[3,2,2,3]
11168 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[3,1,1,0,7,5,5,4]
11169 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1],ymm4[2,3,4,5,6,7]
11170 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
11171 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
11172 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm4 = ymm13[0,2],ymm14[1,3],ymm13[4,6],ymm14[5,7]
11173 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 1328(%rdi), %ymm5
11174 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5,6],ymm5[7]
11175 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4],ymm4[5,6,7]
11176 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11177 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
11178 ; AVX2-FAST-PERLANE-NEXT:    vpblendd $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
11179 ; AVX2-FAST-PERLANE-NEXT:    # ymm3 = ymm3[0],mem[1],ymm3[2,3,4,5,6,7]
11180 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0,1,2],mem[3]
11181 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} xmm2 = xmm2[3,2,2,3]
11182 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm3 = ymm3[3,1,1,0,7,5,5,4]
11183 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1],ymm3[2,3,4,5,6,7]
11184 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
11185 ; AVX2-FAST-PERLANE-NEXT:    vshufps $216, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
11186 ; AVX2-FAST-PERLANE-NEXT:    # ymm3 = ymm3[0,2],mem[1,3],ymm3[4,6],mem[5,7]
11187 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 1776(%rdi), %ymm4
11188 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,6],ymm4[7]
11189 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm3[5,6,7]
11190 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11191 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm2 = ymm10[0],ymm9[1],ymm10[2,3,4,5,6,7]
11192 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm0 = xmm0[0,1,2],mem[3]
11193 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} xmm0 = xmm0[3,2,2,3]
11194 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm2 = ymm2[3,1,1,0,7,5,5,4]
11195 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm2[2,3,4,5,6,7]
11196 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm2 = ymm6[0,2],ymm1[1,3],ymm6[4,6],ymm1[5,7]
11197 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 1552(%rdi), %ymm3
11198 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5,6],ymm3[7]
11199 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm2[5,6,7]
11200 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11201 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11202 ; AVX2-FAST-PERLANE-NEXT:    vpblendd $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
11203 ; AVX2-FAST-PERLANE-NEXT:    # ymm0 = ymm0[0],mem[1],ymm0[2,3,4,5,6,7]
11204 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} xmm1 = xmm12[0,1,2],mem[3]
11205 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} xmm1 = xmm1[3,2,2,3]
11206 ; AVX2-FAST-PERLANE-NEXT:    vpshufd {{.*#+}} ymm0 = ymm0[3,1,1,0,7,5,5,4]
11207 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
11208 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm8[0,2],ymm7[1,3],ymm8[4,6],ymm7[5,7]
11209 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm7, %ymm9
11210 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm8, %ymm11
11211 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 1104(%rdi), %ymm2
11212 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]
11213 ; AVX2-FAST-PERLANE-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
11214 ; AVX2-FAST-PERLANE-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11215 ; AVX2-FAST-PERLANE-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
11216 ; AVX2-FAST-PERLANE-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
11217 ; AVX2-FAST-PERLANE-NEXT:    # ymm0 = ymm0[0],mem[1],ymm0[2,3,4,5,6,7]
11218 ; AVX2-FAST-PERLANE-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
11219 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1,2],mem[3]
11220 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[3,2,2,3]
11221 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[3,1,1,0,7,5,5,4]
11222 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
11223 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11224 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
11225 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm6[0,2],ymm8[1,3],ymm6[4,6],ymm8[5,7]
11226 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 656(%rdi), %ymm2
11227 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]
11228 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
11229 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11230 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
11231 ; AVX2-FAST-PERLANE-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
11232 ; AVX2-FAST-PERLANE-NEXT:    # ymm0 = ymm0[0],mem[1],ymm0[2,3,4,5,6,7]
11233 ; AVX2-FAST-PERLANE-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
11234 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1,2],mem[3]
11235 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[3,2,2,3]
11236 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[3,1,1,0,7,5,5,4]
11237 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
11238 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
11239 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
11240 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm3[0,2],ymm4[1,3],ymm3[4,6],ymm4[5,7]
11241 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 208(%rdi), %ymm2
11242 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5,6],ymm2[7]
11243 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
11244 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11245 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 100(%rdi), %xmm0
11246 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 64(%rdi), %xmm1
11247 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0,1,2],xmm0[3]
11248 ; AVX2-FAST-PERLANE-NEXT:    vmovddup {{.*#+}} xmm7 = [4,3,4,3]
11249 ; AVX2-FAST-PERLANE-NEXT:    # xmm7 = mem[0,0]
11250 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
11251 ; AVX2-FAST-PERLANE-NEXT:    vblendps $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
11252 ; AVX2-FAST-PERLANE-NEXT:    # ymm2 = mem[0,1,2,3],ymm2[4,5,6,7]
11253 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm2, %ymm7, %ymm2
11254 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm0[2,3]
11255 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastsd {{.*#+}} ymm0 = [0,7,0,7,0,7,0,7]
11256 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm3, %ymm0, %ymm3
11257 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm4[6,7]
11258 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 212(%rdi), %ymm4
11259 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5,6],ymm4[7]
11260 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
11261 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11262 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
11263 ; AVX2-FAST-PERLANE-NEXT:    vblendps $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
11264 ; AVX2-FAST-PERLANE-NEXT:    # ymm2 = mem[0,1,2,3],ymm2[4,5,6,7]
11265 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm2, %ymm7, %ymm3
11266 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 324(%rdi), %xmm4
11267 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 288(%rdi), %xmm2
11268 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm4 = xmm2[0,1,2],xmm4[3]
11269 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm4[2,3]
11270 ; AVX2-FAST-PERLANE-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm4 # 32-byte Folded Reload
11271 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],ymm15[6,7]
11272 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 436(%rdi), %ymm5
11273 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5,6],ymm5[7]
11274 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm4[4,5,6,7]
11275 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm3, (%rsp) # 32-byte Spill
11276 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
11277 ; AVX2-FAST-PERLANE-NEXT:    vblendps $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
11278 ; AVX2-FAST-PERLANE-NEXT:    # ymm3 = mem[0,1,2,3],ymm3[4,5,6,7]
11279 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm3, %ymm7, %ymm4
11280 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 548(%rdi), %xmm5
11281 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 512(%rdi), %xmm3
11282 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm5 = xmm3[0,1,2],xmm5[3]
11283 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],xmm5[2,3]
11284 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm6, %ymm0, %ymm5
11285 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],ymm8[6,7]
11286 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 660(%rdi), %ymm6
11287 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5,6],ymm6[7]
11288 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm5[4,5,6,7]
11289 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11290 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
11291 ; AVX2-FAST-PERLANE-NEXT:    vblendps $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload
11292 ; AVX2-FAST-PERLANE-NEXT:    # ymm4 = mem[0,1,2,3],ymm4[4,5,6,7]
11293 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm4, %ymm7, %ymm5
11294 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 772(%rdi), %xmm6
11295 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 736(%rdi), %xmm4
11296 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm6 = xmm4[0,1,2],xmm6[3]
11297 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm5 = xmm5[0,1],xmm6[2,3]
11298 ; AVX2-FAST-PERLANE-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm6 # 32-byte Folded Reload
11299 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
11300 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5],ymm10[6,7]
11301 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 884(%rdi), %ymm8
11302 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5,6],ymm8[7]
11303 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm6[4,5,6,7]
11304 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11305 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
11306 ; AVX2-FAST-PERLANE-NEXT:    vblendps $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm5 # 32-byte Folded Reload
11307 ; AVX2-FAST-PERLANE-NEXT:    # ymm5 = mem[0,1,2,3],ymm5[4,5,6,7]
11308 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm5, %ymm7, %ymm6
11309 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 996(%rdi), %xmm8
11310 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 960(%rdi), %xmm5
11311 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm8 = xmm5[0,1,2],xmm8[3]
11312 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0,1],xmm8[2,3]
11313 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm11, %ymm0, %ymm8
11314 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],ymm9[6,7]
11315 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 1108(%rdi), %ymm9
11316 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5,6],ymm9[7]
11317 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm8[4,5,6,7]
11318 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11319 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11320 ; AVX2-FAST-PERLANE-NEXT:    vblendps $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm6 # 32-byte Folded Reload
11321 ; AVX2-FAST-PERLANE-NEXT:    # ymm6 = mem[0,1,2,3],ymm6[4,5,6,7]
11322 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm6, %ymm7, %ymm8
11323 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 1220(%rdi), %xmm9
11324 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 1184(%rdi), %xmm6
11325 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm9 = xmm6[0,1,2],xmm9[3]
11326 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm8 = xmm8[0,1],xmm9[2,3]
11327 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm13, %ymm0, %ymm9
11328 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5],ymm14[6,7]
11329 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 1332(%rdi), %ymm12
11330 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5,6],ymm12[7]
11331 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm9[4,5,6,7]
11332 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11333 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
11334 ; AVX2-FAST-PERLANE-NEXT:    vblendps $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
11335 ; AVX2-FAST-PERLANE-NEXT:    # ymm8 = mem[0,1,2,3],ymm8[4,5,6,7]
11336 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm8, %ymm7, %ymm8
11337 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 1444(%rdi), %xmm9
11338 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 1408(%rdi), %xmm13
11339 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm9 = xmm13[0,1,2],xmm9[3]
11340 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm8 = xmm8[0,1],xmm9[2,3]
11341 ; AVX2-FAST-PERLANE-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm9 # 32-byte Folded Reload
11342 ; AVX2-FAST-PERLANE-NEXT:    vblendps $192, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm9 # 32-byte Folded Reload
11343 ; AVX2-FAST-PERLANE-NEXT:    # ymm9 = ymm9[0,1,2,3,4,5],mem[6,7]
11344 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 1556(%rdi), %ymm12
11345 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5,6],ymm12[7]
11346 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm9[4,5,6,7]
11347 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11348 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
11349 ; AVX2-FAST-PERLANE-NEXT:    vblendps $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
11350 ; AVX2-FAST-PERLANE-NEXT:    # ymm8 = mem[0,1,2,3],ymm8[4,5,6,7]
11351 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm8, %ymm7, %ymm7
11352 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 1668(%rdi), %xmm8
11353 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 1632(%rdi), %xmm14
11354 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm8 = xmm14[0,1,2],xmm8[3]
11355 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0,1],xmm8[2,3]
11356 ; AVX2-FAST-PERLANE-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm8 # 32-byte Folded Reload
11357 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload
11358 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],ymm11[6,7]
11359 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 1780(%rdi), %ymm9
11360 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5,6],ymm9[7]
11361 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3],ymm8[4,5,6,7]
11362 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11363 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
11364 ; AVX2-FAST-PERLANE-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload
11365 ; AVX2-FAST-PERLANE-NEXT:    # ymm7 = ymm7[0],mem[1],ymm7[2,3,4],mem[5],ymm7[6,7]
11366 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm7 = ymm7[1,0,3,3,5,4,7,7]
11367 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm7 = ymm7[0,1,0,3]
11368 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 216(%rdi), %ymm8
11369 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5,6],ymm8[7]
11370 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 96(%rdi), %xmm12
11371 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm1 = xmm12[0,1,2],xmm1[3]
11372 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[0,1,3,2]
11373 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $225, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Folded Reload
11374 ; AVX2-FAST-PERLANE-NEXT:    # ymm8 = mem[1,0,2,3,5,4,6,7]
11375 ; AVX2-FAST-PERLANE-NEXT:    vextractf128 $1, %ymm8, %xmm8
11376 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm1 = xmm8[0,1],xmm1[2,3]
11377 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm7[4,5,6,7]
11378 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11379 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 320(%rdi), %xmm1
11380 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm2 = xmm1[0,1,2],xmm2[3]
11381 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[0,1,3,2]
11382 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $225, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Folded Reload
11383 ; AVX2-FAST-PERLANE-NEXT:    # ymm7 = mem[1,0,2,3,5,4,6,7]
11384 ; AVX2-FAST-PERLANE-NEXT:    vextractf128 $1, %ymm7, %xmm7
11385 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm2 = xmm7[0,1],xmm2[2,3]
11386 ; AVX2-FAST-PERLANE-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm7 # 32-byte Folded Reload
11387 ; AVX2-FAST-PERLANE-NEXT:    # ymm7 = ymm15[0],mem[1],ymm15[2,3,4],mem[5],ymm15[6,7]
11388 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm7 = ymm7[1,0,3,3,5,4,7,7]
11389 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm7 = ymm7[0,1,0,3]
11390 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 440(%rdi), %ymm8
11391 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5,6],ymm8[7]
11392 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm7[4,5,6,7]
11393 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11394 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 544(%rdi), %xmm2
11395 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm3 = xmm2[0,1,2],xmm3[3]
11396 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm3 = xmm3[0,1,3,2]
11397 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $225, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Folded Reload
11398 ; AVX2-FAST-PERLANE-NEXT:    # ymm7 = mem[1,0,2,3,5,4,6,7]
11399 ; AVX2-FAST-PERLANE-NEXT:    vextractf128 $1, %ymm7, %xmm7
11400 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm3 = xmm7[0,1],xmm3[2,3]
11401 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
11402 ; AVX2-FAST-PERLANE-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload
11403 ; AVX2-FAST-PERLANE-NEXT:    # ymm7 = ymm7[0],mem[1],ymm7[2,3,4],mem[5],ymm7[6,7]
11404 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm7 = ymm7[1,0,3,3,5,4,7,7]
11405 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm7 = ymm7[0,1,0,3]
11406 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 664(%rdi), %ymm8
11407 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5,6],ymm8[7]
11408 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm7[4,5,6,7]
11409 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11410 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 768(%rdi), %xmm3
11411 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm4 = xmm3[0,1,2],xmm4[3]
11412 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm4 = xmm4[0,1,3,2]
11413 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $225, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Folded Reload
11414 ; AVX2-FAST-PERLANE-NEXT:    # ymm7 = mem[1,0,2,3,5,4,6,7]
11415 ; AVX2-FAST-PERLANE-NEXT:    vextractf128 $1, %ymm7, %xmm7
11416 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm4 = xmm7[0,1],xmm4[2,3]
11417 ; AVX2-FAST-PERLANE-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm7 # 32-byte Folded Reload
11418 ; AVX2-FAST-PERLANE-NEXT:    # ymm7 = ymm10[0],mem[1],ymm10[2,3,4],mem[5],ymm10[6,7]
11419 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm7 = ymm7[1,0,3,3,5,4,7,7]
11420 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm7 = ymm7[0,1,0,3]
11421 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 888(%rdi), %ymm8
11422 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5,6],ymm8[7]
11423 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm7[4,5,6,7]
11424 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11425 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 992(%rdi), %xmm4
11426 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm5 = xmm4[0,1,2],xmm5[3]
11427 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm5 = xmm5[0,1,3,2]
11428 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $225, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Folded Reload
11429 ; AVX2-FAST-PERLANE-NEXT:    # ymm7 = mem[1,0,2,3,5,4,6,7]
11430 ; AVX2-FAST-PERLANE-NEXT:    vextractf128 $1, %ymm7, %xmm7
11431 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm5 = xmm7[0,1],xmm5[2,3]
11432 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
11433 ; AVX2-FAST-PERLANE-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload
11434 ; AVX2-FAST-PERLANE-NEXT:    # ymm7 = ymm7[0],mem[1],ymm7[2,3,4],mem[5],ymm7[6,7]
11435 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm7 = ymm7[1,0,3,3,5,4,7,7]
11436 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm7 = ymm7[0,1,0,3]
11437 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 1112(%rdi), %ymm10
11438 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5,6],ymm10[7]
11439 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm10 = ymm5[0,1,2,3],ymm7[4,5,6,7]
11440 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 1216(%rdi), %xmm15
11441 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm5 = xmm15[0,1,2],xmm6[3]
11442 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm5 = xmm5[0,1,3,2]
11443 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $225, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Folded Reload
11444 ; AVX2-FAST-PERLANE-NEXT:    # ymm6 = mem[1,0,2,3,5,4,6,7]
11445 ; AVX2-FAST-PERLANE-NEXT:    vextractf128 $1, %ymm6, %xmm6
11446 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm5 = xmm6[0,1],xmm5[2,3]
11447 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11448 ; AVX2-FAST-PERLANE-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm6 # 32-byte Folded Reload
11449 ; AVX2-FAST-PERLANE-NEXT:    # ymm6 = ymm6[0],mem[1],ymm6[2,3,4],mem[5],ymm6[6,7]
11450 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm6 = ymm6[1,0,3,3,5,4,7,7]
11451 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm6 = ymm6[0,1,0,3]
11452 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 1336(%rdi), %ymm7
11453 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5,6],ymm7[7]
11454 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm8 = ymm5[0,1,2,3],ymm6[4,5,6,7]
11455 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 1440(%rdi), %xmm5
11456 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm6 = xmm5[0,1,2],xmm13[3]
11457 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm6 = xmm6[0,1,3,2]
11458 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $225, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Folded Reload
11459 ; AVX2-FAST-PERLANE-NEXT:    # ymm7 = mem[1,0,2,3,5,4,6,7]
11460 ; AVX2-FAST-PERLANE-NEXT:    vextractf128 $1, %ymm7, %xmm7
11461 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm6 = xmm7[0,1],xmm6[2,3]
11462 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
11463 ; AVX2-FAST-PERLANE-NEXT:    vblendps $221, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload
11464 ; AVX2-FAST-PERLANE-NEXT:    # ymm7 = mem[0],ymm7[1],mem[2,3,4],ymm7[5],mem[6,7]
11465 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm7 = ymm7[1,0,3,3,5,4,7,7]
11466 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm7 = ymm7[0,1,0,3]
11467 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 1560(%rdi), %ymm13
11468 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5,6],ymm13[7]
11469 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm7 = ymm6[0,1,2,3],ymm7[4,5,6,7]
11470 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 1664(%rdi), %xmm6
11471 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm13 = xmm6[0,1,2],xmm14[3]
11472 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm13 = xmm13[0,1,3,2]
11473 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $225, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Folded Reload
11474 ; AVX2-FAST-PERLANE-NEXT:    # ymm14 = mem[1,0,2,3,5,4,6,7]
11475 ; AVX2-FAST-PERLANE-NEXT:    vextractf128 $1, %ymm14, %xmm14
11476 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm13 = xmm14[0,1],xmm13[2,3]
11477 ; AVX2-FAST-PERLANE-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm14 # 32-byte Folded Reload
11478 ; AVX2-FAST-PERLANE-NEXT:    # ymm14 = ymm11[0],mem[1],ymm11[2,3,4],mem[5],ymm11[6,7]
11479 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[1,0,3,3,5,4,7,7]
11480 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm14 = ymm14[0,1,0,3]
11481 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 1784(%rdi), %ymm9
11482 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm9 = ymm14[0,1,2,3,4,5,6],ymm9[7]
11483 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1,2,3],ymm9[4,5,6,7]
11484 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 136(%rdi), %xmm9
11485 ; AVX2-FAST-PERLANE-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9, %xmm9 # 16-byte Folded Reload
11486 ; AVX2-FAST-PERLANE-NEXT:    # xmm9 = xmm9[0],mem[1],xmm9[2,3]
11487 ; AVX2-FAST-PERLANE-NEXT:    vinsertf128 $1, %xmm9, %ymm0, %ymm9
11488 ; AVX2-FAST-PERLANE-NEXT:    vpermps 192(%rdi), %ymm0, %ymm14
11489 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5],ymm14[6,7]
11490 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 80(%rdi), %ymm14
11491 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm12 = xmm14[0,1,2],xmm12[3]
11492 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Folded Reload
11493 ; AVX2-FAST-PERLANE-NEXT:    # ymm14 = mem[2,3,2,3,6,7,6,7]
11494 ; AVX2-FAST-PERLANE-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
11495 ; AVX2-FAST-PERLANE-NEXT:    # ymm14 = ymm14[0],mem[1],ymm14[2,3,4],mem[5],ymm14[6,7]
11496 ; AVX2-FAST-PERLANE-NEXT:    vextractf128 $1, %ymm14, %xmm14
11497 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm12 = xmm14[0,1],xmm12[2,3]
11498 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3],ymm9[4,5,6,7]
11499 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 360(%rdi), %xmm9
11500 ; AVX2-FAST-PERLANE-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9, %xmm9 # 16-byte Folded Reload
11501 ; AVX2-FAST-PERLANE-NEXT:    # xmm9 = xmm9[0],mem[1],xmm9[2,3]
11502 ; AVX2-FAST-PERLANE-NEXT:    vinsertf128 $1, %xmm9, %ymm0, %ymm9
11503 ; AVX2-FAST-PERLANE-NEXT:    vpermps 416(%rdi), %ymm0, %ymm14
11504 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5],ymm14[6,7]
11505 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 304(%rdi), %ymm14
11506 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm1 = xmm14[0,1,2],xmm1[3]
11507 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Folded Reload
11508 ; AVX2-FAST-PERLANE-NEXT:    # ymm14 = mem[2,3,2,3,6,7,6,7]
11509 ; AVX2-FAST-PERLANE-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
11510 ; AVX2-FAST-PERLANE-NEXT:    # ymm14 = ymm14[0],mem[1],ymm14[2,3,4],mem[5],ymm14[6,7]
11511 ; AVX2-FAST-PERLANE-NEXT:    vextractf128 $1, %ymm14, %xmm14
11512 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm1 = xmm14[0,1],xmm1[2,3]
11513 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm14 = ymm1[0,1,2,3],ymm9[4,5,6,7]
11514 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 584(%rdi), %xmm1
11515 ; AVX2-FAST-PERLANE-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
11516 ; AVX2-FAST-PERLANE-NEXT:    # xmm1 = xmm1[0],mem[1],xmm1[2,3]
11517 ; AVX2-FAST-PERLANE-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
11518 ; AVX2-FAST-PERLANE-NEXT:    vpermps 640(%rdi), %ymm0, %ymm9
11519 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm9[6,7]
11520 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 528(%rdi), %ymm9
11521 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm2 = xmm9[0,1,2],xmm2[3]
11522 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Folded Reload
11523 ; AVX2-FAST-PERLANE-NEXT:    # ymm9 = mem[2,3,2,3,6,7,6,7]
11524 ; AVX2-FAST-PERLANE-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm9 # 32-byte Folded Reload
11525 ; AVX2-FAST-PERLANE-NEXT:    # ymm9 = ymm9[0],mem[1],ymm9[2,3,4],mem[5],ymm9[6,7]
11526 ; AVX2-FAST-PERLANE-NEXT:    vextractf128 $1, %ymm9, %xmm9
11527 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm2 = xmm9[0,1],xmm2[2,3]
11528 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
11529 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 808(%rdi), %xmm2
11530 ; AVX2-FAST-PERLANE-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
11531 ; AVX2-FAST-PERLANE-NEXT:    # xmm2 = xmm2[0],mem[1],xmm2[2,3]
11532 ; AVX2-FAST-PERLANE-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
11533 ; AVX2-FAST-PERLANE-NEXT:    vpermps 864(%rdi), %ymm0, %ymm9
11534 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm9[6,7]
11535 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 752(%rdi), %ymm9
11536 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm3 = xmm9[0,1,2],xmm3[3]
11537 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Folded Reload
11538 ; AVX2-FAST-PERLANE-NEXT:    # ymm9 = mem[2,3,2,3,6,7,6,7]
11539 ; AVX2-FAST-PERLANE-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm9 # 32-byte Folded Reload
11540 ; AVX2-FAST-PERLANE-NEXT:    # ymm9 = ymm9[0],mem[1],ymm9[2,3,4],mem[5],ymm9[6,7]
11541 ; AVX2-FAST-PERLANE-NEXT:    vextractf128 $1, %ymm9, %xmm9
11542 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm3 = xmm9[0,1],xmm3[2,3]
11543 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
11544 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 1032(%rdi), %xmm3
11545 ; AVX2-FAST-PERLANE-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm3 # 16-byte Folded Reload
11546 ; AVX2-FAST-PERLANE-NEXT:    # xmm3 = xmm3[0],mem[1],xmm3[2,3]
11547 ; AVX2-FAST-PERLANE-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
11548 ; AVX2-FAST-PERLANE-NEXT:    vpermps 1088(%rdi), %ymm0, %ymm9
11549 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm9[6,7]
11550 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 976(%rdi), %ymm9
11551 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm4 = xmm9[0,1,2],xmm4[3]
11552 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Folded Reload
11553 ; AVX2-FAST-PERLANE-NEXT:    # ymm9 = mem[2,3,2,3,6,7,6,7]
11554 ; AVX2-FAST-PERLANE-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm9 # 32-byte Folded Reload
11555 ; AVX2-FAST-PERLANE-NEXT:    # ymm9 = ymm9[0],mem[1],ymm9[2,3,4],mem[5],ymm9[6,7]
11556 ; AVX2-FAST-PERLANE-NEXT:    vextractf128 $1, %ymm9, %xmm9
11557 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm4 = xmm9[0,1],xmm4[2,3]
11558 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
11559 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 1256(%rdi), %xmm4
11560 ; AVX2-FAST-PERLANE-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload
11561 ; AVX2-FAST-PERLANE-NEXT:    # xmm4 = xmm4[0],mem[1],xmm4[2,3]
11562 ; AVX2-FAST-PERLANE-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
11563 ; AVX2-FAST-PERLANE-NEXT:    vpermps 1312(%rdi), %ymm0, %ymm9
11564 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],ymm9[6,7]
11565 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 1200(%rdi), %ymm9
11566 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm9 = xmm9[0,1,2],xmm15[3]
11567 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Folded Reload
11568 ; AVX2-FAST-PERLANE-NEXT:    # ymm15 = mem[2,3,2,3,6,7,6,7]
11569 ; AVX2-FAST-PERLANE-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm15 # 32-byte Folded Reload
11570 ; AVX2-FAST-PERLANE-NEXT:    # ymm15 = ymm15[0],mem[1],ymm15[2,3,4],mem[5],ymm15[6,7]
11571 ; AVX2-FAST-PERLANE-NEXT:    vextractf128 $1, %ymm15, %xmm15
11572 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm9 = xmm15[0,1],xmm9[2,3]
11573 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm4 = ymm9[0,1,2,3],ymm4[4,5,6,7]
11574 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 1480(%rdi), %xmm9
11575 ; AVX2-FAST-PERLANE-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9, %xmm9 # 16-byte Folded Reload
11576 ; AVX2-FAST-PERLANE-NEXT:    # xmm9 = xmm9[0],mem[1],xmm9[2,3]
11577 ; AVX2-FAST-PERLANE-NEXT:    vinsertf128 $1, %xmm9, %ymm0, %ymm9
11578 ; AVX2-FAST-PERLANE-NEXT:    vpermps 1536(%rdi), %ymm0, %ymm15
11579 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5],ymm15[6,7]
11580 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 1424(%rdi), %ymm15
11581 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm5 = xmm15[0,1,2],xmm5[3]
11582 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Folded Reload
11583 ; AVX2-FAST-PERLANE-NEXT:    # ymm15 = mem[2,3,2,3,6,7,6,7]
11584 ; AVX2-FAST-PERLANE-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm15 # 32-byte Folded Reload
11585 ; AVX2-FAST-PERLANE-NEXT:    # ymm15 = ymm15[0],mem[1],ymm15[2,3,4],mem[5],ymm15[6,7]
11586 ; AVX2-FAST-PERLANE-NEXT:    vextractf128 $1, %ymm15, %xmm15
11587 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm5 = xmm15[0,1],xmm5[2,3]
11588 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm9[4,5,6,7]
11589 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 1704(%rdi), %xmm9
11590 ; AVX2-FAST-PERLANE-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9, %xmm9 # 16-byte Folded Reload
11591 ; AVX2-FAST-PERLANE-NEXT:    # xmm9 = xmm9[0],mem[1],xmm9[2,3]
11592 ; AVX2-FAST-PERLANE-NEXT:    vpermps 1760(%rdi), %ymm0, %ymm0
11593 ; AVX2-FAST-PERLANE-NEXT:    vinsertf128 $1, %xmm9, %ymm0, %ymm9
11594 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm9[0,1,2,3,4,5],ymm0[6,7]
11595 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastss 1648(%rdi), %ymm9
11596 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm6 = xmm9[0,1,2],xmm6[3]
11597 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Folded Reload
11598 ; AVX2-FAST-PERLANE-NEXT:    # ymm9 = mem[2,3,2,3,6,7,6,7]
11599 ; AVX2-FAST-PERLANE-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm9 # 32-byte Folded Reload
11600 ; AVX2-FAST-PERLANE-NEXT:    # ymm9 = ymm9[0],mem[1],ymm9[2,3,4],mem[5],ymm9[6,7]
11601 ; AVX2-FAST-PERLANE-NEXT:    vextractf128 $1, %ymm9, %xmm9
11602 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm6 = xmm9[0,1],xmm6[2,3]
11603 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm6[0,1,2,3],ymm0[4,5,6,7]
11604 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11605 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 192(%rsi)
11606 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11607 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 128(%rsi)
11608 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11609 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 64(%rsi)
11610 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11611 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, (%rsi)
11612 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11613 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 224(%rsi)
11614 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11615 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 160(%rsi)
11616 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11617 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 96(%rsi)
11618 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11619 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 32(%rsi)
11620 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11621 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 192(%rdx)
11622 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11623 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 128(%rdx)
11624 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11625 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 64(%rdx)
11626 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11627 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, (%rdx)
11628 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11629 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 224(%rdx)
11630 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11631 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 160(%rdx)
11632 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11633 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 96(%rdx)
11634 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11635 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 32(%rdx)
11636 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11637 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 192(%rcx)
11638 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11639 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 128(%rcx)
11640 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11641 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 64(%rcx)
11642 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11643 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, (%rcx)
11644 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11645 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 224(%rcx)
11646 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11647 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 160(%rcx)
11648 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11649 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 96(%rcx)
11650 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11651 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 32(%rcx)
11652 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11653 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, (%r8)
11654 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11655 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 64(%r8)
11656 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11657 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 128(%r8)
11658 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11659 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 192(%r8)
11660 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11661 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 224(%r8)
11662 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11663 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 160(%r8)
11664 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11665 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 96(%r8)
11666 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11667 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 32(%r8)
11668 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11669 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 224(%r9)
11670 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11671 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 192(%r9)
11672 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11673 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 160(%r9)
11674 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11675 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 128(%r9)
11676 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11677 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 96(%r9)
11678 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11679 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 64(%r9)
11680 ; AVX2-FAST-PERLANE-NEXT:    vmovups (%rsp), %ymm6 # 32-byte Reload
11681 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 32(%r9)
11682 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11683 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, (%r9)
11684 ; AVX2-FAST-PERLANE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
11685 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm13, 224(%rax)
11686 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm7, 192(%rax)
11687 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm8, 160(%rax)
11688 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm10, 128(%rax)
11689 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11690 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 96(%rax)
11691 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11692 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 64(%rax)
11693 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11694 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 32(%rax)
11695 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11696 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, (%rax)
11697 ; AVX2-FAST-PERLANE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
11698 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 224(%rax)
11699 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm5, 192(%rax)
11700 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm4, 160(%rax)
11701 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm3, 128(%rax)
11702 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm2, 96(%rax)
11703 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 64(%rax)
11704 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm14, 32(%rax)
11705 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm12, (%rax)
11706 ; AVX2-FAST-PERLANE-NEXT:    addq $2680, %rsp # imm = 0xA78
11707 ; AVX2-FAST-PERLANE-NEXT:    vzeroupper
11708 ; AVX2-FAST-PERLANE-NEXT:    retq
11710 ; AVX512F-LABEL: load_i32_stride7_vf64:
11711 ; AVX512F:       # %bb.0:
11712 ; AVX512F-NEXT:    subq $3400, %rsp # imm = 0xD48
11713 ; AVX512F-NEXT:    vmovdqa64 1728(%rdi), %zmm2
11714 ; AVX512F-NEXT:    vmovdqa64 1664(%rdi), %zmm17
11715 ; AVX512F-NEXT:    vmovdqa64 1600(%rdi), %zmm11
11716 ; AVX512F-NEXT:    vmovdqa64 1280(%rdi), %zmm7
11717 ; AVX512F-NEXT:    vmovdqa64 1216(%rdi), %zmm5
11718 ; AVX512F-NEXT:    vmovdqa64 1152(%rdi), %zmm12
11719 ; AVX512F-NEXT:    vmovdqa64 832(%rdi), %zmm6
11720 ; AVX512F-NEXT:    vmovdqa64 768(%rdi), %zmm8
11721 ; AVX512F-NEXT:    vmovdqa64 704(%rdi), %zmm13
11722 ; AVX512F-NEXT:    vmovdqa64 384(%rdi), %zmm20
11723 ; AVX512F-NEXT:    vmovdqa64 320(%rdi), %zmm4
11724 ; AVX512F-NEXT:    vmovdqa64 256(%rdi), %zmm14
11725 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm1 = [20,27,6,13,20,27,6,13,20,27,6,13,20,27,6,13]
11726 ; AVX512F-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
11727 ; AVX512F-NEXT:    vmovdqa64 %zmm14, %zmm3
11728 ; AVX512F-NEXT:    vpermt2d %zmm4, %zmm1, %zmm3
11729 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [0,0,10,11,12,13,18,25,0,0,10,11,12,13,18,25]
11730 ; AVX512F-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
11731 ; AVX512F-NEXT:    vpermt2d %zmm20, %zmm0, %zmm3
11732 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11733 ; AVX512F-NEXT:    vmovdqa64 %zmm13, %zmm3
11734 ; AVX512F-NEXT:    vpermt2d %zmm8, %zmm1, %zmm3
11735 ; AVX512F-NEXT:    vpermt2d %zmm6, %zmm0, %zmm3
11736 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11737 ; AVX512F-NEXT:    vmovdqa64 %zmm12, %zmm3
11738 ; AVX512F-NEXT:    vpermt2d %zmm5, %zmm1, %zmm3
11739 ; AVX512F-NEXT:    vpermt2d %zmm7, %zmm0, %zmm3
11740 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11741 ; AVX512F-NEXT:    vpermi2d %zmm17, %zmm11, %zmm1
11742 ; AVX512F-NEXT:    vpermt2d %zmm2, %zmm0, %zmm1
11743 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11744 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [0,0,7,14,21,28,0,0,0,0,7,14,21,28,0,0]
11745 ; AVX512F-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
11746 ; AVX512F-NEXT:    vmovdqa64 %zmm12, %zmm3
11747 ; AVX512F-NEXT:    vpermt2d %zmm5, %zmm0, %zmm3
11748 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm1
11749 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [0,9,10,11,12,13,19,26,0,9,10,11,12,13,19,26]
11750 ; AVX512F-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
11751 ; AVX512F-NEXT:    vpermt2d %zmm7, %zmm0, %zmm3
11752 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11753 ; AVX512F-NEXT:    vmovdqa64 %zmm13, %zmm3
11754 ; AVX512F-NEXT:    vpermt2d %zmm8, %zmm1, %zmm3
11755 ; AVX512F-NEXT:    vpermt2d %zmm6, %zmm0, %zmm3
11756 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11757 ; AVX512F-NEXT:    vmovdqa64 %zmm14, %zmm3
11758 ; AVX512F-NEXT:    vpermt2d %zmm4, %zmm1, %zmm3
11759 ; AVX512F-NEXT:    vpermt2d %zmm20, %zmm0, %zmm3
11760 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11761 ; AVX512F-NEXT:    vpermi2d %zmm17, %zmm11, %zmm1
11762 ; AVX512F-NEXT:    vpermt2d %zmm2, %zmm0, %zmm1
11763 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11764 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [0,1,8,15,22,29,0,0,0,1,8,15,22,29,0,0]
11765 ; AVX512F-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
11766 ; AVX512F-NEXT:    vmovdqa64 %zmm12, %zmm3
11767 ; AVX512F-NEXT:    vpermt2d %zmm5, %zmm0, %zmm3
11768 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm1
11769 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [0,9,10,11,12,13,20,27,0,9,10,11,12,13,20,27]
11770 ; AVX512F-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
11771 ; AVX512F-NEXT:    vpermt2d %zmm7, %zmm0, %zmm3
11772 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11773 ; AVX512F-NEXT:    vmovdqa64 %zmm13, %zmm3
11774 ; AVX512F-NEXT:    vpermt2d %zmm8, %zmm1, %zmm3
11775 ; AVX512F-NEXT:    vpermt2d %zmm6, %zmm0, %zmm3
11776 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11777 ; AVX512F-NEXT:    vmovdqa64 %zmm14, %zmm3
11778 ; AVX512F-NEXT:    vpermt2d %zmm4, %zmm1, %zmm3
11779 ; AVX512F-NEXT:    vpermt2d %zmm20, %zmm0, %zmm3
11780 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11781 ; AVX512F-NEXT:    vpermi2d %zmm17, %zmm11, %zmm1
11782 ; AVX512F-NEXT:    vpermt2d %zmm2, %zmm0, %zmm1
11783 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11784 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [0,18,25,0,7,14,0,0,0,18,25,0,7,14,0,0]
11785 ; AVX512F-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
11786 ; AVX512F-NEXT:    vmovdqa64 %zmm5, %zmm3
11787 ; AVX512F-NEXT:    vpermt2d %zmm12, %zmm0, %zmm3
11788 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm1
11789 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [0,9,10,11,12,13,21,28,0,9,10,11,12,13,21,28]
11790 ; AVX512F-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
11791 ; AVX512F-NEXT:    vpermt2d %zmm7, %zmm0, %zmm3
11792 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11793 ; AVX512F-NEXT:    vmovdqa64 %zmm8, %zmm3
11794 ; AVX512F-NEXT:    vpermt2d %zmm13, %zmm1, %zmm3
11795 ; AVX512F-NEXT:    vpermt2d %zmm6, %zmm0, %zmm3
11796 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11797 ; AVX512F-NEXT:    vmovdqa64 %zmm4, %zmm3
11798 ; AVX512F-NEXT:    vpermt2d %zmm14, %zmm1, %zmm3
11799 ; AVX512F-NEXT:    vpermt2d %zmm20, %zmm0, %zmm3
11800 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11801 ; AVX512F-NEXT:    vpermi2d %zmm11, %zmm17, %zmm1
11802 ; AVX512F-NEXT:    vpermt2d %zmm2, %zmm0, %zmm1
11803 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11804 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [0,19,26,1,8,15,0,0,0,19,26,1,8,15,0,0]
11805 ; AVX512F-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
11806 ; AVX512F-NEXT:    vmovdqa64 %zmm5, %zmm3
11807 ; AVX512F-NEXT:    vpermt2d %zmm12, %zmm0, %zmm3
11808 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm1
11809 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [0,9,10,11,12,13,22,29,0,9,10,11,12,13,22,29]
11810 ; AVX512F-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
11811 ; AVX512F-NEXT:    vpermt2d %zmm7, %zmm0, %zmm3
11812 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11813 ; AVX512F-NEXT:    vmovdqa64 %zmm8, %zmm3
11814 ; AVX512F-NEXT:    vpermt2d %zmm13, %zmm1, %zmm3
11815 ; AVX512F-NEXT:    vpermt2d %zmm6, %zmm0, %zmm3
11816 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11817 ; AVX512F-NEXT:    vmovdqa64 %zmm4, %zmm3
11818 ; AVX512F-NEXT:    vpermt2d %zmm14, %zmm1, %zmm3
11819 ; AVX512F-NEXT:    vpermt2d %zmm20, %zmm0, %zmm3
11820 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11821 ; AVX512F-NEXT:    vpermi2d %zmm11, %zmm17, %zmm1
11822 ; AVX512F-NEXT:    vpermt2d %zmm2, %zmm0, %zmm1
11823 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11824 ; AVX512F-NEXT:    vmovdqa64 1024(%rdi), %zmm3
11825 ; AVX512F-NEXT:    vmovdqa64 1088(%rdi), %zmm15
11826 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm30 = [25,4,11,18,25,4,11,18,25,4,11,18,25,4,11,18]
11827 ; AVX512F-NEXT:    # zmm30 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
11828 ; AVX512F-NEXT:    vmovdqa64 %zmm3, %zmm0
11829 ; AVX512F-NEXT:    vpermt2d %zmm15, %zmm30, %zmm0
11830 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11831 ; AVX512F-NEXT:    vmovdqa64 576(%rdi), %zmm9
11832 ; AVX512F-NEXT:    vmovdqa64 640(%rdi), %zmm16
11833 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm0
11834 ; AVX512F-NEXT:    vpermt2d %zmm16, %zmm30, %zmm0
11835 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11836 ; AVX512F-NEXT:    vmovdqa64 128(%rdi), %zmm0
11837 ; AVX512F-NEXT:    vmovdqa64 192(%rdi), %zmm18
11838 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm1
11839 ; AVX512F-NEXT:    vpermt2d %zmm18, %zmm30, %zmm1
11840 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11841 ; AVX512F-NEXT:    vmovdqa64 1472(%rdi), %zmm1
11842 ; AVX512F-NEXT:    vmovdqa64 1536(%rdi), %zmm19
11843 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm10
11844 ; AVX512F-NEXT:    vpermt2d %zmm19, %zmm30, %zmm10
11845 ; AVX512F-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11846 ; AVX512F-NEXT:    vmovdqa64 %zmm12, %zmm21
11847 ; AVX512F-NEXT:    vpermt2d %zmm5, %zmm30, %zmm21
11848 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [0,9,10,11,12,16,23,30,0,9,10,11,12,16,23,30]
11849 ; AVX512F-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
11850 ; AVX512F-NEXT:    vpermt2d %zmm7, %zmm10, %zmm21
11851 ; AVX512F-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11852 ; AVX512F-NEXT:    vmovdqa64 %zmm13, %zmm21
11853 ; AVX512F-NEXT:    vpermt2d %zmm8, %zmm30, %zmm21
11854 ; AVX512F-NEXT:    vpermt2d %zmm6, %zmm10, %zmm21
11855 ; AVX512F-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11856 ; AVX512F-NEXT:    vmovdqa64 %zmm14, %zmm21
11857 ; AVX512F-NEXT:    vpermt2d %zmm4, %zmm30, %zmm21
11858 ; AVX512F-NEXT:    vpermt2d %zmm20, %zmm10, %zmm21
11859 ; AVX512F-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11860 ; AVX512F-NEXT:    vpermi2d %zmm17, %zmm11, %zmm30
11861 ; AVX512F-NEXT:    vpermt2d %zmm2, %zmm10, %zmm30
11862 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [26,5,12,19,26,5,12,19,26,5,12,19,26,5,12,19]
11863 ; AVX512F-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
11864 ; AVX512F-NEXT:    vpermt2d %zmm8, %zmm10, %zmm13
11865 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [0,9,10,11,12,17,24,31,0,9,10,11,12,17,24,31]
11866 ; AVX512F-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
11867 ; AVX512F-NEXT:    vpermt2d %zmm6, %zmm8, %zmm13
11868 ; AVX512F-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11869 ; AVX512F-NEXT:    vpermt2d %zmm4, %zmm10, %zmm14
11870 ; AVX512F-NEXT:    vpermt2d %zmm20, %zmm8, %zmm14
11871 ; AVX512F-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11872 ; AVX512F-NEXT:    vpermt2d %zmm17, %zmm10, %zmm11
11873 ; AVX512F-NEXT:    vpermt2d %zmm2, %zmm8, %zmm11
11874 ; AVX512F-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11875 ; AVX512F-NEXT:    vpermt2d %zmm5, %zmm10, %zmm12
11876 ; AVX512F-NEXT:    vpermt2d %zmm7, %zmm8, %zmm12
11877 ; AVX512F-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11878 ; AVX512F-NEXT:    vmovdqa64 %zmm3, %zmm2
11879 ; AVX512F-NEXT:    vpermt2d %zmm15, %zmm10, %zmm2
11880 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11881 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm2
11882 ; AVX512F-NEXT:    vpermt2d %zmm16, %zmm10, %zmm2
11883 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11884 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm2
11885 ; AVX512F-NEXT:    vpermt2d %zmm18, %zmm10, %zmm2
11886 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11887 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm2
11888 ; AVX512F-NEXT:    vpermt2d %zmm19, %zmm10, %zmm2
11889 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11890 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm25 = [8,15,0,0,0,19,26,1,8,15,0,0,0,19,26,1]
11891 ; AVX512F-NEXT:    # zmm25 = mem[0,1,2,3,0,1,2,3]
11892 ; AVX512F-NEXT:    vmovdqa64 %zmm16, %zmm2
11893 ; AVX512F-NEXT:    vpermt2d %zmm9, %zmm25, %zmm2
11894 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11895 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm27 = [27,6,13,20,27,6,13,20,27,6,13,20,27,6,13,20]
11896 ; AVX512F-NEXT:    # zmm27 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
11897 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm2
11898 ; AVX512F-NEXT:    vpermt2d %zmm16, %zmm27, %zmm2
11899 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11900 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm28 = [28,0,0,0,0,7,14,21,28,0,0,0,0,7,14,21]
11901 ; AVX512F-NEXT:    # zmm28 = mem[0,1,2,3,0,1,2,3]
11902 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm2
11903 ; AVX512F-NEXT:    vpermt2d %zmm16, %zmm28, %zmm2
11904 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11905 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm31 = [29,0,0,0,1,8,15,22,29,0,0,0,1,8,15,22]
11906 ; AVX512F-NEXT:    # zmm31 = mem[0,1,2,3,0,1,2,3]
11907 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm2
11908 ; AVX512F-NEXT:    vpermt2d %zmm16, %zmm31, %zmm2
11909 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11910 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [14,0,0,0,18,25,0,7,14,0,0,0,18,25,0,7]
11911 ; AVX512F-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
11912 ; AVX512F-NEXT:    vpermt2d %zmm9, %zmm2, %zmm16
11913 ; AVX512F-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11914 ; AVX512F-NEXT:    vmovdqa64 %zmm18, %zmm4
11915 ; AVX512F-NEXT:    vpermt2d %zmm0, %zmm25, %zmm4
11916 ; AVX512F-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11917 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm4
11918 ; AVX512F-NEXT:    vpermt2d %zmm18, %zmm27, %zmm4
11919 ; AVX512F-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11920 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm4
11921 ; AVX512F-NEXT:    vpermt2d %zmm18, %zmm28, %zmm4
11922 ; AVX512F-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11923 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm4
11924 ; AVX512F-NEXT:    vpermt2d %zmm18, %zmm31, %zmm4
11925 ; AVX512F-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11926 ; AVX512F-NEXT:    vpermt2d %zmm0, %zmm2, %zmm18
11927 ; AVX512F-NEXT:    vmovdqu64 %zmm18, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11928 ; AVX512F-NEXT:    vmovdqa64 %zmm15, %zmm0
11929 ; AVX512F-NEXT:    vpermt2d %zmm3, %zmm25, %zmm0
11930 ; AVX512F-NEXT:    vmovdqu64 %zmm0, (%rsp) # 64-byte Spill
11931 ; AVX512F-NEXT:    vpermi2d %zmm1, %zmm19, %zmm25
11932 ; AVX512F-NEXT:    vmovdqa64 %zmm3, %zmm0
11933 ; AVX512F-NEXT:    vpermt2d %zmm15, %zmm27, %zmm0
11934 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11935 ; AVX512F-NEXT:    vpermi2d %zmm19, %zmm1, %zmm27
11936 ; AVX512F-NEXT:    vmovdqa64 %zmm3, %zmm0
11937 ; AVX512F-NEXT:    vpermt2d %zmm15, %zmm28, %zmm0
11938 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11939 ; AVX512F-NEXT:    vpermi2d %zmm19, %zmm1, %zmm28
11940 ; AVX512F-NEXT:    vmovdqa64 %zmm3, %zmm0
11941 ; AVX512F-NEXT:    vpermt2d %zmm15, %zmm31, %zmm0
11942 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11943 ; AVX512F-NEXT:    vpermi2d %zmm19, %zmm1, %zmm31
11944 ; AVX512F-NEXT:    vpermt2d %zmm1, %zmm2, %zmm19
11945 ; AVX512F-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11946 ; AVX512F-NEXT:    vpermt2d %zmm3, %zmm2, %zmm15
11947 ; AVX512F-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11948 ; AVX512F-NEXT:    vmovdqa64 512(%rdi), %zmm0
11949 ; AVX512F-NEXT:    vmovdqa64 448(%rdi), %zmm17
11950 ; AVX512F-NEXT:    vmovdqa {{.*#+}} ymm2 = [0,7,14,21,28,u,u,u]
11951 ; AVX512F-NEXT:    vmovdqa64 %zmm17, %zmm22
11952 ; AVX512F-NEXT:    vpermt2d %zmm0, %zmm2, %zmm22
11953 ; AVX512F-NEXT:    vmovdqa {{.*#+}} ymm3 = [1,8,15,22,29,u,u,u]
11954 ; AVX512F-NEXT:    vmovdqa64 %zmm17, %zmm23
11955 ; AVX512F-NEXT:    vpermt2d %zmm0, %zmm3, %zmm23
11956 ; AVX512F-NEXT:    vmovdqa {{.*#+}} ymm4 = [18,25,0,7,14,u,u,u]
11957 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm24
11958 ; AVX512F-NEXT:    vpermt2d %zmm17, %zmm4, %zmm24
11959 ; AVX512F-NEXT:    vmovdqa {{.*#+}} ymm7 = [19,26,1,8,15,u,u,u]
11960 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm29
11961 ; AVX512F-NEXT:    vpermt2d %zmm17, %zmm7, %zmm29
11962 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} xmm18 = [4,11,18,25]
11963 ; AVX512F-NEXT:    vmovdqa64 %zmm17, %zmm1
11964 ; AVX512F-NEXT:    vpermt2d %zmm0, %zmm18, %zmm1
11965 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11966 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} xmm19 = [5,12,19,26]
11967 ; AVX512F-NEXT:    vmovdqa64 %zmm17, %zmm1
11968 ; AVX512F-NEXT:    vpermt2d %zmm0, %zmm19, %zmm1
11969 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11970 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} xmm20 = [6,13,20,27]
11971 ; AVX512F-NEXT:    vpermt2d %zmm0, %zmm20, %zmm17
11972 ; AVX512F-NEXT:    vmovdqa64 (%rdi), %zmm5
11973 ; AVX512F-NEXT:    vmovdqa64 64(%rdi), %zmm0
11974 ; AVX512F-NEXT:    vmovdqa64 %zmm5, %zmm13
11975 ; AVX512F-NEXT:    vpermt2d %zmm0, %zmm2, %zmm13
11976 ; AVX512F-NEXT:    vmovdqa64 %zmm5, %zmm14
11977 ; AVX512F-NEXT:    vpermt2d %zmm0, %zmm3, %zmm14
11978 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm15
11979 ; AVX512F-NEXT:    vpermt2d %zmm5, %zmm4, %zmm15
11980 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm16
11981 ; AVX512F-NEXT:    vpermt2d %zmm5, %zmm7, %zmm16
11982 ; AVX512F-NEXT:    vmovdqa64 %zmm5, %zmm1
11983 ; AVX512F-NEXT:    vpermt2d %zmm0, %zmm18, %zmm1
11984 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11985 ; AVX512F-NEXT:    vmovdqa64 %zmm5, %zmm1
11986 ; AVX512F-NEXT:    vpermt2d %zmm0, %zmm19, %zmm1
11987 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11988 ; AVX512F-NEXT:    vpermt2d %zmm0, %zmm20, %zmm5
11989 ; AVX512F-NEXT:    vmovdqa64 960(%rdi), %zmm9
11990 ; AVX512F-NEXT:    vmovdqa64 896(%rdi), %zmm6
11991 ; AVX512F-NEXT:    vmovdqa64 %zmm6, %zmm8
11992 ; AVX512F-NEXT:    vpermt2d %zmm9, %zmm2, %zmm8
11993 ; AVX512F-NEXT:    vmovdqa64 1408(%rdi), %zmm0
11994 ; AVX512F-NEXT:    vmovdqa64 1344(%rdi), %zmm1
11995 ; AVX512F-NEXT:    vpermi2d %zmm0, %zmm1, %zmm2
11996 ; AVX512F-NEXT:    vmovdqa64 %zmm6, %zmm10
11997 ; AVX512F-NEXT:    vpermt2d %zmm9, %zmm3, %zmm10
11998 ; AVX512F-NEXT:    vpermi2d %zmm0, %zmm1, %zmm3
11999 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm11
12000 ; AVX512F-NEXT:    vpermt2d %zmm6, %zmm4, %zmm11
12001 ; AVX512F-NEXT:    vpermi2d %zmm1, %zmm0, %zmm4
12002 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm12
12003 ; AVX512F-NEXT:    vpermt2d %zmm6, %zmm7, %zmm12
12004 ; AVX512F-NEXT:    vpermi2d %zmm1, %zmm0, %zmm7
12005 ; AVX512F-NEXT:    vmovdqa64 %zmm6, %zmm21
12006 ; AVX512F-NEXT:    vpermt2d %zmm9, %zmm18, %zmm21
12007 ; AVX512F-NEXT:    vpermi2d %zmm0, %zmm1, %zmm18
12008 ; AVX512F-NEXT:    vmovdqa64 %zmm6, %zmm26
12009 ; AVX512F-NEXT:    vpermt2d %zmm9, %zmm19, %zmm26
12010 ; AVX512F-NEXT:    vpermi2d %zmm0, %zmm1, %zmm19
12011 ; AVX512F-NEXT:    vpermt2d %zmm0, %zmm20, %zmm1
12012 ; AVX512F-NEXT:    vpermt2d %zmm9, %zmm20, %zmm6
12013 ; AVX512F-NEXT:    movw $992, %ax # imm = 0x3E0
12014 ; AVX512F-NEXT:    kmovw %eax, %k1
12015 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12016 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm13 {%k1}
12017 ; AVX512F-NEXT:    movb $-32, %al
12018 ; AVX512F-NEXT:    kmovw %eax, %k2
12019 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12020 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm13 {%k2}
12021 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12022 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm22 {%k1}
12023 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12024 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm22 {%k2}
12025 ; AVX512F-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
12026 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm8 {%k1}
12027 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12028 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k2}
12029 ; AVX512F-NEXT:    vmovdqa32 %zmm25, %zmm2 {%k1}
12030 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12031 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k2}
12032 ; AVX512F-NEXT:    movw $480, %ax # imm = 0x1E0
12033 ; AVX512F-NEXT:    kmovw %eax, %k2
12034 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12035 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm10 {%k2}
12036 ; AVX512F-NEXT:    movw $-512, %ax # imm = 0xFE00
12037 ; AVX512F-NEXT:    kmovw %eax, %k1
12038 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12039 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm10 {%k1}
12040 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12041 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm23 {%k2}
12042 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12043 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm23 {%k1}
12044 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12045 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm14 {%k2}
12046 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12047 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm14 {%k1}
12048 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12049 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm3 {%k2}
12050 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12051 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm3 {%k1}
12052 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12053 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm11 {%k2}
12054 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12055 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm11 {%k1}
12056 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12057 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm24 {%k2}
12058 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12059 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm24 {%k1}
12060 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12061 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm15 {%k2}
12062 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12063 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm15 {%k1}
12064 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12065 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm4 {%k2}
12066 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12067 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm4 {%k1}
12068 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12069 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm12 {%k2}
12070 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12071 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm12 {%k1}
12072 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12073 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm29 {%k2}
12074 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12075 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm29 {%k1}
12076 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12077 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm16 {%k2}
12078 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12079 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm16 {%k1}
12080 ; AVX512F-NEXT:    vmovdqa32 %zmm27, %zmm7 {%k2}
12081 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12082 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm7 {%k1}
12083 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12084 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm21, %zmm0, %zmm0
12085 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
12086 ; AVX512F-NEXT:    vmovdqa32 %zmm9, %zmm0 {%k1}
12087 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
12088 ; AVX512F-NEXT:    vinserti32x4 $0, {{[-0-9]+}}(%r{{[sb]}}p), %zmm9, %zmm9 # 16-byte Folded Reload
12089 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
12090 ; AVX512F-NEXT:    vmovdqa32 %zmm20, %zmm9 {%k1}
12091 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
12092 ; AVX512F-NEXT:    vinserti32x4 $0, {{[-0-9]+}}(%r{{[sb]}}p), %zmm20, %zmm20 # 16-byte Folded Reload
12093 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm25 # 64-byte Reload
12094 ; AVX512F-NEXT:    vmovdqa32 %zmm25, %zmm20 {%k1}
12095 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm18, %zmm28, %zmm18
12096 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm25 # 64-byte Reload
12097 ; AVX512F-NEXT:    vmovdqa32 %zmm25, %zmm18 {%k1}
12098 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm25 # 64-byte Reload
12099 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm26, %zmm25, %zmm25
12100 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm26 # 64-byte Reload
12101 ; AVX512F-NEXT:    vmovdqa32 %zmm26, %zmm25 {%k1}
12102 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm26 # 64-byte Reload
12103 ; AVX512F-NEXT:    vinserti32x4 $0, {{[-0-9]+}}(%r{{[sb]}}p), %zmm26, %zmm26 # 16-byte Folded Reload
12104 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm27 # 64-byte Reload
12105 ; AVX512F-NEXT:    vmovdqa32 %zmm27, %zmm26 {%k1}
12106 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm27 # 64-byte Reload
12107 ; AVX512F-NEXT:    vinserti32x4 $0, {{[-0-9]+}}(%r{{[sb]}}p), %zmm27, %zmm27 # 16-byte Folded Reload
12108 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
12109 ; AVX512F-NEXT:    vmovdqa32 %zmm28, %zmm27 {%k1}
12110 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm19, %zmm31, %zmm19
12111 ; AVX512F-NEXT:    vmovdqa32 %zmm30, %zmm19 {%k1}
12112 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
12113 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm17, %zmm28, %zmm17
12114 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
12115 ; AVX512F-NEXT:    vmovdqa32 %zmm28, %zmm17 {%k1}
12116 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
12117 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm5, %zmm28, %zmm5
12118 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
12119 ; AVX512F-NEXT:    vmovdqa32 %zmm28, %zmm5 {%k1}
12120 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
12121 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm1, %zmm28, %zmm1
12122 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
12123 ; AVX512F-NEXT:    vmovdqa32 %zmm28, %zmm1 {%k1}
12124 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
12125 ; AVX512F-NEXT:    vinserti32x4 $0, %xmm6, %zmm28, %zmm6
12126 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
12127 ; AVX512F-NEXT:    vmovdqa32 %zmm28, %zmm6 {%k1}
12128 ; AVX512F-NEXT:    vmovdqa64 %zmm2, 192(%rsi)
12129 ; AVX512F-NEXT:    vmovdqa64 %zmm8, 128(%rsi)
12130 ; AVX512F-NEXT:    vmovdqa64 %zmm22, 64(%rsi)
12131 ; AVX512F-NEXT:    vmovdqa64 %zmm13, (%rsi)
12132 ; AVX512F-NEXT:    vmovdqa64 %zmm3, 192(%rdx)
12133 ; AVX512F-NEXT:    vmovdqa64 %zmm14, (%rdx)
12134 ; AVX512F-NEXT:    vmovdqa64 %zmm23, 64(%rdx)
12135 ; AVX512F-NEXT:    vmovdqa64 %zmm10, 128(%rdx)
12136 ; AVX512F-NEXT:    vmovdqa64 %zmm4, 192(%rcx)
12137 ; AVX512F-NEXT:    vmovdqa64 %zmm15, (%rcx)
12138 ; AVX512F-NEXT:    vmovdqa64 %zmm24, 64(%rcx)
12139 ; AVX512F-NEXT:    vmovdqa64 %zmm11, 128(%rcx)
12140 ; AVX512F-NEXT:    vmovdqa64 %zmm7, 192(%r8)
12141 ; AVX512F-NEXT:    vmovdqa64 %zmm16, (%r8)
12142 ; AVX512F-NEXT:    vmovdqa64 %zmm29, 64(%r8)
12143 ; AVX512F-NEXT:    vmovdqa64 %zmm12, 128(%r8)
12144 ; AVX512F-NEXT:    vmovdqa64 %zmm18, 192(%r9)
12145 ; AVX512F-NEXT:    vmovdqa64 %zmm20, (%r9)
12146 ; AVX512F-NEXT:    vmovdqa64 %zmm9, 64(%r9)
12147 ; AVX512F-NEXT:    vmovdqa64 %zmm0, 128(%r9)
12148 ; AVX512F-NEXT:    movq {{[0-9]+}}(%rsp), %rax
12149 ; AVX512F-NEXT:    vmovdqa64 %zmm19, 192(%rax)
12150 ; AVX512F-NEXT:    vmovdqa64 %zmm27, (%rax)
12151 ; AVX512F-NEXT:    vmovdqa64 %zmm26, 64(%rax)
12152 ; AVX512F-NEXT:    vmovdqa64 %zmm25, 128(%rax)
12153 ; AVX512F-NEXT:    movq {{[0-9]+}}(%rsp), %rax
12154 ; AVX512F-NEXT:    vmovdqa64 %zmm6, 128(%rax)
12155 ; AVX512F-NEXT:    vmovdqa64 %zmm1, 192(%rax)
12156 ; AVX512F-NEXT:    vmovdqa64 %zmm5, (%rax)
12157 ; AVX512F-NEXT:    vmovdqa64 %zmm17, 64(%rax)
12158 ; AVX512F-NEXT:    addq $3400, %rsp # imm = 0xD48
12159 ; AVX512F-NEXT:    vzeroupper
12160 ; AVX512F-NEXT:    retq
12162 ; AVX512BW-LABEL: load_i32_stride7_vf64:
12163 ; AVX512BW:       # %bb.0:
12164 ; AVX512BW-NEXT:    subq $3400, %rsp # imm = 0xD48
12165 ; AVX512BW-NEXT:    vmovdqa64 1728(%rdi), %zmm2
12166 ; AVX512BW-NEXT:    vmovdqa64 1664(%rdi), %zmm17
12167 ; AVX512BW-NEXT:    vmovdqa64 1600(%rdi), %zmm11
12168 ; AVX512BW-NEXT:    vmovdqa64 1280(%rdi), %zmm7
12169 ; AVX512BW-NEXT:    vmovdqa64 1216(%rdi), %zmm5
12170 ; AVX512BW-NEXT:    vmovdqa64 1152(%rdi), %zmm12
12171 ; AVX512BW-NEXT:    vmovdqa64 832(%rdi), %zmm6
12172 ; AVX512BW-NEXT:    vmovdqa64 768(%rdi), %zmm8
12173 ; AVX512BW-NEXT:    vmovdqa64 704(%rdi), %zmm13
12174 ; AVX512BW-NEXT:    vmovdqa64 384(%rdi), %zmm20
12175 ; AVX512BW-NEXT:    vmovdqa64 320(%rdi), %zmm4
12176 ; AVX512BW-NEXT:    vmovdqa64 256(%rdi), %zmm14
12177 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm1 = [20,27,6,13,20,27,6,13,20,27,6,13,20,27,6,13]
12178 ; AVX512BW-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
12179 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, %zmm3
12180 ; AVX512BW-NEXT:    vpermt2d %zmm4, %zmm1, %zmm3
12181 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [0,0,10,11,12,13,18,25,0,0,10,11,12,13,18,25]
12182 ; AVX512BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
12183 ; AVX512BW-NEXT:    vpermt2d %zmm20, %zmm0, %zmm3
12184 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12185 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm3
12186 ; AVX512BW-NEXT:    vpermt2d %zmm8, %zmm1, %zmm3
12187 ; AVX512BW-NEXT:    vpermt2d %zmm6, %zmm0, %zmm3
12188 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12189 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm3
12190 ; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm1, %zmm3
12191 ; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm0, %zmm3
12192 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12193 ; AVX512BW-NEXT:    vpermi2d %zmm17, %zmm11, %zmm1
12194 ; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm0, %zmm1
12195 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12196 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [0,0,7,14,21,28,0,0,0,0,7,14,21,28,0,0]
12197 ; AVX512BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
12198 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm3
12199 ; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm0, %zmm3
12200 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1
12201 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [0,9,10,11,12,13,19,26,0,9,10,11,12,13,19,26]
12202 ; AVX512BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
12203 ; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm0, %zmm3
12204 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12205 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm3
12206 ; AVX512BW-NEXT:    vpermt2d %zmm8, %zmm1, %zmm3
12207 ; AVX512BW-NEXT:    vpermt2d %zmm6, %zmm0, %zmm3
12208 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12209 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, %zmm3
12210 ; AVX512BW-NEXT:    vpermt2d %zmm4, %zmm1, %zmm3
12211 ; AVX512BW-NEXT:    vpermt2d %zmm20, %zmm0, %zmm3
12212 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12213 ; AVX512BW-NEXT:    vpermi2d %zmm17, %zmm11, %zmm1
12214 ; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm0, %zmm1
12215 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12216 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [0,1,8,15,22,29,0,0,0,1,8,15,22,29,0,0]
12217 ; AVX512BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
12218 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm3
12219 ; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm0, %zmm3
12220 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1
12221 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [0,9,10,11,12,13,20,27,0,9,10,11,12,13,20,27]
12222 ; AVX512BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
12223 ; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm0, %zmm3
12224 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12225 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm3
12226 ; AVX512BW-NEXT:    vpermt2d %zmm8, %zmm1, %zmm3
12227 ; AVX512BW-NEXT:    vpermt2d %zmm6, %zmm0, %zmm3
12228 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12229 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, %zmm3
12230 ; AVX512BW-NEXT:    vpermt2d %zmm4, %zmm1, %zmm3
12231 ; AVX512BW-NEXT:    vpermt2d %zmm20, %zmm0, %zmm3
12232 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12233 ; AVX512BW-NEXT:    vpermi2d %zmm17, %zmm11, %zmm1
12234 ; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm0, %zmm1
12235 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12236 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [0,18,25,0,7,14,0,0,0,18,25,0,7,14,0,0]
12237 ; AVX512BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
12238 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm3
12239 ; AVX512BW-NEXT:    vpermt2d %zmm12, %zmm0, %zmm3
12240 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1
12241 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [0,9,10,11,12,13,21,28,0,9,10,11,12,13,21,28]
12242 ; AVX512BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
12243 ; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm0, %zmm3
12244 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12245 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm3
12246 ; AVX512BW-NEXT:    vpermt2d %zmm13, %zmm1, %zmm3
12247 ; AVX512BW-NEXT:    vpermt2d %zmm6, %zmm0, %zmm3
12248 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12249 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm3
12250 ; AVX512BW-NEXT:    vpermt2d %zmm14, %zmm1, %zmm3
12251 ; AVX512BW-NEXT:    vpermt2d %zmm20, %zmm0, %zmm3
12252 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12253 ; AVX512BW-NEXT:    vpermi2d %zmm11, %zmm17, %zmm1
12254 ; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm0, %zmm1
12255 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12256 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [0,19,26,1,8,15,0,0,0,19,26,1,8,15,0,0]
12257 ; AVX512BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
12258 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm3
12259 ; AVX512BW-NEXT:    vpermt2d %zmm12, %zmm0, %zmm3
12260 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1
12261 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [0,9,10,11,12,13,22,29,0,9,10,11,12,13,22,29]
12262 ; AVX512BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
12263 ; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm0, %zmm3
12264 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12265 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm3
12266 ; AVX512BW-NEXT:    vpermt2d %zmm13, %zmm1, %zmm3
12267 ; AVX512BW-NEXT:    vpermt2d %zmm6, %zmm0, %zmm3
12268 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12269 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm3
12270 ; AVX512BW-NEXT:    vpermt2d %zmm14, %zmm1, %zmm3
12271 ; AVX512BW-NEXT:    vpermt2d %zmm20, %zmm0, %zmm3
12272 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12273 ; AVX512BW-NEXT:    vpermi2d %zmm11, %zmm17, %zmm1
12274 ; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm0, %zmm1
12275 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12276 ; AVX512BW-NEXT:    vmovdqa64 1024(%rdi), %zmm3
12277 ; AVX512BW-NEXT:    vmovdqa64 1088(%rdi), %zmm15
12278 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm30 = [25,4,11,18,25,4,11,18,25,4,11,18,25,4,11,18]
12279 ; AVX512BW-NEXT:    # zmm30 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
12280 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm0
12281 ; AVX512BW-NEXT:    vpermt2d %zmm15, %zmm30, %zmm0
12282 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12283 ; AVX512BW-NEXT:    vmovdqa64 576(%rdi), %zmm9
12284 ; AVX512BW-NEXT:    vmovdqa64 640(%rdi), %zmm16
12285 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm0
12286 ; AVX512BW-NEXT:    vpermt2d %zmm16, %zmm30, %zmm0
12287 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12288 ; AVX512BW-NEXT:    vmovdqa64 128(%rdi), %zmm0
12289 ; AVX512BW-NEXT:    vmovdqa64 192(%rdi), %zmm18
12290 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1
12291 ; AVX512BW-NEXT:    vpermt2d %zmm18, %zmm30, %zmm1
12292 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12293 ; AVX512BW-NEXT:    vmovdqa64 1472(%rdi), %zmm1
12294 ; AVX512BW-NEXT:    vmovdqa64 1536(%rdi), %zmm19
12295 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm10
12296 ; AVX512BW-NEXT:    vpermt2d %zmm19, %zmm30, %zmm10
12297 ; AVX512BW-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12298 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm21
12299 ; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm30, %zmm21
12300 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [0,9,10,11,12,16,23,30,0,9,10,11,12,16,23,30]
12301 ; AVX512BW-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
12302 ; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm10, %zmm21
12303 ; AVX512BW-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12304 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm21
12305 ; AVX512BW-NEXT:    vpermt2d %zmm8, %zmm30, %zmm21
12306 ; AVX512BW-NEXT:    vpermt2d %zmm6, %zmm10, %zmm21
12307 ; AVX512BW-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12308 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, %zmm21
12309 ; AVX512BW-NEXT:    vpermt2d %zmm4, %zmm30, %zmm21
12310 ; AVX512BW-NEXT:    vpermt2d %zmm20, %zmm10, %zmm21
12311 ; AVX512BW-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12312 ; AVX512BW-NEXT:    vpermi2d %zmm17, %zmm11, %zmm30
12313 ; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm10, %zmm30
12314 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [26,5,12,19,26,5,12,19,26,5,12,19,26,5,12,19]
12315 ; AVX512BW-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
12316 ; AVX512BW-NEXT:    vpermt2d %zmm8, %zmm10, %zmm13
12317 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [0,9,10,11,12,17,24,31,0,9,10,11,12,17,24,31]
12318 ; AVX512BW-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
12319 ; AVX512BW-NEXT:    vpermt2d %zmm6, %zmm8, %zmm13
12320 ; AVX512BW-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12321 ; AVX512BW-NEXT:    vpermt2d %zmm4, %zmm10, %zmm14
12322 ; AVX512BW-NEXT:    vpermt2d %zmm20, %zmm8, %zmm14
12323 ; AVX512BW-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12324 ; AVX512BW-NEXT:    vpermt2d %zmm17, %zmm10, %zmm11
12325 ; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm8, %zmm11
12326 ; AVX512BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12327 ; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm10, %zmm12
12328 ; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm8, %zmm12
12329 ; AVX512BW-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12330 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm2
12331 ; AVX512BW-NEXT:    vpermt2d %zmm15, %zmm10, %zmm2
12332 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12333 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm2
12334 ; AVX512BW-NEXT:    vpermt2d %zmm16, %zmm10, %zmm2
12335 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12336 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm2
12337 ; AVX512BW-NEXT:    vpermt2d %zmm18, %zmm10, %zmm2
12338 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12339 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm2
12340 ; AVX512BW-NEXT:    vpermt2d %zmm19, %zmm10, %zmm2
12341 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12342 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm25 = [8,15,0,0,0,19,26,1,8,15,0,0,0,19,26,1]
12343 ; AVX512BW-NEXT:    # zmm25 = mem[0,1,2,3,0,1,2,3]
12344 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, %zmm2
12345 ; AVX512BW-NEXT:    vpermt2d %zmm9, %zmm25, %zmm2
12346 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12347 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm27 = [27,6,13,20,27,6,13,20,27,6,13,20,27,6,13,20]
12348 ; AVX512BW-NEXT:    # zmm27 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
12349 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm2
12350 ; AVX512BW-NEXT:    vpermt2d %zmm16, %zmm27, %zmm2
12351 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12352 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm28 = [28,0,0,0,0,7,14,21,28,0,0,0,0,7,14,21]
12353 ; AVX512BW-NEXT:    # zmm28 = mem[0,1,2,3,0,1,2,3]
12354 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm2
12355 ; AVX512BW-NEXT:    vpermt2d %zmm16, %zmm28, %zmm2
12356 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12357 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm31 = [29,0,0,0,1,8,15,22,29,0,0,0,1,8,15,22]
12358 ; AVX512BW-NEXT:    # zmm31 = mem[0,1,2,3,0,1,2,3]
12359 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm2
12360 ; AVX512BW-NEXT:    vpermt2d %zmm16, %zmm31, %zmm2
12361 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12362 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [14,0,0,0,18,25,0,7,14,0,0,0,18,25,0,7]
12363 ; AVX512BW-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
12364 ; AVX512BW-NEXT:    vpermt2d %zmm9, %zmm2, %zmm16
12365 ; AVX512BW-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12366 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, %zmm4
12367 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm25, %zmm4
12368 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12369 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm4
12370 ; AVX512BW-NEXT:    vpermt2d %zmm18, %zmm27, %zmm4
12371 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12372 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm4
12373 ; AVX512BW-NEXT:    vpermt2d %zmm18, %zmm28, %zmm4
12374 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12375 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm4
12376 ; AVX512BW-NEXT:    vpermt2d %zmm18, %zmm31, %zmm4
12377 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12378 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm2, %zmm18
12379 ; AVX512BW-NEXT:    vmovdqu64 %zmm18, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12380 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm0
12381 ; AVX512BW-NEXT:    vpermt2d %zmm3, %zmm25, %zmm0
12382 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, (%rsp) # 64-byte Spill
12383 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm19, %zmm25
12384 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm0
12385 ; AVX512BW-NEXT:    vpermt2d %zmm15, %zmm27, %zmm0
12386 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12387 ; AVX512BW-NEXT:    vpermi2d %zmm19, %zmm1, %zmm27
12388 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm0
12389 ; AVX512BW-NEXT:    vpermt2d %zmm15, %zmm28, %zmm0
12390 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12391 ; AVX512BW-NEXT:    vpermi2d %zmm19, %zmm1, %zmm28
12392 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm0
12393 ; AVX512BW-NEXT:    vpermt2d %zmm15, %zmm31, %zmm0
12394 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12395 ; AVX512BW-NEXT:    vpermi2d %zmm19, %zmm1, %zmm31
12396 ; AVX512BW-NEXT:    vpermt2d %zmm1, %zmm2, %zmm19
12397 ; AVX512BW-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12398 ; AVX512BW-NEXT:    vpermt2d %zmm3, %zmm2, %zmm15
12399 ; AVX512BW-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12400 ; AVX512BW-NEXT:    vmovdqa64 512(%rdi), %zmm0
12401 ; AVX512BW-NEXT:    vmovdqa64 448(%rdi), %zmm17
12402 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} ymm2 = [0,7,14,21,28,u,u,u]
12403 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm22
12404 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm2, %zmm22
12405 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} ymm3 = [1,8,15,22,29,u,u,u]
12406 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm23
12407 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm3, %zmm23
12408 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} ymm4 = [18,25,0,7,14,u,u,u]
12409 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm24
12410 ; AVX512BW-NEXT:    vpermt2d %zmm17, %zmm4, %zmm24
12411 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} ymm7 = [19,26,1,8,15,u,u,u]
12412 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm29
12413 ; AVX512BW-NEXT:    vpermt2d %zmm17, %zmm7, %zmm29
12414 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} xmm18 = [4,11,18,25]
12415 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm1
12416 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm18, %zmm1
12417 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12418 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} xmm19 = [5,12,19,26]
12419 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm1
12420 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm19, %zmm1
12421 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12422 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} xmm20 = [6,13,20,27]
12423 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm20, %zmm17
12424 ; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm5
12425 ; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %zmm0
12426 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm13
12427 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm2, %zmm13
12428 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm14
12429 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm3, %zmm14
12430 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm15
12431 ; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm4, %zmm15
12432 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm16
12433 ; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm7, %zmm16
12434 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm1
12435 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm18, %zmm1
12436 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12437 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm1
12438 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm19, %zmm1
12439 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12440 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm20, %zmm5
12441 ; AVX512BW-NEXT:    vmovdqa64 960(%rdi), %zmm9
12442 ; AVX512BW-NEXT:    vmovdqa64 896(%rdi), %zmm6
12443 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm8
12444 ; AVX512BW-NEXT:    vpermt2d %zmm9, %zmm2, %zmm8
12445 ; AVX512BW-NEXT:    vmovdqa64 1408(%rdi), %zmm0
12446 ; AVX512BW-NEXT:    vmovdqa64 1344(%rdi), %zmm1
12447 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm1, %zmm2
12448 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm10
12449 ; AVX512BW-NEXT:    vpermt2d %zmm9, %zmm3, %zmm10
12450 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm1, %zmm3
12451 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm11
12452 ; AVX512BW-NEXT:    vpermt2d %zmm6, %zmm4, %zmm11
12453 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm4
12454 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm12
12455 ; AVX512BW-NEXT:    vpermt2d %zmm6, %zmm7, %zmm12
12456 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm7
12457 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm21
12458 ; AVX512BW-NEXT:    vpermt2d %zmm9, %zmm18, %zmm21
12459 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm1, %zmm18
12460 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm26
12461 ; AVX512BW-NEXT:    vpermt2d %zmm9, %zmm19, %zmm26
12462 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm1, %zmm19
12463 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm20, %zmm1
12464 ; AVX512BW-NEXT:    vpermt2d %zmm9, %zmm20, %zmm6
12465 ; AVX512BW-NEXT:    movw $992, %ax # imm = 0x3E0
12466 ; AVX512BW-NEXT:    kmovd %eax, %k1
12467 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12468 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm13 {%k1}
12469 ; AVX512BW-NEXT:    movb $-32, %al
12470 ; AVX512BW-NEXT:    kmovd %eax, %k2
12471 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12472 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm13 {%k2}
12473 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12474 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm22 {%k1}
12475 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12476 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm22 {%k2}
12477 ; AVX512BW-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
12478 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm8 {%k1}
12479 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12480 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k2}
12481 ; AVX512BW-NEXT:    vmovdqa32 %zmm25, %zmm2 {%k1}
12482 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12483 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k2}
12484 ; AVX512BW-NEXT:    movw $480, %ax # imm = 0x1E0
12485 ; AVX512BW-NEXT:    kmovd %eax, %k2
12486 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12487 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm10 {%k2}
12488 ; AVX512BW-NEXT:    movw $-512, %ax # imm = 0xFE00
12489 ; AVX512BW-NEXT:    kmovd %eax, %k1
12490 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12491 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm10 {%k1}
12492 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12493 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm23 {%k2}
12494 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12495 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm23 {%k1}
12496 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12497 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm14 {%k2}
12498 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12499 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm14 {%k1}
12500 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12501 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm3 {%k2}
12502 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12503 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm3 {%k1}
12504 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12505 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm11 {%k2}
12506 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12507 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm11 {%k1}
12508 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12509 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm24 {%k2}
12510 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12511 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm24 {%k1}
12512 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12513 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm15 {%k2}
12514 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12515 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm15 {%k1}
12516 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12517 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm4 {%k2}
12518 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12519 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm4 {%k1}
12520 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12521 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm12 {%k2}
12522 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12523 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm12 {%k1}
12524 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12525 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm29 {%k2}
12526 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12527 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm29 {%k1}
12528 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12529 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm16 {%k2}
12530 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12531 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm16 {%k1}
12532 ; AVX512BW-NEXT:    vmovdqa32 %zmm27, %zmm7 {%k2}
12533 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12534 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm7 {%k1}
12535 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12536 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm21, %zmm0, %zmm0
12537 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
12538 ; AVX512BW-NEXT:    vmovdqa32 %zmm9, %zmm0 {%k1}
12539 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
12540 ; AVX512BW-NEXT:    vinserti32x4 $0, {{[-0-9]+}}(%r{{[sb]}}p), %zmm9, %zmm9 # 16-byte Folded Reload
12541 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
12542 ; AVX512BW-NEXT:    vmovdqa32 %zmm20, %zmm9 {%k1}
12543 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
12544 ; AVX512BW-NEXT:    vinserti32x4 $0, {{[-0-9]+}}(%r{{[sb]}}p), %zmm20, %zmm20 # 16-byte Folded Reload
12545 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm25 # 64-byte Reload
12546 ; AVX512BW-NEXT:    vmovdqa32 %zmm25, %zmm20 {%k1}
12547 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm18, %zmm28, %zmm18
12548 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm25 # 64-byte Reload
12549 ; AVX512BW-NEXT:    vmovdqa32 %zmm25, %zmm18 {%k1}
12550 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm25 # 64-byte Reload
12551 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm26, %zmm25, %zmm25
12552 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm26 # 64-byte Reload
12553 ; AVX512BW-NEXT:    vmovdqa32 %zmm26, %zmm25 {%k1}
12554 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm26 # 64-byte Reload
12555 ; AVX512BW-NEXT:    vinserti32x4 $0, {{[-0-9]+}}(%r{{[sb]}}p), %zmm26, %zmm26 # 16-byte Folded Reload
12556 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm27 # 64-byte Reload
12557 ; AVX512BW-NEXT:    vmovdqa32 %zmm27, %zmm26 {%k1}
12558 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm27 # 64-byte Reload
12559 ; AVX512BW-NEXT:    vinserti32x4 $0, {{[-0-9]+}}(%r{{[sb]}}p), %zmm27, %zmm27 # 16-byte Folded Reload
12560 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
12561 ; AVX512BW-NEXT:    vmovdqa32 %zmm28, %zmm27 {%k1}
12562 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm19, %zmm31, %zmm19
12563 ; AVX512BW-NEXT:    vmovdqa32 %zmm30, %zmm19 {%k1}
12564 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
12565 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm17, %zmm28, %zmm17
12566 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
12567 ; AVX512BW-NEXT:    vmovdqa32 %zmm28, %zmm17 {%k1}
12568 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
12569 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm5, %zmm28, %zmm5
12570 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
12571 ; AVX512BW-NEXT:    vmovdqa32 %zmm28, %zmm5 {%k1}
12572 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
12573 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm1, %zmm28, %zmm1
12574 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
12575 ; AVX512BW-NEXT:    vmovdqa32 %zmm28, %zmm1 {%k1}
12576 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
12577 ; AVX512BW-NEXT:    vinserti32x4 $0, %xmm6, %zmm28, %zmm6
12578 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
12579 ; AVX512BW-NEXT:    vmovdqa32 %zmm28, %zmm6 {%k1}
12580 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, 192(%rsi)
12581 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, 128(%rsi)
12582 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, 64(%rsi)
12583 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, (%rsi)
12584 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, 192(%rdx)
12585 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, (%rdx)
12586 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, 64(%rdx)
12587 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, 128(%rdx)
12588 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, 192(%rcx)
12589 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, (%rcx)
12590 ; AVX512BW-NEXT:    vmovdqa64 %zmm24, 64(%rcx)
12591 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, 128(%rcx)
12592 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, 192(%r8)
12593 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, (%r8)
12594 ; AVX512BW-NEXT:    vmovdqa64 %zmm29, 64(%r8)
12595 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, 128(%r8)
12596 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, 192(%r9)
12597 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, (%r9)
12598 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, 64(%r9)
12599 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, 128(%r9)
12600 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
12601 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, 192(%rax)
12602 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, (%rax)
12603 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, 64(%rax)
12604 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, 128(%rax)
12605 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
12606 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, 128(%rax)
12607 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, 192(%rax)
12608 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, (%rax)
12609 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, 64(%rax)
12610 ; AVX512BW-NEXT:    addq $3400, %rsp # imm = 0xD48
12611 ; AVX512BW-NEXT:    vzeroupper
12612 ; AVX512BW-NEXT:    retq
12613   %wide.vec = load <448 x i32>, ptr %in.vec, align 64
12614   %strided.vec0 = shufflevector <448 x i32> %wide.vec, <448 x i32> poison, <64 x i32> <i32 0, i32 7, i32 14, i32 21, i32 28, i32 35, i32 42, i32 49, i32 56, i32 63, i32 70, i32 77, i32 84, i32 91, i32 98, i32 105, i32 112, i32 119, i32 126, i32 133, i32 140, i32 147, i32 154, i32 161, i32 168, i32 175, i32 182, i32 189, i32 196, i32 203, i32 210, i32 217, i32 224, i32 231, i32 238, i32 245, i32 252, i32 259, i32 266, i32 273, i32 280, i32 287, i32 294, i32 301, i32 308, i32 315, i32 322, i32 329, i32 336, i32 343, i32 350, i32 357, i32 364, i32 371, i32 378, i32 385, i32 392, i32 399, i32 406, i32 413, i32 420, i32 427, i32 434, i32 441>
12615   %strided.vec1 = shufflevector <448 x i32> %wide.vec, <448 x i32> poison, <64 x i32> <i32 1, i32 8, i32 15, i32 22, i32 29, i32 36, i32 43, i32 50, i32 57, i32 64, i32 71, i32 78, i32 85, i32 92, i32 99, i32 106, i32 113, i32 120, i32 127, i32 134, i32 141, i32 148, i32 155, i32 162, i32 169, i32 176, i32 183, i32 190, i32 197, i32 204, i32 211, i32 218, i32 225, i32 232, i32 239, i32 246, i32 253, i32 260, i32 267, i32 274, i32 281, i32 288, i32 295, i32 302, i32 309, i32 316, i32 323, i32 330, i32 337, i32 344, i32 351, i32 358, i32 365, i32 372, i32 379, i32 386, i32 393, i32 400, i32 407, i32 414, i32 421, i32 428, i32 435, i32 442>
12616   %strided.vec2 = shufflevector <448 x i32> %wide.vec, <448 x i32> poison, <64 x i32> <i32 2, i32 9, i32 16, i32 23, i32 30, i32 37, i32 44, i32 51, i32 58, i32 65, i32 72, i32 79, i32 86, i32 93, i32 100, i32 107, i32 114, i32 121, i32 128, i32 135, i32 142, i32 149, i32 156, i32 163, i32 170, i32 177, i32 184, i32 191, i32 198, i32 205, i32 212, i32 219, i32 226, i32 233, i32 240, i32 247, i32 254, i32 261, i32 268, i32 275, i32 282, i32 289, i32 296, i32 303, i32 310, i32 317, i32 324, i32 331, i32 338, i32 345, i32 352, i32 359, i32 366, i32 373, i32 380, i32 387, i32 394, i32 401, i32 408, i32 415, i32 422, i32 429, i32 436, i32 443>
12617   %strided.vec3 = shufflevector <448 x i32> %wide.vec, <448 x i32> poison, <64 x i32> <i32 3, i32 10, i32 17, i32 24, i32 31, i32 38, i32 45, i32 52, i32 59, i32 66, i32 73, i32 80, i32 87, i32 94, i32 101, i32 108, i32 115, i32 122, i32 129, i32 136, i32 143, i32 150, i32 157, i32 164, i32 171, i32 178, i32 185, i32 192, i32 199, i32 206, i32 213, i32 220, i32 227, i32 234, i32 241, i32 248, i32 255, i32 262, i32 269, i32 276, i32 283, i32 290, i32 297, i32 304, i32 311, i32 318, i32 325, i32 332, i32 339, i32 346, i32 353, i32 360, i32 367, i32 374, i32 381, i32 388, i32 395, i32 402, i32 409, i32 416, i32 423, i32 430, i32 437, i32 444>
12618   %strided.vec4 = shufflevector <448 x i32> %wide.vec, <448 x i32> poison, <64 x i32> <i32 4, i32 11, i32 18, i32 25, i32 32, i32 39, i32 46, i32 53, i32 60, i32 67, i32 74, i32 81, i32 88, i32 95, i32 102, i32 109, i32 116, i32 123, i32 130, i32 137, i32 144, i32 151, i32 158, i32 165, i32 172, i32 179, i32 186, i32 193, i32 200, i32 207, i32 214, i32 221, i32 228, i32 235, i32 242, i32 249, i32 256, i32 263, i32 270, i32 277, i32 284, i32 291, i32 298, i32 305, i32 312, i32 319, i32 326, i32 333, i32 340, i32 347, i32 354, i32 361, i32 368, i32 375, i32 382, i32 389, i32 396, i32 403, i32 410, i32 417, i32 424, i32 431, i32 438, i32 445>
12619   %strided.vec5 = shufflevector <448 x i32> %wide.vec, <448 x i32> poison, <64 x i32> <i32 5, i32 12, i32 19, i32 26, i32 33, i32 40, i32 47, i32 54, i32 61, i32 68, i32 75, i32 82, i32 89, i32 96, i32 103, i32 110, i32 117, i32 124, i32 131, i32 138, i32 145, i32 152, i32 159, i32 166, i32 173, i32 180, i32 187, i32 194, i32 201, i32 208, i32 215, i32 222, i32 229, i32 236, i32 243, i32 250, i32 257, i32 264, i32 271, i32 278, i32 285, i32 292, i32 299, i32 306, i32 313, i32 320, i32 327, i32 334, i32 341, i32 348, i32 355, i32 362, i32 369, i32 376, i32 383, i32 390, i32 397, i32 404, i32 411, i32 418, i32 425, i32 432, i32 439, i32 446>
12620   %strided.vec6 = shufflevector <448 x i32> %wide.vec, <448 x i32> poison, <64 x i32> <i32 6, i32 13, i32 20, i32 27, i32 34, i32 41, i32 48, i32 55, i32 62, i32 69, i32 76, i32 83, i32 90, i32 97, i32 104, i32 111, i32 118, i32 125, i32 132, i32 139, i32 146, i32 153, i32 160, i32 167, i32 174, i32 181, i32 188, i32 195, i32 202, i32 209, i32 216, i32 223, i32 230, i32 237, i32 244, i32 251, i32 258, i32 265, i32 272, i32 279, i32 286, i32 293, i32 300, i32 307, i32 314, i32 321, i32 328, i32 335, i32 342, i32 349, i32 356, i32 363, i32 370, i32 377, i32 384, i32 391, i32 398, i32 405, i32 412, i32 419, i32 426, i32 433, i32 440, i32 447>
12621   store <64 x i32> %strided.vec0, ptr %out.vec0, align 64
12622   store <64 x i32> %strided.vec1, ptr %out.vec1, align 64
12623   store <64 x i32> %strided.vec2, ptr %out.vec2, align 64
12624   store <64 x i32> %strided.vec3, ptr %out.vec3, align 64
12625   store <64 x i32> %strided.vec4, ptr %out.vec4, align 64
12626   store <64 x i32> %strided.vec5, ptr %out.vec5, align 64
12627   store <64 x i32> %strided.vec6, ptr %out.vec6, align 64
12628   ret void
12630 ;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
12631 ; AVX: {{.*}}
12632 ; AVX1: {{.*}}
12633 ; AVX2: {{.*}}
12634 ; AVX512BW-FAST: {{.*}}
12635 ; AVX512BW-ONLY: {{.*}}
12636 ; AVX512BW-ONLY-FAST: {{.*}}
12637 ; AVX512BW-ONLY-SLOW: {{.*}}
12638 ; AVX512BW-SLOW: {{.*}}
12639 ; AVX512DQ-FAST: {{.*}}
12640 ; AVX512DQ-ONLY: {{.*}}
12641 ; AVX512DQ-SLOW: {{.*}}
12642 ; AVX512DQBW-FAST: {{.*}}
12643 ; AVX512DQBW-ONLY: {{.*}}
12644 ; AVX512DQBW-SLOW: {{.*}}
12645 ; AVX512F-FAST: {{.*}}
12646 ; AVX512F-ONLY: {{.*}}
12647 ; AVX512F-ONLY-FAST: {{.*}}
12648 ; AVX512F-ONLY-SLOW: {{.*}}
12649 ; AVX512F-SLOW: {{.*}}
12650 ; FALLBACK0: {{.*}}
12651 ; FALLBACK1: {{.*}}
12652 ; FALLBACK10: {{.*}}
12653 ; FALLBACK11: {{.*}}
12654 ; FALLBACK12: {{.*}}
12655 ; FALLBACK2: {{.*}}
12656 ; FALLBACK3: {{.*}}
12657 ; FALLBACK4: {{.*}}
12658 ; FALLBACK5: {{.*}}
12659 ; FALLBACK6: {{.*}}
12660 ; FALLBACK7: {{.*}}
12661 ; FALLBACK8: {{.*}}
12662 ; FALLBACK9: {{.*}}