[MC][X86] Merge lane/element broadcast comment printers. (#79020)
[llvm-project.git] / llvm / test / CodeGen / X86 / vector-interleaved-load-i32-stride-6.ll
blobd3f9b1c4e15a72a119e6b68970fe0c508936f83f
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_stride6_vf2(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4, ptr %out.vec5) nounwind {
19 ; SSE-LABEL: load_i32_stride6_vf2:
20 ; SSE:       # %bb.0:
21 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
22 ; SSE-NEXT:    movdqa (%rdi), %xmm1
23 ; SSE-NEXT:    movdqa 16(%rdi), %xmm0
24 ; SSE-NEXT:    movdqa 32(%rdi), %xmm2
25 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm0[2,3,2,3]
26 ; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm1[1,1,1,1]
27 ; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm1[2,3,2,3]
28 ; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm1[3,3,3,3]
29 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
30 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm0[3,3,3,3]
31 ; SSE-NEXT:    punpckldq {{.*#+}} xmm4 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]
32 ; SSE-NEXT:    punpckldq {{.*#+}} xmm5 = xmm5[0],xmm2[0],xmm5[1],xmm2[1]
33 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm2[1,1,1,1]
34 ; SSE-NEXT:    punpckldq {{.*#+}} xmm6 = xmm6[0],xmm3[0],xmm6[1],xmm3[1]
35 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm2[2,3,2,3]
36 ; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[3,3,3,3]
37 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm0[1,1,1,1]
38 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
39 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm2[0],xmm7[1],xmm2[1]
40 ; SSE-NEXT:    movq %xmm1, (%rsi)
41 ; SSE-NEXT:    movq %xmm4, (%rdx)
42 ; SSE-NEXT:    movq %xmm5, (%rcx)
43 ; SSE-NEXT:    movq %xmm6, (%r8)
44 ; SSE-NEXT:    movq %xmm0, (%r9)
45 ; SSE-NEXT:    movq %xmm7, (%rax)
46 ; SSE-NEXT:    retq
48 ; AVX1-ONLY-LABEL: load_i32_stride6_vf2:
49 ; AVX1-ONLY:       # %bb.0:
50 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
51 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %xmm0
52 ; AVX1-ONLY-NEXT:    vmovaps 16(%rdi), %xmm1
53 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %xmm2
54 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm3 = xmm1[2,2,3,3]
55 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm3 = xmm0[0],xmm3[1],xmm0[2,3]
56 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm4 = xmm0[0,1],xmm1[2,3]
57 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm4 = xmm4[1,3,2,3]
58 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm5 = xmm2[0,1],xmm0[2,3]
59 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm5 = xmm5[2,0,2,3]
60 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[3,3,3,3]
61 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0],xmm2[1],xmm0[2,3]
62 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm6 = xmm2[2,2,3,3]
63 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm6 = xmm1[0],xmm6[1],xmm1[2,3]
64 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
65 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[1,3,2,3]
66 ; AVX1-ONLY-NEXT:    vmovlps %xmm3, (%rsi)
67 ; AVX1-ONLY-NEXT:    vmovlps %xmm4, (%rdx)
68 ; AVX1-ONLY-NEXT:    vmovlps %xmm5, (%rcx)
69 ; AVX1-ONLY-NEXT:    vmovlps %xmm0, (%r8)
70 ; AVX1-ONLY-NEXT:    vmovlps %xmm6, (%r9)
71 ; AVX1-ONLY-NEXT:    vmovlps %xmm1, (%rax)
72 ; AVX1-ONLY-NEXT:    retq
74 ; AVX2-ONLY-LABEL: load_i32_stride6_vf2:
75 ; AVX2-ONLY:       # %bb.0:
76 ; AVX2-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
77 ; AVX2-ONLY-NEXT:    vmovaps 32(%rdi), %ymm0
78 ; AVX2-ONLY-NEXT:    vmovaps (%rdi), %xmm1
79 ; AVX2-ONLY-NEXT:    vmovaps 16(%rdi), %xmm2
80 ; AVX2-ONLY-NEXT:    vmovaps 32(%rdi), %xmm3
81 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} xmm4 = xmm2[2,2,3,3]
82 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm4 = xmm1[0],xmm4[1],xmm1[2,3]
83 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm1[0,1],xmm2[2,3]
84 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[1,3,2,3]
85 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm5 = xmm3[0,1],xmm1[2,3]
86 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} xmm5 = xmm5[2,0,2,3]
87 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[3,3,3,3]
88 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0],xmm3[1],xmm1[2,3]
89 ; AVX2-ONLY-NEXT:    vmovddup {{.*#+}} xmm3 = [4,2,4,2]
90 ; AVX2-ONLY-NEXT:    # xmm3 = mem[0,0]
91 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],mem[4,5,6,7]
92 ; AVX2-ONLY-NEXT:    vpermps %ymm0, %ymm3, %ymm3
93 ; AVX2-ONLY-NEXT:    vmovddup {{.*#+}} xmm6 = [5,3,5,3]
94 ; AVX2-ONLY-NEXT:    # xmm6 = mem[0,0]
95 ; AVX2-ONLY-NEXT:    vpermps %ymm0, %ymm6, %ymm0
96 ; AVX2-ONLY-NEXT:    vmovlps %xmm4, (%rsi)
97 ; AVX2-ONLY-NEXT:    vmovlps %xmm2, (%rdx)
98 ; AVX2-ONLY-NEXT:    vmovlps %xmm5, (%rcx)
99 ; AVX2-ONLY-NEXT:    vmovlps %xmm1, (%r8)
100 ; AVX2-ONLY-NEXT:    vmovlps %xmm3, (%r9)
101 ; AVX2-ONLY-NEXT:    vmovlps %xmm0, (%rax)
102 ; AVX2-ONLY-NEXT:    vzeroupper
103 ; AVX2-ONLY-NEXT:    retq
105 ; AVX512-SLOW-LABEL: load_i32_stride6_vf2:
106 ; AVX512-SLOW:       # %bb.0:
107 ; AVX512-SLOW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
108 ; AVX512-SLOW-NEXT:    vmovdqa (%rdi), %xmm0
109 ; AVX512-SLOW-NEXT:    vmovaps 16(%rdi), %xmm1
110 ; AVX512-SLOW-NEXT:    vmovdqa 32(%rdi), %xmm2
111 ; AVX512-SLOW-NEXT:    vextractps $2, %xmm1, %r10d
112 ; AVX512-SLOW-NEXT:    vpinsrd $1, %r10d, %xmm0, %xmm3
113 ; AVX512-SLOW-NEXT:    vextractps $3, %xmm1, %r10d
114 ; AVX512-SLOW-NEXT:    vpshufd {{.*#+}} xmm1 = xmm0[1,1,1,1]
115 ; AVX512-SLOW-NEXT:    vpinsrd $1, %r10d, %xmm1, %xmm1
116 ; AVX512-SLOW-NEXT:    vpbroadcastd 8(%rdi), %xmm4
117 ; AVX512-SLOW-NEXT:    vmovd %xmm2, %r10d
118 ; AVX512-SLOW-NEXT:    vpinsrd $1, %r10d, %xmm4, %xmm4
119 ; AVX512-SLOW-NEXT:    vpshufd {{.*#+}} xmm0 = xmm0[3,3,3,3]
120 ; AVX512-SLOW-NEXT:    vpblendd {{.*#+}} xmm0 = xmm0[0],xmm2[1],xmm0[2,3]
121 ; AVX512-SLOW-NEXT:    vmovddup {{.*#+}} xmm2 = [4,2,4,2]
122 ; AVX512-SLOW-NEXT:    # xmm2 = mem[0,0]
123 ; AVX512-SLOW-NEXT:    vmovaps 32(%rdi), %ymm5
124 ; AVX512-SLOW-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],mem[4,5,6,7]
125 ; AVX512-SLOW-NEXT:    vpermps %ymm5, %ymm2, %ymm2
126 ; AVX512-SLOW-NEXT:    vmovddup {{.*#+}} xmm6 = [5,3,5,3]
127 ; AVX512-SLOW-NEXT:    # xmm6 = mem[0,0]
128 ; AVX512-SLOW-NEXT:    vpermps %ymm5, %ymm6, %ymm5
129 ; AVX512-SLOW-NEXT:    vmovq %xmm3, (%rsi)
130 ; AVX512-SLOW-NEXT:    vmovq %xmm1, (%rdx)
131 ; AVX512-SLOW-NEXT:    vmovq %xmm4, (%rcx)
132 ; AVX512-SLOW-NEXT:    vmovq %xmm0, (%r8)
133 ; AVX512-SLOW-NEXT:    vmovlps %xmm2, (%r9)
134 ; AVX512-SLOW-NEXT:    vmovlps %xmm5, (%rax)
135 ; AVX512-SLOW-NEXT:    vzeroupper
136 ; AVX512-SLOW-NEXT:    retq
138 ; AVX512-FAST-LABEL: load_i32_stride6_vf2:
139 ; AVX512-FAST:       # %bb.0:
140 ; AVX512-FAST-NEXT:    movq {{[0-9]+}}(%rsp), %rax
141 ; AVX512-FAST-NEXT:    vpbroadcastq {{.*#+}} xmm0 = [0,6,0,6]
142 ; AVX512-FAST-NEXT:    vmovdqa (%rdi), %xmm1
143 ; AVX512-FAST-NEXT:    vmovdqa 16(%rdi), %xmm2
144 ; AVX512-FAST-NEXT:    vmovdqa 32(%rdi), %xmm3
145 ; AVX512-FAST-NEXT:    vpermi2d %xmm2, %xmm1, %xmm0
146 ; AVX512-FAST-NEXT:    vpbroadcastq {{.*#+}} xmm4 = [1,7,1,7]
147 ; AVX512-FAST-NEXT:    vpermi2d %xmm2, %xmm1, %xmm4
148 ; AVX512-FAST-NEXT:    vpbroadcastq {{.*#+}} xmm2 = [2,4,2,4]
149 ; AVX512-FAST-NEXT:    vpermi2d %xmm3, %xmm1, %xmm2
150 ; AVX512-FAST-NEXT:    vpbroadcastq {{.*#+}} xmm5 = [3,5,3,5]
151 ; AVX512-FAST-NEXT:    vpermi2d %xmm3, %xmm1, %xmm5
152 ; AVX512-FAST-NEXT:    vmovddup {{.*#+}} xmm1 = [4,2,4,2]
153 ; AVX512-FAST-NEXT:    # xmm1 = mem[0,0]
154 ; AVX512-FAST-NEXT:    vmovaps 32(%rdi), %ymm3
155 ; AVX512-FAST-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],mem[4,5,6,7]
156 ; AVX512-FAST-NEXT:    vpermps %ymm3, %ymm1, %ymm1
157 ; AVX512-FAST-NEXT:    vmovddup {{.*#+}} xmm6 = [5,3,5,3]
158 ; AVX512-FAST-NEXT:    # xmm6 = mem[0,0]
159 ; AVX512-FAST-NEXT:    vpermps %ymm3, %ymm6, %ymm3
160 ; AVX512-FAST-NEXT:    vmovq %xmm0, (%rsi)
161 ; AVX512-FAST-NEXT:    vmovq %xmm4, (%rdx)
162 ; AVX512-FAST-NEXT:    vmovq %xmm2, (%rcx)
163 ; AVX512-FAST-NEXT:    vmovq %xmm5, (%r8)
164 ; AVX512-FAST-NEXT:    vmovlps %xmm1, (%r9)
165 ; AVX512-FAST-NEXT:    vmovlps %xmm3, (%rax)
166 ; AVX512-FAST-NEXT:    vzeroupper
167 ; AVX512-FAST-NEXT:    retq
168   %wide.vec = load <12 x i32>, ptr %in.vec, align 64
169   %strided.vec0 = shufflevector <12 x i32> %wide.vec, <12 x i32> poison, <2 x i32> <i32 0, i32 6>
170   %strided.vec1 = shufflevector <12 x i32> %wide.vec, <12 x i32> poison, <2 x i32> <i32 1, i32 7>
171   %strided.vec2 = shufflevector <12 x i32> %wide.vec, <12 x i32> poison, <2 x i32> <i32 2, i32 8>
172   %strided.vec3 = shufflevector <12 x i32> %wide.vec, <12 x i32> poison, <2 x i32> <i32 3, i32 9>
173   %strided.vec4 = shufflevector <12 x i32> %wide.vec, <12 x i32> poison, <2 x i32> <i32 4, i32 10>
174   %strided.vec5 = shufflevector <12 x i32> %wide.vec, <12 x i32> poison, <2 x i32> <i32 5, i32 11>
175   store <2 x i32> %strided.vec0, ptr %out.vec0, align 64
176   store <2 x i32> %strided.vec1, ptr %out.vec1, align 64
177   store <2 x i32> %strided.vec2, ptr %out.vec2, align 64
178   store <2 x i32> %strided.vec3, ptr %out.vec3, align 64
179   store <2 x i32> %strided.vec4, ptr %out.vec4, align 64
180   store <2 x i32> %strided.vec5, ptr %out.vec5, align 64
181   ret void
184 define void @load_i32_stride6_vf4(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4, ptr %out.vec5) nounwind {
185 ; SSE-LABEL: load_i32_stride6_vf4:
186 ; SSE:       # %bb.0:
187 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
188 ; SSE-NEXT:    movdqa 80(%rdi), %xmm1
189 ; SSE-NEXT:    movdqa 64(%rdi), %xmm0
190 ; SSE-NEXT:    movdqa (%rdi), %xmm4
191 ; SSE-NEXT:    movdqa 16(%rdi), %xmm2
192 ; SSE-NEXT:    movdqa 48(%rdi), %xmm3
193 ; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm2[2,3,2,3]
194 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm4[1,1,1,1]
195 ; SSE-NEXT:    pshufd {{.*#+}} xmm8 = xmm4[2,3,2,3]
196 ; SSE-NEXT:    pshufd {{.*#+}} xmm9 = xmm4[3,3,3,3]
197 ; SSE-NEXT:    movdqa %xmm4, %xmm6
198 ; SSE-NEXT:    punpckldq {{.*#+}} xmm6 = xmm6[0],xmm5[0],xmm6[1],xmm5[1]
199 ; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm0[2,2,3,3]
200 ; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm3[0,0,1,1]
201 ; SSE-NEXT:    punpckldq {{.*#+}} xmm4 = xmm4[0],xmm5[0],xmm4[1],xmm5[1]
202 ; SSE-NEXT:    movsd {{.*#+}} xmm4 = xmm6[0],xmm4[1]
203 ; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm2[3,3,3,3]
204 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm5[0],xmm7[1],xmm5[1]
205 ; SSE-NEXT:    pshufd {{.*#+}} xmm10 = xmm0[2,3,2,3]
206 ; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm3[2,2,3,3]
207 ; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm3[2,3,2,3]
208 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm10[0],xmm3[1],xmm10[1]
209 ; SSE-NEXT:    movdqa 32(%rdi), %xmm10
210 ; SSE-NEXT:    movsd {{.*#+}} xmm3 = xmm7[0],xmm3[1]
211 ; SSE-NEXT:    punpckldq {{.*#+}} xmm8 = xmm8[0],xmm10[0],xmm8[1],xmm10[1]
212 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm1[0,0,1,1]
213 ; SSE-NEXT:    punpckldq {{.*#+}} xmm5 = xmm5[0],xmm7[0],xmm5[1],xmm7[1]
214 ; SSE-NEXT:    movsd {{.*#+}} xmm5 = xmm8[0],xmm5[1]
215 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm10[1,1,1,1]
216 ; SSE-NEXT:    punpckldq {{.*#+}} xmm9 = xmm9[0],xmm7[0],xmm9[1],xmm7[1]
217 ; SSE-NEXT:    punpckldq {{.*#+}} xmm6 = xmm6[0],xmm1[0],xmm6[1],xmm1[1]
218 ; SSE-NEXT:    movsd {{.*#+}} xmm6 = xmm9[0],xmm6[1]
219 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm10[2,3,2,3]
220 ; SSE-NEXT:    pshufd {{.*#+}} xmm8 = xmm2[1,1,1,1]
221 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm7[0],xmm2[1],xmm7[1]
222 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm1[2,2,3,3]
223 ; SSE-NEXT:    pshufd {{.*#+}} xmm9 = xmm0[0,0,1,1]
224 ; SSE-NEXT:    punpckldq {{.*#+}} xmm9 = xmm9[0],xmm7[0],xmm9[1],xmm7[1]
225 ; SSE-NEXT:    movsd {{.*#+}} xmm9 = xmm2[0],xmm9[1]
226 ; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm10[3,3,3,3]
227 ; SSE-NEXT:    punpckldq {{.*#+}} xmm8 = xmm8[0],xmm2[0],xmm8[1],xmm2[1]
228 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[2,3,2,3]
229 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
230 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm8[0],xmm0[1]
231 ; SSE-NEXT:    movapd %xmm4, (%rsi)
232 ; SSE-NEXT:    movapd %xmm3, (%rdx)
233 ; SSE-NEXT:    movapd %xmm5, (%rcx)
234 ; SSE-NEXT:    movapd %xmm6, (%r8)
235 ; SSE-NEXT:    movapd %xmm9, (%r9)
236 ; SSE-NEXT:    movapd %xmm0, (%rax)
237 ; SSE-NEXT:    retq
239 ; AVX1-ONLY-LABEL: load_i32_stride6_vf4:
240 ; AVX1-ONLY:       # %bb.0:
241 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
242 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %ymm0
243 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %ymm1
244 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm0[4,5],ymm1[6,7]
245 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm2, %xmm3
246 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm4 = xmm2[0,1],xmm3[2,3]
247 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm4 = xmm4[0,2],xmm3[0,3]
248 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdi), %xmm5
249 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm4 = xmm4[0,1,2],xmm5[2]
250 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[1,0],xmm3[3,0]
251 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[0,2],xmm3[1,3]
252 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1,2],xmm5[3]
253 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]
254 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm0, %xmm1
255 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm3 = xmm0[2,0],xmm1[2,3]
256 ; AVX1-ONLY-NEXT:    vmovaps 80(%rdi), %xmm6
257 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm3 = xmm3[0,1,2],xmm6[0]
258 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[3,1],xmm1[3,3]
259 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm0 = xmm0[0,1,2],xmm6[1]
260 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %xmm1
261 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm7 = xmm1[2,2,3,3]
262 ; AVX1-ONLY-NEXT:    vmovaps 16(%rdi), %xmm8
263 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm7 = xmm8[0],xmm7[1],xmm8[2,3]
264 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm9 = xmm5[0,1],xmm6[2,3]
265 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm9 = xmm9[0,1,0,2]
266 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0,1],xmm9[2,3]
267 ; AVX1-ONLY-NEXT:    vpmovzxdq {{.*#+}} xmm5 = xmm5[0],zero,xmm5[1],zero
268 ; AVX1-ONLY-NEXT:    vpblendw {{.*#+}} xmm5 = xmm5[0,1,2,3,4,5],xmm6[6,7]
269 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm8[0,1],xmm1[2,3]
270 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[1,3,2,3]
271 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm5[2,3]
272 ; AVX1-ONLY-NEXT:    vmovaps %xmm4, (%rsi)
273 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, (%rdx)
274 ; AVX1-ONLY-NEXT:    vmovaps %xmm3, (%rcx)
275 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, (%r8)
276 ; AVX1-ONLY-NEXT:    vmovaps %xmm7, (%r9)
277 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, (%rax)
278 ; AVX1-ONLY-NEXT:    vzeroupper
279 ; AVX1-ONLY-NEXT:    retq
281 ; AVX2-ONLY-LABEL: load_i32_stride6_vf4:
282 ; AVX2-ONLY:       # %bb.0:
283 ; AVX2-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
284 ; AVX2-ONLY-NEXT:    vmovdqa (%rdi), %ymm1
285 ; AVX2-ONLY-NEXT:    vmovdqa 32(%rdi), %ymm2
286 ; AVX2-ONLY-NEXT:    vmovdqa {{.*#+}} xmm0 = [0,6,4,u]
287 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm3 = ymm1[0,1,2,3],ymm2[4,5],ymm1[6,7]
288 ; AVX2-ONLY-NEXT:    vpermd %ymm3, %ymm0, %ymm0
289 ; AVX2-ONLY-NEXT:    vmovdqa 64(%rdi), %xmm4
290 ; AVX2-ONLY-NEXT:    vpshufd {{.*#+}} xmm5 = xmm4[2,2,2,2]
291 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm0 = xmm0[0,1,2],xmm5[3]
292 ; AVX2-ONLY-NEXT:    vmovdqa {{.*#+}} xmm5 = [1,7,5,u]
293 ; AVX2-ONLY-NEXT:    vpermd %ymm3, %ymm5, %ymm3
294 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm3 = xmm3[0,1,2],xmm4[3]
295 ; AVX2-ONLY-NEXT:    vmovdqa (%rdi), %xmm5
296 ; AVX2-ONLY-NEXT:    vpshufd {{.*#+}} xmm6 = xmm5[2,3,2,3]
297 ; AVX2-ONLY-NEXT:    vpshufd {{.*#+}} ymm7 = ymm2[0,0,2,3,4,4,6,7]
298 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm6 = ymm6[0],ymm7[1,2,3],ymm6[4],ymm7[5,6,7]
299 ; AVX2-ONLY-NEXT:    vpermq {{.*#+}} ymm6 = ymm6[0,3,2,3]
300 ; AVX2-ONLY-NEXT:    vmovdqa 80(%rdi), %xmm7
301 ; AVX2-ONLY-NEXT:    vpbroadcastd %xmm7, %xmm8
302 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm6 = xmm6[0,1,2],xmm8[3]
303 ; AVX2-ONLY-NEXT:    vpshufd {{.*#+}} xmm5 = xmm5[3,3,3,3]
304 ; AVX2-ONLY-NEXT:    vpshufd {{.*#+}} ymm8 = ymm2[0,1,3,3,4,5,7,7]
305 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm5 = ymm5[0],ymm8[1,2,3],ymm5[4],ymm8[5,6,7]
306 ; AVX2-ONLY-NEXT:    vpermq {{.*#+}} ymm5 = ymm5[0,3,2,3]
307 ; AVX2-ONLY-NEXT:    vpbroadcastd 84(%rdi), %xmm8
308 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm5 = xmm5[0,1,2],xmm8[3]
309 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm8 = xmm4[0,1],xmm7[2,3]
310 ; AVX2-ONLY-NEXT:    vpshufd {{.*#+}} xmm8 = xmm8[0,1,0,2]
311 ; AVX2-ONLY-NEXT:    vpbroadcastq {{.*#+}} xmm9 = [4,2,4,2]
312 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
313 ; AVX2-ONLY-NEXT:    vpermd %ymm1, %ymm9, %ymm2
314 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm2 = xmm2[0,1],xmm8[2,3]
315 ; AVX2-ONLY-NEXT:    vpmovzxdq {{.*#+}} xmm4 = xmm4[0],zero,xmm4[1],zero
316 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm4 = xmm4[0,1,2],xmm7[3]
317 ; AVX2-ONLY-NEXT:    vpbroadcastq {{.*#+}} xmm7 = [5,3,5,3]
318 ; AVX2-ONLY-NEXT:    vpermd %ymm1, %ymm7, %ymm1
319 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = xmm1[0,1],xmm4[2,3]
320 ; AVX2-ONLY-NEXT:    vmovdqa %xmm0, (%rsi)
321 ; AVX2-ONLY-NEXT:    vmovdqa %xmm3, (%rdx)
322 ; AVX2-ONLY-NEXT:    vmovdqa %xmm6, (%rcx)
323 ; AVX2-ONLY-NEXT:    vmovdqa %xmm5, (%r8)
324 ; AVX2-ONLY-NEXT:    vmovdqa %xmm2, (%r9)
325 ; AVX2-ONLY-NEXT:    vmovdqa %xmm1, (%rax)
326 ; AVX2-ONLY-NEXT:    vzeroupper
327 ; AVX2-ONLY-NEXT:    retq
329 ; AVX512-LABEL: load_i32_stride6_vf4:
330 ; AVX512:       # %bb.0:
331 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax
332 ; AVX512-NEXT:    vmovdqa64 (%rdi), %zmm0
333 ; AVX512-NEXT:    vmovdqa64 64(%rdi), %zmm1
334 ; AVX512-NEXT:    vmovdqa {{.*#+}} xmm2 = [0,6,12,18]
335 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2
336 ; AVX512-NEXT:    vmovdqa {{.*#+}} xmm3 = [1,7,13,19]
337 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm3
338 ; AVX512-NEXT:    vmovdqa {{.*#+}} xmm4 = [2,8,14,20]
339 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm4
340 ; AVX512-NEXT:    vmovdqa {{.*#+}} xmm5 = [3,9,15,21]
341 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm5
342 ; AVX512-NEXT:    vmovdqa {{.*#+}} xmm6 = [4,10,16,22]
343 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm6
344 ; AVX512-NEXT:    vmovdqa {{.*#+}} xmm7 = [5,11,17,23]
345 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm7
346 ; AVX512-NEXT:    vmovdqa %xmm2, (%rsi)
347 ; AVX512-NEXT:    vmovdqa %xmm3, (%rdx)
348 ; AVX512-NEXT:    vmovdqa %xmm4, (%rcx)
349 ; AVX512-NEXT:    vmovdqa %xmm5, (%r8)
350 ; AVX512-NEXT:    vmovdqa %xmm6, (%r9)
351 ; AVX512-NEXT:    vmovdqa %xmm7, (%rax)
352 ; AVX512-NEXT:    vzeroupper
353 ; AVX512-NEXT:    retq
354   %wide.vec = load <24 x i32>, ptr %in.vec, align 64
355   %strided.vec0 = shufflevector <24 x i32> %wide.vec, <24 x i32> poison, <4 x i32> <i32 0, i32 6, i32 12, i32 18>
356   %strided.vec1 = shufflevector <24 x i32> %wide.vec, <24 x i32> poison, <4 x i32> <i32 1, i32 7, i32 13, i32 19>
357   %strided.vec2 = shufflevector <24 x i32> %wide.vec, <24 x i32> poison, <4 x i32> <i32 2, i32 8, i32 14, i32 20>
358   %strided.vec3 = shufflevector <24 x i32> %wide.vec, <24 x i32> poison, <4 x i32> <i32 3, i32 9, i32 15, i32 21>
359   %strided.vec4 = shufflevector <24 x i32> %wide.vec, <24 x i32> poison, <4 x i32> <i32 4, i32 10, i32 16, i32 22>
360   %strided.vec5 = shufflevector <24 x i32> %wide.vec, <24 x i32> poison, <4 x i32> <i32 5, i32 11, i32 17, i32 23>
361   store <4 x i32> %strided.vec0, ptr %out.vec0, align 64
362   store <4 x i32> %strided.vec1, ptr %out.vec1, align 64
363   store <4 x i32> %strided.vec2, ptr %out.vec2, align 64
364   store <4 x i32> %strided.vec3, ptr %out.vec3, align 64
365   store <4 x i32> %strided.vec4, ptr %out.vec4, align 64
366   store <4 x i32> %strided.vec5, ptr %out.vec5, align 64
367   ret void
370 define void @load_i32_stride6_vf8(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4, ptr %out.vec5) nounwind {
371 ; SSE-LABEL: load_i32_stride6_vf8:
372 ; SSE:       # %bb.0:
373 ; SSE-NEXT:    movdqa 144(%rdi), %xmm4
374 ; SSE-NEXT:    movdqa 160(%rdi), %xmm2
375 ; SSE-NEXT:    movdqa 96(%rdi), %xmm6
376 ; SSE-NEXT:    movdqa 112(%rdi), %xmm3
377 ; SSE-NEXT:    movdqa 64(%rdi), %xmm5
378 ; SSE-NEXT:    movdqa (%rdi), %xmm10
379 ; SSE-NEXT:    movdqa 16(%rdi), %xmm0
380 ; SSE-NEXT:    movdqa 48(%rdi), %xmm8
381 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm0[2,3,2,3]
382 ; SSE-NEXT:    movdqa %xmm0, %xmm11
383 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
384 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm10[1,1,1,1]
385 ; SSE-NEXT:    pshufd {{.*#+}} xmm13 = xmm10[2,3,2,3]
386 ; SSE-NEXT:    movdqa %xmm10, %xmm7
387 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm1[0],xmm7[1],xmm1[1]
388 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm5[2,2,3,3]
389 ; SSE-NEXT:    pshufd {{.*#+}} xmm9 = xmm8[0,0,1,1]
390 ; SSE-NEXT:    punpckldq {{.*#+}} xmm9 = xmm9[0],xmm1[0],xmm9[1],xmm1[1]
391 ; SSE-NEXT:    movsd {{.*#+}} xmm9 = xmm7[0],xmm9[1]
392 ; SSE-NEXT:    movapd %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
393 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm3[2,3,2,3]
394 ; SSE-NEXT:    pshufd {{.*#+}} xmm15 = xmm6[1,1,1,1]
395 ; SSE-NEXT:    movdqa %xmm6, %xmm9
396 ; SSE-NEXT:    punpckldq {{.*#+}} xmm9 = xmm9[0],xmm1[0],xmm9[1],xmm1[1]
397 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm2[2,2,3,3]
398 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm4[0,0,1,1]
399 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm1[0],xmm7[1],xmm1[1]
400 ; SSE-NEXT:    movsd {{.*#+}} xmm7 = xmm9[0],xmm7[1]
401 ; SSE-NEXT:    movapd %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
402 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm11[3,3,3,3]
403 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
404 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm5[2,3,2,3]
405 ; SSE-NEXT:    movdqa %xmm5, %xmm9
406 ; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm8[2,2,3,3]
407 ; SSE-NEXT:    movdqa %xmm8, %xmm11
408 ; SSE-NEXT:    punpckldq {{.*#+}} xmm11 = xmm11[0],xmm1[0],xmm11[1],xmm1[1]
409 ; SSE-NEXT:    movsd {{.*#+}} xmm11 = xmm0[0],xmm11[1]
410 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm3[3,3,3,3]
411 ; SSE-NEXT:    movdqa %xmm3, %xmm1
412 ; SSE-NEXT:    movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
413 ; SSE-NEXT:    punpckldq {{.*#+}} xmm15 = xmm15[0],xmm0[0],xmm15[1],xmm0[1]
414 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm2[2,3,2,3]
415 ; SSE-NEXT:    movdqa %xmm4, %xmm12
416 ; SSE-NEXT:    punpckldq {{.*#+}} xmm12 = xmm12[0],xmm0[0],xmm12[1],xmm0[1]
417 ; SSE-NEXT:    movdqa 80(%rdi), %xmm14
418 ; SSE-NEXT:    movsd {{.*#+}} xmm12 = xmm15[0],xmm12[1]
419 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm14[0,0,1,1]
420 ; SSE-NEXT:    punpckldq {{.*#+}} xmm5 = xmm5[0],xmm0[0],xmm5[1],xmm0[1]
421 ; SSE-NEXT:    movdqa 32(%rdi), %xmm7
422 ; SSE-NEXT:    punpckldq {{.*#+}} xmm13 = xmm13[0],xmm7[0],xmm13[1],xmm7[1]
423 ; SSE-NEXT:    movsd {{.*#+}} xmm5 = xmm13[0],xmm5[1]
424 ; SSE-NEXT:    movapd %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
425 ; SSE-NEXT:    pshufd {{.*#+}} xmm13 = xmm4[2,2,3,3]
426 ; SSE-NEXT:    movdqa 176(%rdi), %xmm15
427 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm15[0,0,1,1]
428 ; SSE-NEXT:    punpckldq {{.*#+}} xmm13 = xmm13[0],xmm0[0],xmm13[1],xmm0[1]
429 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm6[2,3,2,3]
430 ; SSE-NEXT:    movdqa 128(%rdi), %xmm5
431 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm5[0],xmm0[1],xmm5[1]
432 ; SSE-NEXT:    movsd {{.*#+}} xmm13 = xmm0[0],xmm13[1]
433 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm10[3,3,3,3]
434 ; SSE-NEXT:    pshufd {{.*#+}} xmm10 = xmm7[1,1,1,1]
435 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm10[0],xmm0[1],xmm10[1]
436 ; SSE-NEXT:    pshufd {{.*#+}} xmm8 = xmm8[2,3,2,3]
437 ; SSE-NEXT:    punpckldq {{.*#+}} xmm8 = xmm8[0],xmm14[0],xmm8[1],xmm14[1]
438 ; SSE-NEXT:    movsd {{.*#+}} xmm8 = xmm0[0],xmm8[1]
439 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm6[3,3,3,3]
440 ; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm5[1,1,1,1]
441 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm6[0],xmm0[1],xmm6[1]
442 ; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm4[2,3,2,3]
443 ; SSE-NEXT:    punpckldq {{.*#+}} xmm4 = xmm4[0],xmm15[0],xmm4[1],xmm15[1]
444 ; SSE-NEXT:    movsd {{.*#+}} xmm4 = xmm0[0],xmm4[1]
445 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm7[2,3,2,3]
446 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
447 ; SSE-NEXT:    movdqa %xmm3, %xmm10
448 ; SSE-NEXT:    punpckldq {{.*#+}} xmm10 = xmm10[0],xmm0[0],xmm10[1],xmm0[1]
449 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm14[2,2,3,3]
450 ; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm9[0,0,1,1]
451 ; SSE-NEXT:    punpckldq {{.*#+}} xmm6 = xmm6[0],xmm0[0],xmm6[1],xmm0[1]
452 ; SSE-NEXT:    movsd {{.*#+}} xmm6 = xmm10[0],xmm6[1]
453 ; SSE-NEXT:    pshufd {{.*#+}} xmm10 = xmm5[2,3,2,3]
454 ; SSE-NEXT:    movdqa %xmm1, %xmm0
455 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm10[0],xmm0[1],xmm10[1]
456 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm15[2,2,3,3]
457 ; SSE-NEXT:    pshufd {{.*#+}} xmm10 = xmm2[0,0,1,1]
458 ; SSE-NEXT:    punpckldq {{.*#+}} xmm10 = xmm10[0],xmm1[0],xmm10[1],xmm1[1]
459 ; SSE-NEXT:    movsd {{.*#+}} xmm10 = xmm0[0],xmm10[1]
460 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm3[1,1,1,1]
461 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm7[3,3,3,3]
462 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
463 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm14[2,3,2,3]
464 ; SSE-NEXT:    punpckldq {{.*#+}} xmm9 = xmm9[0],xmm1[0],xmm9[1],xmm1[1]
465 ; SSE-NEXT:    movsd {{.*#+}} xmm9 = xmm0[0],xmm9[1]
466 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
467 ; SSE-NEXT:    # xmm0 = mem[1,1,1,1]
468 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm5[3,3,3,3]
469 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
470 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm15[2,3,2,3]
471 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
472 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm0[0],xmm2[1]
473 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
474 ; SSE-NEXT:    movaps %xmm0, 16(%rsi)
475 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
476 ; SSE-NEXT:    movaps %xmm0, (%rsi)
477 ; SSE-NEXT:    movapd %xmm12, 16(%rdx)
478 ; SSE-NEXT:    movapd %xmm11, (%rdx)
479 ; SSE-NEXT:    movapd %xmm13, 16(%rcx)
480 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
481 ; SSE-NEXT:    movaps %xmm0, (%rcx)
482 ; SSE-NEXT:    movapd %xmm4, 16(%r8)
483 ; SSE-NEXT:    movapd %xmm8, (%r8)
484 ; SSE-NEXT:    movapd %xmm10, 16(%r9)
485 ; SSE-NEXT:    movapd %xmm6, (%r9)
486 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
487 ; SSE-NEXT:    movapd %xmm2, 16(%rax)
488 ; SSE-NEXT:    movapd %xmm9, (%rax)
489 ; SSE-NEXT:    retq
491 ; AVX1-ONLY-LABEL: load_i32_stride6_vf8:
492 ; AVX1-ONLY:       # %bb.0:
493 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
494 ; AVX1-ONLY-NEXT:    vmovapd 160(%rdi), %ymm3
495 ; AVX1-ONLY-NEXT:    vmovapd 128(%rdi), %ymm4
496 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %ymm6
497 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %ymm7
498 ; AVX1-ONLY-NEXT:    vmovaps 96(%rdi), %ymm0
499 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdi), %ymm1
500 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 96(%rdi), %ymm1, %ymm5
501 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm0[2,0],ymm5[0,0],ymm0[6,4],ymm5[4,4]
502 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[2,0],ymm5[2,2],ymm2[6,4],ymm5[6,6]
503 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm8 = ymm7[0,1,2,3],ymm6[4,5],ymm7[6,7]
504 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm8, %xmm9
505 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm10 = xmm8[0,1],xmm9[2,3]
506 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm10 = xmm10[0,2],xmm9[0,3]
507 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm10[0,1,2],ymm2[3,4,5,6,7]
508 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm10 = ymm4[2,3],ymm3[0,1]
509 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm11 = ymm10[0],ymm4[0],ymm10[3],ymm4[2]
510 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm11 = ymm11[0,1,2,0,4,5,6,4]
511 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm11[6,7]
512 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm11 = ymm0[3,0],ymm5[1,0],ymm0[7,4],ymm5[5,4]
513 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm5 = ymm11[2,0],ymm5[2,3],ymm11[6,4],ymm5[6,7]
514 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm8 = xmm8[1,0],xmm9[3,0]
515 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm8 = xmm8[0,2],xmm9[1,3]
516 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm8[0,1,2],ymm5[3,4,5,6,7]
517 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm8 = ymm10[3,1],ymm4[1,3],ymm10[7,5],ymm4[5,7]
518 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm8 = ymm8[0,1,2,0,4,5,6,4]
519 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],ymm8[6,7]
520 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm8 = ymm4[0,1],ymm3[2],ymm4[3]
521 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm9 = ymm8[2,3,0,1]
522 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm10 = ymm9[0,0],ymm8[2,0],ymm9[4,4],ymm8[6,4]
523 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm7 = ymm6[0,1],ymm7[2,3],ymm6[4,5,6,7]
524 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm7, %xmm11
525 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm6 = xmm7[2,0],xmm11[2,3]
526 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm12 = ymm0[2,1],ymm1[2,0],ymm0[6,5],ymm1[6,4]
527 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm12 = ymm12[2,3,0,1]
528 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2],ymm12[3,4,5,6,7]
529 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4],ymm10[5,6,7]
530 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm8 = ymm9[0,1],ymm8[3,1],ymm9[4,5],ymm8[7,5]
531 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm7 = xmm7[3,1],xmm11[3,3]
532 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm9 = ymm0[3,1],ymm1[2,1],ymm0[7,5],ymm1[6,5]
533 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm9 = ymm9[2,3,0,1]
534 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2],ymm9[3,4,5,6,7]
535 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3,4],ymm8[5,6,7]
536 ; AVX1-ONLY-NEXT:    vblendpd {{.*#+}} ymm3 = ymm3[0],ymm4[1],ymm3[2,3]
537 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm4 = ymm3[2,3,0,1]
538 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm8 = ymm3[2,0],ymm4[0,0],ymm3[6,4],ymm4[4,4]
539 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm8 = ymm4[0,2],ymm8[2,0],ymm4[4,6],ymm8[6,4]
540 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %xmm9
541 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm10 = xmm9[2,2,3,3]
542 ; AVX1-ONLY-NEXT:    vmovaps 16(%rdi), %xmm11
543 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm10 = xmm11[0],xmm10[1],xmm11[2,3]
544 ; AVX1-ONLY-NEXT:    vmovapd 80(%rdi), %xmm12
545 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm13 = ymm12[1],ymm1[0],ymm12[2],ymm1[2]
546 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm13 = ymm0[0,1],ymm13[2,0],ymm0[4,5],ymm13[6,4]
547 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1],ymm13[2,3,4,5,6,7]
548 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm8 = ymm10[0,1,2,3,4],ymm8[5,6,7]
549 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[3,0],ymm4[1,0],ymm3[7,4],ymm4[5,4]
550 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm3 = ymm4[0,3],ymm3[2,0],ymm4[4,7],ymm3[6,4]
551 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm4 = xmm11[0,1],xmm9[2,3]
552 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm4 = xmm4[1,3,2,3]
553 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm12[3,1],ymm1[1,3],ymm12[7,5],ymm1[5,7]
554 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[1,1],ymm1[2,0],ymm0[5,5],ymm1[6,4]
555 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1],ymm0[2,3,4,5,6,7]
556 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm3[5,6,7]
557 ; AVX1-ONLY-NEXT:    vmovaps %ymm2, (%rsi)
558 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, (%rdx)
559 ; AVX1-ONLY-NEXT:    vmovaps %ymm6, (%rcx)
560 ; AVX1-ONLY-NEXT:    vmovaps %ymm7, (%r8)
561 ; AVX1-ONLY-NEXT:    vmovaps %ymm8, (%r9)
562 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, (%rax)
563 ; AVX1-ONLY-NEXT:    vzeroupper
564 ; AVX1-ONLY-NEXT:    retq
566 ; AVX2-SLOW-LABEL: load_i32_stride6_vf8:
567 ; AVX2-SLOW:       # %bb.0:
568 ; AVX2-SLOW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
569 ; AVX2-SLOW-NEXT:    vmovaps 128(%rdi), %ymm0
570 ; AVX2-SLOW-NEXT:    vmovaps 160(%rdi), %ymm1
571 ; AVX2-SLOW-NEXT:    vmovaps 96(%rdi), %ymm5
572 ; AVX2-SLOW-NEXT:    vmovaps (%rdi), %ymm2
573 ; AVX2-SLOW-NEXT:    vmovaps 32(%rdi), %ymm4
574 ; AVX2-SLOW-NEXT:    vmovaps 64(%rdi), %ymm6
575 ; AVX2-SLOW-NEXT:    vmovaps {{.*#+}} xmm3 = [0,6,4,u]
576 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm7 = ymm2[0,1,2,3],ymm4[4,5],ymm2[6,7]
577 ; AVX2-SLOW-NEXT:    vpermps %ymm7, %ymm3, %ymm3
578 ; AVX2-SLOW-NEXT:    vperm2f128 {{.*#+}} ymm8 = ymm6[0,1],ymm5[0,1]
579 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm9 = ymm8[0,1,2,3,4,5],ymm5[6,7]
580 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm8 = ymm9[0,2,2,2,4,6,6,6]
581 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2],ymm8[3,4,5,6,7]
582 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm10 = ymm1[0,1,2,3],ymm0[4,5,6,7]
583 ; AVX2-SLOW-NEXT:    vbroadcastsd {{.*#+}} ymm8 = [4,2,4,2,4,2,4,2]
584 ; AVX2-SLOW-NEXT:    vpermps %ymm10, %ymm8, %ymm11
585 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm11[6,7]
586 ; AVX2-SLOW-NEXT:    vmovaps {{.*#+}} xmm11 = [1,7,5,u]
587 ; AVX2-SLOW-NEXT:    vpermps %ymm7, %ymm11, %ymm7
588 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm9 = ymm9[1,3,2,3,5,7,6,7]
589 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2],ymm9[3,4,5,6,7]
590 ; AVX2-SLOW-NEXT:    vbroadcastsd {{.*#+}} ymm9 = [5,3,5,3,5,3,5,3]
591 ; AVX2-SLOW-NEXT:    vpermps %ymm10, %ymm9, %ymm10
592 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5],ymm10[6,7]
593 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm10 = ymm6[0,1],ymm5[2,3],ymm6[4,5],ymm5[6,7]
594 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm10 = ymm10[2,0,2,3,6,4,6,7]
595 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm10 = ymm10[0,2,0,3]
596 ; AVX2-SLOW-NEXT:    vmovaps (%rdi), %xmm11
597 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm12 = xmm11[2,3,2,3]
598 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm13 = ymm4[0,0,2,3,4,4,6,7]
599 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0],ymm13[1,2,3],ymm12[4],ymm13[5,6,7]
600 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm12 = ymm12[0,3,2,3]
601 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm10 = ymm12[0,1,2],ymm10[3,4,5,6,7]
602 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm12 = ymm1[0,0,0,0,4,4,4,4]
603 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm13 = ymm0[0,0,2,3,4,4,6,7]
604 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm12 = ymm13[0,1,2],ymm12[3],ymm13[4,5,6],ymm12[7]
605 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm12 = ymm12[0,1,0,3]
606 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1,2,3,4],ymm12[5,6,7]
607 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm12 = ymm5[3,3,3,3,7,7,7,7]
608 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0],ymm6[1],ymm12[2,3,4],ymm6[5],ymm12[6,7]
609 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm12 = ymm12[0,2,0,3]
610 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm11 = xmm11[3,3,3,3]
611 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm13 = ymm4[0,1,3,3,4,5,7,7]
612 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0],ymm13[1,2,3],ymm11[4],ymm13[5,6,7]
613 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm11 = ymm11[0,3,2,3]
614 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1,2],ymm12[3,4,5,6,7]
615 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm12 = ymm1[0,1,0,1,4,5,4,5]
616 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm13 = ymm0[0,1,3,3,4,5,7,7]
617 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm12 = ymm13[0,1,2],ymm12[3],ymm13[4,5,6],ymm12[7]
618 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm12 = ymm12[0,1,0,3]
619 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1,2,3,4],ymm12[5,6,7]
620 ; AVX2-SLOW-NEXT:    vmovaps 80(%rdi), %xmm12
621 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2,3],ymm5[4,5,6,7]
622 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm6 = ymm5[0,1],ymm12[2,3],ymm5[4,5,6,7]
623 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm6 = ymm6[0,1,0,2,4,5,4,6]
624 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3],ymm2[4,5,6,7]
625 ; AVX2-SLOW-NEXT:    vpermps %ymm2, %ymm8, %ymm4
626 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1],ymm6[2,3,4,5,6,7]
627 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3],ymm1[4,5,6,7]
628 ; AVX2-SLOW-NEXT:    vbroadcastf128 {{.*#+}} ymm1 = [0,2,0,6,0,2,0,6]
629 ; AVX2-SLOW-NEXT:    # ymm1 = mem[0,1,0,1]
630 ; AVX2-SLOW-NEXT:    vpermps %ymm0, %ymm1, %ymm1
631 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm4[0,1,2,3,4],ymm1[5,6,7]
632 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm4 = ymm5[1,1,1,1,5,5,5,5]
633 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2],ymm12[3],ymm4[4,5,6,7]
634 ; AVX2-SLOW-NEXT:    vpermps %ymm2, %ymm9, %ymm2
635 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1],ymm4[2,3,4,5,6,7]
636 ; AVX2-SLOW-NEXT:    vbroadcastf128 {{.*#+}} ymm4 = [0,3,1,7,0,3,1,7]
637 ; AVX2-SLOW-NEXT:    # ymm4 = mem[0,1,0,1]
638 ; AVX2-SLOW-NEXT:    vpermps %ymm0, %ymm4, %ymm0
639 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3,4],ymm0[5,6,7]
640 ; AVX2-SLOW-NEXT:    vmovaps %ymm3, (%rsi)
641 ; AVX2-SLOW-NEXT:    vmovaps %ymm7, (%rdx)
642 ; AVX2-SLOW-NEXT:    vmovaps %ymm10, (%rcx)
643 ; AVX2-SLOW-NEXT:    vmovaps %ymm11, (%r8)
644 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, (%r9)
645 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, (%rax)
646 ; AVX2-SLOW-NEXT:    vzeroupper
647 ; AVX2-SLOW-NEXT:    retq
649 ; AVX2-FAST-LABEL: load_i32_stride6_vf8:
650 ; AVX2-FAST:       # %bb.0:
651 ; AVX2-FAST-NEXT:    movq {{[0-9]+}}(%rsp), %rax
652 ; AVX2-FAST-NEXT:    vmovaps 128(%rdi), %ymm0
653 ; AVX2-FAST-NEXT:    vmovaps 160(%rdi), %ymm1
654 ; AVX2-FAST-NEXT:    vmovaps 96(%rdi), %ymm5
655 ; AVX2-FAST-NEXT:    vmovaps (%rdi), %ymm2
656 ; AVX2-FAST-NEXT:    vmovaps 32(%rdi), %ymm4
657 ; AVX2-FAST-NEXT:    vmovaps 64(%rdi), %ymm6
658 ; AVX2-FAST-NEXT:    vmovaps {{.*#+}} xmm3 = [0,6,4,u]
659 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm7 = ymm2[0,1,2,3],ymm4[4,5],ymm2[6,7]
660 ; AVX2-FAST-NEXT:    vpermps %ymm7, %ymm3, %ymm3
661 ; AVX2-FAST-NEXT:    vperm2f128 {{.*#+}} ymm8 = ymm6[0,1],ymm5[0,1]
662 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm9 = ymm8[0,1,2,3,4,5],ymm5[6,7]
663 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm8 = ymm9[0,2,2,2,4,6,6,6]
664 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2],ymm8[3,4,5,6,7]
665 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm10 = ymm1[0,1,2,3],ymm0[4,5,6,7]
666 ; AVX2-FAST-NEXT:    vbroadcastsd {{.*#+}} ymm8 = [4,2,4,2,4,2,4,2]
667 ; AVX2-FAST-NEXT:    vpermps %ymm10, %ymm8, %ymm11
668 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm11[6,7]
669 ; AVX2-FAST-NEXT:    vmovaps {{.*#+}} xmm11 = [1,7,5,u]
670 ; AVX2-FAST-NEXT:    vpermps %ymm7, %ymm11, %ymm7
671 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm9 = ymm9[1,3,2,3,5,7,6,7]
672 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2],ymm9[3,4,5,6,7]
673 ; AVX2-FAST-NEXT:    vbroadcastsd {{.*#+}} ymm9 = [5,3,5,3,5,3,5,3]
674 ; AVX2-FAST-NEXT:    vpermps %ymm10, %ymm9, %ymm10
675 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5],ymm10[6,7]
676 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm10 = ymm6[0,1],ymm5[2,3],ymm6[4,5],ymm5[6,7]
677 ; AVX2-FAST-NEXT:    vbroadcastsd {{.*#+}} ymm11 = [2,4,2,4,2,4,2,4]
678 ; AVX2-FAST-NEXT:    vpermps %ymm10, %ymm11, %ymm10
679 ; AVX2-FAST-NEXT:    vmovaps (%rdi), %xmm11
680 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm12 = xmm11[2,3,2,3]
681 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm13 = ymm4[0,0,2,3,4,4,6,7]
682 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0],ymm13[1,2,3],ymm12[4],ymm13[5,6,7]
683 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm12 = ymm12[0,3,2,3]
684 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm10 = ymm12[0,1,2],ymm10[3,4,5,6,7]
685 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm12 = ymm1[0,0,0,0,4,4,4,4]
686 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm13 = ymm0[0,0,2,3,4,4,6,7]
687 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm12 = ymm13[0,1,2],ymm12[3],ymm13[4,5,6],ymm12[7]
688 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm12 = ymm12[0,1,0,3]
689 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1,2,3,4],ymm12[5,6,7]
690 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm12 = ymm5[3,3,3,3,7,7,7,7]
691 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0],ymm6[1],ymm12[2,3,4],ymm6[5],ymm12[6,7]
692 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm12 = ymm12[0,2,0,3]
693 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm11 = xmm11[3,3,3,3]
694 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm13 = ymm4[0,1,3,3,4,5,7,7]
695 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0],ymm13[1,2,3],ymm11[4],ymm13[5,6,7]
696 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm11 = ymm11[0,3,2,3]
697 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1,2],ymm12[3,4,5,6,7]
698 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm12 = ymm1[0,1,0,1,4,5,4,5]
699 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm13 = ymm0[0,1,3,3,4,5,7,7]
700 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm12 = ymm13[0,1,2],ymm12[3],ymm13[4,5,6],ymm12[7]
701 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm12 = ymm12[0,1,0,3]
702 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1,2,3,4],ymm12[5,6,7]
703 ; AVX2-FAST-NEXT:    vmovaps 80(%rdi), %xmm12
704 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2,3],ymm5[4,5,6,7]
705 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm6 = ymm5[0,1],ymm12[2,3],ymm5[4,5,6,7]
706 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm6 = ymm6[0,1,0,2,4,5,4,6]
707 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3],ymm2[4,5,6,7]
708 ; AVX2-FAST-NEXT:    vpermps %ymm2, %ymm8, %ymm4
709 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1],ymm6[2,3,4,5,6,7]
710 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3],ymm1[4,5,6,7]
711 ; AVX2-FAST-NEXT:    vbroadcastf128 {{.*#+}} ymm1 = [0,2,0,6,0,2,0,6]
712 ; AVX2-FAST-NEXT:    # ymm1 = mem[0,1,0,1]
713 ; AVX2-FAST-NEXT:    vpermps %ymm0, %ymm1, %ymm1
714 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm4[0,1,2,3,4],ymm1[5,6,7]
715 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm4 = ymm5[1,1,1,1,5,5,5,5]
716 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2],ymm12[3],ymm4[4,5,6,7]
717 ; AVX2-FAST-NEXT:    vpermps %ymm2, %ymm9, %ymm2
718 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1],ymm4[2,3,4,5,6,7]
719 ; AVX2-FAST-NEXT:    vbroadcastf128 {{.*#+}} ymm4 = [0,3,1,7,0,3,1,7]
720 ; AVX2-FAST-NEXT:    # ymm4 = mem[0,1,0,1]
721 ; AVX2-FAST-NEXT:    vpermps %ymm0, %ymm4, %ymm0
722 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3,4],ymm0[5,6,7]
723 ; AVX2-FAST-NEXT:    vmovaps %ymm3, (%rsi)
724 ; AVX2-FAST-NEXT:    vmovaps %ymm7, (%rdx)
725 ; AVX2-FAST-NEXT:    vmovaps %ymm10, (%rcx)
726 ; AVX2-FAST-NEXT:    vmovaps %ymm11, (%r8)
727 ; AVX2-FAST-NEXT:    vmovaps %ymm1, (%r9)
728 ; AVX2-FAST-NEXT:    vmovaps %ymm0, (%rax)
729 ; AVX2-FAST-NEXT:    vzeroupper
730 ; AVX2-FAST-NEXT:    retq
732 ; AVX2-FAST-PERLANE-LABEL: load_i32_stride6_vf8:
733 ; AVX2-FAST-PERLANE:       # %bb.0:
734 ; AVX2-FAST-PERLANE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
735 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 128(%rdi), %ymm0
736 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 160(%rdi), %ymm1
737 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 96(%rdi), %ymm5
738 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%rdi), %ymm2
739 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 32(%rdi), %ymm4
740 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 64(%rdi), %ymm6
741 ; AVX2-FAST-PERLANE-NEXT:    vmovaps {{.*#+}} xmm3 = [0,6,4,u]
742 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm7 = ymm2[0,1,2,3],ymm4[4,5],ymm2[6,7]
743 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm7, %ymm3, %ymm3
744 ; AVX2-FAST-PERLANE-NEXT:    vperm2f128 {{.*#+}} ymm8 = ymm6[0,1],ymm5[0,1]
745 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm9 = ymm8[0,1,2,3,4,5],ymm5[6,7]
746 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm8 = ymm9[0,2,2,2,4,6,6,6]
747 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2],ymm8[3,4,5,6,7]
748 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm10 = ymm1[0,1,2,3],ymm0[4,5,6,7]
749 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastsd {{.*#+}} ymm8 = [4,2,4,2,4,2,4,2]
750 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm10, %ymm8, %ymm11
751 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm11[6,7]
752 ; AVX2-FAST-PERLANE-NEXT:    vmovaps {{.*#+}} xmm11 = [1,7,5,u]
753 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm7, %ymm11, %ymm7
754 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm9 = ymm9[1,3,2,3,5,7,6,7]
755 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2],ymm9[3,4,5,6,7]
756 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastsd {{.*#+}} ymm9 = [5,3,5,3,5,3,5,3]
757 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm10, %ymm9, %ymm10
758 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5],ymm10[6,7]
759 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm10 = ymm6[0,1],ymm5[2,3],ymm6[4,5],ymm5[6,7]
760 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm10 = ymm10[2,0,2,3,6,4,6,7]
761 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm10 = ymm10[0,2,0,3]
762 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%rdi), %xmm11
763 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm12 = xmm11[2,3,2,3]
764 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm13 = ymm4[0,0,2,3,4,4,6,7]
765 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0],ymm13[1,2,3],ymm12[4],ymm13[5,6,7]
766 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm12 = ymm12[0,3,2,3]
767 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm10 = ymm12[0,1,2],ymm10[3,4,5,6,7]
768 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm12 = ymm1[0,0,0,0,4,4,4,4]
769 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm13 = ymm0[0,0,2,3,4,4,6,7]
770 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm12 = ymm13[0,1,2],ymm12[3],ymm13[4,5,6],ymm12[7]
771 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm12 = ymm12[0,1,0,3]
772 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1,2,3,4],ymm12[5,6,7]
773 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm12 = ymm5[3,3,3,3,7,7,7,7]
774 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0],ymm6[1],ymm12[2,3,4],ymm6[5],ymm12[6,7]
775 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm12 = ymm12[0,2,0,3]
776 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm11 = xmm11[3,3,3,3]
777 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm13 = ymm4[0,1,3,3,4,5,7,7]
778 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0],ymm13[1,2,3],ymm11[4],ymm13[5,6,7]
779 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm11 = ymm11[0,3,2,3]
780 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1,2],ymm12[3,4,5,6,7]
781 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm12 = ymm1[0,1,0,1,4,5,4,5]
782 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm13 = ymm0[0,1,3,3,4,5,7,7]
783 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm12 = ymm13[0,1,2],ymm12[3],ymm13[4,5,6],ymm12[7]
784 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm12 = ymm12[0,1,0,3]
785 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1,2,3,4],ymm12[5,6,7]
786 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 80(%rdi), %xmm12
787 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2,3],ymm5[4,5,6,7]
788 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm6 = ymm5[0,1],ymm12[2,3],ymm5[4,5,6,7]
789 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm6 = ymm6[0,1,0,2,4,5,4,6]
790 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3],ymm2[4,5,6,7]
791 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm2, %ymm8, %ymm4
792 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1],ymm6[2,3,4,5,6,7]
793 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3],ymm1[4,5,6,7]
794 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastf128 {{.*#+}} ymm1 = [0,2,0,6,0,2,0,6]
795 ; AVX2-FAST-PERLANE-NEXT:    # ymm1 = mem[0,1,0,1]
796 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm0, %ymm1, %ymm1
797 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm4[0,1,2,3,4],ymm1[5,6,7]
798 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm4 = ymm5[1,1,1,1,5,5,5,5]
799 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2],ymm12[3],ymm4[4,5,6,7]
800 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm2, %ymm9, %ymm2
801 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1],ymm4[2,3,4,5,6,7]
802 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastf128 {{.*#+}} ymm4 = [0,3,1,7,0,3,1,7]
803 ; AVX2-FAST-PERLANE-NEXT:    # ymm4 = mem[0,1,0,1]
804 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm0, %ymm4, %ymm0
805 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3,4],ymm0[5,6,7]
806 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm3, (%rsi)
807 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm7, (%rdx)
808 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm10, (%rcx)
809 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm11, (%r8)
810 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, (%r9)
811 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, (%rax)
812 ; AVX2-FAST-PERLANE-NEXT:    vzeroupper
813 ; AVX2-FAST-PERLANE-NEXT:    retq
815 ; AVX512-LABEL: load_i32_stride6_vf8:
816 ; AVX512:       # %bb.0:
817 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax
818 ; AVX512-NEXT:    vmovdqa64 (%rdi), %zmm2
819 ; AVX512-NEXT:    vmovdqa64 64(%rdi), %zmm3
820 ; AVX512-NEXT:    vmovdqa 128(%rdi), %ymm0
821 ; AVX512-NEXT:    vmovdqa 160(%rdi), %ymm1
822 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm4 = ymm1[0,1,2,3],ymm0[4,5,6,7]
823 ; AVX512-NEXT:    vmovdqa {{.*#+}} ymm5 = [0,6,12,18,24,30,u,u]
824 ; AVX512-NEXT:    vpermi2d %zmm3, %zmm2, %zmm5
825 ; AVX512-NEXT:    vmovdqa {{.*#+}} ymm6 = [0,1,2,3,4,5,12,10]
826 ; AVX512-NEXT:    vpermi2d %ymm4, %ymm5, %ymm6
827 ; AVX512-NEXT:    vmovdqa {{.*#+}} ymm5 = [1,7,13,19,25,31,u,u]
828 ; AVX512-NEXT:    vpermi2d %zmm3, %zmm2, %zmm5
829 ; AVX512-NEXT:    vmovdqa {{.*#+}} ymm7 = [0,1,2,3,4,5,13,11]
830 ; AVX512-NEXT:    vpermi2d %ymm4, %ymm5, %ymm7
831 ; AVX512-NEXT:    vbroadcasti128 {{.*#+}} ymm4 = [0,0,6,12,0,0,6,12]
832 ; AVX512-NEXT:    # ymm4 = mem[0,1,0,1]
833 ; AVX512-NEXT:    vpermi2d %ymm1, %ymm0, %ymm4
834 ; AVX512-NEXT:    vmovdqa {{.*#+}} ymm5 = [2,8,14,20,26,u,u,u]
835 ; AVX512-NEXT:    vpermi2d %zmm3, %zmm2, %zmm5
836 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm4 = ymm5[0,1,2,3,4],ymm4[5,6,7]
837 ; AVX512-NEXT:    vbroadcasti128 {{.*#+}} ymm5 = [0,1,7,13,0,1,7,13]
838 ; AVX512-NEXT:    # ymm5 = mem[0,1,0,1]
839 ; AVX512-NEXT:    vpermi2d %ymm1, %ymm0, %ymm5
840 ; AVX512-NEXT:    vmovdqa {{.*#+}} ymm8 = [3,9,15,21,27,u,u,u]
841 ; AVX512-NEXT:    vpermi2d %zmm3, %zmm2, %zmm8
842 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm5 = ymm8[0,1,2,3,4],ymm5[5,6,7]
843 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3],ymm1[4,5,6,7]
844 ; AVX512-NEXT:    vmovdqa {{.*#+}} ymm1 = [20,26,0,6,12,u,u,u]
845 ; AVX512-NEXT:    vpermi2d %zmm2, %zmm3, %zmm1
846 ; AVX512-NEXT:    vmovdqa {{.*#+}} ymm8 = [0,1,2,3,4,10,8,14]
847 ; AVX512-NEXT:    vpermi2d %ymm0, %ymm1, %ymm8
848 ; AVX512-NEXT:    vmovdqa {{.*#+}} ymm1 = [21,27,1,7,13,u,u,u]
849 ; AVX512-NEXT:    vpermi2d %zmm2, %zmm3, %zmm1
850 ; AVX512-NEXT:    vmovdqa {{.*#+}} ymm2 = [0,1,2,3,4,11,9,15]
851 ; AVX512-NEXT:    vpermi2d %ymm0, %ymm1, %ymm2
852 ; AVX512-NEXT:    vmovdqa %ymm6, (%rsi)
853 ; AVX512-NEXT:    vmovdqa %ymm7, (%rdx)
854 ; AVX512-NEXT:    vmovdqa %ymm4, (%rcx)
855 ; AVX512-NEXT:    vmovdqa %ymm5, (%r8)
856 ; AVX512-NEXT:    vmovdqa %ymm8, (%r9)
857 ; AVX512-NEXT:    vmovdqa %ymm2, (%rax)
858 ; AVX512-NEXT:    vzeroupper
859 ; AVX512-NEXT:    retq
860   %wide.vec = load <48 x i32>, ptr %in.vec, align 64
861   %strided.vec0 = shufflevector <48 x i32> %wide.vec, <48 x i32> poison, <8 x i32> <i32 0, i32 6, i32 12, i32 18, i32 24, i32 30, i32 36, i32 42>
862   %strided.vec1 = shufflevector <48 x i32> %wide.vec, <48 x i32> poison, <8 x i32> <i32 1, i32 7, i32 13, i32 19, i32 25, i32 31, i32 37, i32 43>
863   %strided.vec2 = shufflevector <48 x i32> %wide.vec, <48 x i32> poison, <8 x i32> <i32 2, i32 8, i32 14, i32 20, i32 26, i32 32, i32 38, i32 44>
864   %strided.vec3 = shufflevector <48 x i32> %wide.vec, <48 x i32> poison, <8 x i32> <i32 3, i32 9, i32 15, i32 21, i32 27, i32 33, i32 39, i32 45>
865   %strided.vec4 = shufflevector <48 x i32> %wide.vec, <48 x i32> poison, <8 x i32> <i32 4, i32 10, i32 16, i32 22, i32 28, i32 34, i32 40, i32 46>
866   %strided.vec5 = shufflevector <48 x i32> %wide.vec, <48 x i32> poison, <8 x i32> <i32 5, i32 11, i32 17, i32 23, i32 29, i32 35, i32 41, i32 47>
867   store <8 x i32> %strided.vec0, ptr %out.vec0, align 64
868   store <8 x i32> %strided.vec1, ptr %out.vec1, align 64
869   store <8 x i32> %strided.vec2, ptr %out.vec2, align 64
870   store <8 x i32> %strided.vec3, ptr %out.vec3, align 64
871   store <8 x i32> %strided.vec4, ptr %out.vec4, align 64
872   store <8 x i32> %strided.vec5, ptr %out.vec5, align 64
873   ret void
876 define void @load_i32_stride6_vf16(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4, ptr %out.vec5) nounwind {
877 ; SSE-LABEL: load_i32_stride6_vf16:
878 ; SSE:       # %bb.0:
879 ; SSE-NEXT:    subq $408, %rsp # imm = 0x198
880 ; SSE-NEXT:    movdqa 240(%rdi), %xmm9
881 ; SSE-NEXT:    movdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
882 ; SSE-NEXT:    movdqa 256(%rdi), %xmm3
883 ; SSE-NEXT:    movdqa 192(%rdi), %xmm10
884 ; SSE-NEXT:    movdqa %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
885 ; SSE-NEXT:    movdqa 208(%rdi), %xmm4
886 ; SSE-NEXT:    movdqa 336(%rdi), %xmm14
887 ; SSE-NEXT:    movdqa %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
888 ; SSE-NEXT:    movdqa 352(%rdi), %xmm5
889 ; SSE-NEXT:    movdqa 288(%rdi), %xmm15
890 ; SSE-NEXT:    movdqa 304(%rdi), %xmm7
891 ; SSE-NEXT:    movdqa 64(%rdi), %xmm12
892 ; SSE-NEXT:    movdqa (%rdi), %xmm8
893 ; SSE-NEXT:    movdqa 16(%rdi), %xmm1
894 ; SSE-NEXT:    movdqa 48(%rdi), %xmm13
895 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm1[2,3,2,3]
896 ; SSE-NEXT:    movdqa %xmm1, %xmm11
897 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
898 ; SSE-NEXT:    movdqa %xmm8, %xmm1
899 ; SSE-NEXT:    movdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
900 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
901 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm12[2,2,3,3]
902 ; SSE-NEXT:    movdqa %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
903 ; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm13[0,0,1,1]
904 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]
905 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm1[0],xmm2[1]
906 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
907 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm7[2,3,2,3]
908 ; SSE-NEXT:    movdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
909 ; SSE-NEXT:    movdqa %xmm15, %xmm1
910 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
911 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm5[2,2,3,3]
912 ; SSE-NEXT:    movdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
913 ; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm14[0,0,1,1]
914 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]
915 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm1[0],xmm2[1]
916 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
917 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm4[2,3,2,3]
918 ; SSE-NEXT:    movdqa %xmm4, %xmm14
919 ; SSE-NEXT:    movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
920 ; SSE-NEXT:    movdqa %xmm10, %xmm1
921 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
922 ; SSE-NEXT:    movdqa %xmm3, %xmm2
923 ; SSE-NEXT:    movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
924 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm3[2,2,3,3]
925 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm9[0,0,1,1]
926 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm0[0],xmm3[1],xmm0[1]
927 ; SSE-NEXT:    movsd {{.*#+}} xmm3 = xmm1[0],xmm3[1]
928 ; SSE-NEXT:    movapd %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
929 ; SSE-NEXT:    movdqa 96(%rdi), %xmm4
930 ; SSE-NEXT:    movdqa 112(%rdi), %xmm1
931 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm1[2,3,2,3]
932 ; SSE-NEXT:    movdqa %xmm1, %xmm10
933 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
934 ; SSE-NEXT:    movdqa %xmm4, %xmm1
935 ; SSE-NEXT:    movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
936 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
937 ; SSE-NEXT:    movdqa 144(%rdi), %xmm9
938 ; SSE-NEXT:    movdqa 160(%rdi), %xmm3
939 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm3[2,2,3,3]
940 ; SSE-NEXT:    movdqa %xmm3, %xmm6
941 ; SSE-NEXT:    movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
942 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm9[0,0,1,1]
943 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm0[0],xmm3[1],xmm0[1]
944 ; SSE-NEXT:    movsd {{.*#+}} xmm3 = xmm1[0],xmm3[1]
945 ; SSE-NEXT:    movapd %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
946 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm8[1,1,1,1]
947 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm11[3,3,3,3]
948 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
949 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm12[2,3,2,3]
950 ; SSE-NEXT:    movdqa %xmm13, %xmm3
951 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]
952 ; SSE-NEXT:    movsd {{.*#+}} xmm3 = xmm0[0],xmm3[1]
953 ; SSE-NEXT:    movapd %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
954 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm15[1,1,1,1]
955 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm7[3,3,3,3]
956 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
957 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm5[2,3,2,3]
958 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
959 ; SSE-NEXT:    movdqa %xmm5, %xmm3
960 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]
961 ; SSE-NEXT:    movsd {{.*#+}} xmm3 = xmm0[0],xmm3[1]
962 ; SSE-NEXT:    movapd %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
963 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
964 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm7[1,1,1,1]
965 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm14[3,3,3,3]
966 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
967 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm2[2,3,2,3]
968 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
969 ; SSE-NEXT:    movdqa %xmm3, %xmm2
970 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
971 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm0[0],xmm2[1]
972 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
973 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm4[1,1,1,1]
974 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm10[3,3,3,3]
975 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
976 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm6[2,3,2,3]
977 ; SSE-NEXT:    movdqa %xmm9, %xmm14
978 ; SSE-NEXT:    movdqa %xmm9, %xmm2
979 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
980 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm0[0],xmm2[1]
981 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
982 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm13[2,2,3,3]
983 ; SSE-NEXT:    movdqa 80(%rdi), %xmm2
984 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm2[0,0,1,1]
985 ; SSE-NEXT:    movdqa %xmm2, %xmm10
986 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
987 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload
988 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm12[2,3,2,3]
989 ; SSE-NEXT:    movdqa 32(%rdi), %xmm6
990 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm6[0],xmm0[1],xmm6[1]
991 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
992 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
993 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm5[2,2,3,3]
994 ; SSE-NEXT:    movdqa 368(%rdi), %xmm0
995 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
996 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,1,1]
997 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
998 ; SSE-NEXT:    movdqa %xmm15, %xmm9
999 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm15[2,3,2,3]
1000 ; SSE-NEXT:    movdqa 320(%rdi), %xmm8
1001 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm8[0],xmm0[1],xmm8[1]
1002 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
1003 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1004 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm3[2,2,3,3]
1005 ; SSE-NEXT:    movdqa 272(%rdi), %xmm15
1006 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm15[0,0,1,1]
1007 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
1008 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm7[2,3,2,3]
1009 ; SSE-NEXT:    movdqa 224(%rdi), %xmm3
1010 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
1011 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
1012 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1013 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm14[2,2,3,3]
1014 ; SSE-NEXT:    movdqa 176(%rdi), %xmm11
1015 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm11[0,0,1,1]
1016 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
1017 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
1018 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm5[2,3,2,3]
1019 ; SSE-NEXT:    movdqa 128(%rdi), %xmm4
1020 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1]
1021 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
1022 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1023 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm12[3,3,3,3]
1024 ; SSE-NEXT:    movdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1025 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm6[1,1,1,1]
1026 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
1027 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm13[2,3,2,3]
1028 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1029 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
1030 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
1031 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1032 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm9[3,3,3,3]
1033 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm8[1,1,1,1]
1034 ; SSE-NEXT:    movdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1035 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
1036 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
1037 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
1038 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
1039 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
1040 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
1041 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1042 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm7[3,3,3,3]
1043 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm3[1,1,1,1]
1044 ; SSE-NEXT:    movdqa %xmm3, %xmm9
1045 ; SSE-NEXT:    movdqa %xmm3, (%rsp) # 16-byte Spill
1046 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
1047 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Folded Reload
1048 ; SSE-NEXT:    # xmm12 = mem[2,3,2,3]
1049 ; SSE-NEXT:    movdqa %xmm15, %xmm3
1050 ; SSE-NEXT:    movdqa %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1051 ; SSE-NEXT:    punpckldq {{.*#+}} xmm12 = xmm12[0],xmm15[0],xmm12[1],xmm15[1]
1052 ; SSE-NEXT:    movsd {{.*#+}} xmm12 = xmm0[0],xmm12[1]
1053 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm5[3,3,3,3]
1054 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm4[1,1,1,1]
1055 ; SSE-NEXT:    movdqa %xmm4, %xmm7
1056 ; SSE-NEXT:    movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1057 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
1058 ; SSE-NEXT:    pshufd {{.*#+}} xmm15 = xmm14[2,3,2,3]
1059 ; SSE-NEXT:    punpckldq {{.*#+}} xmm15 = xmm15[0],xmm11[0],xmm15[1],xmm11[1]
1060 ; SSE-NEXT:    movdqa %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1061 ; SSE-NEXT:    movsd {{.*#+}} xmm15 = xmm0[0],xmm15[1]
1062 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm6[2,3,2,3]
1063 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
1064 ; SSE-NEXT:    movdqa %xmm6, %xmm1
1065 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
1066 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm10[2,2,3,3]
1067 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
1068 ; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm10[0,0,1,1]
1069 ; SSE-NEXT:    punpckldq {{.*#+}} xmm5 = xmm5[0],xmm0[0],xmm5[1],xmm0[1]
1070 ; SSE-NEXT:    movsd {{.*#+}} xmm5 = xmm1[0],xmm5[1]
1071 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm8[2,3,2,3]
1072 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
1073 ; SSE-NEXT:    movdqa %xmm14, %xmm1
1074 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
1075 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm2[2,2,3,3]
1076 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
1077 ; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm8[0,0,1,1]
1078 ; SSE-NEXT:    punpckldq {{.*#+}} xmm4 = xmm4[0],xmm0[0],xmm4[1],xmm0[1]
1079 ; SSE-NEXT:    movsd {{.*#+}} xmm4 = xmm1[0],xmm4[1]
1080 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm9[2,3,2,3]
1081 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1082 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
1083 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm3[2,2,3,3]
1084 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload
1085 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm9[0,0,1,1]
1086 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]
1087 ; SSE-NEXT:    movsd {{.*#+}} xmm3 = xmm0[0],xmm3[1]
1088 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm7[2,3,2,3]
1089 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
1090 ; SSE-NEXT:    movdqa %xmm7, %xmm1
1091 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
1092 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm11[2,2,3,3]
1093 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload
1094 ; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm13[0,0,1,1]
1095 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]
1096 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm1[0],xmm2[1]
1097 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm6[1,1,1,1]
1098 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
1099 ; SSE-NEXT:    # xmm1 = mem[3,3,3,3]
1100 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
1101 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
1102 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
1103 ; SSE-NEXT:    punpckldq {{.*#+}} xmm10 = xmm10[0],xmm1[0],xmm10[1],xmm1[1]
1104 ; SSE-NEXT:    movsd {{.*#+}} xmm10 = xmm0[0],xmm10[1]
1105 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm14[1,1,1,1]
1106 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
1107 ; SSE-NEXT:    # xmm1 = mem[3,3,3,3]
1108 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
1109 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
1110 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
1111 ; SSE-NEXT:    punpckldq {{.*#+}} xmm8 = xmm8[0],xmm1[0],xmm8[1],xmm1[1]
1112 ; SSE-NEXT:    movsd {{.*#+}} xmm8 = xmm0[0],xmm8[1]
1113 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
1114 ; SSE-NEXT:    # xmm0 = mem[1,1,1,1]
1115 ; SSE-NEXT:    pshufd $255, (%rsp), %xmm1 # 16-byte Folded Reload
1116 ; SSE-NEXT:    # xmm1 = mem[3,3,3,3]
1117 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
1118 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
1119 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
1120 ; SSE-NEXT:    punpckldq {{.*#+}} xmm9 = xmm9[0],xmm1[0],xmm9[1],xmm1[1]
1121 ; SSE-NEXT:    movsd {{.*#+}} xmm9 = xmm0[0],xmm9[1]
1122 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm7[1,1,1,1]
1123 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
1124 ; SSE-NEXT:    # xmm1 = mem[3,3,3,3]
1125 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
1126 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
1127 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
1128 ; SSE-NEXT:    punpckldq {{.*#+}} xmm13 = xmm13[0],xmm1[0],xmm13[1],xmm1[1]
1129 ; SSE-NEXT:    movsd {{.*#+}} xmm13 = xmm0[0],xmm13[1]
1130 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1131 ; SSE-NEXT:    movaps %xmm0, 16(%rsi)
1132 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1133 ; SSE-NEXT:    movaps %xmm0, 32(%rsi)
1134 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1135 ; SSE-NEXT:    movaps %xmm0, 48(%rsi)
1136 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1137 ; SSE-NEXT:    movaps %xmm0, (%rsi)
1138 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1139 ; SSE-NEXT:    movaps %xmm0, 16(%rdx)
1140 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1141 ; SSE-NEXT:    movaps %xmm0, 32(%rdx)
1142 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1143 ; SSE-NEXT:    movaps %xmm0, 48(%rdx)
1144 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1145 ; SSE-NEXT:    movaps %xmm0, (%rdx)
1146 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1147 ; SSE-NEXT:    movaps %xmm0, 16(%rcx)
1148 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1149 ; SSE-NEXT:    movaps %xmm0, 32(%rcx)
1150 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1151 ; SSE-NEXT:    movaps %xmm0, 48(%rcx)
1152 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1153 ; SSE-NEXT:    movaps %xmm0, (%rcx)
1154 ; SSE-NEXT:    movapd %xmm15, 16(%r8)
1155 ; SSE-NEXT:    movapd %xmm12, 32(%r8)
1156 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1157 ; SSE-NEXT:    movaps %xmm0, 48(%r8)
1158 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1159 ; SSE-NEXT:    movaps %xmm0, (%r8)
1160 ; SSE-NEXT:    movapd %xmm2, 16(%r9)
1161 ; SSE-NEXT:    movapd %xmm3, 32(%r9)
1162 ; SSE-NEXT:    movapd %xmm4, 48(%r9)
1163 ; SSE-NEXT:    movapd %xmm5, (%r9)
1164 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1165 ; SSE-NEXT:    movapd %xmm13, 16(%rax)
1166 ; SSE-NEXT:    movapd %xmm9, 32(%rax)
1167 ; SSE-NEXT:    movapd %xmm8, 48(%rax)
1168 ; SSE-NEXT:    movapd %xmm10, (%rax)
1169 ; SSE-NEXT:    addq $408, %rsp # imm = 0x198
1170 ; SSE-NEXT:    retq
1172 ; AVX1-ONLY-LABEL: load_i32_stride6_vf16:
1173 ; AVX1-ONLY:       # %bb.0:
1174 ; AVX1-ONLY-NEXT:    subq $328, %rsp # imm = 0x148
1175 ; AVX1-ONLY-NEXT:    vmovaps 224(%rdi), %ymm12
1176 ; AVX1-ONLY-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1177 ; AVX1-ONLY-NEXT:    vmovaps 288(%rdi), %ymm10
1178 ; AVX1-ONLY-NEXT:    vmovaps 256(%rdi), %ymm4
1179 ; AVX1-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1180 ; AVX1-ONLY-NEXT:    vmovapd 160(%rdi), %ymm1
1181 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1182 ; AVX1-ONLY-NEXT:    vmovapd 128(%rdi), %ymm13
1183 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %ymm6
1184 ; AVX1-ONLY-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1185 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %ymm14
1186 ; AVX1-ONLY-NEXT:    vmovaps 96(%rdi), %ymm3
1187 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdi), %ymm0
1188 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1189 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 96(%rdi), %ymm0, %ymm2
1190 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm5 = ymm3[2,0],ymm2[0,0],ymm3[6,4],ymm2[4,4]
1191 ; AVX1-ONLY-NEXT:    vmovaps %ymm3, %ymm9
1192 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm5 = ymm5[2,0],ymm2[2,2],ymm5[6,4],ymm2[6,6]
1193 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm6 = ymm14[0,1,2,3],ymm6[4,5],ymm14[6,7]
1194 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm6, %xmm7
1195 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm11 = xmm6[0,1],xmm7[2,3]
1196 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm11 = xmm11[0,2],xmm7[0,3]
1197 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm11[0,1,2],ymm5[3,4,5,6,7]
1198 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm8 = ymm13[2,3],ymm1[0,1]
1199 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm11 = ymm8[0],ymm13[0],ymm8[3],ymm13[2]
1200 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm11 = ymm11[0,1,2,0,4,5,6,4]
1201 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm5[0,1,2,3,4,5],ymm11[6,7]
1202 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1203 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 288(%rdi), %ymm4, %ymm1
1204 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm5 = ymm10[2,0],ymm1[0,0],ymm10[6,4],ymm1[4,4]
1205 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm5 = ymm5[2,0],ymm1[2,2],ymm5[6,4],ymm1[6,6]
1206 ; AVX1-ONLY-NEXT:    vmovaps 192(%rdi), %ymm15
1207 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm3 = ymm15[0,1,2,3],ymm12[4,5],ymm15[6,7]
1208 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm3, %xmm0
1209 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm11 = xmm3[0,1],xmm0[2,3]
1210 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm11 = xmm11[0,2],xmm0[0,3]
1211 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm11[0,1,2],ymm5[3,4,5,6,7]
1212 ; AVX1-ONLY-NEXT:    vmovapd 352(%rdi), %ymm4
1213 ; AVX1-ONLY-NEXT:    vmovupd %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1214 ; AVX1-ONLY-NEXT:    vmovapd 320(%rdi), %ymm12
1215 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm4 = ymm12[2,3],ymm4[0,1]
1216 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm11 = ymm4[0],ymm12[0],ymm4[3],ymm12[2]
1217 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm11 = ymm11[0,1,2,0,4,5,6,4]
1218 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],ymm11[6,7]
1219 ; AVX1-ONLY-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1220 ; AVX1-ONLY-NEXT:    vmovups %ymm9, (%rsp) # 32-byte Spill
1221 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm11 = ymm9[3,0],ymm2[1,0],ymm9[7,4],ymm2[5,4]
1222 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm11[2,0],ymm2[2,3],ymm11[6,4],ymm2[6,7]
1223 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm6 = xmm6[1,0],xmm7[3,0]
1224 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm6 = xmm6[0,2],xmm7[1,3]
1225 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm6[0,1,2],ymm2[3,4,5,6,7]
1226 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm6 = ymm8[3,1],ymm13[1,3],ymm8[7,5],ymm13[5,7]
1227 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm6 = ymm6[0,1,2,0,4,5,6,4]
1228 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm6[6,7]
1229 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1230 ; AVX1-ONLY-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1231 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm10[3,0],ymm1[1,0],ymm10[7,4],ymm1[5,4]
1232 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm2[2,0],ymm1[2,3],ymm2[6,4],ymm1[6,7]
1233 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm3[1,0],xmm0[3,0]
1234 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm2[0,2],xmm0[1,3]
1235 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
1236 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm4[3,1],ymm12[1,3],ymm4[7,5],ymm12[5,7]
1237 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,1,2,0,4,5,6,4]
1238 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
1239 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1240 ; AVX1-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm2 # 32-byte Folded Reload
1241 ; AVX1-ONLY-NEXT:    # ymm2 = mem[0,1],ymm14[2,3],mem[4,5,6,7]
1242 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
1243 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm9[2,1],ymm7[2,0],ymm9[6,5],ymm7[6,4]
1244 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm1[2,3,0,1]
1245 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm2, %xmm5
1246 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm3 = xmm2[2,0],xmm5[2,3]
1247 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2],ymm1[3,4,5,6,7]
1248 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
1249 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm13[0,1,2,3],ymm9[4,5],ymm13[6,7]
1250 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm8 = ymm4[2,3,0,1]
1251 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm3 = ymm8[0,0],ymm4[2,0],ymm8[4,4],ymm4[6,4]
1252 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4],ymm3[5,6,7]
1253 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1254 ; AVX1-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm11 # 32-byte Folded Reload
1255 ; AVX1-ONLY-NEXT:    # ymm11 = mem[0,1],ymm15[2,3],mem[4,5,6,7]
1256 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1257 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm10[2,1],ymm3[2,0],ymm10[6,5],ymm3[6,4]
1258 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm1[2,3,0,1]
1259 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm11, %xmm15
1260 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm14 = xmm11[2,0],xmm15[2,3]
1261 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm14[0,1,2],ymm1[3,4,5,6,7]
1262 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
1263 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm14 = ymm12[0,1,2,3],ymm10[4,5],ymm12[6,7]
1264 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm14[2,3,0,1]
1265 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm6 = ymm0[0,0],ymm14[2,0],ymm0[4,4],ymm14[6,4]
1266 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm6[5,6,7]
1267 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1268 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm4 = ymm8[0,1],ymm4[3,1],ymm8[4,5],ymm4[7,5]
1269 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[3,1],xmm5[3,3]
1270 ; AVX1-ONLY-NEXT:    vmovaps %ymm7, %ymm1
1271 ; AVX1-ONLY-NEXT:    vmovups (%rsp), %ymm7 # 32-byte Reload
1272 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm5 = ymm7[3,1],ymm1[2,1],ymm7[7,5],ymm1[6,5]
1273 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm5 = ymm5[2,3,0,1]
1274 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2],ymm5[3,4,5,6,7]
1275 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm4[5,6,7]
1276 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1277 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[0,1],ymm14[3,1],ymm0[4,5],ymm14[7,5]
1278 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm11[3,1],xmm15[3,3]
1279 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
1280 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm5 = ymm4[3,1],ymm3[2,1],ymm4[7,5],ymm3[6,5]
1281 ; AVX1-ONLY-NEXT:    vmovaps %ymm3, %ymm15
1282 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm5 = ymm5[2,3,0,1]
1283 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2],ymm5[3,4,5,6,7]
1284 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3,4],ymm0[5,6,7]
1285 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1286 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1],ymm13[2,3],ymm9[4,5,6,7]
1287 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %xmm3
1288 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm3[2,2,3,3]
1289 ; AVX1-ONLY-NEXT:    vmovaps 16(%rdi), %xmm5
1290 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm5[0],xmm2[1],xmm5[2,3]
1291 ; AVX1-ONLY-NEXT:    vmovapd 80(%rdi), %xmm6
1292 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm8 = ymm6[1],ymm1[0],ymm6[2],ymm1[2]
1293 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm8 = ymm7[0,1],ymm8[2,0],ymm7[4,5],ymm8[6,4]
1294 ; AVX1-ONLY-NEXT:    vmovaps %ymm7, %ymm13
1295 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1],ymm8[2,3,4,5,6,7]
1296 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm8 = ymm9[2,3,0,1]
1297 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm11 = ymm9[2,0],ymm8[0,0],ymm9[6,4],ymm8[4,4]
1298 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm11 = ymm8[0,2],ymm11[2,0],ymm8[4,6],ymm11[6,4]
1299 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm11[5,6,7]
1300 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm11 = ymm10[0,1],ymm12[2,3],ymm10[4,5,6,7]
1301 ; AVX1-ONLY-NEXT:    vmovaps 224(%rdi), %xmm12
1302 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm14 = xmm12[2,2,3,3]
1303 ; AVX1-ONLY-NEXT:    vmovaps 208(%rdi), %xmm0
1304 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm14 = xmm0[0],xmm14[1],xmm0[2,3]
1305 ; AVX1-ONLY-NEXT:    vmovapd 272(%rdi), %xmm1
1306 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm7 = ymm1[1],ymm15[0],ymm1[2],ymm15[2]
1307 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm7 = ymm4[0,1],ymm7[2,0],ymm4[4,5],ymm7[6,4]
1308 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, %ymm10
1309 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm7 = ymm14[0,1],ymm7[2,3,4,5,6,7]
1310 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm14 = ymm11[2,3,0,1]
1311 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm4 = ymm11[2,0],ymm14[0,0],ymm11[6,4],ymm14[4,4]
1312 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm4 = ymm14[0,2],ymm4[2,0],ymm14[4,6],ymm4[6,4]
1313 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm7[0,1,2,3,4],ymm4[5,6,7]
1314 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm7 = ymm9[3,0],ymm8[1,0],ymm9[7,4],ymm8[5,4]
1315 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm7 = ymm8[0,3],ymm7[2,0],ymm8[4,7],ymm7[6,4]
1316 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm3 = xmm5[0,1],xmm3[2,3]
1317 ; AVX1-ONLY-NEXT:    vshufps $215, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm5 # 32-byte Folded Reload
1318 ; AVX1-ONLY-NEXT:    # ymm5 = ymm6[3,1],mem[1,3],ymm6[7,5],mem[5,7]
1319 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm5 = ymm13[1,1],ymm5[2,0],ymm13[5,5],ymm5[6,4]
1320 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm3 = xmm3[1,3,2,3]
1321 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1],ymm5[2,3,4,5,6,7]
1322 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4],ymm7[5,6,7]
1323 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm5 = ymm11[3,0],ymm14[1,0],ymm11[7,4],ymm14[5,4]
1324 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm5 = ymm14[0,3],ymm5[2,0],ymm14[4,7],ymm5[6,4]
1325 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm12[2,3]
1326 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[3,1],ymm15[1,3],ymm1[7,5],ymm15[5,7]
1327 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm10[1,1],ymm1[2,0],ymm10[5,5],ymm1[6,4]
1328 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[1,3,2,3]
1329 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3,4,5,6,7]
1330 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm5[5,6,7]
1331 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
1332 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 32(%rsi)
1333 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
1334 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, (%rsi)
1335 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
1336 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 32(%rdx)
1337 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
1338 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, (%rdx)
1339 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
1340 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 32(%rcx)
1341 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
1342 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, (%rcx)
1343 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
1344 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 32(%r8)
1345 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
1346 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, (%r8)
1347 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, 32(%r9)
1348 ; AVX1-ONLY-NEXT:    vmovaps %ymm2, (%r9)
1349 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1350 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 32(%rax)
1351 ; AVX1-ONLY-NEXT:    vmovaps %ymm3, (%rax)
1352 ; AVX1-ONLY-NEXT:    addq $328, %rsp # imm = 0x148
1353 ; AVX1-ONLY-NEXT:    vzeroupper
1354 ; AVX1-ONLY-NEXT:    retq
1356 ; AVX2-SLOW-LABEL: load_i32_stride6_vf16:
1357 ; AVX2-SLOW:       # %bb.0:
1358 ; AVX2-SLOW-NEXT:    subq $360, %rsp # imm = 0x168
1359 ; AVX2-SLOW-NEXT:    vmovaps 288(%rdi), %ymm8
1360 ; AVX2-SLOW-NEXT:    vmovaps 224(%rdi), %ymm11
1361 ; AVX2-SLOW-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1362 ; AVX2-SLOW-NEXT:    vmovaps 192(%rdi), %ymm1
1363 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1364 ; AVX2-SLOW-NEXT:    vmovaps 128(%rdi), %ymm0
1365 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1366 ; AVX2-SLOW-NEXT:    vmovaps 160(%rdi), %ymm2
1367 ; AVX2-SLOW-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1368 ; AVX2-SLOW-NEXT:    vmovaps 96(%rdi), %ymm15
1369 ; AVX2-SLOW-NEXT:    vmovaps (%rdi), %ymm3
1370 ; AVX2-SLOW-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1371 ; AVX2-SLOW-NEXT:    vmovaps 32(%rdi), %ymm13
1372 ; AVX2-SLOW-NEXT:    vmovaps 64(%rdi), %ymm6
1373 ; AVX2-SLOW-NEXT:    vmovaps {{.*#+}} xmm14 = [0,6,4,u]
1374 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm4 = ymm3[0,1,2,3],ymm13[4,5],ymm3[6,7]
1375 ; AVX2-SLOW-NEXT:    vpermps %ymm4, %ymm14, %ymm3
1376 ; AVX2-SLOW-NEXT:    vperm2f128 {{.*#+}} ymm7 = ymm6[0,1],ymm15[0,1]
1377 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm9 = ymm7[0,1,2,3,4,5],ymm15[6,7]
1378 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm7 = ymm9[0,2,2,2,4,6,6,6]
1379 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2],ymm7[3,4,5,6,7]
1380 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm10 = ymm2[0,1,2,3],ymm0[4,5,6,7]
1381 ; AVX2-SLOW-NEXT:    vbroadcastsd {{.*#+}} ymm0 = [4,2,4,2,4,2,4,2]
1382 ; AVX2-SLOW-NEXT:    vpermps %ymm10, %ymm0, %ymm12
1383 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, %ymm5
1384 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1385 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm12[6,7]
1386 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1387 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm3 = ymm1[0,1,2,3],ymm11[4,5],ymm1[6,7]
1388 ; AVX2-SLOW-NEXT:    vpermps %ymm3, %ymm14, %ymm12
1389 ; AVX2-SLOW-NEXT:    vmovaps 256(%rdi), %ymm7
1390 ; AVX2-SLOW-NEXT:    vperm2f128 {{.*#+}} ymm14 = ymm7[0,1],ymm8[0,1]
1391 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm14[0,1,2,3,4,5],ymm8[6,7]
1392 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm14 = ymm1[0,2,2,2,4,6,6,6]
1393 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm12[0,1,2],ymm14[3,4,5,6,7]
1394 ; AVX2-SLOW-NEXT:    vmovaps 320(%rdi), %ymm12
1395 ; AVX2-SLOW-NEXT:    vmovaps 352(%rdi), %ymm14
1396 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm14[0,1,2,3],ymm12[4,5,6,7]
1397 ; AVX2-SLOW-NEXT:    vpermps %ymm0, %ymm5, %ymm11
1398 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm11[6,7]
1399 ; AVX2-SLOW-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1400 ; AVX2-SLOW-NEXT:    vmovaps {{.*#+}} xmm2 = [1,7,5,u]
1401 ; AVX2-SLOW-NEXT:    vpermps %ymm4, %ymm2, %ymm4
1402 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm9 = ymm9[1,3,2,3,5,7,6,7]
1403 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2],ymm9[3,4,5,6,7]
1404 ; AVX2-SLOW-NEXT:    vbroadcastsd {{.*#+}} ymm5 = [5,3,5,3,5,3,5,3]
1405 ; AVX2-SLOW-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1406 ; AVX2-SLOW-NEXT:    vpermps %ymm10, %ymm5, %ymm10
1407 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],ymm10[6,7]
1408 ; AVX2-SLOW-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1409 ; AVX2-SLOW-NEXT:    vpermps %ymm3, %ymm2, %ymm2
1410 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[1,3,2,3,5,7,6,7]
1411 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7]
1412 ; AVX2-SLOW-NEXT:    vpermps %ymm0, %ymm5, %ymm0
1413 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
1414 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1415 ; AVX2-SLOW-NEXT:    vmovaps (%rdi), %xmm5
1416 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm0 = xmm5[2,3,2,3]
1417 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm13[0,0,2,3,4,4,6,7]
1418 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3],ymm0[4],ymm1[5,6,7]
1419 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm6[0,1],ymm15[2,3],ymm6[4,5],ymm15[6,7]
1420 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[2,0,2,3,6,4,6,7]
1421 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,0,3]
1422 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,3,2,3]
1423 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
1424 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
1425 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm10[0,0,0,0,4,4,4,4]
1426 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
1427 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm2 = ymm4[0,0,2,3,4,4,6,7]
1428 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]
1429 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,1,0,3]
1430 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
1431 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1432 ; AVX2-SLOW-NEXT:    vmovaps 192(%rdi), %xmm0
1433 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm1 = xmm0[2,3,2,3]
1434 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
1435 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm2 = ymm9[0,0,2,3,4,4,6,7]
1436 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm2[1,2,3],ymm1[4],ymm2[5,6,7]
1437 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm7[0,1],ymm8[2,3],ymm7[4,5],ymm8[6,7]
1438 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[2,0,2,3,6,4,6,7]
1439 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,2,0,3]
1440 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,3,2,3]
1441 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
1442 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm2 = ymm14[0,0,0,0,4,4,4,4]
1443 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm3 = ymm12[0,0,2,3,4,4,6,7]
1444 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2],ymm2[3],ymm3[4,5,6],ymm2[7]
1445 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,1,0,3]
1446 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
1447 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1448 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm1 = xmm5[3,3,3,3]
1449 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm2 = ymm13[0,1,3,3,4,5,7,7]
1450 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm2[1,2,3],ymm1[4],ymm2[5,6,7]
1451 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm2 = ymm15[3,3,3,3,7,7,7,7]
1452 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0],ymm6[1],ymm2[2,3,4],ymm6[5],ymm2[6,7]
1453 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,2,0,3]
1454 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,3,2,3]
1455 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
1456 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm2 = ymm10[0,1,0,1,4,5,4,5]
1457 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm3 = ymm4[0,1,3,3,4,5,7,7]
1458 ; AVX2-SLOW-NEXT:    vmovaps %ymm4, %ymm5
1459 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2],ymm2[3],ymm3[4,5,6],ymm2[7]
1460 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,1,0,3]
1461 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
1462 ; AVX2-SLOW-NEXT:    vmovups %ymm1, (%rsp) # 32-byte Spill
1463 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[3,3,3,3]
1464 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm9[0,1,3,3,4,5,7,7]
1465 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3],ymm0[4],ymm1[5,6,7]
1466 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm8[3,3,3,3,7,7,7,7]
1467 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm7[1],ymm1[2,3,4],ymm7[5],ymm1[6,7]
1468 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,0,3]
1469 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,3,2,3]
1470 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
1471 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm14[0,1,0,1,4,5,4,5]
1472 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm2 = ymm12[0,1,3,3,4,5,7,7]
1473 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]
1474 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,1,0,3]
1475 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
1476 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1477 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm4 = ymm6[0,1,2,3],ymm15[4,5,6,7]
1478 ; AVX2-SLOW-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm2 # 32-byte Folded Reload
1479 ; AVX2-SLOW-NEXT:    # ymm2 = ymm13[0,1,2,3],mem[4,5,6,7]
1480 ; AVX2-SLOW-NEXT:    vmovaps 80(%rdi), %xmm3
1481 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm4[0,1],ymm3[2,3],ymm4[4,5,6,7]
1482 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,1,0,2,4,5,4,6]
1483 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1484 ; AVX2-SLOW-NEXT:    vpermps %ymm2, %ymm0, %ymm6
1485 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm6[0,1],ymm1[2,3,4,5,6,7]
1486 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm6 = ymm10[0,1],ymm5[2,3],ymm10[4,5,6,7]
1487 ; AVX2-SLOW-NEXT:    vbroadcastf128 {{.*#+}} ymm11 = [0,2,0,6,0,2,0,6]
1488 ; AVX2-SLOW-NEXT:    # ymm11 = mem[0,1,0,1]
1489 ; AVX2-SLOW-NEXT:    vpermps %ymm6, %ymm11, %ymm13
1490 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm13[5,6,7]
1491 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm5 = ymm7[0,1,2,3],ymm8[4,5,6,7]
1492 ; AVX2-SLOW-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm7 # 32-byte Folded Reload
1493 ; AVX2-SLOW-NEXT:    # ymm7 = ymm9[0,1,2,3],mem[4,5,6,7]
1494 ; AVX2-SLOW-NEXT:    vmovaps 272(%rdi), %xmm13
1495 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm15 = ymm5[0,1],ymm13[2,3],ymm5[4,5,6,7]
1496 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm15 = ymm15[0,1,0,2,4,5,4,6]
1497 ; AVX2-SLOW-NEXT:    vpermps %ymm7, %ymm0, %ymm8
1498 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1],ymm15[2,3,4,5,6,7]
1499 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm12 = ymm14[0,1],ymm12[2,3],ymm14[4,5,6,7]
1500 ; AVX2-SLOW-NEXT:    vpermps %ymm12, %ymm11, %ymm11
1501 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3,4],ymm11[5,6,7]
1502 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm0 = ymm4[1,1,1,1,5,5,5,5]
1503 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm3[3],ymm0[4,5,6,7]
1504 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
1505 ; AVX2-SLOW-NEXT:    vpermps %ymm2, %ymm4, %ymm2
1506 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,3,4,5,6,7]
1507 ; AVX2-SLOW-NEXT:    vbroadcastf128 {{.*#+}} ymm2 = [0,3,1,7,0,3,1,7]
1508 ; AVX2-SLOW-NEXT:    # ymm2 = mem[0,1,0,1]
1509 ; AVX2-SLOW-NEXT:    vpermps %ymm6, %ymm2, %ymm3
1510 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm3[5,6,7]
1511 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm3 = ymm5[1,1,1,1,5,5,5,5]
1512 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2],ymm13[3],ymm3[4,5,6,7]
1513 ; AVX2-SLOW-NEXT:    vpermps %ymm7, %ymm4, %ymm5
1514 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm3 = ymm5[0,1],ymm3[2,3,4,5,6,7]
1515 ; AVX2-SLOW-NEXT:    vpermps %ymm12, %ymm2, %ymm2
1516 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3,4],ymm2[5,6,7]
1517 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1518 ; AVX2-SLOW-NEXT:    vmovaps %ymm3, 32(%rsi)
1519 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1520 ; AVX2-SLOW-NEXT:    vmovaps %ymm3, (%rsi)
1521 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1522 ; AVX2-SLOW-NEXT:    vmovaps %ymm3, 32(%rdx)
1523 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1524 ; AVX2-SLOW-NEXT:    vmovaps %ymm3, (%rdx)
1525 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1526 ; AVX2-SLOW-NEXT:    vmovaps %ymm3, 32(%rcx)
1527 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1528 ; AVX2-SLOW-NEXT:    vmovaps %ymm3, (%rcx)
1529 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1530 ; AVX2-SLOW-NEXT:    vmovaps %ymm3, 32(%r8)
1531 ; AVX2-SLOW-NEXT:    vmovups (%rsp), %ymm3 # 32-byte Reload
1532 ; AVX2-SLOW-NEXT:    vmovaps %ymm3, (%r8)
1533 ; AVX2-SLOW-NEXT:    vmovaps %ymm8, 32(%r9)
1534 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, (%r9)
1535 ; AVX2-SLOW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1536 ; AVX2-SLOW-NEXT:    vmovaps %ymm2, 32(%rax)
1537 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, (%rax)
1538 ; AVX2-SLOW-NEXT:    addq $360, %rsp # imm = 0x168
1539 ; AVX2-SLOW-NEXT:    vzeroupper
1540 ; AVX2-SLOW-NEXT:    retq
1542 ; AVX2-FAST-LABEL: load_i32_stride6_vf16:
1543 ; AVX2-FAST:       # %bb.0:
1544 ; AVX2-FAST-NEXT:    subq $328, %rsp # imm = 0x148
1545 ; AVX2-FAST-NEXT:    vmovaps 288(%rdi), %ymm10
1546 ; AVX2-FAST-NEXT:    vmovaps 224(%rdi), %ymm14
1547 ; AVX2-FAST-NEXT:    vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1548 ; AVX2-FAST-NEXT:    vmovaps 192(%rdi), %ymm11
1549 ; AVX2-FAST-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1550 ; AVX2-FAST-NEXT:    vmovaps 128(%rdi), %ymm1
1551 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1552 ; AVX2-FAST-NEXT:    vmovaps 160(%rdi), %ymm2
1553 ; AVX2-FAST-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1554 ; AVX2-FAST-NEXT:    vmovaps 96(%rdi), %ymm15
1555 ; AVX2-FAST-NEXT:    vmovaps (%rdi), %ymm3
1556 ; AVX2-FAST-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1557 ; AVX2-FAST-NEXT:    vmovaps 32(%rdi), %ymm13
1558 ; AVX2-FAST-NEXT:    vmovaps 64(%rdi), %ymm6
1559 ; AVX2-FAST-NEXT:    vmovaps {{.*#+}} xmm0 = [0,6,4,u]
1560 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm4 = ymm3[0,1,2,3],ymm13[4,5],ymm3[6,7]
1561 ; AVX2-FAST-NEXT:    vpermps %ymm4, %ymm0, %ymm7
1562 ; AVX2-FAST-NEXT:    vperm2f128 {{.*#+}} ymm8 = ymm6[0,1],ymm15[0,1]
1563 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],ymm15[6,7]
1564 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm9 = ymm8[0,2,2,2,4,6,6,6]
1565 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm9 = ymm7[0,1,2],ymm9[3,4,5,6,7]
1566 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm3 = ymm2[0,1,2,3],ymm1[4,5,6,7]
1567 ; AVX2-FAST-NEXT:    vbroadcastsd {{.*#+}} ymm1 = [4,2,4,2,4,2,4,2]
1568 ; AVX2-FAST-NEXT:    vpermps %ymm3, %ymm1, %ymm12
1569 ; AVX2-FAST-NEXT:    vmovaps %ymm1, %ymm5
1570 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1571 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm9[0,1,2,3,4,5],ymm12[6,7]
1572 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1573 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm11[0,1,2,3],ymm14[4,5],ymm11[6,7]
1574 ; AVX2-FAST-NEXT:    vpermps %ymm2, %ymm0, %ymm9
1575 ; AVX2-FAST-NEXT:    vmovaps 256(%rdi), %ymm7
1576 ; AVX2-FAST-NEXT:    vperm2f128 {{.*#+}} ymm12 = ymm7[0,1],ymm10[0,1]
1577 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm12[0,1,2,3,4,5],ymm10[6,7]
1578 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm12 = ymm1[0,2,2,2,4,6,6,6]
1579 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2],ymm12[3,4,5,6,7]
1580 ; AVX2-FAST-NEXT:    vmovaps 320(%rdi), %ymm12
1581 ; AVX2-FAST-NEXT:    vmovaps 352(%rdi), %ymm14
1582 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm14[0,1,2,3],ymm12[4,5,6,7]
1583 ; AVX2-FAST-NEXT:    vpermps %ymm0, %ymm5, %ymm11
1584 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5],ymm11[6,7]
1585 ; AVX2-FAST-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1586 ; AVX2-FAST-NEXT:    vmovaps {{.*#+}} xmm11 = [1,7,5,u]
1587 ; AVX2-FAST-NEXT:    vpermps %ymm4, %ymm11, %ymm4
1588 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm8 = ymm8[1,3,2,3,5,7,6,7]
1589 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2],ymm8[3,4,5,6,7]
1590 ; AVX2-FAST-NEXT:    vbroadcastsd {{.*#+}} ymm9 = [5,3,5,3,5,3,5,3]
1591 ; AVX2-FAST-NEXT:    vpermps %ymm3, %ymm9, %ymm3
1592 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3,4,5],ymm3[6,7]
1593 ; AVX2-FAST-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1594 ; AVX2-FAST-NEXT:    vpermps %ymm2, %ymm11, %ymm2
1595 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[1,3,2,3,5,7,6,7]
1596 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7]
1597 ; AVX2-FAST-NEXT:    vpermps %ymm0, %ymm9, %ymm0
1598 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
1599 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1600 ; AVX2-FAST-NEXT:    vmovaps (%rdi), %xmm0
1601 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm1 = xmm0[2,3,2,3]
1602 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm2 = ymm13[0,0,2,3,4,4,6,7]
1603 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm2[1,2,3],ymm1[4],ymm2[5,6,7]
1604 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm6[0,1],ymm15[2,3],ymm6[4,5],ymm15[6,7]
1605 ; AVX2-FAST-NEXT:    vmovaps {{.*#+}} ymm3 = [2,0,6,4,2,0,6,7]
1606 ; AVX2-FAST-NEXT:    vpermps %ymm2, %ymm3, %ymm2
1607 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,3,2,3]
1608 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
1609 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
1610 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm2 = ymm8[0,0,0,0,4,4,4,4]
1611 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
1612 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm4 = ymm5[0,0,2,3,4,4,6,7]
1613 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2],ymm2[3],ymm4[4,5,6],ymm2[7]
1614 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,1,0,3]
1615 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
1616 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1617 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm7[0,1],ymm10[2,3],ymm7[4,5],ymm10[6,7]
1618 ; AVX2-FAST-NEXT:    vpermps %ymm1, %ymm3, %ymm1
1619 ; AVX2-FAST-NEXT:    vmovaps 192(%rdi), %xmm2
1620 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm3 = xmm2[2,3,2,3]
1621 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload
1622 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm4 = ymm11[0,0,2,3,4,4,6,7]
1623 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0],ymm4[1,2,3],ymm3[4],ymm4[5,6,7]
1624 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,3,2,3]
1625 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2],ymm1[3,4,5,6,7]
1626 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm3 = ymm14[0,0,0,0,4,4,4,4]
1627 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm4 = ymm12[0,0,2,3,4,4,6,7]
1628 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2],ymm3[3],ymm4[4,5,6],ymm3[7]
1629 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,1,0,3]
1630 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm3[5,6,7]
1631 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1632 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[3,3,3,3]
1633 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm13[0,1,3,3,4,5,7,7]
1634 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3],ymm0[4],ymm1[5,6,7]
1635 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm15[3,3,3,3,7,7,7,7]
1636 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm6[1],ymm1[2,3,4],ymm6[5],ymm1[6,7]
1637 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,0,3]
1638 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,3,2,3]
1639 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
1640 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm8[0,1,0,1,4,5,4,5]
1641 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm3 = ymm5[0,1,3,3,4,5,7,7]
1642 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2],ymm1[3],ymm3[4,5,6],ymm1[7]
1643 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,1,0,3]
1644 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
1645 ; AVX2-FAST-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
1646 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm0 = xmm2[3,3,3,3]
1647 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm11[0,1,3,3,4,5,7,7]
1648 ; AVX2-FAST-NEXT:    vmovaps %ymm11, %ymm8
1649 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3],ymm0[4],ymm1[5,6,7]
1650 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm10[3,3,3,3,7,7,7,7]
1651 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm7[1],ymm1[2,3,4],ymm7[5],ymm1[6,7]
1652 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,0,3]
1653 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,3,2,3]
1654 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
1655 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm14[0,1,0,1,4,5,4,5]
1656 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm2 = ymm12[0,1,3,3,4,5,7,7]
1657 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]
1658 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,1,0,3]
1659 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
1660 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1661 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm4 = ymm6[0,1,2,3],ymm15[4,5,6,7]
1662 ; AVX2-FAST-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm2 # 32-byte Folded Reload
1663 ; AVX2-FAST-NEXT:    # ymm2 = ymm13[0,1,2,3],mem[4,5,6,7]
1664 ; AVX2-FAST-NEXT:    vmovaps 80(%rdi), %xmm3
1665 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm4[0,1],ymm3[2,3],ymm4[4,5,6,7]
1666 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,1,0,2,4,5,4,6]
1667 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1668 ; AVX2-FAST-NEXT:    vpermps %ymm2, %ymm0, %ymm6
1669 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm6[0,1],ymm1[2,3,4,5,6,7]
1670 ; AVX2-FAST-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm6 # 32-byte Folded Reload
1671 ; AVX2-FAST-NEXT:    # ymm6 = mem[0,1],ymm5[2,3],mem[4,5,6,7]
1672 ; AVX2-FAST-NEXT:    vbroadcastf128 {{.*#+}} ymm11 = [0,2,0,6,0,2,0,6]
1673 ; AVX2-FAST-NEXT:    # ymm11 = mem[0,1,0,1]
1674 ; AVX2-FAST-NEXT:    vpermps %ymm6, %ymm11, %ymm13
1675 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm13[5,6,7]
1676 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm5 = ymm7[0,1,2,3],ymm10[4,5,6,7]
1677 ; AVX2-FAST-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm7 # 32-byte Folded Reload
1678 ; AVX2-FAST-NEXT:    # ymm7 = ymm8[0,1,2,3],mem[4,5,6,7]
1679 ; AVX2-FAST-NEXT:    vmovaps 272(%rdi), %xmm13
1680 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm15 = ymm5[0,1],ymm13[2,3],ymm5[4,5,6,7]
1681 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm15 = ymm15[0,1,0,2,4,5,4,6]
1682 ; AVX2-FAST-NEXT:    vpermps %ymm7, %ymm0, %ymm10
1683 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1],ymm15[2,3,4,5,6,7]
1684 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm12 = ymm14[0,1],ymm12[2,3],ymm14[4,5,6,7]
1685 ; AVX2-FAST-NEXT:    vpermps %ymm12, %ymm11, %ymm11
1686 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1,2,3,4],ymm11[5,6,7]
1687 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm0 = ymm4[1,1,1,1,5,5,5,5]
1688 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm3[3],ymm0[4,5,6,7]
1689 ; AVX2-FAST-NEXT:    vpermps %ymm2, %ymm9, %ymm2
1690 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,3,4,5,6,7]
1691 ; AVX2-FAST-NEXT:    vbroadcastf128 {{.*#+}} ymm2 = [0,3,1,7,0,3,1,7]
1692 ; AVX2-FAST-NEXT:    # ymm2 = mem[0,1,0,1]
1693 ; AVX2-FAST-NEXT:    vpermps %ymm6, %ymm2, %ymm3
1694 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm3[5,6,7]
1695 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm3 = ymm5[1,1,1,1,5,5,5,5]
1696 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2],ymm13[3],ymm3[4,5,6,7]
1697 ; AVX2-FAST-NEXT:    vpermps %ymm7, %ymm9, %ymm5
1698 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm3 = ymm5[0,1],ymm3[2,3,4,5,6,7]
1699 ; AVX2-FAST-NEXT:    vpermps %ymm12, %ymm2, %ymm2
1700 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3,4],ymm2[5,6,7]
1701 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1702 ; AVX2-FAST-NEXT:    vmovaps %ymm3, 32(%rsi)
1703 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1704 ; AVX2-FAST-NEXT:    vmovaps %ymm3, (%rsi)
1705 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1706 ; AVX2-FAST-NEXT:    vmovaps %ymm3, 32(%rdx)
1707 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1708 ; AVX2-FAST-NEXT:    vmovaps %ymm3, (%rdx)
1709 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1710 ; AVX2-FAST-NEXT:    vmovaps %ymm3, 32(%rcx)
1711 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1712 ; AVX2-FAST-NEXT:    vmovaps %ymm3, (%rcx)
1713 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1714 ; AVX2-FAST-NEXT:    vmovaps %ymm3, 32(%r8)
1715 ; AVX2-FAST-NEXT:    vmovups (%rsp), %ymm3 # 32-byte Reload
1716 ; AVX2-FAST-NEXT:    vmovaps %ymm3, (%r8)
1717 ; AVX2-FAST-NEXT:    vmovaps %ymm10, 32(%r9)
1718 ; AVX2-FAST-NEXT:    vmovaps %ymm1, (%r9)
1719 ; AVX2-FAST-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1720 ; AVX2-FAST-NEXT:    vmovaps %ymm2, 32(%rax)
1721 ; AVX2-FAST-NEXT:    vmovaps %ymm0, (%rax)
1722 ; AVX2-FAST-NEXT:    addq $328, %rsp # imm = 0x148
1723 ; AVX2-FAST-NEXT:    vzeroupper
1724 ; AVX2-FAST-NEXT:    retq
1726 ; AVX2-FAST-PERLANE-LABEL: load_i32_stride6_vf16:
1727 ; AVX2-FAST-PERLANE:       # %bb.0:
1728 ; AVX2-FAST-PERLANE-NEXT:    subq $360, %rsp # imm = 0x168
1729 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 288(%rdi), %ymm8
1730 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 224(%rdi), %ymm11
1731 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1732 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 192(%rdi), %ymm1
1733 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1734 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 128(%rdi), %ymm0
1735 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1736 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 160(%rdi), %ymm2
1737 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1738 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 96(%rdi), %ymm15
1739 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%rdi), %ymm3
1740 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1741 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 32(%rdi), %ymm13
1742 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 64(%rdi), %ymm6
1743 ; AVX2-FAST-PERLANE-NEXT:    vmovaps {{.*#+}} xmm14 = [0,6,4,u]
1744 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm4 = ymm3[0,1,2,3],ymm13[4,5],ymm3[6,7]
1745 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm4, %ymm14, %ymm3
1746 ; AVX2-FAST-PERLANE-NEXT:    vperm2f128 {{.*#+}} ymm7 = ymm6[0,1],ymm15[0,1]
1747 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm9 = ymm7[0,1,2,3,4,5],ymm15[6,7]
1748 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm7 = ymm9[0,2,2,2,4,6,6,6]
1749 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2],ymm7[3,4,5,6,7]
1750 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm10 = ymm2[0,1,2,3],ymm0[4,5,6,7]
1751 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastsd {{.*#+}} ymm0 = [4,2,4,2,4,2,4,2]
1752 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm10, %ymm0, %ymm12
1753 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, %ymm5
1754 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1755 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm12[6,7]
1756 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1757 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm3 = ymm1[0,1,2,3],ymm11[4,5],ymm1[6,7]
1758 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm3, %ymm14, %ymm12
1759 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 256(%rdi), %ymm7
1760 ; AVX2-FAST-PERLANE-NEXT:    vperm2f128 {{.*#+}} ymm14 = ymm7[0,1],ymm8[0,1]
1761 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm14[0,1,2,3,4,5],ymm8[6,7]
1762 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm14 = ymm1[0,2,2,2,4,6,6,6]
1763 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm12[0,1,2],ymm14[3,4,5,6,7]
1764 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 320(%rdi), %ymm12
1765 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 352(%rdi), %ymm14
1766 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm14[0,1,2,3],ymm12[4,5,6,7]
1767 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm0, %ymm5, %ymm11
1768 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm11[6,7]
1769 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1770 ; AVX2-FAST-PERLANE-NEXT:    vmovaps {{.*#+}} xmm2 = [1,7,5,u]
1771 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm4, %ymm2, %ymm4
1772 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm9 = ymm9[1,3,2,3,5,7,6,7]
1773 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2],ymm9[3,4,5,6,7]
1774 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastsd {{.*#+}} ymm5 = [5,3,5,3,5,3,5,3]
1775 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1776 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm10, %ymm5, %ymm10
1777 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],ymm10[6,7]
1778 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1779 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm3, %ymm2, %ymm2
1780 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[1,3,2,3,5,7,6,7]
1781 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3,4,5,6,7]
1782 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm0, %ymm5, %ymm0
1783 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
1784 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1785 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%rdi), %xmm5
1786 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm0 = xmm5[2,3,2,3]
1787 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm13[0,0,2,3,4,4,6,7]
1788 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3],ymm0[4],ymm1[5,6,7]
1789 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm6[0,1],ymm15[2,3],ymm6[4,5],ymm15[6,7]
1790 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[2,0,2,3,6,4,6,7]
1791 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,0,3]
1792 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,3,2,3]
1793 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
1794 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
1795 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm10[0,0,0,0,4,4,4,4]
1796 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
1797 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm2 = ymm4[0,0,2,3,4,4,6,7]
1798 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]
1799 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,1,0,3]
1800 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
1801 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1802 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 192(%rdi), %xmm0
1803 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm1 = xmm0[2,3,2,3]
1804 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
1805 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm2 = ymm9[0,0,2,3,4,4,6,7]
1806 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm2[1,2,3],ymm1[4],ymm2[5,6,7]
1807 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm7[0,1],ymm8[2,3],ymm7[4,5],ymm8[6,7]
1808 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[2,0,2,3,6,4,6,7]
1809 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,2,0,3]
1810 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,3,2,3]
1811 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
1812 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm2 = ymm14[0,0,0,0,4,4,4,4]
1813 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm3 = ymm12[0,0,2,3,4,4,6,7]
1814 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2],ymm2[3],ymm3[4,5,6],ymm2[7]
1815 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,1,0,3]
1816 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
1817 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1818 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm1 = xmm5[3,3,3,3]
1819 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm2 = ymm13[0,1,3,3,4,5,7,7]
1820 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm2[1,2,3],ymm1[4],ymm2[5,6,7]
1821 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm2 = ymm15[3,3,3,3,7,7,7,7]
1822 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0],ymm6[1],ymm2[2,3,4],ymm6[5],ymm2[6,7]
1823 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,2,0,3]
1824 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,3,2,3]
1825 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
1826 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm2 = ymm10[0,1,0,1,4,5,4,5]
1827 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm3 = ymm4[0,1,3,3,4,5,7,7]
1828 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm4, %ymm5
1829 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2],ymm2[3],ymm3[4,5,6],ymm2[7]
1830 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,1,0,3]
1831 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
1832 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, (%rsp) # 32-byte Spill
1833 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[3,3,3,3]
1834 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm9[0,1,3,3,4,5,7,7]
1835 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3],ymm0[4],ymm1[5,6,7]
1836 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm8[3,3,3,3,7,7,7,7]
1837 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm7[1],ymm1[2,3,4],ymm7[5],ymm1[6,7]
1838 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,0,3]
1839 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,3,2,3]
1840 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
1841 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm14[0,1,0,1,4,5,4,5]
1842 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm2 = ymm12[0,1,3,3,4,5,7,7]
1843 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]
1844 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,1,0,3]
1845 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
1846 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1847 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm4 = ymm6[0,1,2,3],ymm15[4,5,6,7]
1848 ; AVX2-FAST-PERLANE-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm2 # 32-byte Folded Reload
1849 ; AVX2-FAST-PERLANE-NEXT:    # ymm2 = ymm13[0,1,2,3],mem[4,5,6,7]
1850 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 80(%rdi), %xmm3
1851 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm4[0,1],ymm3[2,3],ymm4[4,5,6,7]
1852 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,1,0,2,4,5,4,6]
1853 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1854 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm2, %ymm0, %ymm6
1855 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm6[0,1],ymm1[2,3,4,5,6,7]
1856 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm6 = ymm10[0,1],ymm5[2,3],ymm10[4,5,6,7]
1857 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastf128 {{.*#+}} ymm11 = [0,2,0,6,0,2,0,6]
1858 ; AVX2-FAST-PERLANE-NEXT:    # ymm11 = mem[0,1,0,1]
1859 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm6, %ymm11, %ymm13
1860 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm13[5,6,7]
1861 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm5 = ymm7[0,1,2,3],ymm8[4,5,6,7]
1862 ; AVX2-FAST-PERLANE-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm7 # 32-byte Folded Reload
1863 ; AVX2-FAST-PERLANE-NEXT:    # ymm7 = ymm9[0,1,2,3],mem[4,5,6,7]
1864 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 272(%rdi), %xmm13
1865 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm15 = ymm5[0,1],ymm13[2,3],ymm5[4,5,6,7]
1866 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm15 = ymm15[0,1,0,2,4,5,4,6]
1867 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm7, %ymm0, %ymm8
1868 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1],ymm15[2,3,4,5,6,7]
1869 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm12 = ymm14[0,1],ymm12[2,3],ymm14[4,5,6,7]
1870 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm12, %ymm11, %ymm11
1871 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3,4],ymm11[5,6,7]
1872 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm0 = ymm4[1,1,1,1,5,5,5,5]
1873 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm3[3],ymm0[4,5,6,7]
1874 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
1875 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm2, %ymm4, %ymm2
1876 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,3,4,5,6,7]
1877 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastf128 {{.*#+}} ymm2 = [0,3,1,7,0,3,1,7]
1878 ; AVX2-FAST-PERLANE-NEXT:    # ymm2 = mem[0,1,0,1]
1879 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm6, %ymm2, %ymm3
1880 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm3[5,6,7]
1881 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm3 = ymm5[1,1,1,1,5,5,5,5]
1882 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2],ymm13[3],ymm3[4,5,6,7]
1883 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm7, %ymm4, %ymm5
1884 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm3 = ymm5[0,1],ymm3[2,3,4,5,6,7]
1885 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm12, %ymm2, %ymm2
1886 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3,4],ymm2[5,6,7]
1887 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1888 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm3, 32(%rsi)
1889 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1890 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm3, (%rsi)
1891 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1892 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm3, 32(%rdx)
1893 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1894 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm3, (%rdx)
1895 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1896 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm3, 32(%rcx)
1897 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1898 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm3, (%rcx)
1899 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1900 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm3, 32(%r8)
1901 ; AVX2-FAST-PERLANE-NEXT:    vmovups (%rsp), %ymm3 # 32-byte Reload
1902 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm3, (%r8)
1903 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm8, 32(%r9)
1904 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, (%r9)
1905 ; AVX2-FAST-PERLANE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1906 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm2, 32(%rax)
1907 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, (%rax)
1908 ; AVX2-FAST-PERLANE-NEXT:    addq $360, %rsp # imm = 0x168
1909 ; AVX2-FAST-PERLANE-NEXT:    vzeroupper
1910 ; AVX2-FAST-PERLANE-NEXT:    retq
1912 ; AVX512F-LABEL: load_i32_stride6_vf16:
1913 ; AVX512F:       # %bb.0:
1914 ; AVX512F-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1915 ; AVX512F-NEXT:    vmovdqa64 320(%rdi), %zmm0
1916 ; AVX512F-NEXT:    vmovdqa64 256(%rdi), %zmm1
1917 ; AVX512F-NEXT:    vmovdqa64 (%rdi), %zmm3
1918 ; AVX512F-NEXT:    vmovdqa64 64(%rdi), %zmm4
1919 ; AVX512F-NEXT:    vmovdqa64 128(%rdi), %zmm5
1920 ; AVX512F-NEXT:    vmovdqa64 192(%rdi), %zmm6
1921 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm7 = [0,6,12,0,0,0,20,26,0,6,12,0,0,0,20,26]
1922 ; AVX512F-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3]
1923 ; AVX512F-NEXT:    vpermi2d %zmm5, %zmm6, %zmm7
1924 ; AVX512F-NEXT:    vmovdqa {{.*#+}} ymm2 = [0,6,12,18,24,30,u,u]
1925 ; AVX512F-NEXT:    vpermi2d %zmm4, %zmm3, %zmm2
1926 ; AVX512F-NEXT:    movb $56, %dil
1927 ; AVX512F-NEXT:    kmovw %edi, %k2
1928 ; AVX512F-NEXT:    vmovdqa64 %zmm7, %zmm2 {%k2}
1929 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm7 = [0,0,0,2,8,14,20,26,0,0,0,2,8,14,20,26]
1930 ; AVX512F-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3]
1931 ; AVX512F-NEXT:    vpermi2d %zmm0, %zmm1, %zmm7
1932 ; AVX512F-NEXT:    movw $-2048, %di # imm = 0xF800
1933 ; AVX512F-NEXT:    kmovw %edi, %k1
1934 ; AVX512F-NEXT:    vmovdqa32 %zmm7, %zmm2 {%k1}
1935 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [1,7,13,0,0,0,21,27,1,7,13,0,0,0,21,27]
1936 ; AVX512F-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
1937 ; AVX512F-NEXT:    vpermi2d %zmm5, %zmm6, %zmm8
1938 ; AVX512F-NEXT:    vmovdqa {{.*#+}} ymm7 = [1,7,13,19,25,31,u,u]
1939 ; AVX512F-NEXT:    vpermi2d %zmm4, %zmm3, %zmm7
1940 ; AVX512F-NEXT:    vmovdqa64 %zmm8, %zmm7 {%k2}
1941 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [0,0,0,3,9,15,21,27,0,0,0,3,9,15,21,27]
1942 ; AVX512F-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
1943 ; AVX512F-NEXT:    vpermi2d %zmm0, %zmm1, %zmm8
1944 ; AVX512F-NEXT:    vmovdqa32 %zmm8, %zmm7 {%k1}
1945 ; AVX512F-NEXT:    vmovdqa {{.*#+}} ymm8 = [2,8,14,20,26,u,u,u]
1946 ; AVX512F-NEXT:    vpermi2d %zmm4, %zmm3, %zmm8
1947 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm9 = [18,24,30,0,0,0,6,12,18,24,30,0,0,0,6,12]
1948 ; AVX512F-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3]
1949 ; AVX512F-NEXT:    vpermi2d %zmm6, %zmm5, %zmm9
1950 ; AVX512F-NEXT:    movw $31, %di
1951 ; AVX512F-NEXT:    kmovw %edi, %k2
1952 ; AVX512F-NEXT:    vmovdqa32 %zmm8, %zmm9 {%k2}
1953 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [0,0,0,20,26,0,6,12,0,0,0,20,26,0,6,12]
1954 ; AVX512F-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
1955 ; AVX512F-NEXT:    vpermi2d %zmm1, %zmm0, %zmm8
1956 ; AVX512F-NEXT:    vmovdqa32 %zmm8, %zmm9 {%k1}
1957 ; AVX512F-NEXT:    vmovdqa {{.*#+}} ymm8 = [3,9,15,21,27,u,u,u]
1958 ; AVX512F-NEXT:    vpermi2d %zmm4, %zmm3, %zmm8
1959 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [19,25,31,0,0,1,7,13,19,25,31,0,0,1,7,13]
1960 ; AVX512F-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
1961 ; AVX512F-NEXT:    vpermi2d %zmm6, %zmm5, %zmm10
1962 ; AVX512F-NEXT:    vmovdqa32 %zmm8, %zmm10 {%k2}
1963 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [0,0,0,21,27,1,7,13,0,0,0,21,27,1,7,13]
1964 ; AVX512F-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
1965 ; AVX512F-NEXT:    vpermi2d %zmm1, %zmm0, %zmm8
1966 ; AVX512F-NEXT:    vmovdqa32 %zmm8, %zmm10 {%k1}
1967 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [20,26,0,0,0,2,8,14,20,26,0,0,0,2,8,14]
1968 ; AVX512F-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
1969 ; AVX512F-NEXT:    vpermi2d %zmm6, %zmm5, %zmm8
1970 ; AVX512F-NEXT:    vmovdqa {{.*#+}} ymm11 = [20,26,0,6,12,u,u,u]
1971 ; AVX512F-NEXT:    vpermi2d %zmm3, %zmm4, %zmm11
1972 ; AVX512F-NEXT:    movw $992, %di # imm = 0x3E0
1973 ; AVX512F-NEXT:    kmovw %edi, %k1
1974 ; AVX512F-NEXT:    vmovdqa32 %zmm8, %zmm11 {%k1}
1975 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [0,0,0,6,12,18,24,30,0,0,0,6,12,18,24,30]
1976 ; AVX512F-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
1977 ; AVX512F-NEXT:    vpermi2d %zmm0, %zmm1, %zmm8
1978 ; AVX512F-NEXT:    movb $-32, %dil
1979 ; AVX512F-NEXT:    kmovw %edi, %k2
1980 ; AVX512F-NEXT:    vmovdqa64 %zmm8, %zmm11 {%k2}
1981 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [21,27,0,0,0,3,9,15,21,27,0,0,0,3,9,15]
1982 ; AVX512F-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
1983 ; AVX512F-NEXT:    vpermi2d %zmm6, %zmm5, %zmm8
1984 ; AVX512F-NEXT:    vmovdqa {{.*#+}} ymm5 = [21,27,1,7,13,u,u,u]
1985 ; AVX512F-NEXT:    vpermi2d %zmm3, %zmm4, %zmm5
1986 ; AVX512F-NEXT:    vmovdqa32 %zmm8, %zmm5 {%k1}
1987 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm3 = [0,0,1,7,13,19,25,31,0,0,1,7,13,19,25,31]
1988 ; AVX512F-NEXT:    # zmm3 = mem[0,1,2,3,0,1,2,3]
1989 ; AVX512F-NEXT:    vpermi2d %zmm0, %zmm1, %zmm3
1990 ; AVX512F-NEXT:    vmovdqa64 %zmm3, %zmm5 {%k2}
1991 ; AVX512F-NEXT:    vmovdqa64 %zmm2, (%rsi)
1992 ; AVX512F-NEXT:    vmovdqa64 %zmm7, (%rdx)
1993 ; AVX512F-NEXT:    vmovdqa64 %zmm9, (%rcx)
1994 ; AVX512F-NEXT:    vmovdqa64 %zmm10, (%r8)
1995 ; AVX512F-NEXT:    vmovdqa64 %zmm11, (%r9)
1996 ; AVX512F-NEXT:    vmovdqa64 %zmm5, (%rax)
1997 ; AVX512F-NEXT:    vzeroupper
1998 ; AVX512F-NEXT:    retq
2000 ; AVX512BW-LABEL: load_i32_stride6_vf16:
2001 ; AVX512BW:       # %bb.0:
2002 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
2003 ; AVX512BW-NEXT:    vmovdqa64 320(%rdi), %zmm0
2004 ; AVX512BW-NEXT:    vmovdqa64 256(%rdi), %zmm1
2005 ; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm3
2006 ; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %zmm4
2007 ; AVX512BW-NEXT:    vmovdqa64 128(%rdi), %zmm5
2008 ; AVX512BW-NEXT:    vmovdqa64 192(%rdi), %zmm6
2009 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm7 = [0,6,12,0,0,0,20,26,0,6,12,0,0,0,20,26]
2010 ; AVX512BW-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3]
2011 ; AVX512BW-NEXT:    vpermi2d %zmm5, %zmm6, %zmm7
2012 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} ymm2 = [0,6,12,18,24,30,u,u]
2013 ; AVX512BW-NEXT:    vpermi2d %zmm4, %zmm3, %zmm2
2014 ; AVX512BW-NEXT:    movb $56, %dil
2015 ; AVX512BW-NEXT:    kmovd %edi, %k2
2016 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm2 {%k2}
2017 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm7 = [0,0,0,2,8,14,20,26,0,0,0,2,8,14,20,26]
2018 ; AVX512BW-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3]
2019 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm1, %zmm7
2020 ; AVX512BW-NEXT:    movw $-2048, %di # imm = 0xF800
2021 ; AVX512BW-NEXT:    kmovd %edi, %k1
2022 ; AVX512BW-NEXT:    vmovdqa32 %zmm7, %zmm2 {%k1}
2023 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [1,7,13,0,0,0,21,27,1,7,13,0,0,0,21,27]
2024 ; AVX512BW-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
2025 ; AVX512BW-NEXT:    vpermi2d %zmm5, %zmm6, %zmm8
2026 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} ymm7 = [1,7,13,19,25,31,u,u]
2027 ; AVX512BW-NEXT:    vpermi2d %zmm4, %zmm3, %zmm7
2028 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm7 {%k2}
2029 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [0,0,0,3,9,15,21,27,0,0,0,3,9,15,21,27]
2030 ; AVX512BW-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
2031 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm1, %zmm8
2032 ; AVX512BW-NEXT:    vmovdqa32 %zmm8, %zmm7 {%k1}
2033 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} ymm8 = [2,8,14,20,26,u,u,u]
2034 ; AVX512BW-NEXT:    vpermi2d %zmm4, %zmm3, %zmm8
2035 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm9 = [18,24,30,0,0,0,6,12,18,24,30,0,0,0,6,12]
2036 ; AVX512BW-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3]
2037 ; AVX512BW-NEXT:    vpermi2d %zmm6, %zmm5, %zmm9
2038 ; AVX512BW-NEXT:    movw $31, %di
2039 ; AVX512BW-NEXT:    kmovd %edi, %k2
2040 ; AVX512BW-NEXT:    vmovdqa32 %zmm8, %zmm9 {%k2}
2041 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [0,0,0,20,26,0,6,12,0,0,0,20,26,0,6,12]
2042 ; AVX512BW-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
2043 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm8
2044 ; AVX512BW-NEXT:    vmovdqa32 %zmm8, %zmm9 {%k1}
2045 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} ymm8 = [3,9,15,21,27,u,u,u]
2046 ; AVX512BW-NEXT:    vpermi2d %zmm4, %zmm3, %zmm8
2047 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [19,25,31,0,0,1,7,13,19,25,31,0,0,1,7,13]
2048 ; AVX512BW-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
2049 ; AVX512BW-NEXT:    vpermi2d %zmm6, %zmm5, %zmm10
2050 ; AVX512BW-NEXT:    vmovdqa32 %zmm8, %zmm10 {%k2}
2051 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [0,0,0,21,27,1,7,13,0,0,0,21,27,1,7,13]
2052 ; AVX512BW-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
2053 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm8
2054 ; AVX512BW-NEXT:    vmovdqa32 %zmm8, %zmm10 {%k1}
2055 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [20,26,0,0,0,2,8,14,20,26,0,0,0,2,8,14]
2056 ; AVX512BW-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
2057 ; AVX512BW-NEXT:    vpermi2d %zmm6, %zmm5, %zmm8
2058 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} ymm11 = [20,26,0,6,12,u,u,u]
2059 ; AVX512BW-NEXT:    vpermi2d %zmm3, %zmm4, %zmm11
2060 ; AVX512BW-NEXT:    movw $992, %di # imm = 0x3E0
2061 ; AVX512BW-NEXT:    kmovd %edi, %k1
2062 ; AVX512BW-NEXT:    vmovdqa32 %zmm8, %zmm11 {%k1}
2063 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [0,0,0,6,12,18,24,30,0,0,0,6,12,18,24,30]
2064 ; AVX512BW-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
2065 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm1, %zmm8
2066 ; AVX512BW-NEXT:    movb $-32, %dil
2067 ; AVX512BW-NEXT:    kmovd %edi, %k2
2068 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm11 {%k2}
2069 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [21,27,0,0,0,3,9,15,21,27,0,0,0,3,9,15]
2070 ; AVX512BW-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
2071 ; AVX512BW-NEXT:    vpermi2d %zmm6, %zmm5, %zmm8
2072 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} ymm5 = [21,27,1,7,13,u,u,u]
2073 ; AVX512BW-NEXT:    vpermi2d %zmm3, %zmm4, %zmm5
2074 ; AVX512BW-NEXT:    vmovdqa32 %zmm8, %zmm5 {%k1}
2075 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm3 = [0,0,1,7,13,19,25,31,0,0,1,7,13,19,25,31]
2076 ; AVX512BW-NEXT:    # zmm3 = mem[0,1,2,3,0,1,2,3]
2077 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm1, %zmm3
2078 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm5 {%k2}
2079 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, (%rsi)
2080 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, (%rdx)
2081 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, (%rcx)
2082 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, (%r8)
2083 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, (%r9)
2084 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, (%rax)
2085 ; AVX512BW-NEXT:    vzeroupper
2086 ; AVX512BW-NEXT:    retq
2087   %wide.vec = load <96 x i32>, ptr %in.vec, align 64
2088   %strided.vec0 = shufflevector <96 x i32> %wide.vec, <96 x i32> poison, <16 x i32> <i32 0, i32 6, i32 12, i32 18, i32 24, i32 30, i32 36, i32 42, i32 48, i32 54, i32 60, i32 66, i32 72, i32 78, i32 84, i32 90>
2089   %strided.vec1 = shufflevector <96 x i32> %wide.vec, <96 x i32> poison, <16 x i32> <i32 1, i32 7, i32 13, i32 19, i32 25, i32 31, i32 37, i32 43, i32 49, i32 55, i32 61, i32 67, i32 73, i32 79, i32 85, i32 91>
2090   %strided.vec2 = shufflevector <96 x i32> %wide.vec, <96 x i32> poison, <16 x i32> <i32 2, i32 8, i32 14, i32 20, i32 26, i32 32, i32 38, i32 44, i32 50, i32 56, i32 62, i32 68, i32 74, i32 80, i32 86, i32 92>
2091   %strided.vec3 = shufflevector <96 x i32> %wide.vec, <96 x i32> poison, <16 x i32> <i32 3, i32 9, i32 15, i32 21, i32 27, i32 33, i32 39, i32 45, i32 51, i32 57, i32 63, i32 69, i32 75, i32 81, i32 87, i32 93>
2092   %strided.vec4 = shufflevector <96 x i32> %wide.vec, <96 x i32> poison, <16 x i32> <i32 4, i32 10, i32 16, i32 22, i32 28, i32 34, i32 40, i32 46, i32 52, i32 58, i32 64, i32 70, i32 76, i32 82, i32 88, i32 94>
2093   %strided.vec5 = shufflevector <96 x i32> %wide.vec, <96 x i32> poison, <16 x i32> <i32 5, i32 11, i32 17, i32 23, i32 29, i32 35, i32 41, i32 47, i32 53, i32 59, i32 65, i32 71, i32 77, i32 83, i32 89, i32 95>
2094   store <16 x i32> %strided.vec0, ptr %out.vec0, align 64
2095   store <16 x i32> %strided.vec1, ptr %out.vec1, align 64
2096   store <16 x i32> %strided.vec2, ptr %out.vec2, align 64
2097   store <16 x i32> %strided.vec3, ptr %out.vec3, align 64
2098   store <16 x i32> %strided.vec4, ptr %out.vec4, align 64
2099   store <16 x i32> %strided.vec5, ptr %out.vec5, align 64
2100   ret void
2103 define void @load_i32_stride6_vf32(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4, ptr %out.vec5) nounwind {
2104 ; SSE-LABEL: load_i32_stride6_vf32:
2105 ; SSE:       # %bb.0:
2106 ; SSE-NEXT:    subq $1032, %rsp # imm = 0x408
2107 ; SSE-NEXT:    movdqa 64(%rdi), %xmm5
2108 ; SSE-NEXT:    movdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2109 ; SSE-NEXT:    movdqa (%rdi), %xmm12
2110 ; SSE-NEXT:    movdqa %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2111 ; SSE-NEXT:    movdqa 16(%rdi), %xmm13
2112 ; SSE-NEXT:    movdqa %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2113 ; SSE-NEXT:    movdqa 48(%rdi), %xmm9
2114 ; SSE-NEXT:    movdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2115 ; SSE-NEXT:    movdqa 528(%rdi), %xmm7
2116 ; SSE-NEXT:    movdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2117 ; SSE-NEXT:    movdqa 544(%rdi), %xmm3
2118 ; SSE-NEXT:    movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2119 ; SSE-NEXT:    movdqa 480(%rdi), %xmm8
2120 ; SSE-NEXT:    movdqa 496(%rdi), %xmm4
2121 ; SSE-NEXT:    movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2122 ; SSE-NEXT:    movdqa 144(%rdi), %xmm10
2123 ; SSE-NEXT:    movdqa %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2124 ; SSE-NEXT:    movdqa 160(%rdi), %xmm2
2125 ; SSE-NEXT:    movdqa 96(%rdi), %xmm6
2126 ; SSE-NEXT:    movdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2127 ; SSE-NEXT:    movdqa 112(%rdi), %xmm1
2128 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm1[2,3,2,3]
2129 ; SSE-NEXT:    movdqa %xmm1, %xmm11
2130 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2131 ; SSE-NEXT:    movdqa %xmm6, %xmm1
2132 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
2133 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm2[2,2,3,3]
2134 ; SSE-NEXT:    movdqa %xmm2, %xmm6
2135 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2136 ; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm10[0,0,1,1]
2137 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]
2138 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm1[0],xmm2[1]
2139 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2140 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm4[2,3,2,3]
2141 ; SSE-NEXT:    movdqa %xmm8, %xmm1
2142 ; SSE-NEXT:    movdqa %xmm8, %xmm4
2143 ; SSE-NEXT:    movdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2144 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
2145 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm3[2,2,3,3]
2146 ; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm7[0,0,1,1]
2147 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]
2148 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm1[0],xmm2[1]
2149 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2150 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm13[2,3,2,3]
2151 ; SSE-NEXT:    movdqa %xmm12, %xmm1
2152 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
2153 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm5[2,2,3,3]
2154 ; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm9[0,0,1,1]
2155 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]
2156 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm1[0],xmm2[1]
2157 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2158 ; SSE-NEXT:    movdqa 384(%rdi), %xmm2
2159 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2160 ; SSE-NEXT:    movdqa 400(%rdi), %xmm14
2161 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm14[2,3,2,3]
2162 ; SSE-NEXT:    movdqa %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2163 ; SSE-NEXT:    movdqa %xmm2, %xmm1
2164 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
2165 ; SSE-NEXT:    movdqa 432(%rdi), %xmm3
2166 ; SSE-NEXT:    movdqa %xmm3, (%rsp) # 16-byte Spill
2167 ; SSE-NEXT:    movdqa 448(%rdi), %xmm9
2168 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm9[2,2,3,3]
2169 ; SSE-NEXT:    movdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2170 ; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm3[0,0,1,1]
2171 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]
2172 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm1[0],xmm2[1]
2173 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2174 ; SSE-NEXT:    movdqa 288(%rdi), %xmm2
2175 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2176 ; SSE-NEXT:    movdqa 304(%rdi), %xmm15
2177 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm15[2,3,2,3]
2178 ; SSE-NEXT:    movdqa %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2179 ; SSE-NEXT:    movdqa %xmm2, %xmm1
2180 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
2181 ; SSE-NEXT:    movdqa 336(%rdi), %xmm3
2182 ; SSE-NEXT:    movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2183 ; SSE-NEXT:    movdqa 352(%rdi), %xmm2
2184 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm2[2,2,3,3]
2185 ; SSE-NEXT:    movdqa %xmm2, %xmm12
2186 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2187 ; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm3[0,0,1,1]
2188 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]
2189 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm1[0],xmm2[1]
2190 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2191 ; SSE-NEXT:    movdqa 672(%rdi), %xmm2
2192 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2193 ; SSE-NEXT:    movdqa 688(%rdi), %xmm8
2194 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm8[2,3,2,3]
2195 ; SSE-NEXT:    movdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2196 ; SSE-NEXT:    movdqa %xmm2, %xmm1
2197 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
2198 ; SSE-NEXT:    movdqa 720(%rdi), %xmm3
2199 ; SSE-NEXT:    movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2200 ; SSE-NEXT:    movdqa 736(%rdi), %xmm5
2201 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm5[2,2,3,3]
2202 ; SSE-NEXT:    movdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2203 ; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm3[0,0,1,1]
2204 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]
2205 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm1[0],xmm2[1]
2206 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2207 ; SSE-NEXT:    movdqa 192(%rdi), %xmm1
2208 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2209 ; SSE-NEXT:    movdqa 208(%rdi), %xmm0
2210 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2211 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]
2212 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
2213 ; SSE-NEXT:    movdqa 240(%rdi), %xmm2
2214 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2215 ; SSE-NEXT:    movdqa 256(%rdi), %xmm0
2216 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2217 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,2,3,3]
2218 ; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[0,0,1,1]
2219 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]
2220 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm1[0],xmm2[1]
2221 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2222 ; SSE-NEXT:    movdqa 576(%rdi), %xmm7
2223 ; SSE-NEXT:    movdqa 592(%rdi), %xmm13
2224 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm13[2,3,2,3]
2225 ; SSE-NEXT:    movdqa %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2226 ; SSE-NEXT:    movdqa %xmm7, %xmm1
2227 ; SSE-NEXT:    movdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2228 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
2229 ; SSE-NEXT:    movdqa 624(%rdi), %xmm10
2230 ; SSE-NEXT:    movdqa %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2231 ; SSE-NEXT:    movdqa 640(%rdi), %xmm3
2232 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm3[2,2,3,3]
2233 ; SSE-NEXT:    movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2234 ; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm10[0,0,1,1]
2235 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]
2236 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm1[0],xmm2[1]
2237 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2238 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
2239 ; SSE-NEXT:    # xmm0 = mem[1,1,1,1]
2240 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm11[3,3,3,3]
2241 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
2242 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm6[2,3,2,3]
2243 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
2244 ; SSE-NEXT:    movdqa %xmm10, %xmm2
2245 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
2246 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm0[0],xmm2[1]
2247 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2248 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm4[1,1,1,1]
2249 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
2250 ; SSE-NEXT:    # xmm1 = mem[3,3,3,3]
2251 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
2252 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
2253 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
2254 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload
2255 ; SSE-NEXT:    movdqa %xmm11, %xmm2
2256 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
2257 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm0[0],xmm2[1]
2258 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2259 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
2260 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm6[1,1,1,1]
2261 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
2262 ; SSE-NEXT:    # xmm1 = mem[3,3,3,3]
2263 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
2264 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
2265 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
2266 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
2267 ; SSE-NEXT:    movdqa %xmm4, %xmm2
2268 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
2269 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm0[0],xmm2[1]
2270 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2271 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
2272 ; SSE-NEXT:    # xmm0 = mem[1,1,1,1]
2273 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm14[3,3,3,3]
2274 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
2275 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm9[2,3,2,3]
2276 ; SSE-NEXT:    movdqa (%rsp), %xmm2 # 16-byte Reload
2277 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
2278 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm0[0],xmm2[1]
2279 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2280 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload
2281 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm9[1,1,1,1]
2282 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm15[3,3,3,3]
2283 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
2284 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm12[2,3,2,3]
2285 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
2286 ; SSE-NEXT:    movdqa %xmm15, %xmm2
2287 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
2288 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm0[0],xmm2[1]
2289 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2290 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
2291 ; SSE-NEXT:    # xmm0 = mem[1,1,1,1]
2292 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm8[3,3,3,3]
2293 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
2294 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm5[2,3,2,3]
2295 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
2296 ; SSE-NEXT:    movdqa %xmm8, %xmm2
2297 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
2298 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm0[0],xmm2[1]
2299 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2300 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload
2301 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm12[1,1,1,1]
2302 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
2303 ; SSE-NEXT:    # xmm1 = mem[3,3,3,3]
2304 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
2305 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
2306 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
2307 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
2308 ; SSE-NEXT:    movdqa %xmm14, %xmm5
2309 ; SSE-NEXT:    punpckldq {{.*#+}} xmm5 = xmm5[0],xmm1[0],xmm5[1],xmm1[1]
2310 ; SSE-NEXT:    movsd {{.*#+}} xmm5 = xmm0[0],xmm5[1]
2311 ; SSE-NEXT:    movapd %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2312 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm7[1,1,1,1]
2313 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm13[3,3,3,3]
2314 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
2315 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm3[2,3,2,3]
2316 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
2317 ; SSE-NEXT:    movdqa %xmm5, %xmm3
2318 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]
2319 ; SSE-NEXT:    movsd {{.*#+}} xmm3 = xmm0[0],xmm3[1]
2320 ; SSE-NEXT:    movapd %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2321 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm10[2,2,3,3]
2322 ; SSE-NEXT:    movdqa 176(%rdi), %xmm0
2323 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2324 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,1,1]
2325 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
2326 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
2327 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm10[2,3,2,3]
2328 ; SSE-NEXT:    movdqa 128(%rdi), %xmm2
2329 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2330 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
2331 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2332 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2333 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm4[2,2,3,3]
2334 ; SSE-NEXT:    movdqa 80(%rdi), %xmm0
2335 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2336 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,1,1]
2337 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
2338 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm6[2,3,2,3]
2339 ; SSE-NEXT:    movdqa 32(%rdi), %xmm13
2340 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm13[0],xmm0[1],xmm13[1]
2341 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2342 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2343 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm15[2,2,3,3]
2344 ; SSE-NEXT:    movdqa 368(%rdi), %xmm0
2345 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2346 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,1,1]
2347 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
2348 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm9[2,3,2,3]
2349 ; SSE-NEXT:    movdqa 320(%rdi), %xmm2
2350 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2351 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
2352 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2353 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2354 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm14[2,2,3,3]
2355 ; SSE-NEXT:    movdqa 272(%rdi), %xmm0
2356 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2357 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,1,1]
2358 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
2359 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm12[2,3,2,3]
2360 ; SSE-NEXT:    movdqa %xmm12, %xmm14
2361 ; SSE-NEXT:    movdqa 224(%rdi), %xmm6
2362 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm6[0],xmm0[1],xmm6[1]
2363 ; SSE-NEXT:    movdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2364 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2365 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2366 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm11[2,2,3,3]
2367 ; SSE-NEXT:    movdqa 560(%rdi), %xmm0
2368 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2369 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,1,1]
2370 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
2371 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
2372 ; SSE-NEXT:    # xmm0 = mem[2,3,2,3]
2373 ; SSE-NEXT:    movdqa 512(%rdi), %xmm2
2374 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2375 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
2376 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2377 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2378 ; SSE-NEXT:    movdqa (%rsp), %xmm11 # 16-byte Reload
2379 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm11[2,2,3,3]
2380 ; SSE-NEXT:    movdqa 464(%rdi), %xmm15
2381 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm15[0,0,1,1]
2382 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
2383 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
2384 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm7[2,3,2,3]
2385 ; SSE-NEXT:    movdqa 416(%rdi), %xmm4
2386 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1]
2387 ; SSE-NEXT:    movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2388 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2389 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2390 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm8[2,2,3,3]
2391 ; SSE-NEXT:    movdqa 752(%rdi), %xmm0
2392 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2393 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,1,1]
2394 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
2395 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
2396 ; SSE-NEXT:    # xmm0 = mem[2,3,2,3]
2397 ; SSE-NEXT:    movdqa 704(%rdi), %xmm12
2398 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm12[0],xmm0[1],xmm12[1]
2399 ; SSE-NEXT:    movdqa %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2400 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2401 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2402 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm5[2,2,3,3]
2403 ; SSE-NEXT:    movdqa 656(%rdi), %xmm0
2404 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2405 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,0,1,1]
2406 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
2407 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
2408 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm2[2,3,2,3]
2409 ; SSE-NEXT:    movdqa 608(%rdi), %xmm5
2410 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm5[0],xmm0[1],xmm5[1]
2411 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2412 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2413 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
2414 ; SSE-NEXT:    # xmm0 = mem[3,3,3,3]
2415 ; SSE-NEXT:    movdqa %xmm13, %xmm9
2416 ; SSE-NEXT:    movdqa %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2417 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm13[1,1,1,1]
2418 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
2419 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
2420 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
2421 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload
2422 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm13[0],xmm1[1],xmm13[1]
2423 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2424 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2425 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm10[3,3,3,3]
2426 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
2427 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm8[1,1,1,1]
2428 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
2429 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
2430 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
2431 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
2432 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
2433 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2434 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2435 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm14[3,3,3,3]
2436 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm6[1,1,1,1]
2437 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
2438 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
2439 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
2440 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
2441 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm14[0],xmm1[1],xmm14[1]
2442 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2443 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2444 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
2445 ; SSE-NEXT:    # xmm0 = mem[3,3,3,3]
2446 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
2447 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm10[1,1,1,1]
2448 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
2449 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
2450 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
2451 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
2452 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm6[0],xmm1[1],xmm6[1]
2453 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2454 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2455 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm7[3,3,3,3]
2456 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm4[1,1,1,1]
2457 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
2458 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm11[2,3,2,3]
2459 ; SSE-NEXT:    movdqa %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2460 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm15[0],xmm1[1],xmm15[1]
2461 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2462 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2463 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
2464 ; SSE-NEXT:    # xmm0 = mem[3,3,3,3]
2465 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
2466 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm7[1,1,1,1]
2467 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
2468 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
2469 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
2470 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
2471 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm4[0],xmm1[1],xmm4[1]
2472 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2473 ; SSE-NEXT:    movapd %xmm1, (%rsp) # 16-byte Spill
2474 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm2[3,3,3,3]
2475 ; SSE-NEXT:    movdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2476 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm5[1,1,1,1]
2477 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
2478 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
2479 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
2480 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
2481 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
2482 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2483 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2484 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
2485 ; SSE-NEXT:    # xmm0 = mem[3,3,3,3]
2486 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm12[1,1,1,1]
2487 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
2488 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
2489 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
2490 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload
2491 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm11[0],xmm1[1],xmm11[1]
2492 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2493 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2494 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm9[2,3,2,3]
2495 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload
2496 ; SSE-NEXT:    movdqa %xmm12, %xmm1
2497 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
2498 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm13[2,2,3,3]
2499 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload
2500 ; SSE-NEXT:    # xmm9 = mem[0,0,1,1]
2501 ; SSE-NEXT:    punpckldq {{.*#+}} xmm9 = xmm9[0],xmm0[0],xmm9[1],xmm0[1]
2502 ; SSE-NEXT:    movsd {{.*#+}} xmm9 = xmm1[0],xmm9[1]
2503 ; SSE-NEXT:    movapd %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2504 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm8[2,3,2,3]
2505 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload
2506 ; SSE-NEXT:    movdqa %xmm13, %xmm1
2507 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
2508 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm3[2,2,3,3]
2509 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload
2510 ; SSE-NEXT:    # xmm3 = mem[0,0,1,1]
2511 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm0[0],xmm3[1],xmm0[1]
2512 ; SSE-NEXT:    movsd {{.*#+}} xmm3 = xmm1[0],xmm3[1]
2513 ; SSE-NEXT:    movapd %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2514 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
2515 ; SSE-NEXT:    # xmm0 = mem[2,3,2,3]
2516 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2517 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
2518 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm14[2,2,3,3]
2519 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
2520 ; SSE-NEXT:    pshufd {{.*#+}} xmm9 = xmm14[0,0,1,1]
2521 ; SSE-NEXT:    punpckldq {{.*#+}} xmm9 = xmm9[0],xmm0[0],xmm9[1],xmm0[1]
2522 ; SSE-NEXT:    movsd {{.*#+}} xmm9 = xmm1[0],xmm9[1]
2523 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm10[2,3,2,3]
2524 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2525 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
2526 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm6[2,2,3,3]
2527 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload
2528 ; SSE-NEXT:    # xmm8 = mem[0,0,1,1]
2529 ; SSE-NEXT:    punpckldq {{.*#+}} xmm8 = xmm8[0],xmm0[0],xmm8[1],xmm0[1]
2530 ; SSE-NEXT:    movsd {{.*#+}} xmm8 = xmm1[0],xmm8[1]
2531 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
2532 ; SSE-NEXT:    # xmm0 = mem[2,3,2,3]
2533 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
2534 ; SSE-NEXT:    movdqa %xmm10, %xmm1
2535 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
2536 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm15[2,2,3,3]
2537 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload
2538 ; SSE-NEXT:    # xmm6 = mem[0,0,1,1]
2539 ; SSE-NEXT:    punpckldq {{.*#+}} xmm6 = xmm6[0],xmm0[0],xmm6[1],xmm0[1]
2540 ; SSE-NEXT:    movsd {{.*#+}} xmm6 = xmm1[0],xmm6[1]
2541 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm7[2,3,2,3]
2542 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2543 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
2544 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm4[2,2,3,3]
2545 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
2546 ; SSE-NEXT:    # xmm4 = mem[0,0,1,1]
2547 ; SSE-NEXT:    punpckldq {{.*#+}} xmm4 = xmm4[0],xmm0[0],xmm4[1],xmm0[1]
2548 ; SSE-NEXT:    movsd {{.*#+}} xmm4 = xmm1[0],xmm4[1]
2549 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm5[2,3,2,3]
2550 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2551 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
2552 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm2[2,2,3,3]
2553 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload
2554 ; SSE-NEXT:    # xmm3 = mem[0,0,1,1]
2555 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]
2556 ; SSE-NEXT:    movsd {{.*#+}} xmm3 = xmm0[0],xmm3[1]
2557 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
2558 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm5[2,3,2,3]
2559 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2560 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
2561 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm11[2,2,3,3]
2562 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
2563 ; SSE-NEXT:    # xmm2 = mem[0,0,1,1]
2564 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]
2565 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm1[0],xmm2[1]
2566 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm12[1,1,1,1]
2567 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
2568 ; SSE-NEXT:    # xmm1 = mem[3,3,3,3]
2569 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
2570 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
2571 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
2572 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
2573 ; SSE-NEXT:    punpckldq {{.*#+}} xmm15 = xmm15[0],xmm1[0],xmm15[1],xmm1[1]
2574 ; SSE-NEXT:    movsd {{.*#+}} xmm15 = xmm0[0],xmm15[1]
2575 ; SSE-NEXT:    movapd %xmm15, %xmm7
2576 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm13[1,1,1,1]
2577 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
2578 ; SSE-NEXT:    # xmm1 = mem[3,3,3,3]
2579 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
2580 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
2581 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
2582 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
2583 ; SSE-NEXT:    punpckldq {{.*#+}} xmm15 = xmm15[0],xmm1[0],xmm15[1],xmm1[1]
2584 ; SSE-NEXT:    movsd {{.*#+}} xmm15 = xmm0[0],xmm15[1]
2585 ; SSE-NEXT:    movapd %xmm15, %xmm11
2586 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
2587 ; SSE-NEXT:    # xmm0 = mem[1,1,1,1]
2588 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
2589 ; SSE-NEXT:    # xmm1 = mem[3,3,3,3]
2590 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
2591 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
2592 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
2593 ; SSE-NEXT:    punpckldq {{.*#+}} xmm14 = xmm14[0],xmm1[0],xmm14[1],xmm1[1]
2594 ; SSE-NEXT:    movsd {{.*#+}} xmm14 = xmm0[0],xmm14[1]
2595 ; SSE-NEXT:    movapd %xmm14, %xmm12
2596 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
2597 ; SSE-NEXT:    # xmm0 = mem[1,1,1,1]
2598 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
2599 ; SSE-NEXT:    # xmm1 = mem[3,3,3,3]
2600 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
2601 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
2602 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
2603 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload
2604 ; SSE-NEXT:    punpckldq {{.*#+}} xmm13 = xmm13[0],xmm1[0],xmm13[1],xmm1[1]
2605 ; SSE-NEXT:    movsd {{.*#+}} xmm13 = xmm0[0],xmm13[1]
2606 ; SSE-NEXT:    movapd %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2607 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm10[1,1,1,1]
2608 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
2609 ; SSE-NEXT:    # xmm1 = mem[3,3,3,3]
2610 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
2611 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
2612 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
2613 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
2614 ; SSE-NEXT:    punpckldq {{.*#+}} xmm15 = xmm15[0],xmm1[0],xmm15[1],xmm1[1]
2615 ; SSE-NEXT:    movsd {{.*#+}} xmm15 = xmm0[0],xmm15[1]
2616 ; SSE-NEXT:    movapd %xmm15, %xmm10
2617 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
2618 ; SSE-NEXT:    # xmm0 = mem[1,1,1,1]
2619 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
2620 ; SSE-NEXT:    # xmm1 = mem[3,3,3,3]
2621 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
2622 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
2623 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
2624 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
2625 ; SSE-NEXT:    punpckldq {{.*#+}} xmm15 = xmm15[0],xmm1[0],xmm15[1],xmm1[1]
2626 ; SSE-NEXT:    movsd {{.*#+}} xmm15 = xmm0[0],xmm15[1]
2627 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
2628 ; SSE-NEXT:    # xmm0 = mem[1,1,1,1]
2629 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
2630 ; SSE-NEXT:    # xmm1 = mem[3,3,3,3]
2631 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
2632 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
2633 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
2634 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload
2635 ; SSE-NEXT:    punpckldq {{.*#+}} xmm13 = xmm13[0],xmm1[0],xmm13[1],xmm1[1]
2636 ; SSE-NEXT:    movsd {{.*#+}} xmm13 = xmm0[0],xmm13[1]
2637 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
2638 ; SSE-NEXT:    # xmm0 = mem[1,1,1,1]
2639 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm5[3,3,3,3]
2640 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
2641 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
2642 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
2643 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
2644 ; SSE-NEXT:    punpckldq {{.*#+}} xmm14 = xmm14[0],xmm1[0],xmm14[1],xmm1[1]
2645 ; SSE-NEXT:    movsd {{.*#+}} xmm14 = xmm0[0],xmm14[1]
2646 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2647 ; SSE-NEXT:    movaps %xmm0, 96(%rsi)
2648 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2649 ; SSE-NEXT:    movaps %xmm0, 32(%rsi)
2650 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2651 ; SSE-NEXT:    movaps %xmm0, 112(%rsi)
2652 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2653 ; SSE-NEXT:    movaps %xmm0, 48(%rsi)
2654 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2655 ; SSE-NEXT:    movaps %xmm0, 64(%rsi)
2656 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2657 ; SSE-NEXT:    movaps %xmm0, (%rsi)
2658 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2659 ; SSE-NEXT:    movaps %xmm0, 80(%rsi)
2660 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2661 ; SSE-NEXT:    movaps %xmm0, 16(%rsi)
2662 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2663 ; SSE-NEXT:    movaps %xmm0, 96(%rdx)
2664 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2665 ; SSE-NEXT:    movaps %xmm0, 32(%rdx)
2666 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2667 ; SSE-NEXT:    movaps %xmm0, 112(%rdx)
2668 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2669 ; SSE-NEXT:    movaps %xmm0, 48(%rdx)
2670 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2671 ; SSE-NEXT:    movaps %xmm0, 64(%rdx)
2672 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2673 ; SSE-NEXT:    movaps %xmm0, (%rdx)
2674 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2675 ; SSE-NEXT:    movaps %xmm0, 80(%rdx)
2676 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2677 ; SSE-NEXT:    movaps %xmm0, 16(%rdx)
2678 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2679 ; SSE-NEXT:    movaps %xmm0, 96(%rcx)
2680 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2681 ; SSE-NEXT:    movaps %xmm0, 112(%rcx)
2682 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2683 ; SSE-NEXT:    movaps %xmm0, 64(%rcx)
2684 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2685 ; SSE-NEXT:    movaps %xmm0, 80(%rcx)
2686 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2687 ; SSE-NEXT:    movaps %xmm0, 32(%rcx)
2688 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2689 ; SSE-NEXT:    movaps %xmm0, 48(%rcx)
2690 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2691 ; SSE-NEXT:    movaps %xmm0, (%rcx)
2692 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2693 ; SSE-NEXT:    movaps %xmm0, 16(%rcx)
2694 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2695 ; SSE-NEXT:    movaps %xmm0, 112(%r8)
2696 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2697 ; SSE-NEXT:    movaps %xmm0, 96(%r8)
2698 ; SSE-NEXT:    movaps (%rsp), %xmm0 # 16-byte Reload
2699 ; SSE-NEXT:    movaps %xmm0, 80(%r8)
2700 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2701 ; SSE-NEXT:    movaps %xmm0, 64(%r8)
2702 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2703 ; SSE-NEXT:    movaps %xmm0, 48(%r8)
2704 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2705 ; SSE-NEXT:    movaps %xmm0, 32(%r8)
2706 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2707 ; SSE-NEXT:    movaps %xmm0, 16(%r8)
2708 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2709 ; SSE-NEXT:    movaps %xmm0, (%r8)
2710 ; SSE-NEXT:    movapd %xmm2, 112(%r9)
2711 ; SSE-NEXT:    movapd %xmm3, 96(%r9)
2712 ; SSE-NEXT:    movapd %xmm4, 80(%r9)
2713 ; SSE-NEXT:    movapd %xmm6, 64(%r9)
2714 ; SSE-NEXT:    movapd %xmm8, 48(%r9)
2715 ; SSE-NEXT:    movapd %xmm9, 32(%r9)
2716 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2717 ; SSE-NEXT:    movaps %xmm0, 16(%r9)
2718 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2719 ; SSE-NEXT:    movaps %xmm0, (%r9)
2720 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
2721 ; SSE-NEXT:    movapd %xmm14, 112(%rax)
2722 ; SSE-NEXT:    movapd %xmm13, 96(%rax)
2723 ; SSE-NEXT:    movapd %xmm15, 80(%rax)
2724 ; SSE-NEXT:    movapd %xmm10, 64(%rax)
2725 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2726 ; SSE-NEXT:    movaps %xmm0, 48(%rax)
2727 ; SSE-NEXT:    movapd %xmm12, 32(%rax)
2728 ; SSE-NEXT:    movapd %xmm11, 16(%rax)
2729 ; SSE-NEXT:    movapd %xmm7, (%rax)
2730 ; SSE-NEXT:    addq $1032, %rsp # imm = 0x408
2731 ; SSE-NEXT:    retq
2733 ; AVX1-ONLY-LABEL: load_i32_stride6_vf32:
2734 ; AVX1-ONLY:       # %bb.0:
2735 ; AVX1-ONLY-NEXT:    subq $1032, %rsp # imm = 0x408
2736 ; AVX1-ONLY-NEXT:    vmovaps 416(%rdi), %ymm9
2737 ; AVX1-ONLY-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2738 ; AVX1-ONLY-NEXT:    vmovaps 480(%rdi), %ymm4
2739 ; AVX1-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2740 ; AVX1-ONLY-NEXT:    vmovaps 448(%rdi), %ymm5
2741 ; AVX1-ONLY-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2742 ; AVX1-ONLY-NEXT:    vmovapd 160(%rdi), %ymm2
2743 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2744 ; AVX1-ONLY-NEXT:    vmovapd 128(%rdi), %ymm3
2745 ; AVX1-ONLY-NEXT:    vmovupd %ymm3, (%rsp) # 32-byte Spill
2746 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %ymm6
2747 ; AVX1-ONLY-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2748 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %ymm7
2749 ; AVX1-ONLY-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2750 ; AVX1-ONLY-NEXT:    vmovaps 96(%rdi), %ymm1
2751 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2752 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdi), %ymm0
2753 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2754 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 96(%rdi), %ymm0, %ymm8
2755 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[2,0],ymm8[0,0],ymm1[6,4],ymm8[4,4]
2756 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm8[2,2],ymm0[6,4],ymm8[6,6]
2757 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm12 = ymm7[0,1,2,3],ymm6[4,5],ymm7[6,7]
2758 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm12, %xmm7
2759 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm12[0,1],xmm7[2,3]
2760 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[0,2],xmm7[0,3]
2761 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]
2762 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm3[2,3],ymm2[0,1]
2763 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2764 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[3],ymm3[2]
2765 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,1,2,0,4,5,6,4]
2766 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
2767 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2768 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 480(%rdi), %ymm5, %ymm6
2769 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm4[2,0],ymm6[0,0],ymm4[6,4],ymm6[4,4]
2770 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm6[2,2],ymm0[6,4],ymm6[6,6]
2771 ; AVX1-ONLY-NEXT:    vmovaps 384(%rdi), %ymm1
2772 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2773 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm13 = ymm1[0,1,2,3],ymm9[4,5],ymm1[6,7]
2774 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm13, %xmm5
2775 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm13[0,1],xmm5[2,3]
2776 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[0,2],xmm5[0,3]
2777 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]
2778 ; AVX1-ONLY-NEXT:    vmovapd 544(%rdi), %ymm1
2779 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2780 ; AVX1-ONLY-NEXT:    vmovapd 512(%rdi), %ymm2
2781 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2782 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm2[2,3],ymm1[0,1]
2783 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2784 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[3],ymm2[2]
2785 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,1,2,0,4,5,6,4]
2786 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
2787 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2788 ; AVX1-ONLY-NEXT:    vmovaps 288(%rdi), %ymm1
2789 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2790 ; AVX1-ONLY-NEXT:    vmovaps 256(%rdi), %ymm0
2791 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2792 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 288(%rdi), %ymm0, %ymm3
2793 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[2,0],ymm3[0,0],ymm1[6,4],ymm3[4,4]
2794 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm3[2,2],ymm0[6,4],ymm3[6,6]
2795 ; AVX1-ONLY-NEXT:    vmovaps 224(%rdi), %ymm1
2796 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2797 ; AVX1-ONLY-NEXT:    vmovaps 192(%rdi), %ymm2
2798 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2799 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm11 = ymm2[0,1,2,3],ymm1[4,5],ymm2[6,7]
2800 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm11, %xmm2
2801 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm11[0,1],xmm2[2,3]
2802 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[0,2],xmm2[0,3]
2803 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]
2804 ; AVX1-ONLY-NEXT:    vmovapd 352(%rdi), %ymm1
2805 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2806 ; AVX1-ONLY-NEXT:    vmovapd 320(%rdi), %ymm4
2807 ; AVX1-ONLY-NEXT:    vmovupd %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2808 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm4[2,3],ymm1[0,1]
2809 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2810 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm1 = ymm1[0],ymm4[0],ymm1[3],ymm4[2]
2811 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,1,2,0,4,5,6,4]
2812 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
2813 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2814 ; AVX1-ONLY-NEXT:    vmovaps 672(%rdi), %ymm1
2815 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2816 ; AVX1-ONLY-NEXT:    vmovaps 640(%rdi), %ymm0
2817 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2818 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 672(%rdi), %ymm0, %ymm9
2819 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[2,0],ymm9[0,0],ymm1[6,4],ymm9[4,4]
2820 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm10 = ymm0[2,0],ymm9[2,2],ymm0[6,4],ymm9[6,6]
2821 ; AVX1-ONLY-NEXT:    vmovaps 608(%rdi), %ymm0
2822 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2823 ; AVX1-ONLY-NEXT:    vmovaps 576(%rdi), %ymm1
2824 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2825 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm1[0,1,2,3],ymm0[4,5],ymm1[6,7]
2826 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm4, %xmm1
2827 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm15 = xmm4[0,1],xmm1[2,3]
2828 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm15 = xmm15[0,2],xmm1[0,3]
2829 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm15 = ymm15[0,1,2],ymm10[3,4,5,6,7]
2830 ; AVX1-ONLY-NEXT:    vmovapd 736(%rdi), %ymm10
2831 ; AVX1-ONLY-NEXT:    vmovupd %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2832 ; AVX1-ONLY-NEXT:    vmovapd 704(%rdi), %ymm0
2833 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2834 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm10 = ymm0[2,3],ymm10[0,1]
2835 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm14 = ymm10[0],ymm0[0],ymm10[3],ymm0[2]
2836 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[0,1,2,0,4,5,6,4]
2837 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm14 = ymm15[0,1,2,3,4,5],ymm14[6,7]
2838 ; AVX1-ONLY-NEXT:    vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2839 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload
2840 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm14 = ymm15[3,0],ymm8[1,0],ymm15[7,4],ymm8[5,4]
2841 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm8 = ymm14[2,0],ymm8[2,3],ymm14[6,4],ymm8[6,7]
2842 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm12 = xmm12[1,0],xmm7[3,0]
2843 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm7 = xmm12[0,2],xmm7[1,3]
2844 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2],ymm8[3,4,5,6,7]
2845 ; AVX1-ONLY-NEXT:    vmovups (%rsp), %ymm12 # 32-byte Reload
2846 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2847 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm8 = ymm0[3,1],ymm12[1,3],ymm0[7,5],ymm12[5,7]
2848 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm8 = ymm8[0,1,2,0,4,5,6,4]
2849 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5],ymm8[6,7]
2850 ; AVX1-ONLY-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2851 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
2852 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm7 = ymm8[3,0],ymm6[1,0],ymm8[7,4],ymm6[5,4]
2853 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm6 = ymm7[2,0],ymm6[2,3],ymm7[6,4],ymm6[6,7]
2854 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm7 = xmm13[1,0],xmm5[3,0]
2855 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm5 = xmm7[0,2],xmm5[1,3]
2856 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2],ymm6[3,4,5,6,7]
2857 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
2858 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2859 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm6 = ymm0[3,1],ymm14[1,3],ymm0[7,5],ymm14[5,7]
2860 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm6 = ymm6[0,1,2,0,4,5,6,4]
2861 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],ymm6[6,7]
2862 ; AVX1-ONLY-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2863 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2864 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm5 = ymm0[3,0],ymm3[1,0],ymm0[7,4],ymm3[5,4]
2865 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm3 = ymm5[2,0],ymm3[2,3],ymm5[6,4],ymm3[6,7]
2866 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm5 = xmm11[1,0],xmm2[3,0]
2867 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm5[0,2],xmm2[1,3]
2868 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2],ymm3[3,4,5,6,7]
2869 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2870 ; AVX1-ONLY-NEXT:    vshufps $215, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm3 # 32-byte Folded Reload
2871 ; AVX1-ONLY-NEXT:    # ymm3 = ymm0[3,1],mem[1,3],ymm0[7,5],mem[5,7]
2872 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[0,1,2,0,4,5,6,4]
2873 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm3[6,7]
2874 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2875 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload
2876 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm11[3,0],ymm9[1,0],ymm11[7,4],ymm9[5,4]
2877 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm3 = ymm2[2,0],ymm9[2,3],ymm2[6,4],ymm9[6,7]
2878 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm4[1,0],xmm1[3,0]
2879 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm2[0,2],xmm1[1,3]
2880 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm3[3,4,5,6,7]
2881 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
2882 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm10[3,1],ymm13[1,3],ymm10[7,5],ymm13[5,7]
2883 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,1,2,0,4,5,6,4]
2884 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
2885 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2886 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2887 ; AVX1-ONLY-NEXT:    vblendps $12, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm4 # 32-byte Folded Reload
2888 ; AVX1-ONLY-NEXT:    # ymm4 = ymm0[0,1],mem[2,3],ymm0[4,5,6,7]
2889 ; AVX1-ONLY-NEXT:    vshufps $38, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm1 # 32-byte Folded Reload
2890 ; AVX1-ONLY-NEXT:    # ymm1 = ymm15[2,1],mem[2,0],ymm15[6,5],mem[6,4]
2891 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm2 = ymm1[2,3,0,1]
2892 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm4, %xmm0
2893 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2894 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm3 = xmm4[2,0],xmm0[2,3]
2895 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2],ymm2[3,4,5,6,7]
2896 ; AVX1-ONLY-NEXT:    vblendps $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm3 # 32-byte Folded Reload
2897 ; AVX1-ONLY-NEXT:    # ymm3 = ymm12[0,1,2,3],mem[4,5],ymm12[6,7]
2898 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm3[2,3,0,1]
2899 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2900 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm5 = ymm0[0,0],ymm3[2,0],ymm0[4,4],ymm3[6,4]
2901 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3,4],ymm5[5,6,7]
2902 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2903 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2904 ; AVX1-ONLY-NEXT:    vblendps $12, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm6 # 32-byte Folded Reload
2905 ; AVX1-ONLY-NEXT:    # ymm6 = ymm0[0,1],mem[2,3],ymm0[4,5,6,7]
2906 ; AVX1-ONLY-NEXT:    vshufps $38, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm5 # 32-byte Folded Reload
2907 ; AVX1-ONLY-NEXT:    # ymm5 = ymm8[2,1],mem[2,0],ymm8[6,5],mem[6,4]
2908 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm5 = ymm5[2,3,0,1]
2909 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm6, %xmm0
2910 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2911 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm7 = xmm6[2,0],xmm0[2,3]
2912 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm7[0,1,2],ymm5[3,4,5,6,7]
2913 ; AVX1-ONLY-NEXT:    vblendps $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm2 # 32-byte Folded Reload
2914 ; AVX1-ONLY-NEXT:    # ymm2 = ymm14[0,1,2,3],mem[4,5],ymm14[6,7]
2915 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm2[2,3,0,1]
2916 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2917 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm7 = ymm0[0,0],ymm2[2,0],ymm0[4,4],ymm2[6,4]
2918 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm5[0,1,2,3,4],ymm7[5,6,7]
2919 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2920 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2921 ; AVX1-ONLY-NEXT:    vblendps $12, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm9 # 32-byte Folded Reload
2922 ; AVX1-ONLY-NEXT:    # ymm9 = ymm0[0,1],mem[2,3],ymm0[4,5,6,7]
2923 ; AVX1-ONLY-NEXT:    vshufps $38, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm7 # 32-byte Folded Reload
2924 ; AVX1-ONLY-NEXT:    # ymm7 = ymm11[2,1],mem[2,0],ymm11[6,5],mem[6,4]
2925 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm10 = ymm7[2,3,0,1]
2926 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm9, %xmm0
2927 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2928 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm11 = xmm9[2,0],xmm0[2,3]
2929 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm12 = ymm11[0,1,2],ymm10[3,4,5,6,7]
2930 ; AVX1-ONLY-NEXT:    vblendps $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm10 # 32-byte Folded Reload
2931 ; AVX1-ONLY-NEXT:    # ymm10 = ymm13[0,1,2,3],mem[4,5],ymm13[6,7]
2932 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm7 = ymm10[2,3,0,1]
2933 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm13 = ymm7[0,0],ymm10[2,0],ymm7[4,4],ymm10[6,4]
2934 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm12[0,1,2,3,4],ymm13[5,6,7]
2935 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2936 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2937 ; AVX1-ONLY-NEXT:    vblendps $12, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm12 # 32-byte Folded Reload
2938 ; AVX1-ONLY-NEXT:    # ymm12 = ymm0[0,1],mem[2,3],ymm0[4,5,6,7]
2939 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
2940 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
2941 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm13 = ymm5[2,1],ymm8[2,0],ymm5[6,5],ymm8[6,4]
2942 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm13 = ymm13[2,3,0,1]
2943 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm12, %xmm14
2944 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm15 = xmm12[2,0],xmm14[2,3]
2945 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm13 = ymm15[0,1,2],ymm13[3,4,5,6,7]
2946 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2947 ; AVX1-ONLY-NEXT:    vblendps $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm15 # 32-byte Folded Reload
2948 ; AVX1-ONLY-NEXT:    # ymm15 = ymm0[0,1,2,3],mem[4,5],ymm0[6,7]
2949 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm15[2,3,0,1]
2950 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm0[0,0],ymm15[2,0],ymm0[4,4],ymm15[6,4]
2951 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm13[0,1,2,3,4],ymm1[5,6,7]
2952 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2953 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
2954 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,1],ymm3[3,1],ymm1[4,5],ymm3[7,5]
2955 ; AVX1-ONLY-NEXT:    vshufps $247, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm3 # 16-byte Folded Reload
2956 ; AVX1-ONLY-NEXT:    # xmm3 = xmm4[3,1],mem[3,3]
2957 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
2958 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload
2959 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm4 = ymm11[3,1],ymm13[2,1],ymm11[7,5],ymm13[6,5]
2960 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm4 = ymm4[2,3,0,1]
2961 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2],ymm4[3,4,5,6,7]
2962 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3,4],ymm1[5,6,7]
2963 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2964 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
2965 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,1],ymm2[3,1],ymm1[4,5],ymm2[7,5]
2966 ; AVX1-ONLY-NEXT:    vshufps $247, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6, %xmm2 # 16-byte Folded Reload
2967 ; AVX1-ONLY-NEXT:    # xmm2 = xmm6[3,1],mem[3,3]
2968 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
2969 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
2970 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm3 = ymm4[3,1],ymm6[2,1],ymm4[7,5],ymm6[6,5]
2971 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm3[2,3,0,1]
2972 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2],ymm3[3,4,5,6,7]
2973 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4],ymm1[5,6,7]
2974 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2975 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[0,1],ymm15[3,1],ymm0[4,5],ymm15[7,5]
2976 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm12[3,1],xmm14[3,3]
2977 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, %ymm3
2978 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm5[3,1],ymm8[2,1],ymm5[7,5],ymm8[6,5]
2979 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm2 = ymm2[2,3,0,1]
2980 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
2981 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4],ymm0[5,6,7]
2982 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2983 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm7[0,1],ymm10[3,1],ymm7[4,5],ymm10[7,5]
2984 ; AVX1-ONLY-NEXT:    vshufps $247, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9, %xmm1 # 16-byte Folded Reload
2985 ; AVX1-ONLY-NEXT:    # xmm1 = xmm9[3,1],mem[3,3]
2986 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
2987 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
2988 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[3,1],ymm12[2,1],ymm2[7,5],ymm12[6,5]
2989 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm2 = ymm2[2,3,0,1]
2990 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
2991 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4],ymm0[5,6,7]
2992 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2993 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2994 ; AVX1-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload
2995 ; AVX1-ONLY-NEXT:    # ymm2 = mem[0,1],ymm0[2,3],mem[4,5,6,7]
2996 ; AVX1-ONLY-NEXT:    vmovaps 416(%rdi), %xmm0
2997 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2998 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[2,2,3,3]
2999 ; AVX1-ONLY-NEXT:    vmovaps 400(%rdi), %xmm1
3000 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3001 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0],xmm0[1],xmm1[2,3]
3002 ; AVX1-ONLY-NEXT:    vmovapd 464(%rdi), %xmm1
3003 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3004 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm1 = ymm1[1],ymm6[0],ymm1[2],ymm6[2]
3005 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm4[0,1],ymm1[2,0],ymm4[4,5],ymm1[6,4]
3006 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3,4,5,6,7]
3007 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3008 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm7 = ymm2[2,3,0,1]
3009 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm2[2,0],ymm7[0,0],ymm2[6,4],ymm7[4,4]
3010 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm7[0,2],ymm1[2,0],ymm7[4,6],ymm1[6,4]
3011 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
3012 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3013 ; AVX1-ONLY-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
3014 ; AVX1-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm6 # 32-byte Folded Reload
3015 ; AVX1-ONLY-NEXT:    # ymm6 = mem[0,1],ymm0[2,3],mem[4,5,6,7]
3016 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %xmm0
3017 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, (%rsp) # 16-byte Spill
3018 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[2,2,3,3]
3019 ; AVX1-ONLY-NEXT:    vmovaps 16(%rdi), %xmm15
3020 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm15[0],xmm0[1],xmm15[2,3]
3021 ; AVX1-ONLY-NEXT:    vmovapd 80(%rdi), %xmm10
3022 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm1 = ymm10[1],ymm13[0],ymm10[2],ymm13[2]
3023 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm11[0,1],ymm1[2,0],ymm11[4,5],ymm1[6,4]
3024 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3,4,5,6,7]
3025 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm6[2,3,0,1]
3026 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm6[2,0],ymm1[0,0],ymm6[6,4],ymm1[4,4]
3027 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm1[0,2],ymm2[2,0],ymm1[4,6],ymm2[6,4]
3028 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm2[5,6,7]
3029 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3030 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3031 ; AVX1-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm5 # 32-byte Folded Reload
3032 ; AVX1-ONLY-NEXT:    # ymm5 = mem[0,1],ymm0[2,3],mem[4,5,6,7]
3033 ; AVX1-ONLY-NEXT:    vmovaps 224(%rdi), %xmm0
3034 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3035 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[2,2,3,3]
3036 ; AVX1-ONLY-NEXT:    vmovaps 208(%rdi), %xmm13
3037 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm13[0],xmm0[1],xmm13[2,3]
3038 ; AVX1-ONLY-NEXT:    vmovapd 272(%rdi), %xmm2
3039 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3040 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm2 = ymm2[1],ymm8[0],ymm2[2],ymm8[2]
3041 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm3[0,1],ymm2[2,0],ymm3[4,5],ymm2[6,4]
3042 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm2[2,3,4,5,6,7]
3043 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm2 = ymm5[2,3,0,1]
3044 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm3 = ymm5[2,0],ymm2[0,0],ymm5[6,4],ymm2[4,4]
3045 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm3 = ymm2[0,2],ymm3[2,0],ymm2[4,6],ymm3[6,4]
3046 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm3[5,6,7]
3047 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3048 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3049 ; AVX1-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm3 # 32-byte Folded Reload
3050 ; AVX1-ONLY-NEXT:    # ymm3 = mem[0,1],ymm0[2,3],mem[4,5,6,7]
3051 ; AVX1-ONLY-NEXT:    vmovaps 608(%rdi), %xmm11
3052 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm11[2,2,3,3]
3053 ; AVX1-ONLY-NEXT:    vmovaps 592(%rdi), %xmm8
3054 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm8[0],xmm0[1],xmm8[2,3]
3055 ; AVX1-ONLY-NEXT:    vmovapd 656(%rdi), %xmm9
3056 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm14 = ymm9[1],ymm12[0],ymm9[2],ymm12[2]
3057 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3058 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm14 = ymm4[0,1],ymm14[2,0],ymm4[4,5],ymm14[6,4]
3059 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm14 = ymm0[0,1],ymm14[2,3,4,5,6,7]
3060 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm3[2,3,0,1]
3061 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm12 = ymm3[2,0],ymm0[0,0],ymm3[6,4],ymm0[4,4]
3062 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm12 = ymm0[0,2],ymm12[2,0],ymm0[4,6],ymm12[6,4]
3063 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3,4],ymm12[5,6,7]
3064 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm6 = ymm6[3,0],ymm1[1,0],ymm6[7,4],ymm1[5,4]
3065 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,3],ymm6[2,0],ymm1[4,7],ymm6[6,4]
3066 ; AVX1-ONLY-NEXT:    vblendps $12, (%rsp), %xmm15, %xmm6 # 16-byte Folded Reload
3067 ; AVX1-ONLY-NEXT:    # xmm6 = xmm15[0,1],mem[2,3]
3068 ; AVX1-ONLY-NEXT:    vshufps $215, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
3069 ; AVX1-ONLY-NEXT:    # ymm10 = ymm10[3,1],mem[1,3],ymm10[7,5],mem[5,7]
3070 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
3071 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm10 = ymm12[1,1],ymm10[2,0],ymm12[5,5],ymm10[6,4]
3072 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm6 = xmm6[1,3,2,3]
3073 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1],ymm10[2,3,4,5,6,7]
3074 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4],ymm1[5,6,7]
3075 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3076 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[3,0],ymm7[1,0],ymm1[7,4],ymm7[5,4]
3077 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm7[0,3],ymm1[2,0],ymm7[4,7],ymm1[6,4]
3078 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
3079 ; AVX1-ONLY-NEXT:    vblendps $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7, %xmm7 # 16-byte Folded Reload
3080 ; AVX1-ONLY-NEXT:    # xmm7 = xmm7[0,1],mem[2,3]
3081 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
3082 ; AVX1-ONLY-NEXT:    vshufps $215, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
3083 ; AVX1-ONLY-NEXT:    # ymm10 = ymm10[3,1],mem[1,3],ymm10[7,5],mem[5,7]
3084 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
3085 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm10 = ymm12[1,1],ymm10[2,0],ymm12[5,5],ymm10[6,4]
3086 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm7 = xmm7[1,3,2,3]
3087 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1],ymm10[2,3,4,5,6,7]
3088 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3,4],ymm1[5,6,7]
3089 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm5[3,0],ymm2[1,0],ymm5[7,4],ymm2[5,4]
3090 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm2[0,3],ymm1[2,0],ymm2[4,7],ymm1[6,4]
3091 ; AVX1-ONLY-NEXT:    vblendps $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm13, %xmm2 # 16-byte Folded Reload
3092 ; AVX1-ONLY-NEXT:    # xmm2 = xmm13[0,1],mem[2,3]
3093 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
3094 ; AVX1-ONLY-NEXT:    vshufps $215, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm5 # 32-byte Folded Reload
3095 ; AVX1-ONLY-NEXT:    # ymm5 = ymm5[3,1],mem[1,3],ymm5[7,5],mem[5,7]
3096 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
3097 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm5 = ymm10[1,1],ymm5[2,0],ymm10[5,5],ymm5[6,4]
3098 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[1,3,2,3]
3099 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1],ymm5[2,3,4,5,6,7]
3100 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4],ymm1[5,6,7]
3101 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm3[3,0],ymm0[1,0],ymm3[7,4],ymm0[5,4]
3102 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[0,3],ymm2[2,0],ymm0[4,7],ymm2[6,4]
3103 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm8[0,1],xmm11[2,3]
3104 ; AVX1-ONLY-NEXT:    vshufps $215, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm3 # 32-byte Folded Reload
3105 ; AVX1-ONLY-NEXT:    # ymm3 = ymm9[3,1],mem[1,3],ymm9[7,5],mem[5,7]
3106 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm3 = ymm4[1,1],ymm3[2,0],ymm4[5,5],ymm3[6,4]
3107 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[1,3,2,3]
3108 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1],ymm3[2,3,4,5,6,7]
3109 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3,4],ymm0[5,6,7]
3110 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
3111 ; AVX1-ONLY-NEXT:    vmovaps %ymm2, 96(%rsi)
3112 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
3113 ; AVX1-ONLY-NEXT:    vmovaps %ymm2, 32(%rsi)
3114 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
3115 ; AVX1-ONLY-NEXT:    vmovaps %ymm2, 64(%rsi)
3116 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
3117 ; AVX1-ONLY-NEXT:    vmovaps %ymm2, (%rsi)
3118 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
3119 ; AVX1-ONLY-NEXT:    vmovaps %ymm2, 96(%rdx)
3120 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
3121 ; AVX1-ONLY-NEXT:    vmovaps %ymm2, 32(%rdx)
3122 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
3123 ; AVX1-ONLY-NEXT:    vmovaps %ymm2, 64(%rdx)
3124 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
3125 ; AVX1-ONLY-NEXT:    vmovaps %ymm2, (%rdx)
3126 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
3127 ; AVX1-ONLY-NEXT:    vmovaps %ymm2, 32(%rcx)
3128 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
3129 ; AVX1-ONLY-NEXT:    vmovaps %ymm2, 96(%rcx)
3130 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
3131 ; AVX1-ONLY-NEXT:    vmovaps %ymm2, 64(%rcx)
3132 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
3133 ; AVX1-ONLY-NEXT:    vmovaps %ymm2, (%rcx)
3134 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
3135 ; AVX1-ONLY-NEXT:    vmovaps %ymm2, 96(%r8)
3136 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
3137 ; AVX1-ONLY-NEXT:    vmovaps %ymm2, 32(%r8)
3138 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
3139 ; AVX1-ONLY-NEXT:    vmovaps %ymm2, 64(%r8)
3140 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
3141 ; AVX1-ONLY-NEXT:    vmovaps %ymm2, (%r8)
3142 ; AVX1-ONLY-NEXT:    vmovaps %ymm14, 96(%r9)
3143 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
3144 ; AVX1-ONLY-NEXT:    vmovaps %ymm2, 32(%r9)
3145 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
3146 ; AVX1-ONLY-NEXT:    vmovaps %ymm2, (%r9)
3147 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
3148 ; AVX1-ONLY-NEXT:    vmovaps %ymm2, 64(%r9)
3149 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3150 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 96(%rax)
3151 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 32(%rax)
3152 ; AVX1-ONLY-NEXT:    vmovaps %ymm7, 64(%rax)
3153 ; AVX1-ONLY-NEXT:    vmovaps %ymm6, (%rax)
3154 ; AVX1-ONLY-NEXT:    addq $1032, %rsp # imm = 0x408
3155 ; AVX1-ONLY-NEXT:    vzeroupper
3156 ; AVX1-ONLY-NEXT:    retq
3158 ; AVX2-SLOW-LABEL: load_i32_stride6_vf32:
3159 ; AVX2-SLOW:       # %bb.0:
3160 ; AVX2-SLOW-NEXT:    subq $1256, %rsp # imm = 0x4E8
3161 ; AVX2-SLOW-NEXT:    vmovaps 480(%rdi), %ymm9
3162 ; AVX2-SLOW-NEXT:    vmovaps 448(%rdi), %ymm10
3163 ; AVX2-SLOW-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3164 ; AVX2-SLOW-NEXT:    vmovaps 416(%rdi), %ymm7
3165 ; AVX2-SLOW-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3166 ; AVX2-SLOW-NEXT:    vmovaps 128(%rdi), %ymm2
3167 ; AVX2-SLOW-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3168 ; AVX2-SLOW-NEXT:    vmovaps 160(%rdi), %ymm3
3169 ; AVX2-SLOW-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3170 ; AVX2-SLOW-NEXT:    vmovaps 96(%rdi), %ymm4
3171 ; AVX2-SLOW-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3172 ; AVX2-SLOW-NEXT:    vmovaps (%rdi), %ymm0
3173 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3174 ; AVX2-SLOW-NEXT:    vmovaps 32(%rdi), %ymm1
3175 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3176 ; AVX2-SLOW-NEXT:    vmovaps 64(%rdi), %ymm5
3177 ; AVX2-SLOW-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3178 ; AVX2-SLOW-NEXT:    vmovaps {{.*#+}} xmm8 = [0,6,4,u]
3179 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm13 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
3180 ; AVX2-SLOW-NEXT:    vpermps %ymm13, %ymm8, %ymm0
3181 ; AVX2-SLOW-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm5[0,1],ymm4[0,1]
3182 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm5 = ymm1[0,1,2,3,4,5],ymm4[6,7]
3183 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm5[0,2,2,2,4,6,6,6]
3184 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
3185 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm6 = ymm3[0,1,2,3],ymm2[4,5,6,7]
3186 ; AVX2-SLOW-NEXT:    vbroadcastsd {{.*#+}} ymm2 = [4,2,4,2,4,2,4,2]
3187 ; AVX2-SLOW-NEXT:    vpermps %ymm6, %ymm2, %ymm1
3188 ; AVX2-SLOW-NEXT:    vmovaps %ymm2, %ymm11
3189 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
3190 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3191 ; AVX2-SLOW-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3192 ; AVX2-SLOW-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm10[0,1],ymm9[0,1]
3193 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm3 = ymm0[0,1,2,3,4,5],ymm9[6,7]
3194 ; AVX2-SLOW-NEXT:    vmovaps 384(%rdi), %ymm0
3195 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3196 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm4 = ymm0[0,1,2,3],ymm7[4,5],ymm0[6,7]
3197 ; AVX2-SLOW-NEXT:    vpermps %ymm4, %ymm8, %ymm0
3198 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm3[0,2,2,2,4,6,6,6]
3199 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
3200 ; AVX2-SLOW-NEXT:    vmovaps 512(%rdi), %ymm1
3201 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3202 ; AVX2-SLOW-NEXT:    vmovaps 544(%rdi), %ymm2
3203 ; AVX2-SLOW-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3204 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm1[4,5,6,7]
3205 ; AVX2-SLOW-NEXT:    vpermps %ymm2, %ymm11, %ymm1
3206 ; AVX2-SLOW-NEXT:    vmovaps %ymm11, %ymm12
3207 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
3208 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3209 ; AVX2-SLOW-NEXT:    vmovaps 288(%rdi), %ymm1
3210 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3211 ; AVX2-SLOW-NEXT:    vmovaps 256(%rdi), %ymm0
3212 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3213 ; AVX2-SLOW-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm0[0,1],ymm1[0,1]
3214 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm10 = ymm0[0,1,2,3,4,5],ymm1[6,7]
3215 ; AVX2-SLOW-NEXT:    vmovaps 224(%rdi), %ymm1
3216 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3217 ; AVX2-SLOW-NEXT:    vmovaps 192(%rdi), %ymm0
3218 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3219 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
3220 ; AVX2-SLOW-NEXT:    vpermps %ymm1, %ymm8, %ymm14
3221 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm9 = ymm10[0,2,2,2,4,6,6,6]
3222 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm9 = ymm14[0,1,2],ymm9[3,4,5,6,7]
3223 ; AVX2-SLOW-NEXT:    vmovaps 320(%rdi), %ymm0
3224 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3225 ; AVX2-SLOW-NEXT:    vmovaps 352(%rdi), %ymm7
3226 ; AVX2-SLOW-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3227 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm14 = ymm7[0,1,2,3],ymm0[4,5,6,7]
3228 ; AVX2-SLOW-NEXT:    vpermps %ymm14, %ymm11, %ymm7
3229 ; AVX2-SLOW-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3230 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm7 = ymm9[0,1,2,3,4,5],ymm7[6,7]
3231 ; AVX2-SLOW-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3232 ; AVX2-SLOW-NEXT:    vmovaps 608(%rdi), %ymm0
3233 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3234 ; AVX2-SLOW-NEXT:    vmovaps 576(%rdi), %ymm7
3235 ; AVX2-SLOW-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3236 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3],ymm0[4,5],ymm7[6,7]
3237 ; AVX2-SLOW-NEXT:    vpermps %ymm7, %ymm8, %ymm8
3238 ; AVX2-SLOW-NEXT:    vmovaps 672(%rdi), %ymm0
3239 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3240 ; AVX2-SLOW-NEXT:    vmovaps 640(%rdi), %ymm9
3241 ; AVX2-SLOW-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3242 ; AVX2-SLOW-NEXT:    vperm2f128 {{.*#+}} ymm9 = ymm9[0,1],ymm0[0,1]
3243 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5],ymm0[6,7]
3244 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm11 = ymm9[0,2,2,2,4,6,6,6]
3245 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2],ymm11[3,4,5,6,7]
3246 ; AVX2-SLOW-NEXT:    vmovaps 704(%rdi), %ymm11
3247 ; AVX2-SLOW-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3248 ; AVX2-SLOW-NEXT:    vmovaps 736(%rdi), %ymm0
3249 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3250 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm11 = ymm0[0,1,2,3],ymm11[4,5,6,7]
3251 ; AVX2-SLOW-NEXT:    vpermps %ymm11, %ymm12, %ymm15
3252 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],ymm15[6,7]
3253 ; AVX2-SLOW-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3254 ; AVX2-SLOW-NEXT:    vmovaps {{.*#+}} xmm8 = [1,7,5,u]
3255 ; AVX2-SLOW-NEXT:    vpermps %ymm13, %ymm8, %ymm13
3256 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm5 = ymm5[1,3,2,3,5,7,6,7]
3257 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm5 = ymm13[0,1,2],ymm5[3,4,5,6,7]
3258 ; AVX2-SLOW-NEXT:    vbroadcastsd {{.*#+}} ymm12 = [5,3,5,3,5,3,5,3]
3259 ; AVX2-SLOW-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3260 ; AVX2-SLOW-NEXT:    vpermps %ymm6, %ymm12, %ymm6
3261 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],ymm6[6,7]
3262 ; AVX2-SLOW-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3263 ; AVX2-SLOW-NEXT:    vpermps %ymm4, %ymm8, %ymm4
3264 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[1,3,2,3,5,7,6,7]
3265 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2],ymm3[3,4,5,6,7]
3266 ; AVX2-SLOW-NEXT:    vpermps %ymm2, %ymm12, %ymm2
3267 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3,4,5],ymm2[6,7]
3268 ; AVX2-SLOW-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3269 ; AVX2-SLOW-NEXT:    vpermps %ymm1, %ymm8, %ymm0
3270 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm10[1,3,2,3,5,7,6,7]
3271 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
3272 ; AVX2-SLOW-NEXT:    vpermps %ymm14, %ymm12, %ymm1
3273 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
3274 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3275 ; AVX2-SLOW-NEXT:    vpermps %ymm7, %ymm8, %ymm0
3276 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm9[1,3,2,3,5,7,6,7]
3277 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
3278 ; AVX2-SLOW-NEXT:    vpermps %ymm11, %ymm12, %ymm1
3279 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
3280 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3281 ; AVX2-SLOW-NEXT:    vmovaps (%rdi), %xmm3
3282 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm0 = xmm3[2,3,2,3]
3283 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
3284 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm7[0,0,2,3,4,4,6,7]
3285 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3],ymm0[4],ymm1[5,6,7]
3286 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
3287 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload
3288 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm12[0,1],ymm11[2,3],ymm12[4,5],ymm11[6,7]
3289 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[2,0,2,3,6,4,6,7]
3290 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,0,3]
3291 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,3,2,3]
3292 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
3293 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
3294 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm9[0,0,0,0,4,4,4,4]
3295 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
3296 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm2 = ymm8[0,0,2,3,4,4,6,7]
3297 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]
3298 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,1,0,3]
3299 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
3300 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3301 ; AVX2-SLOW-NEXT:    vmovaps 384(%rdi), %xmm1
3302 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm0 = xmm1[2,3,2,3]
3303 ; AVX2-SLOW-NEXT:    vpermilps $224, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Folded Reload
3304 ; AVX2-SLOW-NEXT:    # ymm2 = mem[0,0,2,3,4,4,6,7]
3305 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm2[1,2,3],ymm0[4],ymm2[5,6,7]
3306 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
3307 ; AVX2-SLOW-NEXT:    vblendps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
3308 ; AVX2-SLOW-NEXT:    # ymm2 = mem[0,1],ymm2[2,3],mem[4,5],ymm2[6,7]
3309 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[2,0,2,3,6,4,6,7]
3310 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,2,0,3]
3311 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,3,2,3]
3312 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm2[3,4,5,6,7]
3313 ; AVX2-SLOW-NEXT:    vpermilps $0, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Folded Reload
3314 ; AVX2-SLOW-NEXT:    # ymm2 = mem[0,0,0,0,4,4,4,4]
3315 ; AVX2-SLOW-NEXT:    vpermilps $224, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Folded Reload
3316 ; AVX2-SLOW-NEXT:    # ymm4 = mem[0,0,2,3,4,4,6,7]
3317 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2],ymm2[3],ymm4[4,5,6],ymm2[7]
3318 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,1,0,3]
3319 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm2[5,6,7]
3320 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3321 ; AVX2-SLOW-NEXT:    vmovaps 576(%rdi), %xmm0
3322 ; AVX2-SLOW-NEXT:    vmovaps %xmm0, (%rsp) # 16-byte Spill
3323 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[2,3,2,3]
3324 ; AVX2-SLOW-NEXT:    vpermilps $224, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Folded Reload
3325 ; AVX2-SLOW-NEXT:    # ymm2 = mem[0,0,2,3,4,4,6,7]
3326 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm2[1,2,3],ymm0[4],ymm2[5,6,7]
3327 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
3328 ; AVX2-SLOW-NEXT:    vblendps $204, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
3329 ; AVX2-SLOW-NEXT:    # ymm2 = ymm2[0,1],mem[2,3],ymm2[4,5],mem[6,7]
3330 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[2,0,2,3,6,4,6,7]
3331 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,2,0,3]
3332 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,3,2,3]
3333 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm2[3,4,5,6,7]
3334 ; AVX2-SLOW-NEXT:    vpermilps $0, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Folded Reload
3335 ; AVX2-SLOW-NEXT:    # ymm2 = mem[0,0,0,0,4,4,4,4]
3336 ; AVX2-SLOW-NEXT:    vpermilps $224, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Folded Reload
3337 ; AVX2-SLOW-NEXT:    # ymm5 = mem[0,0,2,3,4,4,6,7]
3338 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm5[0,1,2],ymm2[3],ymm5[4,5,6],ymm2[7]
3339 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,1,0,3]
3340 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm2[5,6,7]
3341 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3342 ; AVX2-SLOW-NEXT:    vmovaps 192(%rdi), %xmm0
3343 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm2 = xmm0[2,3,2,3]
3344 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
3345 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm5 = ymm13[0,0,2,3,4,4,6,7]
3346 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0],ymm5[1,2,3],ymm2[4],ymm5[5,6,7]
3347 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload
3348 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
3349 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm5 = ymm15[0,1],ymm14[2,3],ymm15[4,5],ymm14[6,7]
3350 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm5 = ymm5[2,0,2,3,6,4,6,7]
3351 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm5 = ymm5[0,2,0,3]
3352 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,3,2,3]
3353 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2],ymm5[3,4,5,6,7]
3354 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
3355 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm5 = ymm10[0,0,0,0,4,4,4,4]
3356 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3357 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm6 = ymm4[0,0,2,3,4,4,6,7]
3358 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2],ymm5[3],ymm6[4,5,6],ymm5[7]
3359 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm5 = ymm5[0,1,0,3]
3360 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm5[5,6,7]
3361 ; AVX2-SLOW-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3362 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm2 = xmm3[3,3,3,3]
3363 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm3 = ymm7[0,1,3,3,4,5,7,7]
3364 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0],ymm3[1,2,3],ymm2[4],ymm3[5,6,7]
3365 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm3 = ymm11[3,3,3,3,7,7,7,7]
3366 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0],ymm12[1],ymm3[2,3,4],ymm12[5],ymm3[6,7]
3367 ; AVX2-SLOW-NEXT:    vmovaps %ymm12, %ymm11
3368 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,2,0,3]
3369 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,3,2,3]
3370 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2],ymm3[3,4,5,6,7]
3371 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm3 = ymm9[0,1,0,1,4,5,4,5]
3372 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm5 = ymm8[0,1,3,3,4,5,7,7]
3373 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm3 = ymm5[0,1,2],ymm3[3],ymm5[4,5,6],ymm3[7]
3374 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,1,0,3]
3375 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm3[5,6,7]
3376 ; AVX2-SLOW-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3377 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[3,3,3,3]
3378 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
3379 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm2 = ymm12[0,1,3,3,4,5,7,7]
3380 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm2[1,2,3],ymm1[4],ymm2[5,6,7]
3381 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
3382 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm2 = ymm6[3,3,3,3,7,7,7,7]
3383 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
3384 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0],ymm5[1],ymm2[2,3,4],ymm5[5],ymm2[6,7]
3385 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,2,0,3]
3386 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,3,2,3]
3387 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
3388 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
3389 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm2 = ymm9[0,1,0,1,4,5,4,5]
3390 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
3391 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm3 = ymm7[0,1,3,3,4,5,7,7]
3392 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2],ymm2[3],ymm3[4,5,6],ymm2[7]
3393 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,1,0,3]
3394 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
3395 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3396 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[3,3,3,3]
3397 ; AVX2-SLOW-NEXT:    vmovaps %ymm13, %ymm3
3398 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm13[0,1,3,3,4,5,7,7]
3399 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3],ymm0[4],ymm1[5,6,7]
3400 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm14[3,3,3,3,7,7,7,7]
3401 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm15[1],ymm1[2,3,4],ymm15[5],ymm1[6,7]
3402 ; AVX2-SLOW-NEXT:    vmovaps %ymm15, %ymm14
3403 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,0,3]
3404 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,3,2,3]
3405 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
3406 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm10[0,1,0,1,4,5,4,5]
3407 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm2 = ymm4[0,1,3,3,4,5,7,7]
3408 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]
3409 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,1,0,3]
3410 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
3411 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3412 ; AVX2-SLOW-NEXT:    vpermilps $255, (%rsp), %xmm0 # 16-byte Folded Reload
3413 ; AVX2-SLOW-NEXT:    # xmm0 = mem[3,3,3,3]
3414 ; AVX2-SLOW-NEXT:    vpermilps $244, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Folded Reload
3415 ; AVX2-SLOW-NEXT:    # ymm1 = mem[0,1,3,3,4,5,7,7]
3416 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3],ymm0[4],ymm1[5,6,7]
3417 ; AVX2-SLOW-NEXT:    vpermilps $255, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Folded Reload
3418 ; AVX2-SLOW-NEXT:    # ymm1 = mem[3,3,3,3,7,7,7,7]
3419 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
3420 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm8[1],ymm1[2,3,4],ymm8[5],ymm1[6,7]
3421 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,0,3]
3422 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,3,2,3]
3423 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
3424 ; AVX2-SLOW-NEXT:    vpermilps $68, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Folded Reload
3425 ; AVX2-SLOW-NEXT:    # ymm1 = mem[0,1,0,1,4,5,4,5]
3426 ; AVX2-SLOW-NEXT:    vpermilps $244, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Folded Reload
3427 ; AVX2-SLOW-NEXT:    # ymm2 = mem[0,1,3,3,4,5,7,7]
3428 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]
3429 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,1,0,3]
3430 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
3431 ; AVX2-SLOW-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
3432 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm5[0,1,2,3],ymm6[4,5,6,7]
3433 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3434 ; AVX2-SLOW-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm2 # 32-byte Folded Reload
3435 ; AVX2-SLOW-NEXT:    # ymm2 = ymm12[0,1,2,3],mem[4,5,6,7]
3436 ; AVX2-SLOW-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3437 ; AVX2-SLOW-NEXT:    vmovaps 464(%rdi), %xmm0
3438 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3439 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3],ymm1[4,5,6,7]
3440 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[0,1,0,2,4,5,4,6]
3441 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
3442 ; AVX2-SLOW-NEXT:    vpermps %ymm2, %ymm12, %ymm1
3443 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
3444 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm13 = ymm9[0,1],ymm7[2,3],ymm9[4,5,6,7]
3445 ; AVX2-SLOW-NEXT:    vbroadcastf128 {{.*#+}} ymm9 = [0,2,0,6,0,2,0,6]
3446 ; AVX2-SLOW-NEXT:    # ymm9 = mem[0,1,0,1]
3447 ; AVX2-SLOW-NEXT:    vpermps %ymm13, %ymm9, %ymm1
3448 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
3449 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3450 ; AVX2-SLOW-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm7 # 32-byte Folded Reload
3451 ; AVX2-SLOW-NEXT:    # ymm7 = ymm11[0,1,2,3],mem[4,5,6,7]
3452 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3453 ; AVX2-SLOW-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm11 # 32-byte Folded Reload
3454 ; AVX2-SLOW-NEXT:    # ymm11 = ymm0[0,1,2,3],mem[4,5,6,7]
3455 ; AVX2-SLOW-NEXT:    vmovaps 80(%rdi), %xmm6
3456 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm7[0,1],ymm6[2,3],ymm7[4,5,6,7]
3457 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[0,1,0,2,4,5,4,6]
3458 ; AVX2-SLOW-NEXT:    vpermps %ymm11, %ymm12, %ymm1
3459 ; AVX2-SLOW-NEXT:    vmovaps %ymm12, %ymm15
3460 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
3461 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3462 ; AVX2-SLOW-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm4 # 32-byte Folded Reload
3463 ; AVX2-SLOW-NEXT:    # ymm4 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
3464 ; AVX2-SLOW-NEXT:    vpermps %ymm4, %ymm9, %ymm1
3465 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
3466 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3467 ; AVX2-SLOW-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm10 # 32-byte Folded Reload
3468 ; AVX2-SLOW-NEXT:    # ymm10 = ymm14[0,1,2,3],mem[4,5,6,7]
3469 ; AVX2-SLOW-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm5 # 32-byte Folded Reload
3470 ; AVX2-SLOW-NEXT:    # ymm5 = ymm3[0,1,2,3],mem[4,5,6,7]
3471 ; AVX2-SLOW-NEXT:    vmovaps 272(%rdi), %xmm3
3472 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1],ymm3[2,3],ymm10[4,5,6,7]
3473 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[0,1,0,2,4,5,4,6]
3474 ; AVX2-SLOW-NEXT:    vpermps %ymm5, %ymm12, %ymm14
3475 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1],ymm0[2,3,4,5,6,7]
3476 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3477 ; AVX2-SLOW-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload
3478 ; AVX2-SLOW-NEXT:    # ymm2 = mem[0,1],ymm0[2,3],mem[4,5,6,7]
3479 ; AVX2-SLOW-NEXT:    vpermps %ymm2, %ymm9, %ymm12
3480 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm14[0,1,2,3,4],ymm12[5,6,7]
3481 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3482 ; AVX2-SLOW-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm12 # 32-byte Folded Reload
3483 ; AVX2-SLOW-NEXT:    # ymm12 = ymm8[0,1,2,3],mem[4,5,6,7]
3484 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3485 ; AVX2-SLOW-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload
3486 ; AVX2-SLOW-NEXT:    # ymm1 = ymm0[0,1,2,3],mem[4,5,6,7]
3487 ; AVX2-SLOW-NEXT:    vmovaps 656(%rdi), %xmm0
3488 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm14 = ymm12[0,1],ymm0[2,3],ymm12[4,5,6,7]
3489 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[0,1,0,2,4,5,4,6]
3490 ; AVX2-SLOW-NEXT:    vpermps %ymm1, %ymm15, %ymm15
3491 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm14 = ymm15[0,1],ymm14[2,3,4,5,6,7]
3492 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload
3493 ; AVX2-SLOW-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm15 # 32-byte Folded Reload
3494 ; AVX2-SLOW-NEXT:    # ymm15 = mem[0,1],ymm15[2,3],mem[4,5,6,7]
3495 ; AVX2-SLOW-NEXT:    vpermps %ymm15, %ymm9, %ymm9
3496 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm9 = ymm14[0,1,2,3,4],ymm9[5,6,7]
3497 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm7 = ymm7[1,1,1,1,5,5,5,5]
3498 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2],ymm6[3],ymm7[4,5,6,7]
3499 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
3500 ; AVX2-SLOW-NEXT:    vpermps %ymm11, %ymm14, %ymm7
3501 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1],ymm6[2,3,4,5,6,7]
3502 ; AVX2-SLOW-NEXT:    vbroadcastf128 {{.*#+}} ymm7 = [0,3,1,7,0,3,1,7]
3503 ; AVX2-SLOW-NEXT:    # ymm7 = mem[0,1,0,1]
3504 ; AVX2-SLOW-NEXT:    vpermps %ymm4, %ymm7, %ymm4
3505 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm4 = ymm6[0,1,2,3,4],ymm4[5,6,7]
3506 ; AVX2-SLOW-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Folded Reload
3507 ; AVX2-SLOW-NEXT:    # ymm6 = mem[1,1,1,1,5,5,5,5]
3508 ; AVX2-SLOW-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm6 # 32-byte Folded Reload
3509 ; AVX2-SLOW-NEXT:    # ymm6 = ymm6[0,1,2],mem[3],ymm6[4,5,6,7]
3510 ; AVX2-SLOW-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm11 # 32-byte Folded Reload
3511 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm6 = ymm11[0,1],ymm6[2,3,4,5,6,7]
3512 ; AVX2-SLOW-NEXT:    vpermps %ymm13, %ymm7, %ymm8
3513 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4],ymm8[5,6,7]
3514 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm8 = ymm10[1,1,1,1,5,5,5,5]
3515 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm3 = ymm8[0,1,2],ymm3[3],ymm8[4,5,6,7]
3516 ; AVX2-SLOW-NEXT:    vpermps %ymm5, %ymm14, %ymm5
3517 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm3 = ymm5[0,1],ymm3[2,3,4,5,6,7]
3518 ; AVX2-SLOW-NEXT:    vpermps %ymm2, %ymm7, %ymm2
3519 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3,4],ymm2[5,6,7]
3520 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm3 = ymm12[1,1,1,1,5,5,5,5]
3521 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm3[0,1,2],ymm0[3],ymm3[4,5,6,7]
3522 ; AVX2-SLOW-NEXT:    vpermps %ymm1, %ymm14, %ymm1
3523 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
3524 ; AVX2-SLOW-NEXT:    vpermps %ymm15, %ymm7, %ymm1
3525 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
3526 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3527 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 96(%rsi)
3528 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3529 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 32(%rsi)
3530 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3531 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 64(%rsi)
3532 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3533 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, (%rsi)
3534 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3535 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 96(%rdx)
3536 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3537 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 32(%rdx)
3538 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3539 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 64(%rdx)
3540 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3541 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, (%rdx)
3542 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3543 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 32(%rcx)
3544 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3545 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 96(%rcx)
3546 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3547 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 64(%rcx)
3548 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3549 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, (%rcx)
3550 ; AVX2-SLOW-NEXT:    vmovups (%rsp), %ymm1 # 32-byte Reload
3551 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 96(%r8)
3552 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3553 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 32(%r8)
3554 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3555 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 64(%r8)
3556 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3557 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, (%r8)
3558 ; AVX2-SLOW-NEXT:    vmovaps %ymm9, 96(%r9)
3559 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3560 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 32(%r9)
3561 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3562 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, (%r9)
3563 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3564 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 64(%r9)
3565 ; AVX2-SLOW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3566 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 96(%rax)
3567 ; AVX2-SLOW-NEXT:    vmovaps %ymm2, 32(%rax)
3568 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 64(%rax)
3569 ; AVX2-SLOW-NEXT:    vmovaps %ymm4, (%rax)
3570 ; AVX2-SLOW-NEXT:    addq $1256, %rsp # imm = 0x4E8
3571 ; AVX2-SLOW-NEXT:    vzeroupper
3572 ; AVX2-SLOW-NEXT:    retq
3574 ; AVX2-FAST-LABEL: load_i32_stride6_vf32:
3575 ; AVX2-FAST:       # %bb.0:
3576 ; AVX2-FAST-NEXT:    subq $1256, %rsp # imm = 0x4E8
3577 ; AVX2-FAST-NEXT:    vmovaps 480(%rdi), %ymm9
3578 ; AVX2-FAST-NEXT:    vmovaps 448(%rdi), %ymm10
3579 ; AVX2-FAST-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3580 ; AVX2-FAST-NEXT:    vmovaps 416(%rdi), %ymm7
3581 ; AVX2-FAST-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3582 ; AVX2-FAST-NEXT:    vmovaps 128(%rdi), %ymm2
3583 ; AVX2-FAST-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3584 ; AVX2-FAST-NEXT:    vmovaps 160(%rdi), %ymm3
3585 ; AVX2-FAST-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3586 ; AVX2-FAST-NEXT:    vmovaps 96(%rdi), %ymm4
3587 ; AVX2-FAST-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3588 ; AVX2-FAST-NEXT:    vmovaps (%rdi), %ymm0
3589 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3590 ; AVX2-FAST-NEXT:    vmovaps 32(%rdi), %ymm1
3591 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3592 ; AVX2-FAST-NEXT:    vmovaps 64(%rdi), %ymm5
3593 ; AVX2-FAST-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3594 ; AVX2-FAST-NEXT:    vmovaps {{.*#+}} xmm8 = [0,6,4,u]
3595 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm13 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
3596 ; AVX2-FAST-NEXT:    vpermps %ymm13, %ymm8, %ymm0
3597 ; AVX2-FAST-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm5[0,1],ymm4[0,1]
3598 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm6 = ymm1[0,1,2,3,4,5],ymm4[6,7]
3599 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm6[0,2,2,2,4,6,6,6]
3600 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
3601 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm5 = ymm3[0,1,2,3],ymm2[4,5,6,7]
3602 ; AVX2-FAST-NEXT:    vbroadcastsd {{.*#+}} ymm12 = [4,2,4,2,4,2,4,2]
3603 ; AVX2-FAST-NEXT:    vpermps %ymm5, %ymm12, %ymm1
3604 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
3605 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3606 ; AVX2-FAST-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3607 ; AVX2-FAST-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm10[0,1],ymm9[0,1]
3608 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm4 = ymm0[0,1,2,3,4,5],ymm9[6,7]
3609 ; AVX2-FAST-NEXT:    vmovaps 384(%rdi), %ymm0
3610 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3611 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm3 = ymm0[0,1,2,3],ymm7[4,5],ymm0[6,7]
3612 ; AVX2-FAST-NEXT:    vpermps %ymm3, %ymm8, %ymm0
3613 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm4[0,2,2,2,4,6,6,6]
3614 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
3615 ; AVX2-FAST-NEXT:    vmovaps 512(%rdi), %ymm1
3616 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3617 ; AVX2-FAST-NEXT:    vmovaps 544(%rdi), %ymm2
3618 ; AVX2-FAST-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3619 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm1[4,5,6,7]
3620 ; AVX2-FAST-NEXT:    vpermps %ymm2, %ymm12, %ymm1
3621 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
3622 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3623 ; AVX2-FAST-NEXT:    vmovaps 288(%rdi), %ymm1
3624 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3625 ; AVX2-FAST-NEXT:    vmovaps 256(%rdi), %ymm0
3626 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3627 ; AVX2-FAST-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm0[0,1],ymm1[0,1]
3628 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm10 = ymm0[0,1,2,3,4,5],ymm1[6,7]
3629 ; AVX2-FAST-NEXT:    vmovaps 224(%rdi), %ymm1
3630 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3631 ; AVX2-FAST-NEXT:    vmovaps 192(%rdi), %ymm0
3632 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3633 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
3634 ; AVX2-FAST-NEXT:    vpermps %ymm1, %ymm8, %ymm14
3635 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm9 = ymm10[0,2,2,2,4,6,6,6]
3636 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm9 = ymm14[0,1,2],ymm9[3,4,5,6,7]
3637 ; AVX2-FAST-NEXT:    vmovaps 320(%rdi), %ymm0
3638 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3639 ; AVX2-FAST-NEXT:    vmovaps 352(%rdi), %ymm7
3640 ; AVX2-FAST-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3641 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm14 = ymm7[0,1,2,3],ymm0[4,5,6,7]
3642 ; AVX2-FAST-NEXT:    vpermps %ymm14, %ymm12, %ymm7
3643 ; AVX2-FAST-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3644 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm7 = ymm9[0,1,2,3,4,5],ymm7[6,7]
3645 ; AVX2-FAST-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3646 ; AVX2-FAST-NEXT:    vmovaps 608(%rdi), %ymm0
3647 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3648 ; AVX2-FAST-NEXT:    vmovaps 576(%rdi), %ymm7
3649 ; AVX2-FAST-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3650 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3],ymm0[4,5],ymm7[6,7]
3651 ; AVX2-FAST-NEXT:    vpermps %ymm7, %ymm8, %ymm8
3652 ; AVX2-FAST-NEXT:    vmovaps 672(%rdi), %ymm0
3653 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3654 ; AVX2-FAST-NEXT:    vmovaps 640(%rdi), %ymm9
3655 ; AVX2-FAST-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3656 ; AVX2-FAST-NEXT:    vperm2f128 {{.*#+}} ymm9 = ymm9[0,1],ymm0[0,1]
3657 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5],ymm0[6,7]
3658 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm11 = ymm9[0,2,2,2,4,6,6,6]
3659 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2],ymm11[3,4,5,6,7]
3660 ; AVX2-FAST-NEXT:    vmovaps 704(%rdi), %ymm11
3661 ; AVX2-FAST-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3662 ; AVX2-FAST-NEXT:    vmovaps 736(%rdi), %ymm0
3663 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3664 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm11 = ymm0[0,1,2,3],ymm11[4,5,6,7]
3665 ; AVX2-FAST-NEXT:    vpermps %ymm11, %ymm12, %ymm15
3666 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],ymm15[6,7]
3667 ; AVX2-FAST-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3668 ; AVX2-FAST-NEXT:    vmovaps {{.*#+}} xmm8 = [1,7,5,u]
3669 ; AVX2-FAST-NEXT:    vpermps %ymm13, %ymm8, %ymm13
3670 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm6 = ymm6[1,3,2,3,5,7,6,7]
3671 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm6 = ymm13[0,1,2],ymm6[3,4,5,6,7]
3672 ; AVX2-FAST-NEXT:    vbroadcastsd {{.*#+}} ymm13 = [5,3,5,3,5,3,5,3]
3673 ; AVX2-FAST-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3674 ; AVX2-FAST-NEXT:    vpermps %ymm5, %ymm13, %ymm5
3675 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2,3,4,5],ymm5[6,7]
3676 ; AVX2-FAST-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3677 ; AVX2-FAST-NEXT:    vpermps %ymm3, %ymm8, %ymm3
3678 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[1,3,2,3,5,7,6,7]
3679 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2],ymm4[3,4,5,6,7]
3680 ; AVX2-FAST-NEXT:    vpermps %ymm2, %ymm13, %ymm2
3681 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3,4,5],ymm2[6,7]
3682 ; AVX2-FAST-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3683 ; AVX2-FAST-NEXT:    vpermps %ymm1, %ymm8, %ymm0
3684 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm10[1,3,2,3,5,7,6,7]
3685 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
3686 ; AVX2-FAST-NEXT:    vpermps %ymm14, %ymm13, %ymm1
3687 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
3688 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3689 ; AVX2-FAST-NEXT:    vpermps %ymm7, %ymm8, %ymm0
3690 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm9[1,3,2,3,5,7,6,7]
3691 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
3692 ; AVX2-FAST-NEXT:    vpermps %ymm11, %ymm13, %ymm1
3693 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
3694 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3695 ; AVX2-FAST-NEXT:    vmovaps (%rdi), %xmm0
3696 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm1 = xmm0[2,3,2,3]
3697 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
3698 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm2 = ymm7[0,0,2,3,4,4,6,7]
3699 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm2[1,2,3],ymm1[4],ymm2[5,6,7]
3700 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
3701 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload
3702 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm3 = ymm9[0,1],ymm11[2,3],ymm9[4,5],ymm11[6,7]
3703 ; AVX2-FAST-NEXT:    vmovaps {{.*#+}} ymm10 = [2,0,6,4,2,0,6,7]
3704 ; AVX2-FAST-NEXT:    vpermps %ymm3, %ymm10, %ymm3
3705 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,3,2,3]
3706 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2],ymm3[3,4,5,6,7]
3707 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
3708 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm3 = ymm2[0,0,0,0,4,4,4,4]
3709 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
3710 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm4 = ymm8[0,0,2,3,4,4,6,7]
3711 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2],ymm3[3],ymm4[4,5,6],ymm3[7]
3712 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,1,0,3]
3713 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm3[5,6,7]
3714 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3715 ; AVX2-FAST-NEXT:    vmovaps 384(%rdi), %xmm1
3716 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm3 = xmm1[2,3,2,3]
3717 ; AVX2-FAST-NEXT:    vpermilps $224, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Folded Reload
3718 ; AVX2-FAST-NEXT:    # ymm4 = mem[0,0,2,3,4,4,6,7]
3719 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0],ymm4[1,2,3],ymm3[4],ymm4[5,6,7]
3720 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3721 ; AVX2-FAST-NEXT:    vblendps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload
3722 ; AVX2-FAST-NEXT:    # ymm4 = mem[0,1],ymm4[2,3],mem[4,5],ymm4[6,7]
3723 ; AVX2-FAST-NEXT:    vpermps %ymm4, %ymm10, %ymm4
3724 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,3,2,3]
3725 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2],ymm4[3,4,5,6,7]
3726 ; AVX2-FAST-NEXT:    vpermilps $0, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Folded Reload
3727 ; AVX2-FAST-NEXT:    # ymm4 = mem[0,0,0,0,4,4,4,4]
3728 ; AVX2-FAST-NEXT:    vpermilps $224, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Folded Reload
3729 ; AVX2-FAST-NEXT:    # ymm5 = mem[0,0,2,3,4,4,6,7]
3730 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1,2],ymm4[3],ymm5[4,5,6],ymm4[7]
3731 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm4 = ymm4[0,1,0,3]
3732 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4],ymm4[5,6,7]
3733 ; AVX2-FAST-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3734 ; AVX2-FAST-NEXT:    vmovaps 576(%rdi), %xmm3
3735 ; AVX2-FAST-NEXT:    vmovaps %xmm3, (%rsp) # 16-byte Spill
3736 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm4 = xmm3[2,3,2,3]
3737 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
3738 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm5 = ymm13[0,0,2,3,4,4,6,7]
3739 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0],ymm5[1,2,3],ymm4[4],ymm5[5,6,7]
3740 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3741 ; AVX2-FAST-NEXT:    vblendps $204, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm5 # 32-byte Folded Reload
3742 ; AVX2-FAST-NEXT:    # ymm5 = ymm3[0,1],mem[2,3],ymm3[4,5],mem[6,7]
3743 ; AVX2-FAST-NEXT:    vpermps %ymm5, %ymm10, %ymm5
3744 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm4 = ymm4[0,3,2,3]
3745 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2],ymm5[3,4,5,6,7]
3746 ; AVX2-FAST-NEXT:    vpermilps $0, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Folded Reload
3747 ; AVX2-FAST-NEXT:    # ymm5 = mem[0,0,0,0,4,4,4,4]
3748 ; AVX2-FAST-NEXT:    vpermilps $224, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Folded Reload
3749 ; AVX2-FAST-NEXT:    # ymm6 = mem[0,0,2,3,4,4,6,7]
3750 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2],ymm5[3],ymm6[4,5,6],ymm5[7]
3751 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm5 = ymm5[0,1,0,3]
3752 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3,4],ymm5[5,6,7]
3753 ; AVX2-FAST-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3754 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload
3755 ; AVX2-FAST-NEXT:    vblendps $204, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm4 # 32-byte Folded Reload
3756 ; AVX2-FAST-NEXT:    # ymm4 = ymm15[0,1],mem[2,3],ymm15[4,5],mem[6,7]
3757 ; AVX2-FAST-NEXT:    vpermps %ymm4, %ymm10, %ymm4
3758 ; AVX2-FAST-NEXT:    vmovaps 192(%rdi), %xmm12
3759 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm5 = xmm12[2,3,2,3]
3760 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
3761 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm6 = ymm14[0,0,2,3,4,4,6,7]
3762 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0],ymm6[1,2,3],ymm5[4],ymm6[5,6,7]
3763 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm5 = ymm5[0,3,2,3]
3764 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1,2],ymm4[3,4,5,6,7]
3765 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
3766 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm5 = ymm10[0,0,0,0,4,4,4,4]
3767 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3768 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm6 = ymm3[0,0,2,3,4,4,6,7]
3769 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2],ymm5[3],ymm6[4,5,6],ymm5[7]
3770 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm5 = ymm5[0,1,0,3]
3771 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4],ymm5[5,6,7]
3772 ; AVX2-FAST-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3773 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[3,3,3,3]
3774 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm4 = ymm7[0,1,3,3,4,5,7,7]
3775 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm4[1,2,3],ymm0[4],ymm4[5,6,7]
3776 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm4 = ymm11[3,3,3,3,7,7,7,7]
3777 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0],ymm9[1],ymm4[2,3,4],ymm9[5],ymm4[6,7]
3778 ; AVX2-FAST-NEXT:    vmovaps %ymm9, %ymm11
3779 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm4 = ymm4[0,2,0,3]
3780 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,3,2,3]
3781 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm4[3,4,5,6,7]
3782 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm4 = ymm2[0,1,0,1,4,5,4,5]
3783 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm5 = ymm8[0,1,3,3,4,5,7,7]
3784 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1,2],ymm4[3],ymm5[4,5,6],ymm4[7]
3785 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm4 = ymm4[0,1,0,3]
3786 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm4[5,6,7]
3787 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3788 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm0 = xmm1[3,3,3,3]
3789 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
3790 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm8[0,1,3,3,4,5,7,7]
3791 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3],ymm0[4],ymm1[5,6,7]
3792 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
3793 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm6[3,3,3,3,7,7,7,7]
3794 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
3795 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm5[1],ymm1[2,3,4],ymm5[5],ymm1[6,7]
3796 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,0,3]
3797 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,3,2,3]
3798 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
3799 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
3800 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm9[0,1,0,1,4,5,4,5]
3801 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
3802 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm4 = ymm7[0,1,3,3,4,5,7,7]
3803 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm4[0,1,2],ymm1[3],ymm4[4,5,6],ymm1[7]
3804 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,1,0,3]
3805 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
3806 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3807 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm0 = xmm12[3,3,3,3]
3808 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm14[0,1,3,3,4,5,7,7]
3809 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3],ymm0[4],ymm1[5,6,7]
3810 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
3811 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm14[3,3,3,3,7,7,7,7]
3812 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm15[1],ymm1[2,3,4],ymm15[5],ymm1[6,7]
3813 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,0,3]
3814 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,3,2,3]
3815 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
3816 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm10[0,1,0,1,4,5,4,5]
3817 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm2 = ymm3[0,1,3,3,4,5,7,7]
3818 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]
3819 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,1,0,3]
3820 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
3821 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3822 ; AVX2-FAST-NEXT:    vpermilps $255, (%rsp), %xmm0 # 16-byte Folded Reload
3823 ; AVX2-FAST-NEXT:    # xmm0 = mem[3,3,3,3]
3824 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm13[0,1,3,3,4,5,7,7]
3825 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3],ymm0[4],ymm1[5,6,7]
3826 ; AVX2-FAST-NEXT:    vpermilps $255, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Folded Reload
3827 ; AVX2-FAST-NEXT:    # ymm1 = mem[3,3,3,3,7,7,7,7]
3828 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
3829 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm13[1],ymm1[2,3,4],ymm13[5],ymm1[6,7]
3830 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,0,3]
3831 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,3,2,3]
3832 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
3833 ; AVX2-FAST-NEXT:    vpermilps $68, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Folded Reload
3834 ; AVX2-FAST-NEXT:    # ymm1 = mem[0,1,0,1,4,5,4,5]
3835 ; AVX2-FAST-NEXT:    vpermilps $244, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Folded Reload
3836 ; AVX2-FAST-NEXT:    # ymm2 = mem[0,1,3,3,4,5,7,7]
3837 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]
3838 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,1,0,3]
3839 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
3840 ; AVX2-FAST-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
3841 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm5[0,1,2,3],ymm6[4,5,6,7]
3842 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3843 ; AVX2-FAST-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm2 # 32-byte Folded Reload
3844 ; AVX2-FAST-NEXT:    # ymm2 = ymm8[0,1,2,3],mem[4,5,6,7]
3845 ; AVX2-FAST-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3846 ; AVX2-FAST-NEXT:    vmovaps 464(%rdi), %xmm0
3847 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3848 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3],ymm1[4,5,6,7]
3849 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[0,1,0,2,4,5,4,6]
3850 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
3851 ; AVX2-FAST-NEXT:    vpermps %ymm2, %ymm12, %ymm1
3852 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
3853 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm8 = ymm9[0,1],ymm7[2,3],ymm9[4,5,6,7]
3854 ; AVX2-FAST-NEXT:    vbroadcastf128 {{.*#+}} ymm9 = [0,2,0,6,0,2,0,6]
3855 ; AVX2-FAST-NEXT:    # ymm9 = mem[0,1,0,1]
3856 ; AVX2-FAST-NEXT:    vpermps %ymm8, %ymm9, %ymm1
3857 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
3858 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3859 ; AVX2-FAST-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm7 # 32-byte Folded Reload
3860 ; AVX2-FAST-NEXT:    # ymm7 = ymm11[0,1,2,3],mem[4,5,6,7]
3861 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3862 ; AVX2-FAST-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm11 # 32-byte Folded Reload
3863 ; AVX2-FAST-NEXT:    # ymm11 = ymm0[0,1,2,3],mem[4,5,6,7]
3864 ; AVX2-FAST-NEXT:    vmovaps 80(%rdi), %xmm6
3865 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm7[0,1],ymm6[2,3],ymm7[4,5,6,7]
3866 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[0,1,0,2,4,5,4,6]
3867 ; AVX2-FAST-NEXT:    vpermps %ymm11, %ymm12, %ymm1
3868 ; AVX2-FAST-NEXT:    vmovaps %ymm12, %ymm15
3869 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
3870 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3871 ; AVX2-FAST-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm4 # 32-byte Folded Reload
3872 ; AVX2-FAST-NEXT:    # ymm4 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
3873 ; AVX2-FAST-NEXT:    vpermps %ymm4, %ymm9, %ymm1
3874 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
3875 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3876 ; AVX2-FAST-NEXT:    vblendps $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm10 # 32-byte Folded Reload
3877 ; AVX2-FAST-NEXT:    # ymm10 = mem[0,1,2,3],ymm14[4,5,6,7]
3878 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3879 ; AVX2-FAST-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm5 # 32-byte Folded Reload
3880 ; AVX2-FAST-NEXT:    # ymm5 = ymm0[0,1,2,3],mem[4,5,6,7]
3881 ; AVX2-FAST-NEXT:    vmovaps 272(%rdi), %xmm3
3882 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1],ymm3[2,3],ymm10[4,5,6,7]
3883 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[0,1,0,2,4,5,4,6]
3884 ; AVX2-FAST-NEXT:    vpermps %ymm5, %ymm12, %ymm14
3885 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1],ymm0[2,3,4,5,6,7]
3886 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3887 ; AVX2-FAST-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload
3888 ; AVX2-FAST-NEXT:    # ymm2 = mem[0,1],ymm0[2,3],mem[4,5,6,7]
3889 ; AVX2-FAST-NEXT:    vpermps %ymm2, %ymm9, %ymm12
3890 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm14[0,1,2,3,4],ymm12[5,6,7]
3891 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3892 ; AVX2-FAST-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm12 # 32-byte Folded Reload
3893 ; AVX2-FAST-NEXT:    # ymm12 = ymm13[0,1,2,3],mem[4,5,6,7]
3894 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3895 ; AVX2-FAST-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload
3896 ; AVX2-FAST-NEXT:    # ymm1 = ymm0[0,1,2,3],mem[4,5,6,7]
3897 ; AVX2-FAST-NEXT:    vmovaps 656(%rdi), %xmm0
3898 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm14 = ymm12[0,1],ymm0[2,3],ymm12[4,5,6,7]
3899 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[0,1,0,2,4,5,4,6]
3900 ; AVX2-FAST-NEXT:    vpermps %ymm1, %ymm15, %ymm15
3901 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm14 = ymm15[0,1],ymm14[2,3,4,5,6,7]
3902 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
3903 ; AVX2-FAST-NEXT:    vblendps $12, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm15 # 32-byte Folded Reload
3904 ; AVX2-FAST-NEXT:    # ymm15 = ymm13[0,1],mem[2,3],ymm13[4,5,6,7]
3905 ; AVX2-FAST-NEXT:    vpermps %ymm15, %ymm9, %ymm9
3906 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm9 = ymm14[0,1,2,3,4],ymm9[5,6,7]
3907 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm7 = ymm7[1,1,1,1,5,5,5,5]
3908 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2],ymm6[3],ymm7[4,5,6,7]
3909 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
3910 ; AVX2-FAST-NEXT:    vpermps %ymm11, %ymm14, %ymm7
3911 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1],ymm6[2,3,4,5,6,7]
3912 ; AVX2-FAST-NEXT:    vbroadcastf128 {{.*#+}} ymm7 = [0,3,1,7,0,3,1,7]
3913 ; AVX2-FAST-NEXT:    # ymm7 = mem[0,1,0,1]
3914 ; AVX2-FAST-NEXT:    vpermps %ymm4, %ymm7, %ymm4
3915 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm4 = ymm6[0,1,2,3,4],ymm4[5,6,7]
3916 ; AVX2-FAST-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Folded Reload
3917 ; AVX2-FAST-NEXT:    # ymm6 = mem[1,1,1,1,5,5,5,5]
3918 ; AVX2-FAST-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm6 # 32-byte Folded Reload
3919 ; AVX2-FAST-NEXT:    # ymm6 = ymm6[0,1,2],mem[3],ymm6[4,5,6,7]
3920 ; AVX2-FAST-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm11 # 32-byte Folded Reload
3921 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm6 = ymm11[0,1],ymm6[2,3,4,5,6,7]
3922 ; AVX2-FAST-NEXT:    vpermps %ymm8, %ymm7, %ymm8
3923 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4],ymm8[5,6,7]
3924 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm8 = ymm10[1,1,1,1,5,5,5,5]
3925 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm3 = ymm8[0,1,2],ymm3[3],ymm8[4,5,6,7]
3926 ; AVX2-FAST-NEXT:    vpermps %ymm5, %ymm14, %ymm5
3927 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm3 = ymm5[0,1],ymm3[2,3,4,5,6,7]
3928 ; AVX2-FAST-NEXT:    vpermps %ymm2, %ymm7, %ymm2
3929 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3,4],ymm2[5,6,7]
3930 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm3 = ymm12[1,1,1,1,5,5,5,5]
3931 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm3[0,1,2],ymm0[3],ymm3[4,5,6,7]
3932 ; AVX2-FAST-NEXT:    vpermps %ymm1, %ymm14, %ymm1
3933 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
3934 ; AVX2-FAST-NEXT:    vpermps %ymm15, %ymm7, %ymm1
3935 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
3936 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3937 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 96(%rsi)
3938 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3939 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 32(%rsi)
3940 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3941 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 64(%rsi)
3942 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3943 ; AVX2-FAST-NEXT:    vmovaps %ymm1, (%rsi)
3944 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3945 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 96(%rdx)
3946 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3947 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 32(%rdx)
3948 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3949 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 64(%rdx)
3950 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3951 ; AVX2-FAST-NEXT:    vmovaps %ymm1, (%rdx)
3952 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3953 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 32(%rcx)
3954 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3955 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 96(%rcx)
3956 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3957 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 64(%rcx)
3958 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3959 ; AVX2-FAST-NEXT:    vmovaps %ymm1, (%rcx)
3960 ; AVX2-FAST-NEXT:    vmovups (%rsp), %ymm1 # 32-byte Reload
3961 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 96(%r8)
3962 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3963 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 32(%r8)
3964 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3965 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 64(%r8)
3966 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3967 ; AVX2-FAST-NEXT:    vmovaps %ymm1, (%r8)
3968 ; AVX2-FAST-NEXT:    vmovaps %ymm9, 96(%r9)
3969 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3970 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 32(%r9)
3971 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3972 ; AVX2-FAST-NEXT:    vmovaps %ymm1, (%r9)
3973 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3974 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 64(%r9)
3975 ; AVX2-FAST-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3976 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 96(%rax)
3977 ; AVX2-FAST-NEXT:    vmovaps %ymm2, 32(%rax)
3978 ; AVX2-FAST-NEXT:    vmovaps %ymm6, 64(%rax)
3979 ; AVX2-FAST-NEXT:    vmovaps %ymm4, (%rax)
3980 ; AVX2-FAST-NEXT:    addq $1256, %rsp # imm = 0x4E8
3981 ; AVX2-FAST-NEXT:    vzeroupper
3982 ; AVX2-FAST-NEXT:    retq
3984 ; AVX2-FAST-PERLANE-LABEL: load_i32_stride6_vf32:
3985 ; AVX2-FAST-PERLANE:       # %bb.0:
3986 ; AVX2-FAST-PERLANE-NEXT:    subq $1256, %rsp # imm = 0x4E8
3987 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 480(%rdi), %ymm9
3988 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 448(%rdi), %ymm10
3989 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3990 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 416(%rdi), %ymm7
3991 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3992 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 128(%rdi), %ymm2
3993 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3994 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 160(%rdi), %ymm3
3995 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3996 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 96(%rdi), %ymm4
3997 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3998 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%rdi), %ymm0
3999 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4000 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 32(%rdi), %ymm1
4001 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4002 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 64(%rdi), %ymm5
4003 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4004 ; AVX2-FAST-PERLANE-NEXT:    vmovaps {{.*#+}} xmm8 = [0,6,4,u]
4005 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm13 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
4006 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm13, %ymm8, %ymm0
4007 ; AVX2-FAST-PERLANE-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm5[0,1],ymm4[0,1]
4008 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm5 = ymm1[0,1,2,3,4,5],ymm4[6,7]
4009 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm5[0,2,2,2,4,6,6,6]
4010 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
4011 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm6 = ymm3[0,1,2,3],ymm2[4,5,6,7]
4012 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastsd {{.*#+}} ymm2 = [4,2,4,2,4,2,4,2]
4013 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm6, %ymm2, %ymm1
4014 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm2, %ymm11
4015 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
4016 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4017 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4018 ; AVX2-FAST-PERLANE-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm10[0,1],ymm9[0,1]
4019 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm3 = ymm0[0,1,2,3,4,5],ymm9[6,7]
4020 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 384(%rdi), %ymm0
4021 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4022 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm4 = ymm0[0,1,2,3],ymm7[4,5],ymm0[6,7]
4023 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm4, %ymm8, %ymm0
4024 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm3[0,2,2,2,4,6,6,6]
4025 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
4026 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 512(%rdi), %ymm1
4027 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4028 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 544(%rdi), %ymm2
4029 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4030 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm1[4,5,6,7]
4031 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm2, %ymm11, %ymm1
4032 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm11, %ymm12
4033 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
4034 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4035 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 288(%rdi), %ymm1
4036 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4037 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 256(%rdi), %ymm0
4038 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4039 ; AVX2-FAST-PERLANE-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm0[0,1],ymm1[0,1]
4040 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm10 = ymm0[0,1,2,3,4,5],ymm1[6,7]
4041 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 224(%rdi), %ymm1
4042 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4043 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 192(%rdi), %ymm0
4044 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4045 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
4046 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm1, %ymm8, %ymm14
4047 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm9 = ymm10[0,2,2,2,4,6,6,6]
4048 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm9 = ymm14[0,1,2],ymm9[3,4,5,6,7]
4049 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 320(%rdi), %ymm0
4050 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4051 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 352(%rdi), %ymm7
4052 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4053 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm14 = ymm7[0,1,2,3],ymm0[4,5,6,7]
4054 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm14, %ymm11, %ymm7
4055 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4056 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm7 = ymm9[0,1,2,3,4,5],ymm7[6,7]
4057 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4058 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 608(%rdi), %ymm0
4059 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4060 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 576(%rdi), %ymm7
4061 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4062 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3],ymm0[4,5],ymm7[6,7]
4063 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm7, %ymm8, %ymm8
4064 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 672(%rdi), %ymm0
4065 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4066 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 640(%rdi), %ymm9
4067 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4068 ; AVX2-FAST-PERLANE-NEXT:    vperm2f128 {{.*#+}} ymm9 = ymm9[0,1],ymm0[0,1]
4069 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5],ymm0[6,7]
4070 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm11 = ymm9[0,2,2,2,4,6,6,6]
4071 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2],ymm11[3,4,5,6,7]
4072 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 704(%rdi), %ymm11
4073 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4074 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 736(%rdi), %ymm0
4075 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4076 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm11 = ymm0[0,1,2,3],ymm11[4,5,6,7]
4077 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm11, %ymm12, %ymm15
4078 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],ymm15[6,7]
4079 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4080 ; AVX2-FAST-PERLANE-NEXT:    vmovaps {{.*#+}} xmm8 = [1,7,5,u]
4081 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm13, %ymm8, %ymm13
4082 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm5 = ymm5[1,3,2,3,5,7,6,7]
4083 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm5 = ymm13[0,1,2],ymm5[3,4,5,6,7]
4084 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastsd {{.*#+}} ymm12 = [5,3,5,3,5,3,5,3]
4085 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4086 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm6, %ymm12, %ymm6
4087 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],ymm6[6,7]
4088 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4089 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm4, %ymm8, %ymm4
4090 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[1,3,2,3,5,7,6,7]
4091 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2],ymm3[3,4,5,6,7]
4092 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm2, %ymm12, %ymm2
4093 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3,4,5],ymm2[6,7]
4094 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4095 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm1, %ymm8, %ymm0
4096 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm10[1,3,2,3,5,7,6,7]
4097 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
4098 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm14, %ymm12, %ymm1
4099 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
4100 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4101 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm7, %ymm8, %ymm0
4102 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm9[1,3,2,3,5,7,6,7]
4103 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
4104 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm11, %ymm12, %ymm1
4105 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
4106 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4107 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%rdi), %xmm3
4108 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm0 = xmm3[2,3,2,3]
4109 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
4110 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm7[0,0,2,3,4,4,6,7]
4111 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3],ymm0[4],ymm1[5,6,7]
4112 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
4113 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload
4114 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm12[0,1],ymm11[2,3],ymm12[4,5],ymm11[6,7]
4115 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[2,0,2,3,6,4,6,7]
4116 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,0,3]
4117 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,3,2,3]
4118 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
4119 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
4120 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm9[0,0,0,0,4,4,4,4]
4121 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
4122 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm2 = ymm8[0,0,2,3,4,4,6,7]
4123 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]
4124 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,1,0,3]
4125 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
4126 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4127 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 384(%rdi), %xmm1
4128 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm0 = xmm1[2,3,2,3]
4129 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $224, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Folded Reload
4130 ; AVX2-FAST-PERLANE-NEXT:    # ymm2 = mem[0,0,2,3,4,4,6,7]
4131 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm2[1,2,3],ymm0[4],ymm2[5,6,7]
4132 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
4133 ; AVX2-FAST-PERLANE-NEXT:    vblendps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
4134 ; AVX2-FAST-PERLANE-NEXT:    # ymm2 = mem[0,1],ymm2[2,3],mem[4,5],ymm2[6,7]
4135 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[2,0,2,3,6,4,6,7]
4136 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,2,0,3]
4137 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,3,2,3]
4138 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm2[3,4,5,6,7]
4139 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $0, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Folded Reload
4140 ; AVX2-FAST-PERLANE-NEXT:    # ymm2 = mem[0,0,0,0,4,4,4,4]
4141 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $224, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Folded Reload
4142 ; AVX2-FAST-PERLANE-NEXT:    # ymm4 = mem[0,0,2,3,4,4,6,7]
4143 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2],ymm2[3],ymm4[4,5,6],ymm2[7]
4144 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,1,0,3]
4145 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm2[5,6,7]
4146 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4147 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 576(%rdi), %xmm0
4148 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %xmm0, (%rsp) # 16-byte Spill
4149 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[2,3,2,3]
4150 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $224, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Folded Reload
4151 ; AVX2-FAST-PERLANE-NEXT:    # ymm2 = mem[0,0,2,3,4,4,6,7]
4152 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm2[1,2,3],ymm0[4],ymm2[5,6,7]
4153 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
4154 ; AVX2-FAST-PERLANE-NEXT:    vblendps $204, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
4155 ; AVX2-FAST-PERLANE-NEXT:    # ymm2 = ymm2[0,1],mem[2,3],ymm2[4,5],mem[6,7]
4156 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[2,0,2,3,6,4,6,7]
4157 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,2,0,3]
4158 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,3,2,3]
4159 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm2[3,4,5,6,7]
4160 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $0, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Folded Reload
4161 ; AVX2-FAST-PERLANE-NEXT:    # ymm2 = mem[0,0,0,0,4,4,4,4]
4162 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $224, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Folded Reload
4163 ; AVX2-FAST-PERLANE-NEXT:    # ymm5 = mem[0,0,2,3,4,4,6,7]
4164 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm5[0,1,2],ymm2[3],ymm5[4,5,6],ymm2[7]
4165 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,1,0,3]
4166 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm2[5,6,7]
4167 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4168 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 192(%rdi), %xmm0
4169 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm2 = xmm0[2,3,2,3]
4170 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
4171 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm5 = ymm13[0,0,2,3,4,4,6,7]
4172 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0],ymm5[1,2,3],ymm2[4],ymm5[5,6,7]
4173 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload
4174 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
4175 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm5 = ymm15[0,1],ymm14[2,3],ymm15[4,5],ymm14[6,7]
4176 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm5 = ymm5[2,0,2,3,6,4,6,7]
4177 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm5 = ymm5[0,2,0,3]
4178 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,3,2,3]
4179 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2],ymm5[3,4,5,6,7]
4180 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
4181 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm5 = ymm10[0,0,0,0,4,4,4,4]
4182 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
4183 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm6 = ymm4[0,0,2,3,4,4,6,7]
4184 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2],ymm5[3],ymm6[4,5,6],ymm5[7]
4185 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm5 = ymm5[0,1,0,3]
4186 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm5[5,6,7]
4187 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4188 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm2 = xmm3[3,3,3,3]
4189 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm3 = ymm7[0,1,3,3,4,5,7,7]
4190 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0],ymm3[1,2,3],ymm2[4],ymm3[5,6,7]
4191 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm3 = ymm11[3,3,3,3,7,7,7,7]
4192 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0],ymm12[1],ymm3[2,3,4],ymm12[5],ymm3[6,7]
4193 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm12, %ymm11
4194 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,2,0,3]
4195 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,3,2,3]
4196 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2],ymm3[3,4,5,6,7]
4197 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm3 = ymm9[0,1,0,1,4,5,4,5]
4198 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm5 = ymm8[0,1,3,3,4,5,7,7]
4199 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm3 = ymm5[0,1,2],ymm3[3],ymm5[4,5,6],ymm3[7]
4200 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,1,0,3]
4201 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm3[5,6,7]
4202 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4203 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[3,3,3,3]
4204 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
4205 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm2 = ymm12[0,1,3,3,4,5,7,7]
4206 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm2[1,2,3],ymm1[4],ymm2[5,6,7]
4207 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
4208 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm2 = ymm6[3,3,3,3,7,7,7,7]
4209 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
4210 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0],ymm5[1],ymm2[2,3,4],ymm5[5],ymm2[6,7]
4211 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,2,0,3]
4212 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,3,2,3]
4213 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
4214 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
4215 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm2 = ymm9[0,1,0,1,4,5,4,5]
4216 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
4217 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm3 = ymm7[0,1,3,3,4,5,7,7]
4218 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2],ymm2[3],ymm3[4,5,6],ymm2[7]
4219 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,1,0,3]
4220 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
4221 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4222 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[3,3,3,3]
4223 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm13, %ymm3
4224 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm13[0,1,3,3,4,5,7,7]
4225 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3],ymm0[4],ymm1[5,6,7]
4226 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm14[3,3,3,3,7,7,7,7]
4227 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm15[1],ymm1[2,3,4],ymm15[5],ymm1[6,7]
4228 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm15, %ymm14
4229 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,0,3]
4230 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,3,2,3]
4231 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
4232 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm10[0,1,0,1,4,5,4,5]
4233 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm2 = ymm4[0,1,3,3,4,5,7,7]
4234 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]
4235 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,1,0,3]
4236 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
4237 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4238 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $255, (%rsp), %xmm0 # 16-byte Folded Reload
4239 ; AVX2-FAST-PERLANE-NEXT:    # xmm0 = mem[3,3,3,3]
4240 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $244, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Folded Reload
4241 ; AVX2-FAST-PERLANE-NEXT:    # ymm1 = mem[0,1,3,3,4,5,7,7]
4242 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3],ymm0[4],ymm1[5,6,7]
4243 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $255, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Folded Reload
4244 ; AVX2-FAST-PERLANE-NEXT:    # ymm1 = mem[3,3,3,3,7,7,7,7]
4245 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
4246 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm8[1],ymm1[2,3,4],ymm8[5],ymm1[6,7]
4247 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,0,3]
4248 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,3,2,3]
4249 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
4250 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $68, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Folded Reload
4251 ; AVX2-FAST-PERLANE-NEXT:    # ymm1 = mem[0,1,0,1,4,5,4,5]
4252 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $244, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Folded Reload
4253 ; AVX2-FAST-PERLANE-NEXT:    # ymm2 = mem[0,1,3,3,4,5,7,7]
4254 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]
4255 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,1,0,3]
4256 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
4257 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
4258 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm5[0,1,2,3],ymm6[4,5,6,7]
4259 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4260 ; AVX2-FAST-PERLANE-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm2 # 32-byte Folded Reload
4261 ; AVX2-FAST-PERLANE-NEXT:    # ymm2 = ymm12[0,1,2,3],mem[4,5,6,7]
4262 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4263 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 464(%rdi), %xmm0
4264 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4265 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3],ymm1[4,5,6,7]
4266 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[0,1,0,2,4,5,4,6]
4267 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
4268 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm2, %ymm12, %ymm1
4269 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
4270 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm13 = ymm9[0,1],ymm7[2,3],ymm9[4,5,6,7]
4271 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastf128 {{.*#+}} ymm9 = [0,2,0,6,0,2,0,6]
4272 ; AVX2-FAST-PERLANE-NEXT:    # ymm9 = mem[0,1,0,1]
4273 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm13, %ymm9, %ymm1
4274 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
4275 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4276 ; AVX2-FAST-PERLANE-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm7 # 32-byte Folded Reload
4277 ; AVX2-FAST-PERLANE-NEXT:    # ymm7 = ymm11[0,1,2,3],mem[4,5,6,7]
4278 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4279 ; AVX2-FAST-PERLANE-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm11 # 32-byte Folded Reload
4280 ; AVX2-FAST-PERLANE-NEXT:    # ymm11 = ymm0[0,1,2,3],mem[4,5,6,7]
4281 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 80(%rdi), %xmm6
4282 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm7[0,1],ymm6[2,3],ymm7[4,5,6,7]
4283 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[0,1,0,2,4,5,4,6]
4284 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm11, %ymm12, %ymm1
4285 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm12, %ymm15
4286 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
4287 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4288 ; AVX2-FAST-PERLANE-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm4 # 32-byte Folded Reload
4289 ; AVX2-FAST-PERLANE-NEXT:    # ymm4 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
4290 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm4, %ymm9, %ymm1
4291 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
4292 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4293 ; AVX2-FAST-PERLANE-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm10 # 32-byte Folded Reload
4294 ; AVX2-FAST-PERLANE-NEXT:    # ymm10 = ymm14[0,1,2,3],mem[4,5,6,7]
4295 ; AVX2-FAST-PERLANE-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm5 # 32-byte Folded Reload
4296 ; AVX2-FAST-PERLANE-NEXT:    # ymm5 = ymm3[0,1,2,3],mem[4,5,6,7]
4297 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 272(%rdi), %xmm3
4298 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1],ymm3[2,3],ymm10[4,5,6,7]
4299 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[0,1,0,2,4,5,4,6]
4300 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm5, %ymm12, %ymm14
4301 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1],ymm0[2,3,4,5,6,7]
4302 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4303 ; AVX2-FAST-PERLANE-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload
4304 ; AVX2-FAST-PERLANE-NEXT:    # ymm2 = mem[0,1],ymm0[2,3],mem[4,5,6,7]
4305 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm2, %ymm9, %ymm12
4306 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm14[0,1,2,3,4],ymm12[5,6,7]
4307 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4308 ; AVX2-FAST-PERLANE-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm12 # 32-byte Folded Reload
4309 ; AVX2-FAST-PERLANE-NEXT:    # ymm12 = ymm8[0,1,2,3],mem[4,5,6,7]
4310 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4311 ; AVX2-FAST-PERLANE-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload
4312 ; AVX2-FAST-PERLANE-NEXT:    # ymm1 = ymm0[0,1,2,3],mem[4,5,6,7]
4313 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 656(%rdi), %xmm0
4314 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm14 = ymm12[0,1],ymm0[2,3],ymm12[4,5,6,7]
4315 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[0,1,0,2,4,5,4,6]
4316 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm1, %ymm15, %ymm15
4317 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm14 = ymm15[0,1],ymm14[2,3,4,5,6,7]
4318 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload
4319 ; AVX2-FAST-PERLANE-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm15 # 32-byte Folded Reload
4320 ; AVX2-FAST-PERLANE-NEXT:    # ymm15 = mem[0,1],ymm15[2,3],mem[4,5,6,7]
4321 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm15, %ymm9, %ymm9
4322 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm9 = ymm14[0,1,2,3,4],ymm9[5,6,7]
4323 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm7 = ymm7[1,1,1,1,5,5,5,5]
4324 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2],ymm6[3],ymm7[4,5,6,7]
4325 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
4326 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm11, %ymm14, %ymm7
4327 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1],ymm6[2,3,4,5,6,7]
4328 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastf128 {{.*#+}} ymm7 = [0,3,1,7,0,3,1,7]
4329 ; AVX2-FAST-PERLANE-NEXT:    # ymm7 = mem[0,1,0,1]
4330 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm4, %ymm7, %ymm4
4331 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm4 = ymm6[0,1,2,3,4],ymm4[5,6,7]
4332 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Folded Reload
4333 ; AVX2-FAST-PERLANE-NEXT:    # ymm6 = mem[1,1,1,1,5,5,5,5]
4334 ; AVX2-FAST-PERLANE-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm6 # 32-byte Folded Reload
4335 ; AVX2-FAST-PERLANE-NEXT:    # ymm6 = ymm6[0,1,2],mem[3],ymm6[4,5,6,7]
4336 ; AVX2-FAST-PERLANE-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm11 # 32-byte Folded Reload
4337 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm6 = ymm11[0,1],ymm6[2,3,4,5,6,7]
4338 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm13, %ymm7, %ymm8
4339 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4],ymm8[5,6,7]
4340 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm8 = ymm10[1,1,1,1,5,5,5,5]
4341 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm3 = ymm8[0,1,2],ymm3[3],ymm8[4,5,6,7]
4342 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm5, %ymm14, %ymm5
4343 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm3 = ymm5[0,1],ymm3[2,3,4,5,6,7]
4344 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm2, %ymm7, %ymm2
4345 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3,4],ymm2[5,6,7]
4346 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm3 = ymm12[1,1,1,1,5,5,5,5]
4347 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm3[0,1,2],ymm0[3],ymm3[4,5,6,7]
4348 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm1, %ymm14, %ymm1
4349 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
4350 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm15, %ymm7, %ymm1
4351 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
4352 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4353 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 96(%rsi)
4354 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4355 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 32(%rsi)
4356 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4357 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 64(%rsi)
4358 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4359 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, (%rsi)
4360 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4361 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 96(%rdx)
4362 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4363 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 32(%rdx)
4364 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4365 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 64(%rdx)
4366 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4367 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, (%rdx)
4368 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4369 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 32(%rcx)
4370 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4371 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 96(%rcx)
4372 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4373 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 64(%rcx)
4374 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4375 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, (%rcx)
4376 ; AVX2-FAST-PERLANE-NEXT:    vmovups (%rsp), %ymm1 # 32-byte Reload
4377 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 96(%r8)
4378 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4379 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 32(%r8)
4380 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4381 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 64(%r8)
4382 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4383 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, (%r8)
4384 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm9, 96(%r9)
4385 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4386 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 32(%r9)
4387 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4388 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, (%r9)
4389 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
4390 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 64(%r9)
4391 ; AVX2-FAST-PERLANE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
4392 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 96(%rax)
4393 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm2, 32(%rax)
4394 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 64(%rax)
4395 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm4, (%rax)
4396 ; AVX2-FAST-PERLANE-NEXT:    addq $1256, %rsp # imm = 0x4E8
4397 ; AVX2-FAST-PERLANE-NEXT:    vzeroupper
4398 ; AVX2-FAST-PERLANE-NEXT:    retq
4400 ; AVX512F-LABEL: load_i32_stride6_vf32:
4401 ; AVX512F:       # %bb.0:
4402 ; AVX512F-NEXT:    movq {{[0-9]+}}(%rsp), %rax
4403 ; AVX512F-NEXT:    vmovdqa64 448(%rdi), %zmm0
4404 ; AVX512F-NEXT:    vmovdqa64 384(%rdi), %zmm3
4405 ; AVX512F-NEXT:    vmovdqa64 512(%rdi), %zmm2
4406 ; AVX512F-NEXT:    vmovdqa64 576(%rdi), %zmm5
4407 ; AVX512F-NEXT:    vmovdqa64 704(%rdi), %zmm6
4408 ; AVX512F-NEXT:    vmovdqa64 640(%rdi), %zmm4
4409 ; AVX512F-NEXT:    vmovdqa64 320(%rdi), %zmm10
4410 ; AVX512F-NEXT:    vmovdqa64 256(%rdi), %zmm9
4411 ; AVX512F-NEXT:    vmovdqa64 (%rdi), %zmm11
4412 ; AVX512F-NEXT:    vmovdqa64 64(%rdi), %zmm1
4413 ; AVX512F-NEXT:    vmovdqa64 128(%rdi), %zmm12
4414 ; AVX512F-NEXT:    vmovdqa64 192(%rdi), %zmm13
4415 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm14 = [0,6,12,0,0,0,20,26,0,6,12,0,0,0,20,26]
4416 ; AVX512F-NEXT:    # zmm14 = mem[0,1,2,3,0,1,2,3]
4417 ; AVX512F-NEXT:    vmovdqa64 %zmm13, %zmm15
4418 ; AVX512F-NEXT:    vpermt2d %zmm12, %zmm14, %zmm15
4419 ; AVX512F-NEXT:    vmovdqa {{.*#+}} ymm7 = [0,6,12,18,24,30,u,u]
4420 ; AVX512F-NEXT:    vmovdqa64 %zmm11, %zmm8
4421 ; AVX512F-NEXT:    vpermt2d %zmm1, %zmm7, %zmm8
4422 ; AVX512F-NEXT:    movb $56, %dil
4423 ; AVX512F-NEXT:    kmovw %edi, %k2
4424 ; AVX512F-NEXT:    vmovdqa64 %zmm15, %zmm8 {%k2}
4425 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm15 = [0,0,0,2,8,14,20,26,0,0,0,2,8,14,20,26]
4426 ; AVX512F-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3]
4427 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm16
4428 ; AVX512F-NEXT:    vpermt2d %zmm10, %zmm15, %zmm16
4429 ; AVX512F-NEXT:    movw $-2048, %di # imm = 0xF800
4430 ; AVX512F-NEXT:    kmovw %edi, %k1
4431 ; AVX512F-NEXT:    vmovdqa32 %zmm16, %zmm8 {%k1}
4432 ; AVX512F-NEXT:    vpermi2d %zmm6, %zmm4, %zmm15
4433 ; AVX512F-NEXT:    vpermi2d %zmm2, %zmm5, %zmm14
4434 ; AVX512F-NEXT:    vpermi2d %zmm0, %zmm3, %zmm7
4435 ; AVX512F-NEXT:    vmovdqa64 %zmm14, %zmm7 {%k2}
4436 ; AVX512F-NEXT:    vmovdqa32 %zmm15, %zmm7 {%k1}
4437 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm16 = [1,7,13,0,0,0,21,27,1,7,13,0,0,0,21,27]
4438 ; AVX512F-NEXT:    # zmm16 = mem[0,1,2,3,0,1,2,3]
4439 ; AVX512F-NEXT:    vmovdqa64 %zmm13, %zmm17
4440 ; AVX512F-NEXT:    vpermt2d %zmm12, %zmm16, %zmm17
4441 ; AVX512F-NEXT:    vmovdqa {{.*#+}} ymm14 = [1,7,13,19,25,31,u,u]
4442 ; AVX512F-NEXT:    vmovdqa64 %zmm11, %zmm15
4443 ; AVX512F-NEXT:    vpermt2d %zmm1, %zmm14, %zmm15
4444 ; AVX512F-NEXT:    vmovdqa64 %zmm17, %zmm15 {%k2}
4445 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm17 = [0,0,0,3,9,15,21,27,0,0,0,3,9,15,21,27]
4446 ; AVX512F-NEXT:    # zmm17 = mem[0,1,2,3,0,1,2,3]
4447 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm18
4448 ; AVX512F-NEXT:    vpermt2d %zmm10, %zmm17, %zmm18
4449 ; AVX512F-NEXT:    vmovdqa32 %zmm18, %zmm15 {%k1}
4450 ; AVX512F-NEXT:    vpermi2d %zmm6, %zmm4, %zmm17
4451 ; AVX512F-NEXT:    vpermi2d %zmm2, %zmm5, %zmm16
4452 ; AVX512F-NEXT:    vpermi2d %zmm0, %zmm3, %zmm14
4453 ; AVX512F-NEXT:    vmovdqa64 %zmm16, %zmm14 {%k2}
4454 ; AVX512F-NEXT:    vmovdqa32 %zmm17, %zmm14 {%k1}
4455 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} ymm18 = [2,8,14,20,26,u,u,u]
4456 ; AVX512F-NEXT:    vmovdqa64 %zmm11, %zmm19
4457 ; AVX512F-NEXT:    vpermt2d %zmm1, %zmm18, %zmm19
4458 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm17 = [18,24,30,0,0,0,6,12,18,24,30,0,0,0,6,12]
4459 ; AVX512F-NEXT:    # zmm17 = mem[0,1,2,3,0,1,2,3]
4460 ; AVX512F-NEXT:    vmovdqa64 %zmm12, %zmm16
4461 ; AVX512F-NEXT:    vpermt2d %zmm13, %zmm17, %zmm16
4462 ; AVX512F-NEXT:    movw $31, %di
4463 ; AVX512F-NEXT:    kmovw %edi, %k2
4464 ; AVX512F-NEXT:    vmovdqa32 %zmm19, %zmm16 {%k2}
4465 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm19 = [0,0,0,20,26,0,6,12,0,0,0,20,26,0,6,12]
4466 ; AVX512F-NEXT:    # zmm19 = mem[0,1,2,3,0,1,2,3]
4467 ; AVX512F-NEXT:    vmovdqa64 %zmm10, %zmm20
4468 ; AVX512F-NEXT:    vpermt2d %zmm9, %zmm19, %zmm20
4469 ; AVX512F-NEXT:    vmovdqa32 %zmm20, %zmm16 {%k1}
4470 ; AVX512F-NEXT:    vpermi2d %zmm4, %zmm6, %zmm19
4471 ; AVX512F-NEXT:    vpermi2d %zmm5, %zmm2, %zmm17
4472 ; AVX512F-NEXT:    vpermi2d %zmm0, %zmm3, %zmm18
4473 ; AVX512F-NEXT:    vmovdqa32 %zmm18, %zmm17 {%k2}
4474 ; AVX512F-NEXT:    vmovdqa32 %zmm19, %zmm17 {%k1}
4475 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} ymm20 = [3,9,15,21,27,u,u,u]
4476 ; AVX512F-NEXT:    vmovdqa64 %zmm11, %zmm21
4477 ; AVX512F-NEXT:    vpermt2d %zmm1, %zmm20, %zmm21
4478 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm19 = [19,25,31,0,0,1,7,13,19,25,31,0,0,1,7,13]
4479 ; AVX512F-NEXT:    # zmm19 = mem[0,1,2,3,0,1,2,3]
4480 ; AVX512F-NEXT:    vmovdqa64 %zmm12, %zmm18
4481 ; AVX512F-NEXT:    vpermt2d %zmm13, %zmm19, %zmm18
4482 ; AVX512F-NEXT:    vmovdqa32 %zmm21, %zmm18 {%k2}
4483 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm21 = [0,0,0,21,27,1,7,13,0,0,0,21,27,1,7,13]
4484 ; AVX512F-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3]
4485 ; AVX512F-NEXT:    vmovdqa64 %zmm10, %zmm22
4486 ; AVX512F-NEXT:    vpermt2d %zmm9, %zmm21, %zmm22
4487 ; AVX512F-NEXT:    vmovdqa32 %zmm22, %zmm18 {%k1}
4488 ; AVX512F-NEXT:    vpermi2d %zmm4, %zmm6, %zmm21
4489 ; AVX512F-NEXT:    vpermi2d %zmm5, %zmm2, %zmm19
4490 ; AVX512F-NEXT:    vpermi2d %zmm0, %zmm3, %zmm20
4491 ; AVX512F-NEXT:    vmovdqa32 %zmm20, %zmm19 {%k2}
4492 ; AVX512F-NEXT:    vmovdqa32 %zmm21, %zmm19 {%k1}
4493 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm20 = [20,26,0,0,0,2,8,14,20,26,0,0,0,2,8,14]
4494 ; AVX512F-NEXT:    # zmm20 = mem[0,1,2,3,0,1,2,3]
4495 ; AVX512F-NEXT:    vmovdqa64 %zmm12, %zmm21
4496 ; AVX512F-NEXT:    vpermt2d %zmm13, %zmm20, %zmm21
4497 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} ymm22 = [20,26,0,6,12,u,u,u]
4498 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm23
4499 ; AVX512F-NEXT:    vpermt2d %zmm11, %zmm22, %zmm23
4500 ; AVX512F-NEXT:    movw $992, %di # imm = 0x3E0
4501 ; AVX512F-NEXT:    kmovw %edi, %k1
4502 ; AVX512F-NEXT:    vmovdqa32 %zmm21, %zmm23 {%k1}
4503 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm21 = [0,0,0,6,12,18,24,30,0,0,0,6,12,18,24,30]
4504 ; AVX512F-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3]
4505 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm24
4506 ; AVX512F-NEXT:    vpermt2d %zmm10, %zmm21, %zmm24
4507 ; AVX512F-NEXT:    movb $-32, %dil
4508 ; AVX512F-NEXT:    kmovw %edi, %k2
4509 ; AVX512F-NEXT:    vmovdqa64 %zmm24, %zmm23 {%k2}
4510 ; AVX512F-NEXT:    vpermi2d %zmm6, %zmm4, %zmm21
4511 ; AVX512F-NEXT:    vpermi2d %zmm5, %zmm2, %zmm20
4512 ; AVX512F-NEXT:    vpermi2d %zmm3, %zmm0, %zmm22
4513 ; AVX512F-NEXT:    vmovdqa32 %zmm20, %zmm22 {%k1}
4514 ; AVX512F-NEXT:    vmovdqa64 %zmm21, %zmm22 {%k2}
4515 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm20 = [21,27,0,0,0,3,9,15,21,27,0,0,0,3,9,15]
4516 ; AVX512F-NEXT:    # zmm20 = mem[0,1,2,3,0,1,2,3]
4517 ; AVX512F-NEXT:    vpermt2d %zmm13, %zmm20, %zmm12
4518 ; AVX512F-NEXT:    vmovdqa {{.*#+}} ymm13 = [21,27,1,7,13,u,u,u]
4519 ; AVX512F-NEXT:    vpermt2d %zmm11, %zmm13, %zmm1
4520 ; AVX512F-NEXT:    vmovdqa32 %zmm12, %zmm1 {%k1}
4521 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm11 = [0,0,1,7,13,19,25,31,0,0,1,7,13,19,25,31]
4522 ; AVX512F-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3]
4523 ; AVX512F-NEXT:    vpermt2d %zmm10, %zmm11, %zmm9
4524 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm1 {%k2}
4525 ; AVX512F-NEXT:    vpermt2d %zmm6, %zmm11, %zmm4
4526 ; AVX512F-NEXT:    vpermt2d %zmm5, %zmm20, %zmm2
4527 ; AVX512F-NEXT:    vpermt2d %zmm3, %zmm13, %zmm0
4528 ; AVX512F-NEXT:    vmovdqa32 %zmm2, %zmm0 {%k1}
4529 ; AVX512F-NEXT:    vmovdqa64 %zmm4, %zmm0 {%k2}
4530 ; AVX512F-NEXT:    vmovdqa64 %zmm7, 64(%rsi)
4531 ; AVX512F-NEXT:    vmovdqa64 %zmm8, (%rsi)
4532 ; AVX512F-NEXT:    vmovdqa64 %zmm14, 64(%rdx)
4533 ; AVX512F-NEXT:    vmovdqa64 %zmm15, (%rdx)
4534 ; AVX512F-NEXT:    vmovdqa64 %zmm17, 64(%rcx)
4535 ; AVX512F-NEXT:    vmovdqa64 %zmm16, (%rcx)
4536 ; AVX512F-NEXT:    vmovdqa64 %zmm19, 64(%r8)
4537 ; AVX512F-NEXT:    vmovdqa64 %zmm18, (%r8)
4538 ; AVX512F-NEXT:    vmovdqa64 %zmm22, 64(%r9)
4539 ; AVX512F-NEXT:    vmovdqa64 %zmm23, (%r9)
4540 ; AVX512F-NEXT:    vmovdqa64 %zmm0, 64(%rax)
4541 ; AVX512F-NEXT:    vmovdqa64 %zmm1, (%rax)
4542 ; AVX512F-NEXT:    vzeroupper
4543 ; AVX512F-NEXT:    retq
4545 ; AVX512BW-LABEL: load_i32_stride6_vf32:
4546 ; AVX512BW:       # %bb.0:
4547 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
4548 ; AVX512BW-NEXT:    vmovdqa64 448(%rdi), %zmm0
4549 ; AVX512BW-NEXT:    vmovdqa64 384(%rdi), %zmm3
4550 ; AVX512BW-NEXT:    vmovdqa64 512(%rdi), %zmm2
4551 ; AVX512BW-NEXT:    vmovdqa64 576(%rdi), %zmm5
4552 ; AVX512BW-NEXT:    vmovdqa64 704(%rdi), %zmm6
4553 ; AVX512BW-NEXT:    vmovdqa64 640(%rdi), %zmm4
4554 ; AVX512BW-NEXT:    vmovdqa64 320(%rdi), %zmm10
4555 ; AVX512BW-NEXT:    vmovdqa64 256(%rdi), %zmm9
4556 ; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm11
4557 ; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %zmm1
4558 ; AVX512BW-NEXT:    vmovdqa64 128(%rdi), %zmm12
4559 ; AVX512BW-NEXT:    vmovdqa64 192(%rdi), %zmm13
4560 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm14 = [0,6,12,0,0,0,20,26,0,6,12,0,0,0,20,26]
4561 ; AVX512BW-NEXT:    # zmm14 = mem[0,1,2,3,0,1,2,3]
4562 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm15
4563 ; AVX512BW-NEXT:    vpermt2d %zmm12, %zmm14, %zmm15
4564 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} ymm7 = [0,6,12,18,24,30,u,u]
4565 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm8
4566 ; AVX512BW-NEXT:    vpermt2d %zmm1, %zmm7, %zmm8
4567 ; AVX512BW-NEXT:    movb $56, %dil
4568 ; AVX512BW-NEXT:    kmovd %edi, %k2
4569 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm8 {%k2}
4570 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm15 = [0,0,0,2,8,14,20,26,0,0,0,2,8,14,20,26]
4571 ; AVX512BW-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3]
4572 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm16
4573 ; AVX512BW-NEXT:    vpermt2d %zmm10, %zmm15, %zmm16
4574 ; AVX512BW-NEXT:    movw $-2048, %di # imm = 0xF800
4575 ; AVX512BW-NEXT:    kmovd %edi, %k1
4576 ; AVX512BW-NEXT:    vmovdqa32 %zmm16, %zmm8 {%k1}
4577 ; AVX512BW-NEXT:    vpermi2d %zmm6, %zmm4, %zmm15
4578 ; AVX512BW-NEXT:    vpermi2d %zmm2, %zmm5, %zmm14
4579 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm3, %zmm7
4580 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, %zmm7 {%k2}
4581 ; AVX512BW-NEXT:    vmovdqa32 %zmm15, %zmm7 {%k1}
4582 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm16 = [1,7,13,0,0,0,21,27,1,7,13,0,0,0,21,27]
4583 ; AVX512BW-NEXT:    # zmm16 = mem[0,1,2,3,0,1,2,3]
4584 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm17
4585 ; AVX512BW-NEXT:    vpermt2d %zmm12, %zmm16, %zmm17
4586 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} ymm14 = [1,7,13,19,25,31,u,u]
4587 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm15
4588 ; AVX512BW-NEXT:    vpermt2d %zmm1, %zmm14, %zmm15
4589 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm15 {%k2}
4590 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm17 = [0,0,0,3,9,15,21,27,0,0,0,3,9,15,21,27]
4591 ; AVX512BW-NEXT:    # zmm17 = mem[0,1,2,3,0,1,2,3]
4592 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm18
4593 ; AVX512BW-NEXT:    vpermt2d %zmm10, %zmm17, %zmm18
4594 ; AVX512BW-NEXT:    vmovdqa32 %zmm18, %zmm15 {%k1}
4595 ; AVX512BW-NEXT:    vpermi2d %zmm6, %zmm4, %zmm17
4596 ; AVX512BW-NEXT:    vpermi2d %zmm2, %zmm5, %zmm16
4597 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm3, %zmm14
4598 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, %zmm14 {%k2}
4599 ; AVX512BW-NEXT:    vmovdqa32 %zmm17, %zmm14 {%k1}
4600 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} ymm18 = [2,8,14,20,26,u,u,u]
4601 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm19
4602 ; AVX512BW-NEXT:    vpermt2d %zmm1, %zmm18, %zmm19
4603 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm17 = [18,24,30,0,0,0,6,12,18,24,30,0,0,0,6,12]
4604 ; AVX512BW-NEXT:    # zmm17 = mem[0,1,2,3,0,1,2,3]
4605 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm16
4606 ; AVX512BW-NEXT:    vpermt2d %zmm13, %zmm17, %zmm16
4607 ; AVX512BW-NEXT:    movw $31, %di
4608 ; AVX512BW-NEXT:    kmovd %edi, %k2
4609 ; AVX512BW-NEXT:    vmovdqa32 %zmm19, %zmm16 {%k2}
4610 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm19 = [0,0,0,20,26,0,6,12,0,0,0,20,26,0,6,12]
4611 ; AVX512BW-NEXT:    # zmm19 = mem[0,1,2,3,0,1,2,3]
4612 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm20
4613 ; AVX512BW-NEXT:    vpermt2d %zmm9, %zmm19, %zmm20
4614 ; AVX512BW-NEXT:    vmovdqa32 %zmm20, %zmm16 {%k1}
4615 ; AVX512BW-NEXT:    vpermi2d %zmm4, %zmm6, %zmm19
4616 ; AVX512BW-NEXT:    vpermi2d %zmm5, %zmm2, %zmm17
4617 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm3, %zmm18
4618 ; AVX512BW-NEXT:    vmovdqa32 %zmm18, %zmm17 {%k2}
4619 ; AVX512BW-NEXT:    vmovdqa32 %zmm19, %zmm17 {%k1}
4620 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} ymm20 = [3,9,15,21,27,u,u,u]
4621 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm21
4622 ; AVX512BW-NEXT:    vpermt2d %zmm1, %zmm20, %zmm21
4623 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm19 = [19,25,31,0,0,1,7,13,19,25,31,0,0,1,7,13]
4624 ; AVX512BW-NEXT:    # zmm19 = mem[0,1,2,3,0,1,2,3]
4625 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm18
4626 ; AVX512BW-NEXT:    vpermt2d %zmm13, %zmm19, %zmm18
4627 ; AVX512BW-NEXT:    vmovdqa32 %zmm21, %zmm18 {%k2}
4628 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm21 = [0,0,0,21,27,1,7,13,0,0,0,21,27,1,7,13]
4629 ; AVX512BW-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3]
4630 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm22
4631 ; AVX512BW-NEXT:    vpermt2d %zmm9, %zmm21, %zmm22
4632 ; AVX512BW-NEXT:    vmovdqa32 %zmm22, %zmm18 {%k1}
4633 ; AVX512BW-NEXT:    vpermi2d %zmm4, %zmm6, %zmm21
4634 ; AVX512BW-NEXT:    vpermi2d %zmm5, %zmm2, %zmm19
4635 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm3, %zmm20
4636 ; AVX512BW-NEXT:    vmovdqa32 %zmm20, %zmm19 {%k2}
4637 ; AVX512BW-NEXT:    vmovdqa32 %zmm21, %zmm19 {%k1}
4638 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm20 = [20,26,0,0,0,2,8,14,20,26,0,0,0,2,8,14]
4639 ; AVX512BW-NEXT:    # zmm20 = mem[0,1,2,3,0,1,2,3]
4640 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm21
4641 ; AVX512BW-NEXT:    vpermt2d %zmm13, %zmm20, %zmm21
4642 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} ymm22 = [20,26,0,6,12,u,u,u]
4643 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm23
4644 ; AVX512BW-NEXT:    vpermt2d %zmm11, %zmm22, %zmm23
4645 ; AVX512BW-NEXT:    movw $992, %di # imm = 0x3E0
4646 ; AVX512BW-NEXT:    kmovd %edi, %k1
4647 ; AVX512BW-NEXT:    vmovdqa32 %zmm21, %zmm23 {%k1}
4648 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm21 = [0,0,0,6,12,18,24,30,0,0,0,6,12,18,24,30]
4649 ; AVX512BW-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3]
4650 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm24
4651 ; AVX512BW-NEXT:    vpermt2d %zmm10, %zmm21, %zmm24
4652 ; AVX512BW-NEXT:    movb $-32, %dil
4653 ; AVX512BW-NEXT:    kmovd %edi, %k2
4654 ; AVX512BW-NEXT:    vmovdqa64 %zmm24, %zmm23 {%k2}
4655 ; AVX512BW-NEXT:    vpermi2d %zmm6, %zmm4, %zmm21
4656 ; AVX512BW-NEXT:    vpermi2d %zmm5, %zmm2, %zmm20
4657 ; AVX512BW-NEXT:    vpermi2d %zmm3, %zmm0, %zmm22
4658 ; AVX512BW-NEXT:    vmovdqa32 %zmm20, %zmm22 {%k1}
4659 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, %zmm22 {%k2}
4660 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm20 = [21,27,0,0,0,3,9,15,21,27,0,0,0,3,9,15]
4661 ; AVX512BW-NEXT:    # zmm20 = mem[0,1,2,3,0,1,2,3]
4662 ; AVX512BW-NEXT:    vpermt2d %zmm13, %zmm20, %zmm12
4663 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} ymm13 = [21,27,1,7,13,u,u,u]
4664 ; AVX512BW-NEXT:    vpermt2d %zmm11, %zmm13, %zmm1
4665 ; AVX512BW-NEXT:    vmovdqa32 %zmm12, %zmm1 {%k1}
4666 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm11 = [0,0,1,7,13,19,25,31,0,0,1,7,13,19,25,31]
4667 ; AVX512BW-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3]
4668 ; AVX512BW-NEXT:    vpermt2d %zmm10, %zmm11, %zmm9
4669 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm1 {%k2}
4670 ; AVX512BW-NEXT:    vpermt2d %zmm6, %zmm11, %zmm4
4671 ; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm20, %zmm2
4672 ; AVX512BW-NEXT:    vpermt2d %zmm3, %zmm13, %zmm0
4673 ; AVX512BW-NEXT:    vmovdqa32 %zmm2, %zmm0 {%k1}
4674 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm0 {%k2}
4675 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, 64(%rsi)
4676 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, (%rsi)
4677 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, 64(%rdx)
4678 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, (%rdx)
4679 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, 64(%rcx)
4680 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, (%rcx)
4681 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, 64(%r8)
4682 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, (%r8)
4683 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, 64(%r9)
4684 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, (%r9)
4685 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, 64(%rax)
4686 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, (%rax)
4687 ; AVX512BW-NEXT:    vzeroupper
4688 ; AVX512BW-NEXT:    retq
4689   %wide.vec = load <192 x i32>, ptr %in.vec, align 64
4690   %strided.vec0 = shufflevector <192 x i32> %wide.vec, <192 x i32> poison, <32 x i32> <i32 0, i32 6, i32 12, i32 18, i32 24, i32 30, i32 36, i32 42, i32 48, i32 54, i32 60, i32 66, i32 72, i32 78, i32 84, i32 90, i32 96, i32 102, i32 108, i32 114, i32 120, i32 126, i32 132, i32 138, i32 144, i32 150, i32 156, i32 162, i32 168, i32 174, i32 180, i32 186>
4691   %strided.vec1 = shufflevector <192 x i32> %wide.vec, <192 x i32> poison, <32 x i32> <i32 1, i32 7, i32 13, i32 19, i32 25, i32 31, i32 37, i32 43, i32 49, i32 55, i32 61, i32 67, i32 73, i32 79, i32 85, i32 91, i32 97, i32 103, i32 109, i32 115, i32 121, i32 127, i32 133, i32 139, i32 145, i32 151, i32 157, i32 163, i32 169, i32 175, i32 181, i32 187>
4692   %strided.vec2 = shufflevector <192 x i32> %wide.vec, <192 x i32> poison, <32 x i32> <i32 2, i32 8, i32 14, i32 20, i32 26, i32 32, i32 38, i32 44, i32 50, i32 56, i32 62, i32 68, i32 74, i32 80, i32 86, i32 92, i32 98, i32 104, i32 110, i32 116, i32 122, i32 128, i32 134, i32 140, i32 146, i32 152, i32 158, i32 164, i32 170, i32 176, i32 182, i32 188>
4693   %strided.vec3 = shufflevector <192 x i32> %wide.vec, <192 x i32> poison, <32 x i32> <i32 3, i32 9, i32 15, i32 21, i32 27, i32 33, i32 39, i32 45, i32 51, i32 57, i32 63, i32 69, i32 75, i32 81, i32 87, i32 93, i32 99, i32 105, i32 111, i32 117, i32 123, i32 129, i32 135, i32 141, i32 147, i32 153, i32 159, i32 165, i32 171, i32 177, i32 183, i32 189>
4694   %strided.vec4 = shufflevector <192 x i32> %wide.vec, <192 x i32> poison, <32 x i32> <i32 4, i32 10, i32 16, i32 22, i32 28, i32 34, i32 40, i32 46, i32 52, i32 58, i32 64, i32 70, i32 76, i32 82, i32 88, i32 94, i32 100, i32 106, i32 112, i32 118, i32 124, i32 130, i32 136, i32 142, i32 148, i32 154, i32 160, i32 166, i32 172, i32 178, i32 184, i32 190>
4695   %strided.vec5 = shufflevector <192 x i32> %wide.vec, <192 x i32> poison, <32 x i32> <i32 5, i32 11, i32 17, i32 23, i32 29, i32 35, i32 41, i32 47, i32 53, i32 59, i32 65, i32 71, i32 77, i32 83, i32 89, i32 95, i32 101, i32 107, i32 113, i32 119, i32 125, i32 131, i32 137, i32 143, i32 149, i32 155, i32 161, i32 167, i32 173, i32 179, i32 185, i32 191>
4696   store <32 x i32> %strided.vec0, ptr %out.vec0, align 64
4697   store <32 x i32> %strided.vec1, ptr %out.vec1, align 64
4698   store <32 x i32> %strided.vec2, ptr %out.vec2, align 64
4699   store <32 x i32> %strided.vec3, ptr %out.vec3, align 64
4700   store <32 x i32> %strided.vec4, ptr %out.vec4, align 64
4701   store <32 x i32> %strided.vec5, ptr %out.vec5, align 64
4702   ret void
4705 define void @load_i32_stride6_vf64(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4, ptr %out.vec5) nounwind {
4706 ; SSE-LABEL: load_i32_stride6_vf64:
4707 ; SSE:       # %bb.0:
4708 ; SSE-NEXT:    subq $2184, %rsp # imm = 0x888
4709 ; SSE-NEXT:    movdqa 912(%rdi), %xmm7
4710 ; SSE-NEXT:    movdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4711 ; SSE-NEXT:    movdqa 928(%rdi), %xmm3
4712 ; SSE-NEXT:    movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4713 ; SSE-NEXT:    movdqa 864(%rdi), %xmm8
4714 ; SSE-NEXT:    movdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4715 ; SSE-NEXT:    movdqa 880(%rdi), %xmm4
4716 ; SSE-NEXT:    movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4717 ; SSE-NEXT:    movdqa 528(%rdi), %xmm9
4718 ; SSE-NEXT:    movdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4719 ; SSE-NEXT:    movdqa 544(%rdi), %xmm5
4720 ; SSE-NEXT:    movdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4721 ; SSE-NEXT:    movdqa 480(%rdi), %xmm10
4722 ; SSE-NEXT:    movdqa %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4723 ; SSE-NEXT:    movdqa 496(%rdi), %xmm6
4724 ; SSE-NEXT:    movdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4725 ; SSE-NEXT:    movdqa 144(%rdi), %xmm11
4726 ; SSE-NEXT:    movdqa %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4727 ; SSE-NEXT:    movdqa 160(%rdi), %xmm2
4728 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4729 ; SSE-NEXT:    movdqa 96(%rdi), %xmm12
4730 ; SSE-NEXT:    movdqa %xmm12, (%rsp) # 16-byte Spill
4731 ; SSE-NEXT:    movdqa 112(%rdi), %xmm0
4732 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4733 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]
4734 ; SSE-NEXT:    movdqa %xmm12, %xmm1
4735 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
4736 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm2[2,2,3,3]
4737 ; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm11[0,0,1,1]
4738 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]
4739 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm1[0],xmm2[1]
4740 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4741 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm6[2,3,2,3]
4742 ; SSE-NEXT:    movdqa %xmm10, %xmm1
4743 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
4744 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm5[2,2,3,3]
4745 ; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm9[0,0,1,1]
4746 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]
4747 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm1[0],xmm2[1]
4748 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4749 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm4[2,3,2,3]
4750 ; SSE-NEXT:    movdqa %xmm8, %xmm1
4751 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
4752 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm3[2,2,3,3]
4753 ; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm7[0,0,1,1]
4754 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]
4755 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm1[0],xmm2[1]
4756 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4757 ; SSE-NEXT:    movdqa 1248(%rdi), %xmm2
4758 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4759 ; SSE-NEXT:    movdqa 1264(%rdi), %xmm0
4760 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4761 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]
4762 ; SSE-NEXT:    movdqa %xmm2, %xmm1
4763 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
4764 ; SSE-NEXT:    movdqa 1296(%rdi), %xmm3
4765 ; SSE-NEXT:    movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4766 ; SSE-NEXT:    movdqa 1312(%rdi), %xmm0
4767 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4768 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,2,3,3]
4769 ; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm3[0,0,1,1]
4770 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]
4771 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm1[0],xmm2[1]
4772 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4773 ; SSE-NEXT:    movdqa (%rdi), %xmm1
4774 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4775 ; SSE-NEXT:    movdqa 16(%rdi), %xmm0
4776 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4777 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]
4778 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
4779 ; SSE-NEXT:    movdqa 64(%rdi), %xmm0
4780 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4781 ; SSE-NEXT:    movdqa 48(%rdi), %xmm2
4782 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4783 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,2,3,3]
4784 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm2[0,0,1,1]
4785 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm0[0],xmm3[1],xmm0[1]
4786 ; SSE-NEXT:    movsd {{.*#+}} xmm3 = xmm1[0],xmm3[1]
4787 ; SSE-NEXT:    movapd %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4788 ; SSE-NEXT:    movdqa 384(%rdi), %xmm1
4789 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4790 ; SSE-NEXT:    movdqa 400(%rdi), %xmm0
4791 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4792 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]
4793 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
4794 ; SSE-NEXT:    movdqa 432(%rdi), %xmm2
4795 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4796 ; SSE-NEXT:    movdqa 448(%rdi), %xmm0
4797 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4798 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,2,3,3]
4799 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm2[0,0,1,1]
4800 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm0[0],xmm3[1],xmm0[1]
4801 ; SSE-NEXT:    movsd {{.*#+}} xmm3 = xmm1[0],xmm3[1]
4802 ; SSE-NEXT:    movapd %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4803 ; SSE-NEXT:    movdqa 768(%rdi), %xmm1
4804 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4805 ; SSE-NEXT:    movdqa 784(%rdi), %xmm0
4806 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4807 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]
4808 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
4809 ; SSE-NEXT:    movdqa 816(%rdi), %xmm2
4810 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4811 ; SSE-NEXT:    movdqa 832(%rdi), %xmm0
4812 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4813 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,2,3,3]
4814 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm2[0,0,1,1]
4815 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm0[0],xmm3[1],xmm0[1]
4816 ; SSE-NEXT:    movsd {{.*#+}} xmm3 = xmm1[0],xmm3[1]
4817 ; SSE-NEXT:    movapd %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4818 ; SSE-NEXT:    movdqa 1152(%rdi), %xmm1
4819 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4820 ; SSE-NEXT:    movdqa 1168(%rdi), %xmm0
4821 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4822 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]
4823 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
4824 ; SSE-NEXT:    movdqa 1200(%rdi), %xmm2
4825 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4826 ; SSE-NEXT:    movdqa 1216(%rdi), %xmm0
4827 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4828 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,2,3,3]
4829 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm2[0,0,1,1]
4830 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm0[0],xmm3[1],xmm0[1]
4831 ; SSE-NEXT:    movsd {{.*#+}} xmm3 = xmm1[0],xmm3[1]
4832 ; SSE-NEXT:    movapd %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4833 ; SSE-NEXT:    movdqa 288(%rdi), %xmm2
4834 ; SSE-NEXT:    movdqa 304(%rdi), %xmm0
4835 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4836 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]
4837 ; SSE-NEXT:    movdqa %xmm2, %xmm1
4838 ; SSE-NEXT:    movdqa %xmm2, %xmm15
4839 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4840 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
4841 ; SSE-NEXT:    movdqa 336(%rdi), %xmm7
4842 ; SSE-NEXT:    movdqa 352(%rdi), %xmm0
4843 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4844 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,2,3,3]
4845 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm7[0,0,1,1]
4846 ; SSE-NEXT:    movdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4847 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm0[0],xmm3[1],xmm0[1]
4848 ; SSE-NEXT:    movsd {{.*#+}} xmm3 = xmm1[0],xmm3[1]
4849 ; SSE-NEXT:    movapd %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4850 ; SSE-NEXT:    movdqa 672(%rdi), %xmm1
4851 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4852 ; SSE-NEXT:    movdqa 688(%rdi), %xmm0
4853 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4854 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]
4855 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
4856 ; SSE-NEXT:    movdqa 720(%rdi), %xmm3
4857 ; SSE-NEXT:    movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4858 ; SSE-NEXT:    movdqa 736(%rdi), %xmm0
4859 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4860 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,2,3,3]
4861 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm3[0,0,1,1]
4862 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm0[0],xmm3[1],xmm0[1]
4863 ; SSE-NEXT:    movsd {{.*#+}} xmm3 = xmm1[0],xmm3[1]
4864 ; SSE-NEXT:    movapd %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4865 ; SSE-NEXT:    movdqa 1056(%rdi), %xmm2
4866 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4867 ; SSE-NEXT:    movdqa 1072(%rdi), %xmm0
4868 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4869 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]
4870 ; SSE-NEXT:    movdqa %xmm2, %xmm1
4871 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
4872 ; SSE-NEXT:    movdqa 1104(%rdi), %xmm2
4873 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4874 ; SSE-NEXT:    movdqa 1120(%rdi), %xmm0
4875 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4876 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,2,3,3]
4877 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm2[0,0,1,1]
4878 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm0[0],xmm3[1],xmm0[1]
4879 ; SSE-NEXT:    movsd {{.*#+}} xmm3 = xmm1[0],xmm3[1]
4880 ; SSE-NEXT:    movapd %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4881 ; SSE-NEXT:    movdqa 1440(%rdi), %xmm1
4882 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4883 ; SSE-NEXT:    movdqa 1456(%rdi), %xmm0
4884 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4885 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]
4886 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
4887 ; SSE-NEXT:    movdqa 1488(%rdi), %xmm2
4888 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4889 ; SSE-NEXT:    movdqa 1504(%rdi), %xmm0
4890 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4891 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,2,3,3]
4892 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm2[0,0,1,1]
4893 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm0[0],xmm3[1],xmm0[1]
4894 ; SSE-NEXT:    movsd {{.*#+}} xmm3 = xmm1[0],xmm3[1]
4895 ; SSE-NEXT:    movapd %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4896 ; SSE-NEXT:    movdqa 192(%rdi), %xmm5
4897 ; SSE-NEXT:    movdqa 208(%rdi), %xmm6
4898 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm6[2,3,2,3]
4899 ; SSE-NEXT:    movdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4900 ; SSE-NEXT:    movdqa %xmm5, %xmm3
4901 ; SSE-NEXT:    movdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4902 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]
4903 ; SSE-NEXT:    movdqa 240(%rdi), %xmm2
4904 ; SSE-NEXT:    movdqa 256(%rdi), %xmm1
4905 ; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm1[2,2,3,3]
4906 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4907 ; SSE-NEXT:    pshufd {{.*#+}} xmm12 = xmm2[0,0,1,1]
4908 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4909 ; SSE-NEXT:    punpckldq {{.*#+}} xmm12 = xmm12[0],xmm4[0],xmm12[1],xmm4[1]
4910 ; SSE-NEXT:    movsd {{.*#+}} xmm12 = xmm3[0],xmm12[1]
4911 ; SSE-NEXT:    movapd %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4912 ; SSE-NEXT:    movdqa 576(%rdi), %xmm10
4913 ; SSE-NEXT:    movdqa 592(%rdi), %xmm14
4914 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm14[2,3,2,3]
4915 ; SSE-NEXT:    movdqa %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4916 ; SSE-NEXT:    movdqa %xmm10, %xmm4
4917 ; SSE-NEXT:    movdqa %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4918 ; SSE-NEXT:    punpckldq {{.*#+}} xmm4 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]
4919 ; SSE-NEXT:    movdqa 624(%rdi), %xmm11
4920 ; SSE-NEXT:    movdqa 640(%rdi), %xmm13
4921 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm13[2,2,3,3]
4922 ; SSE-NEXT:    movdqa %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4923 ; SSE-NEXT:    pshufd {{.*#+}} xmm12 = xmm11[0,0,1,1]
4924 ; SSE-NEXT:    movdqa %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4925 ; SSE-NEXT:    punpckldq {{.*#+}} xmm12 = xmm12[0],xmm3[0],xmm12[1],xmm3[1]
4926 ; SSE-NEXT:    movsd {{.*#+}} xmm12 = xmm4[0],xmm12[1]
4927 ; SSE-NEXT:    movapd %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4928 ; SSE-NEXT:    movdqa 960(%rdi), %xmm4
4929 ; SSE-NEXT:    movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4930 ; SSE-NEXT:    movdqa 976(%rdi), %xmm0
4931 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4932 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm0[2,3,2,3]
4933 ; SSE-NEXT:    punpckldq {{.*#+}} xmm4 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]
4934 ; SSE-NEXT:    movdqa 1008(%rdi), %xmm8
4935 ; SSE-NEXT:    movdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4936 ; SSE-NEXT:    movdqa 1024(%rdi), %xmm0
4937 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm0[2,2,3,3]
4938 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4939 ; SSE-NEXT:    pshufd {{.*#+}} xmm12 = xmm8[0,0,1,1]
4940 ; SSE-NEXT:    punpckldq {{.*#+}} xmm12 = xmm12[0],xmm3[0],xmm12[1],xmm3[1]
4941 ; SSE-NEXT:    movsd {{.*#+}} xmm12 = xmm4[0],xmm12[1]
4942 ; SSE-NEXT:    movapd %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4943 ; SSE-NEXT:    movdqa 1344(%rdi), %xmm9
4944 ; SSE-NEXT:    movdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4945 ; SSE-NEXT:    movdqa 1360(%rdi), %xmm3
4946 ; SSE-NEXT:    movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4947 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm3[2,3,2,3]
4948 ; SSE-NEXT:    movdqa %xmm9, %xmm4
4949 ; SSE-NEXT:    punpckldq {{.*#+}} xmm4 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]
4950 ; SSE-NEXT:    movdqa 1392(%rdi), %xmm9
4951 ; SSE-NEXT:    movdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4952 ; SSE-NEXT:    movdqa 1408(%rdi), %xmm3
4953 ; SSE-NEXT:    movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4954 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm3[2,2,3,3]
4955 ; SSE-NEXT:    pshufd {{.*#+}} xmm12 = xmm9[0,0,1,1]
4956 ; SSE-NEXT:    punpckldq {{.*#+}} xmm12 = xmm12[0],xmm3[0],xmm12[1],xmm3[1]
4957 ; SSE-NEXT:    movsd {{.*#+}} xmm12 = xmm4[0],xmm12[1]
4958 ; SSE-NEXT:    movapd %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4959 ; SSE-NEXT:    pshufd $85, (%rsp), %xmm3 # 16-byte Folded Reload
4960 ; SSE-NEXT:    # xmm3 = mem[1,1,1,1]
4961 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
4962 ; SSE-NEXT:    # xmm4 = mem[3,3,3,3]
4963 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm4[0],xmm3[1],xmm4[1]
4964 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
4965 ; SSE-NEXT:    # xmm4 = mem[2,3,2,3]
4966 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload
4967 ; SSE-NEXT:    movdqa %xmm9, %xmm12
4968 ; SSE-NEXT:    punpckldq {{.*#+}} xmm12 = xmm12[0],xmm4[0],xmm12[1],xmm4[1]
4969 ; SSE-NEXT:    movsd {{.*#+}} xmm12 = xmm3[0],xmm12[1]
4970 ; SSE-NEXT:    movapd %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4971 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload
4972 ; SSE-NEXT:    # xmm3 = mem[1,1,1,1]
4973 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
4974 ; SSE-NEXT:    # xmm4 = mem[3,3,3,3]
4975 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm4[0],xmm3[1],xmm4[1]
4976 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
4977 ; SSE-NEXT:    # xmm4 = mem[2,3,2,3]
4978 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
4979 ; SSE-NEXT:    movdqa %xmm8, %xmm12
4980 ; SSE-NEXT:    punpckldq {{.*#+}} xmm12 = xmm12[0],xmm4[0],xmm12[1],xmm4[1]
4981 ; SSE-NEXT:    movsd {{.*#+}} xmm12 = xmm3[0],xmm12[1]
4982 ; SSE-NEXT:    movapd %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4983 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm15[1,1,1,1]
4984 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
4985 ; SSE-NEXT:    # xmm4 = mem[3,3,3,3]
4986 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm4[0],xmm3[1],xmm4[1]
4987 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
4988 ; SSE-NEXT:    # xmm4 = mem[2,3,2,3]
4989 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm4[0],xmm7[1],xmm4[1]
4990 ; SSE-NEXT:    movsd {{.*#+}} xmm7 = xmm3[0],xmm7[1]
4991 ; SSE-NEXT:    movapd %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4992 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm5[1,1,1,1]
4993 ; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm6[3,3,3,3]
4994 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm4[0],xmm3[1],xmm4[1]
4995 ; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm1[2,3,2,3]
4996 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm4[0],xmm2[1],xmm4[1]
4997 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm3[0],xmm2[1]
4998 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4999 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
5000 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm15[1,1,1,1]
5001 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
5002 ; SSE-NEXT:    # xmm4 = mem[3,3,3,3]
5003 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm4[0],xmm3[1],xmm4[1]
5004 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
5005 ; SSE-NEXT:    # xmm4 = mem[2,3,2,3]
5006 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload
5007 ; SSE-NEXT:    movdqa %xmm12, %xmm7
5008 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm4[0],xmm7[1],xmm4[1]
5009 ; SSE-NEXT:    movsd {{.*#+}} xmm7 = xmm3[0],xmm7[1]
5010 ; SSE-NEXT:    movapd %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5011 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
5012 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm7[1,1,1,1]
5013 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
5014 ; SSE-NEXT:    # xmm4 = mem[3,3,3,3]
5015 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm4[0],xmm3[1],xmm4[1]
5016 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
5017 ; SSE-NEXT:    # xmm4 = mem[2,3,2,3]
5018 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
5019 ; SSE-NEXT:    movdqa %xmm2, %xmm5
5020 ; SSE-NEXT:    punpckldq {{.*#+}} xmm5 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
5021 ; SSE-NEXT:    movsd {{.*#+}} xmm5 = xmm3[0],xmm5[1]
5022 ; SSE-NEXT:    movapd %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5023 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload
5024 ; SSE-NEXT:    # xmm3 = mem[1,1,1,1]
5025 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
5026 ; SSE-NEXT:    # xmm4 = mem[3,3,3,3]
5027 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm4[0],xmm3[1],xmm4[1]
5028 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
5029 ; SSE-NEXT:    # xmm4 = mem[2,3,2,3]
5030 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
5031 ; SSE-NEXT:    punpckldq {{.*#+}} xmm5 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
5032 ; SSE-NEXT:    movsd {{.*#+}} xmm5 = xmm3[0],xmm5[1]
5033 ; SSE-NEXT:    movapd %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5034 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm10[1,1,1,1]
5035 ; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm14[3,3,3,3]
5036 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm4[0],xmm3[1],xmm4[1]
5037 ; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm13[2,3,2,3]
5038 ; SSE-NEXT:    punpckldq {{.*#+}} xmm11 = xmm11[0],xmm4[0],xmm11[1],xmm4[1]
5039 ; SSE-NEXT:    movsd {{.*#+}} xmm11 = xmm3[0],xmm11[1]
5040 ; SSE-NEXT:    movapd %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5041 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload
5042 ; SSE-NEXT:    # xmm3 = mem[1,1,1,1]
5043 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
5044 ; SSE-NEXT:    # xmm4 = mem[3,3,3,3]
5045 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm4[0],xmm3[1],xmm4[1]
5046 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
5047 ; SSE-NEXT:    # xmm4 = mem[2,3,2,3]
5048 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload
5049 ; SSE-NEXT:    movdqa %xmm11, %xmm1
5050 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm4[0],xmm1[1],xmm4[1]
5051 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm3[0],xmm1[1]
5052 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5053 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
5054 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm6[1,1,1,1]
5055 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
5056 ; SSE-NEXT:    # xmm4 = mem[3,3,3,3]
5057 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm4[0],xmm3[1],xmm4[1]
5058 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
5059 ; SSE-NEXT:    # xmm4 = mem[2,3,2,3]
5060 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
5061 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm4[0],xmm1[1],xmm4[1]
5062 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm3[0],xmm1[1]
5063 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5064 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload
5065 ; SSE-NEXT:    # xmm3 = mem[1,1,1,1]
5066 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
5067 ; SSE-NEXT:    # xmm4 = mem[3,3,3,3]
5068 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm4[0],xmm3[1],xmm4[1]
5069 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
5070 ; SSE-NEXT:    # xmm4 = mem[2,3,2,3]
5071 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload
5072 ; SSE-NEXT:    movdqa %xmm13, %xmm1
5073 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm4[0],xmm1[1],xmm4[1]
5074 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm3[0],xmm1[1]
5075 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5076 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload
5077 ; SSE-NEXT:    # xmm3 = mem[1,1,1,1]
5078 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
5079 ; SSE-NEXT:    # xmm4 = mem[3,3,3,3]
5080 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm4[0],xmm3[1],xmm4[1]
5081 ; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm0[2,3,2,3]
5082 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
5083 ; SSE-NEXT:    movdqa %xmm14, %xmm0
5084 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1]
5085 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm3[0],xmm0[1]
5086 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5087 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload
5088 ; SSE-NEXT:    # xmm3 = mem[1,1,1,1]
5089 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
5090 ; SSE-NEXT:    # xmm4 = mem[3,3,3,3]
5091 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm4[0],xmm3[1],xmm4[1]
5092 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
5093 ; SSE-NEXT:    # xmm4 = mem[2,3,2,3]
5094 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5095 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1]
5096 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm3[0],xmm0[1]
5097 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5098 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
5099 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm10[1,1,1,1]
5100 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
5101 ; SSE-NEXT:    # xmm4 = mem[3,3,3,3]
5102 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm4[0],xmm3[1],xmm4[1]
5103 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
5104 ; SSE-NEXT:    # xmm4 = mem[2,3,2,3]
5105 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
5106 ; SSE-NEXT:    movdqa %xmm5, %xmm0
5107 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1]
5108 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm3[0],xmm0[1]
5109 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5110 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload
5111 ; SSE-NEXT:    # xmm3 = mem[1,1,1,1]
5112 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
5113 ; SSE-NEXT:    # xmm4 = mem[3,3,3,3]
5114 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm4[0],xmm3[1],xmm4[1]
5115 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
5116 ; SSE-NEXT:    # xmm4 = mem[2,3,2,3]
5117 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5118 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1]
5119 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm3[0],xmm0[1]
5120 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5121 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload
5122 ; SSE-NEXT:    # xmm3 = mem[1,1,1,1]
5123 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
5124 ; SSE-NEXT:    # xmm4 = mem[3,3,3,3]
5125 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm4[0],xmm3[1],xmm4[1]
5126 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
5127 ; SSE-NEXT:    # xmm4 = mem[2,3,2,3]
5128 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5129 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1]
5130 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm3[0],xmm0[1]
5131 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5132 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm8[2,2,3,3]
5133 ; SSE-NEXT:    movdqa 80(%rdi), %xmm1
5134 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5135 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm1[0,0,1,1]
5136 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
5137 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload
5138 ; SSE-NEXT:    # xmm3 = mem[2,3,2,3]
5139 ; SSE-NEXT:    movdqa 32(%rdi), %xmm1
5140 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5141 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]
5142 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm3[0],xmm0[1]
5143 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5144 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm9[2,2,3,3]
5145 ; SSE-NEXT:    movdqa 176(%rdi), %xmm1
5146 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5147 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm1[0,0,1,1]
5148 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
5149 ; SSE-NEXT:    pshufd $238, (%rsp), %xmm3 # 16-byte Folded Reload
5150 ; SSE-NEXT:    # xmm3 = mem[2,3,2,3]
5151 ; SSE-NEXT:    movdqa 128(%rdi), %xmm1
5152 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5153 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]
5154 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm3[0],xmm0[1]
5155 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5156 ; SSE-NEXT:    pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5157 ; SSE-NEXT:    # xmm0 = mem[2,2,3,3]
5158 ; SSE-NEXT:    movdqa 272(%rdi), %xmm1
5159 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5160 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm1[0,0,1,1]
5161 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
5162 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload
5163 ; SSE-NEXT:    # xmm3 = mem[2,3,2,3]
5164 ; SSE-NEXT:    movdqa 224(%rdi), %xmm1
5165 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5166 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]
5167 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm3[0],xmm0[1]
5168 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5169 ; SSE-NEXT:    pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5170 ; SSE-NEXT:    # xmm0 = mem[2,2,3,3]
5171 ; SSE-NEXT:    movdqa 368(%rdi), %xmm1
5172 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5173 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm1[0,0,1,1]
5174 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
5175 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload
5176 ; SSE-NEXT:    # xmm3 = mem[2,3,2,3]
5177 ; SSE-NEXT:    movdqa 320(%rdi), %xmm1
5178 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5179 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]
5180 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm3[0],xmm0[1]
5181 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5182 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm2[2,2,3,3]
5183 ; SSE-NEXT:    movdqa 464(%rdi), %xmm1
5184 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5185 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm1[0,0,1,1]
5186 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
5187 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm7[2,3,2,3]
5188 ; SSE-NEXT:    movdqa 416(%rdi), %xmm1
5189 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5190 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]
5191 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm3[0],xmm0[1]
5192 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5193 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm12[2,2,3,3]
5194 ; SSE-NEXT:    movdqa 560(%rdi), %xmm1
5195 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5196 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm1[0,0,1,1]
5197 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
5198 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm15[2,3,2,3]
5199 ; SSE-NEXT:    movdqa 512(%rdi), %xmm2
5200 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5201 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
5202 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm3[0],xmm0[1]
5203 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5204 ; SSE-NEXT:    pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5205 ; SSE-NEXT:    # xmm0 = mem[2,2,3,3]
5206 ; SSE-NEXT:    movdqa 656(%rdi), %xmm1
5207 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5208 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm1[0,0,1,1]
5209 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
5210 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload
5211 ; SSE-NEXT:    # xmm3 = mem[2,3,2,3]
5212 ; SSE-NEXT:    movdqa 608(%rdi), %xmm9
5213 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm9[0],xmm3[1],xmm9[1]
5214 ; SSE-NEXT:    movdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5215 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm3[0],xmm0[1]
5216 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5217 ; SSE-NEXT:    pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5218 ; SSE-NEXT:    # xmm0 = mem[2,2,3,3]
5219 ; SSE-NEXT:    movdqa 752(%rdi), %xmm1
5220 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5221 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm1[0,0,1,1]
5222 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
5223 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload
5224 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm12[2,3,2,3]
5225 ; SSE-NEXT:    movdqa 704(%rdi), %xmm2
5226 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5227 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
5228 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm3[0],xmm0[1]
5229 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5230 ; SSE-NEXT:    pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5231 ; SSE-NEXT:    # xmm0 = mem[2,2,3,3]
5232 ; SSE-NEXT:    movdqa 848(%rdi), %xmm1
5233 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5234 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm1[0,0,1,1]
5235 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
5236 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm6[2,3,2,3]
5237 ; SSE-NEXT:    movdqa 800(%rdi), %xmm2
5238 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5239 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
5240 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm3[0],xmm0[1]
5241 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5242 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm11[2,2,3,3]
5243 ; SSE-NEXT:    movdqa 944(%rdi), %xmm1
5244 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5245 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm1[0,0,1,1]
5246 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
5247 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload
5248 ; SSE-NEXT:    # xmm3 = mem[2,3,2,3]
5249 ; SSE-NEXT:    movdqa 896(%rdi), %xmm2
5250 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
5251 ; SSE-NEXT:    movdqa %xmm2, %xmm8
5252 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5253 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm3[0],xmm0[1]
5254 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5255 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm14[2,2,3,3]
5256 ; SSE-NEXT:    movdqa 1040(%rdi), %xmm1
5257 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5258 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm1[0,0,1,1]
5259 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
5260 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
5261 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm7[2,3,2,3]
5262 ; SSE-NEXT:    movdqa 992(%rdi), %xmm1
5263 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5264 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]
5265 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm3[0],xmm0[1]
5266 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5267 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm13[2,2,3,3]
5268 ; SSE-NEXT:    movdqa 1136(%rdi), %xmm1
5269 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5270 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm1[0,0,1,1]
5271 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
5272 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload
5273 ; SSE-NEXT:    # xmm3 = mem[2,3,2,3]
5274 ; SSE-NEXT:    movdqa 1088(%rdi), %xmm6
5275 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm6[0],xmm3[1],xmm6[1]
5276 ; SSE-NEXT:    movdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5277 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm3[0],xmm0[1]
5278 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5279 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm5[2,2,3,3]
5280 ; SSE-NEXT:    movdqa 1232(%rdi), %xmm2
5281 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5282 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm2[0,0,1,1]
5283 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
5284 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm10[2,3,2,3]
5285 ; SSE-NEXT:    movdqa 1184(%rdi), %xmm1
5286 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5287 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]
5288 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm3[0],xmm0[1]
5289 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5290 ; SSE-NEXT:    pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5291 ; SSE-NEXT:    # xmm0 = mem[2,2,3,3]
5292 ; SSE-NEXT:    movdqa 1328(%rdi), %xmm1
5293 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5294 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm1[0,0,1,1]
5295 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
5296 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload
5297 ; SSE-NEXT:    # xmm3 = mem[2,3,2,3]
5298 ; SSE-NEXT:    movdqa 1280(%rdi), %xmm1
5299 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5300 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]
5301 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm3[0],xmm0[1]
5302 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5303 ; SSE-NEXT:    pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5304 ; SSE-NEXT:    # xmm0 = mem[2,2,3,3]
5305 ; SSE-NEXT:    movdqa 1424(%rdi), %xmm1
5306 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5307 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm1[0,0,1,1]
5308 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
5309 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload
5310 ; SSE-NEXT:    # xmm3 = mem[2,3,2,3]
5311 ; SSE-NEXT:    movdqa 1376(%rdi), %xmm1
5312 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5313 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]
5314 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm3[0],xmm0[1]
5315 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5316 ; SSE-NEXT:    pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5317 ; SSE-NEXT:    # xmm0 = mem[2,2,3,3]
5318 ; SSE-NEXT:    movdqa 1520(%rdi), %xmm1
5319 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5320 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm1[0,0,1,1]
5321 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
5322 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload
5323 ; SSE-NEXT:    # xmm3 = mem[2,3,2,3]
5324 ; SSE-NEXT:    movdqa 1472(%rdi), %xmm1
5325 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5326 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]
5327 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm3[0],xmm0[1]
5328 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5329 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload
5330 ; SSE-NEXT:    # xmm3 = mem[3,3,3,3]
5331 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
5332 ; SSE-NEXT:    # xmm4 = mem[1,1,1,1]
5333 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm4[0],xmm3[1],xmm4[1]
5334 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5335 ; SSE-NEXT:    # xmm0 = mem[2,3,2,3]
5336 ; SSE-NEXT:    punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5337 ; SSE-NEXT:    # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
5338 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm3[0],xmm0[1]
5339 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5340 ; SSE-NEXT:    pshufd $255, (%rsp), %xmm2 # 16-byte Folded Reload
5341 ; SSE-NEXT:    # xmm2 = mem[3,3,3,3]
5342 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload
5343 ; SSE-NEXT:    # xmm3 = mem[1,1,1,1]
5344 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]
5345 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5346 ; SSE-NEXT:    # xmm0 = mem[2,3,2,3]
5347 ; SSE-NEXT:    punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5348 ; SSE-NEXT:    # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
5349 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm2[0],xmm0[1]
5350 ; SSE-NEXT:    movapd %xmm0, (%rsp) # 16-byte Spill
5351 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5352 ; SSE-NEXT:    # xmm0 = mem[3,3,3,3]
5353 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
5354 ; SSE-NEXT:    # xmm2 = mem[1,1,1,1]
5355 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
5356 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5357 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
5358 ; SSE-NEXT:    punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5359 ; SSE-NEXT:    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
5360 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
5361 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5362 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5363 ; SSE-NEXT:    # xmm0 = mem[3,3,3,3]
5364 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5365 ; SSE-NEXT:    # xmm1 = mem[1,1,1,1]
5366 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
5367 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5368 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
5369 ; SSE-NEXT:    punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5370 ; SSE-NEXT:    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
5371 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
5372 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5373 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5374 ; SSE-NEXT:    # xmm0 = mem[3,3,3,3]
5375 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5376 ; SSE-NEXT:    # xmm1 = mem[1,1,1,1]
5377 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
5378 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5379 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
5380 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
5381 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm15[0],xmm1[1],xmm15[1]
5382 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
5383 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5384 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5385 ; SSE-NEXT:    # xmm0 = mem[3,3,3,3]
5386 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5387 ; SSE-NEXT:    # xmm1 = mem[1,1,1,1]
5388 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
5389 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5390 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
5391 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
5392 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
5393 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
5394 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5395 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5396 ; SSE-NEXT:    # xmm0 = mem[3,3,3,3]
5397 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm9[1,1,1,1]
5398 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
5399 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5400 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
5401 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
5402 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm14[0],xmm1[1],xmm14[1]
5403 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
5404 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5405 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm12[3,3,3,3]
5406 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5407 ; SSE-NEXT:    # xmm1 = mem[1,1,1,1]
5408 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
5409 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5410 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
5411 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload
5412 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm13[0],xmm1[1],xmm13[1]
5413 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
5414 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5415 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5416 ; SSE-NEXT:    # xmm0 = mem[3,3,3,3]
5417 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5418 ; SSE-NEXT:    # xmm1 = mem[1,1,1,1]
5419 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
5420 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5421 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
5422 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload
5423 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm11[0],xmm1[1],xmm11[1]
5424 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
5425 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5426 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5427 ; SSE-NEXT:    # xmm0 = mem[3,3,3,3]
5428 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm8[1,1,1,1]
5429 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
5430 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5431 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
5432 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload
5433 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm9[0],xmm1[1],xmm9[1]
5434 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
5435 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5436 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm7[3,3,3,3]
5437 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload
5438 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm12[1,1,1,1]
5439 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
5440 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5441 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
5442 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
5443 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm8[0],xmm1[1],xmm8[1]
5444 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
5445 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5446 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5447 ; SSE-NEXT:    # xmm0 = mem[3,3,3,3]
5448 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm6[1,1,1,1]
5449 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
5450 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5451 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
5452 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
5453 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm7[0],xmm1[1],xmm7[1]
5454 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
5455 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5456 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm10[3,3,3,3]
5457 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
5458 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm10[1,1,1,1]
5459 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
5460 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5461 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
5462 ; SSE-NEXT:    punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5463 ; SSE-NEXT:    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
5464 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
5465 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5466 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5467 ; SSE-NEXT:    # xmm0 = mem[3,3,3,3]
5468 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5469 ; SSE-NEXT:    # xmm1 = mem[1,1,1,1]
5470 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
5471 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5472 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
5473 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
5474 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm5[0],xmm1[1],xmm5[1]
5475 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
5476 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5477 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5478 ; SSE-NEXT:    # xmm0 = mem[3,3,3,3]
5479 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
5480 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm6[1,1,1,1]
5481 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
5482 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5483 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
5484 ; SSE-NEXT:    punpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5485 ; SSE-NEXT:    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
5486 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
5487 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5488 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5489 ; SSE-NEXT:    # xmm0 = mem[3,3,3,3]
5490 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5491 ; SSE-NEXT:    # xmm1 = mem[1,1,1,1]
5492 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
5493 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5494 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
5495 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
5496 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm4[0],xmm1[1],xmm4[1]
5497 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
5498 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5499 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5500 ; SSE-NEXT:    # xmm0 = mem[2,3,2,3]
5501 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
5502 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
5503 ; SSE-NEXT:    pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5504 ; SSE-NEXT:    # xmm0 = mem[2,2,3,3]
5505 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
5506 ; SSE-NEXT:    # xmm2 = mem[0,0,1,1]
5507 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]
5508 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm1[0],xmm2[1]
5509 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5510 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5511 ; SSE-NEXT:    # xmm0 = mem[2,3,2,3]
5512 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
5513 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
5514 ; SSE-NEXT:    pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload
5515 ; SSE-NEXT:    # xmm3 = mem[2,2,3,3]
5516 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
5517 ; SSE-NEXT:    # xmm2 = mem[0,0,1,1]
5518 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]
5519 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm1[0],xmm2[1]
5520 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5521 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5522 ; SSE-NEXT:    # xmm0 = mem[2,3,2,3]
5523 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
5524 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
5525 ; SSE-NEXT:    pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5526 ; SSE-NEXT:    # xmm0 = mem[2,2,3,3]
5527 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
5528 ; SSE-NEXT:    # xmm2 = mem[0,0,1,1]
5529 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]
5530 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm1[0],xmm2[1]
5531 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5532 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5533 ; SSE-NEXT:    # xmm0 = mem[2,3,2,3]
5534 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
5535 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
5536 ; SSE-NEXT:    pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5537 ; SSE-NEXT:    # xmm0 = mem[2,2,3,3]
5538 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
5539 ; SSE-NEXT:    # xmm2 = mem[0,0,1,1]
5540 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]
5541 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm1[0],xmm2[1]
5542 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5543 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5544 ; SSE-NEXT:    # xmm0 = mem[2,3,2,3]
5545 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
5546 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
5547 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm15[2,2,3,3]
5548 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload
5549 ; SSE-NEXT:    # xmm15 = mem[0,0,1,1]
5550 ; SSE-NEXT:    punpckldq {{.*#+}} xmm15 = xmm15[0],xmm0[0],xmm15[1],xmm0[1]
5551 ; SSE-NEXT:    movsd {{.*#+}} xmm15 = xmm1[0],xmm15[1]
5552 ; SSE-NEXT:    movapd %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5553 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5554 ; SSE-NEXT:    # xmm0 = mem[2,3,2,3]
5555 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
5556 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
5557 ; SSE-NEXT:    pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5558 ; SSE-NEXT:    # xmm0 = mem[2,2,3,3]
5559 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
5560 ; SSE-NEXT:    # xmm2 = mem[0,0,1,1]
5561 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]
5562 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm1[0],xmm2[1]
5563 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5564 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5565 ; SSE-NEXT:    # xmm0 = mem[2,3,2,3]
5566 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
5567 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
5568 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm14[2,2,3,3]
5569 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
5570 ; SSE-NEXT:    # xmm2 = mem[0,0,1,1]
5571 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]
5572 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm1[0],xmm2[1]
5573 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5574 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5575 ; SSE-NEXT:    # xmm0 = mem[2,3,2,3]
5576 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
5577 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
5578 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm13[2,2,3,3]
5579 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
5580 ; SSE-NEXT:    # xmm2 = mem[0,0,1,1]
5581 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]
5582 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm1[0],xmm2[1]
5583 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5584 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5585 ; SSE-NEXT:    # xmm0 = mem[2,3,2,3]
5586 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
5587 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
5588 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm11[2,2,3,3]
5589 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Folded Reload
5590 ; SSE-NEXT:    # xmm11 = mem[0,0,1,1]
5591 ; SSE-NEXT:    punpckldq {{.*#+}} xmm11 = xmm11[0],xmm0[0],xmm11[1],xmm0[1]
5592 ; SSE-NEXT:    movsd {{.*#+}} xmm11 = xmm1[0],xmm11[1]
5593 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5594 ; SSE-NEXT:    # xmm0 = mem[2,3,2,3]
5595 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
5596 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
5597 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm9[2,2,3,3]
5598 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload
5599 ; SSE-NEXT:    # xmm9 = mem[0,0,1,1]
5600 ; SSE-NEXT:    punpckldq {{.*#+}} xmm9 = xmm9[0],xmm0[0],xmm9[1],xmm0[1]
5601 ; SSE-NEXT:    movsd {{.*#+}} xmm9 = xmm1[0],xmm9[1]
5602 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm12[2,3,2,3]
5603 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
5604 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
5605 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm8[2,2,3,3]
5606 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload
5607 ; SSE-NEXT:    # xmm8 = mem[0,0,1,1]
5608 ; SSE-NEXT:    punpckldq {{.*#+}} xmm8 = xmm8[0],xmm0[0],xmm8[1],xmm0[1]
5609 ; SSE-NEXT:    movsd {{.*#+}} xmm8 = xmm1[0],xmm8[1]
5610 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload
5611 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm12[2,3,2,3]
5612 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
5613 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
5614 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm7[2,2,3,3]
5615 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Folded Reload
5616 ; SSE-NEXT:    # xmm13 = mem[0,0,1,1]
5617 ; SSE-NEXT:    punpckldq {{.*#+}} xmm13 = xmm13[0],xmm0[0],xmm13[1],xmm0[1]
5618 ; SSE-NEXT:    movsd {{.*#+}} xmm13 = xmm1[0],xmm13[1]
5619 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm10[2,3,2,3]
5620 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
5621 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
5622 ; SSE-NEXT:    pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5623 ; SSE-NEXT:    # xmm0 = mem[2,2,3,3]
5624 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload
5625 ; SSE-NEXT:    # xmm7 = mem[0,0,1,1]
5626 ; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm0[0],xmm7[1],xmm0[1]
5627 ; SSE-NEXT:    movsd {{.*#+}} xmm7 = xmm1[0],xmm7[1]
5628 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
5629 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm10[2,3,2,3]
5630 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
5631 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
5632 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm5[2,2,3,3]
5633 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload
5634 ; SSE-NEXT:    # xmm5 = mem[0,0,1,1]
5635 ; SSE-NEXT:    punpckldq {{.*#+}} xmm5 = xmm5[0],xmm0[0],xmm5[1],xmm0[1]
5636 ; SSE-NEXT:    movsd {{.*#+}} xmm5 = xmm1[0],xmm5[1]
5637 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm6[2,3,2,3]
5638 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5639 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
5640 ; SSE-NEXT:    pshufd $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5641 ; SSE-NEXT:    # xmm1 = mem[2,2,3,3]
5642 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload
5643 ; SSE-NEXT:    # xmm3 = mem[0,0,1,1]
5644 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]
5645 ; SSE-NEXT:    movsd {{.*#+}} xmm3 = xmm0[0],xmm3[1]
5646 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
5647 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm6[2,3,2,3]
5648 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
5649 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
5650 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm4[2,2,3,3]
5651 ; SSE-NEXT:    pshufd $80, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
5652 ; SSE-NEXT:    # xmm2 = mem[0,0,1,1]
5653 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]
5654 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm1[0],xmm2[1]
5655 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5656 ; SSE-NEXT:    # xmm0 = mem[1,1,1,1]
5657 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5658 ; SSE-NEXT:    # xmm1 = mem[3,3,3,3]
5659 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
5660 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5661 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
5662 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
5663 ; SSE-NEXT:    punpckldq {{.*#+}} xmm15 = xmm15[0],xmm1[0],xmm15[1],xmm1[1]
5664 ; SSE-NEXT:    movsd {{.*#+}} xmm15 = xmm0[0],xmm15[1]
5665 ; SSE-NEXT:    movapd %xmm15, %xmm4
5666 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5667 ; SSE-NEXT:    # xmm0 = mem[1,1,1,1]
5668 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5669 ; SSE-NEXT:    # xmm1 = mem[3,3,3,3]
5670 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
5671 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5672 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
5673 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
5674 ; SSE-NEXT:    punpckldq {{.*#+}} xmm15 = xmm15[0],xmm1[0],xmm15[1],xmm1[1]
5675 ; SSE-NEXT:    movsd {{.*#+}} xmm15 = xmm0[0],xmm15[1]
5676 ; SSE-NEXT:    movapd %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5677 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5678 ; SSE-NEXT:    # xmm0 = mem[1,1,1,1]
5679 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5680 ; SSE-NEXT:    # xmm1 = mem[3,3,3,3]
5681 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
5682 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5683 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
5684 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
5685 ; SSE-NEXT:    punpckldq {{.*#+}} xmm15 = xmm15[0],xmm1[0],xmm15[1],xmm1[1]
5686 ; SSE-NEXT:    movsd {{.*#+}} xmm15 = xmm0[0],xmm15[1]
5687 ; SSE-NEXT:    movapd %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5688 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5689 ; SSE-NEXT:    # xmm0 = mem[1,1,1,1]
5690 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5691 ; SSE-NEXT:    # xmm1 = mem[3,3,3,3]
5692 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
5693 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5694 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
5695 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
5696 ; SSE-NEXT:    punpckldq {{.*#+}} xmm15 = xmm15[0],xmm1[0],xmm15[1],xmm1[1]
5697 ; SSE-NEXT:    movsd {{.*#+}} xmm15 = xmm0[0],xmm15[1]
5698 ; SSE-NEXT:    movapd %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5699 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5700 ; SSE-NEXT:    # xmm0 = mem[1,1,1,1]
5701 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5702 ; SSE-NEXT:    # xmm1 = mem[3,3,3,3]
5703 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
5704 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5705 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
5706 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
5707 ; SSE-NEXT:    punpckldq {{.*#+}} xmm15 = xmm15[0],xmm1[0],xmm15[1],xmm1[1]
5708 ; SSE-NEXT:    movsd {{.*#+}} xmm15 = xmm0[0],xmm15[1]
5709 ; SSE-NEXT:    movapd %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5710 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5711 ; SSE-NEXT:    # xmm0 = mem[1,1,1,1]
5712 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5713 ; SSE-NEXT:    # xmm1 = mem[3,3,3,3]
5714 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
5715 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5716 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
5717 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
5718 ; SSE-NEXT:    punpckldq {{.*#+}} xmm15 = xmm15[0],xmm1[0],xmm15[1],xmm1[1]
5719 ; SSE-NEXT:    movsd {{.*#+}} xmm15 = xmm0[0],xmm15[1]
5720 ; SSE-NEXT:    movapd %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5721 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5722 ; SSE-NEXT:    # xmm0 = mem[1,1,1,1]
5723 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5724 ; SSE-NEXT:    # xmm1 = mem[3,3,3,3]
5725 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
5726 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5727 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
5728 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
5729 ; SSE-NEXT:    punpckldq {{.*#+}} xmm14 = xmm14[0],xmm1[0],xmm14[1],xmm1[1]
5730 ; SSE-NEXT:    movsd {{.*#+}} xmm14 = xmm0[0],xmm14[1]
5731 ; SSE-NEXT:    movapd %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5732 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5733 ; SSE-NEXT:    # xmm0 = mem[1,1,1,1]
5734 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5735 ; SSE-NEXT:    # xmm1 = mem[3,3,3,3]
5736 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
5737 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5738 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
5739 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
5740 ; SSE-NEXT:    punpckldq {{.*#+}} xmm14 = xmm14[0],xmm1[0],xmm14[1],xmm1[1]
5741 ; SSE-NEXT:    movsd {{.*#+}} xmm14 = xmm0[0],xmm14[1]
5742 ; SSE-NEXT:    movapd %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5743 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5744 ; SSE-NEXT:    # xmm0 = mem[1,1,1,1]
5745 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5746 ; SSE-NEXT:    # xmm1 = mem[3,3,3,3]
5747 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
5748 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5749 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
5750 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
5751 ; SSE-NEXT:    punpckldq {{.*#+}} xmm14 = xmm14[0],xmm1[0],xmm14[1],xmm1[1]
5752 ; SSE-NEXT:    movsd {{.*#+}} xmm14 = xmm0[0],xmm14[1]
5753 ; SSE-NEXT:    movapd %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5754 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5755 ; SSE-NEXT:    # xmm0 = mem[1,1,1,1]
5756 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5757 ; SSE-NEXT:    # xmm1 = mem[3,3,3,3]
5758 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
5759 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5760 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
5761 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
5762 ; SSE-NEXT:    punpckldq {{.*#+}} xmm14 = xmm14[0],xmm1[0],xmm14[1],xmm1[1]
5763 ; SSE-NEXT:    movsd {{.*#+}} xmm14 = xmm0[0],xmm14[1]
5764 ; SSE-NEXT:    movapd %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5765 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5766 ; SSE-NEXT:    # xmm0 = mem[1,1,1,1]
5767 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5768 ; SSE-NEXT:    # xmm1 = mem[3,3,3,3]
5769 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
5770 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5771 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
5772 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
5773 ; SSE-NEXT:    punpckldq {{.*#+}} xmm14 = xmm14[0],xmm1[0],xmm14[1],xmm1[1]
5774 ; SSE-NEXT:    movsd {{.*#+}} xmm14 = xmm0[0],xmm14[1]
5775 ; SSE-NEXT:    movapd %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5776 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5777 ; SSE-NEXT:    # xmm0 = mem[1,1,1,1]
5778 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm12[3,3,3,3]
5779 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
5780 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5781 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
5782 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload
5783 ; SSE-NEXT:    punpckldq {{.*#+}} xmm12 = xmm12[0],xmm1[0],xmm12[1],xmm1[1]
5784 ; SSE-NEXT:    movsd {{.*#+}} xmm12 = xmm0[0],xmm12[1]
5785 ; SSE-NEXT:    movapd %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5786 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5787 ; SSE-NEXT:    # xmm0 = mem[1,1,1,1]
5788 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5789 ; SSE-NEXT:    # xmm1 = mem[3,3,3,3]
5790 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
5791 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5792 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
5793 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload
5794 ; SSE-NEXT:    punpckldq {{.*#+}} xmm12 = xmm12[0],xmm1[0],xmm12[1],xmm1[1]
5795 ; SSE-NEXT:    movsd {{.*#+}} xmm12 = xmm0[0],xmm12[1]
5796 ; SSE-NEXT:    movapd %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5797 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5798 ; SSE-NEXT:    # xmm0 = mem[1,1,1,1]
5799 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm10[3,3,3,3]
5800 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
5801 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5802 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
5803 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
5804 ; SSE-NEXT:    punpckldq {{.*#+}} xmm15 = xmm15[0],xmm1[0],xmm15[1],xmm1[1]
5805 ; SSE-NEXT:    movsd {{.*#+}} xmm15 = xmm0[0],xmm15[1]
5806 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5807 ; SSE-NEXT:    # xmm0 = mem[1,1,1,1]
5808 ; SSE-NEXT:    pshufd $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5809 ; SSE-NEXT:    # xmm1 = mem[3,3,3,3]
5810 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
5811 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5812 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
5813 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload
5814 ; SSE-NEXT:    punpckldq {{.*#+}} xmm12 = xmm12[0],xmm1[0],xmm12[1],xmm1[1]
5815 ; SSE-NEXT:    movsd {{.*#+}} xmm12 = xmm0[0],xmm12[1]
5816 ; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
5817 ; SSE-NEXT:    # xmm0 = mem[1,1,1,1]
5818 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm6[3,3,3,3]
5819 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
5820 ; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
5821 ; SSE-NEXT:    # xmm1 = mem[2,3,2,3]
5822 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
5823 ; SSE-NEXT:    punpckldq {{.*#+}} xmm14 = xmm14[0],xmm1[0],xmm14[1],xmm1[1]
5824 ; SSE-NEXT:    movsd {{.*#+}} xmm14 = xmm0[0],xmm14[1]
5825 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5826 ; SSE-NEXT:    movaps %xmm0, 224(%rsi)
5827 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5828 ; SSE-NEXT:    movaps %xmm0, 160(%rsi)
5829 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5830 ; SSE-NEXT:    movaps %xmm0, 96(%rsi)
5831 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5832 ; SSE-NEXT:    movaps %xmm0, 32(%rsi)
5833 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5834 ; SSE-NEXT:    movaps %xmm0, 240(%rsi)
5835 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5836 ; SSE-NEXT:    movaps %xmm0, 176(%rsi)
5837 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5838 ; SSE-NEXT:    movaps %xmm0, 112(%rsi)
5839 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5840 ; SSE-NEXT:    movaps %xmm0, 48(%rsi)
5841 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5842 ; SSE-NEXT:    movaps %xmm0, 192(%rsi)
5843 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5844 ; SSE-NEXT:    movaps %xmm0, 128(%rsi)
5845 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5846 ; SSE-NEXT:    movaps %xmm0, 64(%rsi)
5847 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5848 ; SSE-NEXT:    movaps %xmm0, (%rsi)
5849 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5850 ; SSE-NEXT:    movaps %xmm0, 208(%rsi)
5851 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5852 ; SSE-NEXT:    movaps %xmm0, 144(%rsi)
5853 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5854 ; SSE-NEXT:    movaps %xmm0, 80(%rsi)
5855 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5856 ; SSE-NEXT:    movaps %xmm0, 16(%rsi)
5857 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5858 ; SSE-NEXT:    movaps %xmm0, 224(%rdx)
5859 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5860 ; SSE-NEXT:    movaps %xmm0, 240(%rdx)
5861 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5862 ; SSE-NEXT:    movaps %xmm0, 192(%rdx)
5863 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5864 ; SSE-NEXT:    movaps %xmm0, 208(%rdx)
5865 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5866 ; SSE-NEXT:    movaps %xmm0, 160(%rdx)
5867 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5868 ; SSE-NEXT:    movaps %xmm0, 176(%rdx)
5869 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5870 ; SSE-NEXT:    movaps %xmm0, 128(%rdx)
5871 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5872 ; SSE-NEXT:    movaps %xmm0, 144(%rdx)
5873 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5874 ; SSE-NEXT:    movaps %xmm0, 96(%rdx)
5875 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5876 ; SSE-NEXT:    movaps %xmm0, 112(%rdx)
5877 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5878 ; SSE-NEXT:    movaps %xmm0, 64(%rdx)
5879 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5880 ; SSE-NEXT:    movaps %xmm0, 80(%rdx)
5881 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5882 ; SSE-NEXT:    movaps %xmm0, 32(%rdx)
5883 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5884 ; SSE-NEXT:    movaps %xmm0, 48(%rdx)
5885 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5886 ; SSE-NEXT:    movaps %xmm0, (%rdx)
5887 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5888 ; SSE-NEXT:    movaps %xmm0, 16(%rdx)
5889 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5890 ; SSE-NEXT:    movaps %xmm0, 240(%rcx)
5891 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5892 ; SSE-NEXT:    movaps %xmm0, 224(%rcx)
5893 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5894 ; SSE-NEXT:    movaps %xmm0, 208(%rcx)
5895 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5896 ; SSE-NEXT:    movaps %xmm0, 192(%rcx)
5897 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5898 ; SSE-NEXT:    movaps %xmm0, 176(%rcx)
5899 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5900 ; SSE-NEXT:    movaps %xmm0, 160(%rcx)
5901 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5902 ; SSE-NEXT:    movaps %xmm0, 144(%rcx)
5903 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5904 ; SSE-NEXT:    movaps %xmm0, 128(%rcx)
5905 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5906 ; SSE-NEXT:    movaps %xmm0, 112(%rcx)
5907 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5908 ; SSE-NEXT:    movaps %xmm0, 96(%rcx)
5909 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5910 ; SSE-NEXT:    movaps %xmm0, 80(%rcx)
5911 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5912 ; SSE-NEXT:    movaps %xmm0, 64(%rcx)
5913 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5914 ; SSE-NEXT:    movaps %xmm0, 48(%rcx)
5915 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5916 ; SSE-NEXT:    movaps %xmm0, 32(%rcx)
5917 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5918 ; SSE-NEXT:    movaps %xmm0, 16(%rcx)
5919 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5920 ; SSE-NEXT:    movaps %xmm0, (%rcx)
5921 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5922 ; SSE-NEXT:    movaps %xmm0, 240(%r8)
5923 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5924 ; SSE-NEXT:    movaps %xmm0, 224(%r8)
5925 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5926 ; SSE-NEXT:    movaps %xmm0, 208(%r8)
5927 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5928 ; SSE-NEXT:    movaps %xmm0, 192(%r8)
5929 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5930 ; SSE-NEXT:    movaps %xmm0, 176(%r8)
5931 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5932 ; SSE-NEXT:    movaps %xmm0, 160(%r8)
5933 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5934 ; SSE-NEXT:    movaps %xmm0, 144(%r8)
5935 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5936 ; SSE-NEXT:    movaps %xmm0, 128(%r8)
5937 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5938 ; SSE-NEXT:    movaps %xmm0, 112(%r8)
5939 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5940 ; SSE-NEXT:    movaps %xmm0, 96(%r8)
5941 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5942 ; SSE-NEXT:    movaps %xmm0, 80(%r8)
5943 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5944 ; SSE-NEXT:    movaps %xmm0, 64(%r8)
5945 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5946 ; SSE-NEXT:    movaps %xmm0, 48(%r8)
5947 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5948 ; SSE-NEXT:    movaps %xmm0, 32(%r8)
5949 ; SSE-NEXT:    movaps (%rsp), %xmm0 # 16-byte Reload
5950 ; SSE-NEXT:    movaps %xmm0, 16(%r8)
5951 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5952 ; SSE-NEXT:    movaps %xmm0, (%r8)
5953 ; SSE-NEXT:    movapd %xmm2, 240(%r9)
5954 ; SSE-NEXT:    movapd %xmm3, 224(%r9)
5955 ; SSE-NEXT:    movapd %xmm5, 208(%r9)
5956 ; SSE-NEXT:    movapd %xmm7, 192(%r9)
5957 ; SSE-NEXT:    movapd %xmm13, 176(%r9)
5958 ; SSE-NEXT:    movapd %xmm8, 160(%r9)
5959 ; SSE-NEXT:    movapd %xmm9, 144(%r9)
5960 ; SSE-NEXT:    movapd %xmm11, 128(%r9)
5961 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5962 ; SSE-NEXT:    movaps %xmm0, 112(%r9)
5963 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5964 ; SSE-NEXT:    movaps %xmm0, 96(%r9)
5965 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5966 ; SSE-NEXT:    movaps %xmm0, 80(%r9)
5967 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5968 ; SSE-NEXT:    movaps %xmm0, 64(%r9)
5969 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5970 ; SSE-NEXT:    movaps %xmm0, 48(%r9)
5971 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5972 ; SSE-NEXT:    movaps %xmm0, 32(%r9)
5973 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5974 ; SSE-NEXT:    movaps %xmm0, 16(%r9)
5975 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5976 ; SSE-NEXT:    movaps %xmm0, (%r9)
5977 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
5978 ; SSE-NEXT:    movapd %xmm14, 240(%rax)
5979 ; SSE-NEXT:    movapd %xmm12, 224(%rax)
5980 ; SSE-NEXT:    movapd %xmm15, 208(%rax)
5981 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5982 ; SSE-NEXT:    movaps %xmm0, 192(%rax)
5983 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5984 ; SSE-NEXT:    movaps %xmm0, 176(%rax)
5985 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5986 ; SSE-NEXT:    movaps %xmm0, 160(%rax)
5987 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5988 ; SSE-NEXT:    movaps %xmm0, 144(%rax)
5989 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5990 ; SSE-NEXT:    movaps %xmm0, 128(%rax)
5991 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5992 ; SSE-NEXT:    movaps %xmm0, 112(%rax)
5993 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5994 ; SSE-NEXT:    movaps %xmm0, 96(%rax)
5995 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5996 ; SSE-NEXT:    movaps %xmm0, 80(%rax)
5997 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5998 ; SSE-NEXT:    movaps %xmm0, 64(%rax)
5999 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6000 ; SSE-NEXT:    movaps %xmm0, 48(%rax)
6001 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6002 ; SSE-NEXT:    movaps %xmm0, 32(%rax)
6003 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6004 ; SSE-NEXT:    movaps %xmm0, 16(%rax)
6005 ; SSE-NEXT:    movapd %xmm4, (%rax)
6006 ; SSE-NEXT:    addq $2184, %rsp # imm = 0x888
6007 ; SSE-NEXT:    retq
6009 ; AVX1-ONLY-LABEL: load_i32_stride6_vf64:
6010 ; AVX1-ONLY:       # %bb.0:
6011 ; AVX1-ONLY-NEXT:    subq $2584, %rsp # imm = 0xA18
6012 ; AVX1-ONLY-NEXT:    vmovaps 608(%rdi), %ymm6
6013 ; AVX1-ONLY-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6014 ; AVX1-ONLY-NEXT:    vmovaps 672(%rdi), %ymm2
6015 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6016 ; AVX1-ONLY-NEXT:    vmovaps 640(%rdi), %ymm3
6017 ; AVX1-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6018 ; AVX1-ONLY-NEXT:    vmovapd 352(%rdi), %ymm4
6019 ; AVX1-ONLY-NEXT:    vmovupd %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6020 ; AVX1-ONLY-NEXT:    vmovapd 320(%rdi), %ymm5
6021 ; AVX1-ONLY-NEXT:    vmovupd %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6022 ; AVX1-ONLY-NEXT:    vmovaps 224(%rdi), %ymm7
6023 ; AVX1-ONLY-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6024 ; AVX1-ONLY-NEXT:    vmovaps 192(%rdi), %ymm8
6025 ; AVX1-ONLY-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6026 ; AVX1-ONLY-NEXT:    vmovaps 288(%rdi), %ymm1
6027 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6028 ; AVX1-ONLY-NEXT:    vmovaps 256(%rdi), %ymm0
6029 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6030 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 288(%rdi), %ymm0, %ymm9
6031 ; AVX1-ONLY-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6032 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[2,0],ymm9[0,0],ymm1[6,4],ymm9[4,4]
6033 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm9[2,2],ymm0[6,4],ymm9[6,6]
6034 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm8[0,1,2,3],ymm7[4,5],ymm8[6,7]
6035 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6036 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm1, %xmm9
6037 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm9[2,3]
6038 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[0,2],xmm9[0,3]
6039 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]
6040 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm5[2,3],ymm4[0,1]
6041 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6042 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm1 = ymm1[0],ymm5[0],ymm1[3],ymm5[2]
6043 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,1,2,0,4,5,6,4]
6044 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
6045 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6046 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 672(%rdi), %ymm3, %ymm1
6047 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6048 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm2[2,0],ymm1[0,0],ymm2[6,4],ymm1[4,4]
6049 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm1[2,2],ymm0[6,4],ymm1[6,6]
6050 ; AVX1-ONLY-NEXT:    vmovaps 576(%rdi), %ymm1
6051 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6052 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm6[4,5],ymm1[6,7]
6053 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6054 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm1, %xmm2
6055 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6056 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
6057 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[0,2],xmm2[0,3]
6058 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]
6059 ; AVX1-ONLY-NEXT:    vmovapd 736(%rdi), %ymm1
6060 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6061 ; AVX1-ONLY-NEXT:    vmovapd 704(%rdi), %ymm2
6062 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6063 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm2[2,3],ymm1[0,1]
6064 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6065 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[3],ymm2[2]
6066 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,1,2,0,4,5,6,4]
6067 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
6068 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6069 ; AVX1-ONLY-NEXT:    vmovaps 1056(%rdi), %ymm1
6070 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6071 ; AVX1-ONLY-NEXT:    vmovaps 1024(%rdi), %ymm0
6072 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6073 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 1056(%rdi), %ymm0, %ymm2
6074 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6075 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[2,0],ymm2[0,0],ymm1[6,4],ymm2[4,4]
6076 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm2[2,2],ymm0[6,4],ymm2[6,6]
6077 ; AVX1-ONLY-NEXT:    vmovaps 992(%rdi), %ymm1
6078 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6079 ; AVX1-ONLY-NEXT:    vmovaps 960(%rdi), %ymm2
6080 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6081 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5],ymm2[6,7]
6082 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6083 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm1, %xmm13
6084 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm13[2,3]
6085 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[0,2],xmm13[0,3]
6086 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]
6087 ; AVX1-ONLY-NEXT:    vmovapd 1120(%rdi), %ymm1
6088 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6089 ; AVX1-ONLY-NEXT:    vmovapd 1088(%rdi), %ymm2
6090 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6091 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm2[2,3],ymm1[0,1]
6092 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6093 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[3],ymm2[2]
6094 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,1,2,0,4,5,6,4]
6095 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
6096 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6097 ; AVX1-ONLY-NEXT:    vmovaps 1440(%rdi), %ymm1
6098 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6099 ; AVX1-ONLY-NEXT:    vmovaps 1408(%rdi), %ymm0
6100 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6101 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 1440(%rdi), %ymm0, %ymm11
6102 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[2,0],ymm11[0,0],ymm1[6,4],ymm11[4,4]
6103 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm11[2,2],ymm0[6,4],ymm11[6,6]
6104 ; AVX1-ONLY-NEXT:    vmovaps 1376(%rdi), %ymm1
6105 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6106 ; AVX1-ONLY-NEXT:    vmovaps 1344(%rdi), %ymm2
6107 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6108 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5],ymm2[6,7]
6109 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6110 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm1, %xmm10
6111 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm10[2,3]
6112 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[0,2],xmm10[0,3]
6113 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]
6114 ; AVX1-ONLY-NEXT:    vmovapd 1504(%rdi), %ymm1
6115 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6116 ; AVX1-ONLY-NEXT:    vmovapd 1472(%rdi), %ymm2
6117 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6118 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm2[2,3],ymm1[0,1]
6119 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6120 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[3],ymm2[2]
6121 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,1,2,0,4,5,6,4]
6122 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
6123 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6124 ; AVX1-ONLY-NEXT:    vmovaps 96(%rdi), %ymm1
6125 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6126 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdi), %ymm0
6127 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6128 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 96(%rdi), %ymm0, %ymm8
6129 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[2,0],ymm8[0,0],ymm1[6,4],ymm8[4,4]
6130 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm8[2,2],ymm0[6,4],ymm8[6,6]
6131 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %ymm1
6132 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6133 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %ymm2
6134 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6135 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5],ymm2[6,7]
6136 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6137 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm1, %xmm7
6138 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm7[2,3]
6139 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[0,2],xmm7[0,3]
6140 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]
6141 ; AVX1-ONLY-NEXT:    vmovapd 160(%rdi), %ymm1
6142 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6143 ; AVX1-ONLY-NEXT:    vmovapd 128(%rdi), %ymm2
6144 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6145 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm2[2,3],ymm1[0,1]
6146 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6147 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[3],ymm2[2]
6148 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,1,2,0,4,5,6,4]
6149 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
6150 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6151 ; AVX1-ONLY-NEXT:    vmovaps 480(%rdi), %ymm1
6152 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6153 ; AVX1-ONLY-NEXT:    vmovaps 448(%rdi), %ymm0
6154 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6155 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 480(%rdi), %ymm0, %ymm6
6156 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[2,0],ymm6[0,0],ymm1[6,4],ymm6[4,4]
6157 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm6[2,2],ymm0[6,4],ymm6[6,6]
6158 ; AVX1-ONLY-NEXT:    vmovaps 416(%rdi), %ymm1
6159 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6160 ; AVX1-ONLY-NEXT:    vmovaps 384(%rdi), %ymm2
6161 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6162 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5],ymm2[6,7]
6163 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6164 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm1, %xmm4
6165 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm4[2,3]
6166 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[0,2],xmm4[0,3]
6167 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]
6168 ; AVX1-ONLY-NEXT:    vmovapd 544(%rdi), %ymm1
6169 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6170 ; AVX1-ONLY-NEXT:    vmovapd 512(%rdi), %ymm2
6171 ; AVX1-ONLY-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6172 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm2[2,3],ymm1[0,1]
6173 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6174 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[3],ymm2[2]
6175 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,1,2,0,4,5,6,4]
6176 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
6177 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6178 ; AVX1-ONLY-NEXT:    vmovaps 864(%rdi), %ymm1
6179 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6180 ; AVX1-ONLY-NEXT:    vmovaps 832(%rdi), %ymm0
6181 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6182 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 864(%rdi), %ymm0, %ymm3
6183 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[2,0],ymm3[0,0],ymm1[6,4],ymm3[4,4]
6184 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm3[2,2],ymm0[6,4],ymm3[6,6]
6185 ; AVX1-ONLY-NEXT:    vmovaps 800(%rdi), %ymm1
6186 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6187 ; AVX1-ONLY-NEXT:    vmovaps 768(%rdi), %ymm2
6188 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6189 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5],ymm2[6,7]
6190 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6191 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm1, %xmm2
6192 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
6193 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[0,2],xmm2[0,3]
6194 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]
6195 ; AVX1-ONLY-NEXT:    vmovapd 928(%rdi), %ymm1
6196 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6197 ; AVX1-ONLY-NEXT:    vmovapd 896(%rdi), %ymm5
6198 ; AVX1-ONLY-NEXT:    vmovupd %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6199 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm5[2,3],ymm1[0,1]
6200 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6201 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm1 = ymm1[0],ymm5[0],ymm1[3],ymm5[2]
6202 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,1,2,0,4,5,6,4]
6203 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
6204 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6205 ; AVX1-ONLY-NEXT:    vmovaps 1248(%rdi), %ymm5
6206 ; AVX1-ONLY-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6207 ; AVX1-ONLY-NEXT:    vmovaps 1216(%rdi), %ymm0
6208 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6209 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 1248(%rdi), %ymm0, %ymm1
6210 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6211 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm5[2,0],ymm1[0,0],ymm5[6,4],ymm1[4,4]
6212 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm15 = ymm0[2,0],ymm1[2,2],ymm0[6,4],ymm1[6,6]
6213 ; AVX1-ONLY-NEXT:    vmovaps 1184(%rdi), %ymm0
6214 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6215 ; AVX1-ONLY-NEXT:    vmovaps 1152(%rdi), %ymm5
6216 ; AVX1-ONLY-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6217 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm5[0,1,2,3],ymm0[4,5],ymm5[6,7]
6218 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6219 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm0, %xmm5
6220 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm14 = xmm0[0,1],xmm5[2,3]
6221 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm14 = xmm14[0,2],xmm5[0,3]
6222 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1,2],ymm15[3,4,5,6,7]
6223 ; AVX1-ONLY-NEXT:    vmovapd 1312(%rdi), %ymm12
6224 ; AVX1-ONLY-NEXT:    vmovupd %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6225 ; AVX1-ONLY-NEXT:    vmovapd 1280(%rdi), %ymm0
6226 ; AVX1-ONLY-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6227 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm0[2,3],ymm12[0,1]
6228 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6229 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm15 = ymm1[0],ymm0[0],ymm1[3],ymm0[2]
6230 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm15 = ymm15[0,1,2,0,4,5,6,4]
6231 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3,4,5],ymm15[6,7]
6232 ; AVX1-ONLY-NEXT:    vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6233 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6234 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
6235 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm14 = ymm12[3,0],ymm0[1,0],ymm12[7,4],ymm0[5,4]
6236 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[2,0],ymm0[2,3],ymm14[6,4],ymm0[6,7]
6237 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6238 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm15 = xmm0[1,0],xmm9[3,0]
6239 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm15 = xmm15[0,2],xmm9[1,3]
6240 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm14 = ymm15[0,1,2],ymm14[3,4,5,6,7]
6241 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
6242 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6243 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm15 = ymm0[3,1],ymm12[1,3],ymm0[7,5],ymm12[5,7]
6244 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm15 = ymm15[0,1,2,0,4,5,6,4]
6245 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm9 = ymm14[0,1,2,3,4,5],ymm15[6,7]
6246 ; AVX1-ONLY-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6247 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
6248 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6249 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm14 = ymm9[3,0],ymm0[1,0],ymm9[7,4],ymm0[5,4]
6250 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[2,0],ymm0[2,3],ymm14[6,4],ymm0[6,7]
6251 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6252 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6253 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm15 = xmm0[1,0],xmm1[3,0]
6254 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm15 = xmm15[0,2],xmm1[1,3]
6255 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm14 = ymm15[0,1,2],ymm14[3,4,5,6,7]
6256 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6257 ; AVX1-ONLY-NEXT:    vshufps $215, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm15 # 32-byte Folded Reload
6258 ; AVX1-ONLY-NEXT:    # ymm15 = ymm0[3,1],mem[1,3],ymm0[7,5],mem[5,7]
6259 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm15 = ymm15[0,1,2,0,4,5,6,4]
6260 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3,4,5],ymm15[6,7]
6261 ; AVX1-ONLY-NEXT:    vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6262 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6263 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6264 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm14 = ymm0[3,0],ymm1[1,0],ymm0[7,4],ymm1[5,4]
6265 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[2,0],ymm1[2,3],ymm14[6,4],ymm1[6,7]
6266 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6267 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm15 = xmm0[1,0],xmm13[3,0]
6268 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm13 = xmm15[0,2],xmm13[1,3]
6269 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1,2],ymm14[3,4,5,6,7]
6270 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload
6271 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6272 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm14 = ymm0[3,1],ymm15[1,3],ymm0[7,5],ymm15[5,7]
6273 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[0,1,2,0,4,5,6,4]
6274 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1,2,3,4,5],ymm14[6,7]
6275 ; AVX1-ONLY-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6276 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
6277 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm13 = ymm14[3,0],ymm11[1,0],ymm14[7,4],ymm11[5,4]
6278 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm11 = ymm13[2,0],ymm11[2,3],ymm13[6,4],ymm11[6,7]
6279 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6280 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm13 = xmm0[1,0],xmm10[3,0]
6281 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm10 = xmm13[0,2],xmm10[1,3]
6282 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1,2],ymm11[3,4,5,6,7]
6283 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
6284 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6285 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm11 = ymm0[3,1],ymm13[1,3],ymm0[7,5],ymm13[5,7]
6286 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm11 = ymm11[0,1,2,0,4,5,6,4]
6287 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1,2,3,4,5],ymm11[6,7]
6288 ; AVX1-ONLY-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6289 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload
6290 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm10 = ymm11[3,0],ymm8[1,0],ymm11[7,4],ymm8[5,4]
6291 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm8 = ymm10[2,0],ymm8[2,3],ymm10[6,4],ymm8[6,7]
6292 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6293 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm10 = xmm0[1,0],xmm7[3,0]
6294 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm7 = xmm10[0,2],xmm7[1,3]
6295 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2],ymm8[3,4,5,6,7]
6296 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6297 ; AVX1-ONLY-NEXT:    vshufps $215, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm8 # 32-byte Folded Reload
6298 ; AVX1-ONLY-NEXT:    # ymm8 = ymm0[3,1],mem[1,3],ymm0[7,5],mem[5,7]
6299 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm8 = ymm8[0,1,2,0,4,5,6,4]
6300 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5],ymm8[6,7]
6301 ; AVX1-ONLY-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6302 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
6303 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm7 = ymm8[3,0],ymm6[1,0],ymm8[7,4],ymm6[5,4]
6304 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm6 = ymm7[2,0],ymm6[2,3],ymm7[6,4],ymm6[6,7]
6305 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6306 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm7 = xmm0[1,0],xmm4[3,0]
6307 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm4 = xmm7[0,2],xmm4[1,3]
6308 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2],ymm6[3,4,5,6,7]
6309 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
6310 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6311 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm6 = ymm0[3,1],ymm7[1,3],ymm0[7,5],ymm7[5,7]
6312 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm6 = ymm6[0,1,2,0,4,5,6,4]
6313 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],ymm6[6,7]
6314 ; AVX1-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6315 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
6316 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm4 = ymm6[3,0],ymm3[1,0],ymm6[7,4],ymm3[5,4]
6317 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm3 = ymm4[2,0],ymm3[2,3],ymm4[6,4],ymm3[6,7]
6318 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6319 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm4 = xmm0[1,0],xmm2[3,0]
6320 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm4[0,2],xmm2[1,3]
6321 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2],ymm3[3,4,5,6,7]
6322 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
6323 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6324 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm3 = ymm0[3,1],ymm4[1,3],ymm0[7,5],ymm4[5,7]
6325 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[0,1,2,0,4,5,6,4]
6326 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm3[6,7]
6327 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6328 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6329 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6330 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm3[3,0],ymm0[1,0],ymm3[7,4],ymm0[5,4]
6331 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm2[2,0],ymm0[2,3],ymm2[6,4],ymm0[6,7]
6332 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6333 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm0[1,0],xmm5[3,0]
6334 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm2[0,2],xmm5[1,3]
6335 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
6336 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
6337 ; AVX1-ONLY-NEXT:    vshufps $215, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm1 # 32-byte Folded Reload
6338 ; AVX1-ONLY-NEXT:    # ymm1 = ymm2[3,1],mem[1,3],ymm2[7,5],mem[5,7]
6339 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,1,2,0,4,5,6,4]
6340 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
6341 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6342 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6343 ; AVX1-ONLY-NEXT:    vblendps $12, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload
6344 ; AVX1-ONLY-NEXT:    # ymm2 = ymm0[0,1],mem[2,3],ymm0[4,5,6,7]
6345 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6346 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6347 ; AVX1-ONLY-NEXT:    vshufps $38, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
6348 ; AVX1-ONLY-NEXT:    # ymm0 = ymm0[2,1],mem[2,0],ymm0[6,5],mem[6,4]
6349 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm0[2,3,0,1]
6350 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm2, %xmm1
6351 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6352 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm2[2,0],xmm1[2,3]
6353 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]
6354 ; AVX1-ONLY-NEXT:    vblendps $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm12 # 32-byte Folded Reload
6355 ; AVX1-ONLY-NEXT:    # ymm12 = ymm12[0,1,2,3],mem[4,5],ymm12[6,7]
6356 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm12[2,3,0,1]
6357 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6358 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,0],ymm12[2,0],ymm1[4,4],ymm12[6,4]
6359 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
6360 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6361 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6362 ; AVX1-ONLY-NEXT:    vblendps $12, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload
6363 ; AVX1-ONLY-NEXT:    # ymm2 = ymm0[0,1],mem[2,3],ymm0[4,5,6,7]
6364 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6365 ; AVX1-ONLY-NEXT:    vshufps $38, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm0 # 32-byte Folded Reload
6366 ; AVX1-ONLY-NEXT:    # ymm0 = ymm9[2,1],mem[2,0],ymm9[6,5],mem[6,4]
6367 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm0[2,3,0,1]
6368 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm2, %xmm1
6369 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6370 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm2[2,0],xmm1[2,3]
6371 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]
6372 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6373 ; AVX1-ONLY-NEXT:    vblendps $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
6374 ; AVX1-ONLY-NEXT:    # ymm2 = ymm1[0,1,2,3],mem[4,5],ymm1[6,7]
6375 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6376 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm2[2,3,0,1]
6377 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6378 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,0],ymm2[2,0],ymm1[4,4],ymm2[6,4]
6379 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
6380 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6381 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6382 ; AVX1-ONLY-NEXT:    vblendps $12, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload
6383 ; AVX1-ONLY-NEXT:    # ymm2 = ymm0[0,1],mem[2,3],ymm0[4,5,6,7]
6384 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6385 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6386 ; AVX1-ONLY-NEXT:    vshufps $38, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
6387 ; AVX1-ONLY-NEXT:    # ymm0 = ymm0[2,1],mem[2,0],ymm0[6,5],mem[6,4]
6388 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm0[2,3,0,1]
6389 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm2, %xmm1
6390 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6391 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm2[2,0],xmm1[2,3]
6392 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]
6393 ; AVX1-ONLY-NEXT:    vblendps $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm2 # 32-byte Folded Reload
6394 ; AVX1-ONLY-NEXT:    # ymm2 = ymm15[0,1,2,3],mem[4,5],ymm15[6,7]
6395 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6396 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm2[2,3,0,1]
6397 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6398 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,0],ymm2[2,0],ymm1[4,4],ymm2[6,4]
6399 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
6400 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6401 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6402 ; AVX1-ONLY-NEXT:    vblendps $12, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload
6403 ; AVX1-ONLY-NEXT:    # ymm2 = ymm0[0,1],mem[2,3],ymm0[4,5,6,7]
6404 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6405 ; AVX1-ONLY-NEXT:    vshufps $38, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm0 # 32-byte Folded Reload
6406 ; AVX1-ONLY-NEXT:    # ymm0 = ymm14[2,1],mem[2,0],ymm14[6,5],mem[6,4]
6407 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm0[2,3,0,1]
6408 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm2, %xmm1
6409 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6410 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm2[2,0],xmm1[2,3]
6411 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]
6412 ; AVX1-ONLY-NEXT:    vblendps $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm10 # 32-byte Folded Reload
6413 ; AVX1-ONLY-NEXT:    # ymm10 = ymm13[0,1,2,3],mem[4,5],ymm13[6,7]
6414 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm10[2,3,0,1]
6415 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6416 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,0],ymm10[2,0],ymm1[4,4],ymm10[6,4]
6417 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
6418 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6419 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6420 ; AVX1-ONLY-NEXT:    vblendps $12, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload
6421 ; AVX1-ONLY-NEXT:    # ymm2 = ymm0[0,1],mem[2,3],ymm0[4,5,6,7]
6422 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6423 ; AVX1-ONLY-NEXT:    vshufps $38, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm0 # 32-byte Folded Reload
6424 ; AVX1-ONLY-NEXT:    # ymm0 = ymm11[2,1],mem[2,0],ymm11[6,5],mem[6,4]
6425 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm0[2,3,0,1]
6426 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm2, %xmm1
6427 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6428 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm2[2,0],xmm1[2,3]
6429 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]
6430 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6431 ; AVX1-ONLY-NEXT:    vblendps $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
6432 ; AVX1-ONLY-NEXT:    # ymm2 = ymm1[0,1,2,3],mem[4,5],ymm1[6,7]
6433 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6434 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm2[2,3,0,1]
6435 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6436 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,0],ymm2[2,0],ymm1[4,4],ymm2[6,4]
6437 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
6438 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6439 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6440 ; AVX1-ONLY-NEXT:    vblendps $12, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload
6441 ; AVX1-ONLY-NEXT:    # ymm2 = ymm0[0,1],mem[2,3],ymm0[4,5,6,7]
6442 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6443 ; AVX1-ONLY-NEXT:    vshufps $38, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm0 # 32-byte Folded Reload
6444 ; AVX1-ONLY-NEXT:    # ymm0 = ymm8[2,1],mem[2,0],ymm8[6,5],mem[6,4]
6445 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm0[2,3,0,1]
6446 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm2, %xmm1
6447 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6448 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm2[2,0],xmm1[2,3]
6449 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]
6450 ; AVX1-ONLY-NEXT:    vblendps $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm9 # 32-byte Folded Reload
6451 ; AVX1-ONLY-NEXT:    # ymm9 = ymm7[0,1,2,3],mem[4,5],ymm7[6,7]
6452 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm9[2,3,0,1]
6453 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6454 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,0],ymm9[2,0],ymm1[4,4],ymm9[6,4]
6455 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
6456 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6457 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6458 ; AVX1-ONLY-NEXT:    vblendps $12, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm8 # 32-byte Folded Reload
6459 ; AVX1-ONLY-NEXT:    # ymm8 = ymm0[0,1],mem[2,3],ymm0[4,5,6,7]
6460 ; AVX1-ONLY-NEXT:    vshufps $38, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm0 # 32-byte Folded Reload
6461 ; AVX1-ONLY-NEXT:    # ymm0 = ymm6[2,1],mem[2,0],ymm6[6,5],mem[6,4]
6462 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm0[2,3,0,1]
6463 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm8, %xmm1
6464 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6465 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm8[2,0],xmm1[2,3]
6466 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4,5,6,7]
6467 ; AVX1-ONLY-NEXT:    vblendps $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm6 # 32-byte Folded Reload
6468 ; AVX1-ONLY-NEXT:    # ymm6 = ymm4[0,1,2,3],mem[4,5],ymm4[6,7]
6469 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm13 = ymm6[2,3,0,1]
6470 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm13[0,0],ymm6[2,0],ymm13[4,4],ymm6[6,4]
6471 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm2[5,6,7]
6472 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6473 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6474 ; AVX1-ONLY-NEXT:    vblendps $12, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm5 # 32-byte Folded Reload
6475 ; AVX1-ONLY-NEXT:    # ymm5 = ymm0[0,1],mem[2,3],ymm0[4,5,6,7]
6476 ; AVX1-ONLY-NEXT:    vmovaps %ymm3, %ymm4
6477 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6478 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm4[2,1],ymm3[2,0],ymm4[6,5],ymm3[6,4]
6479 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm2[2,3,0,1]
6480 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm5, %xmm7
6481 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm15 = xmm5[2,0],xmm7[2,3]
6482 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm15[0,1,2],ymm0[3,4,5,6,7]
6483 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6484 ; AVX1-ONLY-NEXT:    vblendps $48, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm15 # 32-byte Folded Reload
6485 ; AVX1-ONLY-NEXT:    # ymm15 = ymm1[0,1,2,3],mem[4,5],ymm1[6,7]
6486 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm2 = ymm15[2,3,0,1]
6487 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm11 = ymm2[0,0],ymm15[2,0],ymm2[4,4],ymm15[6,4]
6488 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm11[5,6,7]
6489 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6490 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6491 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[0,1],ymm12[3,1],ymm0[4,5],ymm12[7,5]
6492 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6493 ; AVX1-ONLY-NEXT:    vshufps $247, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm11 # 16-byte Folded Reload
6494 ; AVX1-ONLY-NEXT:    # xmm11 = xmm1[3,1],mem[3,3]
6495 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
6496 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6497 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm12 = ymm1[3,1],ymm14[2,1],ymm1[7,5],ymm14[6,5]
6498 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm12 = ymm12[2,3,0,1]
6499 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1,2],ymm12[3,4,5,6,7]
6500 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm11[0,1,2,3,4],ymm0[5,6,7]
6501 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6502 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6503 ; AVX1-ONLY-NEXT:    vshufps $116, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
6504 ; AVX1-ONLY-NEXT:    # ymm0 = ymm0[0,1],mem[3,1],ymm0[4,5],mem[7,5]
6505 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6506 ; AVX1-ONLY-NEXT:    vshufps $247, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm11 # 16-byte Folded Reload
6507 ; AVX1-ONLY-NEXT:    # xmm11 = xmm1[3,1],mem[3,3]
6508 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
6509 ; AVX1-ONLY-NEXT:    vshufps $103, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm12 # 32-byte Folded Reload
6510 ; AVX1-ONLY-NEXT:    # ymm12 = ymm12[3,1],mem[2,1],ymm12[7,5],mem[6,5]
6511 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm12 = ymm12[2,3,0,1]
6512 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1,2],ymm12[3,4,5,6,7]
6513 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm11[0,1,2,3,4],ymm0[5,6,7]
6514 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6515 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6516 ; AVX1-ONLY-NEXT:    vshufps $116, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload
6517 ; AVX1-ONLY-NEXT:    # ymm1 = ymm0[0,1],mem[3,1],ymm0[4,5],mem[7,5]
6518 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6519 ; AVX1-ONLY-NEXT:    vshufps $247, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm11 # 16-byte Folded Reload
6520 ; AVX1-ONLY-NEXT:    # xmm11 = xmm0[3,1],mem[3,3]
6521 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6522 ; AVX1-ONLY-NEXT:    vshufps $103, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm12 # 32-byte Folded Reload
6523 ; AVX1-ONLY-NEXT:    # ymm12 = ymm0[3,1],mem[2,1],ymm0[7,5],mem[6,5]
6524 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm12 = ymm12[2,3,0,1]
6525 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1,2],ymm12[3,4,5,6,7]
6526 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm11[0,1,2,3,4],ymm1[5,6,7]
6527 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6528 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6529 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[0,1],ymm10[3,1],ymm0[4,5],ymm10[7,5]
6530 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6531 ; AVX1-ONLY-NEXT:    vshufps $247, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm10 # 16-byte Folded Reload
6532 ; AVX1-ONLY-NEXT:    # xmm10 = xmm1[3,1],mem[3,3]
6533 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload
6534 ; AVX1-ONLY-NEXT:    vshufps $103, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm11 # 32-byte Folded Reload
6535 ; AVX1-ONLY-NEXT:    # ymm11 = ymm11[3,1],mem[2,1],ymm11[7,5],mem[6,5]
6536 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm11 = ymm11[2,3,0,1]
6537 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1,2],ymm11[3,4,5,6,7]
6538 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1,2,3,4],ymm0[5,6,7]
6539 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6540 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm2[0,1],ymm15[3,1],ymm2[4,5],ymm15[7,5]
6541 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm5[3,1],xmm7[3,3]
6542 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm4[3,1],ymm3[2,1],ymm4[7,5],ymm3[6,5]
6543 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, %ymm15
6544 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm2 = ymm2[2,3,0,1]
6545 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
6546 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4],ymm0[5,6,7]
6547 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6548 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm13[0,1],ymm6[3,1],ymm13[4,5],ymm6[7,5]
6549 ; AVX1-ONLY-NEXT:    vshufps $247, {{[-0-9]+}}(%r{{[sb]}}p), %xmm8, %xmm1 # 16-byte Folded Reload
6550 ; AVX1-ONLY-NEXT:    # xmm1 = xmm8[3,1],mem[3,3]
6551 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6552 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
6553 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm3[3,1],ymm6[2,1],ymm3[7,5],ymm6[6,5]
6554 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm2 = ymm2[2,3,0,1]
6555 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
6556 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4],ymm0[5,6,7]
6557 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6558 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6559 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[0,1],ymm9[3,1],ymm0[4,5],ymm9[7,5]
6560 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6561 ; AVX1-ONLY-NEXT:    vshufps $247, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
6562 ; AVX1-ONLY-NEXT:    # xmm1 = xmm1[3,1],mem[3,3]
6563 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
6564 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
6565 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm4[3,1],ymm8[2,1],ymm4[7,5],ymm8[6,5]
6566 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm2 = ymm2[2,3,0,1]
6567 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
6568 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4],ymm0[5,6,7]
6569 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6570 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6571 ; AVX1-ONLY-NEXT:    vshufps $116, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
6572 ; AVX1-ONLY-NEXT:    # ymm0 = ymm0[0,1],mem[3,1],ymm0[4,5],mem[7,5]
6573 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
6574 ; AVX1-ONLY-NEXT:    vshufps $247, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
6575 ; AVX1-ONLY-NEXT:    # xmm1 = xmm1[3,1],mem[3,3]
6576 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
6577 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
6578 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm5[3,1],ymm7[2,1],ymm5[7,5],ymm7[6,5]
6579 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm2 = ymm2[2,3,0,1]
6580 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
6581 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4],ymm0[5,6,7]
6582 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6583 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6584 ; AVX1-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload
6585 ; AVX1-ONLY-NEXT:    # ymm2 = mem[0,1],ymm0[2,3],mem[4,5,6,7]
6586 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %xmm0
6587 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6588 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[2,2,3,3]
6589 ; AVX1-ONLY-NEXT:    vmovaps 16(%rdi), %xmm1
6590 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6591 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0],xmm0[1],xmm1[2,3]
6592 ; AVX1-ONLY-NEXT:    vmovapd 80(%rdi), %xmm1
6593 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6594 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm1 = ymm1[1],ymm7[0],ymm1[2],ymm7[2]
6595 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm5[0,1],ymm1[2,0],ymm5[4,5],ymm1[6,4]
6596 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3,4,5,6,7]
6597 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6598 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm10 = ymm2[2,3,0,1]
6599 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm2[2,0],ymm10[0,0],ymm2[6,4],ymm10[4,4]
6600 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm10[0,2],ymm1[2,0],ymm10[4,6],ymm1[6,4]
6601 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
6602 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6603 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6604 ; AVX1-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload
6605 ; AVX1-ONLY-NEXT:    # ymm2 = mem[0,1],ymm0[2,3],mem[4,5,6,7]
6606 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6607 ; AVX1-ONLY-NEXT:    vmovaps 224(%rdi), %xmm0
6608 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6609 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[2,2,3,3]
6610 ; AVX1-ONLY-NEXT:    vmovaps 208(%rdi), %xmm1
6611 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6612 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0],xmm0[1],xmm1[2,3]
6613 ; AVX1-ONLY-NEXT:    vmovapd 272(%rdi), %xmm1
6614 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6615 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm1 = ymm1[1],ymm14[0],ymm1[2],ymm14[2]
6616 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
6617 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm5[0,1],ymm1[2,0],ymm5[4,5],ymm1[6,4]
6618 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3,4,5,6,7]
6619 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm7 = ymm2[2,3,0,1]
6620 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm2[2,0],ymm7[0,0],ymm2[6,4],ymm7[4,4]
6621 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm7[0,2],ymm1[2,0],ymm7[4,6],ymm1[6,4]
6622 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
6623 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6624 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6625 ; AVX1-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload
6626 ; AVX1-ONLY-NEXT:    # ymm2 = mem[0,1],ymm0[2,3],mem[4,5,6,7]
6627 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6628 ; AVX1-ONLY-NEXT:    vmovaps 416(%rdi), %xmm0
6629 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6630 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[2,2,3,3]
6631 ; AVX1-ONLY-NEXT:    vmovaps 400(%rdi), %xmm1
6632 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6633 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0],xmm0[1],xmm1[2,3]
6634 ; AVX1-ONLY-NEXT:    vmovapd 464(%rdi), %xmm1
6635 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6636 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm1 = ymm1[1],ymm8[0],ymm1[2],ymm8[2]
6637 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm4[0,1],ymm1[2,0],ymm4[4,5],ymm1[6,4]
6638 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3,4,5,6,7]
6639 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm5 = ymm2[2,3,0,1]
6640 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm2[2,0],ymm5[0,0],ymm2[6,4],ymm5[4,4]
6641 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm5[0,2],ymm1[2,0],ymm5[4,6],ymm1[6,4]
6642 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
6643 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6644 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6645 ; AVX1-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm12 # 32-byte Folded Reload
6646 ; AVX1-ONLY-NEXT:    # ymm12 = mem[0,1],ymm0[2,3],mem[4,5,6,7]
6647 ; AVX1-ONLY-NEXT:    vmovaps 608(%rdi), %xmm0
6648 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6649 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[2,2,3,3]
6650 ; AVX1-ONLY-NEXT:    vmovaps 592(%rdi), %xmm1
6651 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6652 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0],xmm0[1],xmm1[2,3]
6653 ; AVX1-ONLY-NEXT:    vmovapd 656(%rdi), %xmm1
6654 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6655 ; AVX1-ONLY-NEXT:    vshufpd $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
6656 ; AVX1-ONLY-NEXT:    # ymm1 = ymm1[1],mem[0],ymm1[2],mem[2]
6657 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
6658 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,0],ymm2[4,5],ymm1[6,4]
6659 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3,4,5,6,7]
6660 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm4 = ymm12[2,3,0,1]
6661 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm12[2,0],ymm4[0,0],ymm12[6,4],ymm4[4,4]
6662 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm4[0,2],ymm1[2,0],ymm4[4,6],ymm1[6,4]
6663 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
6664 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6665 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6666 ; AVX1-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm11 # 32-byte Folded Reload
6667 ; AVX1-ONLY-NEXT:    # ymm11 = mem[0,1],ymm0[2,3],mem[4,5,6,7]
6668 ; AVX1-ONLY-NEXT:    vmovaps 800(%rdi), %xmm0
6669 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6670 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[2,2,3,3]
6671 ; AVX1-ONLY-NEXT:    vmovaps 784(%rdi), %xmm1
6672 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6673 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0],xmm0[1],xmm1[2,3]
6674 ; AVX1-ONLY-NEXT:    vmovapd 848(%rdi), %xmm1
6675 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6676 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm1 = ymm1[1],ymm6[0],ymm1[2],ymm6[2]
6677 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm3[0,1],ymm1[2,0],ymm3[4,5],ymm1[6,4]
6678 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3,4,5,6,7]
6679 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm11[2,3,0,1]
6680 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm11[2,0],ymm3[0,0],ymm11[6,4],ymm3[4,4]
6681 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm3[0,2],ymm1[2,0],ymm3[4,6],ymm1[6,4]
6682 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
6683 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6684 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6685 ; AVX1-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm14 # 32-byte Folded Reload
6686 ; AVX1-ONLY-NEXT:    # ymm14 = mem[0,1],ymm0[2,3],mem[4,5,6,7]
6687 ; AVX1-ONLY-NEXT:    vmovaps 992(%rdi), %xmm0
6688 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6689 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[2,2,3,3]
6690 ; AVX1-ONLY-NEXT:    vmovaps 976(%rdi), %xmm1
6691 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6692 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0],xmm0[1],xmm1[2,3]
6693 ; AVX1-ONLY-NEXT:    vmovapd 1040(%rdi), %xmm1
6694 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6695 ; AVX1-ONLY-NEXT:    vshufpd $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
6696 ; AVX1-ONLY-NEXT:    # ymm1 = ymm1[1],mem[0],ymm1[2],mem[2]
6697 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
6698 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,0],ymm2[4,5],ymm1[6,4]
6699 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3,4,5,6,7]
6700 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm2 = ymm14[2,3,0,1]
6701 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm14[2,0],ymm2[0,0],ymm14[6,4],ymm2[4,4]
6702 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm2[0,2],ymm1[2,0],ymm2[4,6],ymm1[6,4]
6703 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
6704 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6705 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6706 ; AVX1-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm8 # 32-byte Folded Reload
6707 ; AVX1-ONLY-NEXT:    # ymm8 = mem[0,1],ymm0[2,3],mem[4,5,6,7]
6708 ; AVX1-ONLY-NEXT:    vmovaps 1184(%rdi), %xmm0
6709 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6710 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[2,2,3,3]
6711 ; AVX1-ONLY-NEXT:    vmovaps 1168(%rdi), %xmm1
6712 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6713 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0],xmm0[1],xmm1[2,3]
6714 ; AVX1-ONLY-NEXT:    vmovapd 1232(%rdi), %xmm1
6715 ; AVX1-ONLY-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6716 ; AVX1-ONLY-NEXT:    vshufpd $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
6717 ; AVX1-ONLY-NEXT:    # ymm1 = ymm1[1],mem[0],ymm1[2],mem[2]
6718 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm15[0,1],ymm1[2,0],ymm15[4,5],ymm1[6,4]
6719 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3,4,5,6,7]
6720 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm8[2,3,0,1]
6721 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm6 = ymm8[2,0],ymm1[0,0],ymm8[6,4],ymm1[4,4]
6722 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm6 = ymm1[0,2],ymm6[2,0],ymm1[4,6],ymm6[6,4]
6723 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm6[5,6,7]
6724 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6725 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6726 ; AVX1-ONLY-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm6 # 32-byte Folded Reload
6727 ; AVX1-ONLY-NEXT:    # ymm6 = mem[0,1],ymm0[2,3],mem[4,5,6,7]
6728 ; AVX1-ONLY-NEXT:    vmovaps 1376(%rdi), %xmm0
6729 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6730 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[2,2,3,3]
6731 ; AVX1-ONLY-NEXT:    vmovaps 1360(%rdi), %xmm9
6732 ; AVX1-ONLY-NEXT:    vmovaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6733 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm9[0],xmm0[1],xmm9[2,3]
6734 ; AVX1-ONLY-NEXT:    vmovapd 1424(%rdi), %xmm9
6735 ; AVX1-ONLY-NEXT:    vmovupd %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6736 ; AVX1-ONLY-NEXT:    vshufpd $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm15 # 32-byte Folded Reload
6737 ; AVX1-ONLY-NEXT:    # ymm15 = ymm9[1],mem[0],ymm9[2],mem[2]
6738 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
6739 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm15 = ymm9[0,1],ymm15[2,0],ymm9[4,5],ymm15[6,4]
6740 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm15 = ymm0[0,1],ymm15[2,3,4,5,6,7]
6741 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm6[2,3,0,1]
6742 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm13 = ymm6[2,0],ymm0[0,0],ymm6[6,4],ymm0[4,4]
6743 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm13 = ymm0[0,2],ymm13[2,0],ymm0[4,6],ymm13[6,4]
6744 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm9 = ymm15[0,1,2,3,4],ymm13[5,6,7]
6745 ; AVX1-ONLY-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6746 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
6747 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm13 = ymm9[3,0],ymm10[1,0],ymm9[7,4],ymm10[5,4]
6748 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm9 = ymm10[0,3],ymm13[2,0],ymm10[4,7],ymm13[6,4]
6749 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
6750 ; AVX1-ONLY-NEXT:    vblendps $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm10, %xmm13 # 16-byte Folded Reload
6751 ; AVX1-ONLY-NEXT:    # xmm13 = xmm10[0,1],mem[2,3]
6752 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
6753 ; AVX1-ONLY-NEXT:    vshufps $215, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm15 # 32-byte Folded Reload
6754 ; AVX1-ONLY-NEXT:    # ymm15 = ymm10[3,1],mem[1,3],ymm10[7,5],mem[5,7]
6755 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
6756 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm15 = ymm10[1,1],ymm15[2,0],ymm10[5,5],ymm15[6,4]
6757 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm13 = xmm13[1,3,2,3]
6758 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1],ymm15[2,3,4,5,6,7]
6759 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm9 = ymm13[0,1,2,3,4],ymm9[5,6,7]
6760 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
6761 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm13 = ymm10[3,0],ymm7[1,0],ymm10[7,4],ymm7[5,4]
6762 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm7 = ymm7[0,3],ymm13[2,0],ymm7[4,7],ymm13[6,4]
6763 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
6764 ; AVX1-ONLY-NEXT:    vblendps $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm10, %xmm13 # 16-byte Folded Reload
6765 ; AVX1-ONLY-NEXT:    # xmm13 = xmm10[0,1],mem[2,3]
6766 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
6767 ; AVX1-ONLY-NEXT:    vshufps $215, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm15 # 32-byte Folded Reload
6768 ; AVX1-ONLY-NEXT:    # ymm15 = ymm10[3,1],mem[1,3],ymm10[7,5],mem[5,7]
6769 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
6770 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm15 = ymm10[1,1],ymm15[2,0],ymm10[5,5],ymm15[6,4]
6771 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm13 = xmm13[1,3,2,3]
6772 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1],ymm15[2,3,4,5,6,7]
6773 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm7 = ymm13[0,1,2,3,4],ymm7[5,6,7]
6774 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
6775 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm13 = ymm10[3,0],ymm5[1,0],ymm10[7,4],ymm5[5,4]
6776 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm5 = ymm5[0,3],ymm13[2,0],ymm5[4,7],ymm13[6,4]
6777 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
6778 ; AVX1-ONLY-NEXT:    vblendps $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm10, %xmm13 # 16-byte Folded Reload
6779 ; AVX1-ONLY-NEXT:    # xmm13 = xmm10[0,1],mem[2,3]
6780 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
6781 ; AVX1-ONLY-NEXT:    vshufps $215, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm15 # 32-byte Folded Reload
6782 ; AVX1-ONLY-NEXT:    # ymm15 = ymm10[3,1],mem[1,3],ymm10[7,5],mem[5,7]
6783 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
6784 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm15 = ymm10[1,1],ymm15[2,0],ymm10[5,5],ymm15[6,4]
6785 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm13 = xmm13[1,3,2,3]
6786 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1],ymm15[2,3,4,5,6,7]
6787 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm13[0,1,2,3,4],ymm5[5,6,7]
6788 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm12 = ymm12[3,0],ymm4[1,0],ymm12[7,4],ymm4[5,4]
6789 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[0,3],ymm12[2,0],ymm4[4,7],ymm12[6,4]
6790 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
6791 ; AVX1-ONLY-NEXT:    vblendps $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm10, %xmm12 # 16-byte Folded Reload
6792 ; AVX1-ONLY-NEXT:    # xmm12 = xmm10[0,1],mem[2,3]
6793 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
6794 ; AVX1-ONLY-NEXT:    vshufps $215, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm13 # 32-byte Folded Reload
6795 ; AVX1-ONLY-NEXT:    # ymm13 = ymm10[3,1],mem[1,3],ymm10[7,5],mem[5,7]
6796 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
6797 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm13 = ymm10[1,1],ymm13[2,0],ymm10[5,5],ymm13[6,4]
6798 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm12 = xmm12[1,3,2,3]
6799 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1],ymm13[2,3,4,5,6,7]
6800 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm12[0,1,2,3,4],ymm4[5,6,7]
6801 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm11 = ymm11[3,0],ymm3[1,0],ymm11[7,4],ymm3[5,4]
6802 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[0,3],ymm11[2,0],ymm3[4,7],ymm11[6,4]
6803 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
6804 ; AVX1-ONLY-NEXT:    vblendps $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm10, %xmm11 # 16-byte Folded Reload
6805 ; AVX1-ONLY-NEXT:    # xmm11 = xmm10[0,1],mem[2,3]
6806 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
6807 ; AVX1-ONLY-NEXT:    vshufps $215, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm12 # 32-byte Folded Reload
6808 ; AVX1-ONLY-NEXT:    # ymm12 = ymm10[3,1],mem[1,3],ymm10[7,5],mem[5,7]
6809 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
6810 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm12 = ymm10[1,1],ymm12[2,0],ymm10[5,5],ymm12[6,4]
6811 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm11 = xmm11[1,3,2,3]
6812 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1],ymm12[2,3,4,5,6,7]
6813 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm3 = ymm11[0,1,2,3,4],ymm3[5,6,7]
6814 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm10 = ymm14[3,0],ymm2[1,0],ymm14[7,4],ymm2[5,4]
6815 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[0,3],ymm10[2,0],ymm2[4,7],ymm10[6,4]
6816 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
6817 ; AVX1-ONLY-NEXT:    vblendps $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm10, %xmm10 # 16-byte Folded Reload
6818 ; AVX1-ONLY-NEXT:    # xmm10 = xmm10[0,1],mem[2,3]
6819 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload
6820 ; AVX1-ONLY-NEXT:    vshufps $215, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm11 # 32-byte Folded Reload
6821 ; AVX1-ONLY-NEXT:    # ymm11 = ymm11[3,1],mem[1,3],ymm11[7,5],mem[5,7]
6822 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
6823 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm11 = ymm12[1,1],ymm11[2,0],ymm12[5,5],ymm11[6,4]
6824 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm10 = xmm10[1,3,2,3]
6825 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1],ymm11[2,3,4,5,6,7]
6826 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm10[0,1,2,3,4],ymm2[5,6,7]
6827 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm8 = ymm8[3,0],ymm1[1,0],ymm8[7,4],ymm1[5,4]
6828 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,3],ymm8[2,0],ymm1[4,7],ymm8[6,4]
6829 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
6830 ; AVX1-ONLY-NEXT:    vblendps $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm8, %xmm8 # 16-byte Folded Reload
6831 ; AVX1-ONLY-NEXT:    # xmm8 = xmm8[0,1],mem[2,3]
6832 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
6833 ; AVX1-ONLY-NEXT:    vshufps $215, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
6834 ; AVX1-ONLY-NEXT:    # ymm10 = ymm10[3,1],mem[1,3],ymm10[7,5],mem[5,7]
6835 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload
6836 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm10 = ymm11[1,1],ymm10[2,0],ymm11[5,5],ymm10[6,4]
6837 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm8 = xmm8[1,3,2,3]
6838 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1],ymm10[2,3,4,5,6,7]
6839 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm8[0,1,2,3,4],ymm1[5,6,7]
6840 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm6 = ymm6[3,0],ymm0[1,0],ymm6[7,4],ymm0[5,4]
6841 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[0,3],ymm6[2,0],ymm0[4,7],ymm6[6,4]
6842 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
6843 ; AVX1-ONLY-NEXT:    vblendps $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6, %xmm6 # 16-byte Folded Reload
6844 ; AVX1-ONLY-NEXT:    # xmm6 = xmm6[0,1],mem[2,3]
6845 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
6846 ; AVX1-ONLY-NEXT:    vshufps $215, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
6847 ; AVX1-ONLY-NEXT:    # ymm8 = ymm8[3,1],mem[1,3],ymm8[7,5],mem[5,7]
6848 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
6849 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm8 = ymm10[1,1],ymm8[2,0],ymm10[5,5],ymm8[6,4]
6850 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm6 = xmm6[1,3,2,3]
6851 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1],ymm8[2,3,4,5,6,7]
6852 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm6[0,1,2,3,4],ymm0[5,6,7]
6853 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
6854 ; AVX1-ONLY-NEXT:    vmovaps %ymm6, 192(%rsi)
6855 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
6856 ; AVX1-ONLY-NEXT:    vmovaps %ymm6, 128(%rsi)
6857 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
6858 ; AVX1-ONLY-NEXT:    vmovaps %ymm6, 64(%rsi)
6859 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
6860 ; AVX1-ONLY-NEXT:    vmovaps %ymm6, (%rsi)
6861 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
6862 ; AVX1-ONLY-NEXT:    vmovaps %ymm6, 224(%rsi)
6863 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
6864 ; AVX1-ONLY-NEXT:    vmovaps %ymm6, 160(%rsi)
6865 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
6866 ; AVX1-ONLY-NEXT:    vmovaps %ymm6, 96(%rsi)
6867 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
6868 ; AVX1-ONLY-NEXT:    vmovaps %ymm6, 32(%rsi)
6869 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
6870 ; AVX1-ONLY-NEXT:    vmovaps %ymm6, 192(%rdx)
6871 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
6872 ; AVX1-ONLY-NEXT:    vmovaps %ymm6, 128(%rdx)
6873 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
6874 ; AVX1-ONLY-NEXT:    vmovaps %ymm6, 64(%rdx)
6875 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
6876 ; AVX1-ONLY-NEXT:    vmovaps %ymm6, (%rdx)
6877 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
6878 ; AVX1-ONLY-NEXT:    vmovaps %ymm6, 224(%rdx)
6879 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
6880 ; AVX1-ONLY-NEXT:    vmovaps %ymm6, 160(%rdx)
6881 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
6882 ; AVX1-ONLY-NEXT:    vmovaps %ymm6, 96(%rdx)
6883 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
6884 ; AVX1-ONLY-NEXT:    vmovaps %ymm6, 32(%rdx)
6885 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
6886 ; AVX1-ONLY-NEXT:    vmovaps %ymm6, 192(%rcx)
6887 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
6888 ; AVX1-ONLY-NEXT:    vmovaps %ymm6, 128(%rcx)
6889 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
6890 ; AVX1-ONLY-NEXT:    vmovaps %ymm6, 64(%rcx)
6891 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
6892 ; AVX1-ONLY-NEXT:    vmovaps %ymm6, (%rcx)
6893 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
6894 ; AVX1-ONLY-NEXT:    vmovaps %ymm6, 224(%rcx)
6895 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
6896 ; AVX1-ONLY-NEXT:    vmovaps %ymm6, 160(%rcx)
6897 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
6898 ; AVX1-ONLY-NEXT:    vmovaps %ymm6, 96(%rcx)
6899 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
6900 ; AVX1-ONLY-NEXT:    vmovaps %ymm6, 32(%rcx)
6901 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
6902 ; AVX1-ONLY-NEXT:    vmovaps %ymm6, (%r8)
6903 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
6904 ; AVX1-ONLY-NEXT:    vmovaps %ymm6, 64(%r8)
6905 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
6906 ; AVX1-ONLY-NEXT:    vmovaps %ymm6, 128(%r8)
6907 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
6908 ; AVX1-ONLY-NEXT:    vmovaps %ymm6, 192(%r8)
6909 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
6910 ; AVX1-ONLY-NEXT:    vmovaps %ymm6, 224(%r8)
6911 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
6912 ; AVX1-ONLY-NEXT:    vmovaps %ymm6, 160(%r8)
6913 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
6914 ; AVX1-ONLY-NEXT:    vmovaps %ymm6, 96(%r8)
6915 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
6916 ; AVX1-ONLY-NEXT:    vmovaps %ymm6, 32(%r8)
6917 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
6918 ; AVX1-ONLY-NEXT:    vmovaps %ymm6, 224(%r9)
6919 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
6920 ; AVX1-ONLY-NEXT:    vmovaps %ymm6, 192(%r9)
6921 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
6922 ; AVX1-ONLY-NEXT:    vmovaps %ymm6, 160(%r9)
6923 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
6924 ; AVX1-ONLY-NEXT:    vmovaps %ymm6, 128(%r9)
6925 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
6926 ; AVX1-ONLY-NEXT:    vmovaps %ymm6, 96(%r9)
6927 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
6928 ; AVX1-ONLY-NEXT:    vmovaps %ymm6, 64(%r9)
6929 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
6930 ; AVX1-ONLY-NEXT:    vmovaps %ymm6, 32(%r9)
6931 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
6932 ; AVX1-ONLY-NEXT:    vmovaps %ymm6, (%r9)
6933 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
6934 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 224(%rax)
6935 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 192(%rax)
6936 ; AVX1-ONLY-NEXT:    vmovaps %ymm2, 160(%rax)
6937 ; AVX1-ONLY-NEXT:    vmovaps %ymm3, 128(%rax)
6938 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, 96(%rax)
6939 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, 64(%rax)
6940 ; AVX1-ONLY-NEXT:    vmovaps %ymm7, 32(%rax)
6941 ; AVX1-ONLY-NEXT:    vmovaps %ymm9, (%rax)
6942 ; AVX1-ONLY-NEXT:    addq $2584, %rsp # imm = 0xA18
6943 ; AVX1-ONLY-NEXT:    vzeroupper
6944 ; AVX1-ONLY-NEXT:    retq
6946 ; AVX2-SLOW-LABEL: load_i32_stride6_vf64:
6947 ; AVX2-SLOW:       # %bb.0:
6948 ; AVX2-SLOW-NEXT:    subq $2536, %rsp # imm = 0x9E8
6949 ; AVX2-SLOW-NEXT:    vmovaps 672(%rdi), %ymm4
6950 ; AVX2-SLOW-NEXT:    vmovaps 640(%rdi), %ymm5
6951 ; AVX2-SLOW-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6952 ; AVX2-SLOW-NEXT:    vmovaps 608(%rdi), %ymm3
6953 ; AVX2-SLOW-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6954 ; AVX2-SLOW-NEXT:    vmovaps 320(%rdi), %ymm2
6955 ; AVX2-SLOW-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6956 ; AVX2-SLOW-NEXT:    vmovaps 352(%rdi), %ymm6
6957 ; AVX2-SLOW-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6958 ; AVX2-SLOW-NEXT:    vmovaps 288(%rdi), %ymm7
6959 ; AVX2-SLOW-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6960 ; AVX2-SLOW-NEXT:    vmovaps 256(%rdi), %ymm9
6961 ; AVX2-SLOW-NEXT:    vmovups %ymm9, (%rsp) # 32-byte Spill
6962 ; AVX2-SLOW-NEXT:    vmovaps 224(%rdi), %ymm0
6963 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6964 ; AVX2-SLOW-NEXT:    vmovaps 192(%rdi), %ymm1
6965 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6966 ; AVX2-SLOW-NEXT:    vmovaps {{.*#+}} xmm8 = [0,6,4,u]
6967 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5],ymm1[6,7]
6968 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6969 ; AVX2-SLOW-NEXT:    vpermps %ymm0, %ymm8, %ymm0
6970 ; AVX2-SLOW-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm9[0,1],ymm7[0,1]
6971 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm7[6,7]
6972 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6973 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,2,2,2,4,6,6,6]
6974 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
6975 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm6[0,1,2,3],ymm2[4,5,6,7]
6976 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6977 ; AVX2-SLOW-NEXT:    vbroadcastsd {{.*#+}} ymm2 = [4,2,4,2,4,2,4,2]
6978 ; AVX2-SLOW-NEXT:    vpermps %ymm1, %ymm2, %ymm1
6979 ; AVX2-SLOW-NEXT:    vmovaps %ymm2, %ymm6
6980 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
6981 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6982 ; AVX2-SLOW-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6983 ; AVX2-SLOW-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm5[0,1],ymm4[0,1]
6984 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm0[0,1,2,3,4,5],ymm4[6,7]
6985 ; AVX2-SLOW-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6986 ; AVX2-SLOW-NEXT:    vmovaps 576(%rdi), %ymm0
6987 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6988 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5],ymm0[6,7]
6989 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6990 ; AVX2-SLOW-NEXT:    vpermps %ymm0, %ymm8, %ymm0
6991 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm2[0,2,2,2,4,6,6,6]
6992 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
6993 ; AVX2-SLOW-NEXT:    vmovaps 704(%rdi), %ymm1
6994 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6995 ; AVX2-SLOW-NEXT:    vmovaps 736(%rdi), %ymm2
6996 ; AVX2-SLOW-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6997 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
6998 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6999 ; AVX2-SLOW-NEXT:    vpermps %ymm1, %ymm6, %ymm1
7000 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
7001 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7002 ; AVX2-SLOW-NEXT:    vmovaps 1056(%rdi), %ymm1
7003 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7004 ; AVX2-SLOW-NEXT:    vmovaps 1024(%rdi), %ymm0
7005 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7006 ; AVX2-SLOW-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm0[0,1],ymm1[0,1]
7007 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm0[0,1,2,3,4,5],ymm1[6,7]
7008 ; AVX2-SLOW-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7009 ; AVX2-SLOW-NEXT:    vmovaps 992(%rdi), %ymm0
7010 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7011 ; AVX2-SLOW-NEXT:    vmovaps 960(%rdi), %ymm1
7012 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7013 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5],ymm1[6,7]
7014 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7015 ; AVX2-SLOW-NEXT:    vpermps %ymm0, %ymm8, %ymm0
7016 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm2[0,2,2,2,4,6,6,6]
7017 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
7018 ; AVX2-SLOW-NEXT:    vmovaps 1088(%rdi), %ymm1
7019 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7020 ; AVX2-SLOW-NEXT:    vmovaps 1120(%rdi), %ymm2
7021 ; AVX2-SLOW-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7022 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
7023 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7024 ; AVX2-SLOW-NEXT:    vpermps %ymm1, %ymm6, %ymm1
7025 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
7026 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7027 ; AVX2-SLOW-NEXT:    vmovaps 1440(%rdi), %ymm1
7028 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7029 ; AVX2-SLOW-NEXT:    vmovaps 1408(%rdi), %ymm0
7030 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7031 ; AVX2-SLOW-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm0[0,1],ymm1[0,1]
7032 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm0[0,1,2,3,4,5],ymm1[6,7]
7033 ; AVX2-SLOW-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7034 ; AVX2-SLOW-NEXT:    vmovaps 1376(%rdi), %ymm0
7035 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7036 ; AVX2-SLOW-NEXT:    vmovaps 1344(%rdi), %ymm1
7037 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7038 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5],ymm1[6,7]
7039 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7040 ; AVX2-SLOW-NEXT:    vpermps %ymm0, %ymm8, %ymm0
7041 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm2[0,2,2,2,4,6,6,6]
7042 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
7043 ; AVX2-SLOW-NEXT:    vmovaps 1472(%rdi), %ymm1
7044 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7045 ; AVX2-SLOW-NEXT:    vmovaps 1504(%rdi), %ymm2
7046 ; AVX2-SLOW-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7047 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
7048 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7049 ; AVX2-SLOW-NEXT:    vpermps %ymm1, %ymm6, %ymm1
7050 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
7051 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7052 ; AVX2-SLOW-NEXT:    vmovaps 96(%rdi), %ymm1
7053 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7054 ; AVX2-SLOW-NEXT:    vmovaps 64(%rdi), %ymm0
7055 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7056 ; AVX2-SLOW-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm0[0,1],ymm1[0,1]
7057 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm13 = ymm0[0,1,2,3,4,5],ymm1[6,7]
7058 ; AVX2-SLOW-NEXT:    vmovaps (%rdi), %ymm0
7059 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7060 ; AVX2-SLOW-NEXT:    vmovaps 32(%rdi), %ymm1
7061 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7062 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm11 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
7063 ; AVX2-SLOW-NEXT:    vpermps %ymm11, %ymm8, %ymm0
7064 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm13[0,2,2,2,4,6,6,6]
7065 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
7066 ; AVX2-SLOW-NEXT:    vmovaps 128(%rdi), %ymm1
7067 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7068 ; AVX2-SLOW-NEXT:    vmovaps 160(%rdi), %ymm2
7069 ; AVX2-SLOW-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7070 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm10 = ymm2[0,1,2,3],ymm1[4,5,6,7]
7071 ; AVX2-SLOW-NEXT:    vpermps %ymm10, %ymm6, %ymm1
7072 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
7073 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7074 ; AVX2-SLOW-NEXT:    vmovaps 480(%rdi), %ymm1
7075 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7076 ; AVX2-SLOW-NEXT:    vmovaps 448(%rdi), %ymm0
7077 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7078 ; AVX2-SLOW-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm0[0,1],ymm1[0,1]
7079 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm7 = ymm0[0,1,2,3,4,5],ymm1[6,7]
7080 ; AVX2-SLOW-NEXT:    vmovaps 416(%rdi), %ymm0
7081 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7082 ; AVX2-SLOW-NEXT:    vmovaps 384(%rdi), %ymm1
7083 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7084 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm5 = ymm1[0,1,2,3],ymm0[4,5],ymm1[6,7]
7085 ; AVX2-SLOW-NEXT:    vpermps %ymm5, %ymm8, %ymm0
7086 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm7[0,2,2,2,4,6,6,6]
7087 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
7088 ; AVX2-SLOW-NEXT:    vmovaps 512(%rdi), %ymm1
7089 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7090 ; AVX2-SLOW-NEXT:    vmovaps 544(%rdi), %ymm2
7091 ; AVX2-SLOW-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7092 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm4 = ymm2[0,1,2,3],ymm1[4,5,6,7]
7093 ; AVX2-SLOW-NEXT:    vpermps %ymm4, %ymm6, %ymm1
7094 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, %ymm12
7095 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
7096 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7097 ; AVX2-SLOW-NEXT:    vmovaps 864(%rdi), %ymm1
7098 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7099 ; AVX2-SLOW-NEXT:    vmovaps 832(%rdi), %ymm0
7100 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7101 ; AVX2-SLOW-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm0[0,1],ymm1[0,1]
7102 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm3 = ymm0[0,1,2,3,4,5],ymm1[6,7]
7103 ; AVX2-SLOW-NEXT:    vmovaps 800(%rdi), %ymm0
7104 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7105 ; AVX2-SLOW-NEXT:    vmovaps 768(%rdi), %ymm1
7106 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7107 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm0[4,5],ymm1[6,7]
7108 ; AVX2-SLOW-NEXT:    vpermps %ymm2, %ymm8, %ymm0
7109 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm3[0,2,2,2,4,6,6,6]
7110 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
7111 ; AVX2-SLOW-NEXT:    vmovaps 896(%rdi), %ymm1
7112 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7113 ; AVX2-SLOW-NEXT:    vmovaps 928(%rdi), %ymm6
7114 ; AVX2-SLOW-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7115 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm6[0,1,2,3],ymm1[4,5,6,7]
7116 ; AVX2-SLOW-NEXT:    vpermps %ymm1, %ymm12, %ymm6
7117 ; AVX2-SLOW-NEXT:    vmovaps %ymm12, %ymm14
7118 ; AVX2-SLOW-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7119 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm6[6,7]
7120 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7121 ; AVX2-SLOW-NEXT:    vmovaps 1184(%rdi), %ymm0
7122 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7123 ; AVX2-SLOW-NEXT:    vmovaps 1152(%rdi), %ymm6
7124 ; AVX2-SLOW-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7125 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm0[4,5],ymm6[6,7]
7126 ; AVX2-SLOW-NEXT:    vpermps %ymm6, %ymm8, %ymm0
7127 ; AVX2-SLOW-NEXT:    vmovaps 1248(%rdi), %ymm9
7128 ; AVX2-SLOW-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7129 ; AVX2-SLOW-NEXT:    vmovaps 1216(%rdi), %ymm8
7130 ; AVX2-SLOW-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7131 ; AVX2-SLOW-NEXT:    vperm2f128 {{.*#+}} ymm8 = ymm8[0,1],ymm9[0,1]
7132 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],ymm9[6,7]
7133 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm9 = ymm8[0,2,2,2,4,6,6,6]
7134 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm9[3,4,5,6,7]
7135 ; AVX2-SLOW-NEXT:    vmovaps 1280(%rdi), %ymm9
7136 ; AVX2-SLOW-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7137 ; AVX2-SLOW-NEXT:    vmovaps 1312(%rdi), %ymm12
7138 ; AVX2-SLOW-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7139 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm15 = ymm12[0,1,2,3],ymm9[4,5,6,7]
7140 ; AVX2-SLOW-NEXT:    vpermps %ymm15, %ymm14, %ymm9
7141 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm9[6,7]
7142 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7143 ; AVX2-SLOW-NEXT:    vmovaps {{.*#+}} xmm0 = [1,7,5,u]
7144 ; AVX2-SLOW-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm9 # 32-byte Folded Reload
7145 ; AVX2-SLOW-NEXT:    vpermilps $237, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Folded Reload
7146 ; AVX2-SLOW-NEXT:    # ymm14 = mem[1,3,2,3,5,7,6,7]
7147 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm14 = ymm9[0,1,2],ymm14[3,4,5,6,7]
7148 ; AVX2-SLOW-NEXT:    vbroadcastsd {{.*#+}} ymm9 = [5,3,5,3,5,3,5,3]
7149 ; AVX2-SLOW-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7150 ; AVX2-SLOW-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm12 # 32-byte Folded Reload
7151 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm12 = ymm14[0,1,2,3,4,5],ymm12[6,7]
7152 ; AVX2-SLOW-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7153 ; AVX2-SLOW-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm12 # 32-byte Folded Reload
7154 ; AVX2-SLOW-NEXT:    vpermilps $237, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Folded Reload
7155 ; AVX2-SLOW-NEXT:    # ymm14 = mem[1,3,2,3,5,7,6,7]
7156 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2],ymm14[3,4,5,6,7]
7157 ; AVX2-SLOW-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm14 # 32-byte Folded Reload
7158 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3,4,5],ymm14[6,7]
7159 ; AVX2-SLOW-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7160 ; AVX2-SLOW-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm12 # 32-byte Folded Reload
7161 ; AVX2-SLOW-NEXT:    vpermilps $237, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Folded Reload
7162 ; AVX2-SLOW-NEXT:    # ymm14 = mem[1,3,2,3,5,7,6,7]
7163 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2],ymm14[3,4,5,6,7]
7164 ; AVX2-SLOW-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm14 # 32-byte Folded Reload
7165 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3,4,5],ymm14[6,7]
7166 ; AVX2-SLOW-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7167 ; AVX2-SLOW-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm12 # 32-byte Folded Reload
7168 ; AVX2-SLOW-NEXT:    vpermilps $237, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Folded Reload
7169 ; AVX2-SLOW-NEXT:    # ymm14 = mem[1,3,2,3,5,7,6,7]
7170 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2],ymm14[3,4,5,6,7]
7171 ; AVX2-SLOW-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm14 # 32-byte Folded Reload
7172 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3,4,5],ymm14[6,7]
7173 ; AVX2-SLOW-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7174 ; AVX2-SLOW-NEXT:    vpermps %ymm11, %ymm0, %ymm11
7175 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm12 = ymm13[1,3,2,3,5,7,6,7]
7176 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1,2],ymm12[3,4,5,6,7]
7177 ; AVX2-SLOW-NEXT:    vpermps %ymm10, %ymm9, %ymm10
7178 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm10 = ymm11[0,1,2,3,4,5],ymm10[6,7]
7179 ; AVX2-SLOW-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7180 ; AVX2-SLOW-NEXT:    vpermps %ymm5, %ymm0, %ymm5
7181 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm7 = ymm7[1,3,2,3,5,7,6,7]
7182 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2],ymm7[3,4,5,6,7]
7183 ; AVX2-SLOW-NEXT:    vpermps %ymm4, %ymm9, %ymm4
7184 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1,2,3,4,5],ymm4[6,7]
7185 ; AVX2-SLOW-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7186 ; AVX2-SLOW-NEXT:    vpermps %ymm2, %ymm0, %ymm2
7187 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[1,3,2,3,5,7,6,7]
7188 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2],ymm3[3,4,5,6,7]
7189 ; AVX2-SLOW-NEXT:    vpermps %ymm1, %ymm9, %ymm1
7190 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
7191 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7192 ; AVX2-SLOW-NEXT:    vpermps %ymm6, %ymm0, %ymm0
7193 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm8[1,3,2,3,5,7,6,7]
7194 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
7195 ; AVX2-SLOW-NEXT:    vpermps %ymm15, %ymm9, %ymm1
7196 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
7197 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7198 ; AVX2-SLOW-NEXT:    vmovaps 192(%rdi), %xmm5
7199 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm0 = xmm5[2,3,2,3]
7200 ; AVX2-SLOW-NEXT:    vpermilps $224, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Folded Reload
7201 ; AVX2-SLOW-NEXT:    # ymm1 = mem[0,0,2,3,4,4,6,7]
7202 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3],ymm0[4],ymm1[5,6,7]
7203 ; AVX2-SLOW-NEXT:    vmovups (%rsp), %ymm1 # 32-byte Reload
7204 ; AVX2-SLOW-NEXT:    vblendps $204, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
7205 ; AVX2-SLOW-NEXT:    # ymm1 = ymm1[0,1],mem[2,3],ymm1[4,5],mem[6,7]
7206 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[2,0,2,3,6,4,6,7]
7207 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,0,3]
7208 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,3,2,3]
7209 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
7210 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
7211 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm3[0,0,0,0,4,4,4,4]
7212 ; AVX2-SLOW-NEXT:    vpermilps $224, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Folded Reload
7213 ; AVX2-SLOW-NEXT:    # ymm2 = mem[0,0,2,3,4,4,6,7]
7214 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]
7215 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,1,0,3]
7216 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
7217 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7218 ; AVX2-SLOW-NEXT:    vmovaps 576(%rdi), %xmm0
7219 ; AVX2-SLOW-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7220 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[2,3,2,3]
7221 ; AVX2-SLOW-NEXT:    vpermilps $224, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Folded Reload
7222 ; AVX2-SLOW-NEXT:    # ymm1 = mem[0,0,2,3,4,4,6,7]
7223 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3],ymm0[4],ymm1[5,6,7]
7224 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7225 ; AVX2-SLOW-NEXT:    vblendps $204, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
7226 ; AVX2-SLOW-NEXT:    # ymm1 = ymm1[0,1],mem[2,3],ymm1[4,5],mem[6,7]
7227 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[2,0,2,3,6,4,6,7]
7228 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,0,3]
7229 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,3,2,3]
7230 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
7231 ; AVX2-SLOW-NEXT:    vpermilps $0, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Folded Reload
7232 ; AVX2-SLOW-NEXT:    # ymm1 = mem[0,0,0,0,4,4,4,4]
7233 ; AVX2-SLOW-NEXT:    vpermilps $224, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Folded Reload
7234 ; AVX2-SLOW-NEXT:    # ymm2 = mem[0,0,2,3,4,4,6,7]
7235 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]
7236 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,1,0,3]
7237 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
7238 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7239 ; AVX2-SLOW-NEXT:    vmovaps 960(%rdi), %xmm2
7240 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm0 = xmm2[2,3,2,3]
7241 ; AVX2-SLOW-NEXT:    vpermilps $224, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Folded Reload
7242 ; AVX2-SLOW-NEXT:    # ymm1 = mem[0,0,2,3,4,4,6,7]
7243 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3],ymm0[4],ymm1[5,6,7]
7244 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7245 ; AVX2-SLOW-NEXT:    vblendps $204, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
7246 ; AVX2-SLOW-NEXT:    # ymm1 = ymm1[0,1],mem[2,3],ymm1[4,5],mem[6,7]
7247 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[2,0,2,3,6,4,6,7]
7248 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,0,3]
7249 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,3,2,3]
7250 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
7251 ; AVX2-SLOW-NEXT:    vpermilps $0, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Folded Reload
7252 ; AVX2-SLOW-NEXT:    # ymm1 = mem[0,0,0,0,4,4,4,4]
7253 ; AVX2-SLOW-NEXT:    vpermilps $224, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Folded Reload
7254 ; AVX2-SLOW-NEXT:    # ymm4 = mem[0,0,2,3,4,4,6,7]
7255 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm4[0,1,2],ymm1[3],ymm4[4,5,6],ymm1[7]
7256 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,1,0,3]
7257 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
7258 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7259 ; AVX2-SLOW-NEXT:    vmovaps 1344(%rdi), %xmm1
7260 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm0 = xmm1[2,3,2,3]
7261 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload
7262 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm4 = ymm15[0,0,2,3,4,4,6,7]
7263 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm4[1,2,3],ymm0[4],ymm4[5,6,7]
7264 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
7265 ; AVX2-SLOW-NEXT:    vblendps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm4 # 32-byte Folded Reload
7266 ; AVX2-SLOW-NEXT:    # ymm4 = mem[0,1],ymm13[2,3],mem[4,5],ymm13[6,7]
7267 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[2,0,2,3,6,4,6,7]
7268 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm4 = ymm4[0,2,0,3]
7269 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,3,2,3]
7270 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm4[3,4,5,6,7]
7271 ; AVX2-SLOW-NEXT:    vpermilps $0, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Folded Reload
7272 ; AVX2-SLOW-NEXT:    # ymm4 = mem[0,0,0,0,4,4,4,4]
7273 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
7274 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm6 = ymm14[0,0,2,3,4,4,6,7]
7275 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm4 = ymm6[0,1,2],ymm4[3],ymm6[4,5,6],ymm4[7]
7276 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm4 = ymm4[0,1,0,3]
7277 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm4[5,6,7]
7278 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7279 ; AVX2-SLOW-NEXT:    vmovaps (%rdi), %xmm0
7280 ; AVX2-SLOW-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7281 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[2,3,2,3]
7282 ; AVX2-SLOW-NEXT:    vpermilps $224, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Folded Reload
7283 ; AVX2-SLOW-NEXT:    # ymm4 = mem[0,0,2,3,4,4,6,7]
7284 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm4[1,2,3],ymm0[4],ymm4[5,6,7]
7285 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
7286 ; AVX2-SLOW-NEXT:    vblendps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload
7287 ; AVX2-SLOW-NEXT:    # ymm4 = mem[0,1],ymm4[2,3],mem[4,5],ymm4[6,7]
7288 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[2,0,2,3,6,4,6,7]
7289 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm4 = ymm4[0,2,0,3]
7290 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,3,2,3]
7291 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm4[3,4,5,6,7]
7292 ; AVX2-SLOW-NEXT:    vpermilps $0, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Folded Reload
7293 ; AVX2-SLOW-NEXT:    # ymm4 = mem[0,0,0,0,4,4,4,4]
7294 ; AVX2-SLOW-NEXT:    vpermilps $224, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Folded Reload
7295 ; AVX2-SLOW-NEXT:    # ymm6 = mem[0,0,2,3,4,4,6,7]
7296 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm4 = ymm6[0,1,2],ymm4[3],ymm6[4,5,6],ymm4[7]
7297 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm4 = ymm4[0,1,0,3]
7298 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm4[5,6,7]
7299 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7300 ; AVX2-SLOW-NEXT:    vmovaps 384(%rdi), %xmm0
7301 ; AVX2-SLOW-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7302 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[2,3,2,3]
7303 ; AVX2-SLOW-NEXT:    vpermilps $224, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Folded Reload
7304 ; AVX2-SLOW-NEXT:    # ymm6 = mem[0,0,2,3,4,4,6,7]
7305 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm6[1,2,3],ymm0[4],ymm6[5,6,7]
7306 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
7307 ; AVX2-SLOW-NEXT:    vblendps $204, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm6 # 32-byte Folded Reload
7308 ; AVX2-SLOW-NEXT:    # ymm6 = ymm4[0,1],mem[2,3],ymm4[4,5],mem[6,7]
7309 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm6 = ymm6[2,0,2,3,6,4,6,7]
7310 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm6 = ymm6[0,2,0,3]
7311 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,3,2,3]
7312 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm6[3,4,5,6,7]
7313 ; AVX2-SLOW-NEXT:    vpermilps $0, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Folded Reload
7314 ; AVX2-SLOW-NEXT:    # ymm6 = mem[0,0,0,0,4,4,4,4]
7315 ; AVX2-SLOW-NEXT:    vpermilps $224, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Folded Reload
7316 ; AVX2-SLOW-NEXT:    # ymm8 = mem[0,0,2,3,4,4,6,7]
7317 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm6 = ymm8[0,1,2],ymm6[3],ymm8[4,5,6],ymm6[7]
7318 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm6 = ymm6[0,1,0,3]
7319 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm6[5,6,7]
7320 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7321 ; AVX2-SLOW-NEXT:    vmovaps 768(%rdi), %xmm0
7322 ; AVX2-SLOW-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7323 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm6 = xmm0[2,3,2,3]
7324 ; AVX2-SLOW-NEXT:    vpermilps $224, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Folded Reload
7325 ; AVX2-SLOW-NEXT:    # ymm8 = mem[0,0,2,3,4,4,6,7]
7326 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0],ymm8[1,2,3],ymm6[4],ymm8[5,6,7]
7327 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7328 ; AVX2-SLOW-NEXT:    vblendps $204, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm8 # 32-byte Folded Reload
7329 ; AVX2-SLOW-NEXT:    # ymm8 = ymm0[0,1],mem[2,3],ymm0[4,5],mem[6,7]
7330 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm8 = ymm8[2,0,2,3,6,4,6,7]
7331 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm8 = ymm8[0,2,0,3]
7332 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm6 = ymm6[0,3,2,3]
7333 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2],ymm8[3,4,5,6,7]
7334 ; AVX2-SLOW-NEXT:    vpermilps $0, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Folded Reload
7335 ; AVX2-SLOW-NEXT:    # ymm8 = mem[0,0,0,0,4,4,4,4]
7336 ; AVX2-SLOW-NEXT:    vpermilps $224, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Folded Reload
7337 ; AVX2-SLOW-NEXT:    # ymm10 = mem[0,0,2,3,4,4,6,7]
7338 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm8 = ymm10[0,1,2],ymm8[3],ymm10[4,5,6],ymm8[7]
7339 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm8 = ymm8[0,1,0,3]
7340 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm6[0,1,2,3,4],ymm8[5,6,7]
7341 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7342 ; AVX2-SLOW-NEXT:    vmovaps 1152(%rdi), %xmm12
7343 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm8 = xmm12[2,3,2,3]
7344 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
7345 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm10 = ymm6[0,0,2,3,4,4,6,7]
7346 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0],ymm10[1,2,3],ymm8[4],ymm10[5,6,7]
7347 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7348 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
7349 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm10 = ymm9[0,1],ymm0[2,3],ymm9[4,5],ymm0[6,7]
7350 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm10 = ymm10[2,0,2,3,6,4,6,7]
7351 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm10 = ymm10[0,2,0,3]
7352 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm8 = ymm8[0,3,2,3]
7353 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2],ymm10[3,4,5,6,7]
7354 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
7355 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm10 = ymm4[0,0,0,0,4,4,4,4]
7356 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
7357 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm11 = ymm7[0,0,2,3,4,4,6,7]
7358 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm10 = ymm11[0,1,2],ymm10[3],ymm11[4,5,6],ymm10[7]
7359 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm10 = ymm10[0,1,0,3]
7360 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3,4],ymm10[5,6,7]
7361 ; AVX2-SLOW-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7362 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm5 = xmm5[3,3,3,3]
7363 ; AVX2-SLOW-NEXT:    vpermilps $244, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Folded Reload
7364 ; AVX2-SLOW-NEXT:    # ymm8 = mem[0,1,3,3,4,5,7,7]
7365 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0],ymm8[1,2,3],ymm5[4],ymm8[5,6,7]
7366 ; AVX2-SLOW-NEXT:    vpermilps $255, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Folded Reload
7367 ; AVX2-SLOW-NEXT:    # ymm8 = mem[3,3,3,3,7,7,7,7]
7368 ; AVX2-SLOW-NEXT:    vblendps $34, (%rsp), %ymm8, %ymm8 # 32-byte Folded Reload
7369 ; AVX2-SLOW-NEXT:    # ymm8 = ymm8[0],mem[1],ymm8[2,3,4],mem[5],ymm8[6,7]
7370 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm8 = ymm8[0,2,0,3]
7371 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm5 = ymm5[0,3,2,3]
7372 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2],ymm8[3,4,5,6,7]
7373 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm8 = ymm3[0,1,0,1,4,5,4,5]
7374 ; AVX2-SLOW-NEXT:    vpermilps $244, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Folded Reload
7375 ; AVX2-SLOW-NEXT:    # ymm10 = mem[0,1,3,3,4,5,7,7]
7376 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm8 = ymm10[0,1,2],ymm8[3],ymm10[4,5,6],ymm8[7]
7377 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm8 = ymm8[0,1,0,3]
7378 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm3 = ymm5[0,1,2,3,4],ymm8[5,6,7]
7379 ; AVX2-SLOW-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7380 ; AVX2-SLOW-NEXT:    vpermilps $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload
7381 ; AVX2-SLOW-NEXT:    # xmm3 = mem[3,3,3,3]
7382 ; AVX2-SLOW-NEXT:    vpermilps $244, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Folded Reload
7383 ; AVX2-SLOW-NEXT:    # ymm5 = mem[0,1,3,3,4,5,7,7]
7384 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0],ymm5[1,2,3],ymm3[4],ymm5[5,6,7]
7385 ; AVX2-SLOW-NEXT:    vpermilps $255, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Folded Reload
7386 ; AVX2-SLOW-NEXT:    # ymm5 = mem[3,3,3,3,7,7,7,7]
7387 ; AVX2-SLOW-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm5 # 32-byte Folded Reload
7388 ; AVX2-SLOW-NEXT:    # ymm5 = ymm5[0],mem[1],ymm5[2,3,4],mem[5],ymm5[6,7]
7389 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm5 = ymm5[0,2,0,3]
7390 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,3,2,3]
7391 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2],ymm5[3,4,5,6,7]
7392 ; AVX2-SLOW-NEXT:    vpermilps $68, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Folded Reload
7393 ; AVX2-SLOW-NEXT:    # ymm5 = mem[0,1,0,1,4,5,4,5]
7394 ; AVX2-SLOW-NEXT:    vpermilps $244, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Folded Reload
7395 ; AVX2-SLOW-NEXT:    # ymm8 = mem[0,1,3,3,4,5,7,7]
7396 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm5 = ymm8[0,1,2],ymm5[3],ymm8[4,5,6],ymm5[7]
7397 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm5 = ymm5[0,1,0,3]
7398 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4],ymm5[5,6,7]
7399 ; AVX2-SLOW-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7400 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[3,3,3,3]
7401 ; AVX2-SLOW-NEXT:    vpermilps $244, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Folded Reload
7402 ; AVX2-SLOW-NEXT:    # ymm3 = mem[0,1,3,3,4,5,7,7]
7403 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0],ymm3[1,2,3],ymm2[4],ymm3[5,6,7]
7404 ; AVX2-SLOW-NEXT:    vpermilps $255, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Folded Reload
7405 ; AVX2-SLOW-NEXT:    # ymm3 = mem[3,3,3,3,7,7,7,7]
7406 ; AVX2-SLOW-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
7407 ; AVX2-SLOW-NEXT:    # ymm3 = ymm3[0],mem[1],ymm3[2,3,4],mem[5],ymm3[6,7]
7408 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,2,0,3]
7409 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,3,2,3]
7410 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2],ymm3[3,4,5,6,7]
7411 ; AVX2-SLOW-NEXT:    vpermilps $68, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Folded Reload
7412 ; AVX2-SLOW-NEXT:    # ymm3 = mem[0,1,0,1,4,5,4,5]
7413 ; AVX2-SLOW-NEXT:    vpermilps $244, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Folded Reload
7414 ; AVX2-SLOW-NEXT:    # ymm5 = mem[0,1,3,3,4,5,7,7]
7415 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm3 = ymm5[0,1,2],ymm3[3],ymm5[4,5,6],ymm3[7]
7416 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,1,0,3]
7417 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm3[5,6,7]
7418 ; AVX2-SLOW-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7419 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[3,3,3,3]
7420 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm2 = ymm15[0,1,3,3,4,5,7,7]
7421 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm2[1,2,3],ymm1[4],ymm2[5,6,7]
7422 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm2 = ymm13[3,3,3,3,7,7,7,7]
7423 ; AVX2-SLOW-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
7424 ; AVX2-SLOW-NEXT:    # ymm2 = ymm2[0],mem[1],ymm2[2,3,4],mem[5],ymm2[6,7]
7425 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,2,0,3]
7426 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,3,2,3]
7427 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
7428 ; AVX2-SLOW-NEXT:    vpermilps $68, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Folded Reload
7429 ; AVX2-SLOW-NEXT:    # ymm2 = mem[0,1,0,1,4,5,4,5]
7430 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm3 = ymm14[0,1,3,3,4,5,7,7]
7431 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2],ymm2[3],ymm3[4,5,6],ymm2[7]
7432 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,1,0,3]
7433 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
7434 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7435 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm1 = xmm12[3,3,3,3]
7436 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm2 = ymm6[0,1,3,3,4,5,7,7]
7437 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm2[1,2,3],ymm1[4],ymm2[5,6,7]
7438 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm2 = ymm0[3,3,3,3,7,7,7,7]
7439 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0],ymm9[1],ymm2[2,3,4],ymm9[5],ymm2[6,7]
7440 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,2,0,3]
7441 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,3,2,3]
7442 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
7443 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm2 = ymm4[0,1,0,1,4,5,4,5]
7444 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm3 = ymm7[0,1,3,3,4,5,7,7]
7445 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2],ymm2[3],ymm3[4,5,6],ymm2[7]
7446 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,1,0,3]
7447 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4],ymm2[5,6,7]
7448 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7449 ; AVX2-SLOW-NEXT:    vpermilps $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
7450 ; AVX2-SLOW-NEXT:    # xmm0 = mem[3,3,3,3]
7451 ; AVX2-SLOW-NEXT:    vpermilps $244, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Folded Reload
7452 ; AVX2-SLOW-NEXT:    # ymm1 = mem[0,1,3,3,4,5,7,7]
7453 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3],ymm0[4],ymm1[5,6,7]
7454 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
7455 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm13[3,3,3,3,7,7,7,7]
7456 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
7457 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm12[1],ymm1[2,3,4],ymm12[5],ymm1[6,7]
7458 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,0,3]
7459 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,3,2,3]
7460 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
7461 ; AVX2-SLOW-NEXT:    vpermilps $68, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Folded Reload
7462 ; AVX2-SLOW-NEXT:    # ymm1 = mem[0,1,0,1,4,5,4,5]
7463 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload
7464 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm2 = ymm15[0,1,3,3,4,5,7,7]
7465 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]
7466 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,1,0,3]
7467 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
7468 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7469 ; AVX2-SLOW-NEXT:    vpermilps $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
7470 ; AVX2-SLOW-NEXT:    # xmm0 = mem[3,3,3,3]
7471 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload
7472 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm11[0,1,3,3,4,5,7,7]
7473 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3],ymm0[4],ymm1[5,6,7]
7474 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
7475 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm8[3,3,3,3,7,7,7,7]
7476 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
7477 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm7[1],ymm1[2,3,4],ymm7[5],ymm1[6,7]
7478 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,0,3]
7479 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,3,2,3]
7480 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
7481 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
7482 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm10[0,1,0,1,4,5,4,5]
7483 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
7484 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm2 = ymm9[0,1,3,3,4,5,7,7]
7485 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]
7486 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,1,0,3]
7487 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
7488 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7489 ; AVX2-SLOW-NEXT:    vpermilps $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
7490 ; AVX2-SLOW-NEXT:    # xmm0 = mem[3,3,3,3]
7491 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
7492 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm6[0,1,3,3,4,5,7,7]
7493 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3],ymm0[4],ymm1[5,6,7]
7494 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
7495 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm3[3,3,3,3,7,7,7,7]
7496 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
7497 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm14[1],ymm1[2,3,4],ymm14[5],ymm1[6,7]
7498 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,0,3]
7499 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,3,2,3]
7500 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
7501 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
7502 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm5[0,1,0,1,4,5,4,5]
7503 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
7504 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm2 = ymm4[0,1,3,3,4,5,7,7]
7505 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]
7506 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,1,0,3]
7507 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
7508 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7509 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm14[0,1,2,3],ymm3[4,5,6,7]
7510 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7511 ; AVX2-SLOW-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm2 # 32-byte Folded Reload
7512 ; AVX2-SLOW-NEXT:    # ymm2 = ymm6[0,1,2,3],mem[4,5,6,7]
7513 ; AVX2-SLOW-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7514 ; AVX2-SLOW-NEXT:    vmovaps 80(%rdi), %xmm0
7515 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7516 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3],ymm1[4,5,6,7]
7517 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[0,1,0,2,4,5,4,6]
7518 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
7519 ; AVX2-SLOW-NEXT:    vpermps %ymm2, %ymm14, %ymm1
7520 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm0[2,3,4,5,6,7]
7521 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm5[0,1],ymm4[2,3],ymm5[4,5,6,7]
7522 ; AVX2-SLOW-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7523 ; AVX2-SLOW-NEXT:    vbroadcastf128 {{.*#+}} ymm0 = [0,2,0,6,0,2,0,6]
7524 ; AVX2-SLOW-NEXT:    # ymm0 = mem[0,1,0,1]
7525 ; AVX2-SLOW-NEXT:    vpermps %ymm2, %ymm0, %ymm2
7526 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
7527 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7528 ; AVX2-SLOW-NEXT:    vmovups (%rsp), %ymm1 # 32-byte Reload
7529 ; AVX2-SLOW-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
7530 ; AVX2-SLOW-NEXT:    # ymm2 = ymm1[0,1,2,3],mem[4,5,6,7]
7531 ; AVX2-SLOW-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7532 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7533 ; AVX2-SLOW-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm3 # 32-byte Folded Reload
7534 ; AVX2-SLOW-NEXT:    # ymm3 = ymm1[0,1,2,3],mem[4,5,6,7]
7535 ; AVX2-SLOW-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7536 ; AVX2-SLOW-NEXT:    vmovaps 272(%rdi), %xmm1
7537 ; AVX2-SLOW-NEXT:    vmovups %ymm1, (%rsp) # 32-byte Spill
7538 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3],ymm2[4,5,6,7]
7539 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,1,0,2,4,5,4,6]
7540 ; AVX2-SLOW-NEXT:    vpermps %ymm3, %ymm14, %ymm2
7541 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
7542 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
7543 ; AVX2-SLOW-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
7544 ; AVX2-SLOW-NEXT:    # ymm2 = mem[0,1],ymm2[2,3],mem[4,5,6,7]
7545 ; AVX2-SLOW-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7546 ; AVX2-SLOW-NEXT:    vpermps %ymm2, %ymm0, %ymm2
7547 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
7548 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7549 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm7[0,1,2,3],ymm8[4,5,6,7]
7550 ; AVX2-SLOW-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7551 ; AVX2-SLOW-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm3 # 32-byte Folded Reload
7552 ; AVX2-SLOW-NEXT:    # ymm3 = ymm11[0,1,2,3],mem[4,5,6,7]
7553 ; AVX2-SLOW-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7554 ; AVX2-SLOW-NEXT:    vmovaps 464(%rdi), %xmm1
7555 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7556 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3],ymm2[4,5,6,7]
7557 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,1,0,2,4,5,4,6]
7558 ; AVX2-SLOW-NEXT:    vpermps %ymm3, %ymm14, %ymm2
7559 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
7560 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm10[0,1],ymm9[2,3],ymm10[4,5,6,7]
7561 ; AVX2-SLOW-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7562 ; AVX2-SLOW-NEXT:    vpermps %ymm2, %ymm0, %ymm2
7563 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
7564 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7565 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7566 ; AVX2-SLOW-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
7567 ; AVX2-SLOW-NEXT:    # ymm2 = ymm1[0,1,2,3],mem[4,5,6,7]
7568 ; AVX2-SLOW-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7569 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7570 ; AVX2-SLOW-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm3 # 32-byte Folded Reload
7571 ; AVX2-SLOW-NEXT:    # ymm3 = ymm1[0,1,2,3],mem[4,5,6,7]
7572 ; AVX2-SLOW-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7573 ; AVX2-SLOW-NEXT:    vmovaps 656(%rdi), %xmm1
7574 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7575 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3],ymm2[4,5,6,7]
7576 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,1,0,2,4,5,4,6]
7577 ; AVX2-SLOW-NEXT:    vpermps %ymm3, %ymm14, %ymm2
7578 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
7579 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
7580 ; AVX2-SLOW-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
7581 ; AVX2-SLOW-NEXT:    # ymm2 = mem[0,1],ymm2[2,3],mem[4,5,6,7]
7582 ; AVX2-SLOW-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7583 ; AVX2-SLOW-NEXT:    vpermps %ymm2, %ymm0, %ymm2
7584 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
7585 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7586 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm12[0,1,2,3],ymm13[4,5,6,7]
7587 ; AVX2-SLOW-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7588 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7589 ; AVX2-SLOW-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm3 # 32-byte Folded Reload
7590 ; AVX2-SLOW-NEXT:    # ymm3 = ymm1[0,1,2,3],mem[4,5,6,7]
7591 ; AVX2-SLOW-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7592 ; AVX2-SLOW-NEXT:    vmovaps 848(%rdi), %xmm1
7593 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7594 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3],ymm2[4,5,6,7]
7595 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,1,0,2,4,5,4,6]
7596 ; AVX2-SLOW-NEXT:    vpermps %ymm3, %ymm14, %ymm2
7597 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
7598 ; AVX2-SLOW-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm2 # 32-byte Folded Reload
7599 ; AVX2-SLOW-NEXT:    # ymm2 = mem[0,1],ymm15[2,3],mem[4,5,6,7]
7600 ; AVX2-SLOW-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7601 ; AVX2-SLOW-NEXT:    vpermps %ymm2, %ymm0, %ymm2
7602 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
7603 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7604 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7605 ; AVX2-SLOW-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm13 # 32-byte Folded Reload
7606 ; AVX2-SLOW-NEXT:    # ymm13 = ymm1[0,1,2,3],mem[4,5,6,7]
7607 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7608 ; AVX2-SLOW-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm12 # 32-byte Folded Reload
7609 ; AVX2-SLOW-NEXT:    # ymm12 = ymm1[0,1,2,3],mem[4,5,6,7]
7610 ; AVX2-SLOW-NEXT:    vmovaps 1040(%rdi), %xmm11
7611 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm13[0,1],ymm11[2,3],ymm13[4,5,6,7]
7612 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,1,0,2,4,5,4,6]
7613 ; AVX2-SLOW-NEXT:    vpermps %ymm12, %ymm14, %ymm2
7614 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
7615 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
7616 ; AVX2-SLOW-NEXT:    vblendps $12, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm10 # 32-byte Folded Reload
7617 ; AVX2-SLOW-NEXT:    # ymm10 = ymm2[0,1],mem[2,3],ymm2[4,5,6,7]
7618 ; AVX2-SLOW-NEXT:    vpermps %ymm10, %ymm0, %ymm2
7619 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
7620 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7621 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7622 ; AVX2-SLOW-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm8 # 32-byte Folded Reload
7623 ; AVX2-SLOW-NEXT:    # ymm8 = ymm1[0,1,2,3],mem[4,5,6,7]
7624 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7625 ; AVX2-SLOW-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm7 # 32-byte Folded Reload
7626 ; AVX2-SLOW-NEXT:    # ymm7 = ymm1[0,1,2,3],mem[4,5,6,7]
7627 ; AVX2-SLOW-NEXT:    vmovaps 1232(%rdi), %xmm6
7628 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm8[0,1],ymm6[2,3],ymm8[4,5,6,7]
7629 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,1,0,2,4,5,4,6]
7630 ; AVX2-SLOW-NEXT:    vpermps %ymm7, %ymm14, %ymm2
7631 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
7632 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
7633 ; AVX2-SLOW-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm5 # 32-byte Folded Reload
7634 ; AVX2-SLOW-NEXT:    # ymm5 = mem[0,1],ymm2[2,3],mem[4,5,6,7]
7635 ; AVX2-SLOW-NEXT:    vpermps %ymm5, %ymm0, %ymm2
7636 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
7637 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7638 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7639 ; AVX2-SLOW-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm4 # 32-byte Folded Reload
7640 ; AVX2-SLOW-NEXT:    # ymm4 = ymm1[0,1,2,3],mem[4,5,6,7]
7641 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7642 ; AVX2-SLOW-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm3 # 32-byte Folded Reload
7643 ; AVX2-SLOW-NEXT:    # ymm3 = ymm1[0,1,2,3],mem[4,5,6,7]
7644 ; AVX2-SLOW-NEXT:    vmovaps 1424(%rdi), %xmm2
7645 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm4[0,1],ymm2[2,3],ymm4[4,5,6,7]
7646 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,1,0,2,4,5,4,6]
7647 ; AVX2-SLOW-NEXT:    vpermps %ymm3, %ymm14, %ymm15
7648 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm15 = ymm15[0,1],ymm1[2,3,4,5,6,7]
7649 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7650 ; AVX2-SLOW-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
7651 ; AVX2-SLOW-NEXT:    # ymm1 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
7652 ; AVX2-SLOW-NEXT:    vpermps %ymm1, %ymm0, %ymm0
7653 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm15[0,1,2,3,4],ymm0[5,6,7]
7654 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7655 ; AVX2-SLOW-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Folded Reload
7656 ; AVX2-SLOW-NEXT:    # ymm0 = mem[1,1,1,1,5,5,5,5]
7657 ; AVX2-SLOW-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
7658 ; AVX2-SLOW-NEXT:    # ymm0 = ymm0[0,1,2],mem[3],ymm0[4,5,6,7]
7659 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
7660 ; AVX2-SLOW-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm15 # 32-byte Folded Reload
7661 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm15 = ymm15[0,1],ymm0[2,3,4,5,6,7]
7662 ; AVX2-SLOW-NEXT:    vbroadcastf128 {{.*#+}} ymm0 = [0,3,1,7,0,3,1,7]
7663 ; AVX2-SLOW-NEXT:    # ymm0 = mem[0,1,0,1]
7664 ; AVX2-SLOW-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm14 # 32-byte Folded Reload
7665 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm14 = ymm15[0,1,2,3,4],ymm14[5,6,7]
7666 ; AVX2-SLOW-NEXT:    vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7667 ; AVX2-SLOW-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Folded Reload
7668 ; AVX2-SLOW-NEXT:    # ymm14 = mem[1,1,1,1,5,5,5,5]
7669 ; AVX2-SLOW-NEXT:    vblendps $8, (%rsp), %ymm14, %ymm14 # 32-byte Folded Reload
7670 ; AVX2-SLOW-NEXT:    # ymm14 = ymm14[0,1,2],mem[3],ymm14[4,5,6,7]
7671 ; AVX2-SLOW-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm15 # 32-byte Folded Reload
7672 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm14 = ymm15[0,1],ymm14[2,3,4,5,6,7]
7673 ; AVX2-SLOW-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm15 # 32-byte Folded Reload
7674 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3,4],ymm15[5,6,7]
7675 ; AVX2-SLOW-NEXT:    vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7676 ; AVX2-SLOW-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Folded Reload
7677 ; AVX2-SLOW-NEXT:    # ymm14 = mem[1,1,1,1,5,5,5,5]
7678 ; AVX2-SLOW-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
7679 ; AVX2-SLOW-NEXT:    # ymm14 = ymm14[0,1,2],mem[3],ymm14[4,5,6,7]
7680 ; AVX2-SLOW-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm15 # 32-byte Folded Reload
7681 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm14 = ymm15[0,1],ymm14[2,3,4,5,6,7]
7682 ; AVX2-SLOW-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm15 # 32-byte Folded Reload
7683 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3,4],ymm15[5,6,7]
7684 ; AVX2-SLOW-NEXT:    vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7685 ; AVX2-SLOW-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Folded Reload
7686 ; AVX2-SLOW-NEXT:    # ymm14 = mem[1,1,1,1,5,5,5,5]
7687 ; AVX2-SLOW-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
7688 ; AVX2-SLOW-NEXT:    # ymm14 = ymm14[0,1,2],mem[3],ymm14[4,5,6,7]
7689 ; AVX2-SLOW-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm15 # 32-byte Folded Reload
7690 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm14 = ymm15[0,1],ymm14[2,3,4,5,6,7]
7691 ; AVX2-SLOW-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm15 # 32-byte Folded Reload
7692 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3,4],ymm15[5,6,7]
7693 ; AVX2-SLOW-NEXT:    vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7694 ; AVX2-SLOW-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Folded Reload
7695 ; AVX2-SLOW-NEXT:    # ymm14 = mem[1,1,1,1,5,5,5,5]
7696 ; AVX2-SLOW-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
7697 ; AVX2-SLOW-NEXT:    # ymm14 = ymm14[0,1,2],mem[3],ymm14[4,5,6,7]
7698 ; AVX2-SLOW-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm15 # 32-byte Folded Reload
7699 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm14 = ymm15[0,1],ymm14[2,3,4,5,6,7]
7700 ; AVX2-SLOW-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm15 # 32-byte Folded Reload
7701 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3,4],ymm15[5,6,7]
7702 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm13 = ymm13[1,1,1,1,5,5,5,5]
7703 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm11 = ymm13[0,1,2],ymm11[3],ymm13[4,5,6,7]
7704 ; AVX2-SLOW-NEXT:    vpermps %ymm12, %ymm9, %ymm12
7705 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm11 = ymm12[0,1],ymm11[2,3,4,5,6,7]
7706 ; AVX2-SLOW-NEXT:    vpermps %ymm10, %ymm0, %ymm10
7707 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm10 = ymm11[0,1,2,3,4],ymm10[5,6,7]
7708 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm8 = ymm8[1,1,1,1,5,5,5,5]
7709 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm6 = ymm8[0,1,2],ymm6[3],ymm8[4,5,6,7]
7710 ; AVX2-SLOW-NEXT:    vpermps %ymm7, %ymm9, %ymm7
7711 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1],ymm6[2,3,4,5,6,7]
7712 ; AVX2-SLOW-NEXT:    vpermps %ymm5, %ymm0, %ymm5
7713 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2,3,4],ymm5[5,6,7]
7714 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[1,1,1,1,5,5,5,5]
7715 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2],ymm2[3],ymm4[4,5,6,7]
7716 ; AVX2-SLOW-NEXT:    vpermps %ymm3, %ymm9, %ymm3
7717 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1],ymm2[2,3,4,5,6,7]
7718 ; AVX2-SLOW-NEXT:    vpermps %ymm1, %ymm0, %ymm0
7719 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3,4],ymm0[5,6,7]
7720 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7721 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 192(%rsi)
7722 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7723 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 128(%rsi)
7724 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7725 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 64(%rsi)
7726 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7727 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, (%rsi)
7728 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7729 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 224(%rsi)
7730 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7731 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 160(%rsi)
7732 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7733 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 96(%rsi)
7734 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7735 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 32(%rsi)
7736 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7737 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 192(%rdx)
7738 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7739 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 128(%rdx)
7740 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7741 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 64(%rdx)
7742 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7743 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, (%rdx)
7744 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7745 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 224(%rdx)
7746 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7747 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 160(%rdx)
7748 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7749 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 96(%rdx)
7750 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7751 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 32(%rdx)
7752 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7753 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 192(%rcx)
7754 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7755 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 128(%rcx)
7756 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7757 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 64(%rcx)
7758 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7759 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, (%rcx)
7760 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7761 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 224(%rcx)
7762 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7763 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 160(%rcx)
7764 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7765 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 96(%rcx)
7766 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7767 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 32(%rcx)
7768 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7769 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, (%r8)
7770 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7771 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 64(%r8)
7772 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7773 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 128(%r8)
7774 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7775 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 192(%r8)
7776 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7777 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 224(%r8)
7778 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7779 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 160(%r8)
7780 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7781 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 96(%r8)
7782 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7783 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 32(%r8)
7784 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7785 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 224(%r9)
7786 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7787 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 192(%r9)
7788 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7789 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 160(%r9)
7790 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7791 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 128(%r9)
7792 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7793 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 96(%r9)
7794 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7795 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 64(%r9)
7796 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7797 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, 32(%r9)
7798 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7799 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, (%r9)
7800 ; AVX2-SLOW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
7801 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 224(%rax)
7802 ; AVX2-SLOW-NEXT:    vmovaps %ymm5, 192(%rax)
7803 ; AVX2-SLOW-NEXT:    vmovaps %ymm10, 160(%rax)
7804 ; AVX2-SLOW-NEXT:    vmovaps %ymm14, 128(%rax)
7805 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7806 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 96(%rax)
7807 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7808 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 64(%rax)
7809 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7810 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 32(%rax)
7811 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7812 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, (%rax)
7813 ; AVX2-SLOW-NEXT:    addq $2536, %rsp # imm = 0x9E8
7814 ; AVX2-SLOW-NEXT:    vzeroupper
7815 ; AVX2-SLOW-NEXT:    retq
7817 ; AVX2-FAST-LABEL: load_i32_stride6_vf64:
7818 ; AVX2-FAST:       # %bb.0:
7819 ; AVX2-FAST-NEXT:    subq $2504, %rsp # imm = 0x9C8
7820 ; AVX2-FAST-NEXT:    vmovaps 672(%rdi), %ymm4
7821 ; AVX2-FAST-NEXT:    vmovaps 640(%rdi), %ymm5
7822 ; AVX2-FAST-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7823 ; AVX2-FAST-NEXT:    vmovaps 608(%rdi), %ymm3
7824 ; AVX2-FAST-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7825 ; AVX2-FAST-NEXT:    vmovaps 320(%rdi), %ymm6
7826 ; AVX2-FAST-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7827 ; AVX2-FAST-NEXT:    vmovaps 352(%rdi), %ymm7
7828 ; AVX2-FAST-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7829 ; AVX2-FAST-NEXT:    vmovaps 288(%rdi), %ymm8
7830 ; AVX2-FAST-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7831 ; AVX2-FAST-NEXT:    vmovaps 256(%rdi), %ymm9
7832 ; AVX2-FAST-NEXT:    vmovups %ymm9, (%rsp) # 32-byte Spill
7833 ; AVX2-FAST-NEXT:    vmovaps 224(%rdi), %ymm1
7834 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7835 ; AVX2-FAST-NEXT:    vmovaps 192(%rdi), %ymm2
7836 ; AVX2-FAST-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7837 ; AVX2-FAST-NEXT:    vmovaps {{.*#+}} xmm0 = [0,6,4,u]
7838 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm14 = ymm2[0,1,2,3],ymm1[4,5],ymm2[6,7]
7839 ; AVX2-FAST-NEXT:    vpermps %ymm14, %ymm0, %ymm1
7840 ; AVX2-FAST-NEXT:    vperm2f128 {{.*#+}} ymm2 = ymm9[0,1],ymm8[0,1]
7841 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm15 = ymm2[0,1,2,3,4,5],ymm8[6,7]
7842 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm2 = ymm15[0,2,2,2,4,6,6,6]
7843 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
7844 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm7[0,1,2,3],ymm6[4,5,6,7]
7845 ; AVX2-FAST-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7846 ; AVX2-FAST-NEXT:    vbroadcastsd {{.*#+}} ymm13 = [4,2,4,2,4,2,4,2]
7847 ; AVX2-FAST-NEXT:    vpermps %ymm2, %ymm13, %ymm2
7848 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
7849 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7850 ; AVX2-FAST-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7851 ; AVX2-FAST-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm5[0,1],ymm4[0,1]
7852 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm4 = ymm1[0,1,2,3,4,5],ymm4[6,7]
7853 ; AVX2-FAST-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7854 ; AVX2-FAST-NEXT:    vmovaps 576(%rdi), %ymm1
7855 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7856 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5],ymm1[6,7]
7857 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7858 ; AVX2-FAST-NEXT:    vpermps %ymm1, %ymm0, %ymm1
7859 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm2 = ymm4[0,2,2,2,4,6,6,6]
7860 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
7861 ; AVX2-FAST-NEXT:    vmovaps 704(%rdi), %ymm2
7862 ; AVX2-FAST-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7863 ; AVX2-FAST-NEXT:    vmovaps 736(%rdi), %ymm3
7864 ; AVX2-FAST-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7865 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
7866 ; AVX2-FAST-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7867 ; AVX2-FAST-NEXT:    vpermps %ymm2, %ymm13, %ymm2
7868 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
7869 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7870 ; AVX2-FAST-NEXT:    vmovaps 1056(%rdi), %ymm2
7871 ; AVX2-FAST-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7872 ; AVX2-FAST-NEXT:    vmovaps 1024(%rdi), %ymm1
7873 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7874 ; AVX2-FAST-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm1[0,1],ymm2[0,1]
7875 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm3 = ymm1[0,1,2,3,4,5],ymm2[6,7]
7876 ; AVX2-FAST-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7877 ; AVX2-FAST-NEXT:    vmovaps 992(%rdi), %ymm1
7878 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7879 ; AVX2-FAST-NEXT:    vmovaps 960(%rdi), %ymm2
7880 ; AVX2-FAST-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7881 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5],ymm2[6,7]
7882 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7883 ; AVX2-FAST-NEXT:    vpermps %ymm1, %ymm0, %ymm1
7884 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm2 = ymm3[0,2,2,2,4,6,6,6]
7885 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
7886 ; AVX2-FAST-NEXT:    vmovaps 1088(%rdi), %ymm2
7887 ; AVX2-FAST-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7888 ; AVX2-FAST-NEXT:    vmovaps 1120(%rdi), %ymm3
7889 ; AVX2-FAST-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7890 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
7891 ; AVX2-FAST-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7892 ; AVX2-FAST-NEXT:    vpermps %ymm2, %ymm13, %ymm2
7893 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
7894 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7895 ; AVX2-FAST-NEXT:    vmovaps 1440(%rdi), %ymm2
7896 ; AVX2-FAST-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7897 ; AVX2-FAST-NEXT:    vmovaps 1408(%rdi), %ymm1
7898 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7899 ; AVX2-FAST-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm1[0,1],ymm2[0,1]
7900 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm3 = ymm1[0,1,2,3,4,5],ymm2[6,7]
7901 ; AVX2-FAST-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7902 ; AVX2-FAST-NEXT:    vmovaps 1376(%rdi), %ymm1
7903 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7904 ; AVX2-FAST-NEXT:    vmovaps 1344(%rdi), %ymm2
7905 ; AVX2-FAST-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7906 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5],ymm2[6,7]
7907 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7908 ; AVX2-FAST-NEXT:    vpermps %ymm1, %ymm0, %ymm1
7909 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm2 = ymm3[0,2,2,2,4,6,6,6]
7910 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
7911 ; AVX2-FAST-NEXT:    vmovaps 1472(%rdi), %ymm2
7912 ; AVX2-FAST-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7913 ; AVX2-FAST-NEXT:    vmovaps 1504(%rdi), %ymm3
7914 ; AVX2-FAST-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7915 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
7916 ; AVX2-FAST-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7917 ; AVX2-FAST-NEXT:    vpermps %ymm2, %ymm13, %ymm2
7918 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
7919 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7920 ; AVX2-FAST-NEXT:    vmovaps 96(%rdi), %ymm2
7921 ; AVX2-FAST-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7922 ; AVX2-FAST-NEXT:    vmovaps 64(%rdi), %ymm1
7923 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7924 ; AVX2-FAST-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm1[0,1],ymm2[0,1]
7925 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm3 = ymm1[0,1,2,3,4,5],ymm2[6,7]
7926 ; AVX2-FAST-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7927 ; AVX2-FAST-NEXT:    vmovaps (%rdi), %ymm1
7928 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7929 ; AVX2-FAST-NEXT:    vmovaps 32(%rdi), %ymm2
7930 ; AVX2-FAST-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7931 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm12 = ymm1[0,1,2,3],ymm2[4,5],ymm1[6,7]
7932 ; AVX2-FAST-NEXT:    vpermps %ymm12, %ymm0, %ymm1
7933 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm2 = ymm3[0,2,2,2,4,6,6,6]
7934 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
7935 ; AVX2-FAST-NEXT:    vmovaps 128(%rdi), %ymm2
7936 ; AVX2-FAST-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7937 ; AVX2-FAST-NEXT:    vmovaps 160(%rdi), %ymm3
7938 ; AVX2-FAST-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7939 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm11 = ymm3[0,1,2,3],ymm2[4,5,6,7]
7940 ; AVX2-FAST-NEXT:    vpermps %ymm11, %ymm13, %ymm2
7941 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
7942 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7943 ; AVX2-FAST-NEXT:    vmovaps 480(%rdi), %ymm2
7944 ; AVX2-FAST-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7945 ; AVX2-FAST-NEXT:    vmovaps 448(%rdi), %ymm1
7946 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7947 ; AVX2-FAST-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm1[0,1],ymm2[0,1]
7948 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm10 = ymm1[0,1,2,3,4,5],ymm2[6,7]
7949 ; AVX2-FAST-NEXT:    vmovaps 416(%rdi), %ymm1
7950 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7951 ; AVX2-FAST-NEXT:    vmovaps 384(%rdi), %ymm2
7952 ; AVX2-FAST-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7953 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm9 = ymm2[0,1,2,3],ymm1[4,5],ymm2[6,7]
7954 ; AVX2-FAST-NEXT:    vpermps %ymm9, %ymm0, %ymm1
7955 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm2 = ymm10[0,2,2,2,4,6,6,6]
7956 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
7957 ; AVX2-FAST-NEXT:    vmovaps 512(%rdi), %ymm2
7958 ; AVX2-FAST-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7959 ; AVX2-FAST-NEXT:    vmovaps 544(%rdi), %ymm3
7960 ; AVX2-FAST-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7961 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm8 = ymm3[0,1,2,3],ymm2[4,5,6,7]
7962 ; AVX2-FAST-NEXT:    vpermps %ymm8, %ymm13, %ymm2
7963 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
7964 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7965 ; AVX2-FAST-NEXT:    vmovaps 864(%rdi), %ymm2
7966 ; AVX2-FAST-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7967 ; AVX2-FAST-NEXT:    vmovaps 832(%rdi), %ymm1
7968 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7969 ; AVX2-FAST-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm1[0,1],ymm2[0,1]
7970 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm6 = ymm1[0,1,2,3,4,5],ymm2[6,7]
7971 ; AVX2-FAST-NEXT:    vmovaps 800(%rdi), %ymm1
7972 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7973 ; AVX2-FAST-NEXT:    vmovaps 768(%rdi), %ymm2
7974 ; AVX2-FAST-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7975 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm5 = ymm2[0,1,2,3],ymm1[4,5],ymm2[6,7]
7976 ; AVX2-FAST-NEXT:    vpermps %ymm5, %ymm0, %ymm1
7977 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm2 = ymm6[0,2,2,2,4,6,6,6]
7978 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
7979 ; AVX2-FAST-NEXT:    vmovaps 896(%rdi), %ymm2
7980 ; AVX2-FAST-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7981 ; AVX2-FAST-NEXT:    vmovaps 928(%rdi), %ymm3
7982 ; AVX2-FAST-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7983 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm4 = ymm3[0,1,2,3],ymm2[4,5,6,7]
7984 ; AVX2-FAST-NEXT:    vpermps %ymm4, %ymm13, %ymm2
7985 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
7986 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7987 ; AVX2-FAST-NEXT:    vmovaps 1184(%rdi), %ymm1
7988 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7989 ; AVX2-FAST-NEXT:    vmovaps 1152(%rdi), %ymm2
7990 ; AVX2-FAST-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7991 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm3 = ymm2[0,1,2,3],ymm1[4,5],ymm2[6,7]
7992 ; AVX2-FAST-NEXT:    vpermps %ymm3, %ymm0, %ymm0
7993 ; AVX2-FAST-NEXT:    vmovaps 1248(%rdi), %ymm2
7994 ; AVX2-FAST-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7995 ; AVX2-FAST-NEXT:    vmovaps 1216(%rdi), %ymm1
7996 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7997 ; AVX2-FAST-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm1[0,1],ymm2[0,1]
7998 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm1[0,1,2,3,4,5],ymm2[6,7]
7999 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm2[0,2,2,2,4,6,6,6]
8000 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
8001 ; AVX2-FAST-NEXT:    vmovaps 1280(%rdi), %ymm1
8002 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8003 ; AVX2-FAST-NEXT:    vmovaps 1312(%rdi), %ymm7
8004 ; AVX2-FAST-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8005 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm7[0,1,2,3],ymm1[4,5,6,7]
8006 ; AVX2-FAST-NEXT:    vpermps %ymm1, %ymm13, %ymm7
8007 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm7[6,7]
8008 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8009 ; AVX2-FAST-NEXT:    vmovaps {{.*#+}} xmm0 = [1,7,5,u]
8010 ; AVX2-FAST-NEXT:    vpermps %ymm14, %ymm0, %ymm7
8011 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm14 = ymm15[1,3,2,3,5,7,6,7]
8012 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm14 = ymm7[0,1,2],ymm14[3,4,5,6,7]
8013 ; AVX2-FAST-NEXT:    vbroadcastsd {{.*#+}} ymm7 = [5,3,5,3,5,3,5,3]
8014 ; AVX2-FAST-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8015 ; AVX2-FAST-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm15 # 32-byte Folded Reload
8016 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3,4,5],ymm15[6,7]
8017 ; AVX2-FAST-NEXT:    vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8018 ; AVX2-FAST-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm14 # 32-byte Folded Reload
8019 ; AVX2-FAST-NEXT:    vpermilps $237, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Folded Reload
8020 ; AVX2-FAST-NEXT:    # ymm15 = mem[1,3,2,3,5,7,6,7]
8021 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1,2],ymm15[3,4,5,6,7]
8022 ; AVX2-FAST-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm15 # 32-byte Folded Reload
8023 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3,4,5],ymm15[6,7]
8024 ; AVX2-FAST-NEXT:    vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8025 ; AVX2-FAST-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm14 # 32-byte Folded Reload
8026 ; AVX2-FAST-NEXT:    vpermilps $237, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Folded Reload
8027 ; AVX2-FAST-NEXT:    # ymm15 = mem[1,3,2,3,5,7,6,7]
8028 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1,2],ymm15[3,4,5,6,7]
8029 ; AVX2-FAST-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm15 # 32-byte Folded Reload
8030 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3,4,5],ymm15[6,7]
8031 ; AVX2-FAST-NEXT:    vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8032 ; AVX2-FAST-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm14 # 32-byte Folded Reload
8033 ; AVX2-FAST-NEXT:    vpermilps $237, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Folded Reload
8034 ; AVX2-FAST-NEXT:    # ymm15 = mem[1,3,2,3,5,7,6,7]
8035 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1,2],ymm15[3,4,5,6,7]
8036 ; AVX2-FAST-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm15 # 32-byte Folded Reload
8037 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3,4,5],ymm15[6,7]
8038 ; AVX2-FAST-NEXT:    vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8039 ; AVX2-FAST-NEXT:    vpermps %ymm12, %ymm0, %ymm12
8040 ; AVX2-FAST-NEXT:    vpermilps $237, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Folded Reload
8041 ; AVX2-FAST-NEXT:    # ymm14 = mem[1,3,2,3,5,7,6,7]
8042 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2],ymm14[3,4,5,6,7]
8043 ; AVX2-FAST-NEXT:    vpermps %ymm11, %ymm7, %ymm11
8044 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm11 = ymm12[0,1,2,3,4,5],ymm11[6,7]
8045 ; AVX2-FAST-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8046 ; AVX2-FAST-NEXT:    vpermps %ymm9, %ymm0, %ymm9
8047 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm10 = ymm10[1,3,2,3,5,7,6,7]
8048 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2],ymm10[3,4,5,6,7]
8049 ; AVX2-FAST-NEXT:    vpermps %ymm8, %ymm7, %ymm8
8050 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm8 = ymm9[0,1,2,3,4,5],ymm8[6,7]
8051 ; AVX2-FAST-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8052 ; AVX2-FAST-NEXT:    vpermps %ymm5, %ymm0, %ymm5
8053 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm6 = ymm6[1,3,2,3,5,7,6,7]
8054 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2],ymm6[3,4,5,6,7]
8055 ; AVX2-FAST-NEXT:    vpermps %ymm4, %ymm7, %ymm4
8056 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1,2,3,4,5],ymm4[6,7]
8057 ; AVX2-FAST-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8058 ; AVX2-FAST-NEXT:    vpermps %ymm3, %ymm0, %ymm0
8059 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[1,3,2,3,5,7,6,7]
8060 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm2[3,4,5,6,7]
8061 ; AVX2-FAST-NEXT:    vpermps %ymm1, %ymm7, %ymm1
8062 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
8063 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8064 ; AVX2-FAST-NEXT:    vmovaps 192(%rdi), %xmm1
8065 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm0 = xmm1[2,3,2,3]
8066 ; AVX2-FAST-NEXT:    vpermilps $224, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Folded Reload
8067 ; AVX2-FAST-NEXT:    # ymm2 = mem[0,0,2,3,4,4,6,7]
8068 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm0[0],ymm2[1,2,3],ymm0[4],ymm2[5,6,7]
8069 ; AVX2-FAST-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
8070 ; AVX2-FAST-NEXT:    vblendps $204, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm3 # 32-byte Folded Reload
8071 ; AVX2-FAST-NEXT:    # ymm3 = ymm0[0,1],mem[2,3],ymm0[4,5],mem[6,7]
8072 ; AVX2-FAST-NEXT:    vmovaps {{.*#+}} ymm0 = [2,0,6,4,2,0,6,7]
8073 ; AVX2-FAST-NEXT:    vpermps %ymm3, %ymm0, %ymm3
8074 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,3,2,3]
8075 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2],ymm3[3,4,5,6,7]
8076 ; AVX2-FAST-NEXT:    vpermilps $0, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Folded Reload
8077 ; AVX2-FAST-NEXT:    # ymm3 = mem[0,0,0,0,4,4,4,4]
8078 ; AVX2-FAST-NEXT:    vpermilps $224, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Folded Reload
8079 ; AVX2-FAST-NEXT:    # ymm4 = mem[0,0,2,3,4,4,6,7]
8080 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2],ymm3[3],ymm4[4,5,6],ymm3[7]
8081 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,1,0,3]
8082 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm3[5,6,7]
8083 ; AVX2-FAST-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8084 ; AVX2-FAST-NEXT:    vmovaps 576(%rdi), %xmm3
8085 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm2 = xmm3[2,3,2,3]
8086 ; AVX2-FAST-NEXT:    vpermilps $224, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Folded Reload
8087 ; AVX2-FAST-NEXT:    # ymm4 = mem[0,0,2,3,4,4,6,7]
8088 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0],ymm4[1,2,3],ymm2[4],ymm4[5,6,7]
8089 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
8090 ; AVX2-FAST-NEXT:    vblendps $204, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload
8091 ; AVX2-FAST-NEXT:    # ymm4 = ymm4[0,1],mem[2,3],ymm4[4,5],mem[6,7]
8092 ; AVX2-FAST-NEXT:    vpermps %ymm4, %ymm0, %ymm4
8093 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,3,2,3]
8094 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2],ymm4[3,4,5,6,7]
8095 ; AVX2-FAST-NEXT:    vpermilps $0, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Folded Reload
8096 ; AVX2-FAST-NEXT:    # ymm4 = mem[0,0,0,0,4,4,4,4]
8097 ; AVX2-FAST-NEXT:    vpermilps $224, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Folded Reload
8098 ; AVX2-FAST-NEXT:    # ymm5 = mem[0,0,2,3,4,4,6,7]
8099 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1,2],ymm4[3],ymm5[4,5,6],ymm4[7]
8100 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm4 = ymm4[0,1,0,3]
8101 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm4[5,6,7]
8102 ; AVX2-FAST-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8103 ; AVX2-FAST-NEXT:    vmovaps 960(%rdi), %xmm2
8104 ; AVX2-FAST-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8105 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[2,3,2,3]
8106 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8107 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm4 = ymm5[0,0,2,3,4,4,6,7]
8108 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0],ymm4[1,2,3],ymm2[4],ymm4[5,6,7]
8109 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
8110 ; AVX2-FAST-NEXT:    vblendps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload
8111 ; AVX2-FAST-NEXT:    # ymm4 = mem[0,1],ymm4[2,3],mem[4,5],ymm4[6,7]
8112 ; AVX2-FAST-NEXT:    vpermps %ymm4, %ymm0, %ymm4
8113 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,3,2,3]
8114 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2],ymm4[3,4,5,6,7]
8115 ; AVX2-FAST-NEXT:    vpermilps $0, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Folded Reload
8116 ; AVX2-FAST-NEXT:    # ymm4 = mem[0,0,0,0,4,4,4,4]
8117 ; AVX2-FAST-NEXT:    vpermilps $224, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Folded Reload
8118 ; AVX2-FAST-NEXT:    # ymm6 = mem[0,0,2,3,4,4,6,7]
8119 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm4 = ymm6[0,1,2],ymm4[3],ymm6[4,5,6],ymm4[7]
8120 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm4 = ymm4[0,1,0,3]
8121 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm4[5,6,7]
8122 ; AVX2-FAST-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8123 ; AVX2-FAST-NEXT:    vmovaps 1344(%rdi), %xmm2
8124 ; AVX2-FAST-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8125 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[2,3,2,3]
8126 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
8127 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm6 = ymm4[0,0,2,3,4,4,6,7]
8128 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0],ymm6[1,2,3],ymm2[4],ymm6[5,6,7]
8129 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload
8130 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
8131 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm6 = ymm15[0,1],ymm14[2,3],ymm15[4,5],ymm14[6,7]
8132 ; AVX2-FAST-NEXT:    vpermps %ymm6, %ymm0, %ymm6
8133 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,3,2,3]
8134 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2],ymm6[3,4,5,6,7]
8135 ; AVX2-FAST-NEXT:    vpermilps $0, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Folded Reload
8136 ; AVX2-FAST-NEXT:    # ymm6 = mem[0,0,0,0,4,4,4,4]
8137 ; AVX2-FAST-NEXT:    vpermilps $224, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Folded Reload
8138 ; AVX2-FAST-NEXT:    # ymm8 = mem[0,0,2,3,4,4,6,7]
8139 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm6 = ymm8[0,1,2],ymm6[3],ymm8[4,5,6],ymm6[7]
8140 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm6 = ymm6[0,1,0,3]
8141 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm6[5,6,7]
8142 ; AVX2-FAST-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8143 ; AVX2-FAST-NEXT:    vmovaps (%rdi), %xmm2
8144 ; AVX2-FAST-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8145 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[2,3,2,3]
8146 ; AVX2-FAST-NEXT:    vpermilps $224, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Folded Reload
8147 ; AVX2-FAST-NEXT:    # ymm6 = mem[0,0,2,3,4,4,6,7]
8148 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0],ymm6[1,2,3],ymm2[4],ymm6[5,6,7]
8149 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
8150 ; AVX2-FAST-NEXT:    vblendps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm6 # 32-byte Folded Reload
8151 ; AVX2-FAST-NEXT:    # ymm6 = mem[0,1],ymm6[2,3],mem[4,5],ymm6[6,7]
8152 ; AVX2-FAST-NEXT:    vpermps %ymm6, %ymm0, %ymm6
8153 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,3,2,3]
8154 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2],ymm6[3,4,5,6,7]
8155 ; AVX2-FAST-NEXT:    vpermilps $0, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Folded Reload
8156 ; AVX2-FAST-NEXT:    # ymm6 = mem[0,0,0,0,4,4,4,4]
8157 ; AVX2-FAST-NEXT:    vpermilps $224, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Folded Reload
8158 ; AVX2-FAST-NEXT:    # ymm9 = mem[0,0,2,3,4,4,6,7]
8159 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm6 = ymm9[0,1,2],ymm6[3],ymm9[4,5,6],ymm6[7]
8160 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm6 = ymm6[0,1,0,3]
8161 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm6[5,6,7]
8162 ; AVX2-FAST-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8163 ; AVX2-FAST-NEXT:    vmovaps 384(%rdi), %xmm2
8164 ; AVX2-FAST-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8165 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[2,3,2,3]
8166 ; AVX2-FAST-NEXT:    vpermilps $224, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Folded Reload
8167 ; AVX2-FAST-NEXT:    # ymm9 = mem[0,0,2,3,4,4,6,7]
8168 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0],ymm9[1,2,3],ymm2[4],ymm9[5,6,7]
8169 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
8170 ; AVX2-FAST-NEXT:    vblendps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm9 # 32-byte Folded Reload
8171 ; AVX2-FAST-NEXT:    # ymm9 = mem[0,1],ymm6[2,3],mem[4,5],ymm6[6,7]
8172 ; AVX2-FAST-NEXT:    vpermps %ymm9, %ymm0, %ymm9
8173 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,3,2,3]
8174 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2],ymm9[3,4,5,6,7]
8175 ; AVX2-FAST-NEXT:    vpermilps $0, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Folded Reload
8176 ; AVX2-FAST-NEXT:    # ymm9 = mem[0,0,0,0,4,4,4,4]
8177 ; AVX2-FAST-NEXT:    vpermilps $224, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Folded Reload
8178 ; AVX2-FAST-NEXT:    # ymm10 = mem[0,0,2,3,4,4,6,7]
8179 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm9 = ymm10[0,1,2],ymm9[3],ymm10[4,5,6],ymm9[7]
8180 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm9 = ymm9[0,1,0,3]
8181 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm9[5,6,7]
8182 ; AVX2-FAST-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8183 ; AVX2-FAST-NEXT:    vmovaps 768(%rdi), %xmm2
8184 ; AVX2-FAST-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8185 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm9 = xmm2[2,3,2,3]
8186 ; AVX2-FAST-NEXT:    vpermilps $224, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Folded Reload
8187 ; AVX2-FAST-NEXT:    # ymm10 = mem[0,0,2,3,4,4,6,7]
8188 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0],ymm10[1,2,3],ymm9[4],ymm10[5,6,7]
8189 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
8190 ; AVX2-FAST-NEXT:    vblendps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm10 # 32-byte Folded Reload
8191 ; AVX2-FAST-NEXT:    # ymm10 = mem[0,1],ymm2[2,3],mem[4,5],ymm2[6,7]
8192 ; AVX2-FAST-NEXT:    vpermps %ymm10, %ymm0, %ymm10
8193 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm9 = ymm9[0,3,2,3]
8194 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2],ymm10[3,4,5,6,7]
8195 ; AVX2-FAST-NEXT:    vpermilps $0, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Folded Reload
8196 ; AVX2-FAST-NEXT:    # ymm10 = mem[0,0,0,0,4,4,4,4]
8197 ; AVX2-FAST-NEXT:    vpermilps $224, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Folded Reload
8198 ; AVX2-FAST-NEXT:    # ymm11 = mem[0,0,2,3,4,4,6,7]
8199 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm10 = ymm11[0,1,2],ymm10[3],ymm11[4,5,6],ymm10[7]
8200 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm10 = ymm10[0,1,0,3]
8201 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm9[0,1,2,3,4],ymm10[5,6,7]
8202 ; AVX2-FAST-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8203 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
8204 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
8205 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm9 = ymm12[0,1],ymm8[2,3],ymm12[4,5],ymm8[6,7]
8206 ; AVX2-FAST-NEXT:    vpermps %ymm9, %ymm0, %ymm9
8207 ; AVX2-FAST-NEXT:    vmovaps 1152(%rdi), %xmm0
8208 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm10 = xmm0[2,3,2,3]
8209 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
8210 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm11 = ymm2[0,0,2,3,4,4,6,7]
8211 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0],ymm11[1,2,3],ymm10[4],ymm11[5,6,7]
8212 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm10 = ymm10[0,3,2,3]
8213 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm9 = ymm10[0,1,2],ymm9[3,4,5,6,7]
8214 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
8215 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm10 = ymm6[0,0,0,0,4,4,4,4]
8216 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
8217 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm11 = ymm7[0,0,2,3,4,4,6,7]
8218 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm10 = ymm11[0,1,2],ymm10[3],ymm11[4,5,6],ymm10[7]
8219 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm10 = ymm10[0,1,0,3]
8220 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3,4],ymm10[5,6,7]
8221 ; AVX2-FAST-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8222 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[3,3,3,3]
8223 ; AVX2-FAST-NEXT:    vpermilps $244, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Folded Reload
8224 ; AVX2-FAST-NEXT:    # ymm9 = mem[0,1,3,3,4,5,7,7]
8225 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm9[1,2,3],ymm1[4],ymm9[5,6,7]
8226 ; AVX2-FAST-NEXT:    vpermilps $255, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Folded Reload
8227 ; AVX2-FAST-NEXT:    # ymm9 = mem[3,3,3,3,7,7,7,7]
8228 ; AVX2-FAST-NEXT:    vblendps $34, (%rsp), %ymm9, %ymm9 # 32-byte Folded Reload
8229 ; AVX2-FAST-NEXT:    # ymm9 = ymm9[0],mem[1],ymm9[2,3,4],mem[5],ymm9[6,7]
8230 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm9 = ymm9[0,2,0,3]
8231 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,3,2,3]
8232 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2],ymm9[3,4,5,6,7]
8233 ; AVX2-FAST-NEXT:    vpermilps $68, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Folded Reload
8234 ; AVX2-FAST-NEXT:    # ymm9 = mem[0,1,0,1,4,5,4,5]
8235 ; AVX2-FAST-NEXT:    vpermilps $244, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Folded Reload
8236 ; AVX2-FAST-NEXT:    # ymm10 = mem[0,1,3,3,4,5,7,7]
8237 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm9 = ymm10[0,1,2],ymm9[3],ymm10[4,5,6],ymm9[7]
8238 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm9 = ymm9[0,1,0,3]
8239 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm9[5,6,7]
8240 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8241 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm1 = xmm3[3,3,3,3]
8242 ; AVX2-FAST-NEXT:    vpermilps $244, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Folded Reload
8243 ; AVX2-FAST-NEXT:    # ymm3 = mem[0,1,3,3,4,5,7,7]
8244 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm3[1,2,3],ymm1[4],ymm3[5,6,7]
8245 ; AVX2-FAST-NEXT:    vpermilps $255, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Folded Reload
8246 ; AVX2-FAST-NEXT:    # ymm3 = mem[3,3,3,3,7,7,7,7]
8247 ; AVX2-FAST-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
8248 ; AVX2-FAST-NEXT:    # ymm3 = ymm3[0],mem[1],ymm3[2,3,4],mem[5],ymm3[6,7]
8249 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,2,0,3]
8250 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,3,2,3]
8251 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2],ymm3[3,4,5,6,7]
8252 ; AVX2-FAST-NEXT:    vpermilps $68, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Folded Reload
8253 ; AVX2-FAST-NEXT:    # ymm3 = mem[0,1,0,1,4,5,4,5]
8254 ; AVX2-FAST-NEXT:    vpermilps $244, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Folded Reload
8255 ; AVX2-FAST-NEXT:    # ymm9 = mem[0,1,3,3,4,5,7,7]
8256 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm3 = ymm9[0,1,2],ymm3[3],ymm9[4,5,6],ymm3[7]
8257 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,1,0,3]
8258 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm3[5,6,7]
8259 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8260 ; AVX2-FAST-NEXT:    vpermilps $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
8261 ; AVX2-FAST-NEXT:    # xmm1 = mem[3,3,3,3]
8262 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm3 = ymm5[0,1,3,3,4,5,7,7]
8263 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm3[1,2,3],ymm1[4],ymm3[5,6,7]
8264 ; AVX2-FAST-NEXT:    vpermilps $255, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Folded Reload
8265 ; AVX2-FAST-NEXT:    # ymm3 = mem[3,3,3,3,7,7,7,7]
8266 ; AVX2-FAST-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
8267 ; AVX2-FAST-NEXT:    # ymm3 = ymm3[0],mem[1],ymm3[2,3,4],mem[5],ymm3[6,7]
8268 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,2,0,3]
8269 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,3,2,3]
8270 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2],ymm3[3,4,5,6,7]
8271 ; AVX2-FAST-NEXT:    vpermilps $68, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Folded Reload
8272 ; AVX2-FAST-NEXT:    # ymm3 = mem[0,1,0,1,4,5,4,5]
8273 ; AVX2-FAST-NEXT:    vpermilps $244, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Folded Reload
8274 ; AVX2-FAST-NEXT:    # ymm5 = mem[0,1,3,3,4,5,7,7]
8275 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm3 = ymm5[0,1,2],ymm3[3],ymm5[4,5,6],ymm3[7]
8276 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,1,0,3]
8277 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm3[5,6,7]
8278 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8279 ; AVX2-FAST-NEXT:    vpermilps $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
8280 ; AVX2-FAST-NEXT:    # xmm1 = mem[3,3,3,3]
8281 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm3 = ymm4[0,1,3,3,4,5,7,7]
8282 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm3[1,2,3],ymm1[4],ymm3[5,6,7]
8283 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm3 = ymm14[3,3,3,3,7,7,7,7]
8284 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0],ymm15[1],ymm3[2,3,4],ymm15[5],ymm3[6,7]
8285 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,2,0,3]
8286 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,3,2,3]
8287 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2],ymm3[3,4,5,6,7]
8288 ; AVX2-FAST-NEXT:    vpermilps $68, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Folded Reload
8289 ; AVX2-FAST-NEXT:    # ymm3 = mem[0,1,0,1,4,5,4,5]
8290 ; AVX2-FAST-NEXT:    vpermilps $244, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Folded Reload
8291 ; AVX2-FAST-NEXT:    # ymm4 = mem[0,1,3,3,4,5,7,7]
8292 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2],ymm3[3],ymm4[4,5,6],ymm3[7]
8293 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,1,0,3]
8294 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm3[5,6,7]
8295 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8296 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[3,3,3,3]
8297 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm2[0,1,3,3,4,5,7,7]
8298 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3],ymm0[4],ymm1[5,6,7]
8299 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm8[3,3,3,3,7,7,7,7]
8300 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm12[1],ymm1[2,3,4],ymm12[5],ymm1[6,7]
8301 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,0,3]
8302 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,3,2,3]
8303 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
8304 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm6[0,1,0,1,4,5,4,5]
8305 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm3 = ymm7[0,1,3,3,4,5,7,7]
8306 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2],ymm1[3],ymm3[4,5,6],ymm1[7]
8307 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,1,0,3]
8308 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
8309 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8310 ; AVX2-FAST-NEXT:    vpermilps $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
8311 ; AVX2-FAST-NEXT:    # xmm0 = mem[3,3,3,3]
8312 ; AVX2-FAST-NEXT:    vpermilps $244, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Folded Reload
8313 ; AVX2-FAST-NEXT:    # ymm1 = mem[0,1,3,3,4,5,7,7]
8314 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3],ymm0[4],ymm1[5,6,7]
8315 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload
8316 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm15[3,3,3,3,7,7,7,7]
8317 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
8318 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm14[1],ymm1[2,3,4],ymm14[5],ymm1[6,7]
8319 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,0,3]
8320 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,3,2,3]
8321 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
8322 ; AVX2-FAST-NEXT:    vpermilps $68, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Folded Reload
8323 ; AVX2-FAST-NEXT:    # ymm1 = mem[0,1,0,1,4,5,4,5]
8324 ; AVX2-FAST-NEXT:    vpermilps $244, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Folded Reload
8325 ; AVX2-FAST-NEXT:    # ymm2 = mem[0,1,3,3,4,5,7,7]
8326 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]
8327 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,1,0,3]
8328 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
8329 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8330 ; AVX2-FAST-NEXT:    vpermilps $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
8331 ; AVX2-FAST-NEXT:    # xmm0 = mem[3,3,3,3]
8332 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
8333 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm12[0,1,3,3,4,5,7,7]
8334 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3],ymm0[4],ymm1[5,6,7]
8335 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
8336 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm9[3,3,3,3,7,7,7,7]
8337 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
8338 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm8[1],ymm1[2,3,4],ymm8[5],ymm1[6,7]
8339 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,0,3]
8340 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,3,2,3]
8341 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
8342 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload
8343 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm11[0,1,0,1,4,5,4,5]
8344 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
8345 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm2 = ymm10[0,1,3,3,4,5,7,7]
8346 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]
8347 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,1,0,3]
8348 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
8349 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8350 ; AVX2-FAST-NEXT:    vpermilps $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
8351 ; AVX2-FAST-NEXT:    # xmm0 = mem[3,3,3,3]
8352 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
8353 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm7[0,1,3,3,4,5,7,7]
8354 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3],ymm0[4],ymm1[5,6,7]
8355 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
8356 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm4[3,3,3,3,7,7,7,7]
8357 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
8358 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm3[1],ymm1[2,3,4],ymm3[5],ymm1[6,7]
8359 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,0,3]
8360 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,3,2,3]
8361 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
8362 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
8363 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm6[0,1,0,1,4,5,4,5]
8364 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8365 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm2 = ymm5[0,1,3,3,4,5,7,7]
8366 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]
8367 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,1,0,3]
8368 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
8369 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8370 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm4[4,5,6,7]
8371 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8372 ; AVX2-FAST-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm2 # 32-byte Folded Reload
8373 ; AVX2-FAST-NEXT:    # ymm2 = ymm7[0,1,2,3],mem[4,5,6,7]
8374 ; AVX2-FAST-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8375 ; AVX2-FAST-NEXT:    vmovaps 80(%rdi), %xmm0
8376 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8377 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3],ymm1[4,5,6,7]
8378 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[0,1,0,2,4,5,4,6]
8379 ; AVX2-FAST-NEXT:    vpermps %ymm2, %ymm13, %ymm1
8380 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
8381 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm6[0,1],ymm5[2,3],ymm6[4,5,6,7]
8382 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8383 ; AVX2-FAST-NEXT:    vbroadcastf128 {{.*#+}} ymm2 = [0,2,0,6,0,2,0,6]
8384 ; AVX2-FAST-NEXT:    # ymm2 = mem[0,1,0,1]
8385 ; AVX2-FAST-NEXT:    vpermps %ymm1, %ymm2, %ymm1
8386 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
8387 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8388 ; AVX2-FAST-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
8389 ; AVX2-FAST-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload
8390 ; AVX2-FAST-NEXT:    # ymm1 = ymm0[0,1,2,3],mem[4,5,6,7]
8391 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8392 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8393 ; AVX2-FAST-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm3 # 32-byte Folded Reload
8394 ; AVX2-FAST-NEXT:    # ymm3 = ymm0[0,1,2,3],mem[4,5,6,7]
8395 ; AVX2-FAST-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8396 ; AVX2-FAST-NEXT:    vmovaps 272(%rdi), %xmm0
8397 ; AVX2-FAST-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
8398 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3],ymm1[4,5,6,7]
8399 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[0,1,0,2,4,5,4,6]
8400 ; AVX2-FAST-NEXT:    vpermps %ymm3, %ymm13, %ymm1
8401 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
8402 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8403 ; AVX2-FAST-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
8404 ; AVX2-FAST-NEXT:    # ymm1 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
8405 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8406 ; AVX2-FAST-NEXT:    vpermps %ymm1, %ymm2, %ymm1
8407 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
8408 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8409 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm8[0,1,2,3],ymm9[4,5,6,7]
8410 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8411 ; AVX2-FAST-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm3 # 32-byte Folded Reload
8412 ; AVX2-FAST-NEXT:    # ymm3 = ymm12[0,1,2,3],mem[4,5,6,7]
8413 ; AVX2-FAST-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8414 ; AVX2-FAST-NEXT:    vmovaps 464(%rdi), %xmm0
8415 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8416 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3],ymm1[4,5,6,7]
8417 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[0,1,0,2,4,5,4,6]
8418 ; AVX2-FAST-NEXT:    vpermps %ymm3, %ymm13, %ymm1
8419 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
8420 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm11[0,1],ymm10[2,3],ymm11[4,5,6,7]
8421 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8422 ; AVX2-FAST-NEXT:    vpermps %ymm1, %ymm2, %ymm1
8423 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
8424 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8425 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8426 ; AVX2-FAST-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload
8427 ; AVX2-FAST-NEXT:    # ymm1 = ymm0[0,1,2,3],mem[4,5,6,7]
8428 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8429 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8430 ; AVX2-FAST-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm3 # 32-byte Folded Reload
8431 ; AVX2-FAST-NEXT:    # ymm3 = ymm0[0,1,2,3],mem[4,5,6,7]
8432 ; AVX2-FAST-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8433 ; AVX2-FAST-NEXT:    vmovaps 656(%rdi), %xmm0
8434 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8435 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3],ymm1[4,5,6,7]
8436 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[0,1,0,2,4,5,4,6]
8437 ; AVX2-FAST-NEXT:    vpermps %ymm3, %ymm13, %ymm1
8438 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
8439 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8440 ; AVX2-FAST-NEXT:    vblendps $12, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
8441 ; AVX2-FAST-NEXT:    # ymm1 = ymm1[0,1],mem[2,3],ymm1[4,5,6,7]
8442 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8443 ; AVX2-FAST-NEXT:    vpermps %ymm1, %ymm2, %ymm1
8444 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
8445 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8446 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm14[0,1,2,3],ymm15[4,5,6,7]
8447 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8448 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8449 ; AVX2-FAST-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm3 # 32-byte Folded Reload
8450 ; AVX2-FAST-NEXT:    # ymm3 = ymm0[0,1,2,3],mem[4,5,6,7]
8451 ; AVX2-FAST-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8452 ; AVX2-FAST-NEXT:    vmovaps 848(%rdi), %xmm0
8453 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8454 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3],ymm1[4,5,6,7]
8455 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[0,1,0,2,4,5,4,6]
8456 ; AVX2-FAST-NEXT:    vpermps %ymm3, %ymm13, %ymm1
8457 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
8458 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8459 ; AVX2-FAST-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
8460 ; AVX2-FAST-NEXT:    # ymm1 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
8461 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8462 ; AVX2-FAST-NEXT:    vpermps %ymm1, %ymm2, %ymm1
8463 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
8464 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8465 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8466 ; AVX2-FAST-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm14 # 32-byte Folded Reload
8467 ; AVX2-FAST-NEXT:    # ymm14 = ymm0[0,1,2,3],mem[4,5,6,7]
8468 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8469 ; AVX2-FAST-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm12 # 32-byte Folded Reload
8470 ; AVX2-FAST-NEXT:    # ymm12 = ymm0[0,1,2,3],mem[4,5,6,7]
8471 ; AVX2-FAST-NEXT:    vmovaps 1040(%rdi), %xmm11
8472 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm14[0,1],ymm11[2,3],ymm14[4,5,6,7]
8473 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[0,1,0,2,4,5,4,6]
8474 ; AVX2-FAST-NEXT:    vpermps %ymm12, %ymm13, %ymm1
8475 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
8476 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8477 ; AVX2-FAST-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm10 # 32-byte Folded Reload
8478 ; AVX2-FAST-NEXT:    # ymm10 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
8479 ; AVX2-FAST-NEXT:    vpermps %ymm10, %ymm2, %ymm1
8480 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
8481 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8482 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8483 ; AVX2-FAST-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm9 # 32-byte Folded Reload
8484 ; AVX2-FAST-NEXT:    # ymm9 = ymm0[0,1,2,3],mem[4,5,6,7]
8485 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8486 ; AVX2-FAST-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm8 # 32-byte Folded Reload
8487 ; AVX2-FAST-NEXT:    # ymm8 = ymm0[0,1,2,3],mem[4,5,6,7]
8488 ; AVX2-FAST-NEXT:    vmovaps 1232(%rdi), %xmm6
8489 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm9[0,1],ymm6[2,3],ymm9[4,5,6,7]
8490 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[0,1,0,2,4,5,4,6]
8491 ; AVX2-FAST-NEXT:    vpermps %ymm8, %ymm13, %ymm1
8492 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
8493 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8494 ; AVX2-FAST-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm5 # 32-byte Folded Reload
8495 ; AVX2-FAST-NEXT:    # ymm5 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
8496 ; AVX2-FAST-NEXT:    vpermps %ymm5, %ymm2, %ymm1
8497 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
8498 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8499 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8500 ; AVX2-FAST-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm4 # 32-byte Folded Reload
8501 ; AVX2-FAST-NEXT:    # ymm4 = ymm0[0,1,2,3],mem[4,5,6,7]
8502 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8503 ; AVX2-FAST-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm3 # 32-byte Folded Reload
8504 ; AVX2-FAST-NEXT:    # ymm3 = ymm0[0,1,2,3],mem[4,5,6,7]
8505 ; AVX2-FAST-NEXT:    vmovaps 1424(%rdi), %xmm1
8506 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1],ymm1[2,3],ymm4[4,5,6,7]
8507 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[0,1,0,2,4,5,4,6]
8508 ; AVX2-FAST-NEXT:    vpermps %ymm3, %ymm13, %ymm13
8509 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm13[0,1],ymm0[2,3,4,5,6,7]
8510 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
8511 ; AVX2-FAST-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm13 # 32-byte Folded Reload
8512 ; AVX2-FAST-NEXT:    # ymm13 = mem[0,1],ymm7[2,3],mem[4,5,6,7]
8513 ; AVX2-FAST-NEXT:    vpermps %ymm13, %ymm2, %ymm2
8514 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm2[5,6,7]
8515 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8516 ; AVX2-FAST-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Folded Reload
8517 ; AVX2-FAST-NEXT:    # ymm0 = mem[1,1,1,1,5,5,5,5]
8518 ; AVX2-FAST-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
8519 ; AVX2-FAST-NEXT:    # ymm0 = ymm0[0,1,2],mem[3],ymm0[4,5,6,7]
8520 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
8521 ; AVX2-FAST-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm2 # 32-byte Folded Reload
8522 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1],ymm0[2,3,4,5,6,7]
8523 ; AVX2-FAST-NEXT:    vbroadcastf128 {{.*#+}} ymm0 = [0,3,1,7,0,3,1,7]
8524 ; AVX2-FAST-NEXT:    # ymm0 = mem[0,1,0,1]
8525 ; AVX2-FAST-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm15 # 32-byte Folded Reload
8526 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm15[5,6,7]
8527 ; AVX2-FAST-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8528 ; AVX2-FAST-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Folded Reload
8529 ; AVX2-FAST-NEXT:    # ymm2 = mem[1,1,1,1,5,5,5,5]
8530 ; AVX2-FAST-NEXT:    vblendps $8, (%rsp), %ymm2, %ymm2 # 32-byte Folded Reload
8531 ; AVX2-FAST-NEXT:    # ymm2 = ymm2[0,1,2],mem[3],ymm2[4,5,6,7]
8532 ; AVX2-FAST-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm15 # 32-byte Folded Reload
8533 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm15[0,1],ymm2[2,3,4,5,6,7]
8534 ; AVX2-FAST-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm15 # 32-byte Folded Reload
8535 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm15[5,6,7]
8536 ; AVX2-FAST-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8537 ; AVX2-FAST-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Folded Reload
8538 ; AVX2-FAST-NEXT:    # ymm2 = mem[1,1,1,1,5,5,5,5]
8539 ; AVX2-FAST-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
8540 ; AVX2-FAST-NEXT:    # ymm2 = ymm2[0,1,2],mem[3],ymm2[4,5,6,7]
8541 ; AVX2-FAST-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm15 # 32-byte Folded Reload
8542 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm15[0,1],ymm2[2,3,4,5,6,7]
8543 ; AVX2-FAST-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm15 # 32-byte Folded Reload
8544 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm15[5,6,7]
8545 ; AVX2-FAST-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8546 ; AVX2-FAST-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Folded Reload
8547 ; AVX2-FAST-NEXT:    # ymm2 = mem[1,1,1,1,5,5,5,5]
8548 ; AVX2-FAST-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
8549 ; AVX2-FAST-NEXT:    # ymm2 = ymm2[0,1,2],mem[3],ymm2[4,5,6,7]
8550 ; AVX2-FAST-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm15 # 32-byte Folded Reload
8551 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm15[0,1],ymm2[2,3,4,5,6,7]
8552 ; AVX2-FAST-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm15 # 32-byte Folded Reload
8553 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm15[5,6,7]
8554 ; AVX2-FAST-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8555 ; AVX2-FAST-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Folded Reload
8556 ; AVX2-FAST-NEXT:    # ymm15 = mem[1,1,1,1,5,5,5,5]
8557 ; AVX2-FAST-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm15 # 32-byte Folded Reload
8558 ; AVX2-FAST-NEXT:    # ymm15 = ymm15[0,1,2],mem[3],ymm15[4,5,6,7]
8559 ; AVX2-FAST-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm2 # 32-byte Folded Reload
8560 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1],ymm15[2,3,4,5,6,7]
8561 ; AVX2-FAST-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm15 # 32-byte Folded Reload
8562 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm15 = ymm2[0,1,2,3,4],ymm15[5,6,7]
8563 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm2 = ymm14[1,1,1,1,5,5,5,5]
8564 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2],ymm11[3],ymm2[4,5,6,7]
8565 ; AVX2-FAST-NEXT:    vpermps %ymm12, %ymm7, %ymm11
8566 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm11[0,1],ymm2[2,3,4,5,6,7]
8567 ; AVX2-FAST-NEXT:    vpermps %ymm10, %ymm0, %ymm10
8568 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm10 = ymm2[0,1,2,3,4],ymm10[5,6,7]
8569 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm2 = ymm9[1,1,1,1,5,5,5,5]
8570 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2],ymm6[3],ymm2[4,5,6,7]
8571 ; AVX2-FAST-NEXT:    vpermps %ymm8, %ymm7, %ymm6
8572 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm6[0,1],ymm2[2,3,4,5,6,7]
8573 ; AVX2-FAST-NEXT:    vpermps %ymm5, %ymm0, %ymm5
8574 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm5 = ymm2[0,1,2,3,4],ymm5[5,6,7]
8575 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm2 = ymm4[1,1,1,1,5,5,5,5]
8576 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6,7]
8577 ; AVX2-FAST-NEXT:    vpermps %ymm3, %ymm7, %ymm2
8578 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
8579 ; AVX2-FAST-NEXT:    vpermps %ymm13, %ymm0, %ymm0
8580 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4],ymm0[5,6,7]
8581 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8582 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 192(%rsi)
8583 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8584 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 128(%rsi)
8585 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8586 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 64(%rsi)
8587 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8588 ; AVX2-FAST-NEXT:    vmovaps %ymm1, (%rsi)
8589 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8590 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 224(%rsi)
8591 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8592 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 160(%rsi)
8593 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8594 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 96(%rsi)
8595 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8596 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 32(%rsi)
8597 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8598 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 192(%rdx)
8599 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8600 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 128(%rdx)
8601 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8602 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 64(%rdx)
8603 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8604 ; AVX2-FAST-NEXT:    vmovaps %ymm1, (%rdx)
8605 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8606 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 224(%rdx)
8607 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8608 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 160(%rdx)
8609 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8610 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 96(%rdx)
8611 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8612 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 32(%rdx)
8613 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8614 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 192(%rcx)
8615 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8616 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 128(%rcx)
8617 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8618 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 64(%rcx)
8619 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8620 ; AVX2-FAST-NEXT:    vmovaps %ymm1, (%rcx)
8621 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8622 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 224(%rcx)
8623 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8624 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 160(%rcx)
8625 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8626 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 96(%rcx)
8627 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8628 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 32(%rcx)
8629 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8630 ; AVX2-FAST-NEXT:    vmovaps %ymm1, (%r8)
8631 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8632 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 64(%r8)
8633 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8634 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 128(%r8)
8635 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8636 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 192(%r8)
8637 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8638 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 224(%r8)
8639 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8640 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 160(%r8)
8641 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8642 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 96(%r8)
8643 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8644 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 32(%r8)
8645 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8646 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 224(%r9)
8647 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8648 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 192(%r9)
8649 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8650 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 160(%r9)
8651 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8652 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 128(%r9)
8653 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8654 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 96(%r9)
8655 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8656 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 64(%r9)
8657 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8658 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 32(%r9)
8659 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8660 ; AVX2-FAST-NEXT:    vmovaps %ymm1, (%r9)
8661 ; AVX2-FAST-NEXT:    movq {{[0-9]+}}(%rsp), %rax
8662 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 224(%rax)
8663 ; AVX2-FAST-NEXT:    vmovaps %ymm5, 192(%rax)
8664 ; AVX2-FAST-NEXT:    vmovaps %ymm10, 160(%rax)
8665 ; AVX2-FAST-NEXT:    vmovaps %ymm15, 128(%rax)
8666 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8667 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 96(%rax)
8668 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8669 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 64(%rax)
8670 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8671 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 32(%rax)
8672 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8673 ; AVX2-FAST-NEXT:    vmovaps %ymm0, (%rax)
8674 ; AVX2-FAST-NEXT:    addq $2504, %rsp # imm = 0x9C8
8675 ; AVX2-FAST-NEXT:    vzeroupper
8676 ; AVX2-FAST-NEXT:    retq
8678 ; AVX2-FAST-PERLANE-LABEL: load_i32_stride6_vf64:
8679 ; AVX2-FAST-PERLANE:       # %bb.0:
8680 ; AVX2-FAST-PERLANE-NEXT:    subq $2536, %rsp # imm = 0x9E8
8681 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 672(%rdi), %ymm4
8682 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 640(%rdi), %ymm5
8683 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8684 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 608(%rdi), %ymm3
8685 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8686 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 320(%rdi), %ymm2
8687 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8688 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 352(%rdi), %ymm6
8689 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8690 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 288(%rdi), %ymm7
8691 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8692 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 256(%rdi), %ymm9
8693 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm9, (%rsp) # 32-byte Spill
8694 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 224(%rdi), %ymm0
8695 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8696 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 192(%rdi), %ymm1
8697 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8698 ; AVX2-FAST-PERLANE-NEXT:    vmovaps {{.*#+}} xmm8 = [0,6,4,u]
8699 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5],ymm1[6,7]
8700 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8701 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm0, %ymm8, %ymm0
8702 ; AVX2-FAST-PERLANE-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm9[0,1],ymm7[0,1]
8703 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm7[6,7]
8704 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8705 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,2,2,2,4,6,6,6]
8706 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
8707 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm6[0,1,2,3],ymm2[4,5,6,7]
8708 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8709 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastsd {{.*#+}} ymm2 = [4,2,4,2,4,2,4,2]
8710 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm1, %ymm2, %ymm1
8711 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm2, %ymm6
8712 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
8713 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8714 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8715 ; AVX2-FAST-PERLANE-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm5[0,1],ymm4[0,1]
8716 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm0[0,1,2,3,4,5],ymm4[6,7]
8717 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8718 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 576(%rdi), %ymm0
8719 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8720 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5],ymm0[6,7]
8721 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8722 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm0, %ymm8, %ymm0
8723 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm2[0,2,2,2,4,6,6,6]
8724 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
8725 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 704(%rdi), %ymm1
8726 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8727 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 736(%rdi), %ymm2
8728 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8729 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
8730 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8731 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm1, %ymm6, %ymm1
8732 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
8733 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8734 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 1056(%rdi), %ymm1
8735 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8736 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 1024(%rdi), %ymm0
8737 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8738 ; AVX2-FAST-PERLANE-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm0[0,1],ymm1[0,1]
8739 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm0[0,1,2,3,4,5],ymm1[6,7]
8740 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8741 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 992(%rdi), %ymm0
8742 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8743 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 960(%rdi), %ymm1
8744 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8745 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5],ymm1[6,7]
8746 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8747 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm0, %ymm8, %ymm0
8748 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm2[0,2,2,2,4,6,6,6]
8749 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
8750 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 1088(%rdi), %ymm1
8751 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8752 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 1120(%rdi), %ymm2
8753 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8754 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
8755 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8756 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm1, %ymm6, %ymm1
8757 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
8758 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8759 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 1440(%rdi), %ymm1
8760 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8761 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 1408(%rdi), %ymm0
8762 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8763 ; AVX2-FAST-PERLANE-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm0[0,1],ymm1[0,1]
8764 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm0[0,1,2,3,4,5],ymm1[6,7]
8765 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8766 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 1376(%rdi), %ymm0
8767 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8768 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 1344(%rdi), %ymm1
8769 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8770 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5],ymm1[6,7]
8771 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8772 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm0, %ymm8, %ymm0
8773 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm2[0,2,2,2,4,6,6,6]
8774 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
8775 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 1472(%rdi), %ymm1
8776 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8777 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 1504(%rdi), %ymm2
8778 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8779 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
8780 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8781 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm1, %ymm6, %ymm1
8782 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
8783 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8784 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 96(%rdi), %ymm1
8785 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8786 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 64(%rdi), %ymm0
8787 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8788 ; AVX2-FAST-PERLANE-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm0[0,1],ymm1[0,1]
8789 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm13 = ymm0[0,1,2,3,4,5],ymm1[6,7]
8790 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%rdi), %ymm0
8791 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8792 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 32(%rdi), %ymm1
8793 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8794 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm11 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
8795 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm11, %ymm8, %ymm0
8796 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm13[0,2,2,2,4,6,6,6]
8797 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
8798 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 128(%rdi), %ymm1
8799 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8800 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 160(%rdi), %ymm2
8801 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8802 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm10 = ymm2[0,1,2,3],ymm1[4,5,6,7]
8803 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm10, %ymm6, %ymm1
8804 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
8805 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8806 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 480(%rdi), %ymm1
8807 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8808 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 448(%rdi), %ymm0
8809 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8810 ; AVX2-FAST-PERLANE-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm0[0,1],ymm1[0,1]
8811 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm7 = ymm0[0,1,2,3,4,5],ymm1[6,7]
8812 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 416(%rdi), %ymm0
8813 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8814 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 384(%rdi), %ymm1
8815 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8816 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm5 = ymm1[0,1,2,3],ymm0[4,5],ymm1[6,7]
8817 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm5, %ymm8, %ymm0
8818 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm7[0,2,2,2,4,6,6,6]
8819 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
8820 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 512(%rdi), %ymm1
8821 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8822 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 544(%rdi), %ymm2
8823 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8824 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm4 = ymm2[0,1,2,3],ymm1[4,5,6,7]
8825 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm4, %ymm6, %ymm1
8826 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, %ymm12
8827 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
8828 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8829 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 864(%rdi), %ymm1
8830 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8831 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 832(%rdi), %ymm0
8832 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8833 ; AVX2-FAST-PERLANE-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm0[0,1],ymm1[0,1]
8834 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm3 = ymm0[0,1,2,3,4,5],ymm1[6,7]
8835 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 800(%rdi), %ymm0
8836 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8837 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 768(%rdi), %ymm1
8838 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8839 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm0[4,5],ymm1[6,7]
8840 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm2, %ymm8, %ymm0
8841 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm3[0,2,2,2,4,6,6,6]
8842 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
8843 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 896(%rdi), %ymm1
8844 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8845 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 928(%rdi), %ymm6
8846 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8847 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm6[0,1,2,3],ymm1[4,5,6,7]
8848 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm1, %ymm12, %ymm6
8849 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm12, %ymm14
8850 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8851 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm6[6,7]
8852 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8853 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 1184(%rdi), %ymm0
8854 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8855 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 1152(%rdi), %ymm6
8856 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8857 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm0[4,5],ymm6[6,7]
8858 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm6, %ymm8, %ymm0
8859 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 1248(%rdi), %ymm9
8860 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8861 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 1216(%rdi), %ymm8
8862 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8863 ; AVX2-FAST-PERLANE-NEXT:    vperm2f128 {{.*#+}} ymm8 = ymm8[0,1],ymm9[0,1]
8864 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],ymm9[6,7]
8865 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm9 = ymm8[0,2,2,2,4,6,6,6]
8866 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm9[3,4,5,6,7]
8867 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 1280(%rdi), %ymm9
8868 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8869 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 1312(%rdi), %ymm12
8870 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8871 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm15 = ymm12[0,1,2,3],ymm9[4,5,6,7]
8872 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm15, %ymm14, %ymm9
8873 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm9[6,7]
8874 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8875 ; AVX2-FAST-PERLANE-NEXT:    vmovaps {{.*#+}} xmm0 = [1,7,5,u]
8876 ; AVX2-FAST-PERLANE-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm9 # 32-byte Folded Reload
8877 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $237, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Folded Reload
8878 ; AVX2-FAST-PERLANE-NEXT:    # ymm14 = mem[1,3,2,3,5,7,6,7]
8879 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm14 = ymm9[0,1,2],ymm14[3,4,5,6,7]
8880 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastsd {{.*#+}} ymm9 = [5,3,5,3,5,3,5,3]
8881 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8882 ; AVX2-FAST-PERLANE-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm12 # 32-byte Folded Reload
8883 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm12 = ymm14[0,1,2,3,4,5],ymm12[6,7]
8884 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8885 ; AVX2-FAST-PERLANE-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm12 # 32-byte Folded Reload
8886 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $237, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Folded Reload
8887 ; AVX2-FAST-PERLANE-NEXT:    # ymm14 = mem[1,3,2,3,5,7,6,7]
8888 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2],ymm14[3,4,5,6,7]
8889 ; AVX2-FAST-PERLANE-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm14 # 32-byte Folded Reload
8890 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3,4,5],ymm14[6,7]
8891 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8892 ; AVX2-FAST-PERLANE-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm12 # 32-byte Folded Reload
8893 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $237, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Folded Reload
8894 ; AVX2-FAST-PERLANE-NEXT:    # ymm14 = mem[1,3,2,3,5,7,6,7]
8895 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2],ymm14[3,4,5,6,7]
8896 ; AVX2-FAST-PERLANE-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm14 # 32-byte Folded Reload
8897 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3,4,5],ymm14[6,7]
8898 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8899 ; AVX2-FAST-PERLANE-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm12 # 32-byte Folded Reload
8900 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $237, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Folded Reload
8901 ; AVX2-FAST-PERLANE-NEXT:    # ymm14 = mem[1,3,2,3,5,7,6,7]
8902 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2],ymm14[3,4,5,6,7]
8903 ; AVX2-FAST-PERLANE-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm14 # 32-byte Folded Reload
8904 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3,4,5],ymm14[6,7]
8905 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8906 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm11, %ymm0, %ymm11
8907 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm12 = ymm13[1,3,2,3,5,7,6,7]
8908 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1,2],ymm12[3,4,5,6,7]
8909 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm10, %ymm9, %ymm10
8910 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm10 = ymm11[0,1,2,3,4,5],ymm10[6,7]
8911 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8912 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm5, %ymm0, %ymm5
8913 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm7 = ymm7[1,3,2,3,5,7,6,7]
8914 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2],ymm7[3,4,5,6,7]
8915 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm4, %ymm9, %ymm4
8916 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1,2,3,4,5],ymm4[6,7]
8917 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8918 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm2, %ymm0, %ymm2
8919 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[1,3,2,3,5,7,6,7]
8920 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2],ymm3[3,4,5,6,7]
8921 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm1, %ymm9, %ymm1
8922 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
8923 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8924 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm6, %ymm0, %ymm0
8925 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm8[1,3,2,3,5,7,6,7]
8926 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
8927 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm15, %ymm9, %ymm1
8928 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
8929 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8930 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 192(%rdi), %xmm5
8931 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm0 = xmm5[2,3,2,3]
8932 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $224, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Folded Reload
8933 ; AVX2-FAST-PERLANE-NEXT:    # ymm1 = mem[0,0,2,3,4,4,6,7]
8934 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3],ymm0[4],ymm1[5,6,7]
8935 ; AVX2-FAST-PERLANE-NEXT:    vmovups (%rsp), %ymm1 # 32-byte Reload
8936 ; AVX2-FAST-PERLANE-NEXT:    vblendps $204, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
8937 ; AVX2-FAST-PERLANE-NEXT:    # ymm1 = ymm1[0,1],mem[2,3],ymm1[4,5],mem[6,7]
8938 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[2,0,2,3,6,4,6,7]
8939 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,0,3]
8940 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,3,2,3]
8941 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
8942 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
8943 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm3[0,0,0,0,4,4,4,4]
8944 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $224, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Folded Reload
8945 ; AVX2-FAST-PERLANE-NEXT:    # ymm2 = mem[0,0,2,3,4,4,6,7]
8946 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]
8947 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,1,0,3]
8948 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
8949 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8950 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 576(%rdi), %xmm0
8951 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8952 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[2,3,2,3]
8953 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $224, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Folded Reload
8954 ; AVX2-FAST-PERLANE-NEXT:    # ymm1 = mem[0,0,2,3,4,4,6,7]
8955 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3],ymm0[4],ymm1[5,6,7]
8956 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8957 ; AVX2-FAST-PERLANE-NEXT:    vblendps $204, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
8958 ; AVX2-FAST-PERLANE-NEXT:    # ymm1 = ymm1[0,1],mem[2,3],ymm1[4,5],mem[6,7]
8959 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[2,0,2,3,6,4,6,7]
8960 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,0,3]
8961 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,3,2,3]
8962 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
8963 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $0, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Folded Reload
8964 ; AVX2-FAST-PERLANE-NEXT:    # ymm1 = mem[0,0,0,0,4,4,4,4]
8965 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $224, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Folded Reload
8966 ; AVX2-FAST-PERLANE-NEXT:    # ymm2 = mem[0,0,2,3,4,4,6,7]
8967 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]
8968 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,1,0,3]
8969 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
8970 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8971 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 960(%rdi), %xmm2
8972 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm0 = xmm2[2,3,2,3]
8973 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $224, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Folded Reload
8974 ; AVX2-FAST-PERLANE-NEXT:    # ymm1 = mem[0,0,2,3,4,4,6,7]
8975 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3],ymm0[4],ymm1[5,6,7]
8976 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8977 ; AVX2-FAST-PERLANE-NEXT:    vblendps $204, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
8978 ; AVX2-FAST-PERLANE-NEXT:    # ymm1 = ymm1[0,1],mem[2,3],ymm1[4,5],mem[6,7]
8979 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[2,0,2,3,6,4,6,7]
8980 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,0,3]
8981 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,3,2,3]
8982 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
8983 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $0, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Folded Reload
8984 ; AVX2-FAST-PERLANE-NEXT:    # ymm1 = mem[0,0,0,0,4,4,4,4]
8985 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $224, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Folded Reload
8986 ; AVX2-FAST-PERLANE-NEXT:    # ymm4 = mem[0,0,2,3,4,4,6,7]
8987 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm4[0,1,2],ymm1[3],ymm4[4,5,6],ymm1[7]
8988 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,1,0,3]
8989 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
8990 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8991 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 1344(%rdi), %xmm1
8992 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm0 = xmm1[2,3,2,3]
8993 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload
8994 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm4 = ymm15[0,0,2,3,4,4,6,7]
8995 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm4[1,2,3],ymm0[4],ymm4[5,6,7]
8996 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
8997 ; AVX2-FAST-PERLANE-NEXT:    vblendps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm4 # 32-byte Folded Reload
8998 ; AVX2-FAST-PERLANE-NEXT:    # ymm4 = mem[0,1],ymm13[2,3],mem[4,5],ymm13[6,7]
8999 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[2,0,2,3,6,4,6,7]
9000 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm4 = ymm4[0,2,0,3]
9001 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,3,2,3]
9002 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm4[3,4,5,6,7]
9003 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $0, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Folded Reload
9004 ; AVX2-FAST-PERLANE-NEXT:    # ymm4 = mem[0,0,0,0,4,4,4,4]
9005 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
9006 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm6 = ymm14[0,0,2,3,4,4,6,7]
9007 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm4 = ymm6[0,1,2],ymm4[3],ymm6[4,5,6],ymm4[7]
9008 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm4 = ymm4[0,1,0,3]
9009 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm4[5,6,7]
9010 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9011 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%rdi), %xmm0
9012 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9013 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[2,3,2,3]
9014 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $224, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Folded Reload
9015 ; AVX2-FAST-PERLANE-NEXT:    # ymm4 = mem[0,0,2,3,4,4,6,7]
9016 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm4[1,2,3],ymm0[4],ymm4[5,6,7]
9017 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
9018 ; AVX2-FAST-PERLANE-NEXT:    vblendps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload
9019 ; AVX2-FAST-PERLANE-NEXT:    # ymm4 = mem[0,1],ymm4[2,3],mem[4,5],ymm4[6,7]
9020 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[2,0,2,3,6,4,6,7]
9021 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm4 = ymm4[0,2,0,3]
9022 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,3,2,3]
9023 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm4[3,4,5,6,7]
9024 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $0, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Folded Reload
9025 ; AVX2-FAST-PERLANE-NEXT:    # ymm4 = mem[0,0,0,0,4,4,4,4]
9026 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $224, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Folded Reload
9027 ; AVX2-FAST-PERLANE-NEXT:    # ymm6 = mem[0,0,2,3,4,4,6,7]
9028 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm4 = ymm6[0,1,2],ymm4[3],ymm6[4,5,6],ymm4[7]
9029 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm4 = ymm4[0,1,0,3]
9030 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm4[5,6,7]
9031 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9032 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 384(%rdi), %xmm0
9033 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9034 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[2,3,2,3]
9035 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $224, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Folded Reload
9036 ; AVX2-FAST-PERLANE-NEXT:    # ymm6 = mem[0,0,2,3,4,4,6,7]
9037 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm6[1,2,3],ymm0[4],ymm6[5,6,7]
9038 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
9039 ; AVX2-FAST-PERLANE-NEXT:    vblendps $204, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm6 # 32-byte Folded Reload
9040 ; AVX2-FAST-PERLANE-NEXT:    # ymm6 = ymm4[0,1],mem[2,3],ymm4[4,5],mem[6,7]
9041 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm6 = ymm6[2,0,2,3,6,4,6,7]
9042 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm6 = ymm6[0,2,0,3]
9043 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,3,2,3]
9044 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm6[3,4,5,6,7]
9045 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $0, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Folded Reload
9046 ; AVX2-FAST-PERLANE-NEXT:    # ymm6 = mem[0,0,0,0,4,4,4,4]
9047 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $224, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Folded Reload
9048 ; AVX2-FAST-PERLANE-NEXT:    # ymm8 = mem[0,0,2,3,4,4,6,7]
9049 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm6 = ymm8[0,1,2],ymm6[3],ymm8[4,5,6],ymm6[7]
9050 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm6 = ymm6[0,1,0,3]
9051 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm6[5,6,7]
9052 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9053 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 768(%rdi), %xmm0
9054 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9055 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm6 = xmm0[2,3,2,3]
9056 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $224, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Folded Reload
9057 ; AVX2-FAST-PERLANE-NEXT:    # ymm8 = mem[0,0,2,3,4,4,6,7]
9058 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0],ymm8[1,2,3],ymm6[4],ymm8[5,6,7]
9059 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9060 ; AVX2-FAST-PERLANE-NEXT:    vblendps $204, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm8 # 32-byte Folded Reload
9061 ; AVX2-FAST-PERLANE-NEXT:    # ymm8 = ymm0[0,1],mem[2,3],ymm0[4,5],mem[6,7]
9062 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm8 = ymm8[2,0,2,3,6,4,6,7]
9063 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm8 = ymm8[0,2,0,3]
9064 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm6 = ymm6[0,3,2,3]
9065 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2],ymm8[3,4,5,6,7]
9066 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $0, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Folded Reload
9067 ; AVX2-FAST-PERLANE-NEXT:    # ymm8 = mem[0,0,0,0,4,4,4,4]
9068 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $224, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Folded Reload
9069 ; AVX2-FAST-PERLANE-NEXT:    # ymm10 = mem[0,0,2,3,4,4,6,7]
9070 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm8 = ymm10[0,1,2],ymm8[3],ymm10[4,5,6],ymm8[7]
9071 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm8 = ymm8[0,1,0,3]
9072 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm6[0,1,2,3,4],ymm8[5,6,7]
9073 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9074 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 1152(%rdi), %xmm12
9075 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm8 = xmm12[2,3,2,3]
9076 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9077 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm10 = ymm6[0,0,2,3,4,4,6,7]
9078 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0],ymm10[1,2,3],ymm8[4],ymm10[5,6,7]
9079 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9080 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
9081 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm10 = ymm9[0,1],ymm0[2,3],ymm9[4,5],ymm0[6,7]
9082 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm10 = ymm10[2,0,2,3,6,4,6,7]
9083 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm10 = ymm10[0,2,0,3]
9084 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm8 = ymm8[0,3,2,3]
9085 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2],ymm10[3,4,5,6,7]
9086 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
9087 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm10 = ymm4[0,0,0,0,4,4,4,4]
9088 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
9089 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm11 = ymm7[0,0,2,3,4,4,6,7]
9090 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm10 = ymm11[0,1,2],ymm10[3],ymm11[4,5,6],ymm10[7]
9091 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm10 = ymm10[0,1,0,3]
9092 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3,4],ymm10[5,6,7]
9093 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9094 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm5 = xmm5[3,3,3,3]
9095 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $244, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Folded Reload
9096 ; AVX2-FAST-PERLANE-NEXT:    # ymm8 = mem[0,1,3,3,4,5,7,7]
9097 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0],ymm8[1,2,3],ymm5[4],ymm8[5,6,7]
9098 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $255, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Folded Reload
9099 ; AVX2-FAST-PERLANE-NEXT:    # ymm8 = mem[3,3,3,3,7,7,7,7]
9100 ; AVX2-FAST-PERLANE-NEXT:    vblendps $34, (%rsp), %ymm8, %ymm8 # 32-byte Folded Reload
9101 ; AVX2-FAST-PERLANE-NEXT:    # ymm8 = ymm8[0],mem[1],ymm8[2,3,4],mem[5],ymm8[6,7]
9102 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm8 = ymm8[0,2,0,3]
9103 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm5 = ymm5[0,3,2,3]
9104 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2],ymm8[3,4,5,6,7]
9105 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm8 = ymm3[0,1,0,1,4,5,4,5]
9106 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $244, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Folded Reload
9107 ; AVX2-FAST-PERLANE-NEXT:    # ymm10 = mem[0,1,3,3,4,5,7,7]
9108 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm8 = ymm10[0,1,2],ymm8[3],ymm10[4,5,6],ymm8[7]
9109 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm8 = ymm8[0,1,0,3]
9110 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm3 = ymm5[0,1,2,3,4],ymm8[5,6,7]
9111 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9112 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload
9113 ; AVX2-FAST-PERLANE-NEXT:    # xmm3 = mem[3,3,3,3]
9114 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $244, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Folded Reload
9115 ; AVX2-FAST-PERLANE-NEXT:    # ymm5 = mem[0,1,3,3,4,5,7,7]
9116 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0],ymm5[1,2,3],ymm3[4],ymm5[5,6,7]
9117 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $255, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Folded Reload
9118 ; AVX2-FAST-PERLANE-NEXT:    # ymm5 = mem[3,3,3,3,7,7,7,7]
9119 ; AVX2-FAST-PERLANE-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm5 # 32-byte Folded Reload
9120 ; AVX2-FAST-PERLANE-NEXT:    # ymm5 = ymm5[0],mem[1],ymm5[2,3,4],mem[5],ymm5[6,7]
9121 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm5 = ymm5[0,2,0,3]
9122 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,3,2,3]
9123 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2],ymm5[3,4,5,6,7]
9124 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $68, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Folded Reload
9125 ; AVX2-FAST-PERLANE-NEXT:    # ymm5 = mem[0,1,0,1,4,5,4,5]
9126 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $244, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Folded Reload
9127 ; AVX2-FAST-PERLANE-NEXT:    # ymm8 = mem[0,1,3,3,4,5,7,7]
9128 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm5 = ymm8[0,1,2],ymm5[3],ymm8[4,5,6],ymm5[7]
9129 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm5 = ymm5[0,1,0,3]
9130 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4],ymm5[5,6,7]
9131 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9132 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[3,3,3,3]
9133 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $244, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Folded Reload
9134 ; AVX2-FAST-PERLANE-NEXT:    # ymm3 = mem[0,1,3,3,4,5,7,7]
9135 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0],ymm3[1,2,3],ymm2[4],ymm3[5,6,7]
9136 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $255, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Folded Reload
9137 ; AVX2-FAST-PERLANE-NEXT:    # ymm3 = mem[3,3,3,3,7,7,7,7]
9138 ; AVX2-FAST-PERLANE-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
9139 ; AVX2-FAST-PERLANE-NEXT:    # ymm3 = ymm3[0],mem[1],ymm3[2,3,4],mem[5],ymm3[6,7]
9140 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,2,0,3]
9141 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,3,2,3]
9142 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2],ymm3[3,4,5,6,7]
9143 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $68, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Folded Reload
9144 ; AVX2-FAST-PERLANE-NEXT:    # ymm3 = mem[0,1,0,1,4,5,4,5]
9145 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $244, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Folded Reload
9146 ; AVX2-FAST-PERLANE-NEXT:    # ymm5 = mem[0,1,3,3,4,5,7,7]
9147 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm3 = ymm5[0,1,2],ymm3[3],ymm5[4,5,6],ymm3[7]
9148 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,1,0,3]
9149 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm3[5,6,7]
9150 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9151 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[3,3,3,3]
9152 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm2 = ymm15[0,1,3,3,4,5,7,7]
9153 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm2[1,2,3],ymm1[4],ymm2[5,6,7]
9154 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm2 = ymm13[3,3,3,3,7,7,7,7]
9155 ; AVX2-FAST-PERLANE-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
9156 ; AVX2-FAST-PERLANE-NEXT:    # ymm2 = ymm2[0],mem[1],ymm2[2,3,4],mem[5],ymm2[6,7]
9157 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,2,0,3]
9158 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,3,2,3]
9159 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
9160 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $68, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Folded Reload
9161 ; AVX2-FAST-PERLANE-NEXT:    # ymm2 = mem[0,1,0,1,4,5,4,5]
9162 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm3 = ymm14[0,1,3,3,4,5,7,7]
9163 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2],ymm2[3],ymm3[4,5,6],ymm2[7]
9164 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,1,0,3]
9165 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
9166 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9167 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm1 = xmm12[3,3,3,3]
9168 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm2 = ymm6[0,1,3,3,4,5,7,7]
9169 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm2[1,2,3],ymm1[4],ymm2[5,6,7]
9170 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm2 = ymm0[3,3,3,3,7,7,7,7]
9171 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0],ymm9[1],ymm2[2,3,4],ymm9[5],ymm2[6,7]
9172 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,2,0,3]
9173 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,3,2,3]
9174 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4,5,6,7]
9175 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm2 = ymm4[0,1,0,1,4,5,4,5]
9176 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm3 = ymm7[0,1,3,3,4,5,7,7]
9177 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2],ymm2[3],ymm3[4,5,6],ymm2[7]
9178 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,1,0,3]
9179 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4],ymm2[5,6,7]
9180 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9181 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
9182 ; AVX2-FAST-PERLANE-NEXT:    # xmm0 = mem[3,3,3,3]
9183 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $244, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Folded Reload
9184 ; AVX2-FAST-PERLANE-NEXT:    # ymm1 = mem[0,1,3,3,4,5,7,7]
9185 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3],ymm0[4],ymm1[5,6,7]
9186 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
9187 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm13[3,3,3,3,7,7,7,7]
9188 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
9189 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm12[1],ymm1[2,3,4],ymm12[5],ymm1[6,7]
9190 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,0,3]
9191 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,3,2,3]
9192 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
9193 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $68, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Folded Reload
9194 ; AVX2-FAST-PERLANE-NEXT:    # ymm1 = mem[0,1,0,1,4,5,4,5]
9195 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload
9196 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm2 = ymm15[0,1,3,3,4,5,7,7]
9197 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]
9198 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,1,0,3]
9199 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
9200 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9201 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
9202 ; AVX2-FAST-PERLANE-NEXT:    # xmm0 = mem[3,3,3,3]
9203 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload
9204 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm11[0,1,3,3,4,5,7,7]
9205 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3],ymm0[4],ymm1[5,6,7]
9206 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
9207 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm8[3,3,3,3,7,7,7,7]
9208 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
9209 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm7[1],ymm1[2,3,4],ymm7[5],ymm1[6,7]
9210 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,0,3]
9211 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,3,2,3]
9212 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
9213 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
9214 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm10[0,1,0,1,4,5,4,5]
9215 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
9216 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm2 = ymm9[0,1,3,3,4,5,7,7]
9217 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]
9218 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,1,0,3]
9219 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
9220 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9221 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $255, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
9222 ; AVX2-FAST-PERLANE-NEXT:    # xmm0 = mem[3,3,3,3]
9223 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9224 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm6[0,1,3,3,4,5,7,7]
9225 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3],ymm0[4],ymm1[5,6,7]
9226 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
9227 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm3[3,3,3,3,7,7,7,7]
9228 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
9229 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm14[1],ymm1[2,3,4],ymm14[5],ymm1[6,7]
9230 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,0,3]
9231 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,3,2,3]
9232 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4,5,6,7]
9233 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
9234 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm5[0,1,0,1,4,5,4,5]
9235 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
9236 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm2 = ymm4[0,1,3,3,4,5,7,7]
9237 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2],ymm1[3],ymm2[4,5,6],ymm1[7]
9238 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,1,0,3]
9239 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]
9240 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9241 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm14[0,1,2,3],ymm3[4,5,6,7]
9242 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9243 ; AVX2-FAST-PERLANE-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm2 # 32-byte Folded Reload
9244 ; AVX2-FAST-PERLANE-NEXT:    # ymm2 = ymm6[0,1,2,3],mem[4,5,6,7]
9245 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9246 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 80(%rdi), %xmm0
9247 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9248 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3],ymm1[4,5,6,7]
9249 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[0,1,0,2,4,5,4,6]
9250 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
9251 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm2, %ymm14, %ymm1
9252 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm0[2,3,4,5,6,7]
9253 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm5[0,1],ymm4[2,3],ymm5[4,5,6,7]
9254 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9255 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastf128 {{.*#+}} ymm0 = [0,2,0,6,0,2,0,6]
9256 ; AVX2-FAST-PERLANE-NEXT:    # ymm0 = mem[0,1,0,1]
9257 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm2, %ymm0, %ymm2
9258 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
9259 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9260 ; AVX2-FAST-PERLANE-NEXT:    vmovups (%rsp), %ymm1 # 32-byte Reload
9261 ; AVX2-FAST-PERLANE-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
9262 ; AVX2-FAST-PERLANE-NEXT:    # ymm2 = ymm1[0,1,2,3],mem[4,5,6,7]
9263 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9264 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9265 ; AVX2-FAST-PERLANE-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm3 # 32-byte Folded Reload
9266 ; AVX2-FAST-PERLANE-NEXT:    # ymm3 = ymm1[0,1,2,3],mem[4,5,6,7]
9267 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9268 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 272(%rdi), %xmm1
9269 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, (%rsp) # 32-byte Spill
9270 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3],ymm2[4,5,6,7]
9271 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,1,0,2,4,5,4,6]
9272 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm3, %ymm14, %ymm2
9273 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
9274 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9275 ; AVX2-FAST-PERLANE-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
9276 ; AVX2-FAST-PERLANE-NEXT:    # ymm2 = mem[0,1],ymm2[2,3],mem[4,5,6,7]
9277 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9278 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm2, %ymm0, %ymm2
9279 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
9280 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9281 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm7[0,1,2,3],ymm8[4,5,6,7]
9282 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9283 ; AVX2-FAST-PERLANE-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm3 # 32-byte Folded Reload
9284 ; AVX2-FAST-PERLANE-NEXT:    # ymm3 = ymm11[0,1,2,3],mem[4,5,6,7]
9285 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9286 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 464(%rdi), %xmm1
9287 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9288 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3],ymm2[4,5,6,7]
9289 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,1,0,2,4,5,4,6]
9290 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm3, %ymm14, %ymm2
9291 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
9292 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm10[0,1],ymm9[2,3],ymm10[4,5,6,7]
9293 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9294 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm2, %ymm0, %ymm2
9295 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
9296 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9297 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9298 ; AVX2-FAST-PERLANE-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
9299 ; AVX2-FAST-PERLANE-NEXT:    # ymm2 = ymm1[0,1,2,3],mem[4,5,6,7]
9300 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9301 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9302 ; AVX2-FAST-PERLANE-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm3 # 32-byte Folded Reload
9303 ; AVX2-FAST-PERLANE-NEXT:    # ymm3 = ymm1[0,1,2,3],mem[4,5,6,7]
9304 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9305 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 656(%rdi), %xmm1
9306 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9307 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3],ymm2[4,5,6,7]
9308 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,1,0,2,4,5,4,6]
9309 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm3, %ymm14, %ymm2
9310 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
9311 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9312 ; AVX2-FAST-PERLANE-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
9313 ; AVX2-FAST-PERLANE-NEXT:    # ymm2 = mem[0,1],ymm2[2,3],mem[4,5,6,7]
9314 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9315 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm2, %ymm0, %ymm2
9316 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
9317 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9318 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm12[0,1,2,3],ymm13[4,5,6,7]
9319 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9320 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9321 ; AVX2-FAST-PERLANE-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm3 # 32-byte Folded Reload
9322 ; AVX2-FAST-PERLANE-NEXT:    # ymm3 = ymm1[0,1,2,3],mem[4,5,6,7]
9323 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9324 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 848(%rdi), %xmm1
9325 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9326 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3],ymm2[4,5,6,7]
9327 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,1,0,2,4,5,4,6]
9328 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm3, %ymm14, %ymm2
9329 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
9330 ; AVX2-FAST-PERLANE-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm2 # 32-byte Folded Reload
9331 ; AVX2-FAST-PERLANE-NEXT:    # ymm2 = mem[0,1],ymm15[2,3],mem[4,5,6,7]
9332 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9333 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm2, %ymm0, %ymm2
9334 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
9335 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9336 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9337 ; AVX2-FAST-PERLANE-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm13 # 32-byte Folded Reload
9338 ; AVX2-FAST-PERLANE-NEXT:    # ymm13 = ymm1[0,1,2,3],mem[4,5,6,7]
9339 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9340 ; AVX2-FAST-PERLANE-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm12 # 32-byte Folded Reload
9341 ; AVX2-FAST-PERLANE-NEXT:    # ymm12 = ymm1[0,1,2,3],mem[4,5,6,7]
9342 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 1040(%rdi), %xmm11
9343 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm13[0,1],ymm11[2,3],ymm13[4,5,6,7]
9344 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,1,0,2,4,5,4,6]
9345 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm12, %ymm14, %ymm2
9346 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
9347 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9348 ; AVX2-FAST-PERLANE-NEXT:    vblendps $12, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm10 # 32-byte Folded Reload
9349 ; AVX2-FAST-PERLANE-NEXT:    # ymm10 = ymm2[0,1],mem[2,3],ymm2[4,5,6,7]
9350 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm10, %ymm0, %ymm2
9351 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
9352 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9353 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9354 ; AVX2-FAST-PERLANE-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm8 # 32-byte Folded Reload
9355 ; AVX2-FAST-PERLANE-NEXT:    # ymm8 = ymm1[0,1,2,3],mem[4,5,6,7]
9356 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9357 ; AVX2-FAST-PERLANE-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm7 # 32-byte Folded Reload
9358 ; AVX2-FAST-PERLANE-NEXT:    # ymm7 = ymm1[0,1,2,3],mem[4,5,6,7]
9359 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 1232(%rdi), %xmm6
9360 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm8[0,1],ymm6[2,3],ymm8[4,5,6,7]
9361 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,1,0,2,4,5,4,6]
9362 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm7, %ymm14, %ymm2
9363 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
9364 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9365 ; AVX2-FAST-PERLANE-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm5 # 32-byte Folded Reload
9366 ; AVX2-FAST-PERLANE-NEXT:    # ymm5 = mem[0,1],ymm2[2,3],mem[4,5,6,7]
9367 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm5, %ymm0, %ymm2
9368 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]
9369 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9370 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9371 ; AVX2-FAST-PERLANE-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm4 # 32-byte Folded Reload
9372 ; AVX2-FAST-PERLANE-NEXT:    # ymm4 = ymm1[0,1,2,3],mem[4,5,6,7]
9373 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9374 ; AVX2-FAST-PERLANE-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm3 # 32-byte Folded Reload
9375 ; AVX2-FAST-PERLANE-NEXT:    # ymm3 = ymm1[0,1,2,3],mem[4,5,6,7]
9376 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 1424(%rdi), %xmm2
9377 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm4[0,1],ymm2[2,3],ymm4[4,5,6,7]
9378 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,1,0,2,4,5,4,6]
9379 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm3, %ymm14, %ymm15
9380 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm15 = ymm15[0,1],ymm1[2,3,4,5,6,7]
9381 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9382 ; AVX2-FAST-PERLANE-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
9383 ; AVX2-FAST-PERLANE-NEXT:    # ymm1 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
9384 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm1, %ymm0, %ymm0
9385 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm15[0,1,2,3,4],ymm0[5,6,7]
9386 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9387 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Folded Reload
9388 ; AVX2-FAST-PERLANE-NEXT:    # ymm0 = mem[1,1,1,1,5,5,5,5]
9389 ; AVX2-FAST-PERLANE-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
9390 ; AVX2-FAST-PERLANE-NEXT:    # ymm0 = ymm0[0,1,2],mem[3],ymm0[4,5,6,7]
9391 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
9392 ; AVX2-FAST-PERLANE-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm15 # 32-byte Folded Reload
9393 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm15 = ymm15[0,1],ymm0[2,3,4,5,6,7]
9394 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastf128 {{.*#+}} ymm0 = [0,3,1,7,0,3,1,7]
9395 ; AVX2-FAST-PERLANE-NEXT:    # ymm0 = mem[0,1,0,1]
9396 ; AVX2-FAST-PERLANE-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm14 # 32-byte Folded Reload
9397 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm14 = ymm15[0,1,2,3,4],ymm14[5,6,7]
9398 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9399 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Folded Reload
9400 ; AVX2-FAST-PERLANE-NEXT:    # ymm14 = mem[1,1,1,1,5,5,5,5]
9401 ; AVX2-FAST-PERLANE-NEXT:    vblendps $8, (%rsp), %ymm14, %ymm14 # 32-byte Folded Reload
9402 ; AVX2-FAST-PERLANE-NEXT:    # ymm14 = ymm14[0,1,2],mem[3],ymm14[4,5,6,7]
9403 ; AVX2-FAST-PERLANE-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm15 # 32-byte Folded Reload
9404 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm14 = ymm15[0,1],ymm14[2,3,4,5,6,7]
9405 ; AVX2-FAST-PERLANE-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm15 # 32-byte Folded Reload
9406 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3,4],ymm15[5,6,7]
9407 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9408 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Folded Reload
9409 ; AVX2-FAST-PERLANE-NEXT:    # ymm14 = mem[1,1,1,1,5,5,5,5]
9410 ; AVX2-FAST-PERLANE-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
9411 ; AVX2-FAST-PERLANE-NEXT:    # ymm14 = ymm14[0,1,2],mem[3],ymm14[4,5,6,7]
9412 ; AVX2-FAST-PERLANE-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm15 # 32-byte Folded Reload
9413 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm14 = ymm15[0,1],ymm14[2,3,4,5,6,7]
9414 ; AVX2-FAST-PERLANE-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm15 # 32-byte Folded Reload
9415 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3,4],ymm15[5,6,7]
9416 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9417 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Folded Reload
9418 ; AVX2-FAST-PERLANE-NEXT:    # ymm14 = mem[1,1,1,1,5,5,5,5]
9419 ; AVX2-FAST-PERLANE-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
9420 ; AVX2-FAST-PERLANE-NEXT:    # ymm14 = ymm14[0,1,2],mem[3],ymm14[4,5,6,7]
9421 ; AVX2-FAST-PERLANE-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm15 # 32-byte Folded Reload
9422 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm14 = ymm15[0,1],ymm14[2,3,4,5,6,7]
9423 ; AVX2-FAST-PERLANE-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm15 # 32-byte Folded Reload
9424 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3,4],ymm15[5,6,7]
9425 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9426 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Folded Reload
9427 ; AVX2-FAST-PERLANE-NEXT:    # ymm14 = mem[1,1,1,1,5,5,5,5]
9428 ; AVX2-FAST-PERLANE-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
9429 ; AVX2-FAST-PERLANE-NEXT:    # ymm14 = ymm14[0,1,2],mem[3],ymm14[4,5,6,7]
9430 ; AVX2-FAST-PERLANE-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm15 # 32-byte Folded Reload
9431 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm14 = ymm15[0,1],ymm14[2,3,4,5,6,7]
9432 ; AVX2-FAST-PERLANE-NEXT:    vpermps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm15 # 32-byte Folded Reload
9433 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3,4],ymm15[5,6,7]
9434 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm13 = ymm13[1,1,1,1,5,5,5,5]
9435 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm11 = ymm13[0,1,2],ymm11[3],ymm13[4,5,6,7]
9436 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm12, %ymm9, %ymm12
9437 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm11 = ymm12[0,1],ymm11[2,3,4,5,6,7]
9438 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm10, %ymm0, %ymm10
9439 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm10 = ymm11[0,1,2,3,4],ymm10[5,6,7]
9440 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm8 = ymm8[1,1,1,1,5,5,5,5]
9441 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm6 = ymm8[0,1,2],ymm6[3],ymm8[4,5,6,7]
9442 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm7, %ymm9, %ymm7
9443 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1],ymm6[2,3,4,5,6,7]
9444 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm5, %ymm0, %ymm5
9445 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2,3,4],ymm5[5,6,7]
9446 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[1,1,1,1,5,5,5,5]
9447 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2],ymm2[3],ymm4[4,5,6,7]
9448 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm3, %ymm9, %ymm3
9449 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1],ymm2[2,3,4,5,6,7]
9450 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm1, %ymm0, %ymm0
9451 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3,4],ymm0[5,6,7]
9452 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9453 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 192(%rsi)
9454 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9455 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 128(%rsi)
9456 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9457 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 64(%rsi)
9458 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9459 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, (%rsi)
9460 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9461 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 224(%rsi)
9462 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9463 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 160(%rsi)
9464 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9465 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 96(%rsi)
9466 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9467 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 32(%rsi)
9468 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9469 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 192(%rdx)
9470 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9471 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 128(%rdx)
9472 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9473 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 64(%rdx)
9474 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9475 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, (%rdx)
9476 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9477 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 224(%rdx)
9478 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9479 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 160(%rdx)
9480 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9481 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 96(%rdx)
9482 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9483 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 32(%rdx)
9484 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9485 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 192(%rcx)
9486 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9487 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 128(%rcx)
9488 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9489 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 64(%rcx)
9490 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9491 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, (%rcx)
9492 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9493 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 224(%rcx)
9494 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9495 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 160(%rcx)
9496 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9497 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 96(%rcx)
9498 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9499 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 32(%rcx)
9500 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9501 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, (%r8)
9502 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9503 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 64(%r8)
9504 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9505 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 128(%r8)
9506 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9507 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 192(%r8)
9508 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9509 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 224(%r8)
9510 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9511 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 160(%r8)
9512 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9513 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 96(%r8)
9514 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9515 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 32(%r8)
9516 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9517 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 224(%r9)
9518 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9519 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 192(%r9)
9520 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9521 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 160(%r9)
9522 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9523 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 128(%r9)
9524 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9525 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 96(%r9)
9526 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9527 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 64(%r9)
9528 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9529 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, 32(%r9)
9530 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9531 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, (%r9)
9532 ; AVX2-FAST-PERLANE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
9533 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 224(%rax)
9534 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm5, 192(%rax)
9535 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm10, 160(%rax)
9536 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm14, 128(%rax)
9537 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9538 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 96(%rax)
9539 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9540 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 64(%rax)
9541 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9542 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 32(%rax)
9543 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9544 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, (%rax)
9545 ; AVX2-FAST-PERLANE-NEXT:    addq $2536, %rsp # imm = 0x9E8
9546 ; AVX2-FAST-PERLANE-NEXT:    vzeroupper
9547 ; AVX2-FAST-PERLANE-NEXT:    retq
9549 ; AVX512F-LABEL: load_i32_stride6_vf64:
9550 ; AVX512F:       # %bb.0:
9551 ; AVX512F-NEXT:    subq $2632, %rsp # imm = 0xA48
9552 ; AVX512F-NEXT:    vmovdqa64 1472(%rdi), %zmm21
9553 ; AVX512F-NEXT:    vmovdqa64 1408(%rdi), %zmm1
9554 ; AVX512F-NEXT:    vmovdqa64 1088(%rdi), %zmm20
9555 ; AVX512F-NEXT:    vmovdqa64 1024(%rdi), %zmm0
9556 ; AVX512F-NEXT:    vmovdqa64 512(%rdi), %zmm2
9557 ; AVX512F-NEXT:    vmovdqa64 576(%rdi), %zmm18
9558 ; AVX512F-NEXT:    vmovdqa64 704(%rdi), %zmm27
9559 ; AVX512F-NEXT:    vmovdqa64 640(%rdi), %zmm3
9560 ; AVX512F-NEXT:    vmovdqa64 320(%rdi), %zmm25
9561 ; AVX512F-NEXT:    vmovdqa64 256(%rdi), %zmm4
9562 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [0,6,12,0,0,0,20,26,0,6,12,0,0,0,20,26]
9563 ; AVX512F-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
9564 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm6 = [0,0,0,2,8,14,20,26,0,0,0,2,8,14,20,26]
9565 ; AVX512F-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3]
9566 ; AVX512F-NEXT:    vmovdqa64 %zmm4, %zmm7
9567 ; AVX512F-NEXT:    vpermt2d %zmm25, %zmm6, %zmm7
9568 ; AVX512F-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9569 ; AVX512F-NEXT:    vmovdqa64 %zmm3, %zmm7
9570 ; AVX512F-NEXT:    vpermt2d %zmm27, %zmm6, %zmm7
9571 ; AVX512F-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9572 ; AVX512F-NEXT:    vmovdqa64 %zmm18, %zmm7
9573 ; AVX512F-NEXT:    vpermt2d %zmm2, %zmm5, %zmm7
9574 ; AVX512F-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9575 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm7
9576 ; AVX512F-NEXT:    vpermt2d %zmm20, %zmm6, %zmm7
9577 ; AVX512F-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9578 ; AVX512F-NEXT:    vpermi2d %zmm21, %zmm1, %zmm6
9579 ; AVX512F-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9580 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm7 = [0,0,0,3,9,15,21,27,0,0,0,3,9,15,21,27]
9581 ; AVX512F-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3]
9582 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm8
9583 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm6
9584 ; AVX512F-NEXT:    vpermt2d %zmm20, %zmm7, %zmm8
9585 ; AVX512F-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9586 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [1,7,13,0,0,0,21,27,1,7,13,0,0,0,21,27]
9587 ; AVX512F-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
9588 ; AVX512F-NEXT:    vmovdqa64 %zmm3, %zmm0
9589 ; AVX512F-NEXT:    vpermt2d %zmm27, %zmm7, %zmm0
9590 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9591 ; AVX512F-NEXT:    vmovdqa64 %zmm4, %zmm0
9592 ; AVX512F-NEXT:    vpermt2d %zmm25, %zmm7, %zmm0
9593 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9594 ; AVX512F-NEXT:    vpermi2d %zmm21, %zmm1, %zmm7
9595 ; AVX512F-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9596 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [0,0,0,20,26,0,6,12,0,0,0,20,26,0,6,12]
9597 ; AVX512F-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
9598 ; AVX512F-NEXT:    vmovdqa64 %zmm20, %zmm7
9599 ; AVX512F-NEXT:    vpermt2d %zmm6, %zmm0, %zmm7
9600 ; AVX512F-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9601 ; AVX512F-NEXT:    vmovdqa64 %zmm27, %zmm7
9602 ; AVX512F-NEXT:    vpermt2d %zmm3, %zmm0, %zmm7
9603 ; AVX512F-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9604 ; AVX512F-NEXT:    vmovdqa64 %zmm25, %zmm7
9605 ; AVX512F-NEXT:    vpermt2d %zmm4, %zmm0, %zmm7
9606 ; AVX512F-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9607 ; AVX512F-NEXT:    vpermi2d %zmm1, %zmm21, %zmm0
9608 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9609 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [0,0,0,21,27,1,7,13,0,0,0,21,27,1,7,13]
9610 ; AVX512F-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
9611 ; AVX512F-NEXT:    vmovdqa64 %zmm20, %zmm7
9612 ; AVX512F-NEXT:    vpermt2d %zmm6, %zmm0, %zmm7
9613 ; AVX512F-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9614 ; AVX512F-NEXT:    vmovdqa64 %zmm27, %zmm7
9615 ; AVX512F-NEXT:    vpermt2d %zmm3, %zmm0, %zmm7
9616 ; AVX512F-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9617 ; AVX512F-NEXT:    vmovdqa64 %zmm25, %zmm7
9618 ; AVX512F-NEXT:    vpermt2d %zmm4, %zmm0, %zmm7
9619 ; AVX512F-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9620 ; AVX512F-NEXT:    vpermi2d %zmm1, %zmm21, %zmm0
9621 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9622 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm7 = [0,0,0,6,12,18,24,30,0,0,0,6,12,18,24,30]
9623 ; AVX512F-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3]
9624 ; AVX512F-NEXT:    vmovdqa64 %zmm3, %zmm0
9625 ; AVX512F-NEXT:    vpermt2d %zmm27, %zmm7, %zmm0
9626 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9627 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [0,0,1,7,13,19,25,31,0,0,1,7,13,19,25,31]
9628 ; AVX512F-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
9629 ; AVX512F-NEXT:    vpermt2d %zmm27, %zmm0, %zmm3
9630 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9631 ; AVX512F-NEXT:    vmovdqa64 %zmm4, %zmm3
9632 ; AVX512F-NEXT:    vpermt2d %zmm25, %zmm7, %zmm3
9633 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9634 ; AVX512F-NEXT:    vpermt2d %zmm25, %zmm0, %zmm4
9635 ; AVX512F-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9636 ; AVX512F-NEXT:    vmovdqa64 %zmm6, %zmm3
9637 ; AVX512F-NEXT:    vpermt2d %zmm20, %zmm7, %zmm3
9638 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9639 ; AVX512F-NEXT:    vpermi2d %zmm21, %zmm1, %zmm7
9640 ; AVX512F-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9641 ; AVX512F-NEXT:    vpermt2d %zmm21, %zmm0, %zmm1
9642 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9643 ; AVX512F-NEXT:    vmovdqa64 %zmm18, %zmm1
9644 ; AVX512F-NEXT:    vpermt2d %zmm2, %zmm8, %zmm1
9645 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9646 ; AVX512F-NEXT:    vpermt2d %zmm20, %zmm0, %zmm6
9647 ; AVX512F-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9648 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm31 = [18,24,30,0,0,0,6,12,18,24,30,0,0,0,6,12]
9649 ; AVX512F-NEXT:    # zmm31 = mem[0,1,2,3,0,1,2,3]
9650 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm0
9651 ; AVX512F-NEXT:    vpermt2d %zmm18, %zmm31, %zmm0
9652 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9653 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm25 = [19,25,31,0,0,1,7,13,19,25,31,0,0,1,7,13]
9654 ; AVX512F-NEXT:    # zmm25 = mem[0,1,2,3,0,1,2,3]
9655 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm0
9656 ; AVX512F-NEXT:    vpermt2d %zmm18, %zmm25, %zmm0
9657 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9658 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm3 = [20,26,0,0,0,2,8,14,20,26,0,0,0,2,8,14]
9659 ; AVX512F-NEXT:    # zmm3 = mem[0,1,2,3,0,1,2,3]
9660 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm0
9661 ; AVX512F-NEXT:    vpermt2d %zmm18, %zmm3, %zmm0
9662 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9663 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [21,27,0,0,0,3,9,15,21,27,0,0,0,3,9,15]
9664 ; AVX512F-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
9665 ; AVX512F-NEXT:    vpermt2d %zmm18, %zmm0, %zmm2
9666 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9667 ; AVX512F-NEXT:    vmovdqa64 128(%rdi), %zmm26
9668 ; AVX512F-NEXT:    vmovdqa64 192(%rdi), %zmm1
9669 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm2
9670 ; AVX512F-NEXT:    vpermt2d %zmm26, %zmm5, %zmm2
9671 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9672 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm2
9673 ; AVX512F-NEXT:    vpermt2d %zmm26, %zmm8, %zmm2
9674 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9675 ; AVX512F-NEXT:    vmovdqa64 %zmm26, %zmm2
9676 ; AVX512F-NEXT:    vpermt2d %zmm1, %zmm31, %zmm2
9677 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9678 ; AVX512F-NEXT:    vmovdqa64 %zmm26, %zmm2
9679 ; AVX512F-NEXT:    vpermt2d %zmm1, %zmm25, %zmm2
9680 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9681 ; AVX512F-NEXT:    vmovdqa64 %zmm26, %zmm2
9682 ; AVX512F-NEXT:    vpermt2d %zmm1, %zmm3, %zmm2
9683 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9684 ; AVX512F-NEXT:    vpermt2d %zmm1, %zmm0, %zmm26
9685 ; AVX512F-NEXT:    vmovdqa64 896(%rdi), %zmm22
9686 ; AVX512F-NEXT:    vmovdqa64 960(%rdi), %zmm1
9687 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm2
9688 ; AVX512F-NEXT:    vpermt2d %zmm22, %zmm5, %zmm2
9689 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9690 ; AVX512F-NEXT:    vmovdqa64 1280(%rdi), %zmm19
9691 ; AVX512F-NEXT:    vmovdqa64 1344(%rdi), %zmm2
9692 ; AVX512F-NEXT:    vpermi2d %zmm19, %zmm2, %zmm5
9693 ; AVX512F-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9694 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm4
9695 ; AVX512F-NEXT:    vpermt2d %zmm22, %zmm8, %zmm4
9696 ; AVX512F-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9697 ; AVX512F-NEXT:    vpermi2d %zmm19, %zmm2, %zmm8
9698 ; AVX512F-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9699 ; AVX512F-NEXT:    vmovdqa64 %zmm22, %zmm28
9700 ; AVX512F-NEXT:    vpermt2d %zmm1, %zmm31, %zmm28
9701 ; AVX512F-NEXT:    vpermi2d %zmm2, %zmm19, %zmm31
9702 ; AVX512F-NEXT:    vmovdqa64 %zmm22, %zmm29
9703 ; AVX512F-NEXT:    vpermt2d %zmm1, %zmm25, %zmm29
9704 ; AVX512F-NEXT:    vpermi2d %zmm2, %zmm19, %zmm25
9705 ; AVX512F-NEXT:    vmovdqa64 %zmm22, %zmm4
9706 ; AVX512F-NEXT:    vpermt2d %zmm1, %zmm3, %zmm4
9707 ; AVX512F-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9708 ; AVX512F-NEXT:    vpermi2d %zmm2, %zmm19, %zmm3
9709 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9710 ; AVX512F-NEXT:    vpermt2d %zmm2, %zmm0, %zmm19
9711 ; AVX512F-NEXT:    vpermt2d %zmm1, %zmm0, %zmm22
9712 ; AVX512F-NEXT:    vmovdqa64 448(%rdi), %zmm2
9713 ; AVX512F-NEXT:    vmovdqa64 384(%rdi), %zmm0
9714 ; AVX512F-NEXT:    vmovdqa {{.*#+}} ymm3 = [0,6,12,18,24,30,u,u]
9715 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm20
9716 ; AVX512F-NEXT:    vpermt2d %zmm2, %zmm3, %zmm20
9717 ; AVX512F-NEXT:    vmovdqa {{.*#+}} ymm4 = [1,7,13,19,25,31,u,u]
9718 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm21
9719 ; AVX512F-NEXT:    vpermt2d %zmm2, %zmm4, %zmm21
9720 ; AVX512F-NEXT:    vmovdqa {{.*#+}} ymm12 = [2,8,14,20,26,u,u,u]
9721 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm1
9722 ; AVX512F-NEXT:    vpermt2d %zmm2, %zmm12, %zmm1
9723 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9724 ; AVX512F-NEXT:    vmovdqa {{.*#+}} ymm14 = [3,9,15,21,27,u,u,u]
9725 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm1
9726 ; AVX512F-NEXT:    vpermt2d %zmm2, %zmm14, %zmm1
9727 ; AVX512F-NEXT:    vmovdqu64 %zmm1, (%rsp) # 64-byte Spill
9728 ; AVX512F-NEXT:    vmovdqa {{.*#+}} ymm5 = [20,26,0,6,12,u,u,u]
9729 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm23
9730 ; AVX512F-NEXT:    vpermt2d %zmm0, %zmm5, %zmm23
9731 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} ymm24 = [21,27,1,7,13,u,u,u]
9732 ; AVX512F-NEXT:    vpermt2d %zmm0, %zmm24, %zmm2
9733 ; AVX512F-NEXT:    vmovdqa64 (%rdi), %zmm0
9734 ; AVX512F-NEXT:    vmovdqa64 64(%rdi), %zmm6
9735 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm15
9736 ; AVX512F-NEXT:    vpermt2d %zmm6, %zmm3, %zmm15
9737 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm16
9738 ; AVX512F-NEXT:    vpermt2d %zmm6, %zmm4, %zmm16
9739 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm27
9740 ; AVX512F-NEXT:    vpermt2d %zmm6, %zmm12, %zmm27
9741 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm30
9742 ; AVX512F-NEXT:    vpermt2d %zmm6, %zmm14, %zmm30
9743 ; AVX512F-NEXT:    vmovdqa64 %zmm6, %zmm17
9744 ; AVX512F-NEXT:    vpermt2d %zmm0, %zmm5, %zmm17
9745 ; AVX512F-NEXT:    vpermt2d %zmm0, %zmm24, %zmm6
9746 ; AVX512F-NEXT:    vmovdqa64 832(%rdi), %zmm10
9747 ; AVX512F-NEXT:    vmovdqa64 768(%rdi), %zmm7
9748 ; AVX512F-NEXT:    vmovdqa64 %zmm7, %zmm8
9749 ; AVX512F-NEXT:    vpermt2d %zmm10, %zmm3, %zmm8
9750 ; AVX512F-NEXT:    vmovdqa64 1216(%rdi), %zmm1
9751 ; AVX512F-NEXT:    vmovdqa64 1152(%rdi), %zmm0
9752 ; AVX512F-NEXT:    vpermi2d %zmm1, %zmm0, %zmm3
9753 ; AVX512F-NEXT:    vmovdqa64 %zmm7, %zmm9
9754 ; AVX512F-NEXT:    vpermt2d %zmm10, %zmm4, %zmm9
9755 ; AVX512F-NEXT:    vpermi2d %zmm1, %zmm0, %zmm4
9756 ; AVX512F-NEXT:    vmovdqa64 %zmm7, %zmm13
9757 ; AVX512F-NEXT:    vpermt2d %zmm10, %zmm12, %zmm13
9758 ; AVX512F-NEXT:    vpermi2d %zmm1, %zmm0, %zmm12
9759 ; AVX512F-NEXT:    vmovdqa64 %zmm7, %zmm18
9760 ; AVX512F-NEXT:    vpermt2d %zmm10, %zmm14, %zmm18
9761 ; AVX512F-NEXT:    vpermi2d %zmm1, %zmm0, %zmm14
9762 ; AVX512F-NEXT:    vmovdqa64 %zmm10, %zmm11
9763 ; AVX512F-NEXT:    vpermt2d %zmm7, %zmm5, %zmm11
9764 ; AVX512F-NEXT:    vpermi2d %zmm0, %zmm1, %zmm5
9765 ; AVX512F-NEXT:    vpermt2d %zmm0, %zmm24, %zmm1
9766 ; AVX512F-NEXT:    vpermt2d %zmm7, %zmm24, %zmm10
9767 ; AVX512F-NEXT:    movb $56, %al
9768 ; AVX512F-NEXT:    kmovw %eax, %k2
9769 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9770 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm15 {%k2}
9771 ; AVX512F-NEXT:    movw $-2048, %ax # imm = 0xF800
9772 ; AVX512F-NEXT:    kmovw %eax, %k1
9773 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9774 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm15 {%k1}
9775 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9776 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm20 {%k2}
9777 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9778 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm20 {%k1}
9779 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9780 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k2}
9781 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9782 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm8 {%k1}
9783 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9784 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k2}
9785 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9786 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm3 {%k1}
9787 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9788 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm9 {%k2}
9789 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9790 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm9 {%k1}
9791 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9792 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm21 {%k2}
9793 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9794 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm21 {%k1}
9795 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9796 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm16 {%k2}
9797 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9798 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm16 {%k1}
9799 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9800 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k2}
9801 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9802 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm4 {%k1}
9803 ; AVX512F-NEXT:    movw $31, %ax
9804 ; AVX512F-NEXT:    kmovw %eax, %k2
9805 ; AVX512F-NEXT:    vmovdqa32 %zmm13, %zmm28 {%k2}
9806 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9807 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm28 {%k1}
9808 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
9809 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9810 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm7 {%k2}
9811 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9812 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm7 {%k1}
9813 ; AVX512F-NEXT:    vmovdqa64 %zmm7, %zmm13
9814 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
9815 ; AVX512F-NEXT:    vmovdqa32 %zmm27, %zmm7 {%k2}
9816 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9817 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm7 {%k1}
9818 ; AVX512F-NEXT:    vmovdqa64 %zmm7, %zmm24
9819 ; AVX512F-NEXT:    vmovdqa32 %zmm12, %zmm31 {%k2}
9820 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9821 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm31 {%k1}
9822 ; AVX512F-NEXT:    vmovdqa32 %zmm18, %zmm29 {%k2}
9823 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9824 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm29 {%k1}
9825 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
9826 ; AVX512F-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
9827 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm7 {%k2}
9828 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9829 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm7 {%k1}
9830 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
9831 ; AVX512F-NEXT:    vmovdqa32 %zmm30, %zmm12 {%k2}
9832 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9833 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm12 {%k1}
9834 ; AVX512F-NEXT:    vmovdqa32 %zmm14, %zmm25 {%k2}
9835 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9836 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm25 {%k1}
9837 ; AVX512F-NEXT:    movw $992, %ax # imm = 0x3E0
9838 ; AVX512F-NEXT:    kmovw %eax, %k1
9839 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9840 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm11 {%k1}
9841 ; AVX512F-NEXT:    movb $-32, %al
9842 ; AVX512F-NEXT:    kmovw %eax, %k2
9843 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9844 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm11 {%k2}
9845 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9846 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm23 {%k1}
9847 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9848 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm23 {%k2}
9849 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9850 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm17 {%k1}
9851 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9852 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm17 {%k2}
9853 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9854 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm5 {%k1}
9855 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9856 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm5 {%k2}
9857 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9858 ; AVX512F-NEXT:    vmovdqa32 %zmm0, %zmm2 {%k1}
9859 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9860 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k2}
9861 ; AVX512F-NEXT:    vmovdqa32 %zmm26, %zmm6 {%k1}
9862 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9863 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k2}
9864 ; AVX512F-NEXT:    vmovdqa32 %zmm19, %zmm1 {%k1}
9865 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9866 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
9867 ; AVX512F-NEXT:    vmovdqa32 %zmm22, %zmm10 {%k1}
9868 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9869 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm10 {%k2}
9870 ; AVX512F-NEXT:    vmovdqa64 %zmm3, 192(%rsi)
9871 ; AVX512F-NEXT:    vmovdqa64 %zmm8, 128(%rsi)
9872 ; AVX512F-NEXT:    vmovdqa64 %zmm20, 64(%rsi)
9873 ; AVX512F-NEXT:    vmovdqa64 %zmm15, (%rsi)
9874 ; AVX512F-NEXT:    vmovdqa64 %zmm4, 192(%rdx)
9875 ; AVX512F-NEXT:    vmovdqa64 %zmm16, (%rdx)
9876 ; AVX512F-NEXT:    vmovdqa64 %zmm21, 64(%rdx)
9877 ; AVX512F-NEXT:    vmovdqa64 %zmm9, 128(%rdx)
9878 ; AVX512F-NEXT:    vmovdqa64 %zmm31, 192(%rcx)
9879 ; AVX512F-NEXT:    vmovdqa64 %zmm24, (%rcx)
9880 ; AVX512F-NEXT:    vmovdqa64 %zmm13, 64(%rcx)
9881 ; AVX512F-NEXT:    vmovdqa64 %zmm28, 128(%rcx)
9882 ; AVX512F-NEXT:    vmovdqa64 %zmm25, 192(%r8)
9883 ; AVX512F-NEXT:    vmovdqa64 %zmm12, (%r8)
9884 ; AVX512F-NEXT:    vmovdqa64 %zmm7, 64(%r8)
9885 ; AVX512F-NEXT:    vmovdqa64 %zmm29, 128(%r8)
9886 ; AVX512F-NEXT:    vmovdqa64 %zmm5, 192(%r9)
9887 ; AVX512F-NEXT:    vmovdqa64 %zmm17, (%r9)
9888 ; AVX512F-NEXT:    vmovdqa64 %zmm23, 64(%r9)
9889 ; AVX512F-NEXT:    vmovdqa64 %zmm11, 128(%r9)
9890 ; AVX512F-NEXT:    movq {{[0-9]+}}(%rsp), %rax
9891 ; AVX512F-NEXT:    vmovdqa64 %zmm10, 128(%rax)
9892 ; AVX512F-NEXT:    vmovdqa64 %zmm1, 192(%rax)
9893 ; AVX512F-NEXT:    vmovdqa64 %zmm6, (%rax)
9894 ; AVX512F-NEXT:    vmovdqa64 %zmm2, 64(%rax)
9895 ; AVX512F-NEXT:    addq $2632, %rsp # imm = 0xA48
9896 ; AVX512F-NEXT:    vzeroupper
9897 ; AVX512F-NEXT:    retq
9899 ; AVX512BW-LABEL: load_i32_stride6_vf64:
9900 ; AVX512BW:       # %bb.0:
9901 ; AVX512BW-NEXT:    subq $2632, %rsp # imm = 0xA48
9902 ; AVX512BW-NEXT:    vmovdqa64 1472(%rdi), %zmm21
9903 ; AVX512BW-NEXT:    vmovdqa64 1408(%rdi), %zmm1
9904 ; AVX512BW-NEXT:    vmovdqa64 1088(%rdi), %zmm20
9905 ; AVX512BW-NEXT:    vmovdqa64 1024(%rdi), %zmm0
9906 ; AVX512BW-NEXT:    vmovdqa64 512(%rdi), %zmm2
9907 ; AVX512BW-NEXT:    vmovdqa64 576(%rdi), %zmm18
9908 ; AVX512BW-NEXT:    vmovdqa64 704(%rdi), %zmm27
9909 ; AVX512BW-NEXT:    vmovdqa64 640(%rdi), %zmm3
9910 ; AVX512BW-NEXT:    vmovdqa64 320(%rdi), %zmm25
9911 ; AVX512BW-NEXT:    vmovdqa64 256(%rdi), %zmm4
9912 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [0,6,12,0,0,0,20,26,0,6,12,0,0,0,20,26]
9913 ; AVX512BW-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
9914 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm6 = [0,0,0,2,8,14,20,26,0,0,0,2,8,14,20,26]
9915 ; AVX512BW-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3]
9916 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm7
9917 ; AVX512BW-NEXT:    vpermt2d %zmm25, %zmm6, %zmm7
9918 ; AVX512BW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9919 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm7
9920 ; AVX512BW-NEXT:    vpermt2d %zmm27, %zmm6, %zmm7
9921 ; AVX512BW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9922 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, %zmm7
9923 ; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm5, %zmm7
9924 ; AVX512BW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9925 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm7
9926 ; AVX512BW-NEXT:    vpermt2d %zmm20, %zmm6, %zmm7
9927 ; AVX512BW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9928 ; AVX512BW-NEXT:    vpermi2d %zmm21, %zmm1, %zmm6
9929 ; AVX512BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9930 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm7 = [0,0,0,3,9,15,21,27,0,0,0,3,9,15,21,27]
9931 ; AVX512BW-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3]
9932 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm8
9933 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm6
9934 ; AVX512BW-NEXT:    vpermt2d %zmm20, %zmm7, %zmm8
9935 ; AVX512BW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9936 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [1,7,13,0,0,0,21,27,1,7,13,0,0,0,21,27]
9937 ; AVX512BW-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
9938 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm0
9939 ; AVX512BW-NEXT:    vpermt2d %zmm27, %zmm7, %zmm0
9940 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9941 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm0
9942 ; AVX512BW-NEXT:    vpermt2d %zmm25, %zmm7, %zmm0
9943 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9944 ; AVX512BW-NEXT:    vpermi2d %zmm21, %zmm1, %zmm7
9945 ; AVX512BW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9946 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [0,0,0,20,26,0,6,12,0,0,0,20,26,0,6,12]
9947 ; AVX512BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
9948 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, %zmm7
9949 ; AVX512BW-NEXT:    vpermt2d %zmm6, %zmm0, %zmm7
9950 ; AVX512BW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9951 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, %zmm7
9952 ; AVX512BW-NEXT:    vpermt2d %zmm3, %zmm0, %zmm7
9953 ; AVX512BW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9954 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, %zmm7
9955 ; AVX512BW-NEXT:    vpermt2d %zmm4, %zmm0, %zmm7
9956 ; AVX512BW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9957 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm21, %zmm0
9958 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9959 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [0,0,0,21,27,1,7,13,0,0,0,21,27,1,7,13]
9960 ; AVX512BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
9961 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, %zmm7
9962 ; AVX512BW-NEXT:    vpermt2d %zmm6, %zmm0, %zmm7
9963 ; AVX512BW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9964 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, %zmm7
9965 ; AVX512BW-NEXT:    vpermt2d %zmm3, %zmm0, %zmm7
9966 ; AVX512BW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9967 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, %zmm7
9968 ; AVX512BW-NEXT:    vpermt2d %zmm4, %zmm0, %zmm7
9969 ; AVX512BW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9970 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm21, %zmm0
9971 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9972 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm7 = [0,0,0,6,12,18,24,30,0,0,0,6,12,18,24,30]
9973 ; AVX512BW-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3]
9974 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm0
9975 ; AVX512BW-NEXT:    vpermt2d %zmm27, %zmm7, %zmm0
9976 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9977 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [0,0,1,7,13,19,25,31,0,0,1,7,13,19,25,31]
9978 ; AVX512BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
9979 ; AVX512BW-NEXT:    vpermt2d %zmm27, %zmm0, %zmm3
9980 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9981 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm3
9982 ; AVX512BW-NEXT:    vpermt2d %zmm25, %zmm7, %zmm3
9983 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9984 ; AVX512BW-NEXT:    vpermt2d %zmm25, %zmm0, %zmm4
9985 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9986 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm3
9987 ; AVX512BW-NEXT:    vpermt2d %zmm20, %zmm7, %zmm3
9988 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9989 ; AVX512BW-NEXT:    vpermi2d %zmm21, %zmm1, %zmm7
9990 ; AVX512BW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9991 ; AVX512BW-NEXT:    vpermt2d %zmm21, %zmm0, %zmm1
9992 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9993 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, %zmm1
9994 ; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm8, %zmm1
9995 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9996 ; AVX512BW-NEXT:    vpermt2d %zmm20, %zmm0, %zmm6
9997 ; AVX512BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9998 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm31 = [18,24,30,0,0,0,6,12,18,24,30,0,0,0,6,12]
9999 ; AVX512BW-NEXT:    # zmm31 = mem[0,1,2,3,0,1,2,3]
10000 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm0
10001 ; AVX512BW-NEXT:    vpermt2d %zmm18, %zmm31, %zmm0
10002 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10003 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm25 = [19,25,31,0,0,1,7,13,19,25,31,0,0,1,7,13]
10004 ; AVX512BW-NEXT:    # zmm25 = mem[0,1,2,3,0,1,2,3]
10005 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm0
10006 ; AVX512BW-NEXT:    vpermt2d %zmm18, %zmm25, %zmm0
10007 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10008 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm3 = [20,26,0,0,0,2,8,14,20,26,0,0,0,2,8,14]
10009 ; AVX512BW-NEXT:    # zmm3 = mem[0,1,2,3,0,1,2,3]
10010 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm0
10011 ; AVX512BW-NEXT:    vpermt2d %zmm18, %zmm3, %zmm0
10012 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10013 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [21,27,0,0,0,3,9,15,21,27,0,0,0,3,9,15]
10014 ; AVX512BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
10015 ; AVX512BW-NEXT:    vpermt2d %zmm18, %zmm0, %zmm2
10016 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10017 ; AVX512BW-NEXT:    vmovdqa64 128(%rdi), %zmm26
10018 ; AVX512BW-NEXT:    vmovdqa64 192(%rdi), %zmm1
10019 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm2
10020 ; AVX512BW-NEXT:    vpermt2d %zmm26, %zmm5, %zmm2
10021 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10022 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm2
10023 ; AVX512BW-NEXT:    vpermt2d %zmm26, %zmm8, %zmm2
10024 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10025 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, %zmm2
10026 ; AVX512BW-NEXT:    vpermt2d %zmm1, %zmm31, %zmm2
10027 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10028 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, %zmm2
10029 ; AVX512BW-NEXT:    vpermt2d %zmm1, %zmm25, %zmm2
10030 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10031 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, %zmm2
10032 ; AVX512BW-NEXT:    vpermt2d %zmm1, %zmm3, %zmm2
10033 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10034 ; AVX512BW-NEXT:    vpermt2d %zmm1, %zmm0, %zmm26
10035 ; AVX512BW-NEXT:    vmovdqa64 896(%rdi), %zmm22
10036 ; AVX512BW-NEXT:    vmovdqa64 960(%rdi), %zmm1
10037 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm2
10038 ; AVX512BW-NEXT:    vpermt2d %zmm22, %zmm5, %zmm2
10039 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10040 ; AVX512BW-NEXT:    vmovdqa64 1280(%rdi), %zmm19
10041 ; AVX512BW-NEXT:    vmovdqa64 1344(%rdi), %zmm2
10042 ; AVX512BW-NEXT:    vpermi2d %zmm19, %zmm2, %zmm5
10043 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10044 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm4
10045 ; AVX512BW-NEXT:    vpermt2d %zmm22, %zmm8, %zmm4
10046 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10047 ; AVX512BW-NEXT:    vpermi2d %zmm19, %zmm2, %zmm8
10048 ; AVX512BW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10049 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm28
10050 ; AVX512BW-NEXT:    vpermt2d %zmm1, %zmm31, %zmm28
10051 ; AVX512BW-NEXT:    vpermi2d %zmm2, %zmm19, %zmm31
10052 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm29
10053 ; AVX512BW-NEXT:    vpermt2d %zmm1, %zmm25, %zmm29
10054 ; AVX512BW-NEXT:    vpermi2d %zmm2, %zmm19, %zmm25
10055 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm4
10056 ; AVX512BW-NEXT:    vpermt2d %zmm1, %zmm3, %zmm4
10057 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10058 ; AVX512BW-NEXT:    vpermi2d %zmm2, %zmm19, %zmm3
10059 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10060 ; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm0, %zmm19
10061 ; AVX512BW-NEXT:    vpermt2d %zmm1, %zmm0, %zmm22
10062 ; AVX512BW-NEXT:    vmovdqa64 448(%rdi), %zmm2
10063 ; AVX512BW-NEXT:    vmovdqa64 384(%rdi), %zmm0
10064 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} ymm3 = [0,6,12,18,24,30,u,u]
10065 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm20
10066 ; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm3, %zmm20
10067 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} ymm4 = [1,7,13,19,25,31,u,u]
10068 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm21
10069 ; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm4, %zmm21
10070 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} ymm12 = [2,8,14,20,26,u,u,u]
10071 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1
10072 ; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm12, %zmm1
10073 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10074 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} ymm14 = [3,9,15,21,27,u,u,u]
10075 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1
10076 ; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm14, %zmm1
10077 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, (%rsp) # 64-byte Spill
10078 ; AVX512BW-NEXT:    vmovdqa {{.*#+}} ymm5 = [20,26,0,6,12,u,u,u]
10079 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm23
10080 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm5, %zmm23
10081 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} ymm24 = [21,27,1,7,13,u,u,u]
10082 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm24, %zmm2
10083 ; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm0
10084 ; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %zmm6
10085 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm15
10086 ; AVX512BW-NEXT:    vpermt2d %zmm6, %zmm3, %zmm15
10087 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm16
10088 ; AVX512BW-NEXT:    vpermt2d %zmm6, %zmm4, %zmm16
10089 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm27
10090 ; AVX512BW-NEXT:    vpermt2d %zmm6, %zmm12, %zmm27
10091 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm30
10092 ; AVX512BW-NEXT:    vpermt2d %zmm6, %zmm14, %zmm30
10093 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm17
10094 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm5, %zmm17
10095 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm24, %zmm6
10096 ; AVX512BW-NEXT:    vmovdqa64 832(%rdi), %zmm10
10097 ; AVX512BW-NEXT:    vmovdqa64 768(%rdi), %zmm7
10098 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm8
10099 ; AVX512BW-NEXT:    vpermt2d %zmm10, %zmm3, %zmm8
10100 ; AVX512BW-NEXT:    vmovdqa64 1216(%rdi), %zmm1
10101 ; AVX512BW-NEXT:    vmovdqa64 1152(%rdi), %zmm0
10102 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm3
10103 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm9
10104 ; AVX512BW-NEXT:    vpermt2d %zmm10, %zmm4, %zmm9
10105 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm4
10106 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm13
10107 ; AVX512BW-NEXT:    vpermt2d %zmm10, %zmm12, %zmm13
10108 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm12
10109 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm18
10110 ; AVX512BW-NEXT:    vpermt2d %zmm10, %zmm14, %zmm18
10111 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm14
10112 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm11
10113 ; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm5, %zmm11
10114 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm1, %zmm5
10115 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm24, %zmm1
10116 ; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm24, %zmm10
10117 ; AVX512BW-NEXT:    movb $56, %al
10118 ; AVX512BW-NEXT:    kmovd %eax, %k2
10119 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10120 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm15 {%k2}
10121 ; AVX512BW-NEXT:    movw $-2048, %ax # imm = 0xF800
10122 ; AVX512BW-NEXT:    kmovd %eax, %k1
10123 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10124 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm15 {%k1}
10125 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10126 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm20 {%k2}
10127 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10128 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm20 {%k1}
10129 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10130 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k2}
10131 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10132 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm8 {%k1}
10133 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10134 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k2}
10135 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10136 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm3 {%k1}
10137 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10138 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm9 {%k2}
10139 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10140 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm9 {%k1}
10141 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10142 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm21 {%k2}
10143 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10144 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm21 {%k1}
10145 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10146 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm16 {%k2}
10147 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10148 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm16 {%k1}
10149 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10150 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k2}
10151 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10152 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm4 {%k1}
10153 ; AVX512BW-NEXT:    movw $31, %ax
10154 ; AVX512BW-NEXT:    kmovd %eax, %k2
10155 ; AVX512BW-NEXT:    vmovdqa32 %zmm13, %zmm28 {%k2}
10156 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10157 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm28 {%k1}
10158 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
10159 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10160 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm7 {%k2}
10161 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10162 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm7 {%k1}
10163 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm13
10164 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
10165 ; AVX512BW-NEXT:    vmovdqa32 %zmm27, %zmm7 {%k2}
10166 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10167 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm7 {%k1}
10168 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm24
10169 ; AVX512BW-NEXT:    vmovdqa32 %zmm12, %zmm31 {%k2}
10170 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10171 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm31 {%k1}
10172 ; AVX512BW-NEXT:    vmovdqa32 %zmm18, %zmm29 {%k2}
10173 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10174 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm29 {%k1}
10175 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
10176 ; AVX512BW-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
10177 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm7 {%k2}
10178 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10179 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm7 {%k1}
10180 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
10181 ; AVX512BW-NEXT:    vmovdqa32 %zmm30, %zmm12 {%k2}
10182 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10183 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm12 {%k1}
10184 ; AVX512BW-NEXT:    vmovdqa32 %zmm14, %zmm25 {%k2}
10185 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10186 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm25 {%k1}
10187 ; AVX512BW-NEXT:    movw $992, %ax # imm = 0x3E0
10188 ; AVX512BW-NEXT:    kmovd %eax, %k1
10189 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10190 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm11 {%k1}
10191 ; AVX512BW-NEXT:    movb $-32, %al
10192 ; AVX512BW-NEXT:    kmovd %eax, %k2
10193 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10194 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm11 {%k2}
10195 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10196 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm23 {%k1}
10197 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10198 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm23 {%k2}
10199 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10200 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm17 {%k1}
10201 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10202 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm17 {%k2}
10203 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10204 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm5 {%k1}
10205 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10206 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm5 {%k2}
10207 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10208 ; AVX512BW-NEXT:    vmovdqa32 %zmm0, %zmm2 {%k1}
10209 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10210 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k2}
10211 ; AVX512BW-NEXT:    vmovdqa32 %zmm26, %zmm6 {%k1}
10212 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10213 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k2}
10214 ; AVX512BW-NEXT:    vmovdqa32 %zmm19, %zmm1 {%k1}
10215 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10216 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
10217 ; AVX512BW-NEXT:    vmovdqa32 %zmm22, %zmm10 {%k1}
10218 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10219 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm10 {%k2}
10220 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, 192(%rsi)
10221 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, 128(%rsi)
10222 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, 64(%rsi)
10223 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, (%rsi)
10224 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, 192(%rdx)
10225 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, (%rdx)
10226 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, 64(%rdx)
10227 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, 128(%rdx)
10228 ; AVX512BW-NEXT:    vmovdqa64 %zmm31, 192(%rcx)
10229 ; AVX512BW-NEXT:    vmovdqa64 %zmm24, (%rcx)
10230 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, 64(%rcx)
10231 ; AVX512BW-NEXT:    vmovdqa64 %zmm28, 128(%rcx)
10232 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, 192(%r8)
10233 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, (%r8)
10234 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, 64(%r8)
10235 ; AVX512BW-NEXT:    vmovdqa64 %zmm29, 128(%r8)
10236 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, 192(%r9)
10237 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, (%r9)
10238 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, 64(%r9)
10239 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, 128(%r9)
10240 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
10241 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, 128(%rax)
10242 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, 192(%rax)
10243 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, (%rax)
10244 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, 64(%rax)
10245 ; AVX512BW-NEXT:    addq $2632, %rsp # imm = 0xA48
10246 ; AVX512BW-NEXT:    vzeroupper
10247 ; AVX512BW-NEXT:    retq
10248   %wide.vec = load <384 x i32>, ptr %in.vec, align 64
10249   %strided.vec0 = shufflevector <384 x i32> %wide.vec, <384 x i32> poison, <64 x i32> <i32 0, i32 6, i32 12, i32 18, i32 24, i32 30, i32 36, i32 42, i32 48, i32 54, i32 60, i32 66, i32 72, i32 78, i32 84, i32 90, i32 96, i32 102, i32 108, i32 114, i32 120, i32 126, i32 132, i32 138, i32 144, i32 150, i32 156, i32 162, i32 168, i32 174, i32 180, i32 186, i32 192, i32 198, i32 204, i32 210, i32 216, i32 222, i32 228, i32 234, i32 240, i32 246, i32 252, i32 258, i32 264, i32 270, i32 276, i32 282, i32 288, i32 294, i32 300, i32 306, i32 312, i32 318, i32 324, i32 330, i32 336, i32 342, i32 348, i32 354, i32 360, i32 366, i32 372, i32 378>
10250   %strided.vec1 = shufflevector <384 x i32> %wide.vec, <384 x i32> poison, <64 x i32> <i32 1, i32 7, i32 13, i32 19, i32 25, i32 31, i32 37, i32 43, i32 49, i32 55, i32 61, i32 67, i32 73, i32 79, i32 85, i32 91, i32 97, i32 103, i32 109, i32 115, i32 121, i32 127, i32 133, i32 139, i32 145, i32 151, i32 157, i32 163, i32 169, i32 175, i32 181, i32 187, i32 193, i32 199, i32 205, i32 211, i32 217, i32 223, i32 229, i32 235, i32 241, i32 247, i32 253, i32 259, i32 265, i32 271, i32 277, i32 283, i32 289, i32 295, i32 301, i32 307, i32 313, i32 319, i32 325, i32 331, i32 337, i32 343, i32 349, i32 355, i32 361, i32 367, i32 373, i32 379>
10251   %strided.vec2 = shufflevector <384 x i32> %wide.vec, <384 x i32> poison, <64 x i32> <i32 2, i32 8, i32 14, i32 20, i32 26, i32 32, i32 38, i32 44, i32 50, i32 56, i32 62, i32 68, i32 74, i32 80, i32 86, i32 92, i32 98, i32 104, i32 110, i32 116, i32 122, i32 128, i32 134, i32 140, i32 146, i32 152, i32 158, i32 164, i32 170, i32 176, i32 182, i32 188, i32 194, i32 200, i32 206, i32 212, i32 218, i32 224, i32 230, i32 236, i32 242, i32 248, i32 254, i32 260, i32 266, i32 272, i32 278, i32 284, i32 290, i32 296, i32 302, i32 308, i32 314, i32 320, i32 326, i32 332, i32 338, i32 344, i32 350, i32 356, i32 362, i32 368, i32 374, i32 380>
10252   %strided.vec3 = shufflevector <384 x i32> %wide.vec, <384 x i32> poison, <64 x i32> <i32 3, i32 9, i32 15, i32 21, i32 27, i32 33, i32 39, i32 45, i32 51, i32 57, i32 63, i32 69, i32 75, i32 81, i32 87, i32 93, i32 99, i32 105, i32 111, i32 117, i32 123, i32 129, i32 135, i32 141, i32 147, i32 153, i32 159, i32 165, i32 171, i32 177, i32 183, i32 189, i32 195, i32 201, i32 207, i32 213, i32 219, i32 225, i32 231, i32 237, i32 243, i32 249, i32 255, i32 261, i32 267, i32 273, i32 279, i32 285, i32 291, i32 297, i32 303, i32 309, i32 315, i32 321, i32 327, i32 333, i32 339, i32 345, i32 351, i32 357, i32 363, i32 369, i32 375, i32 381>
10253   %strided.vec4 = shufflevector <384 x i32> %wide.vec, <384 x i32> poison, <64 x i32> <i32 4, i32 10, i32 16, i32 22, i32 28, i32 34, i32 40, i32 46, i32 52, i32 58, i32 64, i32 70, i32 76, i32 82, i32 88, i32 94, i32 100, i32 106, i32 112, i32 118, i32 124, i32 130, i32 136, i32 142, i32 148, i32 154, i32 160, i32 166, i32 172, i32 178, i32 184, i32 190, i32 196, i32 202, i32 208, i32 214, i32 220, i32 226, i32 232, i32 238, i32 244, i32 250, i32 256, i32 262, i32 268, i32 274, i32 280, i32 286, i32 292, i32 298, i32 304, i32 310, i32 316, i32 322, i32 328, i32 334, i32 340, i32 346, i32 352, i32 358, i32 364, i32 370, i32 376, i32 382>
10254   %strided.vec5 = shufflevector <384 x i32> %wide.vec, <384 x i32> poison, <64 x i32> <i32 5, i32 11, i32 17, i32 23, i32 29, i32 35, i32 41, i32 47, i32 53, i32 59, i32 65, i32 71, i32 77, i32 83, i32 89, i32 95, i32 101, i32 107, i32 113, i32 119, i32 125, i32 131, i32 137, i32 143, i32 149, i32 155, i32 161, i32 167, i32 173, i32 179, i32 185, i32 191, i32 197, i32 203, i32 209, i32 215, i32 221, i32 227, i32 233, i32 239, i32 245, i32 251, i32 257, i32 263, i32 269, i32 275, i32 281, i32 287, i32 293, i32 299, i32 305, i32 311, i32 317, i32 323, i32 329, i32 335, i32 341, i32 347, i32 353, i32 359, i32 365, i32 371, i32 377, i32 383>
10255   store <64 x i32> %strided.vec0, ptr %out.vec0, align 64
10256   store <64 x i32> %strided.vec1, ptr %out.vec1, align 64
10257   store <64 x i32> %strided.vec2, ptr %out.vec2, align 64
10258   store <64 x i32> %strided.vec3, ptr %out.vec3, align 64
10259   store <64 x i32> %strided.vec4, ptr %out.vec4, align 64
10260   store <64 x i32> %strided.vec5, ptr %out.vec5, align 64
10261   ret void
10263 ;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
10264 ; AVX: {{.*}}
10265 ; AVX1: {{.*}}
10266 ; AVX2: {{.*}}
10267 ; AVX512BW-FAST: {{.*}}
10268 ; AVX512BW-ONLY: {{.*}}
10269 ; AVX512BW-ONLY-FAST: {{.*}}
10270 ; AVX512BW-ONLY-SLOW: {{.*}}
10271 ; AVX512BW-SLOW: {{.*}}
10272 ; AVX512DQ-FAST: {{.*}}
10273 ; AVX512DQ-ONLY: {{.*}}
10274 ; AVX512DQ-SLOW: {{.*}}
10275 ; AVX512DQBW-FAST: {{.*}}
10276 ; AVX512DQBW-ONLY: {{.*}}
10277 ; AVX512DQBW-SLOW: {{.*}}
10278 ; AVX512F-FAST: {{.*}}
10279 ; AVX512F-ONLY: {{.*}}
10280 ; AVX512F-ONLY-FAST: {{.*}}
10281 ; AVX512F-ONLY-SLOW: {{.*}}
10282 ; AVX512F-SLOW: {{.*}}
10283 ; FALLBACK0: {{.*}}
10284 ; FALLBACK1: {{.*}}
10285 ; FALLBACK10: {{.*}}
10286 ; FALLBACK11: {{.*}}
10287 ; FALLBACK12: {{.*}}
10288 ; FALLBACK2: {{.*}}
10289 ; FALLBACK3: {{.*}}
10290 ; FALLBACK4: {{.*}}
10291 ; FALLBACK5: {{.*}}
10292 ; FALLBACK6: {{.*}}
10293 ; FALLBACK7: {{.*}}
10294 ; FALLBACK8: {{.*}}
10295 ; FALLBACK9: {{.*}}