Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / CodeGen / X86 / vector-interleaved-load-i32-stride-8.ll
bloba47102b6f7c0ae5e17c75e9372b14188e1ed6f13
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+sse2 | FileCheck %s --check-prefixes=SSE,FALLBACK0
3 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx  | FileCheck %s --check-prefixes=AVX,AVX1,AVX1-ONLY,FALLBACK1
4 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx2 | FileCheck %s --check-prefixes=AVX,AVX1,AVX2,AVX2-ONLY,AVX2-SLOW,FALLBACK2
5 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx2,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX,AVX1,AVX2,AVX2-ONLY,AVX2-FAST,FALLBACK3
6 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx2,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX,AVX1,AVX2,AVX2-ONLY,AVX2-FAST-PERLANE,FALLBACK4
7 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512F,AVX512-SLOW,AVX512F-SLOW,AVX512F-ONLY-SLOW,FALLBACK5
8 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512F,AVX512-FAST,AVX512F-FAST,AVX512F-ONLY-FAST,FALLBACK6
9 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512F,AVX512-SLOW,AVX512F-SLOW,AVX512DQ-SLOW,FALLBACK7
10 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512F,AVX512-FAST,AVX512F-FAST,AVX512DQ-FAST,FALLBACK8
11 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512bw | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512BW,AVX512-SLOW,AVX512BW-SLOW,AVX512BW-ONLY-SLOW,FALLBACK9
12 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512bw,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512BW,AVX512BW-FAST,AVX512BW-ONLY-FAST,FALLBACK10
13 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq,+avx512bw | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512BW,AVX512-SLOW,AVX512BW-SLOW,AVX512DQBW-SLOW,FALLBACK11
14 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq,+avx512bw,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512BW,AVX512BW-FAST,AVX512DQBW-FAST,FALLBACK12
16 ; These patterns are produced by LoopVectorizer for interleaved loads.
18 define void @load_i32_stride8_vf2(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4, ptr %out.vec5, ptr %out.vec6, ptr %out.vec7) nounwind {
19 ; SSE-LABEL: load_i32_stride8_vf2:
20 ; SSE:       # %bb.0:
21 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
22 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %r10
23 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %r11
24 ; SSE-NEXT:    movdqa (%rdi), %xmm0
25 ; SSE-NEXT:    movdqa 16(%rdi), %xmm1
26 ; SSE-NEXT:    movdqa 32(%rdi), %xmm2
27 ; SSE-NEXT:    movdqa 48(%rdi), %xmm3
28 ; SSE-NEXT:    movdqa %xmm0, %xmm4
29 ; SSE-NEXT:    punpckldq {{.*#+}} xmm4 = xmm4[0],xmm2[0],xmm4[1],xmm2[1]
30 ; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm4[2,3,2,3]
31 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm2[2],xmm0[3],xmm2[3]
32 ; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm0[2,3,2,3]
33 ; SSE-NEXT:    movdqa %xmm1, %xmm6
34 ; SSE-NEXT:    punpckldq {{.*#+}} xmm6 = xmm6[0],xmm3[0],xmm6[1],xmm3[1]
35 ; SSE-NEXT:    pshufd {{.*#+}} xmm7 = xmm6[2,3,2,3]
36 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm3[2],xmm1[3],xmm3[3]
37 ; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm1[2,3,2,3]
38 ; SSE-NEXT:    movq %xmm4, (%rsi)
39 ; SSE-NEXT:    movq %xmm5, (%rdx)
40 ; SSE-NEXT:    movq %xmm0, (%rcx)
41 ; SSE-NEXT:    movq %xmm2, (%r8)
42 ; SSE-NEXT:    movq %xmm6, (%r9)
43 ; SSE-NEXT:    movq %xmm7, (%r11)
44 ; SSE-NEXT:    movq %xmm1, (%r10)
45 ; SSE-NEXT:    movq %xmm3, (%rax)
46 ; SSE-NEXT:    retq
48 ; AVX1-ONLY-LABEL: load_i32_stride8_vf2:
49 ; AVX1-ONLY:       # %bb.0:
50 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
51 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %r10
52 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %r11
53 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %ymm0
54 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %ymm1
55 ; AVX1-ONLY-NEXT:    vmovdqa 32(%rdi), %xmm2
56 ; AVX1-ONLY-NEXT:    vmovdqa (%rdi), %xmm3
57 ; AVX1-ONLY-NEXT:    vpunpckldq {{.*#+}} xmm4 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
58 ; AVX1-ONLY-NEXT:    vpshufd {{.*#+}} xmm5 = xmm3[1,1,1,1]
59 ; AVX1-ONLY-NEXT:    vpblendw {{.*#+}} xmm5 = xmm5[0,1],xmm2[2,3],xmm5[4,5,6,7]
60 ; AVX1-ONLY-NEXT:    vpunpckhdq {{.*#+}} xmm2 = xmm3[2],xmm2[2],xmm3[3],xmm2[3]
61 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm3 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]
62 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm3, %xmm3
63 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm6 = ymm1[1,0],ymm0[1,0],ymm1[5,4],ymm0[5,4]
64 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm6 = ymm6[2,0,2,3,6,4,6,7]
65 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm6, %xmm6
66 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} ymm7 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
67 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm7, %xmm7
68 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[3,0],ymm0[3,0],ymm1[7,4],ymm0[7,4]
69 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,0,2,3,6,4,6,7]
70 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm0, %xmm0
71 ; AVX1-ONLY-NEXT:    vmovq %xmm4, (%rsi)
72 ; AVX1-ONLY-NEXT:    vmovq %xmm5, (%rdx)
73 ; AVX1-ONLY-NEXT:    vmovq %xmm2, (%rcx)
74 ; AVX1-ONLY-NEXT:    vpextrq $1, %xmm2, (%r8)
75 ; AVX1-ONLY-NEXT:    vmovlps %xmm3, (%r9)
76 ; AVX1-ONLY-NEXT:    vmovlps %xmm6, (%r11)
77 ; AVX1-ONLY-NEXT:    vmovlps %xmm7, (%r10)
78 ; AVX1-ONLY-NEXT:    vmovlps %xmm0, (%rax)
79 ; AVX1-ONLY-NEXT:    vzeroupper
80 ; AVX1-ONLY-NEXT:    retq
82 ; AVX2-ONLY-LABEL: load_i32_stride8_vf2:
83 ; AVX2-ONLY:       # %bb.0:
84 ; AVX2-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
85 ; AVX2-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %r10
86 ; AVX2-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %r11
87 ; AVX2-ONLY-NEXT:    vmovaps 32(%rdi), %ymm0
88 ; AVX2-ONLY-NEXT:    vmovaps (%rdi), %ymm1
89 ; AVX2-ONLY-NEXT:    vmovdqa (%rdi), %xmm2
90 ; AVX2-ONLY-NEXT:    vmovdqa 32(%rdi), %xmm3
91 ; AVX2-ONLY-NEXT:    vpunpckldq {{.*#+}} xmm4 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]
92 ; AVX2-ONLY-NEXT:    vpshufd {{.*#+}} xmm5 = xmm2[1,1,1,1]
93 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm5 = xmm5[0],xmm3[1],xmm5[2,3]
94 ; AVX2-ONLY-NEXT:    vpunpckhdq {{.*#+}} xmm2 = xmm2[2],xmm3[2],xmm2[3],xmm3[3]
95 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm3 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
96 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm3, %xmm3
97 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} ymm6 = ymm1[1,1,1,1,5,5,5,5]
98 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0],ymm0[1],ymm6[2,3,4],ymm0[5],ymm6[6,7]
99 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm6, %xmm6
100 ; AVX2-ONLY-NEXT:    vunpckhps {{.*#+}} ymm0 = ymm1[2],ymm0[2],ymm1[3],ymm0[3],ymm1[6],ymm0[6],ymm1[7],ymm0[7]
101 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm0, %xmm1
102 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]
103 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm0, %xmm0
104 ; AVX2-ONLY-NEXT:    vmovq %xmm4, (%rsi)
105 ; AVX2-ONLY-NEXT:    vmovq %xmm5, (%rdx)
106 ; AVX2-ONLY-NEXT:    vmovq %xmm2, (%rcx)
107 ; AVX2-ONLY-NEXT:    vpextrq $1, %xmm2, (%r8)
108 ; AVX2-ONLY-NEXT:    vmovlps %xmm3, (%r9)
109 ; AVX2-ONLY-NEXT:    vmovlps %xmm6, (%r11)
110 ; AVX2-ONLY-NEXT:    vmovlps %xmm1, (%r10)
111 ; AVX2-ONLY-NEXT:    vmovlps %xmm0, (%rax)
112 ; AVX2-ONLY-NEXT:    vzeroupper
113 ; AVX2-ONLY-NEXT:    retq
115 ; AVX512-SLOW-LABEL: load_i32_stride8_vf2:
116 ; AVX512-SLOW:       # %bb.0:
117 ; AVX512-SLOW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
118 ; AVX512-SLOW-NEXT:    movq {{[0-9]+}}(%rsp), %r10
119 ; AVX512-SLOW-NEXT:    movq {{[0-9]+}}(%rsp), %r11
120 ; AVX512-SLOW-NEXT:    vmovdqa (%rdi), %xmm0
121 ; AVX512-SLOW-NEXT:    vmovdqa 32(%rdi), %xmm1
122 ; AVX512-SLOW-NEXT:    vpunpckldq {{.*#+}} xmm2 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
123 ; AVX512-SLOW-NEXT:    vpshufd {{.*#+}} xmm3 = xmm0[1,1,1,1]
124 ; AVX512-SLOW-NEXT:    vpblendd {{.*#+}} xmm3 = xmm3[0],xmm1[1],xmm3[2,3]
125 ; AVX512-SLOW-NEXT:    vpunpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]
126 ; AVX512-SLOW-NEXT:    vmovaps 32(%rdi), %ymm1
127 ; AVX512-SLOW-NEXT:    vmovaps (%rdi), %ymm4
128 ; AVX512-SLOW-NEXT:    vunpcklps {{.*#+}} ymm5 = ymm4[0],ymm1[0],ymm4[1],ymm1[1],ymm4[4],ymm1[4],ymm4[5],ymm1[5]
129 ; AVX512-SLOW-NEXT:    vextractf128 $1, %ymm5, %xmm5
130 ; AVX512-SLOW-NEXT:    vshufps {{.*#+}} ymm6 = ymm4[1,1,1,1,5,5,5,5]
131 ; AVX512-SLOW-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0],ymm1[1],ymm6[2,3,4],ymm1[5],ymm6[6,7]
132 ; AVX512-SLOW-NEXT:    vextractf128 $1, %ymm6, %xmm6
133 ; AVX512-SLOW-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm4[2],ymm1[2],ymm4[3],ymm1[3],ymm4[6],ymm1[6],ymm4[7],ymm1[7]
134 ; AVX512-SLOW-NEXT:    vextractf128 $1, %ymm1, %xmm4
135 ; AVX512-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[2,3,2,3,6,7,6,7]
136 ; AVX512-SLOW-NEXT:    vextractf128 $1, %ymm1, %xmm1
137 ; AVX512-SLOW-NEXT:    vmovq %xmm2, (%rsi)
138 ; AVX512-SLOW-NEXT:    vmovq %xmm3, (%rdx)
139 ; AVX512-SLOW-NEXT:    vmovq %xmm0, (%rcx)
140 ; AVX512-SLOW-NEXT:    vpextrq $1, %xmm0, (%r8)
141 ; AVX512-SLOW-NEXT:    vmovlps %xmm5, (%r9)
142 ; AVX512-SLOW-NEXT:    vmovlps %xmm6, (%r11)
143 ; AVX512-SLOW-NEXT:    vmovlps %xmm4, (%r10)
144 ; AVX512-SLOW-NEXT:    vmovlps %xmm1, (%rax)
145 ; AVX512-SLOW-NEXT:    vzeroupper
146 ; AVX512-SLOW-NEXT:    retq
148 ; AVX512-FAST-LABEL: load_i32_stride8_vf2:
149 ; AVX512-FAST:       # %bb.0:
150 ; AVX512-FAST-NEXT:    movq {{[0-9]+}}(%rsp), %rax
151 ; AVX512-FAST-NEXT:    movq {{[0-9]+}}(%rsp), %r10
152 ; AVX512-FAST-NEXT:    movq {{[0-9]+}}(%rsp), %r11
153 ; AVX512-FAST-NEXT:    vmovdqa (%rdi), %xmm0
154 ; AVX512-FAST-NEXT:    vmovdqa 32(%rdi), %xmm1
155 ; AVX512-FAST-NEXT:    vpunpckldq {{.*#+}} xmm2 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
156 ; AVX512-FAST-NEXT:    vpbroadcastq {{.*#+}} xmm3 = [1,5,1,5]
157 ; AVX512-FAST-NEXT:    vpermi2d %xmm1, %xmm0, %xmm3
158 ; AVX512-FAST-NEXT:    vpunpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]
159 ; AVX512-FAST-NEXT:    vmovdqa 32(%rdi), %ymm1
160 ; AVX512-FAST-NEXT:    vmovdqa (%rdi), %ymm4
161 ; AVX512-FAST-NEXT:    vpunpckldq {{.*#+}} ymm5 = ymm4[0],ymm1[0],ymm4[1],ymm1[1],ymm4[4],ymm1[4],ymm4[5],ymm1[5]
162 ; AVX512-FAST-NEXT:    vextracti128 $1, %ymm5, %xmm5
163 ; AVX512-FAST-NEXT:    vbroadcasti128 {{.*#+}} ymm6 = [5,13,5,5,5,13,5,5]
164 ; AVX512-FAST-NEXT:    # ymm6 = mem[0,1,0,1]
165 ; AVX512-FAST-NEXT:    vpermi2d %ymm1, %ymm4, %ymm6
166 ; AVX512-FAST-NEXT:    vextracti128 $1, %ymm6, %xmm6
167 ; AVX512-FAST-NEXT:    vpunpckhdq {{.*#+}} ymm1 = ymm4[2],ymm1[2],ymm4[3],ymm1[3],ymm4[6],ymm1[6],ymm4[7],ymm1[7]
168 ; AVX512-FAST-NEXT:    vextracti128 $1, %ymm1, %xmm4
169 ; AVX512-FAST-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[2,3,2,3,6,7,6,7]
170 ; AVX512-FAST-NEXT:    vextracti128 $1, %ymm1, %xmm1
171 ; AVX512-FAST-NEXT:    vmovq %xmm2, (%rsi)
172 ; AVX512-FAST-NEXT:    vmovq %xmm3, (%rdx)
173 ; AVX512-FAST-NEXT:    vmovq %xmm0, (%rcx)
174 ; AVX512-FAST-NEXT:    vpextrq $1, %xmm0, (%r8)
175 ; AVX512-FAST-NEXT:    vmovq %xmm5, (%r9)
176 ; AVX512-FAST-NEXT:    vmovq %xmm6, (%r11)
177 ; AVX512-FAST-NEXT:    vmovq %xmm4, (%r10)
178 ; AVX512-FAST-NEXT:    vmovq %xmm1, (%rax)
179 ; AVX512-FAST-NEXT:    vzeroupper
180 ; AVX512-FAST-NEXT:    retq
182 ; AVX512BW-FAST-LABEL: load_i32_stride8_vf2:
183 ; AVX512BW-FAST:       # %bb.0:
184 ; AVX512BW-FAST-NEXT:    movq {{[0-9]+}}(%rsp), %rax
185 ; AVX512BW-FAST-NEXT:    movq {{[0-9]+}}(%rsp), %r10
186 ; AVX512BW-FAST-NEXT:    movq {{[0-9]+}}(%rsp), %r11
187 ; AVX512BW-FAST-NEXT:    vmovdqa (%rdi), %xmm0
188 ; AVX512BW-FAST-NEXT:    vmovdqa 32(%rdi), %xmm1
189 ; AVX512BW-FAST-NEXT:    vpunpckldq {{.*#+}} xmm2 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
190 ; AVX512BW-FAST-NEXT:    vpbroadcastq {{.*#+}} xmm3 = [1,5,1,5]
191 ; AVX512BW-FAST-NEXT:    vpermi2d %xmm1, %xmm0, %xmm3
192 ; AVX512BW-FAST-NEXT:    vpunpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]
193 ; AVX512BW-FAST-NEXT:    vmovdqa 32(%rdi), %ymm1
194 ; AVX512BW-FAST-NEXT:    vmovdqa (%rdi), %ymm4
195 ; AVX512BW-FAST-NEXT:    vpunpckldq {{.*#+}} ymm5 = ymm4[0],ymm1[0],ymm4[1],ymm1[1],ymm4[4],ymm1[4],ymm4[5],ymm1[5]
196 ; AVX512BW-FAST-NEXT:    vextracti128 $1, %ymm5, %xmm5
197 ; AVX512BW-FAST-NEXT:    vbroadcasti128 {{.*#+}} ymm6 = [5,13,5,5,5,13,5,5]
198 ; AVX512BW-FAST-NEXT:    # ymm6 = mem[0,1,0,1]
199 ; AVX512BW-FAST-NEXT:    vpermi2d %ymm1, %ymm4, %ymm6
200 ; AVX512BW-FAST-NEXT:    vextracti128 $1, %ymm6, %xmm6
201 ; AVX512BW-FAST-NEXT:    vpunpckhdq {{.*#+}} ymm1 = ymm4[2],ymm1[2],ymm4[3],ymm1[3],ymm4[6],ymm1[6],ymm4[7],ymm1[7]
202 ; AVX512BW-FAST-NEXT:    vextracti128 $1, %ymm1, %xmm4
203 ; AVX512BW-FAST-NEXT:    vpshufd {{.*#+}} ymm1 = ymm1[2,3,2,3,6,7,6,7]
204 ; AVX512BW-FAST-NEXT:    vextracti128 $1, %ymm1, %xmm1
205 ; AVX512BW-FAST-NEXT:    vmovq %xmm2, (%rsi)
206 ; AVX512BW-FAST-NEXT:    vmovq %xmm3, (%rdx)
207 ; AVX512BW-FAST-NEXT:    vmovq %xmm0, (%rcx)
208 ; AVX512BW-FAST-NEXT:    vpextrq $1, %xmm0, (%r8)
209 ; AVX512BW-FAST-NEXT:    vmovq %xmm5, (%r9)
210 ; AVX512BW-FAST-NEXT:    vmovq %xmm6, (%r11)
211 ; AVX512BW-FAST-NEXT:    vmovq %xmm4, (%r10)
212 ; AVX512BW-FAST-NEXT:    vmovq %xmm1, (%rax)
213 ; AVX512BW-FAST-NEXT:    vzeroupper
214 ; AVX512BW-FAST-NEXT:    retq
215   %wide.vec = load <16 x i32>, ptr %in.vec, align 64
216   %strided.vec0 = shufflevector <16 x i32> %wide.vec, <16 x i32> poison, <2 x i32> <i32 0, i32 8>
217   %strided.vec1 = shufflevector <16 x i32> %wide.vec, <16 x i32> poison, <2 x i32> <i32 1, i32 9>
218   %strided.vec2 = shufflevector <16 x i32> %wide.vec, <16 x i32> poison, <2 x i32> <i32 2, i32 10>
219   %strided.vec3 = shufflevector <16 x i32> %wide.vec, <16 x i32> poison, <2 x i32> <i32 3, i32 11>
220   %strided.vec4 = shufflevector <16 x i32> %wide.vec, <16 x i32> poison, <2 x i32> <i32 4, i32 12>
221   %strided.vec5 = shufflevector <16 x i32> %wide.vec, <16 x i32> poison, <2 x i32> <i32 5, i32 13>
222   %strided.vec6 = shufflevector <16 x i32> %wide.vec, <16 x i32> poison, <2 x i32> <i32 6, i32 14>
223   %strided.vec7 = shufflevector <16 x i32> %wide.vec, <16 x i32> poison, <2 x i32> <i32 7, i32 15>
224   store <2 x i32> %strided.vec0, ptr %out.vec0, align 64
225   store <2 x i32> %strided.vec1, ptr %out.vec1, align 64
226   store <2 x i32> %strided.vec2, ptr %out.vec2, align 64
227   store <2 x i32> %strided.vec3, ptr %out.vec3, align 64
228   store <2 x i32> %strided.vec4, ptr %out.vec4, align 64
229   store <2 x i32> %strided.vec5, ptr %out.vec5, align 64
230   store <2 x i32> %strided.vec6, ptr %out.vec6, align 64
231   store <2 x i32> %strided.vec7, ptr %out.vec7, align 64
232   ret void
235 define void @load_i32_stride8_vf4(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4, ptr %out.vec5, ptr %out.vec6, ptr %out.vec7) nounwind {
236 ; SSE-LABEL: load_i32_stride8_vf4:
237 ; SSE:       # %bb.0:
238 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
239 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %r10
240 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %r11
241 ; SSE-NEXT:    movaps 112(%rdi), %xmm3
242 ; SSE-NEXT:    movaps 80(%rdi), %xmm2
243 ; SSE-NEXT:    movaps (%rdi), %xmm1
244 ; SSE-NEXT:    movaps 16(%rdi), %xmm0
245 ; SSE-NEXT:    movaps 32(%rdi), %xmm4
246 ; SSE-NEXT:    movaps 48(%rdi), %xmm5
247 ; SSE-NEXT:    movaps 96(%rdi), %xmm6
248 ; SSE-NEXT:    movaps 64(%rdi), %xmm7
249 ; SSE-NEXT:    movaps %xmm7, %xmm8
250 ; SSE-NEXT:    unpcklps {{.*#+}} xmm8 = xmm8[0],xmm6[0],xmm8[1],xmm6[1]
251 ; SSE-NEXT:    movaps %xmm1, %xmm9
252 ; SSE-NEXT:    unpcklps {{.*#+}} xmm9 = xmm9[0],xmm4[0],xmm9[1],xmm4[1]
253 ; SSE-NEXT:    movaps %xmm9, %xmm10
254 ; SSE-NEXT:    movlhps {{.*#+}} xmm10 = xmm10[0],xmm8[0]
255 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm9 = xmm9[1],xmm8[1]
256 ; SSE-NEXT:    unpckhps {{.*#+}} xmm7 = xmm7[2],xmm6[2],xmm7[3],xmm6[3]
257 ; SSE-NEXT:    unpckhps {{.*#+}} xmm1 = xmm1[2],xmm4[2],xmm1[3],xmm4[3]
258 ; SSE-NEXT:    movaps %xmm1, %xmm4
259 ; SSE-NEXT:    movlhps {{.*#+}} xmm4 = xmm4[0],xmm7[0]
260 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm7[1]
261 ; SSE-NEXT:    movaps %xmm2, %xmm6
262 ; SSE-NEXT:    unpcklps {{.*#+}} xmm6 = xmm6[0],xmm3[0],xmm6[1],xmm3[1]
263 ; SSE-NEXT:    movaps %xmm0, %xmm7
264 ; SSE-NEXT:    unpcklps {{.*#+}} xmm7 = xmm7[0],xmm5[0],xmm7[1],xmm5[1]
265 ; SSE-NEXT:    movaps %xmm7, %xmm8
266 ; SSE-NEXT:    movlhps {{.*#+}} xmm8 = xmm8[0],xmm6[0]
267 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm7 = xmm7[1],xmm6[1]
268 ; SSE-NEXT:    unpckhps {{.*#+}} xmm2 = xmm2[2],xmm3[2],xmm2[3],xmm3[3]
269 ; SSE-NEXT:    unpckhps {{.*#+}} xmm0 = xmm0[2],xmm5[2],xmm0[3],xmm5[3]
270 ; SSE-NEXT:    movaps %xmm0, %xmm3
271 ; SSE-NEXT:    movlhps {{.*#+}} xmm3 = xmm3[0],xmm2[0]
272 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
273 ; SSE-NEXT:    movaps %xmm10, (%rsi)
274 ; SSE-NEXT:    movaps %xmm9, (%rdx)
275 ; SSE-NEXT:    movaps %xmm4, (%rcx)
276 ; SSE-NEXT:    movaps %xmm1, (%r8)
277 ; SSE-NEXT:    movaps %xmm8, (%r9)
278 ; SSE-NEXT:    movaps %xmm7, (%r11)
279 ; SSE-NEXT:    movaps %xmm3, (%r10)
280 ; SSE-NEXT:    movaps %xmm0, (%rax)
281 ; SSE-NEXT:    retq
283 ; AVX1-ONLY-LABEL: load_i32_stride8_vf4:
284 ; AVX1-ONLY:       # %bb.0:
285 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
286 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %r10
287 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %r11
288 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %ymm0
289 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %ymm1
290 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdi), %ymm2
291 ; AVX1-ONLY-NEXT:    vmovaps 96(%rdi), %ymm3
292 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %xmm5
293 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %xmm6
294 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm4 = xmm6[0],xmm5[0],xmm6[1],xmm5[1]
295 ; AVX1-ONLY-NEXT:    vmovaps 96(%rdi), %xmm7
296 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdi), %xmm8
297 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm9 = xmm8[0],xmm7[0],xmm8[1],xmm7[1]
298 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm4 = xmm4[0],xmm9[0]
299 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm10 = xmm6[1,1,1,1]
300 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0],xmm5[1],xmm10[2,3]
301 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm9 = xmm10[0,1],xmm9[2,3]
302 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm10 = xmm7[2,2,2,2]
303 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm10 = xmm8[0,1,2],xmm10[3]
304 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm6[2],xmm5[2],xmm6[3],xmm5[3]
305 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm6 = xmm5[0,1],xmm10[2,3]
306 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm7 = xmm8[2],xmm7[2],xmm8[3],xmm7[3]
307 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm5 = xmm5[1],xmm7[1]
308 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm7 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
309 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm7 = ymm7[0,1,2,0,4,5,6,4]
310 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm7, %xmm7
311 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm8 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]
312 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm8, %xmm8
313 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm7 = xmm8[0,1],xmm7[2,3]
314 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm8 = ymm2[0],ymm3[0],ymm2[1],ymm3[1],ymm2[4],ymm3[4],ymm2[5],ymm3[5]
315 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm8, %xmm8
316 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm10 = ymm1[1,0],ymm0[1,0],ymm1[5,4],ymm0[5,4]
317 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm10 = ymm10[2,0,2,3,6,4,6,7]
318 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm10, %xmm10
319 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm8 = xmm10[0,1],xmm8[2,3]
320 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm10 = ymm3[1],ymm2[1],ymm3[3],ymm2[3]
321 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm10 = ymm10[0,1,2,0,4,5,6,4]
322 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm10, %xmm10
323 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} ymm11 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
324 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm11, %xmm11
325 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm10 = xmm11[0,1],xmm10[2,3]
326 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm2[2],ymm3[2],ymm2[3],ymm3[3],ymm2[6],ymm3[6],ymm2[7],ymm3[7]
327 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm2, %xmm2
328 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[3,0],ymm0[3,0],ymm1[7,4],ymm0[7,4]
329 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,0,2,3,6,4,6,7]
330 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm0, %xmm0
331 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm2[2,3]
332 ; AVX1-ONLY-NEXT:    vmovaps %xmm4, (%rsi)
333 ; AVX1-ONLY-NEXT:    vmovaps %xmm9, (%rdx)
334 ; AVX1-ONLY-NEXT:    vmovaps %xmm6, (%rcx)
335 ; AVX1-ONLY-NEXT:    vmovaps %xmm5, (%r8)
336 ; AVX1-ONLY-NEXT:    vmovaps %xmm7, (%r9)
337 ; AVX1-ONLY-NEXT:    vmovaps %xmm8, (%r11)
338 ; AVX1-ONLY-NEXT:    vmovaps %xmm10, (%r10)
339 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, (%rax)
340 ; AVX1-ONLY-NEXT:    vzeroupper
341 ; AVX1-ONLY-NEXT:    retq
343 ; AVX2-ONLY-LABEL: load_i32_stride8_vf4:
344 ; AVX2-ONLY:       # %bb.0:
345 ; AVX2-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
346 ; AVX2-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %r10
347 ; AVX2-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %r11
348 ; AVX2-ONLY-NEXT:    vmovaps 96(%rdi), %ymm0
349 ; AVX2-ONLY-NEXT:    vmovaps 64(%rdi), %ymm1
350 ; AVX2-ONLY-NEXT:    vmovaps 32(%rdi), %ymm2
351 ; AVX2-ONLY-NEXT:    vmovaps (%rdi), %ymm3
352 ; AVX2-ONLY-NEXT:    vmovaps 96(%rdi), %xmm4
353 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm4, %xmm5
354 ; AVX2-ONLY-NEXT:    vmovaps (%rdi), %xmm6
355 ; AVX2-ONLY-NEXT:    vmovaps 32(%rdi), %xmm7
356 ; AVX2-ONLY-NEXT:    vmovaps 64(%rdi), %xmm8
357 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm8, %xmm9
358 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm9[0],xmm5[0],xmm9[1],xmm5[1]
359 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm9 = xmm6[0],xmm7[0],xmm6[1],xmm7[1]
360 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm5 = xmm9[0,1],xmm5[2,3]
361 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm9 = xmm8[0],xmm4[0],xmm8[1],xmm4[1]
362 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} xmm10 = xmm6[1,1,1,1]
363 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0],xmm7[1],xmm10[2,3]
364 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm9 = xmm10[0,1],xmm9[2,3]
365 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} xmm10 = xmm4[2,2,2,2]
366 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm10 = xmm8[0,1,2],xmm10[3]
367 ; AVX2-ONLY-NEXT:    vunpckhps {{.*#+}} xmm6 = xmm6[2],xmm7[2],xmm6[3],xmm7[3]
368 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm7 = xmm6[0,1],xmm10[2,3]
369 ; AVX2-ONLY-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm8[2],xmm4[2],xmm8[3],xmm4[3]
370 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm4 = xmm6[1],xmm4[1]
371 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm6 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
372 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm6, %xmm6
373 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm8 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
374 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm10 = ymm8[2,2,2,2]
375 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0,1],xmm10[2,3]
376 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm8, %xmm8
377 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} ymm10 = ymm3[1,1,1,1,5,5,5,5]
378 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0],ymm2[1],ymm10[2,3,4],ymm2[5],ymm10[6,7]
379 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm10, %xmm10
380 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm8 = xmm10[0,1],xmm8[2,3]
381 ; AVX2-ONLY-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm3[2],ymm2[2],ymm3[3],ymm2[3],ymm3[6],ymm2[6],ymm3[7],ymm2[7]
382 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm2, %xmm3
383 ; AVX2-ONLY-NEXT:    vunpckhps {{.*#+}} ymm0 = ymm1[2],ymm0[2],ymm1[3],ymm0[3],ymm1[6],ymm0[6],ymm1[7],ymm0[7]
384 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm1 = ymm0[2,2,2,2]
385 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm3[0,1],xmm1[2,3]
386 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm0, %xmm0
387 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[2,3,2,3,6,7,6,7]
388 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm2, %xmm2
389 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm2[0,1],xmm0[2,3]
390 ; AVX2-ONLY-NEXT:    vmovaps %xmm5, (%rsi)
391 ; AVX2-ONLY-NEXT:    vmovaps %xmm9, (%rdx)
392 ; AVX2-ONLY-NEXT:    vmovaps %xmm7, (%rcx)
393 ; AVX2-ONLY-NEXT:    vmovaps %xmm4, (%r8)
394 ; AVX2-ONLY-NEXT:    vmovaps %xmm6, (%r9)
395 ; AVX2-ONLY-NEXT:    vmovaps %xmm8, (%r11)
396 ; AVX2-ONLY-NEXT:    vmovaps %xmm1, (%r10)
397 ; AVX2-ONLY-NEXT:    vmovaps %xmm0, (%rax)
398 ; AVX2-ONLY-NEXT:    vzeroupper
399 ; AVX2-ONLY-NEXT:    retq
401 ; AVX512-LABEL: load_i32_stride8_vf4:
402 ; AVX512:       # %bb.0:
403 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax
404 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %r10
405 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %r11
406 ; AVX512-NEXT:    vmovdqa {{.*#+}} xmm0 = [0,8,16,24]
407 ; AVX512-NEXT:    vmovdqa64 (%rdi), %zmm1
408 ; AVX512-NEXT:    vmovdqa64 64(%rdi), %zmm2
409 ; AVX512-NEXT:    vpermi2d %zmm2, %zmm1, %zmm0
410 ; AVX512-NEXT:    vmovdqa {{.*#+}} xmm3 = [1,9,17,25]
411 ; AVX512-NEXT:    vpermi2d %zmm2, %zmm1, %zmm3
412 ; AVX512-NEXT:    vmovdqa {{.*#+}} xmm4 = [2,10,18,26]
413 ; AVX512-NEXT:    vpermi2d %zmm2, %zmm1, %zmm4
414 ; AVX512-NEXT:    vmovdqa {{.*#+}} xmm5 = [3,11,19,27]
415 ; AVX512-NEXT:    vpermi2d %zmm2, %zmm1, %zmm5
416 ; AVX512-NEXT:    vmovdqa {{.*#+}} xmm6 = [4,12,20,28]
417 ; AVX512-NEXT:    vpermi2d %zmm2, %zmm1, %zmm6
418 ; AVX512-NEXT:    vmovdqa {{.*#+}} xmm7 = [5,13,21,29]
419 ; AVX512-NEXT:    vpermi2d %zmm2, %zmm1, %zmm7
420 ; AVX512-NEXT:    vmovdqa {{.*#+}} xmm8 = [6,14,22,30]
421 ; AVX512-NEXT:    vpermi2d %zmm2, %zmm1, %zmm8
422 ; AVX512-NEXT:    vmovdqa {{.*#+}} xmm9 = [7,15,23,31]
423 ; AVX512-NEXT:    vpermi2d %zmm2, %zmm1, %zmm9
424 ; AVX512-NEXT:    vmovdqa %xmm0, (%rsi)
425 ; AVX512-NEXT:    vmovdqa %xmm3, (%rdx)
426 ; AVX512-NEXT:    vmovdqa %xmm4, (%rcx)
427 ; AVX512-NEXT:    vmovdqa %xmm5, (%r8)
428 ; AVX512-NEXT:    vmovdqa %xmm6, (%r9)
429 ; AVX512-NEXT:    vmovdqa %xmm7, (%r11)
430 ; AVX512-NEXT:    vmovdqa %xmm8, (%r10)
431 ; AVX512-NEXT:    vmovdqa %xmm9, (%rax)
432 ; AVX512-NEXT:    vzeroupper
433 ; AVX512-NEXT:    retq
434   %wide.vec = load <32 x i32>, ptr %in.vec, align 64
435   %strided.vec0 = shufflevector <32 x i32> %wide.vec, <32 x i32> poison, <4 x i32> <i32 0, i32 8, i32 16, i32 24>
436   %strided.vec1 = shufflevector <32 x i32> %wide.vec, <32 x i32> poison, <4 x i32> <i32 1, i32 9, i32 17, i32 25>
437   %strided.vec2 = shufflevector <32 x i32> %wide.vec, <32 x i32> poison, <4 x i32> <i32 2, i32 10, i32 18, i32 26>
438   %strided.vec3 = shufflevector <32 x i32> %wide.vec, <32 x i32> poison, <4 x i32> <i32 3, i32 11, i32 19, i32 27>
439   %strided.vec4 = shufflevector <32 x i32> %wide.vec, <32 x i32> poison, <4 x i32> <i32 4, i32 12, i32 20, i32 28>
440   %strided.vec5 = shufflevector <32 x i32> %wide.vec, <32 x i32> poison, <4 x i32> <i32 5, i32 13, i32 21, i32 29>
441   %strided.vec6 = shufflevector <32 x i32> %wide.vec, <32 x i32> poison, <4 x i32> <i32 6, i32 14, i32 22, i32 30>
442   %strided.vec7 = shufflevector <32 x i32> %wide.vec, <32 x i32> poison, <4 x i32> <i32 7, i32 15, i32 23, i32 31>
443   store <4 x i32> %strided.vec0, ptr %out.vec0, align 64
444   store <4 x i32> %strided.vec1, ptr %out.vec1, align 64
445   store <4 x i32> %strided.vec2, ptr %out.vec2, align 64
446   store <4 x i32> %strided.vec3, ptr %out.vec3, align 64
447   store <4 x i32> %strided.vec4, ptr %out.vec4, align 64
448   store <4 x i32> %strided.vec5, ptr %out.vec5, align 64
449   store <4 x i32> %strided.vec6, ptr %out.vec6, align 64
450   store <4 x i32> %strided.vec7, ptr %out.vec7, align 64
451   ret void
454 define void @load_i32_stride8_vf8(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4, ptr %out.vec5, ptr %out.vec6, ptr %out.vec7) nounwind {
455 ; SSE-LABEL: load_i32_stride8_vf8:
456 ; SSE:       # %bb.0:
457 ; SSE-NEXT:    movaps 112(%rdi), %xmm15
458 ; SSE-NEXT:    movaps 176(%rdi), %xmm4
459 ; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
460 ; SSE-NEXT:    movaps 144(%rdi), %xmm9
461 ; SSE-NEXT:    movaps (%rdi), %xmm10
462 ; SSE-NEXT:    movaps 32(%rdi), %xmm1
463 ; SSE-NEXT:    movaps 96(%rdi), %xmm13
464 ; SSE-NEXT:    movaps 64(%rdi), %xmm11
465 ; SSE-NEXT:    movaps 160(%rdi), %xmm2
466 ; SSE-NEXT:    movaps 128(%rdi), %xmm6
467 ; SSE-NEXT:    movaps 224(%rdi), %xmm12
468 ; SSE-NEXT:    movaps 192(%rdi), %xmm0
469 ; SSE-NEXT:    movaps %xmm0, %xmm8
470 ; SSE-NEXT:    unpcklps {{.*#+}} xmm8 = xmm8[0],xmm12[0],xmm8[1],xmm12[1]
471 ; SSE-NEXT:    movaps %xmm6, %xmm5
472 ; SSE-NEXT:    unpcklps {{.*#+}} xmm5 = xmm5[0],xmm2[0],xmm5[1],xmm2[1]
473 ; SSE-NEXT:    movaps %xmm5, %xmm7
474 ; SSE-NEXT:    movlhps {{.*#+}} xmm7 = xmm7[0],xmm8[0]
475 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
476 ; SSE-NEXT:    movaps %xmm11, %xmm14
477 ; SSE-NEXT:    unpcklps {{.*#+}} xmm14 = xmm14[0],xmm13[0],xmm14[1],xmm13[1]
478 ; SSE-NEXT:    movaps %xmm10, %xmm7
479 ; SSE-NEXT:    unpcklps {{.*#+}} xmm7 = xmm7[0],xmm1[0],xmm7[1],xmm1[1]
480 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm8[1]
481 ; SSE-NEXT:    movaps %xmm7, %xmm8
482 ; SSE-NEXT:    movlhps {{.*#+}} xmm8 = xmm8[0],xmm14[0]
483 ; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
484 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm7 = xmm7[1],xmm14[1]
485 ; SSE-NEXT:    movaps 240(%rdi), %xmm14
486 ; SSE-NEXT:    movaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
487 ; SSE-NEXT:    unpckhps {{.*#+}} xmm0 = xmm0[2],xmm12[2],xmm0[3],xmm12[3]
488 ; SSE-NEXT:    movaps 208(%rdi), %xmm12
489 ; SSE-NEXT:    unpckhps {{.*#+}} xmm6 = xmm6[2],xmm2[2],xmm6[3],xmm2[3]
490 ; SSE-NEXT:    movaps %xmm6, %xmm2
491 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
492 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
493 ; SSE-NEXT:    unpckhps {{.*#+}} xmm11 = xmm11[2],xmm13[2],xmm11[3],xmm13[3]
494 ; SSE-NEXT:    unpckhps {{.*#+}} xmm10 = xmm10[2],xmm1[2],xmm10[3],xmm1[3]
495 ; SSE-NEXT:    movaps %xmm10, %xmm8
496 ; SSE-NEXT:    movlhps {{.*#+}} xmm8 = xmm8[0],xmm11[0]
497 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm6 = xmm6[1],xmm0[1]
498 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm10 = xmm10[1],xmm11[1]
499 ; SSE-NEXT:    movaps %xmm12, %xmm0
500 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm14[0],xmm0[1],xmm14[1]
501 ; SSE-NEXT:    movaps %xmm9, %xmm11
502 ; SSE-NEXT:    unpcklps {{.*#+}} xmm11 = xmm11[0],xmm4[0],xmm11[1],xmm4[1]
503 ; SSE-NEXT:    movaps %xmm11, %xmm13
504 ; SSE-NEXT:    movlhps {{.*#+}} xmm13 = xmm13[0],xmm0[0]
505 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm11 = xmm11[1],xmm0[1]
506 ; SSE-NEXT:    movaps 80(%rdi), %xmm2
507 ; SSE-NEXT:    movaps %xmm2, %xmm1
508 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm15[0],xmm1[1],xmm15[1]
509 ; SSE-NEXT:    movaps 16(%rdi), %xmm0
510 ; SSE-NEXT:    movaps 48(%rdi), %xmm3
511 ; SSE-NEXT:    movaps %xmm0, %xmm14
512 ; SSE-NEXT:    unpcklps {{.*#+}} xmm14 = xmm14[0],xmm3[0],xmm14[1],xmm3[1]
513 ; SSE-NEXT:    movaps %xmm14, %xmm4
514 ; SSE-NEXT:    movlhps {{.*#+}} xmm4 = xmm4[0],xmm1[0]
515 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm14 = xmm14[1],xmm1[1]
516 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Folded Reload
517 ; SSE-NEXT:    # xmm12 = xmm12[2],mem[2],xmm12[3],mem[3]
518 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload
519 ; SSE-NEXT:    # xmm9 = xmm9[2],mem[2],xmm9[3],mem[3]
520 ; SSE-NEXT:    unpckhps {{.*#+}} xmm2 = xmm2[2],xmm15[2],xmm2[3],xmm15[3]
521 ; SSE-NEXT:    unpckhps {{.*#+}} xmm0 = xmm0[2],xmm3[2],xmm0[3],xmm3[3]
522 ; SSE-NEXT:    movaps %xmm9, %xmm1
523 ; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm12[0]
524 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm9 = xmm9[1],xmm12[1]
525 ; SSE-NEXT:    movaps %xmm0, %xmm3
526 ; SSE-NEXT:    movlhps {{.*#+}} xmm3 = xmm3[0],xmm2[0]
527 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
528 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
529 ; SSE-NEXT:    movaps %xmm2, (%rsi)
530 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
531 ; SSE-NEXT:    movaps %xmm2, 16(%rsi)
532 ; SSE-NEXT:    movaps %xmm7, (%rdx)
533 ; SSE-NEXT:    movaps %xmm5, 16(%rdx)
534 ; SSE-NEXT:    movaps %xmm8, (%rcx)
535 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
536 ; SSE-NEXT:    movaps %xmm2, 16(%rcx)
537 ; SSE-NEXT:    movaps %xmm10, (%r8)
538 ; SSE-NEXT:    movaps %xmm6, 16(%r8)
539 ; SSE-NEXT:    movaps %xmm4, (%r9)
540 ; SSE-NEXT:    movaps %xmm13, 16(%r9)
541 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
542 ; SSE-NEXT:    movaps %xmm14, (%rax)
543 ; SSE-NEXT:    movaps %xmm11, 16(%rax)
544 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
545 ; SSE-NEXT:    movaps %xmm3, (%rax)
546 ; SSE-NEXT:    movaps %xmm1, 16(%rax)
547 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
548 ; SSE-NEXT:    movaps %xmm9, 16(%rax)
549 ; SSE-NEXT:    movaps %xmm0, (%rax)
550 ; SSE-NEXT:    retq
552 ; AVX1-ONLY-LABEL: load_i32_stride8_vf8:
553 ; AVX1-ONLY:       # %bb.0:
554 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %ymm0
555 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %ymm1
556 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdi), %ymm2
557 ; AVX1-ONLY-NEXT:    vmovaps 96(%rdi), %ymm3
558 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %xmm8
559 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %xmm11
560 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm4 = xmm11[0],xmm8[0],xmm11[1],xmm8[1]
561 ; AVX1-ONLY-NEXT:    vmovaps 96(%rdi), %xmm9
562 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdi), %xmm10
563 ; AVX1-ONLY-NEXT:    vmovaps 160(%rdi), %xmm14
564 ; AVX1-ONLY-NEXT:    vmovaps 128(%rdi), %xmm15
565 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm15[0],xmm14[0],xmm15[1],xmm14[1]
566 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
567 ; AVX1-ONLY-NEXT:    vmovaps 224(%rdi), %xmm12
568 ; AVX1-ONLY-NEXT:    vmovaps 192(%rdi), %xmm13
569 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm6 = xmm13[0],xmm12[0],xmm13[1],xmm12[1]
570 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm7 = xmm6[0,1,0,1]
571 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
572 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],ymm7[6,7]
573 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm10[0],xmm9[0],xmm10[1],xmm9[1]
574 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm4 = xmm4[0],xmm7[0]
575 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm5[4,5,6,7]
576 ; AVX1-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
577 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm5 = xmm11[1,1,1,1]
578 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm5 = xmm5[0],xmm8[1],xmm5[2,3]
579 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm5 = xmm5[0,1],xmm7[2,3]
580 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
581 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm7 = xmm15[1,1,1,1]
582 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0],xmm14[1],xmm7[2,3]
583 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
584 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5],ymm6[6,7]
585 ; AVX1-ONLY-NEXT:    vmovaps 160(%rdi), %ymm6
586 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm7[4,5,6,7]
587 ; AVX1-ONLY-NEXT:    vmovaps 128(%rdi), %ymm7
588 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm8 = xmm11[2],xmm8[2],xmm11[3],xmm8[3]
589 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm15 = xmm15[2],xmm14[2],xmm15[3],xmm14[3]
590 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm11
591 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm14 = xmm12[2,2,2,2]
592 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm14 = xmm13[0,1,2],xmm14[3]
593 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm14, %ymm0, %ymm14
594 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1,2,3,4,5],ymm14[6,7]
595 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm14 = xmm9[2,2,2,2]
596 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm14 = xmm10[0,1,2],xmm14[3]
597 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm14 = xmm8[0,1],xmm14[2,3]
598 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3],ymm11[4,5,6,7]
599 ; AVX1-ONLY-NEXT:    vmovaps 192(%rdi), %ymm11
600 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm9 = xmm10[2],xmm9[2],xmm10[3],xmm9[3]
601 ; AVX1-ONLY-NEXT:    vmovaps 224(%rdi), %ymm10
602 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm8 = xmm8[1],xmm9[1]
603 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm9 = xmm13[2],xmm12[2],xmm13[3],xmm12[3]
604 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm9, %ymm0, %ymm9
605 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm12 = xmm15[2,3,2,3]
606 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm12
607 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm9 = ymm12[0,1,2,3,4,5],ymm9[6,7]
608 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm9 = ymm8[0,1,2,3],ymm9[4,5,6,7]
609 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm8 = ymm10[0],ymm11[0],ymm10[2],ymm11[2]
610 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm12 = ymm7[0],ymm6[0],ymm7[1],ymm6[1],ymm7[4],ymm6[4],ymm7[5],ymm6[5]
611 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm8 = ymm12[0,1],ymm8[2,0],ymm12[4,5],ymm8[6,4]
612 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm12 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
613 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm12 = ymm12[0,1,2,0,4,5,6,4]
614 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm12, %xmm12
615 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm13 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]
616 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm13, %xmm13
617 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm12 = xmm13[0,1],xmm12[2,3]
618 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3],ymm8[4,5,6,7]
619 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm8 = ymm11[0],ymm10[0],ymm11[1],ymm10[1],ymm11[4],ymm10[4],ymm11[5],ymm10[5]
620 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm13 = ymm6[1,0],ymm7[1,0],ymm6[5,4],ymm7[5,4]
621 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm8 = ymm13[2,0],ymm8[2,3],ymm13[6,4],ymm8[6,7]
622 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm13 = ymm2[0],ymm3[0],ymm2[1],ymm3[1],ymm2[4],ymm3[4],ymm2[5],ymm3[5]
623 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm13, %xmm13
624 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm15 = ymm1[1,0],ymm0[1,0],ymm1[5,4],ymm0[5,4]
625 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm15 = ymm15[2,0,2,3,6,4,6,7]
626 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm15, %xmm15
627 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm13 = xmm15[0,1],xmm13[2,3]
628 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]
629 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm13 = ymm10[1],ymm11[1],ymm10[3],ymm11[3]
630 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} ymm15 = ymm7[2],ymm6[2],ymm7[3],ymm6[3],ymm7[6],ymm6[6],ymm7[7],ymm6[7]
631 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm13 = ymm15[0,1],ymm13[2,0],ymm15[4,5],ymm13[6,4]
632 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm15 = ymm3[1],ymm2[1],ymm3[3],ymm2[3]
633 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm15 = ymm15[0,1,2,0,4,5,6,4]
634 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm15, %xmm15
635 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} ymm4 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
636 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm4, %xmm4
637 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],xmm15[2,3]
638 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm13[4,5,6,7]
639 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} ymm10 = ymm11[2],ymm10[2],ymm11[3],ymm10[3],ymm11[6],ymm10[6],ymm11[7],ymm10[7]
640 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm6 = ymm6[3,0],ymm7[3,0],ymm6[7,4],ymm7[7,4]
641 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm6 = ymm6[2,0],ymm10[2,3],ymm6[6,4],ymm10[6,7]
642 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm2[2],ymm3[2],ymm2[3],ymm3[3],ymm2[6],ymm3[6],ymm2[7],ymm3[7]
643 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[3,0],ymm0[3,0],ymm1[7,4],ymm0[7,4]
644 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm2, %xmm1
645 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,0,2,3,6,4,6,7]
646 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm0, %xmm0
647 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
648 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm6[4,5,6,7]
649 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
650 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, (%rsi)
651 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, (%rdx)
652 ; AVX1-ONLY-NEXT:    vmovaps %ymm14, (%rcx)
653 ; AVX1-ONLY-NEXT:    vmovaps %ymm9, (%r8)
654 ; AVX1-ONLY-NEXT:    vmovaps %ymm12, (%r9)
655 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
656 ; AVX1-ONLY-NEXT:    vmovaps %ymm8, (%rax)
657 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
658 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, (%rax)
659 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
660 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, (%rax)
661 ; AVX1-ONLY-NEXT:    vzeroupper
662 ; AVX1-ONLY-NEXT:    retq
664 ; AVX2-ONLY-LABEL: load_i32_stride8_vf8:
665 ; AVX2-ONLY:       # %bb.0:
666 ; AVX2-ONLY-NEXT:    vmovaps 96(%rdi), %ymm0
667 ; AVX2-ONLY-NEXT:    vmovaps 64(%rdi), %ymm1
668 ; AVX2-ONLY-NEXT:    vmovaps 32(%rdi), %ymm2
669 ; AVX2-ONLY-NEXT:    vmovaps (%rdi), %ymm3
670 ; AVX2-ONLY-NEXT:    vmovaps 160(%rdi), %xmm7
671 ; AVX2-ONLY-NEXT:    vmovaps 128(%rdi), %xmm11
672 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm4 = xmm11[0],xmm7[0],xmm11[1],xmm7[1]
673 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
674 ; AVX2-ONLY-NEXT:    vmovaps 224(%rdi), %xmm8
675 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm8, %xmm5
676 ; AVX2-ONLY-NEXT:    vmovaps 192(%rdi), %xmm10
677 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm10, %xmm6
678 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm6[0],xmm5[0],xmm6[1],xmm5[1]
679 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
680 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],ymm5[6,7]
681 ; AVX2-ONLY-NEXT:    vmovaps 96(%rdi), %xmm9
682 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm9, %xmm5
683 ; AVX2-ONLY-NEXT:    vmovaps (%rdi), %xmm13
684 ; AVX2-ONLY-NEXT:    vmovaps 32(%rdi), %xmm14
685 ; AVX2-ONLY-NEXT:    vmovaps 64(%rdi), %xmm12
686 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm12, %xmm6
687 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm6[0],xmm5[0],xmm6[1],xmm5[1]
688 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm6 = xmm13[0],xmm14[0],xmm13[1],xmm14[1]
689 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm5 = xmm6[0,1],xmm5[2,3]
690 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1,2,3],ymm4[4,5,6,7]
691 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm12[0],xmm9[0],xmm12[1],xmm9[1]
692 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} xmm6 = xmm13[1,1,1,1]
693 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0],xmm14[1],xmm6[2,3]
694 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm5 = xmm6[0,1],xmm5[2,3]
695 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm6 = xmm10[0],xmm8[0],xmm10[1],xmm8[1]
696 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
697 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} xmm15 = xmm11[1,1,1,1]
698 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm15 = xmm15[0],xmm7[1],xmm15[2,3]
699 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm15
700 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm15 = ymm15[0,1,2,3,4,5],ymm6[6,7]
701 ; AVX2-ONLY-NEXT:    vmovaps 224(%rdi), %ymm6
702 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm15[4,5,6,7]
703 ; AVX2-ONLY-NEXT:    vunpckhps {{.*#+}} xmm15 = xmm11[2],xmm7[2],xmm11[3],xmm7[3]
704 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm7
705 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} xmm11 = xmm8[2,2,2,2]
706 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm11 = xmm10[0,1,2],xmm11[3]
707 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm11, %ymm0, %ymm11
708 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5],ymm11[6,7]
709 ; AVX2-ONLY-NEXT:    vmovaps 192(%rdi), %ymm11
710 ; AVX2-ONLY-NEXT:    vunpckhps {{.*#+}} xmm14 = xmm13[2],xmm14[2],xmm13[3],xmm14[3]
711 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} xmm13 = xmm9[2,2,2,2]
712 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm13 = xmm12[0,1,2],xmm13[3]
713 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm13 = xmm14[0,1],xmm13[2,3]
714 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm7 = ymm13[0,1,2,3],ymm7[4,5,6,7]
715 ; AVX2-ONLY-NEXT:    vmovaps 160(%rdi), %ymm13
716 ; AVX2-ONLY-NEXT:    vunpckhps {{.*#+}} xmm8 = xmm10[2],xmm8[2],xmm10[3],xmm8[3]
717 ; AVX2-ONLY-NEXT:    vmovaps 128(%rdi), %ymm10
718 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm8
719 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} xmm15 = xmm15[2,3,2,3]
720 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm15
721 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm8 = ymm15[0,1,2,3,4,5],ymm8[6,7]
722 ; AVX2-ONLY-NEXT:    vunpckhps {{.*#+}} xmm9 = xmm12[2],xmm9[2],xmm12[3],xmm9[3]
723 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm9 = xmm14[1],xmm9[1]
724 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm8 = ymm9[0,1,2,3],ymm8[4,5,6,7]
725 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm9 = ymm10[0],ymm13[0],ymm10[1],ymm13[1],ymm10[4],ymm13[4],ymm10[5],ymm13[5]
726 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm12 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
727 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm12, %xmm12
728 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm14 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
729 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm15 = ymm14[2,2,2,2]
730 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm12 = xmm12[0,1],xmm15[2,3]
731 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm15 = ymm11[0],ymm6[0],ymm11[1],ymm6[1],ymm11[4],ymm6[4],ymm11[5],ymm6[5]
732 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm9 = ymm9[0],ymm15[0],ymm9[2],ymm15[2]
733 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm9 = ymm12[0,1,2,3],ymm9[4,5,6,7]
734 ; AVX2-ONLY-NEXT:    vbroadcastss 148(%rdi), %ymm12
735 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3,4],ymm13[5],ymm12[6,7]
736 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3,4,5],ymm15[6,7]
737 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm14, %xmm14
738 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} ymm15 = ymm3[1,1,1,1,5,5,5,5]
739 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm15 = ymm15[0],ymm2[1],ymm15[2,3,4],ymm2[5],ymm15[6,7]
740 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm15, %xmm15
741 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm14 = xmm15[0,1],xmm14[2,3]
742 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm12 = ymm14[0,1,2,3],ymm12[4,5,6,7]
743 ; AVX2-ONLY-NEXT:    vbroadcastss 248(%rdi), %ymm14
744 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1,2,3,4,5,6],ymm14[7]
745 ; AVX2-ONLY-NEXT:    vunpckhps {{.*#+}} ymm10 = ymm10[2],ymm13[2],ymm10[3],ymm13[3],ymm10[6],ymm13[6],ymm10[7],ymm13[7]
746 ; AVX2-ONLY-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm3[2],ymm2[2],ymm3[3],ymm2[3],ymm3[6],ymm2[6],ymm3[7],ymm2[7]
747 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm2, %xmm3
748 ; AVX2-ONLY-NEXT:    vunpckhps {{.*#+}} ymm0 = ymm1[2],ymm0[2],ymm1[3],ymm0[3],ymm1[6],ymm0[6],ymm1[7],ymm0[7]
749 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm1 = ymm0[2,2,2,2]
750 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm3[0,1],xmm1[2,3]
751 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm3 = ymm10[0,1,2,3,4,5],ymm11[6,7]
752 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
753 ; AVX2-ONLY-NEXT:    vbroadcastss 220(%rdi), %ymm3
754 ; AVX2-ONLY-NEXT:    vunpckhps {{.*#+}} ymm3 = ymm3[2],ymm6[2],ymm3[3],ymm6[3],ymm3[6],ymm6[6],ymm3[7],ymm6[7]
755 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm3 = ymm10[1],ymm3[1],ymm10[3],ymm3[3]
756 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm0, %xmm0
757 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[2,3,2,3,6,7,6,7]
758 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm2, %xmm2
759 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm2[0,1],xmm0[2,3]
760 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
761 ; AVX2-ONLY-NEXT:    vmovaps %ymm4, (%rsi)
762 ; AVX2-ONLY-NEXT:    vmovaps %ymm5, (%rdx)
763 ; AVX2-ONLY-NEXT:    vmovaps %ymm7, (%rcx)
764 ; AVX2-ONLY-NEXT:    vmovaps %ymm8, (%r8)
765 ; AVX2-ONLY-NEXT:    vmovaps %ymm9, (%r9)
766 ; AVX2-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
767 ; AVX2-ONLY-NEXT:    vmovaps %ymm12, (%rax)
768 ; AVX2-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
769 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, (%rax)
770 ; AVX2-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
771 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, (%rax)
772 ; AVX2-ONLY-NEXT:    vzeroupper
773 ; AVX2-ONLY-NEXT:    retq
775 ; AVX512-LABEL: load_i32_stride8_vf8:
776 ; AVX512:       # %bb.0:
777 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax
778 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %r10
779 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %r11
780 ; AVX512-NEXT:    vmovdqa64 (%rdi), %zmm0
781 ; AVX512-NEXT:    vmovdqa64 64(%rdi), %zmm1
782 ; AVX512-NEXT:    vmovdqa64 128(%rdi), %zmm2
783 ; AVX512-NEXT:    vmovdqa64 192(%rdi), %zmm3
784 ; AVX512-NEXT:    vbroadcasti128 {{.*#+}} ymm4 = [0,8,16,24,0,8,16,24]
785 ; AVX512-NEXT:    # ymm4 = mem[0,1,0,1]
786 ; AVX512-NEXT:    vpermi2d %zmm3, %zmm2, %zmm4
787 ; AVX512-NEXT:    vmovdqa {{.*#+}} xmm5 = [0,8,16,24]
788 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm5
789 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm4 = ymm5[0,1,2,3],ymm4[4,5,6,7]
790 ; AVX512-NEXT:    vbroadcasti128 {{.*#+}} ymm5 = [1,9,17,25,1,9,17,25]
791 ; AVX512-NEXT:    # ymm5 = mem[0,1,0,1]
792 ; AVX512-NEXT:    vpermi2d %zmm3, %zmm2, %zmm5
793 ; AVX512-NEXT:    vmovdqa {{.*#+}} xmm6 = [1,9,17,25]
794 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm6
795 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm5 = ymm6[0,1,2,3],ymm5[4,5,6,7]
796 ; AVX512-NEXT:    vbroadcasti128 {{.*#+}} ymm6 = [2,10,18,26,2,10,18,26]
797 ; AVX512-NEXT:    # ymm6 = mem[0,1,0,1]
798 ; AVX512-NEXT:    vpermi2d %zmm3, %zmm2, %zmm6
799 ; AVX512-NEXT:    vmovdqa {{.*#+}} xmm7 = [2,10,18,26]
800 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm7
801 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]
802 ; AVX512-NEXT:    vbroadcasti128 {{.*#+}} ymm7 = [3,11,19,27,3,11,19,27]
803 ; AVX512-NEXT:    # ymm7 = mem[0,1,0,1]
804 ; AVX512-NEXT:    vpermi2d %zmm3, %zmm2, %zmm7
805 ; AVX512-NEXT:    vmovdqa {{.*#+}} xmm8 = [3,11,19,27]
806 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm8
807 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]
808 ; AVX512-NEXT:    vbroadcasti128 {{.*#+}} ymm8 = [4,12,20,28,4,12,20,28]
809 ; AVX512-NEXT:    # ymm8 = mem[0,1,0,1]
810 ; AVX512-NEXT:    vpermi2d %zmm3, %zmm2, %zmm8
811 ; AVX512-NEXT:    vmovdqa {{.*#+}} xmm9 = [4,12,20,28]
812 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm9
813 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm8 = ymm9[0,1,2,3],ymm8[4,5,6,7]
814 ; AVX512-NEXT:    vbroadcasti128 {{.*#+}} ymm9 = [5,13,21,29,5,13,21,29]
815 ; AVX512-NEXT:    # ymm9 = mem[0,1,0,1]
816 ; AVX512-NEXT:    vpermi2d %zmm3, %zmm2, %zmm9
817 ; AVX512-NEXT:    vmovdqa {{.*#+}} xmm10 = [5,13,21,29]
818 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm10
819 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm9 = ymm10[0,1,2,3],ymm9[4,5,6,7]
820 ; AVX512-NEXT:    vbroadcasti128 {{.*#+}} ymm10 = [6,14,22,30,6,14,22,30]
821 ; AVX512-NEXT:    # ymm10 = mem[0,1,0,1]
822 ; AVX512-NEXT:    vpermi2d %zmm3, %zmm2, %zmm10
823 ; AVX512-NEXT:    vmovdqa {{.*#+}} xmm11 = [6,14,22,30]
824 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm11
825 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm10 = ymm11[0,1,2,3],ymm10[4,5,6,7]
826 ; AVX512-NEXT:    vbroadcasti128 {{.*#+}} ymm11 = [7,15,23,31,7,15,23,31]
827 ; AVX512-NEXT:    # ymm11 = mem[0,1,0,1]
828 ; AVX512-NEXT:    vpermi2d %zmm3, %zmm2, %zmm11
829 ; AVX512-NEXT:    vmovdqa {{.*#+}} xmm2 = [7,15,23,31]
830 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2
831 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm11[4,5,6,7]
832 ; AVX512-NEXT:    vmovdqa %ymm4, (%rsi)
833 ; AVX512-NEXT:    vmovdqa %ymm5, (%rdx)
834 ; AVX512-NEXT:    vmovdqa %ymm6, (%rcx)
835 ; AVX512-NEXT:    vmovdqa %ymm7, (%r8)
836 ; AVX512-NEXT:    vmovdqa %ymm8, (%r9)
837 ; AVX512-NEXT:    vmovdqa %ymm9, (%r11)
838 ; AVX512-NEXT:    vmovdqa %ymm10, (%r10)
839 ; AVX512-NEXT:    vmovdqa %ymm0, (%rax)
840 ; AVX512-NEXT:    vzeroupper
841 ; AVX512-NEXT:    retq
842   %wide.vec = load <64 x i32>, ptr %in.vec, align 64
843   %strided.vec0 = shufflevector <64 x i32> %wide.vec, <64 x i32> poison, <8 x i32> <i32 0, i32 8, i32 16, i32 24, i32 32, i32 40, i32 48, i32 56>
844   %strided.vec1 = shufflevector <64 x i32> %wide.vec, <64 x i32> poison, <8 x i32> <i32 1, i32 9, i32 17, i32 25, i32 33, i32 41, i32 49, i32 57>
845   %strided.vec2 = shufflevector <64 x i32> %wide.vec, <64 x i32> poison, <8 x i32> <i32 2, i32 10, i32 18, i32 26, i32 34, i32 42, i32 50, i32 58>
846   %strided.vec3 = shufflevector <64 x i32> %wide.vec, <64 x i32> poison, <8 x i32> <i32 3, i32 11, i32 19, i32 27, i32 35, i32 43, i32 51, i32 59>
847   %strided.vec4 = shufflevector <64 x i32> %wide.vec, <64 x i32> poison, <8 x i32> <i32 4, i32 12, i32 20, i32 28, i32 36, i32 44, i32 52, i32 60>
848   %strided.vec5 = shufflevector <64 x i32> %wide.vec, <64 x i32> poison, <8 x i32> <i32 5, i32 13, i32 21, i32 29, i32 37, i32 45, i32 53, i32 61>
849   %strided.vec6 = shufflevector <64 x i32> %wide.vec, <64 x i32> poison, <8 x i32> <i32 6, i32 14, i32 22, i32 30, i32 38, i32 46, i32 54, i32 62>
850   %strided.vec7 = shufflevector <64 x i32> %wide.vec, <64 x i32> poison, <8 x i32> <i32 7, i32 15, i32 23, i32 31, i32 39, i32 47, i32 55, i32 63>
851   store <8 x i32> %strided.vec0, ptr %out.vec0, align 64
852   store <8 x i32> %strided.vec1, ptr %out.vec1, align 64
853   store <8 x i32> %strided.vec2, ptr %out.vec2, align 64
854   store <8 x i32> %strided.vec3, ptr %out.vec3, align 64
855   store <8 x i32> %strided.vec4, ptr %out.vec4, align 64
856   store <8 x i32> %strided.vec5, ptr %out.vec5, align 64
857   store <8 x i32> %strided.vec6, ptr %out.vec6, align 64
858   store <8 x i32> %strided.vec7, ptr %out.vec7, align 64
859   ret void
862 define void @load_i32_stride8_vf16(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4, ptr %out.vec5, ptr %out.vec6, ptr %out.vec7) nounwind {
863 ; SSE-LABEL: load_i32_stride8_vf16:
864 ; SSE:       # %bb.0:
865 ; SSE-NEXT:    subq $296, %rsp # imm = 0x128
866 ; SSE-NEXT:    movaps 288(%rdi), %xmm6
867 ; SSE-NEXT:    movaps 352(%rdi), %xmm0
868 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
869 ; SSE-NEXT:    movaps 320(%rdi), %xmm5
870 ; SSE-NEXT:    movaps 416(%rdi), %xmm2
871 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
872 ; SSE-NEXT:    movaps 384(%rdi), %xmm12
873 ; SSE-NEXT:    movaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
874 ; SSE-NEXT:    movaps 480(%rdi), %xmm13
875 ; SSE-NEXT:    movaps 448(%rdi), %xmm4
876 ; SSE-NEXT:    movaps 160(%rdi), %xmm7
877 ; SSE-NEXT:    movaps 128(%rdi), %xmm10
878 ; SSE-NEXT:    movaps 224(%rdi), %xmm8
879 ; SSE-NEXT:    movaps 192(%rdi), %xmm3
880 ; SSE-NEXT:    movaps %xmm3, %xmm9
881 ; SSE-NEXT:    unpcklps {{.*#+}} xmm9 = xmm9[0],xmm8[0],xmm9[1],xmm8[1]
882 ; SSE-NEXT:    movaps %xmm10, %xmm11
883 ; SSE-NEXT:    movaps %xmm10, %xmm14
884 ; SSE-NEXT:    unpcklps {{.*#+}} xmm11 = xmm11[0],xmm7[0],xmm11[1],xmm7[1]
885 ; SSE-NEXT:    movaps %xmm11, %xmm10
886 ; SSE-NEXT:    movlhps {{.*#+}} xmm10 = xmm10[0],xmm9[0]
887 ; SSE-NEXT:    movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
888 ; SSE-NEXT:    movaps %xmm4, %xmm10
889 ; SSE-NEXT:    unpcklps {{.*#+}} xmm10 = xmm10[0],xmm13[0],xmm10[1],xmm13[1]
890 ; SSE-NEXT:    unpcklps {{.*#+}} xmm12 = xmm12[0],xmm2[0],xmm12[1],xmm2[1]
891 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm11 = xmm11[1],xmm9[1]
892 ; SSE-NEXT:    movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
893 ; SSE-NEXT:    movaps %xmm12, %xmm9
894 ; SSE-NEXT:    movlhps {{.*#+}} xmm9 = xmm9[0],xmm10[0]
895 ; SSE-NEXT:    movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
896 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm12 = xmm12[1],xmm10[1]
897 ; SSE-NEXT:    movaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
898 ; SSE-NEXT:    movaps %xmm5, %xmm9
899 ; SSE-NEXT:    unpcklps {{.*#+}} xmm9 = xmm9[0],xmm0[0],xmm9[1],xmm0[1]
900 ; SSE-NEXT:    movaps 256(%rdi), %xmm15
901 ; SSE-NEXT:    movaps %xmm15, %xmm0
902 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm6[0],xmm0[1],xmm6[1]
903 ; SSE-NEXT:    movaps %xmm0, %xmm10
904 ; SSE-NEXT:    movlhps {{.*#+}} xmm10 = xmm10[0],xmm9[0]
905 ; SSE-NEXT:    movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
906 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm9[1]
907 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
908 ; SSE-NEXT:    movaps 96(%rdi), %xmm10
909 ; SSE-NEXT:    movaps 64(%rdi), %xmm9
910 ; SSE-NEXT:    movaps %xmm9, %xmm11
911 ; SSE-NEXT:    unpcklps {{.*#+}} xmm11 = xmm11[0],xmm10[0],xmm11[1],xmm10[1]
912 ; SSE-NEXT:    movaps (%rdi), %xmm2
913 ; SSE-NEXT:    movaps 32(%rdi), %xmm12
914 ; SSE-NEXT:    movaps %xmm2, %xmm1
915 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm12[0],xmm1[1],xmm12[1]
916 ; SSE-NEXT:    movaps %xmm1, %xmm0
917 ; SSE-NEXT:    movlhps {{.*#+}} xmm0 = xmm0[0],xmm11[0]
918 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
919 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm11[1]
920 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
921 ; SSE-NEXT:    unpckhps {{.*#+}} xmm3 = xmm3[2],xmm8[2],xmm3[3],xmm8[3]
922 ; SSE-NEXT:    unpckhps {{.*#+}} xmm14 = xmm14[2],xmm7[2],xmm14[3],xmm7[3]
923 ; SSE-NEXT:    unpckhps {{.*#+}} xmm4 = xmm4[2],xmm13[2],xmm4[3],xmm13[3]
924 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload
925 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Folded Reload
926 ; SSE-NEXT:    # xmm13 = xmm13[2],mem[2],xmm13[3],mem[3]
927 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload
928 ; SSE-NEXT:    # xmm5 = xmm5[2],mem[2],xmm5[3],mem[3]
929 ; SSE-NEXT:    unpckhps {{.*#+}} xmm15 = xmm15[2],xmm6[2],xmm15[3],xmm6[3]
930 ; SSE-NEXT:    unpckhps {{.*#+}} xmm9 = xmm9[2],xmm10[2],xmm9[3],xmm10[3]
931 ; SSE-NEXT:    unpckhps {{.*#+}} xmm2 = xmm2[2],xmm12[2],xmm2[3],xmm12[3]
932 ; SSE-NEXT:    movaps %xmm14, %xmm0
933 ; SSE-NEXT:    movlhps {{.*#+}} xmm0 = xmm0[0],xmm3[0]
934 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
935 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm14 = xmm14[1],xmm3[1]
936 ; SSE-NEXT:    movaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
937 ; SSE-NEXT:    movaps %xmm13, %xmm0
938 ; SSE-NEXT:    movlhps {{.*#+}} xmm0 = xmm0[0],xmm4[0]
939 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
940 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm13 = xmm13[1],xmm4[1]
941 ; SSE-NEXT:    movaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
942 ; SSE-NEXT:    movaps %xmm15, %xmm0
943 ; SSE-NEXT:    movlhps {{.*#+}} xmm0 = xmm0[0],xmm5[0]
944 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
945 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm15 = xmm15[1],xmm5[1]
946 ; SSE-NEXT:    movaps %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
947 ; SSE-NEXT:    movaps %xmm2, %xmm0
948 ; SSE-NEXT:    movlhps {{.*#+}} xmm0 = xmm0[0],xmm9[0]
949 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
950 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm9[1]
951 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
952 ; SSE-NEXT:    movaps 240(%rdi), %xmm1
953 ; SSE-NEXT:    movaps %xmm1, (%rsp) # 16-byte Spill
954 ; SSE-NEXT:    movaps 208(%rdi), %xmm15
955 ; SSE-NEXT:    movaps %xmm15, %xmm0
956 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
957 ; SSE-NEXT:    movaps 176(%rdi), %xmm2
958 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
959 ; SSE-NEXT:    movaps 144(%rdi), %xmm1
960 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
961 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
962 ; SSE-NEXT:    movaps %xmm1, %xmm2
963 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
964 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
965 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
966 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
967 ; SSE-NEXT:    movaps 496(%rdi), %xmm1
968 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
969 ; SSE-NEXT:    movaps 464(%rdi), %xmm5
970 ; SSE-NEXT:    movaps %xmm5, %xmm0
971 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
972 ; SSE-NEXT:    movaps 432(%rdi), %xmm1
973 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
974 ; SSE-NEXT:    movaps 400(%rdi), %xmm6
975 ; SSE-NEXT:    movaps %xmm6, %xmm10
976 ; SSE-NEXT:    unpcklps {{.*#+}} xmm10 = xmm10[0],xmm1[0],xmm10[1],xmm1[1]
977 ; SSE-NEXT:    movaps %xmm10, %xmm1
978 ; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
979 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
980 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm10 = xmm10[1],xmm0[1]
981 ; SSE-NEXT:    movaps 368(%rdi), %xmm14
982 ; SSE-NEXT:    movaps 336(%rdi), %xmm2
983 ; SSE-NEXT:    movaps %xmm2, %xmm0
984 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm14[0],xmm0[1],xmm14[1]
985 ; SSE-NEXT:    movaps 304(%rdi), %xmm12
986 ; SSE-NEXT:    movaps 272(%rdi), %xmm7
987 ; SSE-NEXT:    movaps %xmm7, %xmm4
988 ; SSE-NEXT:    unpcklps {{.*#+}} xmm4 = xmm4[0],xmm12[0],xmm4[1],xmm12[1]
989 ; SSE-NEXT:    movaps %xmm4, %xmm1
990 ; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
991 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
992 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm0[1]
993 ; SSE-NEXT:    movaps 112(%rdi), %xmm13
994 ; SSE-NEXT:    movaps 80(%rdi), %xmm1
995 ; SSE-NEXT:    movaps %xmm1, %xmm0
996 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm13[0],xmm0[1],xmm13[1]
997 ; SSE-NEXT:    movaps 16(%rdi), %xmm8
998 ; SSE-NEXT:    movaps 48(%rdi), %xmm11
999 ; SSE-NEXT:    movaps %xmm8, %xmm3
1000 ; SSE-NEXT:    unpcklps {{.*#+}} xmm3 = xmm3[0],xmm11[0],xmm3[1],xmm11[1]
1001 ; SSE-NEXT:    movaps %xmm3, %xmm9
1002 ; SSE-NEXT:    movlhps {{.*#+}} xmm9 = xmm9[0],xmm0[0]
1003 ; SSE-NEXT:    movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1004 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm3 = xmm3[1],xmm0[1]
1005 ; SSE-NEXT:    unpckhps (%rsp), %xmm15 # 16-byte Folded Reload
1006 ; SSE-NEXT:    # xmm15 = xmm15[2],mem[2],xmm15[3],mem[3]
1007 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1008 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
1009 ; SSE-NEXT:    # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]
1010 ; SSE-NEXT:    unpckhps {{.*#+}} xmm2 = xmm2[2],xmm14[2],xmm2[3],xmm14[3]
1011 ; SSE-NEXT:    unpckhps {{.*#+}} xmm7 = xmm7[2],xmm12[2],xmm7[3],xmm12[3]
1012 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload
1013 ; SSE-NEXT:    # xmm5 = xmm5[2],mem[2],xmm5[3],mem[3]
1014 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload
1015 ; SSE-NEXT:    # xmm6 = xmm6[2],mem[2],xmm6[3],mem[3]
1016 ; SSE-NEXT:    unpckhps {{.*#+}} xmm1 = xmm1[2],xmm13[2],xmm1[3],xmm13[3]
1017 ; SSE-NEXT:    unpckhps {{.*#+}} xmm8 = xmm8[2],xmm11[2],xmm8[3],xmm11[3]
1018 ; SSE-NEXT:    movaps %xmm0, %xmm11
1019 ; SSE-NEXT:    movlhps {{.*#+}} xmm11 = xmm11[0],xmm15[0]
1020 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm15[1]
1021 ; SSE-NEXT:    movaps %xmm0, %xmm12
1022 ; SSE-NEXT:    movaps %xmm7, %xmm9
1023 ; SSE-NEXT:    movlhps {{.*#+}} xmm9 = xmm9[0],xmm2[0]
1024 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm7 = xmm7[1],xmm2[1]
1025 ; SSE-NEXT:    movaps %xmm6, %xmm0
1026 ; SSE-NEXT:    movlhps {{.*#+}} xmm0 = xmm0[0],xmm5[0]
1027 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm6 = xmm6[1],xmm5[1]
1028 ; SSE-NEXT:    movaps %xmm8, %xmm2
1029 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm1[0]
1030 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm1[1]
1031 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1032 ; SSE-NEXT:    movaps %xmm1, 32(%rsi)
1033 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1034 ; SSE-NEXT:    movaps %xmm1, 48(%rsi)
1035 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1036 ; SSE-NEXT:    movaps %xmm1, (%rsi)
1037 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1038 ; SSE-NEXT:    movaps %xmm1, 16(%rsi)
1039 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1040 ; SSE-NEXT:    movaps %xmm1, 32(%rdx)
1041 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1042 ; SSE-NEXT:    movaps %xmm1, 48(%rdx)
1043 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1044 ; SSE-NEXT:    movaps %xmm1, (%rdx)
1045 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1046 ; SSE-NEXT:    movaps %xmm1, 16(%rdx)
1047 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1048 ; SSE-NEXT:    movaps %xmm1, 32(%rcx)
1049 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1050 ; SSE-NEXT:    movaps %xmm1, 48(%rcx)
1051 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1052 ; SSE-NEXT:    movaps %xmm1, (%rcx)
1053 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1054 ; SSE-NEXT:    movaps %xmm1, 16(%rcx)
1055 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1056 ; SSE-NEXT:    movaps %xmm1, 32(%r8)
1057 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1058 ; SSE-NEXT:    movaps %xmm1, 48(%r8)
1059 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1060 ; SSE-NEXT:    movaps %xmm1, (%r8)
1061 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1062 ; SSE-NEXT:    movaps %xmm1, 16(%r8)
1063 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1064 ; SSE-NEXT:    movaps %xmm1, 32(%r9)
1065 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1066 ; SSE-NEXT:    movaps %xmm1, 48(%r9)
1067 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1068 ; SSE-NEXT:    movaps %xmm1, (%r9)
1069 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1070 ; SSE-NEXT:    movaps %xmm1, 16(%r9)
1071 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1072 ; SSE-NEXT:    movaps %xmm4, 32(%rax)
1073 ; SSE-NEXT:    movaps %xmm10, 48(%rax)
1074 ; SSE-NEXT:    movaps %xmm3, (%rax)
1075 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1076 ; SSE-NEXT:    movaps %xmm1, 16(%rax)
1077 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1078 ; SSE-NEXT:    movaps %xmm0, 48(%rax)
1079 ; SSE-NEXT:    movaps %xmm9, 32(%rax)
1080 ; SSE-NEXT:    movaps %xmm11, 16(%rax)
1081 ; SSE-NEXT:    movaps %xmm2, (%rax)
1082 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1083 ; SSE-NEXT:    movaps %xmm6, 48(%rax)
1084 ; SSE-NEXT:    movaps %xmm7, 32(%rax)
1085 ; SSE-NEXT:    movaps %xmm12, 16(%rax)
1086 ; SSE-NEXT:    movaps %xmm8, (%rax)
1087 ; SSE-NEXT:    addq $296, %rsp # imm = 0x128
1088 ; SSE-NEXT:    retq
1090 ; AVX1-ONLY-LABEL: load_i32_stride8_vf16:
1091 ; AVX1-ONLY:       # %bb.0:
1092 ; AVX1-ONLY-NEXT:    subq $616, %rsp # imm = 0x268
1093 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %xmm14
1094 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %xmm9
1095 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm9[0],xmm14[0],xmm9[1],xmm14[1]
1096 ; AVX1-ONLY-NEXT:    vmovaps 96(%rdi), %xmm1
1097 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1098 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdi), %xmm2
1099 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1100 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm8 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
1101 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm0[0],xmm8[0]
1102 ; AVX1-ONLY-NEXT:    vmovaps 160(%rdi), %xmm5
1103 ; AVX1-ONLY-NEXT:    vmovaps 128(%rdi), %xmm10
1104 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm10[0],xmm5[0],xmm10[1],xmm5[1]
1105 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm6
1106 ; AVX1-ONLY-NEXT:    vmovaps 224(%rdi), %xmm0
1107 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1108 ; AVX1-ONLY-NEXT:    vmovaps 192(%rdi), %xmm1
1109 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1110 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm4 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
1111 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm7 = xmm4[0,1,0,1]
1112 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
1113 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5],ymm7[6,7]
1114 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm6[4,5,6,7]
1115 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1116 ; AVX1-ONLY-NEXT:    vmovaps 416(%rdi), %xmm11
1117 ; AVX1-ONLY-NEXT:    vmovaps 384(%rdi), %xmm12
1118 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm12[0],xmm11[0],xmm12[1],xmm11[1]
1119 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
1120 ; AVX1-ONLY-NEXT:    vmovaps 480(%rdi), %xmm0
1121 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, (%rsp) # 16-byte Spill
1122 ; AVX1-ONLY-NEXT:    vmovaps 448(%rdi), %xmm1
1123 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1124 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
1125 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm6 = xmm3[0,1,0,1]
1126 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
1127 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm6[6,7]
1128 ; AVX1-ONLY-NEXT:    vmovaps 288(%rdi), %xmm13
1129 ; AVX1-ONLY-NEXT:    vmovaps 256(%rdi), %xmm15
1130 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm15[0],xmm13[0],xmm15[1],xmm13[1]
1131 ; AVX1-ONLY-NEXT:    vmovaps 352(%rdi), %xmm7
1132 ; AVX1-ONLY-NEXT:    vmovaps 320(%rdi), %xmm6
1133 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm6[0],xmm7[0],xmm6[1],xmm7[1]
1134 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
1135 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]
1136 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1137 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm9[1,1,1,1]
1138 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0],xmm14[1],xmm1[2,3]
1139 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm8[2,3]
1140 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm2
1141 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm4 = xmm10[1,1,1,1]
1142 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0],xmm5[1],xmm4[2,3]
1143 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
1144 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3,4,5],ymm2[6,7]
1145 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]
1146 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1147 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm15[1,1,1,1]
1148 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0],xmm13[1],xmm1[2,3]
1149 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
1150 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm1
1151 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm12[1,1,1,1]
1152 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0],xmm11[1],xmm2[2,3]
1153 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
1154 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
1155 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
1156 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1157 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm9[2],xmm14[2],xmm9[3],xmm14[3]
1158 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm10[2],xmm5[2],xmm10[3],xmm5[3]
1159 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
1160 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm14[2,2,2,2]
1161 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
1162 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm10[0,1,2],xmm2[3]
1163 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
1164 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm3
1165 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3,4,5],ymm2[6,7]
1166 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload
1167 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm3 = xmm9[2,2,2,2]
1168 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
1169 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm3 = xmm8[0,1,2],xmm3[3]
1170 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm3 = xmm1[0,1],xmm3[2,3]
1171 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
1172 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1173 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm15[2],xmm13[2],xmm15[3],xmm13[3]
1174 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm3 = xmm12[2],xmm11[2],xmm12[3],xmm11[3]
1175 ; AVX1-ONLY-NEXT:    vmovaps (%rsp), %xmm15 # 16-byte Reload
1176 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm4 = xmm15[2,2,2,2]
1177 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload
1178 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm4 = xmm11[0,1,2],xmm4[3]
1179 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
1180 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm5
1181 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1,2,3,4,5],ymm4[6,7]
1182 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm5 = xmm7[2,2,2,2]
1183 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm5 = xmm6[0,1,2],xmm5[3]
1184 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm5 = xmm2[0,1],xmm5[2,3]
1185 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1,2,3],ymm4[4,5,6,7]
1186 ; AVX1-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1187 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm8[2],xmm9[2],xmm8[3],xmm9[3]
1188 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm4[1]
1189 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm10[2],xmm14[2],xmm10[3],xmm14[3]
1190 ; AVX1-ONLY-NEXT:    vmovaps 288(%rdi), %ymm5
1191 ; AVX1-ONLY-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1192 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
1193 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[2,3,2,3]
1194 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
1195 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm4[6,7]
1196 ; AVX1-ONLY-NEXT:    vmovaps 256(%rdi), %ymm4
1197 ; AVX1-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1198 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
1199 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1200 ; AVX1-ONLY-NEXT:    vmovaps 416(%rdi), %ymm8
1201 ; AVX1-ONLY-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1202 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm6[2],xmm7[2],xmm6[3],xmm7[3]
1203 ; AVX1-ONLY-NEXT:    vmovaps 384(%rdi), %ymm6
1204 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm2[1],xmm0[1]
1205 ; AVX1-ONLY-NEXT:    vmovaps 448(%rdi), %ymm7
1206 ; AVX1-ONLY-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1207 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm11[2],xmm15[2],xmm11[3],xmm15[3]
1208 ; AVX1-ONLY-NEXT:    vmovaps 480(%rdi), %ymm9
1209 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
1210 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm3[2,3,2,3]
1211 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
1212 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
1213 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
1214 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1215 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm9[0],ymm7[0],ymm9[2],ymm7[2]
1216 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm6[0],ymm8[0],ymm6[1],ymm8[1],ymm6[4],ymm8[4],ymm6[5],ymm8[5]
1217 ; AVX1-ONLY-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1218 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]
1219 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm4[0],ymm5[0],ymm4[1],ymm5[1],ymm4[4],ymm5[4],ymm4[5],ymm5[5]
1220 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm1, %xmm1
1221 ; AVX1-ONLY-NEXT:    vmovaps 320(%rdi), %ymm10
1222 ; AVX1-ONLY-NEXT:    vmovaps 352(%rdi), %ymm11
1223 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm11[0],ymm10[0],ymm11[2],ymm10[2]
1224 ; AVX1-ONLY-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1225 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[0,1,2,0,4,5,6,4]
1226 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm2, %xmm2
1227 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
1228 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
1229 ; AVX1-ONLY-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
1230 ; AVX1-ONLY-NEXT:    vmovaps 160(%rdi), %ymm7
1231 ; AVX1-ONLY-NEXT:    vmovaps 128(%rdi), %ymm5
1232 ; AVX1-ONLY-NEXT:    vmovaps 192(%rdi), %ymm1
1233 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1234 ; AVX1-ONLY-NEXT:    vmovaps 224(%rdi), %ymm0
1235 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1236 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
1237 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm5[0],ymm7[0],ymm5[1],ymm7[1],ymm5[4],ymm7[4],ymm5[5],ymm7[5]
1238 ; AVX1-ONLY-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1239 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]
1240 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdi), %ymm0
1241 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1242 ; AVX1-ONLY-NEXT:    vmovaps 96(%rdi), %ymm14
1243 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm14[0],ymm0[0],ymm14[2],ymm0[2]
1244 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[0,1,2,0,4,5,6,4]
1245 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm0, %xmm0
1246 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %ymm13
1247 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %ymm12
1248 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm15 = ymm13[0],ymm12[0],ymm13[1],ymm12[1],ymm13[4],ymm12[4],ymm13[5],ymm12[5]
1249 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm15, %xmm15
1250 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm15[0,1],xmm0[2,3]
1251 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
1252 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1253 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
1254 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm4[0],ymm9[0],ymm4[1],ymm9[1],ymm4[4],ymm9[4],ymm4[5],ymm9[5]
1255 ; AVX1-ONLY-NEXT:    vmovaps %ymm9, %ymm8
1256 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
1257 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm9[1,0],ymm6[1,0],ymm9[5,4],ymm6[5,4]
1258 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm6 = ymm2[2,0],ymm0[2,3],ymm2[6,4],ymm0[6,7]
1259 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm2 = ymm10[0],ymm11[0],ymm10[1],ymm11[1],ymm10[4],ymm11[4],ymm10[5],ymm11[5]
1260 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm2, %xmm2
1261 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
1262 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1263 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm15 = ymm0[1,0],ymm1[1,0],ymm0[5,4],ymm1[5,4]
1264 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm15 = ymm15[2,0,2,3,6,4,6,7]
1265 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm15, %xmm15
1266 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm15[0,1],xmm2[2,3]
1267 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm6[4,5,6,7]
1268 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1269 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1270 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
1271 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm15 = ymm3[0],ymm6[0],ymm3[1],ymm6[1],ymm3[4],ymm6[4],ymm3[5],ymm6[5]
1272 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm7[1,0],ymm5[1,0],ymm7[5,4],ymm5[5,4]
1273 ; AVX1-ONLY-NEXT:    vmovaps %ymm7, %ymm11
1274 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm7 = ymm2[2,0],ymm15[2,3],ymm2[6,4],ymm15[6,7]
1275 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
1276 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm2 = ymm5[0],ymm14[0],ymm5[1],ymm14[1],ymm5[4],ymm14[4],ymm5[5],ymm14[5]
1277 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm2, %xmm2
1278 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm15 = ymm12[1,0],ymm13[1,0],ymm12[5,4],ymm13[5,4]
1279 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm15 = ymm15[2,0,2,3,6,4,6,7]
1280 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm15, %xmm15
1281 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm15[0,1],xmm2[2,3]
1282 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm7[4,5,6,7]
1283 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1284 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm7 = ymm8[1],ymm4[1],ymm8[3],ymm4[3]
1285 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
1286 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm4[2],ymm9[2],ymm4[3],ymm9[3],ymm4[6],ymm9[6],ymm4[7],ymm9[7]
1287 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm9 = ymm2[0,1],ymm7[2,0],ymm2[4,5],ymm7[6,4]
1288 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm1[2],ymm0[2],ymm1[3],ymm0[3],ymm1[6],ymm0[6],ymm1[7],ymm0[7]
1289 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm2, %xmm2
1290 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
1291 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm15 = ymm7[1],ymm10[1],ymm7[3],ymm10[3]
1292 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm15 = ymm15[0,1,2,0,4,5,6,4]
1293 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm15, %xmm15
1294 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm15[2,3]
1295 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm9[4,5,6,7]
1296 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1297 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm6[1],ymm3[1],ymm6[3],ymm3[3]
1298 ; AVX1-ONLY-NEXT:    vmovaps %ymm3, %ymm9
1299 ; AVX1-ONLY-NEXT:    vmovaps %ymm11, %ymm1
1300 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
1301 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm3[2],ymm11[2],ymm3[3],ymm11[3],ymm3[6],ymm11[6],ymm3[7],ymm11[7]
1302 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,0],ymm2[4,5],ymm0[6,4]
1303 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm14[1],ymm5[1],ymm14[3],ymm5[3]
1304 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[0,1,2,0,4,5,6,4]
1305 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm2, %xmm2
1306 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} ymm15 = ymm13[2],ymm12[2],ymm13[3],ymm12[3],ymm13[6],ymm12[6],ymm13[7],ymm12[7]
1307 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm15, %xmm15
1308 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm15[0,1],xmm2[2,3]
1309 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm11 = ymm2[0,1,2,3],ymm0[4,5,6,7]
1310 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1311 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} ymm0 = ymm0[2],ymm8[2],ymm0[3],ymm8[3],ymm0[6],ymm8[6],ymm0[7],ymm8[7]
1312 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1313 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[3,0],ymm4[3,0],ymm2[7,4],ymm4[7,4]
1314 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm2[2,0],ymm0[2,3],ymm2[6,4],ymm0[6,7]
1315 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm10[2],ymm7[2],ymm10[3],ymm7[3],ymm10[6],ymm7[6],ymm10[7],ymm7[7]
1316 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
1317 ; AVX1-ONLY-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm7 # 32-byte Folded Reload
1318 ; AVX1-ONLY-NEXT:    # ymm7 = ymm4[3,0],mem[3,0],ymm4[7,4],mem[7,4]
1319 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm2, %xmm2
1320 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm7 = ymm7[2,0,2,3,6,4,6,7]
1321 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm7, %xmm7
1322 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm7[0,1],xmm2[2,3]
1323 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
1324 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm9[2],ymm6[2],ymm9[3],ymm6[3],ymm9[6],ymm6[6],ymm9[7],ymm6[7]
1325 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm6 = ymm1[3,0],ymm3[3,0],ymm1[7,4],ymm3[7,4]
1326 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm6[2,0],ymm2[2,3],ymm6[6,4],ymm2[6,7]
1327 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} ymm4 = ymm5[2],ymm14[2],ymm5[3],ymm14[3],ymm5[6],ymm14[6],ymm5[7],ymm14[7]
1328 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm12[3,0],ymm13[3,0],ymm12[7,4],ymm13[7,4]
1329 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm4, %xmm3
1330 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[2,0,2,3,6,4,6,7]
1331 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm1, %xmm1
1332 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm3[2,3]
1333 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]
1334 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1335 ; AVX1-ONLY-NEXT:    vmovaps %ymm2, 32(%rsi)
1336 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1337 ; AVX1-ONLY-NEXT:    vmovaps %ymm2, (%rsi)
1338 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1339 ; AVX1-ONLY-NEXT:    vmovaps %ymm2, 32(%rdx)
1340 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1341 ; AVX1-ONLY-NEXT:    vmovaps %ymm2, (%rdx)
1342 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1343 ; AVX1-ONLY-NEXT:    vmovaps %ymm2, 32(%rcx)
1344 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1345 ; AVX1-ONLY-NEXT:    vmovaps %ymm2, (%rcx)
1346 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1347 ; AVX1-ONLY-NEXT:    vmovaps %ymm2, 32(%r8)
1348 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1349 ; AVX1-ONLY-NEXT:    vmovaps %ymm2, (%r8)
1350 ; AVX1-ONLY-NEXT:    vmovups (%rsp), %ymm2 # 32-byte Reload
1351 ; AVX1-ONLY-NEXT:    vmovaps %ymm2, 32(%r9)
1352 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1353 ; AVX1-ONLY-NEXT:    vmovaps %ymm2, (%r9)
1354 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1355 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1356 ; AVX1-ONLY-NEXT:    vmovaps %ymm2, 32(%rax)
1357 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1358 ; AVX1-ONLY-NEXT:    vmovaps %ymm2, (%rax)
1359 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1360 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
1361 ; AVX1-ONLY-NEXT:    vmovaps %ymm2, 32(%rax)
1362 ; AVX1-ONLY-NEXT:    vmovaps %ymm11, (%rax)
1363 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1364 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 32(%rax)
1365 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, (%rax)
1366 ; AVX1-ONLY-NEXT:    addq $616, %rsp # imm = 0x268
1367 ; AVX1-ONLY-NEXT:    vzeroupper
1368 ; AVX1-ONLY-NEXT:    retq
1370 ; AVX2-ONLY-LABEL: load_i32_stride8_vf16:
1371 ; AVX2-ONLY:       # %bb.0:
1372 ; AVX2-ONLY-NEXT:    subq $456, %rsp # imm = 0x1C8
1373 ; AVX2-ONLY-NEXT:    vmovaps 288(%rdi), %xmm1
1374 ; AVX2-ONLY-NEXT:    vmovaps 256(%rdi), %xmm9
1375 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm9[0],xmm1[0],xmm9[1],xmm1[1]
1376 ; AVX2-ONLY-NEXT:    vmovaps %xmm1, %xmm8
1377 ; AVX2-ONLY-NEXT:    vmovaps 352(%rdi), %xmm1
1378 ; AVX2-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1379 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm1, %xmm2
1380 ; AVX2-ONLY-NEXT:    vmovaps 320(%rdi), %xmm1
1381 ; AVX2-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1382 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm1, %xmm3
1383 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
1384 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm2[2,3]
1385 ; AVX2-ONLY-NEXT:    vmovaps 416(%rdi), %xmm1
1386 ; AVX2-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1387 ; AVX2-ONLY-NEXT:    vmovaps 384(%rdi), %xmm2
1388 ; AVX2-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1389 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
1390 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
1391 ; AVX2-ONLY-NEXT:    vmovaps 480(%rdi), %xmm1
1392 ; AVX2-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1393 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm1, %xmm3
1394 ; AVX2-ONLY-NEXT:    vmovaps 448(%rdi), %xmm1
1395 ; AVX2-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1396 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm1, %xmm10
1397 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm10[0],xmm3[0],xmm10[1],xmm3[1]
1398 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
1399 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm3[6,7]
1400 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
1401 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1402 ; AVX2-ONLY-NEXT:    vmovaps 160(%rdi), %xmm0
1403 ; AVX2-ONLY-NEXT:    vmovaps 128(%rdi), %xmm15
1404 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm15[0],xmm0[0],xmm15[1],xmm0[1]
1405 ; AVX2-ONLY-NEXT:    vmovaps %xmm0, %xmm6
1406 ; AVX2-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1407 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
1408 ; AVX2-ONLY-NEXT:    vmovaps 224(%rdi), %xmm0
1409 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm0, %xmm3
1410 ; AVX2-ONLY-NEXT:    vmovaps %xmm0, %xmm4
1411 ; AVX2-ONLY-NEXT:    vmovaps %xmm0, (%rsp) # 16-byte Spill
1412 ; AVX2-ONLY-NEXT:    vmovaps 192(%rdi), %xmm12
1413 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm12, %xmm11
1414 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm11[0],xmm3[0],xmm11[1],xmm3[1]
1415 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
1416 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm3[6,7]
1417 ; AVX2-ONLY-NEXT:    vmovaps 96(%rdi), %xmm0
1418 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm0, %xmm2
1419 ; AVX2-ONLY-NEXT:    vmovaps %xmm0, %xmm5
1420 ; AVX2-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1421 ; AVX2-ONLY-NEXT:    vmovaps 64(%rdi), %xmm13
1422 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm13, %xmm3
1423 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
1424 ; AVX2-ONLY-NEXT:    vmovaps (%rdi), %xmm11
1425 ; AVX2-ONLY-NEXT:    vmovaps 32(%rdi), %xmm10
1426 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm11[0],xmm10[0],xmm11[1],xmm10[1]
1427 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm7[0,1],xmm0[2,3]
1428 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
1429 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1430 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm11[1,1,1,1]
1431 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0],xmm10[1],xmm0[2,3]
1432 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm13[0],xmm5[0],xmm13[1],xmm5[1]
1433 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
1434 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm12[0],xmm4[0],xmm12[1],xmm4[1]
1435 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
1436 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} xmm7 = xmm15[1,1,1,1]
1437 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0],xmm6[1],xmm7[2,3]
1438 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
1439 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm7[0,1,2,3,4,5],ymm1[6,7]
1440 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
1441 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1442 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm9[1,1,1,1]
1443 ; AVX2-ONLY-NEXT:    vmovaps %xmm8, %xmm6
1444 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0],xmm8[1],xmm0[2,3]
1445 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
1446 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
1447 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm14[0],xmm8[0],xmm14[1],xmm8[1]
1448 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
1449 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
1450 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
1451 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
1452 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
1453 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
1454 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} xmm7 = xmm5[1,1,1,1]
1455 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
1456 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0],xmm4[1],xmm7[2,3]
1457 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
1458 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm7[0,1,2,3,4,5],ymm1[6,7]
1459 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
1460 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1461 ; AVX2-ONLY-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm9[2],xmm6[2],xmm9[3],xmm6[3]
1462 ; AVX2-ONLY-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
1463 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} xmm5 = xmm2[2,2,2,2]
1464 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm5 = xmm3[0,1,2],xmm5[3]
1465 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
1466 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm6
1467 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2,3,4,5],ymm5[6,7]
1468 ; AVX2-ONLY-NEXT:    vmovaps %xmm8, %xmm7
1469 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} xmm6 = xmm8[2,2,2,2]
1470 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm6 = xmm14[0,1,2],xmm6[3]
1471 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm6 = xmm0[0,1],xmm6[2,3]
1472 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2,3],ymm5[4,5,6,7]
1473 ; AVX2-ONLY-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1474 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm4 # 16-byte Folded Reload
1475 ; AVX2-ONLY-NEXT:    # xmm4 = xmm15[2],mem[2],xmm15[3],mem[3]
1476 ; AVX2-ONLY-NEXT:    vmovaps (%rsp), %xmm9 # 16-byte Reload
1477 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} xmm5 = xmm9[2,2,2,2]
1478 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm5 = xmm12[0,1,2],xmm5[3]
1479 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
1480 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm6
1481 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2,3,4,5],ymm5[6,7]
1482 ; AVX2-ONLY-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm11[2],xmm10[2],xmm11[3],xmm10[3]
1483 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
1484 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} xmm3 = xmm8[2,2,2,2]
1485 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm3 = xmm13[0,1,2],xmm3[3]
1486 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm3 = xmm2[0,1],xmm3[2,3]
1487 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm5[4,5,6,7]
1488 ; AVX2-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1489 ; AVX2-ONLY-NEXT:    vunpckhps {{.*#+}} xmm3 = xmm14[2],xmm7[2],xmm14[3],xmm7[3]
1490 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm3[1]
1491 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
1492 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm3 # 16-byte Folded Reload
1493 ; AVX2-ONLY-NEXT:    # xmm3 = xmm3[2],mem[2],xmm3[3],mem[3]
1494 ; AVX2-ONLY-NEXT:    vmovaps 96(%rdi), %ymm5
1495 ; AVX2-ONLY-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1496 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
1497 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[2,3,2,3]
1498 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
1499 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
1500 ; AVX2-ONLY-NEXT:    vmovaps 64(%rdi), %ymm6
1501 ; AVX2-ONLY-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1502 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
1503 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1504 ; AVX2-ONLY-NEXT:    vmovaps 32(%rdi), %ymm15
1505 ; AVX2-ONLY-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm12[2],xmm9[2],xmm12[3],xmm9[3]
1506 ; AVX2-ONLY-NEXT:    vmovaps (%rdi), %ymm14
1507 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
1508 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm4[2,3,2,3]
1509 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
1510 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
1511 ; AVX2-ONLY-NEXT:    vmovaps 224(%rdi), %ymm3
1512 ; AVX2-ONLY-NEXT:    vmovups %ymm3, (%rsp) # 32-byte Spill
1513 ; AVX2-ONLY-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm13[2],xmm8[2],xmm13[3],xmm8[3]
1514 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm2[1],xmm1[1]
1515 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
1516 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1517 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm14[0],ymm15[0],ymm14[1],ymm15[1],ymm14[4],ymm15[4],ymm14[5],ymm15[5]
1518 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm0, %xmm0
1519 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm11 = ymm6[0],ymm5[0],ymm6[1],ymm5[1],ymm6[4],ymm5[4],ymm6[5],ymm5[5]
1520 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm1 = ymm11[2,2,2,2]
1521 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
1522 ; AVX2-ONLY-NEXT:    vmovaps 192(%rdi), %ymm1
1523 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1524 ; AVX2-ONLY-NEXT:    vmovaps 160(%rdi), %ymm7
1525 ; AVX2-ONLY-NEXT:    vmovaps 128(%rdi), %ymm13
1526 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm2 = ymm13[0],ymm7[0],ymm13[1],ymm7[1],ymm13[4],ymm7[4],ymm13[5],ymm7[5]
1527 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm5 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[5],ymm3[5]
1528 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm2[0],ymm5[0],ymm2[2],ymm5[2]
1529 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
1530 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1531 ; AVX2-ONLY-NEXT:    vmovaps 288(%rdi), %ymm9
1532 ; AVX2-ONLY-NEXT:    vmovaps 256(%rdi), %ymm8
1533 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm8[0],ymm9[0],ymm8[1],ymm9[1],ymm8[4],ymm9[4],ymm8[5],ymm9[5]
1534 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm0, %xmm0
1535 ; AVX2-ONLY-NEXT:    vmovaps 352(%rdi), %ymm1
1536 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1537 ; AVX2-ONLY-NEXT:    vmovaps 320(%rdi), %ymm2
1538 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1539 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm4 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[4],ymm1[4],ymm2[5],ymm1[5]
1540 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm6 = ymm4[2,2,2,2]
1541 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm0[0,1],xmm6[2,3]
1542 ; AVX2-ONLY-NEXT:    vmovaps 480(%rdi), %ymm0
1543 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1544 ; AVX2-ONLY-NEXT:    vmovaps 448(%rdi), %ymm12
1545 ; AVX2-ONLY-NEXT:    vmovaps 416(%rdi), %ymm6
1546 ; AVX2-ONLY-NEXT:    vmovaps 384(%rdi), %ymm10
1547 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm10[0],ymm6[0],ymm10[1],ymm6[1],ymm10[4],ymm6[4],ymm10[5],ymm6[5]
1548 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm3 = ymm12[0],ymm0[0],ymm12[1],ymm0[1],ymm12[4],ymm0[4],ymm12[5],ymm0[5]
1549 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm3[0],ymm1[2],ymm3[2]
1550 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
1551 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1552 ; AVX2-ONLY-NEXT:    vbroadcastss 148(%rdi), %ymm0
1553 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm7[5],ymm0[6,7]
1554 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm5[6,7]
1555 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm11, %xmm2
1556 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} ymm5 = ymm14[1,1,1,1,5,5,5,5]
1557 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0],ymm15[1],ymm5[2,3,4],ymm15[5],ymm5[6,7]
1558 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm5, %xmm5
1559 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm5[0,1],xmm2[2,3]
1560 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
1561 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1562 ; AVX2-ONLY-NEXT:    vbroadcastss 404(%rdi), %ymm0
1563 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm6[5],ymm0[6,7]
1564 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm3[6,7]
1565 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm4, %xmm1
1566 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm8[1,1,1,1,5,5,5,5]
1567 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0],ymm9[1],ymm2[2,3,4],ymm9[5],ymm2[6,7]
1568 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm2, %xmm2
1569 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
1570 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm11 = ymm1[0,1,2,3],ymm0[4,5,6,7]
1571 ; AVX2-ONLY-NEXT:    vbroadcastss 248(%rdi), %ymm0
1572 ; AVX2-ONLY-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
1573 ; AVX2-ONLY-NEXT:    # ymm0 = mem[0,1,2,3,4,5,6],ymm0[7]
1574 ; AVX2-ONLY-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm13[2],ymm7[2],ymm13[3],ymm7[3],ymm13[6],ymm7[6],ymm13[7],ymm7[7]
1575 ; AVX2-ONLY-NEXT:    vunpckhps {{.*#+}} ymm4 = ymm14[2],ymm15[2],ymm14[3],ymm15[3],ymm14[6],ymm15[6],ymm14[7],ymm15[7]
1576 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
1577 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm5 # 32-byte Folded Reload
1578 ; AVX2-ONLY-NEXT:    # ymm5 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
1579 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm4, %xmm1
1580 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm7 = ymm5[2,2,2,2]
1581 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm7[2,3]
1582 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3,4,5],ymm0[6,7]
1583 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm0[4,5,6,7]
1584 ; AVX2-ONLY-NEXT:    vbroadcastss 504(%rdi), %ymm0
1585 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm12[0,1,2,3,4,5,6],ymm0[7]
1586 ; AVX2-ONLY-NEXT:    vunpckhps {{.*#+}} ymm3 = ymm10[2],ymm6[2],ymm10[3],ymm6[3],ymm10[6],ymm6[6],ymm10[7],ymm6[7]
1587 ; AVX2-ONLY-NEXT:    vunpckhps {{.*#+}} ymm6 = ymm8[2],ymm9[2],ymm8[3],ymm9[3],ymm8[6],ymm9[6],ymm8[7],ymm9[7]
1588 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
1589 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload
1590 ; AVX2-ONLY-NEXT:    # ymm7 = ymm7[2],mem[2],ymm7[3],mem[3],ymm7[6],mem[6],ymm7[7],mem[7]
1591 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm6, %xmm8
1592 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm9 = ymm7[2,2,2,2]
1593 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm8 = xmm8[0,1],xmm9[2,3]
1594 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm0[6,7]
1595 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm8[0,1,2,3],ymm0[4,5,6,7]
1596 ; AVX2-ONLY-NEXT:    vbroadcastss 220(%rdi), %ymm8
1597 ; AVX2-ONLY-NEXT:    vunpckhps (%rsp), %ymm8, %ymm8 # 32-byte Folded Reload
1598 ; AVX2-ONLY-NEXT:    # ymm8 = ymm8[2],mem[2],ymm8[3],mem[3],ymm8[6],mem[6],ymm8[7],mem[7]
1599 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm8[1],ymm2[3],ymm8[3]
1600 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm5, %xmm5
1601 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[2,3,2,3,6,7,6,7]
1602 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm4, %xmm4
1603 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],xmm5[2,3]
1604 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3],ymm2[4,5,6,7]
1605 ; AVX2-ONLY-NEXT:    vbroadcastss 476(%rdi), %ymm4
1606 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload
1607 ; AVX2-ONLY-NEXT:    # ymm4 = ymm4[2],mem[2],ymm4[3],mem[3],ymm4[6],mem[6],ymm4[7],mem[7]
1608 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm3 = ymm3[1],ymm4[1],ymm3[3],ymm4[3]
1609 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm7, %xmm4
1610 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} ymm5 = ymm6[2,3,2,3,6,7,6,7]
1611 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm5, %xmm5
1612 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm4 = xmm5[0,1],xmm4[2,3]
1613 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
1614 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
1615 ; AVX2-ONLY-NEXT:    vmovaps %ymm4, 32(%rsi)
1616 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
1617 ; AVX2-ONLY-NEXT:    vmovaps %ymm4, (%rsi)
1618 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
1619 ; AVX2-ONLY-NEXT:    vmovaps %ymm4, 32(%rdx)
1620 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
1621 ; AVX2-ONLY-NEXT:    vmovaps %ymm4, (%rdx)
1622 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
1623 ; AVX2-ONLY-NEXT:    vmovaps %ymm4, 32(%rcx)
1624 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
1625 ; AVX2-ONLY-NEXT:    vmovaps %ymm4, (%rcx)
1626 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
1627 ; AVX2-ONLY-NEXT:    vmovaps %ymm4, 32(%r8)
1628 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
1629 ; AVX2-ONLY-NEXT:    vmovaps %ymm4, (%r8)
1630 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
1631 ; AVX2-ONLY-NEXT:    vmovaps %ymm4, 32(%r9)
1632 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
1633 ; AVX2-ONLY-NEXT:    vmovaps %ymm4, (%r9)
1634 ; AVX2-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1635 ; AVX2-ONLY-NEXT:    vmovaps %ymm11, 32(%rax)
1636 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
1637 ; AVX2-ONLY-NEXT:    vmovaps %ymm4, (%rax)
1638 ; AVX2-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1639 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 32(%rax)
1640 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, (%rax)
1641 ; AVX2-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1642 ; AVX2-ONLY-NEXT:    vmovaps %ymm3, 32(%rax)
1643 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, (%rax)
1644 ; AVX2-ONLY-NEXT:    addq $456, %rsp # imm = 0x1C8
1645 ; AVX2-ONLY-NEXT:    vzeroupper
1646 ; AVX2-ONLY-NEXT:    retq
1648 ; AVX512F-LABEL: load_i32_stride8_vf16:
1649 ; AVX512F:       # %bb.0:
1650 ; AVX512F-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1651 ; AVX512F-NEXT:    movq {{[0-9]+}}(%rsp), %r10
1652 ; AVX512F-NEXT:    movq {{[0-9]+}}(%rsp), %r11
1653 ; AVX512F-NEXT:    vmovdqa64 (%rdi), %zmm0
1654 ; AVX512F-NEXT:    vmovdqa64 64(%rdi), %zmm1
1655 ; AVX512F-NEXT:    vmovdqa64 128(%rdi), %zmm3
1656 ; AVX512F-NEXT:    vmovdqa64 192(%rdi), %zmm4
1657 ; AVX512F-NEXT:    vmovdqa64 320(%rdi), %zmm5
1658 ; AVX512F-NEXT:    vmovdqa64 256(%rdi), %zmm2
1659 ; AVX512F-NEXT:    vmovdqa64 448(%rdi), %zmm7
1660 ; AVX512F-NEXT:    vmovdqa64 384(%rdi), %zmm6
1661 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [0,8,16,24,0,8,16,24,0,8,16,24,0,8,16,24]
1662 ; AVX512F-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1663 ; AVX512F-NEXT:    vmovdqa64 %zmm6, %zmm9
1664 ; AVX512F-NEXT:    vpermt2d %zmm7, %zmm8, %zmm9
1665 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm10
1666 ; AVX512F-NEXT:    vpermt2d %zmm5, %zmm8, %zmm10
1667 ; AVX512F-NEXT:    movb $-64, %dil
1668 ; AVX512F-NEXT:    kmovw %edi, %k1
1669 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm10 {%k1}
1670 ; AVX512F-NEXT:    vbroadcasti128 {{.*#+}} ymm9 = [0,8,16,24,0,8,16,24]
1671 ; AVX512F-NEXT:    # ymm9 = mem[0,1,0,1]
1672 ; AVX512F-NEXT:    vpermi2d %zmm4, %zmm3, %zmm9
1673 ; AVX512F-NEXT:    vpermi2d %zmm1, %zmm0, %zmm8
1674 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm9[4,5,6,7]
1675 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm8
1676 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm9 = [1,9,17,25,1,9,17,25,1,9,17,25,1,9,17,25]
1677 ; AVX512F-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1678 ; AVX512F-NEXT:    vmovdqa64 %zmm6, %zmm10
1679 ; AVX512F-NEXT:    vpermt2d %zmm7, %zmm9, %zmm10
1680 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm11
1681 ; AVX512F-NEXT:    vpermt2d %zmm5, %zmm9, %zmm11
1682 ; AVX512F-NEXT:    vmovdqa64 %zmm10, %zmm11 {%k1}
1683 ; AVX512F-NEXT:    vbroadcasti128 {{.*#+}} ymm10 = [1,9,17,25,1,9,17,25]
1684 ; AVX512F-NEXT:    # ymm10 = mem[0,1,0,1]
1685 ; AVX512F-NEXT:    vpermi2d %zmm4, %zmm3, %zmm10
1686 ; AVX512F-NEXT:    vpermi2d %zmm1, %zmm0, %zmm9
1687 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm9 = ymm9[0,1,2,3],ymm10[4,5,6,7]
1688 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm9, %zmm11, %zmm9
1689 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [2,10,18,26,2,10,18,26,2,10,18,26,2,10,18,26]
1690 ; AVX512F-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1691 ; AVX512F-NEXT:    vmovdqa64 %zmm6, %zmm11
1692 ; AVX512F-NEXT:    vpermt2d %zmm7, %zmm10, %zmm11
1693 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm12
1694 ; AVX512F-NEXT:    vpermt2d %zmm5, %zmm10, %zmm12
1695 ; AVX512F-NEXT:    vmovdqa64 %zmm11, %zmm12 {%k1}
1696 ; AVX512F-NEXT:    vbroadcasti128 {{.*#+}} ymm11 = [2,10,18,26,2,10,18,26]
1697 ; AVX512F-NEXT:    # ymm11 = mem[0,1,0,1]
1698 ; AVX512F-NEXT:    vpermi2d %zmm4, %zmm3, %zmm11
1699 ; AVX512F-NEXT:    vpermi2d %zmm1, %zmm0, %zmm10
1700 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm10 = ymm10[0,1,2,3],ymm11[4,5,6,7]
1701 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm10, %zmm12, %zmm10
1702 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm11 = [3,11,19,27,3,11,19,27,3,11,19,27,3,11,19,27]
1703 ; AVX512F-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1704 ; AVX512F-NEXT:    vmovdqa64 %zmm6, %zmm12
1705 ; AVX512F-NEXT:    vpermt2d %zmm7, %zmm11, %zmm12
1706 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm13
1707 ; AVX512F-NEXT:    vpermt2d %zmm5, %zmm11, %zmm13
1708 ; AVX512F-NEXT:    vmovdqa64 %zmm12, %zmm13 {%k1}
1709 ; AVX512F-NEXT:    vbroadcasti128 {{.*#+}} ymm12 = [3,11,19,27,3,11,19,27]
1710 ; AVX512F-NEXT:    # ymm12 = mem[0,1,0,1]
1711 ; AVX512F-NEXT:    vpermi2d %zmm4, %zmm3, %zmm12
1712 ; AVX512F-NEXT:    vpermi2d %zmm1, %zmm0, %zmm11
1713 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm11 = ymm11[0,1,2,3],ymm12[4,5,6,7]
1714 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm11, %zmm13, %zmm11
1715 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm12 = [4,12,20,28,4,12,20,28,4,12,20,28,4,12,20,28]
1716 ; AVX512F-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1717 ; AVX512F-NEXT:    vmovdqa64 %zmm6, %zmm13
1718 ; AVX512F-NEXT:    vpermt2d %zmm7, %zmm12, %zmm13
1719 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm14
1720 ; AVX512F-NEXT:    vpermt2d %zmm5, %zmm12, %zmm14
1721 ; AVX512F-NEXT:    vmovdqa64 %zmm13, %zmm14 {%k1}
1722 ; AVX512F-NEXT:    vbroadcasti128 {{.*#+}} ymm13 = [4,12,20,28,4,12,20,28]
1723 ; AVX512F-NEXT:    # ymm13 = mem[0,1,0,1]
1724 ; AVX512F-NEXT:    vpermi2d %zmm4, %zmm3, %zmm13
1725 ; AVX512F-NEXT:    vpermi2d %zmm1, %zmm0, %zmm12
1726 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm12 = ymm12[0,1,2,3],ymm13[4,5,6,7]
1727 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm12, %zmm14, %zmm12
1728 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm13 = [5,13,21,29,5,13,21,29,5,13,21,29,5,13,21,29]
1729 ; AVX512F-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1730 ; AVX512F-NEXT:    vmovdqa64 %zmm6, %zmm14
1731 ; AVX512F-NEXT:    vpermt2d %zmm7, %zmm13, %zmm14
1732 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm15
1733 ; AVX512F-NEXT:    vpermt2d %zmm5, %zmm13, %zmm15
1734 ; AVX512F-NEXT:    vmovdqa64 %zmm14, %zmm15 {%k1}
1735 ; AVX512F-NEXT:    vbroadcasti128 {{.*#+}} ymm14 = [5,13,21,29,5,13,21,29]
1736 ; AVX512F-NEXT:    # ymm14 = mem[0,1,0,1]
1737 ; AVX512F-NEXT:    vpermi2d %zmm4, %zmm3, %zmm14
1738 ; AVX512F-NEXT:    vpermi2d %zmm1, %zmm0, %zmm13
1739 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm13 = ymm13[0,1,2,3],ymm14[4,5,6,7]
1740 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm13, %zmm15, %zmm13
1741 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm14 = [6,14,22,30,6,14,22,30,6,14,22,30,6,14,22,30]
1742 ; AVX512F-NEXT:    # zmm14 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1743 ; AVX512F-NEXT:    vmovdqa64 %zmm6, %zmm15
1744 ; AVX512F-NEXT:    vpermt2d %zmm7, %zmm14, %zmm15
1745 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm16
1746 ; AVX512F-NEXT:    vpermt2d %zmm5, %zmm14, %zmm16
1747 ; AVX512F-NEXT:    vmovdqa64 %zmm15, %zmm16 {%k1}
1748 ; AVX512F-NEXT:    vbroadcasti128 {{.*#+}} ymm15 = [6,14,22,30,6,14,22,30]
1749 ; AVX512F-NEXT:    # ymm15 = mem[0,1,0,1]
1750 ; AVX512F-NEXT:    vpermi2d %zmm4, %zmm3, %zmm15
1751 ; AVX512F-NEXT:    vpermi2d %zmm1, %zmm0, %zmm14
1752 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm14 = ymm14[0,1,2,3],ymm15[4,5,6,7]
1753 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm14, %zmm16, %zmm14
1754 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm15 = [7,15,23,31,7,15,23,31,7,15,23,31,7,15,23,31]
1755 ; AVX512F-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1756 ; AVX512F-NEXT:    vpermt2d %zmm7, %zmm15, %zmm6
1757 ; AVX512F-NEXT:    vpermt2d %zmm5, %zmm15, %zmm2
1758 ; AVX512F-NEXT:    vmovdqa64 %zmm6, %zmm2 {%k1}
1759 ; AVX512F-NEXT:    vbroadcasti128 {{.*#+}} ymm5 = [7,15,23,31,7,15,23,31]
1760 ; AVX512F-NEXT:    # ymm5 = mem[0,1,0,1]
1761 ; AVX512F-NEXT:    vpermi2d %zmm4, %zmm3, %zmm5
1762 ; AVX512F-NEXT:    vpermt2d %zmm1, %zmm15, %zmm0
1763 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm5[4,5,6,7]
1764 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm0, %zmm2, %zmm0
1765 ; AVX512F-NEXT:    vmovdqa64 %zmm8, (%rsi)
1766 ; AVX512F-NEXT:    vmovdqa64 %zmm9, (%rdx)
1767 ; AVX512F-NEXT:    vmovdqa64 %zmm10, (%rcx)
1768 ; AVX512F-NEXT:    vmovdqa64 %zmm11, (%r8)
1769 ; AVX512F-NEXT:    vmovdqa64 %zmm12, (%r9)
1770 ; AVX512F-NEXT:    vmovdqa64 %zmm13, (%r11)
1771 ; AVX512F-NEXT:    vmovdqa64 %zmm14, (%r10)
1772 ; AVX512F-NEXT:    vmovdqa64 %zmm0, (%rax)
1773 ; AVX512F-NEXT:    vzeroupper
1774 ; AVX512F-NEXT:    retq
1776 ; AVX512BW-LABEL: load_i32_stride8_vf16:
1777 ; AVX512BW:       # %bb.0:
1778 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1779 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %r10
1780 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %r11
1781 ; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm0
1782 ; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %zmm1
1783 ; AVX512BW-NEXT:    vmovdqa64 128(%rdi), %zmm3
1784 ; AVX512BW-NEXT:    vmovdqa64 192(%rdi), %zmm4
1785 ; AVX512BW-NEXT:    vmovdqa64 320(%rdi), %zmm5
1786 ; AVX512BW-NEXT:    vmovdqa64 256(%rdi), %zmm2
1787 ; AVX512BW-NEXT:    vmovdqa64 448(%rdi), %zmm7
1788 ; AVX512BW-NEXT:    vmovdqa64 384(%rdi), %zmm6
1789 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [0,8,16,24,0,8,16,24,0,8,16,24,0,8,16,24]
1790 ; AVX512BW-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1791 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm9
1792 ; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm8, %zmm9
1793 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm10
1794 ; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm8, %zmm10
1795 ; AVX512BW-NEXT:    movb $-64, %dil
1796 ; AVX512BW-NEXT:    kmovd %edi, %k1
1797 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm10 {%k1}
1798 ; AVX512BW-NEXT:    vbroadcasti128 {{.*#+}} ymm9 = [0,8,16,24,0,8,16,24]
1799 ; AVX512BW-NEXT:    # ymm9 = mem[0,1,0,1]
1800 ; AVX512BW-NEXT:    vpermi2d %zmm4, %zmm3, %zmm9
1801 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm8
1802 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm9[4,5,6,7]
1803 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm10, %zmm8
1804 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm9 = [1,9,17,25,1,9,17,25,1,9,17,25,1,9,17,25]
1805 ; AVX512BW-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1806 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm10
1807 ; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm9, %zmm10
1808 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm11
1809 ; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm9, %zmm11
1810 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm11 {%k1}
1811 ; AVX512BW-NEXT:    vbroadcasti128 {{.*#+}} ymm10 = [1,9,17,25,1,9,17,25]
1812 ; AVX512BW-NEXT:    # ymm10 = mem[0,1,0,1]
1813 ; AVX512BW-NEXT:    vpermi2d %zmm4, %zmm3, %zmm10
1814 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm9
1815 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm9 = ymm9[0,1,2,3],ymm10[4,5,6,7]
1816 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm9, %zmm11, %zmm9
1817 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [2,10,18,26,2,10,18,26,2,10,18,26,2,10,18,26]
1818 ; AVX512BW-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1819 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm11
1820 ; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm10, %zmm11
1821 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm12
1822 ; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm10, %zmm12
1823 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm12 {%k1}
1824 ; AVX512BW-NEXT:    vbroadcasti128 {{.*#+}} ymm11 = [2,10,18,26,2,10,18,26]
1825 ; AVX512BW-NEXT:    # ymm11 = mem[0,1,0,1]
1826 ; AVX512BW-NEXT:    vpermi2d %zmm4, %zmm3, %zmm11
1827 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm10
1828 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm10 = ymm10[0,1,2,3],ymm11[4,5,6,7]
1829 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm10, %zmm12, %zmm10
1830 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm11 = [3,11,19,27,3,11,19,27,3,11,19,27,3,11,19,27]
1831 ; AVX512BW-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1832 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm12
1833 ; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm11, %zmm12
1834 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm13
1835 ; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm11, %zmm13
1836 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm13 {%k1}
1837 ; AVX512BW-NEXT:    vbroadcasti128 {{.*#+}} ymm12 = [3,11,19,27,3,11,19,27]
1838 ; AVX512BW-NEXT:    # ymm12 = mem[0,1,0,1]
1839 ; AVX512BW-NEXT:    vpermi2d %zmm4, %zmm3, %zmm12
1840 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm11
1841 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm11 = ymm11[0,1,2,3],ymm12[4,5,6,7]
1842 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm11, %zmm13, %zmm11
1843 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm12 = [4,12,20,28,4,12,20,28,4,12,20,28,4,12,20,28]
1844 ; AVX512BW-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1845 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm13
1846 ; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm12, %zmm13
1847 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm14
1848 ; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm12, %zmm14
1849 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm14 {%k1}
1850 ; AVX512BW-NEXT:    vbroadcasti128 {{.*#+}} ymm13 = [4,12,20,28,4,12,20,28]
1851 ; AVX512BW-NEXT:    # ymm13 = mem[0,1,0,1]
1852 ; AVX512BW-NEXT:    vpermi2d %zmm4, %zmm3, %zmm13
1853 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm12
1854 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm12 = ymm12[0,1,2,3],ymm13[4,5,6,7]
1855 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm12, %zmm14, %zmm12
1856 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm13 = [5,13,21,29,5,13,21,29,5,13,21,29,5,13,21,29]
1857 ; AVX512BW-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1858 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm14
1859 ; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm13, %zmm14
1860 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm15
1861 ; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm13, %zmm15
1862 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, %zmm15 {%k1}
1863 ; AVX512BW-NEXT:    vbroadcasti128 {{.*#+}} ymm14 = [5,13,21,29,5,13,21,29]
1864 ; AVX512BW-NEXT:    # ymm14 = mem[0,1,0,1]
1865 ; AVX512BW-NEXT:    vpermi2d %zmm4, %zmm3, %zmm14
1866 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm13
1867 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm13 = ymm13[0,1,2,3],ymm14[4,5,6,7]
1868 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm13, %zmm15, %zmm13
1869 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm14 = [6,14,22,30,6,14,22,30,6,14,22,30,6,14,22,30]
1870 ; AVX512BW-NEXT:    # zmm14 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1871 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm15
1872 ; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm14, %zmm15
1873 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm16
1874 ; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm14, %zmm16
1875 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm16 {%k1}
1876 ; AVX512BW-NEXT:    vbroadcasti128 {{.*#+}} ymm15 = [6,14,22,30,6,14,22,30]
1877 ; AVX512BW-NEXT:    # ymm15 = mem[0,1,0,1]
1878 ; AVX512BW-NEXT:    vpermi2d %zmm4, %zmm3, %zmm15
1879 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm14
1880 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm14 = ymm14[0,1,2,3],ymm15[4,5,6,7]
1881 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm14, %zmm16, %zmm14
1882 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm15 = [7,15,23,31,7,15,23,31,7,15,23,31,7,15,23,31]
1883 ; AVX512BW-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1884 ; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm15, %zmm6
1885 ; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm15, %zmm2
1886 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm2 {%k1}
1887 ; AVX512BW-NEXT:    vbroadcasti128 {{.*#+}} ymm5 = [7,15,23,31,7,15,23,31]
1888 ; AVX512BW-NEXT:    # ymm5 = mem[0,1,0,1]
1889 ; AVX512BW-NEXT:    vpermi2d %zmm4, %zmm3, %zmm5
1890 ; AVX512BW-NEXT:    vpermt2d %zmm1, %zmm15, %zmm0
1891 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm5[4,5,6,7]
1892 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm2, %zmm0
1893 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, (%rsi)
1894 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, (%rdx)
1895 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, (%rcx)
1896 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, (%r8)
1897 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, (%r9)
1898 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, (%r11)
1899 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, (%r10)
1900 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, (%rax)
1901 ; AVX512BW-NEXT:    vzeroupper
1902 ; AVX512BW-NEXT:    retq
1903   %wide.vec = load <128 x i32>, ptr %in.vec, align 64
1904   %strided.vec0 = shufflevector <128 x i32> %wide.vec, <128 x i32> poison, <16 x i32> <i32 0, i32 8, i32 16, i32 24, i32 32, i32 40, i32 48, i32 56, i32 64, i32 72, i32 80, i32 88, i32 96, i32 104, i32 112, i32 120>
1905   %strided.vec1 = shufflevector <128 x i32> %wide.vec, <128 x i32> poison, <16 x i32> <i32 1, i32 9, i32 17, i32 25, i32 33, i32 41, i32 49, i32 57, i32 65, i32 73, i32 81, i32 89, i32 97, i32 105, i32 113, i32 121>
1906   %strided.vec2 = shufflevector <128 x i32> %wide.vec, <128 x i32> poison, <16 x i32> <i32 2, i32 10, i32 18, i32 26, i32 34, i32 42, i32 50, i32 58, i32 66, i32 74, i32 82, i32 90, i32 98, i32 106, i32 114, i32 122>
1907   %strided.vec3 = shufflevector <128 x i32> %wide.vec, <128 x i32> poison, <16 x i32> <i32 3, i32 11, i32 19, i32 27, i32 35, i32 43, i32 51, i32 59, i32 67, i32 75, i32 83, i32 91, i32 99, i32 107, i32 115, i32 123>
1908   %strided.vec4 = shufflevector <128 x i32> %wide.vec, <128 x i32> poison, <16 x i32> <i32 4, i32 12, i32 20, i32 28, i32 36, i32 44, i32 52, i32 60, i32 68, i32 76, i32 84, i32 92, i32 100, i32 108, i32 116, i32 124>
1909   %strided.vec5 = shufflevector <128 x i32> %wide.vec, <128 x i32> poison, <16 x i32> <i32 5, i32 13, i32 21, i32 29, i32 37, i32 45, i32 53, i32 61, i32 69, i32 77, i32 85, i32 93, i32 101, i32 109, i32 117, i32 125>
1910   %strided.vec6 = shufflevector <128 x i32> %wide.vec, <128 x i32> poison, <16 x i32> <i32 6, i32 14, i32 22, i32 30, i32 38, i32 46, i32 54, i32 62, i32 70, i32 78, i32 86, i32 94, i32 102, i32 110, i32 118, i32 126>
1911   %strided.vec7 = shufflevector <128 x i32> %wide.vec, <128 x i32> poison, <16 x i32> <i32 7, i32 15, i32 23, i32 31, i32 39, i32 47, i32 55, i32 63, i32 71, i32 79, i32 87, i32 95, i32 103, i32 111, i32 119, i32 127>
1912   store <16 x i32> %strided.vec0, ptr %out.vec0, align 64
1913   store <16 x i32> %strided.vec1, ptr %out.vec1, align 64
1914   store <16 x i32> %strided.vec2, ptr %out.vec2, align 64
1915   store <16 x i32> %strided.vec3, ptr %out.vec3, align 64
1916   store <16 x i32> %strided.vec4, ptr %out.vec4, align 64
1917   store <16 x i32> %strided.vec5, ptr %out.vec5, align 64
1918   store <16 x i32> %strided.vec6, ptr %out.vec6, align 64
1919   store <16 x i32> %strided.vec7, ptr %out.vec7, align 64
1920   ret void
1923 define void @load_i32_stride8_vf32(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4, ptr %out.vec5, ptr %out.vec6, ptr %out.vec7) nounwind {
1924 ; SSE-LABEL: load_i32_stride8_vf32:
1925 ; SSE:       # %bb.0:
1926 ; SSE-NEXT:    subq $952, %rsp # imm = 0x3B8
1927 ; SSE-NEXT:    movaps 544(%rdi), %xmm5
1928 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1929 ; SSE-NEXT:    movaps 608(%rdi), %xmm6
1930 ; SSE-NEXT:    movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1931 ; SSE-NEXT:    movaps 576(%rdi), %xmm7
1932 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1933 ; SSE-NEXT:    movaps 672(%rdi), %xmm8
1934 ; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1935 ; SSE-NEXT:    movaps 640(%rdi), %xmm4
1936 ; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1937 ; SSE-NEXT:    movaps 736(%rdi), %xmm9
1938 ; SSE-NEXT:    movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1939 ; SSE-NEXT:    movaps 704(%rdi), %xmm3
1940 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1941 ; SSE-NEXT:    movaps 160(%rdi), %xmm10
1942 ; SSE-NEXT:    movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1943 ; SSE-NEXT:    movaps 128(%rdi), %xmm1
1944 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1945 ; SSE-NEXT:    movaps 224(%rdi), %xmm2
1946 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1947 ; SSE-NEXT:    movaps 192(%rdi), %xmm0
1948 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1949 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
1950 ; SSE-NEXT:    movaps %xmm1, %xmm2
1951 ; SSE-NEXT:    unpcklps {{.*#+}} xmm2 = xmm2[0],xmm10[0],xmm2[1],xmm10[1]
1952 ; SSE-NEXT:    movaps %xmm2, %xmm1
1953 ; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
1954 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1955 ; SSE-NEXT:    movaps %xmm3, %xmm1
1956 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm9[0],xmm1[1],xmm9[1]
1957 ; SSE-NEXT:    movaps %xmm4, %xmm3
1958 ; SSE-NEXT:    unpcklps {{.*#+}} xmm3 = xmm3[0],xmm8[0],xmm3[1],xmm8[1]
1959 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
1960 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1961 ; SSE-NEXT:    movaps %xmm3, %xmm0
1962 ; SSE-NEXT:    movlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]
1963 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1964 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm3 = xmm3[1],xmm1[1]
1965 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1966 ; SSE-NEXT:    movaps %xmm7, %xmm0
1967 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm6[0],xmm0[1],xmm6[1]
1968 ; SSE-NEXT:    movaps 512(%rdi), %xmm1
1969 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1970 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm5[0],xmm1[1],xmm5[1]
1971 ; SSE-NEXT:    movaps %xmm1, %xmm2
1972 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
1973 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1974 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1975 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1976 ; SSE-NEXT:    movaps 480(%rdi), %xmm1
1977 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1978 ; SSE-NEXT:    movaps 448(%rdi), %xmm10
1979 ; SSE-NEXT:    movaps %xmm10, %xmm0
1980 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
1981 ; SSE-NEXT:    movaps 416(%rdi), %xmm3
1982 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1983 ; SSE-NEXT:    movaps 384(%rdi), %xmm2
1984 ; SSE-NEXT:    movaps %xmm2, %xmm1
1985 ; SSE-NEXT:    movaps %xmm2, %xmm14
1986 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
1987 ; SSE-NEXT:    movaps %xmm1, %xmm2
1988 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
1989 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1990 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1991 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1992 ; SSE-NEXT:    movaps 992(%rdi), %xmm1
1993 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1994 ; SSE-NEXT:    movaps 960(%rdi), %xmm15
1995 ; SSE-NEXT:    movaps %xmm15, %xmm0
1996 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
1997 ; SSE-NEXT:    movaps 928(%rdi), %xmm2
1998 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1999 ; SSE-NEXT:    movaps 896(%rdi), %xmm1
2000 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2001 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
2002 ; SSE-NEXT:    movaps %xmm1, %xmm2
2003 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2004 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2005 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2006 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2007 ; SSE-NEXT:    movaps 352(%rdi), %xmm1
2008 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2009 ; SSE-NEXT:    movaps 320(%rdi), %xmm12
2010 ; SSE-NEXT:    movaps %xmm12, %xmm0
2011 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
2012 ; SSE-NEXT:    movaps 288(%rdi), %xmm3
2013 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2014 ; SSE-NEXT:    movaps 256(%rdi), %xmm1
2015 ; SSE-NEXT:    movaps %xmm1, %xmm2
2016 ; SSE-NEXT:    unpcklps {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]
2017 ; SSE-NEXT:    movaps %xmm2, %xmm3
2018 ; SSE-NEXT:    movlhps {{.*#+}} xmm3 = xmm3[0],xmm0[0]
2019 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2020 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2021 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2022 ; SSE-NEXT:    movaps 864(%rdi), %xmm2
2023 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2024 ; SSE-NEXT:    movaps 832(%rdi), %xmm11
2025 ; SSE-NEXT:    movaps %xmm11, %xmm0
2026 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
2027 ; SSE-NEXT:    movaps 800(%rdi), %xmm4
2028 ; SSE-NEXT:    movaps %xmm4, (%rsp) # 16-byte Spill
2029 ; SSE-NEXT:    movaps 768(%rdi), %xmm2
2030 ; SSE-NEXT:    movaps %xmm2, %xmm3
2031 ; SSE-NEXT:    unpcklps {{.*#+}} xmm3 = xmm3[0],xmm4[0],xmm3[1],xmm4[1]
2032 ; SSE-NEXT:    movaps %xmm3, %xmm4
2033 ; SSE-NEXT:    movlhps {{.*#+}} xmm4 = xmm4[0],xmm0[0]
2034 ; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2035 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm3 = xmm3[1],xmm0[1]
2036 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2037 ; SSE-NEXT:    movaps 96(%rdi), %xmm6
2038 ; SSE-NEXT:    movaps 64(%rdi), %xmm9
2039 ; SSE-NEXT:    movaps %xmm9, %xmm13
2040 ; SSE-NEXT:    unpcklps {{.*#+}} xmm13 = xmm13[0],xmm6[0],xmm13[1],xmm6[1]
2041 ; SSE-NEXT:    movaps (%rdi), %xmm8
2042 ; SSE-NEXT:    movaps 32(%rdi), %xmm3
2043 ; SSE-NEXT:    movaps %xmm8, %xmm7
2044 ; SSE-NEXT:    unpcklps {{.*#+}} xmm7 = xmm7[0],xmm3[0],xmm7[1],xmm3[1]
2045 ; SSE-NEXT:    movaps %xmm7, %xmm5
2046 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm13[0]
2047 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2048 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm7 = xmm7[1],xmm13[1]
2049 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2050 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
2051 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
2052 ; SSE-NEXT:    # xmm4 = xmm4[2],mem[2],xmm4[3],mem[3]
2053 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
2054 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload
2055 ; SSE-NEXT:    # xmm5 = xmm5[2],mem[2],xmm5[3],mem[3]
2056 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload
2057 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Folded Reload
2058 ; SSE-NEXT:    # xmm13 = xmm13[2],mem[2],xmm13[3],mem[3]
2059 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
2060 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload
2061 ; SSE-NEXT:    # xmm7 = xmm7[2],mem[2],xmm7[3],mem[3]
2062 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2063 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
2064 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload
2065 ; SSE-NEXT:    # xmm7 = xmm7[2],mem[2],xmm7[3],mem[3]
2066 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2067 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
2068 ; SSE-NEXT:    # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]
2069 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Folded Reload
2070 ; SSE-NEXT:    # xmm10 = xmm10[2],mem[2],xmm10[3],mem[3]
2071 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Folded Reload
2072 ; SSE-NEXT:    # xmm14 = xmm14[2],mem[2],xmm14[3],mem[3]
2073 ; SSE-NEXT:    movaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2074 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload
2075 ; SSE-NEXT:    # xmm15 = xmm15[2],mem[2],xmm15[3],mem[3]
2076 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
2077 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Folded Reload
2078 ; SSE-NEXT:    # xmm14 = xmm14[2],mem[2],xmm14[3],mem[3]
2079 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Folded Reload
2080 ; SSE-NEXT:    # xmm12 = xmm12[2],mem[2],xmm12[3],mem[3]
2081 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
2082 ; SSE-NEXT:    # xmm1 = xmm1[2],mem[2],xmm1[3],mem[3]
2083 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Folded Reload
2084 ; SSE-NEXT:    # xmm11 = xmm11[2],mem[2],xmm11[3],mem[3]
2085 ; SSE-NEXT:    unpckhps (%rsp), %xmm2 # 16-byte Folded Reload
2086 ; SSE-NEXT:    # xmm2 = xmm2[2],mem[2],xmm2[3],mem[3]
2087 ; SSE-NEXT:    unpckhps {{.*#+}} xmm9 = xmm9[2],xmm6[2],xmm9[3],xmm6[3]
2088 ; SSE-NEXT:    unpckhps {{.*#+}} xmm8 = xmm8[2],xmm3[2],xmm8[3],xmm3[3]
2089 ; SSE-NEXT:    movaps %xmm5, %xmm3
2090 ; SSE-NEXT:    movlhps {{.*#+}} xmm3 = xmm3[0],xmm4[0]
2091 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2092 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm4[1]
2093 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2094 ; SSE-NEXT:    movaps %xmm1, %xmm3
2095 ; SSE-NEXT:    movlhps {{.*#+}} xmm3 = xmm3[0],xmm12[0]
2096 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2097 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm12[1]
2098 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2099 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
2100 ; SSE-NEXT:    movaps %xmm6, %xmm1
2101 ; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm10[0]
2102 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2103 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm6 = xmm6[1],xmm10[1]
2104 ; SSE-NEXT:    movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2105 ; SSE-NEXT:    movaps %xmm0, %xmm3
2106 ; SSE-NEXT:    movlhps {{.*#+}} xmm3 = xmm3[0],xmm7[0]
2107 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2108 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm7[1]
2109 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2110 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2111 ; SSE-NEXT:    movaps %xmm1, %xmm3
2112 ; SSE-NEXT:    movlhps {{.*#+}} xmm3 = xmm3[0],xmm13[0]
2113 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2114 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm13[1]
2115 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2116 ; SSE-NEXT:    movaps %xmm2, %xmm1
2117 ; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm11[0]
2118 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2119 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm11[1]
2120 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2121 ; SSE-NEXT:    movaps %xmm14, %xmm1
2122 ; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm15[0]
2123 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2124 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm14 = xmm14[1],xmm15[1]
2125 ; SSE-NEXT:    movaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2126 ; SSE-NEXT:    movaps %xmm8, %xmm1
2127 ; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm9[0]
2128 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2129 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm9[1]
2130 ; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2131 ; SSE-NEXT:    movaps 240(%rdi), %xmm2
2132 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2133 ; SSE-NEXT:    movaps 208(%rdi), %xmm12
2134 ; SSE-NEXT:    movaps %xmm12, %xmm0
2135 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
2136 ; SSE-NEXT:    movaps 176(%rdi), %xmm3
2137 ; SSE-NEXT:    movaps 144(%rdi), %xmm1
2138 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2139 ; SSE-NEXT:    movaps %xmm1, %xmm2
2140 ; SSE-NEXT:    unpcklps {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]
2141 ; SSE-NEXT:    movaps %xmm3, %xmm13
2142 ; SSE-NEXT:    movaps %xmm2, %xmm1
2143 ; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2144 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2145 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2146 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2147 ; SSE-NEXT:    movaps 368(%rdi), %xmm4
2148 ; SSE-NEXT:    movaps 336(%rdi), %xmm1
2149 ; SSE-NEXT:    movaps %xmm1, %xmm0
2150 ; SSE-NEXT:    movaps %xmm1, %xmm9
2151 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1]
2152 ; SSE-NEXT:    movaps 304(%rdi), %xmm5
2153 ; SSE-NEXT:    movaps 272(%rdi), %xmm8
2154 ; SSE-NEXT:    movaps %xmm8, %xmm1
2155 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm5[0],xmm1[1],xmm5[1]
2156 ; SSE-NEXT:    movaps %xmm1, %xmm2
2157 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2158 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2159 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2160 ; SSE-NEXT:    movaps %xmm1, (%rsp) # 16-byte Spill
2161 ; SSE-NEXT:    movaps 496(%rdi), %xmm7
2162 ; SSE-NEXT:    movaps 464(%rdi), %xmm0
2163 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2164 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm7[0],xmm0[1],xmm7[1]
2165 ; SSE-NEXT:    movaps 432(%rdi), %xmm2
2166 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2167 ; SSE-NEXT:    movaps 400(%rdi), %xmm1
2168 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2169 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
2170 ; SSE-NEXT:    movaps %xmm1, %xmm2
2171 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2172 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2173 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2174 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2175 ; SSE-NEXT:    movaps 624(%rdi), %xmm2
2176 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2177 ; SSE-NEXT:    movaps 592(%rdi), %xmm1
2178 ; SSE-NEXT:    movaps %xmm1, %xmm0
2179 ; SSE-NEXT:    movaps %xmm1, %xmm3
2180 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
2181 ; SSE-NEXT:    movaps 560(%rdi), %xmm6
2182 ; SSE-NEXT:    movaps 528(%rdi), %xmm1
2183 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2184 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm6[0],xmm1[1],xmm6[1]
2185 ; SSE-NEXT:    movaps %xmm1, %xmm2
2186 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2187 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2188 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2189 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2190 ; SSE-NEXT:    movaps 752(%rdi), %xmm1
2191 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2192 ; SSE-NEXT:    movaps 720(%rdi), %xmm0
2193 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2194 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
2195 ; SSE-NEXT:    movaps 688(%rdi), %xmm2
2196 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2197 ; SSE-NEXT:    movaps 656(%rdi), %xmm1
2198 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2199 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
2200 ; SSE-NEXT:    movaps %xmm1, %xmm2
2201 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
2202 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2203 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2204 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2205 ; SSE-NEXT:    movaps 880(%rdi), %xmm1
2206 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2207 ; SSE-NEXT:    movaps 848(%rdi), %xmm14
2208 ; SSE-NEXT:    movaps %xmm14, %xmm0
2209 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
2210 ; SSE-NEXT:    movaps 816(%rdi), %xmm1
2211 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2212 ; SSE-NEXT:    movaps 784(%rdi), %xmm2
2213 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2214 ; SSE-NEXT:    unpcklps {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
2215 ; SSE-NEXT:    movaps %xmm2, %xmm1
2216 ; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2217 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2218 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2219 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2220 ; SSE-NEXT:    movaps 1008(%rdi), %xmm1
2221 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2222 ; SSE-NEXT:    movaps 976(%rdi), %xmm11
2223 ; SSE-NEXT:    movaps %xmm11, %xmm0
2224 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
2225 ; SSE-NEXT:    movaps 944(%rdi), %xmm1
2226 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2227 ; SSE-NEXT:    movaps 912(%rdi), %xmm2
2228 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2229 ; SSE-NEXT:    unpcklps {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
2230 ; SSE-NEXT:    movaps %xmm2, %xmm1
2231 ; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2232 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2233 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2234 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2235 ; SSE-NEXT:    movaps 112(%rdi), %xmm1
2236 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2237 ; SSE-NEXT:    movaps 80(%rdi), %xmm10
2238 ; SSE-NEXT:    movaps %xmm10, %xmm0
2239 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
2240 ; SSE-NEXT:    movaps 16(%rdi), %xmm15
2241 ; SSE-NEXT:    movaps 48(%rdi), %xmm1
2242 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2243 ; SSE-NEXT:    movaps %xmm15, %xmm2
2244 ; SSE-NEXT:    unpcklps {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
2245 ; SSE-NEXT:    movaps %xmm2, %xmm1
2246 ; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2247 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2248 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2249 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2250 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Folded Reload
2251 ; SSE-NEXT:    # xmm12 = xmm12[2],mem[2],xmm12[3],mem[3]
2252 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2253 ; SSE-NEXT:    unpckhps {{.*#+}} xmm1 = xmm1[2],xmm13[2],xmm1[3],xmm13[3]
2254 ; SSE-NEXT:    movaps %xmm9, %xmm13
2255 ; SSE-NEXT:    unpckhps {{.*#+}} xmm13 = xmm13[2],xmm4[2],xmm13[3],xmm4[3]
2256 ; SSE-NEXT:    unpckhps {{.*#+}} xmm8 = xmm8[2],xmm5[2],xmm8[3],xmm5[3]
2257 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload
2258 ; SSE-NEXT:    unpckhps {{.*#+}} xmm9 = xmm9[2],xmm7[2],xmm9[3],xmm7[3]
2259 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
2260 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload
2261 ; SSE-NEXT:    # xmm7 = xmm7[2],mem[2],xmm7[3],mem[3]
2262 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload
2263 ; SSE-NEXT:    # xmm3 = xmm3[2],mem[2],xmm3[3],mem[3]
2264 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2265 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
2266 ; SSE-NEXT:    unpckhps {{.*#+}} xmm5 = xmm5[2],xmm6[2],xmm5[3],xmm6[3]
2267 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
2268 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload
2269 ; SSE-NEXT:    # xmm6 = xmm6[2],mem[2],xmm6[3],mem[3]
2270 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
2271 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
2272 ; SSE-NEXT:    # xmm4 = xmm4[2],mem[2],xmm4[3],mem[3]
2273 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Folded Reload
2274 ; SSE-NEXT:    # xmm14 = xmm14[2],mem[2],xmm14[3],mem[3]
2275 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
2276 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload
2277 ; SSE-NEXT:    # xmm3 = xmm3[2],mem[2],xmm3[3],mem[3]
2278 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Folded Reload
2279 ; SSE-NEXT:    # xmm11 = xmm11[2],mem[2],xmm11[3],mem[3]
2280 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
2281 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
2282 ; SSE-NEXT:    # xmm2 = xmm2[2],mem[2],xmm2[3],mem[3]
2283 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Folded Reload
2284 ; SSE-NEXT:    # xmm10 = xmm10[2],mem[2],xmm10[3],mem[3]
2285 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload
2286 ; SSE-NEXT:    # xmm15 = xmm15[2],mem[2],xmm15[3],mem[3]
2287 ; SSE-NEXT:    movaps %xmm1, %xmm0
2288 ; SSE-NEXT:    movlhps {{.*#+}} xmm0 = xmm0[0],xmm12[0]
2289 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2290 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm12[1]
2291 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2292 ; SSE-NEXT:    movaps %xmm8, %xmm1
2293 ; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm13[0]
2294 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2295 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm13[1]
2296 ; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2297 ; SSE-NEXT:    movaps %xmm7, %xmm12
2298 ; SSE-NEXT:    movlhps {{.*#+}} xmm12 = xmm12[0],xmm9[0]
2299 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm7 = xmm7[1],xmm9[1]
2300 ; SSE-NEXT:    movaps %xmm5, %xmm13
2301 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2302 ; SSE-NEXT:    movlhps {{.*#+}} xmm13 = xmm13[0],xmm1[0]
2303 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm1[1]
2304 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2305 ; SSE-NEXT:    movaps %xmm4, %xmm0
2306 ; SSE-NEXT:    movlhps {{.*#+}} xmm4 = xmm4[0],xmm6[0]
2307 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm6[1]
2308 ; SSE-NEXT:    movaps %xmm0, %xmm5
2309 ; SSE-NEXT:    movaps %xmm3, %xmm8
2310 ; SSE-NEXT:    movlhps {{.*#+}} xmm8 = xmm8[0],xmm14[0]
2311 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm3 = xmm3[1],xmm14[1]
2312 ; SSE-NEXT:    movaps %xmm3, %xmm6
2313 ; SSE-NEXT:    movaps %xmm2, %xmm3
2314 ; SSE-NEXT:    movlhps {{.*#+}} xmm3 = xmm3[0],xmm11[0]
2315 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm11[1]
2316 ; SSE-NEXT:    movaps %xmm15, %xmm0
2317 ; SSE-NEXT:    movlhps {{.*#+}} xmm0 = xmm0[0],xmm10[0]
2318 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm15 = xmm15[1],xmm10[1]
2319 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2320 ; SSE-NEXT:    movaps %xmm1, 96(%rsi)
2321 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2322 ; SSE-NEXT:    movaps %xmm1, 32(%rsi)
2323 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2324 ; SSE-NEXT:    movaps %xmm1, 112(%rsi)
2325 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2326 ; SSE-NEXT:    movaps %xmm1, 48(%rsi)
2327 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2328 ; SSE-NEXT:    movaps %xmm1, 64(%rsi)
2329 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2330 ; SSE-NEXT:    movaps %xmm1, (%rsi)
2331 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2332 ; SSE-NEXT:    movaps %xmm1, 80(%rsi)
2333 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2334 ; SSE-NEXT:    movaps %xmm1, 16(%rsi)
2335 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2336 ; SSE-NEXT:    movaps %xmm1, 96(%rdx)
2337 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2338 ; SSE-NEXT:    movaps %xmm1, 32(%rdx)
2339 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2340 ; SSE-NEXT:    movaps %xmm1, 112(%rdx)
2341 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2342 ; SSE-NEXT:    movaps %xmm1, 48(%rdx)
2343 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2344 ; SSE-NEXT:    movaps %xmm1, 64(%rdx)
2345 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2346 ; SSE-NEXT:    movaps %xmm1, (%rdx)
2347 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2348 ; SSE-NEXT:    movaps %xmm1, 80(%rdx)
2349 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2350 ; SSE-NEXT:    movaps %xmm1, 16(%rdx)
2351 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2352 ; SSE-NEXT:    movaps %xmm1, 96(%rcx)
2353 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2354 ; SSE-NEXT:    movaps %xmm1, 32(%rcx)
2355 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2356 ; SSE-NEXT:    movaps %xmm1, 112(%rcx)
2357 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2358 ; SSE-NEXT:    movaps %xmm1, 48(%rcx)
2359 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2360 ; SSE-NEXT:    movaps %xmm1, 64(%rcx)
2361 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2362 ; SSE-NEXT:    movaps %xmm1, (%rcx)
2363 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2364 ; SSE-NEXT:    movaps %xmm1, 80(%rcx)
2365 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2366 ; SSE-NEXT:    movaps %xmm1, 16(%rcx)
2367 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2368 ; SSE-NEXT:    movaps %xmm1, 112(%r8)
2369 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2370 ; SSE-NEXT:    movaps %xmm1, 96(%r8)
2371 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2372 ; SSE-NEXT:    movaps %xmm1, 80(%r8)
2373 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2374 ; SSE-NEXT:    movaps %xmm1, 64(%r8)
2375 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2376 ; SSE-NEXT:    movaps %xmm1, 48(%r8)
2377 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2378 ; SSE-NEXT:    movaps %xmm1, 32(%r8)
2379 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2380 ; SSE-NEXT:    movaps %xmm1, 16(%r8)
2381 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2382 ; SSE-NEXT:    movaps %xmm1, (%r8)
2383 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2384 ; SSE-NEXT:    movaps %xmm1, 112(%r9)
2385 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2386 ; SSE-NEXT:    movaps %xmm1, 96(%r9)
2387 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2388 ; SSE-NEXT:    movaps %xmm1, 80(%r9)
2389 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2390 ; SSE-NEXT:    movaps %xmm1, 64(%r9)
2391 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2392 ; SSE-NEXT:    movaps %xmm1, 48(%r9)
2393 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2394 ; SSE-NEXT:    movaps %xmm1, 32(%r9)
2395 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2396 ; SSE-NEXT:    movaps %xmm1, 16(%r9)
2397 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2398 ; SSE-NEXT:    movaps %xmm1, (%r9)
2399 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
2400 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2401 ; SSE-NEXT:    movaps %xmm1, 112(%rax)
2402 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2403 ; SSE-NEXT:    movaps %xmm1, 96(%rax)
2404 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2405 ; SSE-NEXT:    movaps %xmm1, 80(%rax)
2406 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2407 ; SSE-NEXT:    movaps %xmm1, 64(%rax)
2408 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2409 ; SSE-NEXT:    movaps %xmm1, 48(%rax)
2410 ; SSE-NEXT:    movaps (%rsp), %xmm1 # 16-byte Reload
2411 ; SSE-NEXT:    movaps %xmm1, 32(%rax)
2412 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2413 ; SSE-NEXT:    movaps %xmm1, 16(%rax)
2414 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2415 ; SSE-NEXT:    movaps %xmm1, (%rax)
2416 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
2417 ; SSE-NEXT:    movaps %xmm3, 112(%rax)
2418 ; SSE-NEXT:    movaps %xmm8, 96(%rax)
2419 ; SSE-NEXT:    movaps %xmm4, 80(%rax)
2420 ; SSE-NEXT:    movaps %xmm13, 64(%rax)
2421 ; SSE-NEXT:    movaps %xmm12, 48(%rax)
2422 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2423 ; SSE-NEXT:    movaps %xmm1, 32(%rax)
2424 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2425 ; SSE-NEXT:    movaps %xmm1, 16(%rax)
2426 ; SSE-NEXT:    movaps %xmm0, (%rax)
2427 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
2428 ; SSE-NEXT:    movaps %xmm2, 112(%rax)
2429 ; SSE-NEXT:    movaps %xmm6, 96(%rax)
2430 ; SSE-NEXT:    movaps %xmm5, 80(%rax)
2431 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2432 ; SSE-NEXT:    movaps %xmm0, 64(%rax)
2433 ; SSE-NEXT:    movaps %xmm7, 48(%rax)
2434 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2435 ; SSE-NEXT:    movaps %xmm0, 32(%rax)
2436 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2437 ; SSE-NEXT:    movaps %xmm0, 16(%rax)
2438 ; SSE-NEXT:    movaps %xmm15, (%rax)
2439 ; SSE-NEXT:    addq $952, %rsp # imm = 0x3B8
2440 ; SSE-NEXT:    retq
2442 ; AVX1-ONLY-LABEL: load_i32_stride8_vf32:
2443 ; AVX1-ONLY:       # %bb.0:
2444 ; AVX1-ONLY-NEXT:    subq $1800, %rsp # imm = 0x708
2445 ; AVX1-ONLY-NEXT:    vmovaps 288(%rdi), %xmm14
2446 ; AVX1-ONLY-NEXT:    vmovaps 256(%rdi), %xmm10
2447 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm10[0],xmm14[0],xmm10[1],xmm14[1]
2448 ; AVX1-ONLY-NEXT:    vmovaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2449 ; AVX1-ONLY-NEXT:    vmovaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2450 ; AVX1-ONLY-NEXT:    vmovaps 352(%rdi), %xmm1
2451 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2452 ; AVX1-ONLY-NEXT:    vmovaps 320(%rdi), %xmm2
2453 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2454 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
2455 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2456 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]
2457 ; AVX1-ONLY-NEXT:    vmovaps 416(%rdi), %xmm1
2458 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, (%rsp) # 16-byte Spill
2459 ; AVX1-ONLY-NEXT:    vmovaps 384(%rdi), %xmm2
2460 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2461 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
2462 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
2463 ; AVX1-ONLY-NEXT:    vmovaps 480(%rdi), %xmm2
2464 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2465 ; AVX1-ONLY-NEXT:    vmovaps 448(%rdi), %xmm3
2466 ; AVX1-ONLY-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2467 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
2468 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2469 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[0,1,0,1]
2470 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
2471 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
2472 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2473 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2474 ; AVX1-ONLY-NEXT:    vmovaps 928(%rdi), %xmm0
2475 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2476 ; AVX1-ONLY-NEXT:    vmovaps 896(%rdi), %xmm1
2477 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2478 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
2479 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
2480 ; AVX1-ONLY-NEXT:    vmovaps 992(%rdi), %xmm1
2481 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2482 ; AVX1-ONLY-NEXT:    vmovaps 960(%rdi), %xmm2
2483 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2484 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm9 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
2485 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm9[0,1,0,1]
2486 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
2487 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
2488 ; AVX1-ONLY-NEXT:    vmovaps 800(%rdi), %xmm1
2489 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2490 ; AVX1-ONLY-NEXT:    vmovaps 768(%rdi), %xmm11
2491 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm11[0],xmm1[0],xmm11[1],xmm1[1]
2492 ; AVX1-ONLY-NEXT:    vmovaps 864(%rdi), %xmm2
2493 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2494 ; AVX1-ONLY-NEXT:    vmovaps 832(%rdi), %xmm3
2495 ; AVX1-ONLY-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2496 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
2497 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm7[0]
2498 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
2499 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2500 ; AVX1-ONLY-NEXT:    vmovaps 160(%rdi), %xmm1
2501 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2502 ; AVX1-ONLY-NEXT:    vmovaps 128(%rdi), %xmm0
2503 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2504 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
2505 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
2506 ; AVX1-ONLY-NEXT:    vmovaps 224(%rdi), %xmm1
2507 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2508 ; AVX1-ONLY-NEXT:    vmovaps 192(%rdi), %xmm2
2509 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2510 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
2511 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2512 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[0,1,0,1]
2513 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
2514 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
2515 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %xmm1
2516 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2517 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %xmm13
2518 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm13[0],xmm1[0],xmm13[1],xmm1[1]
2519 ; AVX1-ONLY-NEXT:    vmovaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2520 ; AVX1-ONLY-NEXT:    vmovaps 96(%rdi), %xmm2
2521 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2522 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdi), %xmm3
2523 ; AVX1-ONLY-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2524 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
2525 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm5[0]
2526 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
2527 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2528 ; AVX1-ONLY-NEXT:    vmovaps 672(%rdi), %xmm12
2529 ; AVX1-ONLY-NEXT:    vmovaps 640(%rdi), %xmm0
2530 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2531 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm0[0],xmm12[0],xmm0[1],xmm12[1]
2532 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
2533 ; AVX1-ONLY-NEXT:    vmovaps 736(%rdi), %xmm1
2534 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2535 ; AVX1-ONLY-NEXT:    vmovaps 704(%rdi), %xmm2
2536 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2537 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm8 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
2538 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm4 = xmm8[0,1,0,1]
2539 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
2540 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3,4,5],ymm4[6,7]
2541 ; AVX1-ONLY-NEXT:    vmovaps 544(%rdi), %xmm6
2542 ; AVX1-ONLY-NEXT:    vmovaps 512(%rdi), %xmm3
2543 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm3[0],xmm6[0],xmm3[1],xmm6[1]
2544 ; AVX1-ONLY-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2545 ; AVX1-ONLY-NEXT:    vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2546 ; AVX1-ONLY-NEXT:    vmovaps 608(%rdi), %xmm4
2547 ; AVX1-ONLY-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2548 ; AVX1-ONLY-NEXT:    vmovaps 576(%rdi), %xmm2
2549 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2550 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm2[0],xmm4[0],xmm2[1],xmm4[1]
2551 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm0 = xmm0[0],xmm2[0]
2552 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2553 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2554 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm10[1,1,1,1]
2555 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0],xmm14[1],xmm0[2,3]
2556 ; AVX1-ONLY-NEXT:    vblendps $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
2557 ; AVX1-ONLY-NEXT:    # xmm0 = xmm0[0,1],mem[2,3]
2558 ; AVX1-ONLY-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 16-byte Folded Reload
2559 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
2560 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm15 = xmm4[1,1,1,1]
2561 ; AVX1-ONLY-NEXT:    vmovaps (%rsp), %xmm14 # 16-byte Reload
2562 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm15 = xmm15[0],xmm14[1],xmm15[2,3]
2563 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm15
2564 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm15[0,1,2,3,4,5],ymm1[6,7]
2565 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2566 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2567 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm11[1,1,1,1]
2568 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
2569 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0],xmm10[1],xmm0[2,3]
2570 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm7[2,3]
2571 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm9, %ymm0, %ymm1
2572 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload
2573 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm7 = xmm9[1,1,1,1]
2574 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
2575 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0],xmm15[1],xmm7[2,3]
2576 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
2577 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm7[0,1,2,3,4,5],ymm1[6,7]
2578 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2579 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2580 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm13[1,1,1,1]
2581 ; AVX1-ONLY-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
2582 ; AVX1-ONLY-NEXT:    # xmm0 = xmm0[0],mem[1],xmm0[2,3]
2583 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm5[2,3]
2584 ; AVX1-ONLY-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 16-byte Folded Reload
2585 ; AVX1-ONLY-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload
2586 ; AVX1-ONLY-NEXT:    # xmm5 = mem[1,1,1,1]
2587 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload
2588 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm5 = xmm5[0],xmm13[1],xmm5[2,3]
2589 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
2590 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm5[0,1,2,3,4,5],ymm1[6,7]
2591 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2592 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2593 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm3[1,1,1,1]
2594 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0],xmm6[1],xmm0[2,3]
2595 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm2[2,3]
2596 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm1
2597 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
2598 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm5[1,1,1,1]
2599 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0],xmm12[1],xmm2[2,3]
2600 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
2601 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
2602 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2603 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2604 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2605 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm3 # 16-byte Folded Reload
2606 ; AVX1-ONLY-NEXT:    # xmm3 = xmm0[2],mem[2],xmm0[3],mem[3]
2607 ; AVX1-ONLY-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2608 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm4[2],xmm14[2],xmm4[3],xmm14[3]
2609 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2610 ; AVX1-ONLY-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
2611 ; AVX1-ONLY-NEXT:    # xmm0 = mem[2,2,2,2]
2612 ; AVX1-ONLY-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
2613 ; AVX1-ONLY-NEXT:    # xmm0 = mem[0,1,2],xmm0[3]
2614 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
2615 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm2
2616 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3,4,5],ymm0[6,7]
2617 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
2618 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm7[2,2,2,2]
2619 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2620 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm1[0,1,2],xmm2[3]
2621 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm3[0,1],xmm2[2,3]
2622 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
2623 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2624 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm4 = xmm11[2],xmm10[2],xmm11[3],xmm10[3]
2625 ; AVX1-ONLY-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2626 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm9[2],xmm15[2],xmm9[3],xmm15[3]
2627 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, (%rsp) # 16-byte Spill
2628 ; AVX1-ONLY-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
2629 ; AVX1-ONLY-NEXT:    # xmm2 = mem[2,2,2,2]
2630 ; AVX1-ONLY-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
2631 ; AVX1-ONLY-NEXT:    # xmm2 = mem[0,1,2],xmm2[3]
2632 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
2633 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm3
2634 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3,4,5],ymm2[6,7]
2635 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
2636 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm3 = xmm14[2,2,2,2]
2637 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2638 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm3 = xmm0[0,1,2],xmm3[3]
2639 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm3 = xmm4[0,1],xmm3[2,3]
2640 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
2641 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2642 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
2643 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm4 # 16-byte Folded Reload
2644 ; AVX1-ONLY-NEXT:    # xmm4 = xmm2[2],mem[2],xmm2[3],mem[3]
2645 ; AVX1-ONLY-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2646 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
2647 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm3 = xmm2[2],xmm13[2],xmm2[3],xmm13[3]
2648 ; AVX1-ONLY-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2649 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
2650 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm15[2,2,2,2]
2651 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload
2652 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm13[0,1,2],xmm2[3]
2653 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
2654 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm6
2655 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm6[0,1,2,3,4,5],ymm2[6,7]
2656 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload
2657 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm6 = xmm9[2,2,2,2]
2658 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
2659 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm6 = xmm3[0,1,2],xmm6[3]
2660 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm6 = xmm4[0,1],xmm6[2,3]
2661 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm6[0,1,2,3],ymm2[4,5,6,7]
2662 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2663 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
2664 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm11 # 16-byte Folded Reload
2665 ; AVX1-ONLY-NEXT:    # xmm11 = xmm2[2],mem[2],xmm2[3],mem[3]
2666 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm12 = xmm5[2],xmm12[2],xmm5[3],xmm12[3]
2667 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
2668 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm6 = xmm10[2,2,2,2]
2669 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
2670 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm6 = xmm5[0,1,2],xmm6[3]
2671 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
2672 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm8
2673 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm6 = ymm8[0,1,2,3,4,5],ymm6[6,7]
2674 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
2675 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm8 = xmm4[2,2,2,2]
2676 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
2677 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm8 = xmm2[0,1,2],xmm8[3]
2678 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm8 = xmm11[0,1],xmm8[2,3]
2679 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm6 = ymm8[0,1,2,3],ymm6[4,5,6,7]
2680 ; AVX1-ONLY-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2681 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm6 = xmm1[2],xmm7[2],xmm1[3],xmm7[3]
2682 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2683 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm6 = xmm1[1],xmm6[1]
2684 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2685 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm7 # 16-byte Folded Reload
2686 ; AVX1-ONLY-NEXT:    # xmm7 = xmm1[2],mem[2],xmm1[3],mem[3]
2687 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
2688 ; AVX1-ONLY-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
2689 ; AVX1-ONLY-NEXT:    # xmm1 = mem[2,3,2,3]
2690 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
2691 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm7[6,7]
2692 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm6[0,1,2,3],ymm1[4,5,6,7]
2693 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2694 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm0[2],xmm14[2],xmm0[3],xmm14[3]
2695 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2696 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm0[1],xmm1[1]
2697 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2698 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm6 # 16-byte Folded Reload
2699 ; AVX1-ONLY-NEXT:    # xmm6 = xmm0[2],mem[2],xmm0[3],mem[3]
2700 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
2701 ; AVX1-ONLY-NEXT:    vpermilps $238, (%rsp), %xmm0 # 16-byte Folded Reload
2702 ; AVX1-ONLY-NEXT:    # xmm0 = mem[2,3,2,3]
2703 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
2704 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm6[6,7]
2705 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
2706 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2707 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm3[2],xmm9[2],xmm3[3],xmm9[3]
2708 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2709 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
2710 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm13[2],xmm15[2],xmm13[3],xmm15[3]
2711 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
2712 ; AVX1-ONLY-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload
2713 ; AVX1-ONLY-NEXT:    # xmm3 = mem[2,3,2,3]
2714 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
2715 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3,4,5],ymm1[6,7]
2716 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2717 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2718 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm2[2],xmm4[2],xmm2[3],xmm4[3]
2719 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm11[1],xmm0[1]
2720 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm5[2],xmm10[2],xmm5[3],xmm10[3]
2721 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
2722 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm12[2,3,2,3]
2723 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
2724 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
2725 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2726 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2727 ; AVX1-ONLY-NEXT:    vmovaps 416(%rdi), %ymm2
2728 ; AVX1-ONLY-NEXT:    vmovaps 384(%rdi), %ymm3
2729 ; AVX1-ONLY-NEXT:    vmovaps 448(%rdi), %ymm1
2730 ; AVX1-ONLY-NEXT:    vmovaps 480(%rdi), %ymm12
2731 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm12[0],ymm1[0],ymm12[2],ymm1[2]
2732 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, %ymm9
2733 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2734 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
2735 ; AVX1-ONLY-NEXT:    vmovaps %ymm3, %ymm5
2736 ; AVX1-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2737 ; AVX1-ONLY-NEXT:    vmovaps %ymm2, %ymm13
2738 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]
2739 ; AVX1-ONLY-NEXT:    vmovaps 288(%rdi), %ymm2
2740 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2741 ; AVX1-ONLY-NEXT:    vmovaps 256(%rdi), %ymm1
2742 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2743 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[1],ymm2[1],ymm1[4],ymm2[4],ymm1[5],ymm2[5]
2744 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm1, %xmm1
2745 ; AVX1-ONLY-NEXT:    vmovaps 320(%rdi), %ymm2
2746 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2747 ; AVX1-ONLY-NEXT:    vmovaps 352(%rdi), %ymm4
2748 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm4[0],ymm2[0],ymm4[2],ymm2[2]
2749 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, %ymm11
2750 ; AVX1-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2751 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[0,1,2,0,4,5,6,4]
2752 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm2, %xmm2
2753 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
2754 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
2755 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2756 ; AVX1-ONLY-NEXT:    vmovaps 928(%rdi), %ymm2
2757 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2758 ; AVX1-ONLY-NEXT:    vmovaps 896(%rdi), %ymm3
2759 ; AVX1-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2760 ; AVX1-ONLY-NEXT:    vmovaps 960(%rdi), %ymm1
2761 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2762 ; AVX1-ONLY-NEXT:    vmovaps 992(%rdi), %ymm0
2763 ; AVX1-ONLY-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
2764 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
2765 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
2766 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]
2767 ; AVX1-ONLY-NEXT:    vmovaps 800(%rdi), %ymm1
2768 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2769 ; AVX1-ONLY-NEXT:    vmovaps 768(%rdi), %ymm2
2770 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2771 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[4],ymm1[4],ymm2[5],ymm1[5]
2772 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm1, %xmm1
2773 ; AVX1-ONLY-NEXT:    vmovaps 832(%rdi), %ymm3
2774 ; AVX1-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2775 ; AVX1-ONLY-NEXT:    vmovaps 864(%rdi), %ymm2
2776 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2777 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
2778 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[0,1,2,0,4,5,6,4]
2779 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm2, %xmm2
2780 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
2781 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
2782 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2783 ; AVX1-ONLY-NEXT:    vmovaps 672(%rdi), %ymm2
2784 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2785 ; AVX1-ONLY-NEXT:    vmovaps 640(%rdi), %ymm1
2786 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2787 ; AVX1-ONLY-NEXT:    vmovaps 704(%rdi), %ymm0
2788 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2789 ; AVX1-ONLY-NEXT:    vmovaps 736(%rdi), %ymm4
2790 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm4[0],ymm0[0],ymm4[2],ymm0[2]
2791 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, %ymm10
2792 ; AVX1-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2793 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[1],ymm2[1],ymm1[4],ymm2[4],ymm1[5],ymm2[5]
2794 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm3 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]
2795 ; AVX1-ONLY-NEXT:    vmovaps 544(%rdi), %ymm0
2796 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2797 ; AVX1-ONLY-NEXT:    vmovaps 512(%rdi), %ymm1
2798 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2799 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
2800 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm0, %xmm6
2801 ; AVX1-ONLY-NEXT:    vmovaps 576(%rdi), %ymm0
2802 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2803 ; AVX1-ONLY-NEXT:    vmovaps 608(%rdi), %ymm1
2804 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2805 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm8 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
2806 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm8 = ymm8[0,1,2,0,4,5,6,4]
2807 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm8, %xmm8
2808 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0,1],xmm8[2,3]
2809 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm6[0,1,2,3],ymm3[4,5,6,7]
2810 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2811 ; AVX1-ONLY-NEXT:    vmovaps 160(%rdi), %ymm0
2812 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2813 ; AVX1-ONLY-NEXT:    vmovaps 128(%rdi), %ymm1
2814 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2815 ; AVX1-ONLY-NEXT:    vmovaps 192(%rdi), %ymm2
2816 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2817 ; AVX1-ONLY-NEXT:    vmovaps 224(%rdi), %ymm3
2818 ; AVX1-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2819 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
2820 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm6 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
2821 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm6[0,1],ymm3[2,0],ymm6[4,5],ymm3[6,4]
2822 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdi), %ymm14
2823 ; AVX1-ONLY-NEXT:    vmovaps 96(%rdi), %ymm2
2824 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2825 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm2[0],ymm14[0],ymm2[2],ymm14[2]
2826 ; AVX1-ONLY-NEXT:    vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2827 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[0,1,2,0,4,5,6,4]
2828 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm3, %xmm0
2829 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %ymm2
2830 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2831 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %ymm3
2832 ; AVX1-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2833 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm15 = ymm2[0],ymm3[0],ymm2[1],ymm3[1],ymm2[4],ymm3[4],ymm2[5],ymm3[5]
2834 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm15, %xmm15
2835 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm15[0,1],xmm0[2,3]
2836 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2837 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2838 ; AVX1-ONLY-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2839 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm9[0],ymm12[0],ymm9[1],ymm12[1],ymm9[4],ymm12[4],ymm9[5],ymm12[5]
2840 ; AVX1-ONLY-NEXT:    vmovaps %ymm13, %ymm8
2841 ; AVX1-ONLY-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2842 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm13[1,0],ymm5[1,0],ymm13[5,4],ymm5[5,4]
2843 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[2,0],ymm0[2,3],ymm1[6,4],ymm0[6,7]
2844 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
2845 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm13[0],ymm11[0],ymm13[1],ymm11[1],ymm13[4],ymm11[4],ymm13[5],ymm11[5]
2846 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm1, %xmm1
2847 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
2848 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
2849 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm15 = ymm3[1,0],ymm5[1,0],ymm3[5,4],ymm5[5,4]
2850 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm15 = ymm15[2,0,2,3,6,4,6,7]
2851 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm15, %xmm15
2852 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm15[0,1],xmm1[2,3]
2853 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
2854 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2855 ; AVX1-ONLY-NEXT:    vmovups (%rsp), %ymm11 # 32-byte Reload
2856 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
2857 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm7[0],ymm11[0],ymm7[1],ymm11[1],ymm7[4],ymm11[4],ymm7[5],ymm11[5]
2858 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
2859 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
2860 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[1,0],ymm9[1,0],ymm1[5,4],ymm9[5,4]
2861 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[2,0],ymm0[2,3],ymm1[6,4],ymm0[6,7]
2862 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
2863 ; AVX1-ONLY-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
2864 ; AVX1-ONLY-NEXT:    # ymm1 = ymm1[0],mem[0],ymm1[1],mem[1],ymm1[4],mem[4],ymm1[5],mem[5]
2865 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm1, %xmm1
2866 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
2867 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
2868 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm15 = ymm6[1,0],ymm4[1,0],ymm6[5,4],ymm4[5,4]
2869 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm15 = ymm15[2,0,2,3,6,4,6,7]
2870 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm15, %xmm15
2871 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm15[0,1],xmm1[2,3]
2872 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
2873 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2874 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2875 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm0[0],ymm10[0],ymm0[1],ymm10[1],ymm0[4],ymm10[4],ymm0[5],ymm10[5]
2876 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
2877 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
2878 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm6[1,0],ymm10[1,0],ymm6[5,4],ymm10[5,4]
2879 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm1[2,0],ymm0[2,3],ymm1[6,4],ymm0[6,7]
2880 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
2881 ; AVX1-ONLY-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
2882 ; AVX1-ONLY-NEXT:    # ymm1 = ymm1[0],mem[0],ymm1[1],mem[1],ymm1[4],mem[4],ymm1[5],mem[5]
2883 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm1, %xmm1
2884 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload
2885 ; AVX1-ONLY-NEXT:    vshufps $17, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm15 # 32-byte Folded Reload
2886 ; AVX1-ONLY-NEXT:    # ymm15 = ymm15[1,0],mem[1,0],ymm15[5,4],mem[5,4]
2887 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm15 = ymm15[2,0,2,3,6,4,6,7]
2888 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm15, %xmm15
2889 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm15[0,1],xmm1[2,3]
2890 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm2[4,5,6,7]
2891 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2892 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2893 ; AVX1-ONLY-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
2894 ; AVX1-ONLY-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[1],mem[1],ymm0[4],mem[4],ymm0[5],mem[5]
2895 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
2896 ; AVX1-ONLY-NEXT:    vshufps $17, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
2897 ; AVX1-ONLY-NEXT:    # ymm1 = ymm1[1,0],mem[1,0],ymm1[5,4],mem[5,4]
2898 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[2,0],ymm0[2,3],ymm1[6,4],ymm0[6,7]
2899 ; AVX1-ONLY-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm1 # 32-byte Folded Reload
2900 ; AVX1-ONLY-NEXT:    # ymm1 = ymm14[0],mem[0],ymm14[1],mem[1],ymm14[4],mem[4],ymm14[5],mem[5]
2901 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm1, %xmm1
2902 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
2903 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
2904 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm15 = ymm14[1,0],ymm2[1,0],ymm14[5,4],ymm2[5,4]
2905 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm15 = ymm15[2,0,2,3,6,4,6,7]
2906 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm15, %xmm15
2907 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm15[0,1],xmm1[2,3]
2908 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
2909 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2910 ; AVX1-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm0 # 32-byte Folded Reload
2911 ; AVX1-ONLY-NEXT:    # ymm0 = ymm12[1],mem[1],ymm12[3],mem[3]
2912 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
2913 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm1[2],ymm8[2],ymm1[3],ymm8[3],ymm1[6],ymm8[6],ymm1[7],ymm8[7]
2914 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]
2915 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm5[2],ymm3[2],ymm5[3],ymm3[3],ymm5[6],ymm3[6],ymm5[7],ymm3[7]
2916 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm1, %xmm1
2917 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
2918 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm15 = ymm12[1],ymm13[1],ymm12[3],ymm13[3]
2919 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm15 = ymm15[0,1,2,0,4,5,6,4]
2920 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm15, %xmm15
2921 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm15[2,3]
2922 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
2923 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2924 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm11[1],ymm7[1],ymm11[3],ymm7[3]
2925 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm1 # 32-byte Folded Reload
2926 ; AVX1-ONLY-NEXT:    # ymm1 = ymm9[2],mem[2],ymm9[3],mem[3],ymm9[6],mem[6],ymm9[7],mem[7]
2927 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]
2928 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm1 # 32-byte Folded Reload
2929 ; AVX1-ONLY-NEXT:    # ymm1 = ymm4[2],mem[2],ymm4[3],mem[3],ymm4[6],mem[6],ymm4[7],mem[7]
2930 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm1, %xmm1
2931 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
2932 ; AVX1-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm15 # 32-byte Folded Reload
2933 ; AVX1-ONLY-NEXT:    # ymm15 = ymm3[1],mem[1],ymm3[3],mem[3]
2934 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm15 = ymm15[0,1,2,0,4,5,6,4]
2935 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm15, %xmm15
2936 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm15[2,3]
2937 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
2938 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2939 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
2940 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
2941 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm5[1],ymm7[1],ymm5[3],ymm7[3]
2942 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm10[2],ymm6[2],ymm10[3],ymm6[3],ymm10[6],ymm6[6],ymm10[7],ymm6[7]
2943 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]
2944 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
2945 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
2946 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm6[2],ymm8[2],ymm6[3],ymm8[3],ymm6[6],ymm8[6],ymm6[7],ymm8[7]
2947 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm1, %xmm1
2948 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
2949 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
2950 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm15 = ymm4[1],ymm3[1],ymm4[3],ymm3[3]
2951 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm15 = ymm15[0,1,2,0,4,5,6,4]
2952 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm15, %xmm15
2953 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm15[2,3]
2954 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
2955 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2956 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload
2957 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2958 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm11[1],ymm0[3],ymm11[3]
2959 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
2960 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
2961 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm13[2],ymm10[2],ymm13[3],ymm10[3],ymm13[6],ymm10[6],ymm13[7],ymm10[7]
2962 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]
2963 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
2964 ; AVX1-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm1 # 32-byte Folded Reload
2965 ; AVX1-ONLY-NEXT:    # ymm1 = ymm9[1],mem[1],ymm9[3],mem[3]
2966 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,1,2,0,4,5,6,4]
2967 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm1, %xmm1
2968 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} ymm15 = ymm2[2],ymm14[2],ymm2[3],ymm14[3],ymm2[6],ymm14[6],ymm2[7],ymm14[7]
2969 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm15, %xmm15
2970 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm15[0,1],xmm1[2,3]
2971 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
2972 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2973 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2974 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
2975 ; AVX1-ONLY-NEXT:    # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
2976 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
2977 ; AVX1-ONLY-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
2978 ; AVX1-ONLY-NEXT:    # ymm1 = ymm1[3,0],mem[3,0],ymm1[7,4],mem[7,4]
2979 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[2,0],ymm0[2,3],ymm1[6,4],ymm0[6,7]
2980 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
2981 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm1[2],ymm12[2],ymm1[3],ymm12[3],ymm1[6],ymm12[6],ymm1[7],ymm12[7]
2982 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
2983 ; AVX1-ONLY-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm15 # 32-byte Folded Reload
2984 ; AVX1-ONLY-NEXT:    # ymm15 = ymm2[3,0],mem[3,0],ymm2[7,4],mem[7,4]
2985 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm1, %xmm1
2986 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm15 = ymm15[2,0,2,3,6,4,6,7]
2987 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm15, %xmm15
2988 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm15[0,1],xmm1[2,3]
2989 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm12 = ymm1[0,1,2,3],ymm0[4,5,6,7]
2990 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} ymm0 = ymm7[2],ymm5[2],ymm7[3],ymm5[3],ymm7[6],ymm5[6],ymm7[7],ymm5[7]
2991 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
2992 ; AVX1-ONLY-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
2993 ; AVX1-ONLY-NEXT:    # ymm1 = ymm1[3,0],mem[3,0],ymm1[7,4],mem[7,4]
2994 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[2,0],ymm0[2,3],ymm1[6,4],ymm0[6,7]
2995 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm3[2],ymm4[2],ymm3[3],ymm4[3],ymm3[6],ymm4[6],ymm3[7],ymm4[7]
2996 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm8[3,0],ymm6[3,0],ymm8[7,4],ymm6[7,4]
2997 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm1, %xmm1
2998 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[2,0,2,3,6,4,6,7]
2999 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm2, %xmm2
3000 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
3001 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3002 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3003 ; AVX1-ONLY-NEXT:    vunpckhps (%rsp), %ymm1, %ymm1 # 32-byte Folded Reload
3004 ; AVX1-ONLY-NEXT:    # ymm1 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
3005 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
3006 ; AVX1-ONLY-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
3007 ; AVX1-ONLY-NEXT:    # ymm2 = ymm2[3,0],mem[3,0],ymm2[7,4],mem[7,4]
3008 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm2[2,0],ymm1[2,3],ymm2[6,4],ymm1[6,7]
3009 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
3010 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
3011 ; AVX1-ONLY-NEXT:    # ymm2 = ymm2[2],mem[2],ymm2[3],mem[3],ymm2[6],mem[6],ymm2[7],mem[7]
3012 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3013 ; AVX1-ONLY-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm4 # 32-byte Folded Reload
3014 ; AVX1-ONLY-NEXT:    # ymm4 = ymm3[3,0],mem[3,0],ymm3[7,4],mem[7,4]
3015 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm2, %xmm2
3016 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[2,0,2,3,6,4,6,7]
3017 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm4, %xmm4
3018 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm4[0,1],xmm2[2,3]
3019 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
3020 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm2 # 32-byte Folded Reload
3021 ; AVX1-ONLY-NEXT:    # ymm2 = ymm11[2],mem[2],ymm11[3],mem[3],ymm11[6],mem[6],ymm11[7],mem[7]
3022 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm4 = ymm10[3,0],ymm13[3,0],ymm10[7,4],ymm13[7,4]
3023 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm4[2,0],ymm2[2,3],ymm4[6,4],ymm2[6,7]
3024 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3025 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} ymm4 = ymm3[2],ymm9[2],ymm3[3],ymm9[3],ymm3[6],ymm9[6],ymm3[7],ymm9[7]
3026 ; AVX1-ONLY-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm3 # 32-byte Folded Reload
3027 ; AVX1-ONLY-NEXT:    # ymm3 = ymm14[3,0],mem[3,0],ymm14[7,4],mem[7,4]
3028 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm4, %xmm4
3029 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[2,0,2,3,6,4,6,7]
3030 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm3, %xmm3
3031 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm4[2,3]
3032 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]
3033 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3034 ; AVX1-ONLY-NEXT:    vmovaps %ymm3, 64(%rsi)
3035 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3036 ; AVX1-ONLY-NEXT:    vmovaps %ymm3, (%rsi)
3037 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3038 ; AVX1-ONLY-NEXT:    vmovaps %ymm3, 96(%rsi)
3039 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3040 ; AVX1-ONLY-NEXT:    vmovaps %ymm3, 32(%rsi)
3041 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3042 ; AVX1-ONLY-NEXT:    vmovaps %ymm3, 64(%rdx)
3043 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3044 ; AVX1-ONLY-NEXT:    vmovaps %ymm3, (%rdx)
3045 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3046 ; AVX1-ONLY-NEXT:    vmovaps %ymm3, 96(%rdx)
3047 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3048 ; AVX1-ONLY-NEXT:    vmovaps %ymm3, 32(%rdx)
3049 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3050 ; AVX1-ONLY-NEXT:    vmovaps %ymm3, 64(%rcx)
3051 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3052 ; AVX1-ONLY-NEXT:    vmovaps %ymm3, (%rcx)
3053 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3054 ; AVX1-ONLY-NEXT:    vmovaps %ymm3, 96(%rcx)
3055 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3056 ; AVX1-ONLY-NEXT:    vmovaps %ymm3, 32(%rcx)
3057 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3058 ; AVX1-ONLY-NEXT:    vmovaps %ymm3, 64(%r8)
3059 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3060 ; AVX1-ONLY-NEXT:    vmovaps %ymm3, (%r8)
3061 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3062 ; AVX1-ONLY-NEXT:    vmovaps %ymm3, 96(%r8)
3063 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3064 ; AVX1-ONLY-NEXT:    vmovaps %ymm3, 32(%r8)
3065 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3066 ; AVX1-ONLY-NEXT:    vmovaps %ymm3, 64(%r9)
3067 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3068 ; AVX1-ONLY-NEXT:    vmovaps %ymm3, (%r9)
3069 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3070 ; AVX1-ONLY-NEXT:    vmovaps %ymm3, 96(%r9)
3071 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3072 ; AVX1-ONLY-NEXT:    vmovaps %ymm3, 32(%r9)
3073 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3074 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3075 ; AVX1-ONLY-NEXT:    vmovaps %ymm3, 64(%rax)
3076 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3077 ; AVX1-ONLY-NEXT:    vmovaps %ymm3, (%rax)
3078 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3079 ; AVX1-ONLY-NEXT:    vmovaps %ymm3, 96(%rax)
3080 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3081 ; AVX1-ONLY-NEXT:    vmovaps %ymm3, 32(%rax)
3082 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3083 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3084 ; AVX1-ONLY-NEXT:    vmovaps %ymm3, 64(%rax)
3085 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3086 ; AVX1-ONLY-NEXT:    vmovaps %ymm3, (%rax)
3087 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3088 ; AVX1-ONLY-NEXT:    vmovaps %ymm3, 96(%rax)
3089 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3090 ; AVX1-ONLY-NEXT:    vmovaps %ymm3, 32(%rax)
3091 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3092 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 96(%rax)
3093 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 64(%rax)
3094 ; AVX1-ONLY-NEXT:    vmovaps %ymm12, 32(%rax)
3095 ; AVX1-ONLY-NEXT:    vmovaps %ymm2, (%rax)
3096 ; AVX1-ONLY-NEXT:    addq $1800, %rsp # imm = 0x708
3097 ; AVX1-ONLY-NEXT:    vzeroupper
3098 ; AVX1-ONLY-NEXT:    retq
3100 ; AVX2-ONLY-LABEL: load_i32_stride8_vf32:
3101 ; AVX2-ONLY:       # %bb.0:
3102 ; AVX2-ONLY-NEXT:    subq $1544, %rsp # imm = 0x608
3103 ; AVX2-ONLY-NEXT:    vmovaps 288(%rdi), %xmm0
3104 ; AVX2-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3105 ; AVX2-ONLY-NEXT:    vmovaps 256(%rdi), %xmm2
3106 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]
3107 ; AVX2-ONLY-NEXT:    vmovaps %xmm2, %xmm10
3108 ; AVX2-ONLY-NEXT:    vmovaps 352(%rdi), %xmm2
3109 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm2, %xmm1
3110 ; AVX2-ONLY-NEXT:    vmovaps %xmm2, %xmm14
3111 ; AVX2-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3112 ; AVX2-ONLY-NEXT:    vmovaps 320(%rdi), %xmm3
3113 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm3, %xmm2
3114 ; AVX2-ONLY-NEXT:    vmovaps %xmm3, %xmm15
3115 ; AVX2-ONLY-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3116 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
3117 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
3118 ; AVX2-ONLY-NEXT:    vmovaps 416(%rdi), %xmm1
3119 ; AVX2-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3120 ; AVX2-ONLY-NEXT:    vmovaps 384(%rdi), %xmm12
3121 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm12[0],xmm1[0],xmm12[1],xmm1[1]
3122 ; AVX2-ONLY-NEXT:    vmovaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3123 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
3124 ; AVX2-ONLY-NEXT:    vmovaps 480(%rdi), %xmm2
3125 ; AVX2-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3126 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm2, %xmm2
3127 ; AVX2-ONLY-NEXT:    vmovaps 448(%rdi), %xmm3
3128 ; AVX2-ONLY-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3129 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm3, %xmm3
3130 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
3131 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
3132 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
3133 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
3134 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3135 ; AVX2-ONLY-NEXT:    vmovaps 800(%rdi), %xmm1
3136 ; AVX2-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3137 ; AVX2-ONLY-NEXT:    vmovaps 768(%rdi), %xmm0
3138 ; AVX2-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3139 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
3140 ; AVX2-ONLY-NEXT:    vmovaps 864(%rdi), %xmm1
3141 ; AVX2-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3142 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm1, %xmm1
3143 ; AVX2-ONLY-NEXT:    vmovaps 832(%rdi), %xmm2
3144 ; AVX2-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3145 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm2, %xmm2
3146 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
3147 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
3148 ; AVX2-ONLY-NEXT:    vmovaps 992(%rdi), %xmm1
3149 ; AVX2-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3150 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm1, %xmm1
3151 ; AVX2-ONLY-NEXT:    vmovaps 960(%rdi), %xmm11
3152 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm11, %xmm2
3153 ; AVX2-ONLY-NEXT:    vmovaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3154 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
3155 ; AVX2-ONLY-NEXT:    vmovaps 928(%rdi), %xmm2
3156 ; AVX2-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3157 ; AVX2-ONLY-NEXT:    vmovaps 896(%rdi), %xmm3
3158 ; AVX2-ONLY-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3159 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
3160 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
3161 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
3162 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
3163 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
3164 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3165 ; AVX2-ONLY-NEXT:    vmovaps 608(%rdi), %xmm0
3166 ; AVX2-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3167 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm0, %xmm0
3168 ; AVX2-ONLY-NEXT:    vmovaps 576(%rdi), %xmm1
3169 ; AVX2-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3170 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm1, %xmm1
3171 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
3172 ; AVX2-ONLY-NEXT:    vmovaps 544(%rdi), %xmm1
3173 ; AVX2-ONLY-NEXT:    vmovaps %xmm1, (%rsp) # 16-byte Spill
3174 ; AVX2-ONLY-NEXT:    vmovaps 512(%rdi), %xmm2
3175 ; AVX2-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3176 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
3177 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
3178 ; AVX2-ONLY-NEXT:    vmovaps 736(%rdi), %xmm1
3179 ; AVX2-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3180 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm1, %xmm1
3181 ; AVX2-ONLY-NEXT:    vmovaps 704(%rdi), %xmm2
3182 ; AVX2-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3183 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm2, %xmm2
3184 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
3185 ; AVX2-ONLY-NEXT:    vmovaps 672(%rdi), %xmm2
3186 ; AVX2-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3187 ; AVX2-ONLY-NEXT:    vmovaps 640(%rdi), %xmm3
3188 ; AVX2-ONLY-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3189 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
3190 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
3191 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
3192 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
3193 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
3194 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3195 ; AVX2-ONLY-NEXT:    vmovaps 224(%rdi), %xmm0
3196 ; AVX2-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3197 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm0, %xmm0
3198 ; AVX2-ONLY-NEXT:    vmovaps 192(%rdi), %xmm1
3199 ; AVX2-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3200 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm1, %xmm1
3201 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
3202 ; AVX2-ONLY-NEXT:    vmovaps 160(%rdi), %xmm9
3203 ; AVX2-ONLY-NEXT:    vmovaps 128(%rdi), %xmm8
3204 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm8[0],xmm9[0],xmm8[1],xmm9[1]
3205 ; AVX2-ONLY-NEXT:    vmovaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3206 ; AVX2-ONLY-NEXT:    vmovaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3207 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
3208 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
3209 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm13 = ymm1[0,1,2,3,4,5],ymm0[6,7]
3210 ; AVX2-ONLY-NEXT:    vmovaps 96(%rdi), %xmm7
3211 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm7, %xmm1
3212 ; AVX2-ONLY-NEXT:    vmovaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3213 ; AVX2-ONLY-NEXT:    vmovaps 64(%rdi), %xmm6
3214 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm6, %xmm2
3215 ; AVX2-ONLY-NEXT:    vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3216 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
3217 ; AVX2-ONLY-NEXT:    vmovaps (%rdi), %xmm5
3218 ; AVX2-ONLY-NEXT:    vmovaps 32(%rdi), %xmm4
3219 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
3220 ; AVX2-ONLY-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3221 ; AVX2-ONLY-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3222 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm3[2,3]
3223 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm13[4,5,6,7]
3224 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3225 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm10[1,1,1,1]
3226 ; AVX2-ONLY-NEXT:    vmovaps %xmm10, %xmm3
3227 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload
3228 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0],xmm13[1],xmm0[2,3]
3229 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm15[0],xmm14[0],xmm15[1],xmm14[1]
3230 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
3231 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
3232 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
3233 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm15[0],xmm14[0],xmm15[1],xmm14[1]
3234 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
3235 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm12[1,1,1,1]
3236 ; AVX2-ONLY-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
3237 ; AVX2-ONLY-NEXT:    # xmm2 = xmm2[0],mem[1],xmm2[2,3]
3238 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
3239 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
3240 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
3241 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3242 ; AVX2-ONLY-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
3243 ; AVX2-ONLY-NEXT:    # xmm0 = mem[1,1,1,1]
3244 ; AVX2-ONLY-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
3245 ; AVX2-ONLY-NEXT:    # xmm0 = xmm0[0],mem[1],xmm0[2,3]
3246 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload
3247 ; AVX2-ONLY-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm12, %xmm1 # 16-byte Folded Reload
3248 ; AVX2-ONLY-NEXT:    # xmm1 = xmm12[0],mem[0],xmm12[1],mem[1]
3249 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
3250 ; AVX2-ONLY-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11, %xmm1 # 16-byte Folded Reload
3251 ; AVX2-ONLY-NEXT:    # xmm1 = xmm11[0],mem[0],xmm11[1],mem[1]
3252 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
3253 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload
3254 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm11[1,1,1,1]
3255 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
3256 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0],xmm10[1],xmm2[2,3]
3257 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
3258 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
3259 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
3260 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3261 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm5[1,1,1,1]
3262 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0],xmm4[1],xmm0[2,3]
3263 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm6[0],xmm7[0],xmm6[1],xmm7[1]
3264 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
3265 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3266 ; AVX2-ONLY-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
3267 ; AVX2-ONLY-NEXT:    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
3268 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
3269 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm8[1,1,1,1]
3270 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0],xmm9[1],xmm2[2,3]
3271 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
3272 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
3273 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
3274 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3275 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
3276 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm8[1,1,1,1]
3277 ; AVX2-ONLY-NEXT:    vmovaps (%rsp), %xmm7 # 16-byte Reload
3278 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0],xmm7[1],xmm0[2,3]
3279 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload
3280 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3281 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm9[0],xmm1[1],xmm9[1]
3282 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
3283 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
3284 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3285 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm4[0],xmm1[1],xmm4[1]
3286 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
3287 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
3288 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm6[1,1,1,1]
3289 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
3290 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0],xmm5[1],xmm2[2,3]
3291 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
3292 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
3293 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
3294 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3295 ; AVX2-ONLY-NEXT:    vunpckhps {{.*#+}} xmm3 = xmm3[2],xmm13[2],xmm3[3],xmm13[3]
3296 ; AVX2-ONLY-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3297 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3298 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm1 # 16-byte Folded Reload
3299 ; AVX2-ONLY-NEXT:    # xmm1 = xmm0[2],mem[2],xmm0[3],mem[3]
3300 ; AVX2-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3301 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm14[2,2,2,2]
3302 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm15[0,1,2],xmm0[3]
3303 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
3304 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
3305 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
3306 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload
3307 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm13[2,2,2,2]
3308 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
3309 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1,2],xmm1[3]
3310 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm3[0,1],xmm1[2,3]
3311 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3312 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3313 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3314 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm3 # 16-byte Folded Reload
3315 ; AVX2-ONLY-NEXT:    # xmm3 = xmm0[2],mem[2],xmm0[3],mem[3]
3316 ; AVX2-ONLY-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3317 ; AVX2-ONLY-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm11[2],xmm10[2],xmm11[3],xmm10[3]
3318 ; AVX2-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3319 ; AVX2-ONLY-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload
3320 ; AVX2-ONLY-NEXT:    # xmm15 = mem[2,2,2,2]
3321 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3322 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm15 = xmm1[0,1,2],xmm15[3]
3323 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm15
3324 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm14
3325 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3,4,5],ymm15[6,7]
3326 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3327 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} xmm15 = xmm0[2,2,2,2]
3328 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm15 = xmm12[0,1,2],xmm15[3]
3329 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm15 = xmm3[0,1],xmm15[2,3]
3330 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm14 = ymm15[0,1,2,3],ymm14[4,5,6,7]
3331 ; AVX2-ONLY-NEXT:    vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3332 ; AVX2-ONLY-NEXT:    vunpckhps {{.*#+}} xmm14 = xmm8[2],xmm7[2],xmm8[3],xmm7[3]
3333 ; AVX2-ONLY-NEXT:    vunpckhps {{.*#+}} xmm12 = xmm6[2],xmm5[2],xmm6[3],xmm5[3]
3334 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} xmm11 = xmm4[2,2,2,2]
3335 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
3336 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm11 = xmm10[0,1,2],xmm11[3]
3337 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm11, %ymm0, %ymm11
3338 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm15
3339 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm11 = ymm15[0,1,2,3,4,5],ymm11[6,7]
3340 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} xmm15 = xmm9[2,2,2,2]
3341 ; AVX2-ONLY-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload
3342 ; AVX2-ONLY-NEXT:    # xmm15 = mem[0,1,2],xmm15[3]
3343 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm15 = xmm14[0,1],xmm15[2,3]
3344 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm11 = ymm15[0,1,2,3],ymm11[4,5,6,7]
3345 ; AVX2-ONLY-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3346 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
3347 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm9 # 16-byte Folded Reload
3348 ; AVX2-ONLY-NEXT:    # xmm9 = xmm3[2],mem[2],xmm3[3],mem[3]
3349 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
3350 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} xmm7 = xmm15[2,2,2,2]
3351 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
3352 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm7 = xmm4[0,1,2],xmm7[3]
3353 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
3354 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm9, %ymm0, %ymm11
3355 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm7 = ymm11[0,1,2,3,4,5],ymm7[6,7]
3356 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
3357 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm6 # 16-byte Folded Reload
3358 ; AVX2-ONLY-NEXT:    # xmm6 = xmm3[2],mem[2],xmm3[3],mem[3]
3359 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload
3360 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} xmm5 = xmm11[2,2,2,2]
3361 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
3362 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm5 = xmm8[0,1,2],xmm5[3]
3363 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm5 = xmm6[0,1],xmm5[2,3]
3364 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm7[4,5,6,7]
3365 ; AVX2-ONLY-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3366 ; AVX2-ONLY-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm2[2],xmm13[2],xmm2[3],xmm13[3]
3367 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
3368 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm2 = xmm2[1],xmm5[1]
3369 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
3370 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm5 # 16-byte Folded Reload
3371 ; AVX2-ONLY-NEXT:    # xmm5 = xmm3[2],mem[2],xmm3[3],mem[3]
3372 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
3373 ; AVX2-ONLY-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload
3374 ; AVX2-ONLY-NEXT:    # xmm3 = mem[2,3,2,3]
3375 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
3376 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm5[6,7]
3377 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
3378 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3379 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
3380 ; AVX2-ONLY-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm2[2],xmm0[2],xmm2[3],xmm0[3]
3381 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3382 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
3383 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm2 # 16-byte Folded Reload
3384 ; AVX2-ONLY-NEXT:    # xmm2 = xmm1[2],mem[2],xmm1[3],mem[3]
3385 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
3386 ; AVX2-ONLY-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
3387 ; AVX2-ONLY-NEXT:    # xmm1 = mem[2,3,2,3]
3388 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
3389 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
3390 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
3391 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3392 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3393 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
3394 ; AVX2-ONLY-NEXT:    # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]
3395 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm14[1],xmm0[1]
3396 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10, %xmm1 # 16-byte Folded Reload
3397 ; AVX2-ONLY-NEXT:    # xmm1 = xmm10[2],mem[2],xmm10[3],mem[3]
3398 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
3399 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm12[2,3,2,3]
3400 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
3401 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
3402 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
3403 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3404 ; AVX2-ONLY-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm4[2],xmm15[2],xmm4[3],xmm15[3]
3405 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
3406 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm9[2,3,2,3]
3407 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
3408 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
3409 ; AVX2-ONLY-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm8[2],xmm11[2],xmm8[3],xmm11[3]
3410 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm6[1],xmm1[1]
3411 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3412 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3413 ; AVX2-ONLY-NEXT:    vmovaps 288(%rdi), %ymm0
3414 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3415 ; AVX2-ONLY-NEXT:    vmovaps 256(%rdi), %ymm1
3416 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3417 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
3418 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm0, %xmm0
3419 ; AVX2-ONLY-NEXT:    vmovaps 352(%rdi), %ymm1
3420 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3421 ; AVX2-ONLY-NEXT:    vmovaps 320(%rdi), %ymm2
3422 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3423 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm6 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[4],ymm1[4],ymm2[5],ymm1[5]
3424 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm1 = ymm6[2,2,2,2]
3425 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
3426 ; AVX2-ONLY-NEXT:    vmovaps 480(%rdi), %ymm2
3427 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3428 ; AVX2-ONLY-NEXT:    vmovaps 448(%rdi), %ymm3
3429 ; AVX2-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3430 ; AVX2-ONLY-NEXT:    vmovaps 416(%rdi), %ymm8
3431 ; AVX2-ONLY-NEXT:    vmovaps 384(%rdi), %ymm1
3432 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3433 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm8[0],ymm1[1],ymm8[1],ymm1[4],ymm8[4],ymm1[5],ymm8[5]
3434 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm10 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
3435 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm10[0],ymm1[2],ymm10[2]
3436 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
3437 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3438 ; AVX2-ONLY-NEXT:    vmovaps 800(%rdi), %ymm0
3439 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3440 ; AVX2-ONLY-NEXT:    vmovaps 768(%rdi), %ymm1
3441 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3442 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
3443 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm0, %xmm0
3444 ; AVX2-ONLY-NEXT:    vmovaps 864(%rdi), %ymm1
3445 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3446 ; AVX2-ONLY-NEXT:    vmovaps 832(%rdi), %ymm2
3447 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3448 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[4],ymm1[4],ymm2[5],ymm1[5]
3449 ; AVX2-ONLY-NEXT:    vmovups %ymm1, (%rsp) # 32-byte Spill
3450 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,2]
3451 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
3452 ; AVX2-ONLY-NEXT:    vmovaps 992(%rdi), %ymm2
3453 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3454 ; AVX2-ONLY-NEXT:    vmovaps 960(%rdi), %ymm3
3455 ; AVX2-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3456 ; AVX2-ONLY-NEXT:    vmovaps 928(%rdi), %ymm7
3457 ; AVX2-ONLY-NEXT:    vmovaps 896(%rdi), %ymm1
3458 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3459 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm7[0],ymm1[1],ymm7[1],ymm1[4],ymm7[4],ymm1[5],ymm7[5]
3460 ; AVX2-ONLY-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3461 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm12 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
3462 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm12[0],ymm1[2],ymm12[2]
3463 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
3464 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3465 ; AVX2-ONLY-NEXT:    vmovaps 32(%rdi), %ymm0
3466 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3467 ; AVX2-ONLY-NEXT:    vmovaps (%rdi), %ymm1
3468 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3469 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
3470 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm0, %xmm0
3471 ; AVX2-ONLY-NEXT:    vmovaps 96(%rdi), %ymm1
3472 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3473 ; AVX2-ONLY-NEXT:    vmovaps 64(%rdi), %ymm2
3474 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3475 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm13 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[4],ymm1[4],ymm2[5],ymm1[5]
3476 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm1 = ymm13[2,2,2,2]
3477 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
3478 ; AVX2-ONLY-NEXT:    vmovaps 224(%rdi), %ymm2
3479 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3480 ; AVX2-ONLY-NEXT:    vmovaps 192(%rdi), %ymm3
3481 ; AVX2-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3482 ; AVX2-ONLY-NEXT:    vmovaps 160(%rdi), %ymm15
3483 ; AVX2-ONLY-NEXT:    vmovaps 128(%rdi), %ymm1
3484 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3485 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm15[0],ymm1[1],ymm15[1],ymm1[4],ymm15[4],ymm1[5],ymm15[5]
3486 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm4 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
3487 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm4[0],ymm1[2],ymm4[2]
3488 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
3489 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3490 ; AVX2-ONLY-NEXT:    vmovaps 544(%rdi), %ymm14
3491 ; AVX2-ONLY-NEXT:    vmovaps 512(%rdi), %ymm11
3492 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm11[0],ymm14[0],ymm11[1],ymm14[1],ymm11[4],ymm14[4],ymm11[5],ymm14[5]
3493 ; AVX2-ONLY-NEXT:    vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3494 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm0, %xmm0
3495 ; AVX2-ONLY-NEXT:    vmovaps 608(%rdi), %ymm1
3496 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3497 ; AVX2-ONLY-NEXT:    vmovaps 576(%rdi), %ymm2
3498 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3499 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm9 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[4],ymm1[4],ymm2[5],ymm1[5]
3500 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm5 = ymm9[2,2,2,2]
3501 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm0[0,1],xmm5[2,3]
3502 ; AVX2-ONLY-NEXT:    vmovaps 736(%rdi), %ymm2
3503 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3504 ; AVX2-ONLY-NEXT:    vmovaps 704(%rdi), %ymm3
3505 ; AVX2-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3506 ; AVX2-ONLY-NEXT:    vmovaps 672(%rdi), %ymm5
3507 ; AVX2-ONLY-NEXT:    vmovaps 640(%rdi), %ymm0
3508 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3509 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm0[0],ymm5[0],ymm0[1],ymm5[1],ymm0[4],ymm5[4],ymm0[5],ymm5[5]
3510 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm2 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
3511 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm2[0],ymm0[2],ymm2[2]
3512 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3513 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3514 ; AVX2-ONLY-NEXT:    vbroadcastss 404(%rdi), %ymm0
3515 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm8[5],ymm0[6,7]
3516 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm10[6,7]
3517 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm6, %xmm1
3518 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
3519 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} ymm10 = ymm6[1,1,1,1,5,5,5,5]
3520 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3521 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0],ymm3[1],ymm10[2,3,4],ymm3[5],ymm10[6,7]
3522 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm10, %xmm10
3523 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm10[0,1],xmm1[2,3]
3524 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3525 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3526 ; AVX2-ONLY-NEXT:    vbroadcastss 916(%rdi), %ymm0
3527 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm7[5],ymm0[6,7]
3528 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm12[6,7]
3529 ; AVX2-ONLY-NEXT:    vmovups (%rsp), %ymm1 # 32-byte Reload
3530 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm1, %xmm1
3531 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
3532 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} ymm7 = ymm10[1,1,1,1,5,5,5,5]
3533 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
3534 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0],ymm12[1],ymm7[2,3,4],ymm12[5],ymm7[6,7]
3535 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm7, %xmm7
3536 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm7[0,1],xmm1[2,3]
3537 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3538 ; AVX2-ONLY-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
3539 ; AVX2-ONLY-NEXT:    vbroadcastss 148(%rdi), %ymm0
3540 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm15[5],ymm0[6,7]
3541 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm4[6,7]
3542 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm13, %xmm1
3543 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
3544 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} ymm4 = ymm13[1,1,1,1,5,5,5,5]
3545 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
3546 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0],ymm7[1],ymm4[2,3,4],ymm7[5],ymm4[6,7]
3547 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm4, %xmm4
3548 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm4[0,1],xmm1[2,3]
3549 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3550 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3551 ; AVX2-ONLY-NEXT:    vbroadcastss 660(%rdi), %ymm0
3552 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm5[5],ymm0[6,7]
3553 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm2[6,7]
3554 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm9, %xmm1
3555 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm11[1,1,1,1,5,5,5,5]
3556 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0],ymm14[1],ymm2[2,3,4],ymm14[5],ymm2[6,7]
3557 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm2, %xmm2
3558 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
3559 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3560 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3561 ; AVX2-ONLY-NEXT:    vbroadcastss 504(%rdi), %ymm0
3562 ; AVX2-ONLY-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload
3563 ; AVX2-ONLY-NEXT:    # ymm1 = mem[0,1,2,3,4,5,6],ymm0[7]
3564 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3565 ; AVX2-ONLY-NEXT:    vunpckhps {{.*#+}} ymm0 = ymm0[2],ymm8[2],ymm0[3],ymm8[3],ymm0[6],ymm8[6],ymm0[7],ymm8[7]
3566 ; AVX2-ONLY-NEXT:    vunpckhps {{.*#+}} ymm3 = ymm6[2],ymm3[2],ymm6[3],ymm3[3],ymm6[6],ymm3[6],ymm6[7],ymm3[7]
3567 ; AVX2-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3568 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
3569 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm6 # 32-byte Folded Reload
3570 ; AVX2-ONLY-NEXT:    # ymm6 = ymm2[2],mem[2],ymm2[3],mem[3],ymm2[6],mem[6],ymm2[7],mem[7]
3571 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm3, %xmm2
3572 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm3 = ymm6[2,2,2,2]
3573 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm3[2,3]
3574 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3,4,5],ymm1[6,7]
3575 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
3576 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3577 ; AVX2-ONLY-NEXT:    vbroadcastss 1016(%rdi), %ymm1
3578 ; AVX2-ONLY-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
3579 ; AVX2-ONLY-NEXT:    # ymm1 = mem[0,1,2,3,4,5,6],ymm1[7]
3580 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
3581 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm3 # 32-byte Folded Reload
3582 ; AVX2-ONLY-NEXT:    # ymm3 = ymm2[2],mem[2],ymm2[3],mem[3],ymm2[6],mem[6],ymm2[7],mem[7]
3583 ; AVX2-ONLY-NEXT:    vunpckhps {{.*#+}} ymm12 = ymm10[2],ymm12[2],ymm10[3],ymm12[3],ymm10[6],ymm12[6],ymm10[7],ymm12[7]
3584 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
3585 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm10 # 32-byte Folded Reload
3586 ; AVX2-ONLY-NEXT:    # ymm10 = ymm2[2],mem[2],ymm2[3],mem[3],ymm2[6],mem[6],ymm2[7],mem[7]
3587 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm12, %xmm2
3588 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm4 = ymm10[2,2,2,2]
3589 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm4[2,3]
3590 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3,4,5],ymm1[6,7]
3591 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
3592 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3593 ; AVX2-ONLY-NEXT:    vbroadcastss 248(%rdi), %ymm2
3594 ; AVX2-ONLY-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
3595 ; AVX2-ONLY-NEXT:    # ymm2 = mem[0,1,2,3,4,5,6],ymm2[7]
3596 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3597 ; AVX2-ONLY-NEXT:    vunpckhps {{.*#+}} ymm4 = ymm1[2],ymm15[2],ymm1[3],ymm15[3],ymm1[6],ymm15[6],ymm1[7],ymm15[7]
3598 ; AVX2-ONLY-NEXT:    vunpckhps {{.*#+}} ymm9 = ymm13[2],ymm7[2],ymm13[3],ymm7[3],ymm13[6],ymm7[6],ymm13[7],ymm7[7]
3599 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3600 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm14 # 32-byte Folded Reload
3601 ; AVX2-ONLY-NEXT:    # ymm14 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
3602 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm9, %xmm8
3603 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm15 = ymm14[2,2,2,2]
3604 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm8 = xmm8[0,1],xmm15[2,3]
3605 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1,2,3,4,5],ymm2[6,7]
3606 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm2[4,5,6,7]
3607 ; AVX2-ONLY-NEXT:    vbroadcastss 760(%rdi), %ymm2
3608 ; AVX2-ONLY-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
3609 ; AVX2-ONLY-NEXT:    # ymm2 = mem[0,1,2,3,4,5,6],ymm2[7]
3610 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3611 ; AVX2-ONLY-NEXT:    vunpckhps {{.*#+}} ymm5 = ymm1[2],ymm5[2],ymm1[3],ymm5[3],ymm1[6],ymm5[6],ymm1[7],ymm5[7]
3612 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm11 # 32-byte Folded Reload
3613 ; AVX2-ONLY-NEXT:    # ymm11 = ymm11[2],mem[2],ymm11[3],mem[3],ymm11[6],mem[6],ymm11[7],mem[7]
3614 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3615 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm13 # 32-byte Folded Reload
3616 ; AVX2-ONLY-NEXT:    # ymm13 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
3617 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm11, %xmm15
3618 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm1 = ymm13[2,2,2,2]
3619 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm15[0,1],xmm1[2,3]
3620 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3,4,5],ymm2[6,7]
3621 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm2[4,5,6,7]
3622 ; AVX2-ONLY-NEXT:    vbroadcastss 220(%rdi), %ymm1
3623 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
3624 ; AVX2-ONLY-NEXT:    # ymm1 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
3625 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm4[1],ymm1[1],ymm4[3],ymm1[3]
3626 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm14, %xmm4
3627 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} ymm9 = ymm9[2,3,2,3,6,7,6,7]
3628 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm9, %xmm9
3629 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm4 = xmm9[0,1],xmm4[2,3]
3630 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm1[4,5,6,7]
3631 ; AVX2-ONLY-NEXT:    vbroadcastss 476(%rdi), %ymm1
3632 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
3633 ; AVX2-ONLY-NEXT:    # ymm1 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
3634 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
3635 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm6, %xmm1
3636 ; AVX2-ONLY-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Folded Reload
3637 ; AVX2-ONLY-NEXT:    # ymm6 = mem[2,3,2,3,6,7,6,7]
3638 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm6, %xmm6
3639 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm6[0,1],xmm1[2,3]
3640 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3641 ; AVX2-ONLY-NEXT:    vbroadcastss 732(%rdi), %ymm1
3642 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
3643 ; AVX2-ONLY-NEXT:    # ymm1 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
3644 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm5[1],ymm1[1],ymm5[3],ymm1[3]
3645 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm13, %xmm5
3646 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} ymm6 = ymm11[2,3,2,3,6,7,6,7]
3647 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm6, %xmm6
3648 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm5 = xmm6[0,1],xmm5[2,3]
3649 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm1[4,5,6,7]
3650 ; AVX2-ONLY-NEXT:    vbroadcastss 988(%rdi), %ymm1
3651 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
3652 ; AVX2-ONLY-NEXT:    # ymm1 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
3653 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm3[1],ymm1[1],ymm3[3],ymm1[3]
3654 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm10, %xmm3
3655 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} ymm6 = ymm12[2,3,2,3,6,7,6,7]
3656 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm6, %xmm6
3657 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm3 = xmm6[0,1],xmm3[2,3]
3658 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm1[4,5,6,7]
3659 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3660 ; AVX2-ONLY-NEXT:    vmovaps %ymm3, 64(%rsi)
3661 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3662 ; AVX2-ONLY-NEXT:    vmovaps %ymm3, (%rsi)
3663 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3664 ; AVX2-ONLY-NEXT:    vmovaps %ymm3, 96(%rsi)
3665 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3666 ; AVX2-ONLY-NEXT:    vmovaps %ymm3, 32(%rsi)
3667 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3668 ; AVX2-ONLY-NEXT:    vmovaps %ymm3, 64(%rdx)
3669 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3670 ; AVX2-ONLY-NEXT:    vmovaps %ymm3, (%rdx)
3671 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3672 ; AVX2-ONLY-NEXT:    vmovaps %ymm3, 96(%rdx)
3673 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3674 ; AVX2-ONLY-NEXT:    vmovaps %ymm3, 32(%rdx)
3675 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3676 ; AVX2-ONLY-NEXT:    vmovaps %ymm3, 64(%rcx)
3677 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3678 ; AVX2-ONLY-NEXT:    vmovaps %ymm3, (%rcx)
3679 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3680 ; AVX2-ONLY-NEXT:    vmovaps %ymm3, 96(%rcx)
3681 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3682 ; AVX2-ONLY-NEXT:    vmovaps %ymm3, 32(%rcx)
3683 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3684 ; AVX2-ONLY-NEXT:    vmovaps %ymm3, 64(%r8)
3685 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3686 ; AVX2-ONLY-NEXT:    vmovaps %ymm3, (%r8)
3687 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3688 ; AVX2-ONLY-NEXT:    vmovaps %ymm3, 96(%r8)
3689 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3690 ; AVX2-ONLY-NEXT:    vmovaps %ymm3, 32(%r8)
3691 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3692 ; AVX2-ONLY-NEXT:    vmovaps %ymm3, 64(%r9)
3693 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3694 ; AVX2-ONLY-NEXT:    vmovaps %ymm3, (%r9)
3695 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3696 ; AVX2-ONLY-NEXT:    vmovaps %ymm3, 96(%r9)
3697 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3698 ; AVX2-ONLY-NEXT:    vmovaps %ymm3, 32(%r9)
3699 ; AVX2-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3700 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3701 ; AVX2-ONLY-NEXT:    vmovaps %ymm3, 64(%rax)
3702 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3703 ; AVX2-ONLY-NEXT:    vmovaps %ymm3, (%rax)
3704 ; AVX2-ONLY-NEXT:    vmovups (%rsp), %ymm3 # 32-byte Reload
3705 ; AVX2-ONLY-NEXT:    vmovaps %ymm3, 96(%rax)
3706 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
3707 ; AVX2-ONLY-NEXT:    vmovaps %ymm3, 32(%rax)
3708 ; AVX2-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3709 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 64(%rax)
3710 ; AVX2-ONLY-NEXT:    vmovaps %ymm8, (%rax)
3711 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
3712 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 96(%rax)
3713 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
3714 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 32(%rax)
3715 ; AVX2-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3716 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 96(%rax)
3717 ; AVX2-ONLY-NEXT:    vmovaps %ymm5, 64(%rax)
3718 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 32(%rax)
3719 ; AVX2-ONLY-NEXT:    vmovaps %ymm4, (%rax)
3720 ; AVX2-ONLY-NEXT:    addq $1544, %rsp # imm = 0x608
3721 ; AVX2-ONLY-NEXT:    vzeroupper
3722 ; AVX2-ONLY-NEXT:    retq
3724 ; AVX512F-ONLY-SLOW-LABEL: load_i32_stride8_vf32:
3725 ; AVX512F-ONLY-SLOW:       # %bb.0:
3726 ; AVX512F-ONLY-SLOW-NEXT:    subq $1096, %rsp # imm = 0x448
3727 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 704(%rdi), %zmm6
3728 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3729 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 640(%rdi), %zmm8
3730 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3731 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 576(%rdi), %zmm28
3732 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 512(%rdi), %zmm11
3733 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3734 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 832(%rdi), %zmm5
3735 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 768(%rdi), %zmm29
3736 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 960(%rdi), %zmm21
3737 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 896(%rdi), %zmm25
3738 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 (%rdi), %zmm7
3739 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 64(%rdi), %zmm17
3740 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 128(%rdi), %zmm4
3741 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 192(%rdi), %zmm9
3742 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 320(%rdi), %zmm20
3743 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 256(%rdi), %zmm26
3744 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 448(%rdi), %zmm22
3745 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 384(%rdi), %zmm2
3746 ; AVX512F-ONLY-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [0,8,16,24,0,8,16,24,0,8,16,24,0,8,16,24]
3747 ; AVX512F-ONLY-SLOW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3748 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm2, %zmm1
3749 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm2, %zmm12
3750 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm22, %zmm0, %zmm1
3751 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm26, %zmm2
3752 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm20, %zmm0, %zmm2
3753 ; AVX512F-ONLY-SLOW-NEXT:    movb $-64, %al
3754 ; AVX512F-ONLY-SLOW-NEXT:    kmovw %eax, %k1
3755 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm1, %zmm2 {%k1}
3756 ; AVX512F-ONLY-SLOW-NEXT:    vbroadcasti128 {{.*#+}} ymm1 = [0,8,16,24,0,8,16,24]
3757 ; AVX512F-ONLY-SLOW-NEXT:    # ymm1 = mem[0,1,0,1]
3758 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm3
3759 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm10
3760 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3761 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm9, %zmm1, %zmm3
3762 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3763 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm7, %zmm4
3764 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm17, %zmm0, %zmm4
3765 ; AVX512F-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
3766 ; AVX512F-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm3, %zmm2, %zmm2
3767 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3768 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm25, %zmm2
3769 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm21, %zmm0, %zmm2
3770 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm29, %zmm3
3771 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm5, %zmm0, %zmm3
3772 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm2, %zmm3 {%k1}
3773 ; AVX512F-ONLY-SLOW-NEXT:    vpermi2d %zmm28, %zmm11, %zmm0
3774 ; AVX512F-ONLY-SLOW-NEXT:    vpermi2d %zmm6, %zmm8, %zmm1
3775 ; AVX512F-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
3776 ; AVX512F-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm0, %zmm3, %zmm0
3777 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3778 ; AVX512F-ONLY-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [1,9,17,25,1,9,17,25,1,9,17,25,1,9,17,25]
3779 ; AVX512F-ONLY-SLOW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3780 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm12, %zmm0
3781 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm22, %zmm4, %zmm0
3782 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm26, %zmm1
3783 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm20, %zmm4, %zmm1
3784 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
3785 ; AVX512F-ONLY-SLOW-NEXT:    vbroadcasti128 {{.*#+}} ymm2 = [1,9,17,25,1,9,17,25]
3786 ; AVX512F-ONLY-SLOW-NEXT:    # ymm2 = mem[0,1,0,1]
3787 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm10, %zmm0
3788 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm9, %zmm2, %zmm0
3789 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm7, %zmm2
3790 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm17, %zmm4, %zmm2
3791 ; AVX512F-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
3792 ; AVX512F-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm0, %zmm1, %zmm0
3793 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3794 ; AVX512F-ONLY-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [2,10,18,26,2,10,18,26,2,10,18,26,2,10,18,26]
3795 ; AVX512F-ONLY-SLOW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3796 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm12, %zmm1
3797 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm22, %zmm0, %zmm1
3798 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3799 ; AVX512F-ONLY-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm2 = [3,11,19,27,3,11,19,27,3,11,19,27,3,11,19,27]
3800 ; AVX512F-ONLY-SLOW-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3801 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm12, %zmm1
3802 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm22, %zmm2, %zmm1
3803 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm2, %zmm3
3804 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3805 ; AVX512F-ONLY-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [4,12,20,28,4,12,20,28,4,12,20,28,4,12,20,28]
3806 ; AVX512F-ONLY-SLOW-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3807 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm12, %zmm2
3808 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm22, %zmm10, %zmm2
3809 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3810 ; AVX512F-ONLY-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm15 = [5,13,21,29,5,13,21,29,5,13,21,29,5,13,21,29]
3811 ; AVX512F-ONLY-SLOW-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3812 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm12, %zmm1
3813 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm22, %zmm15, %zmm1
3814 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3815 ; AVX512F-ONLY-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm13 = [6,14,22,30,6,14,22,30,6,14,22,30,6,14,22,30]
3816 ; AVX512F-ONLY-SLOW-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3817 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm12, %zmm1
3818 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm22, %zmm13, %zmm1
3819 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3820 ; AVX512F-ONLY-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm1 = [7,15,23,31,7,15,23,31,7,15,23,31,7,15,23,31]
3821 ; AVX512F-ONLY-SLOW-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3822 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm22, %zmm1, %zmm12
3823 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3824 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm26, %zmm24
3825 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm20, %zmm0, %zmm24
3826 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm26, %zmm27
3827 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm20, %zmm3, %zmm27
3828 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm26, %zmm31
3829 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm20, %zmm10, %zmm31
3830 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm26, %zmm30
3831 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm20, %zmm15, %zmm30
3832 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm26, %zmm22
3833 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm20, %zmm13, %zmm22
3834 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm20, %zmm1, %zmm26
3835 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm7, %zmm8
3836 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm17, %zmm0, %zmm8
3837 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm7, %zmm12
3838 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm17, %zmm3, %zmm12
3839 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm7, %zmm6
3840 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm17, %zmm10, %zmm6
3841 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm6, (%rsp) # 64-byte Spill
3842 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm7, %zmm6
3843 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm17, %zmm15, %zmm6
3844 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3845 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm7, %zmm6
3846 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm17, %zmm13, %zmm6
3847 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3848 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm17, %zmm1, %zmm7
3849 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3850 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm25, %zmm18
3851 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm21, %zmm4, %zmm18
3852 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm25, %zmm19
3853 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm21, %zmm0, %zmm19
3854 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm25, %zmm23
3855 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm3, %zmm6
3856 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm21, %zmm3, %zmm23
3857 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm25, %zmm16
3858 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm21, %zmm10, %zmm16
3859 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm25, %zmm20
3860 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm21, %zmm15, %zmm20
3861 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm25, %zmm17
3862 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm21, %zmm13, %zmm17
3863 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm21, %zmm1, %zmm25
3864 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm29, %zmm9
3865 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm5, %zmm4, %zmm9
3866 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm29, %zmm11
3867 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm5, %zmm0, %zmm11
3868 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm0, %zmm3
3869 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm29, %zmm14
3870 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm5, %zmm6, %zmm14
3871 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm29, %zmm21
3872 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm5, %zmm10, %zmm21
3873 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm29, %zmm7
3874 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm15, %zmm2
3875 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm5, %zmm15, %zmm7
3876 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm29, %zmm15
3877 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm5, %zmm13, %zmm15
3878 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm5, %zmm1, %zmm29
3879 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
3880 ; AVX512F-ONLY-SLOW-NEXT:    vpermi2d %zmm28, %zmm0, %zmm4
3881 ; AVX512F-ONLY-SLOW-NEXT:    vpermi2d %zmm28, %zmm0, %zmm3
3882 ; AVX512F-ONLY-SLOW-NEXT:    vpermi2d %zmm28, %zmm0, %zmm6
3883 ; AVX512F-ONLY-SLOW-NEXT:    vpermi2d %zmm28, %zmm0, %zmm10
3884 ; AVX512F-ONLY-SLOW-NEXT:    vpermi2d %zmm28, %zmm0, %zmm2
3885 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3886 ; AVX512F-ONLY-SLOW-NEXT:    vpermi2d %zmm28, %zmm0, %zmm13
3887 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm28, %zmm1, %zmm0
3888 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3889 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm18, %zmm9 {%k1}
3890 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
3891 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
3892 ; AVX512F-ONLY-SLOW-NEXT:    vbroadcasti128 {{.*#+}} ymm0 = [1,9,17,25,1,9,17,25]
3893 ; AVX512F-ONLY-SLOW-NEXT:    # ymm0 = mem[0,1,0,1]
3894 ; AVX512F-ONLY-SLOW-NEXT:    vpermi2d %zmm28, %zmm2, %zmm0
3895 ; AVX512F-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm4[0,1,2,3],ymm0[4,5,6,7]
3896 ; AVX512F-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm0, %zmm9, %zmm18
3897 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
3898 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm0, %zmm24 {%k1}
3899 ; AVX512F-ONLY-SLOW-NEXT:    vbroadcasti128 {{.*#+}} ymm9 = [2,10,18,26,2,10,18,26]
3900 ; AVX512F-ONLY-SLOW-NEXT:    # ymm9 = mem[0,1,0,1]
3901 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
3902 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm0
3903 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
3904 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm5, %zmm9, %zmm0
3905 ; AVX512F-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm8[0,1,2,3],ymm0[4,5,6,7]
3906 ; AVX512F-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm0, %zmm24, %zmm24
3907 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm19, %zmm11 {%k1}
3908 ; AVX512F-ONLY-SLOW-NEXT:    vpermi2d %zmm28, %zmm2, %zmm9
3909 ; AVX512F-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm9[4,5,6,7]
3910 ; AVX512F-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm1, %zmm11, %zmm1
3911 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
3912 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm0, %zmm27 {%k1}
3913 ; AVX512F-ONLY-SLOW-NEXT:    vbroadcasti128 {{.*#+}} ymm3 = [3,11,19,27,3,11,19,27]
3914 ; AVX512F-ONLY-SLOW-NEXT:    # ymm3 = mem[0,1,0,1]
3915 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm0
3916 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm9
3917 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm5, %zmm3, %zmm9
3918 ; AVX512F-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} ymm4 = ymm12[0,1,2,3],ymm9[4,5,6,7]
3919 ; AVX512F-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm4, %zmm27, %zmm4
3920 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm23, %zmm14 {%k1}
3921 ; AVX512F-ONLY-SLOW-NEXT:    vpermi2d %zmm28, %zmm2, %zmm3
3922 ; AVX512F-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} ymm3 = ymm6[0,1,2,3],ymm3[4,5,6,7]
3923 ; AVX512F-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm3, %zmm14, %zmm3
3924 ; AVX512F-ONLY-SLOW-NEXT:    vbroadcasti128 {{.*#+}} ymm6 = [4,12,20,28,4,12,20,28]
3925 ; AVX512F-ONLY-SLOW-NEXT:    # ymm6 = mem[0,1,0,1]
3926 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm0, %zmm8
3927 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm5, %zmm6, %zmm8
3928 ; AVX512F-ONLY-SLOW-NEXT:    vbroadcasti128 {{.*#+}} ymm9 = [5,13,21,29,5,13,21,29]
3929 ; AVX512F-ONLY-SLOW-NEXT:    # ymm9 = mem[0,1,0,1]
3930 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm0, %zmm11
3931 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm5, %zmm9, %zmm11
3932 ; AVX512F-ONLY-SLOW-NEXT:    vbroadcasti128 {{.*#+}} ymm12 = [6,14,22,30,6,14,22,30]
3933 ; AVX512F-ONLY-SLOW-NEXT:    # ymm12 = mem[0,1,0,1]
3934 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm0, %zmm14
3935 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm5, %zmm12, %zmm14
3936 ; AVX512F-ONLY-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} ymm19 = [7,15,23,31,7,15,23,31]
3937 ; AVX512F-ONLY-SLOW-NEXT:    # ymm19 = mem[0,1,2,3,0,1,2,3]
3938 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm5, %zmm19, %zmm0
3939 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm0, %zmm5
3940 ; AVX512F-ONLY-SLOW-NEXT:    vpermi2d %zmm28, %zmm2, %zmm6
3941 ; AVX512F-ONLY-SLOW-NEXT:    vpermi2d %zmm28, %zmm2, %zmm9
3942 ; AVX512F-ONLY-SLOW-NEXT:    vpermi2d %zmm28, %zmm2, %zmm12
3943 ; AVX512F-ONLY-SLOW-NEXT:    vpermt2d %zmm28, %zmm19, %zmm2
3944 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm2, %zmm0
3945 ; AVX512F-ONLY-SLOW-NEXT:    vpblendd $15, (%rsp), %ymm8, %ymm8 # 32-byte Folded Reload
3946 ; AVX512F-ONLY-SLOW-NEXT:    # ymm8 = mem[0,1,2,3],ymm8[4,5,6,7]
3947 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
3948 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm2, %zmm31 {%k1}
3949 ; AVX512F-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm8, %zmm31, %zmm8
3950 ; AVX512F-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} ymm6 = ymm10[0,1,2,3],ymm6[4,5,6,7]
3951 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm16, %zmm21 {%k1}
3952 ; AVX512F-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm6, %zmm21, %zmm6
3953 ; AVX512F-ONLY-SLOW-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm10 # 32-byte Folded Reload
3954 ; AVX512F-ONLY-SLOW-NEXT:    # ymm10 = mem[0,1,2,3],ymm11[4,5,6,7]
3955 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
3956 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm2, %zmm30 {%k1}
3957 ; AVX512F-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm10, %zmm30, %zmm10
3958 ; AVX512F-ONLY-SLOW-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm9 # 32-byte Folded Reload
3959 ; AVX512F-ONLY-SLOW-NEXT:    # ymm9 = mem[0,1,2,3],ymm9[4,5,6,7]
3960 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm20, %zmm7 {%k1}
3961 ; AVX512F-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm9, %zmm7, %zmm7
3962 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
3963 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm2, %zmm22 {%k1}
3964 ; AVX512F-ONLY-SLOW-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm9 # 32-byte Folded Reload
3965 ; AVX512F-ONLY-SLOW-NEXT:    # ymm9 = mem[0,1,2,3],ymm14[4,5,6,7]
3966 ; AVX512F-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm9, %zmm22, %zmm9
3967 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm17, %zmm15 {%k1}
3968 ; AVX512F-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm13[0,1,2,3],ymm12[4,5,6,7]
3969 ; AVX512F-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm2, %zmm15, %zmm2
3970 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
3971 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm11, %zmm26 {%k1}
3972 ; AVX512F-ONLY-SLOW-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm11 # 32-byte Folded Reload
3973 ; AVX512F-ONLY-SLOW-NEXT:    # ymm11 = mem[0,1,2,3],ymm5[4,5,6,7]
3974 ; AVX512F-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm11, %zmm26, %zmm5
3975 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm25, %zmm29 {%k1}
3976 ; AVX512F-ONLY-SLOW-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm11 # 32-byte Folded Reload
3977 ; AVX512F-ONLY-SLOW-NEXT:    # ymm11 = mem[0,1,2,3],ymm0[4,5,6,7]
3978 ; AVX512F-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm11, %zmm29, %zmm11
3979 ; AVX512F-ONLY-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
3980 ; AVX512F-ONLY-SLOW-NEXT:    vmovaps %zmm0, 64(%rsi)
3981 ; AVX512F-ONLY-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
3982 ; AVX512F-ONLY-SLOW-NEXT:    vmovaps %zmm0, (%rsi)
3983 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm18, 64(%rdx)
3984 ; AVX512F-ONLY-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
3985 ; AVX512F-ONLY-SLOW-NEXT:    vmovaps %zmm0, (%rdx)
3986 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm1, 64(%rcx)
3987 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm24, (%rcx)
3988 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm3, 64(%r8)
3989 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm4, (%r8)
3990 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm6, 64(%r9)
3991 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm8, (%r9)
3992 ; AVX512F-ONLY-SLOW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3993 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm7, 64(%rax)
3994 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm10, (%rax)
3995 ; AVX512F-ONLY-SLOW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3996 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm2, 64(%rax)
3997 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm9, (%rax)
3998 ; AVX512F-ONLY-SLOW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3999 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm11, 64(%rax)
4000 ; AVX512F-ONLY-SLOW-NEXT:    vmovdqa64 %zmm5, (%rax)
4001 ; AVX512F-ONLY-SLOW-NEXT:    addq $1096, %rsp # imm = 0x448
4002 ; AVX512F-ONLY-SLOW-NEXT:    vzeroupper
4003 ; AVX512F-ONLY-SLOW-NEXT:    retq
4005 ; AVX512F-ONLY-FAST-LABEL: load_i32_stride8_vf32:
4006 ; AVX512F-ONLY-FAST:       # %bb.0:
4007 ; AVX512F-ONLY-FAST-NEXT:    subq $1096, %rsp # imm = 0x448
4008 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 704(%rdi), %zmm6
4009 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4010 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 640(%rdi), %zmm8
4011 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4012 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 576(%rdi), %zmm28
4013 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 512(%rdi), %zmm11
4014 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4015 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 832(%rdi), %zmm5
4016 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 768(%rdi), %zmm29
4017 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 960(%rdi), %zmm21
4018 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 896(%rdi), %zmm25
4019 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 (%rdi), %zmm7
4020 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 64(%rdi), %zmm17
4021 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 128(%rdi), %zmm4
4022 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 192(%rdi), %zmm9
4023 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 320(%rdi), %zmm20
4024 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 256(%rdi), %zmm26
4025 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 448(%rdi), %zmm22
4026 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 384(%rdi), %zmm2
4027 ; AVX512F-ONLY-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [0,8,16,24,0,8,16,24,0,8,16,24,0,8,16,24]
4028 ; AVX512F-ONLY-FAST-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4029 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm2, %zmm1
4030 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm2, %zmm12
4031 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm22, %zmm0, %zmm1
4032 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm26, %zmm2
4033 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm20, %zmm0, %zmm2
4034 ; AVX512F-ONLY-FAST-NEXT:    movb $-64, %al
4035 ; AVX512F-ONLY-FAST-NEXT:    kmovw %eax, %k1
4036 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm1, %zmm2 {%k1}
4037 ; AVX512F-ONLY-FAST-NEXT:    vbroadcasti128 {{.*#+}} ymm1 = [0,8,16,24,0,8,16,24]
4038 ; AVX512F-ONLY-FAST-NEXT:    # ymm1 = mem[0,1,0,1]
4039 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm4, %zmm3
4040 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm4, %zmm10
4041 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4042 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm9, %zmm1, %zmm3
4043 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4044 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm7, %zmm4
4045 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm17, %zmm0, %zmm4
4046 ; AVX512F-ONLY-FAST-NEXT:    vpblendd {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
4047 ; AVX512F-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm3, %zmm2, %zmm2
4048 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4049 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm25, %zmm2
4050 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm21, %zmm0, %zmm2
4051 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm29, %zmm3
4052 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm5, %zmm0, %zmm3
4053 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm2, %zmm3 {%k1}
4054 ; AVX512F-ONLY-FAST-NEXT:    vpermi2d %zmm28, %zmm11, %zmm0
4055 ; AVX512F-ONLY-FAST-NEXT:    vpermi2d %zmm6, %zmm8, %zmm1
4056 ; AVX512F-ONLY-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4057 ; AVX512F-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm0, %zmm3, %zmm0
4058 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4059 ; AVX512F-ONLY-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [1,9,17,25,1,9,17,25,1,9,17,25,1,9,17,25]
4060 ; AVX512F-ONLY-FAST-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4061 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm12, %zmm0
4062 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm22, %zmm4, %zmm0
4063 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm26, %zmm1
4064 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm20, %zmm4, %zmm1
4065 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
4066 ; AVX512F-ONLY-FAST-NEXT:    vbroadcasti128 {{.*#+}} ymm2 = [1,9,17,25,1,9,17,25]
4067 ; AVX512F-ONLY-FAST-NEXT:    # ymm2 = mem[0,1,0,1]
4068 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm10, %zmm0
4069 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm9, %zmm2, %zmm0
4070 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm7, %zmm2
4071 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm17, %zmm4, %zmm2
4072 ; AVX512F-ONLY-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
4073 ; AVX512F-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm0, %zmm1, %zmm0
4074 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4075 ; AVX512F-ONLY-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [2,10,18,26,2,10,18,26,2,10,18,26,2,10,18,26]
4076 ; AVX512F-ONLY-FAST-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4077 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm12, %zmm1
4078 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm22, %zmm0, %zmm1
4079 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4080 ; AVX512F-ONLY-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm2 = [3,11,19,27,3,11,19,27,3,11,19,27,3,11,19,27]
4081 ; AVX512F-ONLY-FAST-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4082 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm12, %zmm1
4083 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm22, %zmm2, %zmm1
4084 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm2, %zmm3
4085 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4086 ; AVX512F-ONLY-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [4,12,20,28,4,12,20,28,4,12,20,28,4,12,20,28]
4087 ; AVX512F-ONLY-FAST-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4088 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm12, %zmm2
4089 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm22, %zmm10, %zmm2
4090 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4091 ; AVX512F-ONLY-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm15 = [5,13,21,29,5,13,21,29,5,13,21,29,5,13,21,29]
4092 ; AVX512F-ONLY-FAST-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4093 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm12, %zmm1
4094 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm22, %zmm15, %zmm1
4095 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4096 ; AVX512F-ONLY-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm13 = [6,14,22,30,6,14,22,30,6,14,22,30,6,14,22,30]
4097 ; AVX512F-ONLY-FAST-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4098 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm12, %zmm1
4099 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm22, %zmm13, %zmm1
4100 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4101 ; AVX512F-ONLY-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm1 = [7,15,23,31,7,15,23,31,7,15,23,31,7,15,23,31]
4102 ; AVX512F-ONLY-FAST-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4103 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm22, %zmm1, %zmm12
4104 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4105 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm26, %zmm24
4106 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm20, %zmm0, %zmm24
4107 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm26, %zmm27
4108 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm20, %zmm3, %zmm27
4109 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm26, %zmm31
4110 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm20, %zmm10, %zmm31
4111 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm26, %zmm30
4112 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm20, %zmm15, %zmm30
4113 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm26, %zmm22
4114 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm20, %zmm13, %zmm22
4115 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm20, %zmm1, %zmm26
4116 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm7, %zmm8
4117 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm17, %zmm0, %zmm8
4118 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm7, %zmm12
4119 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm17, %zmm3, %zmm12
4120 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm7, %zmm6
4121 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm17, %zmm10, %zmm6
4122 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm6, (%rsp) # 64-byte Spill
4123 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm7, %zmm6
4124 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm17, %zmm15, %zmm6
4125 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4126 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm7, %zmm6
4127 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm17, %zmm13, %zmm6
4128 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4129 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm17, %zmm1, %zmm7
4130 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4131 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm25, %zmm18
4132 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm21, %zmm4, %zmm18
4133 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm25, %zmm19
4134 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm21, %zmm0, %zmm19
4135 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm25, %zmm23
4136 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm3, %zmm6
4137 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm21, %zmm3, %zmm23
4138 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm25, %zmm16
4139 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm21, %zmm10, %zmm16
4140 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm25, %zmm20
4141 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm21, %zmm15, %zmm20
4142 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm25, %zmm17
4143 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm21, %zmm13, %zmm17
4144 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm21, %zmm1, %zmm25
4145 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm29, %zmm9
4146 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm5, %zmm4, %zmm9
4147 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm29, %zmm11
4148 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm5, %zmm0, %zmm11
4149 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm0, %zmm3
4150 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm29, %zmm14
4151 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm5, %zmm6, %zmm14
4152 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm29, %zmm21
4153 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm5, %zmm10, %zmm21
4154 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm29, %zmm7
4155 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm15, %zmm2
4156 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm5, %zmm15, %zmm7
4157 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm29, %zmm15
4158 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm5, %zmm13, %zmm15
4159 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm5, %zmm1, %zmm29
4160 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4161 ; AVX512F-ONLY-FAST-NEXT:    vpermi2d %zmm28, %zmm0, %zmm4
4162 ; AVX512F-ONLY-FAST-NEXT:    vpermi2d %zmm28, %zmm0, %zmm3
4163 ; AVX512F-ONLY-FAST-NEXT:    vpermi2d %zmm28, %zmm0, %zmm6
4164 ; AVX512F-ONLY-FAST-NEXT:    vpermi2d %zmm28, %zmm0, %zmm10
4165 ; AVX512F-ONLY-FAST-NEXT:    vpermi2d %zmm28, %zmm0, %zmm2
4166 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4167 ; AVX512F-ONLY-FAST-NEXT:    vpermi2d %zmm28, %zmm0, %zmm13
4168 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm28, %zmm1, %zmm0
4169 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4170 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm18, %zmm9 {%k1}
4171 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
4172 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
4173 ; AVX512F-ONLY-FAST-NEXT:    vbroadcasti128 {{.*#+}} ymm0 = [1,9,17,25,1,9,17,25]
4174 ; AVX512F-ONLY-FAST-NEXT:    # ymm0 = mem[0,1,0,1]
4175 ; AVX512F-ONLY-FAST-NEXT:    vpermi2d %zmm28, %zmm2, %zmm0
4176 ; AVX512F-ONLY-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm4[0,1,2,3],ymm0[4,5,6,7]
4177 ; AVX512F-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm0, %zmm9, %zmm18
4178 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4179 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm0, %zmm24 {%k1}
4180 ; AVX512F-ONLY-FAST-NEXT:    vbroadcasti128 {{.*#+}} ymm9 = [2,10,18,26,2,10,18,26]
4181 ; AVX512F-ONLY-FAST-NEXT:    # ymm9 = mem[0,1,0,1]
4182 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4183 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm4, %zmm0
4184 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
4185 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm5, %zmm9, %zmm0
4186 ; AVX512F-ONLY-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm8[0,1,2,3],ymm0[4,5,6,7]
4187 ; AVX512F-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm0, %zmm24, %zmm24
4188 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm19, %zmm11 {%k1}
4189 ; AVX512F-ONLY-FAST-NEXT:    vpermi2d %zmm28, %zmm2, %zmm9
4190 ; AVX512F-ONLY-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm9[4,5,6,7]
4191 ; AVX512F-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm1, %zmm11, %zmm1
4192 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4193 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm0, %zmm27 {%k1}
4194 ; AVX512F-ONLY-FAST-NEXT:    vbroadcasti128 {{.*#+}} ymm3 = [3,11,19,27,3,11,19,27]
4195 ; AVX512F-ONLY-FAST-NEXT:    # ymm3 = mem[0,1,0,1]
4196 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm4, %zmm0
4197 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm4, %zmm9
4198 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm5, %zmm3, %zmm9
4199 ; AVX512F-ONLY-FAST-NEXT:    vpblendd {{.*#+}} ymm4 = ymm12[0,1,2,3],ymm9[4,5,6,7]
4200 ; AVX512F-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm4, %zmm27, %zmm4
4201 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm23, %zmm14 {%k1}
4202 ; AVX512F-ONLY-FAST-NEXT:    vpermi2d %zmm28, %zmm2, %zmm3
4203 ; AVX512F-ONLY-FAST-NEXT:    vpblendd {{.*#+}} ymm3 = ymm6[0,1,2,3],ymm3[4,5,6,7]
4204 ; AVX512F-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm3, %zmm14, %zmm3
4205 ; AVX512F-ONLY-FAST-NEXT:    vbroadcasti128 {{.*#+}} ymm6 = [4,12,20,28,4,12,20,28]
4206 ; AVX512F-ONLY-FAST-NEXT:    # ymm6 = mem[0,1,0,1]
4207 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm0, %zmm8
4208 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm5, %zmm6, %zmm8
4209 ; AVX512F-ONLY-FAST-NEXT:    vbroadcasti128 {{.*#+}} ymm9 = [5,13,21,29,5,13,21,29]
4210 ; AVX512F-ONLY-FAST-NEXT:    # ymm9 = mem[0,1,0,1]
4211 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm0, %zmm11
4212 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm5, %zmm9, %zmm11
4213 ; AVX512F-ONLY-FAST-NEXT:    vbroadcasti128 {{.*#+}} ymm12 = [6,14,22,30,6,14,22,30]
4214 ; AVX512F-ONLY-FAST-NEXT:    # ymm12 = mem[0,1,0,1]
4215 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm0, %zmm14
4216 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm5, %zmm12, %zmm14
4217 ; AVX512F-ONLY-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} ymm19 = [7,15,23,31,7,15,23,31]
4218 ; AVX512F-ONLY-FAST-NEXT:    # ymm19 = mem[0,1,2,3,0,1,2,3]
4219 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm5, %zmm19, %zmm0
4220 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm0, %zmm5
4221 ; AVX512F-ONLY-FAST-NEXT:    vpermi2d %zmm28, %zmm2, %zmm6
4222 ; AVX512F-ONLY-FAST-NEXT:    vpermi2d %zmm28, %zmm2, %zmm9
4223 ; AVX512F-ONLY-FAST-NEXT:    vpermi2d %zmm28, %zmm2, %zmm12
4224 ; AVX512F-ONLY-FAST-NEXT:    vpermt2d %zmm28, %zmm19, %zmm2
4225 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm2, %zmm0
4226 ; AVX512F-ONLY-FAST-NEXT:    vpblendd $15, (%rsp), %ymm8, %ymm8 # 32-byte Folded Reload
4227 ; AVX512F-ONLY-FAST-NEXT:    # ymm8 = mem[0,1,2,3],ymm8[4,5,6,7]
4228 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
4229 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm2, %zmm31 {%k1}
4230 ; AVX512F-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm8, %zmm31, %zmm8
4231 ; AVX512F-ONLY-FAST-NEXT:    vpblendd {{.*#+}} ymm6 = ymm10[0,1,2,3],ymm6[4,5,6,7]
4232 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm16, %zmm21 {%k1}
4233 ; AVX512F-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm6, %zmm21, %zmm6
4234 ; AVX512F-ONLY-FAST-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm10 # 32-byte Folded Reload
4235 ; AVX512F-ONLY-FAST-NEXT:    # ymm10 = mem[0,1,2,3],ymm11[4,5,6,7]
4236 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
4237 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm2, %zmm30 {%k1}
4238 ; AVX512F-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm10, %zmm30, %zmm10
4239 ; AVX512F-ONLY-FAST-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm9 # 32-byte Folded Reload
4240 ; AVX512F-ONLY-FAST-NEXT:    # ymm9 = mem[0,1,2,3],ymm9[4,5,6,7]
4241 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm20, %zmm7 {%k1}
4242 ; AVX512F-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm9, %zmm7, %zmm7
4243 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
4244 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm2, %zmm22 {%k1}
4245 ; AVX512F-ONLY-FAST-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm9 # 32-byte Folded Reload
4246 ; AVX512F-ONLY-FAST-NEXT:    # ymm9 = mem[0,1,2,3],ymm14[4,5,6,7]
4247 ; AVX512F-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm9, %zmm22, %zmm9
4248 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm17, %zmm15 {%k1}
4249 ; AVX512F-ONLY-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm13[0,1,2,3],ymm12[4,5,6,7]
4250 ; AVX512F-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm2, %zmm15, %zmm2
4251 ; AVX512F-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
4252 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm11, %zmm26 {%k1}
4253 ; AVX512F-ONLY-FAST-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm11 # 32-byte Folded Reload
4254 ; AVX512F-ONLY-FAST-NEXT:    # ymm11 = mem[0,1,2,3],ymm5[4,5,6,7]
4255 ; AVX512F-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm11, %zmm26, %zmm5
4256 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm25, %zmm29 {%k1}
4257 ; AVX512F-ONLY-FAST-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm11 # 32-byte Folded Reload
4258 ; AVX512F-ONLY-FAST-NEXT:    # ymm11 = mem[0,1,2,3],ymm0[4,5,6,7]
4259 ; AVX512F-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm11, %zmm29, %zmm11
4260 ; AVX512F-ONLY-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4261 ; AVX512F-ONLY-FAST-NEXT:    vmovaps %zmm0, 64(%rsi)
4262 ; AVX512F-ONLY-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4263 ; AVX512F-ONLY-FAST-NEXT:    vmovaps %zmm0, (%rsi)
4264 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm18, 64(%rdx)
4265 ; AVX512F-ONLY-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4266 ; AVX512F-ONLY-FAST-NEXT:    vmovaps %zmm0, (%rdx)
4267 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm1, 64(%rcx)
4268 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm24, (%rcx)
4269 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm3, 64(%r8)
4270 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm4, (%r8)
4271 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm6, 64(%r9)
4272 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm8, (%r9)
4273 ; AVX512F-ONLY-FAST-NEXT:    movq {{[0-9]+}}(%rsp), %rax
4274 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm7, 64(%rax)
4275 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm10, (%rax)
4276 ; AVX512F-ONLY-FAST-NEXT:    movq {{[0-9]+}}(%rsp), %rax
4277 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm2, 64(%rax)
4278 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm9, (%rax)
4279 ; AVX512F-ONLY-FAST-NEXT:    movq {{[0-9]+}}(%rsp), %rax
4280 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm11, 64(%rax)
4281 ; AVX512F-ONLY-FAST-NEXT:    vmovdqa64 %zmm5, (%rax)
4282 ; AVX512F-ONLY-FAST-NEXT:    addq $1096, %rsp # imm = 0x448
4283 ; AVX512F-ONLY-FAST-NEXT:    vzeroupper
4284 ; AVX512F-ONLY-FAST-NEXT:    retq
4286 ; AVX512DQ-SLOW-LABEL: load_i32_stride8_vf32:
4287 ; AVX512DQ-SLOW:       # %bb.0:
4288 ; AVX512DQ-SLOW-NEXT:    subq $1096, %rsp # imm = 0x448
4289 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 704(%rdi), %zmm6
4290 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4291 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 640(%rdi), %zmm8
4292 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4293 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 576(%rdi), %zmm28
4294 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 512(%rdi), %zmm11
4295 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4296 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 832(%rdi), %zmm5
4297 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 768(%rdi), %zmm29
4298 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 960(%rdi), %zmm21
4299 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 896(%rdi), %zmm25
4300 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 (%rdi), %zmm7
4301 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 64(%rdi), %zmm17
4302 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 128(%rdi), %zmm4
4303 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 192(%rdi), %zmm9
4304 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 320(%rdi), %zmm20
4305 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 256(%rdi), %zmm26
4306 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 448(%rdi), %zmm22
4307 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 384(%rdi), %zmm2
4308 ; AVX512DQ-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [0,8,16,24,0,8,16,24,0,8,16,24,0,8,16,24]
4309 ; AVX512DQ-SLOW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4310 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm2, %zmm1
4311 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm2, %zmm12
4312 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm22, %zmm0, %zmm1
4313 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm26, %zmm2
4314 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm20, %zmm0, %zmm2
4315 ; AVX512DQ-SLOW-NEXT:    movb $-64, %al
4316 ; AVX512DQ-SLOW-NEXT:    kmovw %eax, %k1
4317 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm1, %zmm2 {%k1}
4318 ; AVX512DQ-SLOW-NEXT:    vbroadcasti128 {{.*#+}} ymm1 = [0,8,16,24,0,8,16,24]
4319 ; AVX512DQ-SLOW-NEXT:    # ymm1 = mem[0,1,0,1]
4320 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm3
4321 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm10
4322 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4323 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm9, %zmm1, %zmm3
4324 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4325 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm7, %zmm4
4326 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm17, %zmm0, %zmm4
4327 ; AVX512DQ-SLOW-NEXT:    vpblendd {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
4328 ; AVX512DQ-SLOW-NEXT:    vinserti64x4 $0, %ymm3, %zmm2, %zmm2
4329 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4330 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm25, %zmm2
4331 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm21, %zmm0, %zmm2
4332 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm29, %zmm3
4333 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm5, %zmm0, %zmm3
4334 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm2, %zmm3 {%k1}
4335 ; AVX512DQ-SLOW-NEXT:    vpermi2d %zmm28, %zmm11, %zmm0
4336 ; AVX512DQ-SLOW-NEXT:    vpermi2d %zmm6, %zmm8, %zmm1
4337 ; AVX512DQ-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4338 ; AVX512DQ-SLOW-NEXT:    vinserti64x4 $0, %ymm0, %zmm3, %zmm0
4339 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4340 ; AVX512DQ-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [1,9,17,25,1,9,17,25,1,9,17,25,1,9,17,25]
4341 ; AVX512DQ-SLOW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4342 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm12, %zmm0
4343 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm22, %zmm4, %zmm0
4344 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm26, %zmm1
4345 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm20, %zmm4, %zmm1
4346 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
4347 ; AVX512DQ-SLOW-NEXT:    vbroadcasti128 {{.*#+}} ymm2 = [1,9,17,25,1,9,17,25]
4348 ; AVX512DQ-SLOW-NEXT:    # ymm2 = mem[0,1,0,1]
4349 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm10, %zmm0
4350 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm9, %zmm2, %zmm0
4351 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm7, %zmm2
4352 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm17, %zmm4, %zmm2
4353 ; AVX512DQ-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
4354 ; AVX512DQ-SLOW-NEXT:    vinserti64x4 $0, %ymm0, %zmm1, %zmm0
4355 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4356 ; AVX512DQ-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [2,10,18,26,2,10,18,26,2,10,18,26,2,10,18,26]
4357 ; AVX512DQ-SLOW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4358 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm12, %zmm1
4359 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm22, %zmm0, %zmm1
4360 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4361 ; AVX512DQ-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm2 = [3,11,19,27,3,11,19,27,3,11,19,27,3,11,19,27]
4362 ; AVX512DQ-SLOW-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4363 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm12, %zmm1
4364 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm22, %zmm2, %zmm1
4365 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm2, %zmm3
4366 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4367 ; AVX512DQ-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [4,12,20,28,4,12,20,28,4,12,20,28,4,12,20,28]
4368 ; AVX512DQ-SLOW-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4369 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm12, %zmm2
4370 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm22, %zmm10, %zmm2
4371 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4372 ; AVX512DQ-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm15 = [5,13,21,29,5,13,21,29,5,13,21,29,5,13,21,29]
4373 ; AVX512DQ-SLOW-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4374 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm12, %zmm1
4375 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm22, %zmm15, %zmm1
4376 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4377 ; AVX512DQ-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm13 = [6,14,22,30,6,14,22,30,6,14,22,30,6,14,22,30]
4378 ; AVX512DQ-SLOW-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4379 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm12, %zmm1
4380 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm22, %zmm13, %zmm1
4381 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4382 ; AVX512DQ-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm1 = [7,15,23,31,7,15,23,31,7,15,23,31,7,15,23,31]
4383 ; AVX512DQ-SLOW-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4384 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm22, %zmm1, %zmm12
4385 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4386 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm26, %zmm24
4387 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm20, %zmm0, %zmm24
4388 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm26, %zmm27
4389 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm20, %zmm3, %zmm27
4390 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm26, %zmm31
4391 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm20, %zmm10, %zmm31
4392 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm26, %zmm30
4393 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm20, %zmm15, %zmm30
4394 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm26, %zmm22
4395 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm20, %zmm13, %zmm22
4396 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm20, %zmm1, %zmm26
4397 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm7, %zmm8
4398 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm17, %zmm0, %zmm8
4399 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm7, %zmm12
4400 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm17, %zmm3, %zmm12
4401 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm7, %zmm6
4402 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm17, %zmm10, %zmm6
4403 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm6, (%rsp) # 64-byte Spill
4404 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm7, %zmm6
4405 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm17, %zmm15, %zmm6
4406 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4407 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm7, %zmm6
4408 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm17, %zmm13, %zmm6
4409 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4410 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm17, %zmm1, %zmm7
4411 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4412 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm25, %zmm18
4413 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm21, %zmm4, %zmm18
4414 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm25, %zmm19
4415 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm21, %zmm0, %zmm19
4416 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm25, %zmm23
4417 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm3, %zmm6
4418 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm21, %zmm3, %zmm23
4419 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm25, %zmm16
4420 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm21, %zmm10, %zmm16
4421 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm25, %zmm20
4422 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm21, %zmm15, %zmm20
4423 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm25, %zmm17
4424 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm21, %zmm13, %zmm17
4425 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm21, %zmm1, %zmm25
4426 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm29, %zmm9
4427 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm5, %zmm4, %zmm9
4428 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm29, %zmm11
4429 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm5, %zmm0, %zmm11
4430 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm0, %zmm3
4431 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm29, %zmm14
4432 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm5, %zmm6, %zmm14
4433 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm29, %zmm21
4434 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm5, %zmm10, %zmm21
4435 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm29, %zmm7
4436 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm15, %zmm2
4437 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm5, %zmm15, %zmm7
4438 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm29, %zmm15
4439 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm5, %zmm13, %zmm15
4440 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm5, %zmm1, %zmm29
4441 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4442 ; AVX512DQ-SLOW-NEXT:    vpermi2d %zmm28, %zmm0, %zmm4
4443 ; AVX512DQ-SLOW-NEXT:    vpermi2d %zmm28, %zmm0, %zmm3
4444 ; AVX512DQ-SLOW-NEXT:    vpermi2d %zmm28, %zmm0, %zmm6
4445 ; AVX512DQ-SLOW-NEXT:    vpermi2d %zmm28, %zmm0, %zmm10
4446 ; AVX512DQ-SLOW-NEXT:    vpermi2d %zmm28, %zmm0, %zmm2
4447 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4448 ; AVX512DQ-SLOW-NEXT:    vpermi2d %zmm28, %zmm0, %zmm13
4449 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm28, %zmm1, %zmm0
4450 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4451 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm18, %zmm9 {%k1}
4452 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
4453 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
4454 ; AVX512DQ-SLOW-NEXT:    vbroadcasti128 {{.*#+}} ymm0 = [1,9,17,25,1,9,17,25]
4455 ; AVX512DQ-SLOW-NEXT:    # ymm0 = mem[0,1,0,1]
4456 ; AVX512DQ-SLOW-NEXT:    vpermi2d %zmm28, %zmm2, %zmm0
4457 ; AVX512DQ-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm4[0,1,2,3],ymm0[4,5,6,7]
4458 ; AVX512DQ-SLOW-NEXT:    vinserti64x4 $0, %ymm0, %zmm9, %zmm18
4459 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4460 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm0, %zmm24 {%k1}
4461 ; AVX512DQ-SLOW-NEXT:    vbroadcasti128 {{.*#+}} ymm9 = [2,10,18,26,2,10,18,26]
4462 ; AVX512DQ-SLOW-NEXT:    # ymm9 = mem[0,1,0,1]
4463 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4464 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm0
4465 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
4466 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm5, %zmm9, %zmm0
4467 ; AVX512DQ-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm8[0,1,2,3],ymm0[4,5,6,7]
4468 ; AVX512DQ-SLOW-NEXT:    vinserti64x4 $0, %ymm0, %zmm24, %zmm24
4469 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm19, %zmm11 {%k1}
4470 ; AVX512DQ-SLOW-NEXT:    vpermi2d %zmm28, %zmm2, %zmm9
4471 ; AVX512DQ-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm9[4,5,6,7]
4472 ; AVX512DQ-SLOW-NEXT:    vinserti64x4 $0, %ymm1, %zmm11, %zmm1
4473 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4474 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm0, %zmm27 {%k1}
4475 ; AVX512DQ-SLOW-NEXT:    vbroadcasti128 {{.*#+}} ymm3 = [3,11,19,27,3,11,19,27]
4476 ; AVX512DQ-SLOW-NEXT:    # ymm3 = mem[0,1,0,1]
4477 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm0
4478 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm9
4479 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm5, %zmm3, %zmm9
4480 ; AVX512DQ-SLOW-NEXT:    vpblendd {{.*#+}} ymm4 = ymm12[0,1,2,3],ymm9[4,5,6,7]
4481 ; AVX512DQ-SLOW-NEXT:    vinserti64x4 $0, %ymm4, %zmm27, %zmm4
4482 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm23, %zmm14 {%k1}
4483 ; AVX512DQ-SLOW-NEXT:    vpermi2d %zmm28, %zmm2, %zmm3
4484 ; AVX512DQ-SLOW-NEXT:    vpblendd {{.*#+}} ymm3 = ymm6[0,1,2,3],ymm3[4,5,6,7]
4485 ; AVX512DQ-SLOW-NEXT:    vinserti64x4 $0, %ymm3, %zmm14, %zmm3
4486 ; AVX512DQ-SLOW-NEXT:    vbroadcasti128 {{.*#+}} ymm6 = [4,12,20,28,4,12,20,28]
4487 ; AVX512DQ-SLOW-NEXT:    # ymm6 = mem[0,1,0,1]
4488 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm0, %zmm8
4489 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm5, %zmm6, %zmm8
4490 ; AVX512DQ-SLOW-NEXT:    vbroadcasti128 {{.*#+}} ymm9 = [5,13,21,29,5,13,21,29]
4491 ; AVX512DQ-SLOW-NEXT:    # ymm9 = mem[0,1,0,1]
4492 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm0, %zmm11
4493 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm5, %zmm9, %zmm11
4494 ; AVX512DQ-SLOW-NEXT:    vbroadcasti128 {{.*#+}} ymm12 = [6,14,22,30,6,14,22,30]
4495 ; AVX512DQ-SLOW-NEXT:    # ymm12 = mem[0,1,0,1]
4496 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm0, %zmm14
4497 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm5, %zmm12, %zmm14
4498 ; AVX512DQ-SLOW-NEXT:    vbroadcasti64x2 {{.*#+}} ymm19 = [7,15,23,31,7,15,23,31]
4499 ; AVX512DQ-SLOW-NEXT:    # ymm19 = mem[0,1,0,1]
4500 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm5, %zmm19, %zmm0
4501 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm0, %zmm5
4502 ; AVX512DQ-SLOW-NEXT:    vpermi2d %zmm28, %zmm2, %zmm6
4503 ; AVX512DQ-SLOW-NEXT:    vpermi2d %zmm28, %zmm2, %zmm9
4504 ; AVX512DQ-SLOW-NEXT:    vpermi2d %zmm28, %zmm2, %zmm12
4505 ; AVX512DQ-SLOW-NEXT:    vpermt2d %zmm28, %zmm19, %zmm2
4506 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm2, %zmm0
4507 ; AVX512DQ-SLOW-NEXT:    vpblendd $15, (%rsp), %ymm8, %ymm8 # 32-byte Folded Reload
4508 ; AVX512DQ-SLOW-NEXT:    # ymm8 = mem[0,1,2,3],ymm8[4,5,6,7]
4509 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
4510 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm2, %zmm31 {%k1}
4511 ; AVX512DQ-SLOW-NEXT:    vinserti64x4 $0, %ymm8, %zmm31, %zmm8
4512 ; AVX512DQ-SLOW-NEXT:    vpblendd {{.*#+}} ymm6 = ymm10[0,1,2,3],ymm6[4,5,6,7]
4513 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm16, %zmm21 {%k1}
4514 ; AVX512DQ-SLOW-NEXT:    vinserti64x4 $0, %ymm6, %zmm21, %zmm6
4515 ; AVX512DQ-SLOW-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm10 # 32-byte Folded Reload
4516 ; AVX512DQ-SLOW-NEXT:    # ymm10 = mem[0,1,2,3],ymm11[4,5,6,7]
4517 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
4518 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm2, %zmm30 {%k1}
4519 ; AVX512DQ-SLOW-NEXT:    vinserti64x4 $0, %ymm10, %zmm30, %zmm10
4520 ; AVX512DQ-SLOW-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm9 # 32-byte Folded Reload
4521 ; AVX512DQ-SLOW-NEXT:    # ymm9 = mem[0,1,2,3],ymm9[4,5,6,7]
4522 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm20, %zmm7 {%k1}
4523 ; AVX512DQ-SLOW-NEXT:    vinserti64x4 $0, %ymm9, %zmm7, %zmm7
4524 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
4525 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm2, %zmm22 {%k1}
4526 ; AVX512DQ-SLOW-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm9 # 32-byte Folded Reload
4527 ; AVX512DQ-SLOW-NEXT:    # ymm9 = mem[0,1,2,3],ymm14[4,5,6,7]
4528 ; AVX512DQ-SLOW-NEXT:    vinserti64x4 $0, %ymm9, %zmm22, %zmm9
4529 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm17, %zmm15 {%k1}
4530 ; AVX512DQ-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm13[0,1,2,3],ymm12[4,5,6,7]
4531 ; AVX512DQ-SLOW-NEXT:    vinserti64x4 $0, %ymm2, %zmm15, %zmm2
4532 ; AVX512DQ-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
4533 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm11, %zmm26 {%k1}
4534 ; AVX512DQ-SLOW-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm11 # 32-byte Folded Reload
4535 ; AVX512DQ-SLOW-NEXT:    # ymm11 = mem[0,1,2,3],ymm5[4,5,6,7]
4536 ; AVX512DQ-SLOW-NEXT:    vinserti64x4 $0, %ymm11, %zmm26, %zmm5
4537 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm25, %zmm29 {%k1}
4538 ; AVX512DQ-SLOW-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm11 # 32-byte Folded Reload
4539 ; AVX512DQ-SLOW-NEXT:    # ymm11 = mem[0,1,2,3],ymm0[4,5,6,7]
4540 ; AVX512DQ-SLOW-NEXT:    vinserti64x4 $0, %ymm11, %zmm29, %zmm11
4541 ; AVX512DQ-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4542 ; AVX512DQ-SLOW-NEXT:    vmovaps %zmm0, 64(%rsi)
4543 ; AVX512DQ-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4544 ; AVX512DQ-SLOW-NEXT:    vmovaps %zmm0, (%rsi)
4545 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm18, 64(%rdx)
4546 ; AVX512DQ-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4547 ; AVX512DQ-SLOW-NEXT:    vmovaps %zmm0, (%rdx)
4548 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm1, 64(%rcx)
4549 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm24, (%rcx)
4550 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm3, 64(%r8)
4551 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm4, (%r8)
4552 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm6, 64(%r9)
4553 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm8, (%r9)
4554 ; AVX512DQ-SLOW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
4555 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm7, 64(%rax)
4556 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm10, (%rax)
4557 ; AVX512DQ-SLOW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
4558 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm2, 64(%rax)
4559 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm9, (%rax)
4560 ; AVX512DQ-SLOW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
4561 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm11, 64(%rax)
4562 ; AVX512DQ-SLOW-NEXT:    vmovdqa64 %zmm5, (%rax)
4563 ; AVX512DQ-SLOW-NEXT:    addq $1096, %rsp # imm = 0x448
4564 ; AVX512DQ-SLOW-NEXT:    vzeroupper
4565 ; AVX512DQ-SLOW-NEXT:    retq
4567 ; AVX512DQ-FAST-LABEL: load_i32_stride8_vf32:
4568 ; AVX512DQ-FAST:       # %bb.0:
4569 ; AVX512DQ-FAST-NEXT:    subq $1096, %rsp # imm = 0x448
4570 ; AVX512DQ-FAST-NEXT:    vmovdqa64 704(%rdi), %zmm6
4571 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4572 ; AVX512DQ-FAST-NEXT:    vmovdqa64 640(%rdi), %zmm8
4573 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4574 ; AVX512DQ-FAST-NEXT:    vmovdqa64 576(%rdi), %zmm28
4575 ; AVX512DQ-FAST-NEXT:    vmovdqa64 512(%rdi), %zmm11
4576 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4577 ; AVX512DQ-FAST-NEXT:    vmovdqa64 832(%rdi), %zmm5
4578 ; AVX512DQ-FAST-NEXT:    vmovdqa64 768(%rdi), %zmm29
4579 ; AVX512DQ-FAST-NEXT:    vmovdqa64 960(%rdi), %zmm21
4580 ; AVX512DQ-FAST-NEXT:    vmovdqa64 896(%rdi), %zmm25
4581 ; AVX512DQ-FAST-NEXT:    vmovdqa64 (%rdi), %zmm7
4582 ; AVX512DQ-FAST-NEXT:    vmovdqa64 64(%rdi), %zmm17
4583 ; AVX512DQ-FAST-NEXT:    vmovdqa64 128(%rdi), %zmm4
4584 ; AVX512DQ-FAST-NEXT:    vmovdqa64 192(%rdi), %zmm9
4585 ; AVX512DQ-FAST-NEXT:    vmovdqa64 320(%rdi), %zmm20
4586 ; AVX512DQ-FAST-NEXT:    vmovdqa64 256(%rdi), %zmm26
4587 ; AVX512DQ-FAST-NEXT:    vmovdqa64 448(%rdi), %zmm22
4588 ; AVX512DQ-FAST-NEXT:    vmovdqa64 384(%rdi), %zmm2
4589 ; AVX512DQ-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [0,8,16,24,0,8,16,24,0,8,16,24,0,8,16,24]
4590 ; AVX512DQ-FAST-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4591 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm2, %zmm1
4592 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm2, %zmm12
4593 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm22, %zmm0, %zmm1
4594 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm26, %zmm2
4595 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm20, %zmm0, %zmm2
4596 ; AVX512DQ-FAST-NEXT:    movb $-64, %al
4597 ; AVX512DQ-FAST-NEXT:    kmovw %eax, %k1
4598 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm1, %zmm2 {%k1}
4599 ; AVX512DQ-FAST-NEXT:    vbroadcasti128 {{.*#+}} ymm1 = [0,8,16,24,0,8,16,24]
4600 ; AVX512DQ-FAST-NEXT:    # ymm1 = mem[0,1,0,1]
4601 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm4, %zmm3
4602 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm4, %zmm10
4603 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4604 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm9, %zmm1, %zmm3
4605 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4606 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm7, %zmm4
4607 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm17, %zmm0, %zmm4
4608 ; AVX512DQ-FAST-NEXT:    vpblendd {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
4609 ; AVX512DQ-FAST-NEXT:    vinserti64x4 $0, %ymm3, %zmm2, %zmm2
4610 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4611 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm25, %zmm2
4612 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm21, %zmm0, %zmm2
4613 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm29, %zmm3
4614 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm5, %zmm0, %zmm3
4615 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm2, %zmm3 {%k1}
4616 ; AVX512DQ-FAST-NEXT:    vpermi2d %zmm28, %zmm11, %zmm0
4617 ; AVX512DQ-FAST-NEXT:    vpermi2d %zmm6, %zmm8, %zmm1
4618 ; AVX512DQ-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4619 ; AVX512DQ-FAST-NEXT:    vinserti64x4 $0, %ymm0, %zmm3, %zmm0
4620 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4621 ; AVX512DQ-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [1,9,17,25,1,9,17,25,1,9,17,25,1,9,17,25]
4622 ; AVX512DQ-FAST-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4623 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm12, %zmm0
4624 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm22, %zmm4, %zmm0
4625 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm26, %zmm1
4626 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm20, %zmm4, %zmm1
4627 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
4628 ; AVX512DQ-FAST-NEXT:    vbroadcasti128 {{.*#+}} ymm2 = [1,9,17,25,1,9,17,25]
4629 ; AVX512DQ-FAST-NEXT:    # ymm2 = mem[0,1,0,1]
4630 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm10, %zmm0
4631 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm9, %zmm2, %zmm0
4632 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm7, %zmm2
4633 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm17, %zmm4, %zmm2
4634 ; AVX512DQ-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
4635 ; AVX512DQ-FAST-NEXT:    vinserti64x4 $0, %ymm0, %zmm1, %zmm0
4636 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4637 ; AVX512DQ-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [2,10,18,26,2,10,18,26,2,10,18,26,2,10,18,26]
4638 ; AVX512DQ-FAST-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4639 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm12, %zmm1
4640 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm22, %zmm0, %zmm1
4641 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4642 ; AVX512DQ-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm2 = [3,11,19,27,3,11,19,27,3,11,19,27,3,11,19,27]
4643 ; AVX512DQ-FAST-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4644 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm12, %zmm1
4645 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm22, %zmm2, %zmm1
4646 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm2, %zmm3
4647 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4648 ; AVX512DQ-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [4,12,20,28,4,12,20,28,4,12,20,28,4,12,20,28]
4649 ; AVX512DQ-FAST-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4650 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm12, %zmm2
4651 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm22, %zmm10, %zmm2
4652 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4653 ; AVX512DQ-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm15 = [5,13,21,29,5,13,21,29,5,13,21,29,5,13,21,29]
4654 ; AVX512DQ-FAST-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4655 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm12, %zmm1
4656 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm22, %zmm15, %zmm1
4657 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4658 ; AVX512DQ-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm13 = [6,14,22,30,6,14,22,30,6,14,22,30,6,14,22,30]
4659 ; AVX512DQ-FAST-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4660 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm12, %zmm1
4661 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm22, %zmm13, %zmm1
4662 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4663 ; AVX512DQ-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm1 = [7,15,23,31,7,15,23,31,7,15,23,31,7,15,23,31]
4664 ; AVX512DQ-FAST-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4665 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm22, %zmm1, %zmm12
4666 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4667 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm26, %zmm24
4668 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm20, %zmm0, %zmm24
4669 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm26, %zmm27
4670 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm20, %zmm3, %zmm27
4671 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm26, %zmm31
4672 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm20, %zmm10, %zmm31
4673 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm26, %zmm30
4674 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm20, %zmm15, %zmm30
4675 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm26, %zmm22
4676 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm20, %zmm13, %zmm22
4677 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm20, %zmm1, %zmm26
4678 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm7, %zmm8
4679 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm17, %zmm0, %zmm8
4680 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm7, %zmm12
4681 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm17, %zmm3, %zmm12
4682 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm7, %zmm6
4683 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm17, %zmm10, %zmm6
4684 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm6, (%rsp) # 64-byte Spill
4685 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm7, %zmm6
4686 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm17, %zmm15, %zmm6
4687 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4688 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm7, %zmm6
4689 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm17, %zmm13, %zmm6
4690 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4691 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm17, %zmm1, %zmm7
4692 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4693 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm25, %zmm18
4694 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm21, %zmm4, %zmm18
4695 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm25, %zmm19
4696 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm21, %zmm0, %zmm19
4697 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm25, %zmm23
4698 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm3, %zmm6
4699 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm21, %zmm3, %zmm23
4700 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm25, %zmm16
4701 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm21, %zmm10, %zmm16
4702 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm25, %zmm20
4703 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm21, %zmm15, %zmm20
4704 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm25, %zmm17
4705 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm21, %zmm13, %zmm17
4706 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm21, %zmm1, %zmm25
4707 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm29, %zmm9
4708 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm5, %zmm4, %zmm9
4709 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm29, %zmm11
4710 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm5, %zmm0, %zmm11
4711 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm0, %zmm3
4712 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm29, %zmm14
4713 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm5, %zmm6, %zmm14
4714 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm29, %zmm21
4715 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm5, %zmm10, %zmm21
4716 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm29, %zmm7
4717 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm15, %zmm2
4718 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm5, %zmm15, %zmm7
4719 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm29, %zmm15
4720 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm5, %zmm13, %zmm15
4721 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm5, %zmm1, %zmm29
4722 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4723 ; AVX512DQ-FAST-NEXT:    vpermi2d %zmm28, %zmm0, %zmm4
4724 ; AVX512DQ-FAST-NEXT:    vpermi2d %zmm28, %zmm0, %zmm3
4725 ; AVX512DQ-FAST-NEXT:    vpermi2d %zmm28, %zmm0, %zmm6
4726 ; AVX512DQ-FAST-NEXT:    vpermi2d %zmm28, %zmm0, %zmm10
4727 ; AVX512DQ-FAST-NEXT:    vpermi2d %zmm28, %zmm0, %zmm2
4728 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4729 ; AVX512DQ-FAST-NEXT:    vpermi2d %zmm28, %zmm0, %zmm13
4730 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm28, %zmm1, %zmm0
4731 ; AVX512DQ-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4732 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm18, %zmm9 {%k1}
4733 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
4734 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
4735 ; AVX512DQ-FAST-NEXT:    vbroadcasti128 {{.*#+}} ymm0 = [1,9,17,25,1,9,17,25]
4736 ; AVX512DQ-FAST-NEXT:    # ymm0 = mem[0,1,0,1]
4737 ; AVX512DQ-FAST-NEXT:    vpermi2d %zmm28, %zmm2, %zmm0
4738 ; AVX512DQ-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm4[0,1,2,3],ymm0[4,5,6,7]
4739 ; AVX512DQ-FAST-NEXT:    vinserti64x4 $0, %ymm0, %zmm9, %zmm18
4740 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4741 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm0, %zmm24 {%k1}
4742 ; AVX512DQ-FAST-NEXT:    vbroadcasti128 {{.*#+}} ymm9 = [2,10,18,26,2,10,18,26]
4743 ; AVX512DQ-FAST-NEXT:    # ymm9 = mem[0,1,0,1]
4744 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
4745 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm4, %zmm0
4746 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
4747 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm5, %zmm9, %zmm0
4748 ; AVX512DQ-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm8[0,1,2,3],ymm0[4,5,6,7]
4749 ; AVX512DQ-FAST-NEXT:    vinserti64x4 $0, %ymm0, %zmm24, %zmm24
4750 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm19, %zmm11 {%k1}
4751 ; AVX512DQ-FAST-NEXT:    vpermi2d %zmm28, %zmm2, %zmm9
4752 ; AVX512DQ-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm9[4,5,6,7]
4753 ; AVX512DQ-FAST-NEXT:    vinserti64x4 $0, %ymm1, %zmm11, %zmm1
4754 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4755 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm0, %zmm27 {%k1}
4756 ; AVX512DQ-FAST-NEXT:    vbroadcasti128 {{.*#+}} ymm3 = [3,11,19,27,3,11,19,27]
4757 ; AVX512DQ-FAST-NEXT:    # ymm3 = mem[0,1,0,1]
4758 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm4, %zmm0
4759 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm4, %zmm9
4760 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm5, %zmm3, %zmm9
4761 ; AVX512DQ-FAST-NEXT:    vpblendd {{.*#+}} ymm4 = ymm12[0,1,2,3],ymm9[4,5,6,7]
4762 ; AVX512DQ-FAST-NEXT:    vinserti64x4 $0, %ymm4, %zmm27, %zmm4
4763 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm23, %zmm14 {%k1}
4764 ; AVX512DQ-FAST-NEXT:    vpermi2d %zmm28, %zmm2, %zmm3
4765 ; AVX512DQ-FAST-NEXT:    vpblendd {{.*#+}} ymm3 = ymm6[0,1,2,3],ymm3[4,5,6,7]
4766 ; AVX512DQ-FAST-NEXT:    vinserti64x4 $0, %ymm3, %zmm14, %zmm3
4767 ; AVX512DQ-FAST-NEXT:    vbroadcasti128 {{.*#+}} ymm6 = [4,12,20,28,4,12,20,28]
4768 ; AVX512DQ-FAST-NEXT:    # ymm6 = mem[0,1,0,1]
4769 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm0, %zmm8
4770 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm5, %zmm6, %zmm8
4771 ; AVX512DQ-FAST-NEXT:    vbroadcasti128 {{.*#+}} ymm9 = [5,13,21,29,5,13,21,29]
4772 ; AVX512DQ-FAST-NEXT:    # ymm9 = mem[0,1,0,1]
4773 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm0, %zmm11
4774 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm5, %zmm9, %zmm11
4775 ; AVX512DQ-FAST-NEXT:    vbroadcasti128 {{.*#+}} ymm12 = [6,14,22,30,6,14,22,30]
4776 ; AVX512DQ-FAST-NEXT:    # ymm12 = mem[0,1,0,1]
4777 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm0, %zmm14
4778 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm5, %zmm12, %zmm14
4779 ; AVX512DQ-FAST-NEXT:    vbroadcasti64x2 {{.*#+}} ymm19 = [7,15,23,31,7,15,23,31]
4780 ; AVX512DQ-FAST-NEXT:    # ymm19 = mem[0,1,0,1]
4781 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm5, %zmm19, %zmm0
4782 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm0, %zmm5
4783 ; AVX512DQ-FAST-NEXT:    vpermi2d %zmm28, %zmm2, %zmm6
4784 ; AVX512DQ-FAST-NEXT:    vpermi2d %zmm28, %zmm2, %zmm9
4785 ; AVX512DQ-FAST-NEXT:    vpermi2d %zmm28, %zmm2, %zmm12
4786 ; AVX512DQ-FAST-NEXT:    vpermt2d %zmm28, %zmm19, %zmm2
4787 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm2, %zmm0
4788 ; AVX512DQ-FAST-NEXT:    vpblendd $15, (%rsp), %ymm8, %ymm8 # 32-byte Folded Reload
4789 ; AVX512DQ-FAST-NEXT:    # ymm8 = mem[0,1,2,3],ymm8[4,5,6,7]
4790 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
4791 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm2, %zmm31 {%k1}
4792 ; AVX512DQ-FAST-NEXT:    vinserti64x4 $0, %ymm8, %zmm31, %zmm8
4793 ; AVX512DQ-FAST-NEXT:    vpblendd {{.*#+}} ymm6 = ymm10[0,1,2,3],ymm6[4,5,6,7]
4794 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm16, %zmm21 {%k1}
4795 ; AVX512DQ-FAST-NEXT:    vinserti64x4 $0, %ymm6, %zmm21, %zmm6
4796 ; AVX512DQ-FAST-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm10 # 32-byte Folded Reload
4797 ; AVX512DQ-FAST-NEXT:    # ymm10 = mem[0,1,2,3],ymm11[4,5,6,7]
4798 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
4799 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm2, %zmm30 {%k1}
4800 ; AVX512DQ-FAST-NEXT:    vinserti64x4 $0, %ymm10, %zmm30, %zmm10
4801 ; AVX512DQ-FAST-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm9 # 32-byte Folded Reload
4802 ; AVX512DQ-FAST-NEXT:    # ymm9 = mem[0,1,2,3],ymm9[4,5,6,7]
4803 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm20, %zmm7 {%k1}
4804 ; AVX512DQ-FAST-NEXT:    vinserti64x4 $0, %ymm9, %zmm7, %zmm7
4805 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
4806 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm2, %zmm22 {%k1}
4807 ; AVX512DQ-FAST-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm9 # 32-byte Folded Reload
4808 ; AVX512DQ-FAST-NEXT:    # ymm9 = mem[0,1,2,3],ymm14[4,5,6,7]
4809 ; AVX512DQ-FAST-NEXT:    vinserti64x4 $0, %ymm9, %zmm22, %zmm9
4810 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm17, %zmm15 {%k1}
4811 ; AVX512DQ-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm13[0,1,2,3],ymm12[4,5,6,7]
4812 ; AVX512DQ-FAST-NEXT:    vinserti64x4 $0, %ymm2, %zmm15, %zmm2
4813 ; AVX512DQ-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
4814 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm11, %zmm26 {%k1}
4815 ; AVX512DQ-FAST-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm11 # 32-byte Folded Reload
4816 ; AVX512DQ-FAST-NEXT:    # ymm11 = mem[0,1,2,3],ymm5[4,5,6,7]
4817 ; AVX512DQ-FAST-NEXT:    vinserti64x4 $0, %ymm11, %zmm26, %zmm5
4818 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm25, %zmm29 {%k1}
4819 ; AVX512DQ-FAST-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm11 # 32-byte Folded Reload
4820 ; AVX512DQ-FAST-NEXT:    # ymm11 = mem[0,1,2,3],ymm0[4,5,6,7]
4821 ; AVX512DQ-FAST-NEXT:    vinserti64x4 $0, %ymm11, %zmm29, %zmm11
4822 ; AVX512DQ-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4823 ; AVX512DQ-FAST-NEXT:    vmovaps %zmm0, 64(%rsi)
4824 ; AVX512DQ-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4825 ; AVX512DQ-FAST-NEXT:    vmovaps %zmm0, (%rsi)
4826 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm18, 64(%rdx)
4827 ; AVX512DQ-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4828 ; AVX512DQ-FAST-NEXT:    vmovaps %zmm0, (%rdx)
4829 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm1, 64(%rcx)
4830 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm24, (%rcx)
4831 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm3, 64(%r8)
4832 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm4, (%r8)
4833 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm6, 64(%r9)
4834 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm8, (%r9)
4835 ; AVX512DQ-FAST-NEXT:    movq {{[0-9]+}}(%rsp), %rax
4836 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm7, 64(%rax)
4837 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm10, (%rax)
4838 ; AVX512DQ-FAST-NEXT:    movq {{[0-9]+}}(%rsp), %rax
4839 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm2, 64(%rax)
4840 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm9, (%rax)
4841 ; AVX512DQ-FAST-NEXT:    movq {{[0-9]+}}(%rsp), %rax
4842 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm11, 64(%rax)
4843 ; AVX512DQ-FAST-NEXT:    vmovdqa64 %zmm5, (%rax)
4844 ; AVX512DQ-FAST-NEXT:    addq $1096, %rsp # imm = 0x448
4845 ; AVX512DQ-FAST-NEXT:    vzeroupper
4846 ; AVX512DQ-FAST-NEXT:    retq
4848 ; AVX512BW-ONLY-SLOW-LABEL: load_i32_stride8_vf32:
4849 ; AVX512BW-ONLY-SLOW:       # %bb.0:
4850 ; AVX512BW-ONLY-SLOW-NEXT:    subq $1096, %rsp # imm = 0x448
4851 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 704(%rdi), %zmm6
4852 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4853 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 640(%rdi), %zmm8
4854 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4855 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 576(%rdi), %zmm28
4856 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 512(%rdi), %zmm11
4857 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4858 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 832(%rdi), %zmm5
4859 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 768(%rdi), %zmm29
4860 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 960(%rdi), %zmm21
4861 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 896(%rdi), %zmm25
4862 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 (%rdi), %zmm7
4863 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 64(%rdi), %zmm17
4864 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 128(%rdi), %zmm4
4865 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 192(%rdi), %zmm9
4866 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 320(%rdi), %zmm20
4867 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 256(%rdi), %zmm26
4868 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 448(%rdi), %zmm22
4869 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 384(%rdi), %zmm2
4870 ; AVX512BW-ONLY-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [0,8,16,24,0,8,16,24,0,8,16,24,0,8,16,24]
4871 ; AVX512BW-ONLY-SLOW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4872 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm2, %zmm1
4873 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm2, %zmm12
4874 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm22, %zmm0, %zmm1
4875 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm26, %zmm2
4876 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm20, %zmm0, %zmm2
4877 ; AVX512BW-ONLY-SLOW-NEXT:    movb $-64, %al
4878 ; AVX512BW-ONLY-SLOW-NEXT:    kmovd %eax, %k1
4879 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm1, %zmm2 {%k1}
4880 ; AVX512BW-ONLY-SLOW-NEXT:    vbroadcasti128 {{.*#+}} ymm1 = [0,8,16,24,0,8,16,24]
4881 ; AVX512BW-ONLY-SLOW-NEXT:    # ymm1 = mem[0,1,0,1]
4882 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm3
4883 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm10
4884 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4885 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm9, %zmm1, %zmm3
4886 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4887 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm7, %zmm4
4888 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm17, %zmm0, %zmm4
4889 ; AVX512BW-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
4890 ; AVX512BW-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm3, %zmm2, %zmm2
4891 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4892 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm25, %zmm2
4893 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm21, %zmm0, %zmm2
4894 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm29, %zmm3
4895 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm5, %zmm0, %zmm3
4896 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm2, %zmm3 {%k1}
4897 ; AVX512BW-ONLY-SLOW-NEXT:    vpermi2d %zmm28, %zmm11, %zmm0
4898 ; AVX512BW-ONLY-SLOW-NEXT:    vpermi2d %zmm6, %zmm8, %zmm1
4899 ; AVX512BW-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4900 ; AVX512BW-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm0, %zmm3, %zmm0
4901 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4902 ; AVX512BW-ONLY-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [1,9,17,25,1,9,17,25,1,9,17,25,1,9,17,25]
4903 ; AVX512BW-ONLY-SLOW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4904 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm12, %zmm0
4905 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm22, %zmm4, %zmm0
4906 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm26, %zmm1
4907 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm20, %zmm4, %zmm1
4908 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
4909 ; AVX512BW-ONLY-SLOW-NEXT:    vbroadcasti128 {{.*#+}} ymm2 = [1,9,17,25,1,9,17,25]
4910 ; AVX512BW-ONLY-SLOW-NEXT:    # ymm2 = mem[0,1,0,1]
4911 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm10, %zmm0
4912 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm9, %zmm2, %zmm0
4913 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm7, %zmm2
4914 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm17, %zmm4, %zmm2
4915 ; AVX512BW-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
4916 ; AVX512BW-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm0, %zmm1, %zmm0
4917 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4918 ; AVX512BW-ONLY-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [2,10,18,26,2,10,18,26,2,10,18,26,2,10,18,26]
4919 ; AVX512BW-ONLY-SLOW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4920 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm12, %zmm1
4921 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm22, %zmm0, %zmm1
4922 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4923 ; AVX512BW-ONLY-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm2 = [3,11,19,27,3,11,19,27,3,11,19,27,3,11,19,27]
4924 ; AVX512BW-ONLY-SLOW-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4925 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm12, %zmm1
4926 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm22, %zmm2, %zmm1
4927 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm2, %zmm3
4928 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4929 ; AVX512BW-ONLY-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [4,12,20,28,4,12,20,28,4,12,20,28,4,12,20,28]
4930 ; AVX512BW-ONLY-SLOW-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4931 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm12, %zmm2
4932 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm22, %zmm10, %zmm2
4933 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4934 ; AVX512BW-ONLY-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm15 = [5,13,21,29,5,13,21,29,5,13,21,29,5,13,21,29]
4935 ; AVX512BW-ONLY-SLOW-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4936 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm12, %zmm1
4937 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm22, %zmm15, %zmm1
4938 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4939 ; AVX512BW-ONLY-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm13 = [6,14,22,30,6,14,22,30,6,14,22,30,6,14,22,30]
4940 ; AVX512BW-ONLY-SLOW-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4941 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm12, %zmm1
4942 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm22, %zmm13, %zmm1
4943 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4944 ; AVX512BW-ONLY-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm1 = [7,15,23,31,7,15,23,31,7,15,23,31,7,15,23,31]
4945 ; AVX512BW-ONLY-SLOW-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4946 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm22, %zmm1, %zmm12
4947 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4948 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm26, %zmm24
4949 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm20, %zmm0, %zmm24
4950 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm26, %zmm27
4951 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm20, %zmm3, %zmm27
4952 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm26, %zmm31
4953 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm20, %zmm10, %zmm31
4954 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm26, %zmm30
4955 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm20, %zmm15, %zmm30
4956 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm26, %zmm22
4957 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm20, %zmm13, %zmm22
4958 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm20, %zmm1, %zmm26
4959 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm7, %zmm8
4960 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm17, %zmm0, %zmm8
4961 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm7, %zmm12
4962 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm17, %zmm3, %zmm12
4963 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm7, %zmm6
4964 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm17, %zmm10, %zmm6
4965 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm6, (%rsp) # 64-byte Spill
4966 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm7, %zmm6
4967 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm17, %zmm15, %zmm6
4968 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4969 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm7, %zmm6
4970 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm17, %zmm13, %zmm6
4971 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4972 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm17, %zmm1, %zmm7
4973 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4974 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm25, %zmm18
4975 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm21, %zmm4, %zmm18
4976 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm25, %zmm19
4977 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm21, %zmm0, %zmm19
4978 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm25, %zmm23
4979 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm3, %zmm6
4980 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm21, %zmm3, %zmm23
4981 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm25, %zmm16
4982 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm21, %zmm10, %zmm16
4983 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm25, %zmm20
4984 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm21, %zmm15, %zmm20
4985 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm25, %zmm17
4986 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm21, %zmm13, %zmm17
4987 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm21, %zmm1, %zmm25
4988 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm29, %zmm9
4989 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm5, %zmm4, %zmm9
4990 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm29, %zmm11
4991 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm5, %zmm0, %zmm11
4992 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm0, %zmm3
4993 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm29, %zmm14
4994 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm5, %zmm6, %zmm14
4995 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm29, %zmm21
4996 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm5, %zmm10, %zmm21
4997 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm29, %zmm7
4998 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm15, %zmm2
4999 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm5, %zmm15, %zmm7
5000 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm29, %zmm15
5001 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm5, %zmm13, %zmm15
5002 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm5, %zmm1, %zmm29
5003 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5004 ; AVX512BW-ONLY-SLOW-NEXT:    vpermi2d %zmm28, %zmm0, %zmm4
5005 ; AVX512BW-ONLY-SLOW-NEXT:    vpermi2d %zmm28, %zmm0, %zmm3
5006 ; AVX512BW-ONLY-SLOW-NEXT:    vpermi2d %zmm28, %zmm0, %zmm6
5007 ; AVX512BW-ONLY-SLOW-NEXT:    vpermi2d %zmm28, %zmm0, %zmm10
5008 ; AVX512BW-ONLY-SLOW-NEXT:    vpermi2d %zmm28, %zmm0, %zmm2
5009 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5010 ; AVX512BW-ONLY-SLOW-NEXT:    vpermi2d %zmm28, %zmm0, %zmm13
5011 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm28, %zmm1, %zmm0
5012 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5013 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm18, %zmm9 {%k1}
5014 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
5015 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
5016 ; AVX512BW-ONLY-SLOW-NEXT:    vbroadcasti128 {{.*#+}} ymm0 = [1,9,17,25,1,9,17,25]
5017 ; AVX512BW-ONLY-SLOW-NEXT:    # ymm0 = mem[0,1,0,1]
5018 ; AVX512BW-ONLY-SLOW-NEXT:    vpermi2d %zmm28, %zmm2, %zmm0
5019 ; AVX512BW-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm4[0,1,2,3],ymm0[4,5,6,7]
5020 ; AVX512BW-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm0, %zmm9, %zmm18
5021 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5022 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm0, %zmm24 {%k1}
5023 ; AVX512BW-ONLY-SLOW-NEXT:    vbroadcasti128 {{.*#+}} ymm9 = [2,10,18,26,2,10,18,26]
5024 ; AVX512BW-ONLY-SLOW-NEXT:    # ymm9 = mem[0,1,0,1]
5025 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
5026 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm0
5027 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
5028 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm5, %zmm9, %zmm0
5029 ; AVX512BW-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm8[0,1,2,3],ymm0[4,5,6,7]
5030 ; AVX512BW-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm0, %zmm24, %zmm24
5031 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm19, %zmm11 {%k1}
5032 ; AVX512BW-ONLY-SLOW-NEXT:    vpermi2d %zmm28, %zmm2, %zmm9
5033 ; AVX512BW-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm9[4,5,6,7]
5034 ; AVX512BW-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm1, %zmm11, %zmm1
5035 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5036 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm0, %zmm27 {%k1}
5037 ; AVX512BW-ONLY-SLOW-NEXT:    vbroadcasti128 {{.*#+}} ymm3 = [3,11,19,27,3,11,19,27]
5038 ; AVX512BW-ONLY-SLOW-NEXT:    # ymm3 = mem[0,1,0,1]
5039 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm0
5040 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm9
5041 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm5, %zmm3, %zmm9
5042 ; AVX512BW-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} ymm4 = ymm12[0,1,2,3],ymm9[4,5,6,7]
5043 ; AVX512BW-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm4, %zmm27, %zmm4
5044 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm23, %zmm14 {%k1}
5045 ; AVX512BW-ONLY-SLOW-NEXT:    vpermi2d %zmm28, %zmm2, %zmm3
5046 ; AVX512BW-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} ymm3 = ymm6[0,1,2,3],ymm3[4,5,6,7]
5047 ; AVX512BW-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm3, %zmm14, %zmm3
5048 ; AVX512BW-ONLY-SLOW-NEXT:    vbroadcasti128 {{.*#+}} ymm6 = [4,12,20,28,4,12,20,28]
5049 ; AVX512BW-ONLY-SLOW-NEXT:    # ymm6 = mem[0,1,0,1]
5050 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm0, %zmm8
5051 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm5, %zmm6, %zmm8
5052 ; AVX512BW-ONLY-SLOW-NEXT:    vbroadcasti128 {{.*#+}} ymm9 = [5,13,21,29,5,13,21,29]
5053 ; AVX512BW-ONLY-SLOW-NEXT:    # ymm9 = mem[0,1,0,1]
5054 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm0, %zmm11
5055 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm5, %zmm9, %zmm11
5056 ; AVX512BW-ONLY-SLOW-NEXT:    vbroadcasti128 {{.*#+}} ymm12 = [6,14,22,30,6,14,22,30]
5057 ; AVX512BW-ONLY-SLOW-NEXT:    # ymm12 = mem[0,1,0,1]
5058 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm0, %zmm14
5059 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm5, %zmm12, %zmm14
5060 ; AVX512BW-ONLY-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} ymm19 = [7,15,23,31,7,15,23,31]
5061 ; AVX512BW-ONLY-SLOW-NEXT:    # ymm19 = mem[0,1,2,3,0,1,2,3]
5062 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm5, %zmm19, %zmm0
5063 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm0, %zmm5
5064 ; AVX512BW-ONLY-SLOW-NEXT:    vpermi2d %zmm28, %zmm2, %zmm6
5065 ; AVX512BW-ONLY-SLOW-NEXT:    vpermi2d %zmm28, %zmm2, %zmm9
5066 ; AVX512BW-ONLY-SLOW-NEXT:    vpermi2d %zmm28, %zmm2, %zmm12
5067 ; AVX512BW-ONLY-SLOW-NEXT:    vpermt2d %zmm28, %zmm19, %zmm2
5068 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm2, %zmm0
5069 ; AVX512BW-ONLY-SLOW-NEXT:    vpblendd $15, (%rsp), %ymm8, %ymm8 # 32-byte Folded Reload
5070 ; AVX512BW-ONLY-SLOW-NEXT:    # ymm8 = mem[0,1,2,3],ymm8[4,5,6,7]
5071 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
5072 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm2, %zmm31 {%k1}
5073 ; AVX512BW-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm8, %zmm31, %zmm8
5074 ; AVX512BW-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} ymm6 = ymm10[0,1,2,3],ymm6[4,5,6,7]
5075 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm16, %zmm21 {%k1}
5076 ; AVX512BW-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm6, %zmm21, %zmm6
5077 ; AVX512BW-ONLY-SLOW-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm10 # 32-byte Folded Reload
5078 ; AVX512BW-ONLY-SLOW-NEXT:    # ymm10 = mem[0,1,2,3],ymm11[4,5,6,7]
5079 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
5080 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm2, %zmm30 {%k1}
5081 ; AVX512BW-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm10, %zmm30, %zmm10
5082 ; AVX512BW-ONLY-SLOW-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm9 # 32-byte Folded Reload
5083 ; AVX512BW-ONLY-SLOW-NEXT:    # ymm9 = mem[0,1,2,3],ymm9[4,5,6,7]
5084 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm20, %zmm7 {%k1}
5085 ; AVX512BW-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm9, %zmm7, %zmm7
5086 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
5087 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm2, %zmm22 {%k1}
5088 ; AVX512BW-ONLY-SLOW-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm9 # 32-byte Folded Reload
5089 ; AVX512BW-ONLY-SLOW-NEXT:    # ymm9 = mem[0,1,2,3],ymm14[4,5,6,7]
5090 ; AVX512BW-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm9, %zmm22, %zmm9
5091 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm17, %zmm15 {%k1}
5092 ; AVX512BW-ONLY-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm13[0,1,2,3],ymm12[4,5,6,7]
5093 ; AVX512BW-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm2, %zmm15, %zmm2
5094 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
5095 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm11, %zmm26 {%k1}
5096 ; AVX512BW-ONLY-SLOW-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm11 # 32-byte Folded Reload
5097 ; AVX512BW-ONLY-SLOW-NEXT:    # ymm11 = mem[0,1,2,3],ymm5[4,5,6,7]
5098 ; AVX512BW-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm11, %zmm26, %zmm5
5099 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm25, %zmm29 {%k1}
5100 ; AVX512BW-ONLY-SLOW-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm11 # 32-byte Folded Reload
5101 ; AVX512BW-ONLY-SLOW-NEXT:    # ymm11 = mem[0,1,2,3],ymm0[4,5,6,7]
5102 ; AVX512BW-ONLY-SLOW-NEXT:    vinserti64x4 $0, %ymm11, %zmm29, %zmm11
5103 ; AVX512BW-ONLY-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5104 ; AVX512BW-ONLY-SLOW-NEXT:    vmovaps %zmm0, 64(%rsi)
5105 ; AVX512BW-ONLY-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5106 ; AVX512BW-ONLY-SLOW-NEXT:    vmovaps %zmm0, (%rsi)
5107 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm18, 64(%rdx)
5108 ; AVX512BW-ONLY-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5109 ; AVX512BW-ONLY-SLOW-NEXT:    vmovaps %zmm0, (%rdx)
5110 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm1, 64(%rcx)
5111 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm24, (%rcx)
5112 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm3, 64(%r8)
5113 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm4, (%r8)
5114 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm6, 64(%r9)
5115 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm8, (%r9)
5116 ; AVX512BW-ONLY-SLOW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
5117 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm7, 64(%rax)
5118 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm10, (%rax)
5119 ; AVX512BW-ONLY-SLOW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
5120 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm2, 64(%rax)
5121 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm9, (%rax)
5122 ; AVX512BW-ONLY-SLOW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
5123 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm11, 64(%rax)
5124 ; AVX512BW-ONLY-SLOW-NEXT:    vmovdqa64 %zmm5, (%rax)
5125 ; AVX512BW-ONLY-SLOW-NEXT:    addq $1096, %rsp # imm = 0x448
5126 ; AVX512BW-ONLY-SLOW-NEXT:    vzeroupper
5127 ; AVX512BW-ONLY-SLOW-NEXT:    retq
5129 ; AVX512BW-ONLY-FAST-LABEL: load_i32_stride8_vf32:
5130 ; AVX512BW-ONLY-FAST:       # %bb.0:
5131 ; AVX512BW-ONLY-FAST-NEXT:    subq $1096, %rsp # imm = 0x448
5132 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 704(%rdi), %zmm6
5133 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5134 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 640(%rdi), %zmm8
5135 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5136 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 576(%rdi), %zmm28
5137 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 512(%rdi), %zmm11
5138 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5139 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 832(%rdi), %zmm5
5140 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 768(%rdi), %zmm29
5141 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 960(%rdi), %zmm21
5142 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 896(%rdi), %zmm25
5143 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 (%rdi), %zmm7
5144 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 64(%rdi), %zmm17
5145 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 128(%rdi), %zmm4
5146 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 192(%rdi), %zmm9
5147 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 320(%rdi), %zmm20
5148 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 256(%rdi), %zmm26
5149 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 448(%rdi), %zmm22
5150 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 384(%rdi), %zmm2
5151 ; AVX512BW-ONLY-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [0,8,16,24,0,8,16,24,0,8,16,24,0,8,16,24]
5152 ; AVX512BW-ONLY-FAST-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5153 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm2, %zmm1
5154 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm2, %zmm12
5155 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm22, %zmm0, %zmm1
5156 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm26, %zmm2
5157 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm20, %zmm0, %zmm2
5158 ; AVX512BW-ONLY-FAST-NEXT:    movb $-64, %al
5159 ; AVX512BW-ONLY-FAST-NEXT:    kmovd %eax, %k1
5160 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm1, %zmm2 {%k1}
5161 ; AVX512BW-ONLY-FAST-NEXT:    vbroadcasti128 {{.*#+}} ymm1 = [0,8,16,24,0,8,16,24]
5162 ; AVX512BW-ONLY-FAST-NEXT:    # ymm1 = mem[0,1,0,1]
5163 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm4, %zmm3
5164 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm4, %zmm10
5165 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5166 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm9, %zmm1, %zmm3
5167 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5168 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm7, %zmm4
5169 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm17, %zmm0, %zmm4
5170 ; AVX512BW-ONLY-FAST-NEXT:    vpblendd {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
5171 ; AVX512BW-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm3, %zmm2, %zmm2
5172 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5173 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm25, %zmm2
5174 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm21, %zmm0, %zmm2
5175 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm29, %zmm3
5176 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm5, %zmm0, %zmm3
5177 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm2, %zmm3 {%k1}
5178 ; AVX512BW-ONLY-FAST-NEXT:    vpermi2d %zmm28, %zmm11, %zmm0
5179 ; AVX512BW-ONLY-FAST-NEXT:    vpermi2d %zmm6, %zmm8, %zmm1
5180 ; AVX512BW-ONLY-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
5181 ; AVX512BW-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm0, %zmm3, %zmm0
5182 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5183 ; AVX512BW-ONLY-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [1,9,17,25,1,9,17,25,1,9,17,25,1,9,17,25]
5184 ; AVX512BW-ONLY-FAST-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5185 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm12, %zmm0
5186 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm22, %zmm4, %zmm0
5187 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm26, %zmm1
5188 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm20, %zmm4, %zmm1
5189 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
5190 ; AVX512BW-ONLY-FAST-NEXT:    vbroadcasti128 {{.*#+}} ymm2 = [1,9,17,25,1,9,17,25]
5191 ; AVX512BW-ONLY-FAST-NEXT:    # ymm2 = mem[0,1,0,1]
5192 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm10, %zmm0
5193 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm9, %zmm2, %zmm0
5194 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm7, %zmm2
5195 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm17, %zmm4, %zmm2
5196 ; AVX512BW-ONLY-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
5197 ; AVX512BW-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm0, %zmm1, %zmm0
5198 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5199 ; AVX512BW-ONLY-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [2,10,18,26,2,10,18,26,2,10,18,26,2,10,18,26]
5200 ; AVX512BW-ONLY-FAST-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5201 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm12, %zmm1
5202 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm22, %zmm0, %zmm1
5203 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5204 ; AVX512BW-ONLY-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm2 = [3,11,19,27,3,11,19,27,3,11,19,27,3,11,19,27]
5205 ; AVX512BW-ONLY-FAST-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5206 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm12, %zmm1
5207 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm22, %zmm2, %zmm1
5208 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm2, %zmm3
5209 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5210 ; AVX512BW-ONLY-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [4,12,20,28,4,12,20,28,4,12,20,28,4,12,20,28]
5211 ; AVX512BW-ONLY-FAST-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5212 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm12, %zmm2
5213 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm22, %zmm10, %zmm2
5214 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5215 ; AVX512BW-ONLY-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm15 = [5,13,21,29,5,13,21,29,5,13,21,29,5,13,21,29]
5216 ; AVX512BW-ONLY-FAST-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5217 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm12, %zmm1
5218 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm22, %zmm15, %zmm1
5219 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5220 ; AVX512BW-ONLY-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm13 = [6,14,22,30,6,14,22,30,6,14,22,30,6,14,22,30]
5221 ; AVX512BW-ONLY-FAST-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5222 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm12, %zmm1
5223 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm22, %zmm13, %zmm1
5224 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5225 ; AVX512BW-ONLY-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm1 = [7,15,23,31,7,15,23,31,7,15,23,31,7,15,23,31]
5226 ; AVX512BW-ONLY-FAST-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5227 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm22, %zmm1, %zmm12
5228 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5229 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm26, %zmm24
5230 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm20, %zmm0, %zmm24
5231 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm26, %zmm27
5232 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm20, %zmm3, %zmm27
5233 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm26, %zmm31
5234 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm20, %zmm10, %zmm31
5235 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm26, %zmm30
5236 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm20, %zmm15, %zmm30
5237 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm26, %zmm22
5238 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm20, %zmm13, %zmm22
5239 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm20, %zmm1, %zmm26
5240 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm7, %zmm8
5241 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm17, %zmm0, %zmm8
5242 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm7, %zmm12
5243 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm17, %zmm3, %zmm12
5244 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm7, %zmm6
5245 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm17, %zmm10, %zmm6
5246 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm6, (%rsp) # 64-byte Spill
5247 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm7, %zmm6
5248 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm17, %zmm15, %zmm6
5249 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5250 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm7, %zmm6
5251 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm17, %zmm13, %zmm6
5252 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5253 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm17, %zmm1, %zmm7
5254 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5255 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm25, %zmm18
5256 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm21, %zmm4, %zmm18
5257 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm25, %zmm19
5258 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm21, %zmm0, %zmm19
5259 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm25, %zmm23
5260 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm3, %zmm6
5261 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm21, %zmm3, %zmm23
5262 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm25, %zmm16
5263 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm21, %zmm10, %zmm16
5264 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm25, %zmm20
5265 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm21, %zmm15, %zmm20
5266 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm25, %zmm17
5267 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm21, %zmm13, %zmm17
5268 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm21, %zmm1, %zmm25
5269 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm29, %zmm9
5270 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm5, %zmm4, %zmm9
5271 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm29, %zmm11
5272 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm5, %zmm0, %zmm11
5273 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm0, %zmm3
5274 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm29, %zmm14
5275 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm5, %zmm6, %zmm14
5276 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm29, %zmm21
5277 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm5, %zmm10, %zmm21
5278 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm29, %zmm7
5279 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm15, %zmm2
5280 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm5, %zmm15, %zmm7
5281 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm29, %zmm15
5282 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm5, %zmm13, %zmm15
5283 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm5, %zmm1, %zmm29
5284 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5285 ; AVX512BW-ONLY-FAST-NEXT:    vpermi2d %zmm28, %zmm0, %zmm4
5286 ; AVX512BW-ONLY-FAST-NEXT:    vpermi2d %zmm28, %zmm0, %zmm3
5287 ; AVX512BW-ONLY-FAST-NEXT:    vpermi2d %zmm28, %zmm0, %zmm6
5288 ; AVX512BW-ONLY-FAST-NEXT:    vpermi2d %zmm28, %zmm0, %zmm10
5289 ; AVX512BW-ONLY-FAST-NEXT:    vpermi2d %zmm28, %zmm0, %zmm2
5290 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5291 ; AVX512BW-ONLY-FAST-NEXT:    vpermi2d %zmm28, %zmm0, %zmm13
5292 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm28, %zmm1, %zmm0
5293 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5294 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm18, %zmm9 {%k1}
5295 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
5296 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
5297 ; AVX512BW-ONLY-FAST-NEXT:    vbroadcasti128 {{.*#+}} ymm0 = [1,9,17,25,1,9,17,25]
5298 ; AVX512BW-ONLY-FAST-NEXT:    # ymm0 = mem[0,1,0,1]
5299 ; AVX512BW-ONLY-FAST-NEXT:    vpermi2d %zmm28, %zmm2, %zmm0
5300 ; AVX512BW-ONLY-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm4[0,1,2,3],ymm0[4,5,6,7]
5301 ; AVX512BW-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm0, %zmm9, %zmm18
5302 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5303 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm0, %zmm24 {%k1}
5304 ; AVX512BW-ONLY-FAST-NEXT:    vbroadcasti128 {{.*#+}} ymm9 = [2,10,18,26,2,10,18,26]
5305 ; AVX512BW-ONLY-FAST-NEXT:    # ymm9 = mem[0,1,0,1]
5306 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
5307 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm4, %zmm0
5308 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
5309 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm5, %zmm9, %zmm0
5310 ; AVX512BW-ONLY-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm8[0,1,2,3],ymm0[4,5,6,7]
5311 ; AVX512BW-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm0, %zmm24, %zmm24
5312 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm19, %zmm11 {%k1}
5313 ; AVX512BW-ONLY-FAST-NEXT:    vpermi2d %zmm28, %zmm2, %zmm9
5314 ; AVX512BW-ONLY-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm9[4,5,6,7]
5315 ; AVX512BW-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm1, %zmm11, %zmm1
5316 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5317 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm0, %zmm27 {%k1}
5318 ; AVX512BW-ONLY-FAST-NEXT:    vbroadcasti128 {{.*#+}} ymm3 = [3,11,19,27,3,11,19,27]
5319 ; AVX512BW-ONLY-FAST-NEXT:    # ymm3 = mem[0,1,0,1]
5320 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm4, %zmm0
5321 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm4, %zmm9
5322 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm5, %zmm3, %zmm9
5323 ; AVX512BW-ONLY-FAST-NEXT:    vpblendd {{.*#+}} ymm4 = ymm12[0,1,2,3],ymm9[4,5,6,7]
5324 ; AVX512BW-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm4, %zmm27, %zmm4
5325 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm23, %zmm14 {%k1}
5326 ; AVX512BW-ONLY-FAST-NEXT:    vpermi2d %zmm28, %zmm2, %zmm3
5327 ; AVX512BW-ONLY-FAST-NEXT:    vpblendd {{.*#+}} ymm3 = ymm6[0,1,2,3],ymm3[4,5,6,7]
5328 ; AVX512BW-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm3, %zmm14, %zmm3
5329 ; AVX512BW-ONLY-FAST-NEXT:    vbroadcasti128 {{.*#+}} ymm6 = [4,12,20,28,4,12,20,28]
5330 ; AVX512BW-ONLY-FAST-NEXT:    # ymm6 = mem[0,1,0,1]
5331 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm0, %zmm8
5332 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm5, %zmm6, %zmm8
5333 ; AVX512BW-ONLY-FAST-NEXT:    vbroadcasti128 {{.*#+}} ymm9 = [5,13,21,29,5,13,21,29]
5334 ; AVX512BW-ONLY-FAST-NEXT:    # ymm9 = mem[0,1,0,1]
5335 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm0, %zmm11
5336 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm5, %zmm9, %zmm11
5337 ; AVX512BW-ONLY-FAST-NEXT:    vbroadcasti128 {{.*#+}} ymm12 = [6,14,22,30,6,14,22,30]
5338 ; AVX512BW-ONLY-FAST-NEXT:    # ymm12 = mem[0,1,0,1]
5339 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm0, %zmm14
5340 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm5, %zmm12, %zmm14
5341 ; AVX512BW-ONLY-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} ymm19 = [7,15,23,31,7,15,23,31]
5342 ; AVX512BW-ONLY-FAST-NEXT:    # ymm19 = mem[0,1,2,3,0,1,2,3]
5343 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm5, %zmm19, %zmm0
5344 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm0, %zmm5
5345 ; AVX512BW-ONLY-FAST-NEXT:    vpermi2d %zmm28, %zmm2, %zmm6
5346 ; AVX512BW-ONLY-FAST-NEXT:    vpermi2d %zmm28, %zmm2, %zmm9
5347 ; AVX512BW-ONLY-FAST-NEXT:    vpermi2d %zmm28, %zmm2, %zmm12
5348 ; AVX512BW-ONLY-FAST-NEXT:    vpermt2d %zmm28, %zmm19, %zmm2
5349 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm2, %zmm0
5350 ; AVX512BW-ONLY-FAST-NEXT:    vpblendd $15, (%rsp), %ymm8, %ymm8 # 32-byte Folded Reload
5351 ; AVX512BW-ONLY-FAST-NEXT:    # ymm8 = mem[0,1,2,3],ymm8[4,5,6,7]
5352 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
5353 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm2, %zmm31 {%k1}
5354 ; AVX512BW-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm8, %zmm31, %zmm8
5355 ; AVX512BW-ONLY-FAST-NEXT:    vpblendd {{.*#+}} ymm6 = ymm10[0,1,2,3],ymm6[4,5,6,7]
5356 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm16, %zmm21 {%k1}
5357 ; AVX512BW-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm6, %zmm21, %zmm6
5358 ; AVX512BW-ONLY-FAST-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm10 # 32-byte Folded Reload
5359 ; AVX512BW-ONLY-FAST-NEXT:    # ymm10 = mem[0,1,2,3],ymm11[4,5,6,7]
5360 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
5361 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm2, %zmm30 {%k1}
5362 ; AVX512BW-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm10, %zmm30, %zmm10
5363 ; AVX512BW-ONLY-FAST-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm9 # 32-byte Folded Reload
5364 ; AVX512BW-ONLY-FAST-NEXT:    # ymm9 = mem[0,1,2,3],ymm9[4,5,6,7]
5365 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm20, %zmm7 {%k1}
5366 ; AVX512BW-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm9, %zmm7, %zmm7
5367 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
5368 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm2, %zmm22 {%k1}
5369 ; AVX512BW-ONLY-FAST-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm9 # 32-byte Folded Reload
5370 ; AVX512BW-ONLY-FAST-NEXT:    # ymm9 = mem[0,1,2,3],ymm14[4,5,6,7]
5371 ; AVX512BW-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm9, %zmm22, %zmm9
5372 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm17, %zmm15 {%k1}
5373 ; AVX512BW-ONLY-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm13[0,1,2,3],ymm12[4,5,6,7]
5374 ; AVX512BW-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm2, %zmm15, %zmm2
5375 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
5376 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm11, %zmm26 {%k1}
5377 ; AVX512BW-ONLY-FAST-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm11 # 32-byte Folded Reload
5378 ; AVX512BW-ONLY-FAST-NEXT:    # ymm11 = mem[0,1,2,3],ymm5[4,5,6,7]
5379 ; AVX512BW-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm11, %zmm26, %zmm5
5380 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm25, %zmm29 {%k1}
5381 ; AVX512BW-ONLY-FAST-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm11 # 32-byte Folded Reload
5382 ; AVX512BW-ONLY-FAST-NEXT:    # ymm11 = mem[0,1,2,3],ymm0[4,5,6,7]
5383 ; AVX512BW-ONLY-FAST-NEXT:    vinserti64x4 $0, %ymm11, %zmm29, %zmm11
5384 ; AVX512BW-ONLY-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5385 ; AVX512BW-ONLY-FAST-NEXT:    vmovaps %zmm0, 64(%rsi)
5386 ; AVX512BW-ONLY-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5387 ; AVX512BW-ONLY-FAST-NEXT:    vmovaps %zmm0, (%rsi)
5388 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm18, 64(%rdx)
5389 ; AVX512BW-ONLY-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5390 ; AVX512BW-ONLY-FAST-NEXT:    vmovaps %zmm0, (%rdx)
5391 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm1, 64(%rcx)
5392 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm24, (%rcx)
5393 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm3, 64(%r8)
5394 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm4, (%r8)
5395 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm6, 64(%r9)
5396 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm8, (%r9)
5397 ; AVX512BW-ONLY-FAST-NEXT:    movq {{[0-9]+}}(%rsp), %rax
5398 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm7, 64(%rax)
5399 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm10, (%rax)
5400 ; AVX512BW-ONLY-FAST-NEXT:    movq {{[0-9]+}}(%rsp), %rax
5401 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm2, 64(%rax)
5402 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm9, (%rax)
5403 ; AVX512BW-ONLY-FAST-NEXT:    movq {{[0-9]+}}(%rsp), %rax
5404 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm11, 64(%rax)
5405 ; AVX512BW-ONLY-FAST-NEXT:    vmovdqa64 %zmm5, (%rax)
5406 ; AVX512BW-ONLY-FAST-NEXT:    addq $1096, %rsp # imm = 0x448
5407 ; AVX512BW-ONLY-FAST-NEXT:    vzeroupper
5408 ; AVX512BW-ONLY-FAST-NEXT:    retq
5410 ; AVX512DQBW-SLOW-LABEL: load_i32_stride8_vf32:
5411 ; AVX512DQBW-SLOW:       # %bb.0:
5412 ; AVX512DQBW-SLOW-NEXT:    subq $1096, %rsp # imm = 0x448
5413 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 704(%rdi), %zmm6
5414 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5415 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 640(%rdi), %zmm8
5416 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5417 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 576(%rdi), %zmm28
5418 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 512(%rdi), %zmm11
5419 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5420 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 832(%rdi), %zmm5
5421 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 768(%rdi), %zmm29
5422 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 960(%rdi), %zmm21
5423 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 896(%rdi), %zmm25
5424 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 (%rdi), %zmm7
5425 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 64(%rdi), %zmm17
5426 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 128(%rdi), %zmm4
5427 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 192(%rdi), %zmm9
5428 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 320(%rdi), %zmm20
5429 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 256(%rdi), %zmm26
5430 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 448(%rdi), %zmm22
5431 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 384(%rdi), %zmm2
5432 ; AVX512DQBW-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [0,8,16,24,0,8,16,24,0,8,16,24,0,8,16,24]
5433 ; AVX512DQBW-SLOW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5434 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm2, %zmm1
5435 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm2, %zmm12
5436 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm22, %zmm0, %zmm1
5437 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm26, %zmm2
5438 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm20, %zmm0, %zmm2
5439 ; AVX512DQBW-SLOW-NEXT:    movb $-64, %al
5440 ; AVX512DQBW-SLOW-NEXT:    kmovd %eax, %k1
5441 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm1, %zmm2 {%k1}
5442 ; AVX512DQBW-SLOW-NEXT:    vbroadcasti128 {{.*#+}} ymm1 = [0,8,16,24,0,8,16,24]
5443 ; AVX512DQBW-SLOW-NEXT:    # ymm1 = mem[0,1,0,1]
5444 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm3
5445 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm10
5446 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5447 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm9, %zmm1, %zmm3
5448 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5449 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm7, %zmm4
5450 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm17, %zmm0, %zmm4
5451 ; AVX512DQBW-SLOW-NEXT:    vpblendd {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
5452 ; AVX512DQBW-SLOW-NEXT:    vinserti64x4 $0, %ymm3, %zmm2, %zmm2
5453 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5454 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm25, %zmm2
5455 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm21, %zmm0, %zmm2
5456 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm29, %zmm3
5457 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm5, %zmm0, %zmm3
5458 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm2, %zmm3 {%k1}
5459 ; AVX512DQBW-SLOW-NEXT:    vpermi2d %zmm28, %zmm11, %zmm0
5460 ; AVX512DQBW-SLOW-NEXT:    vpermi2d %zmm6, %zmm8, %zmm1
5461 ; AVX512DQBW-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
5462 ; AVX512DQBW-SLOW-NEXT:    vinserti64x4 $0, %ymm0, %zmm3, %zmm0
5463 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5464 ; AVX512DQBW-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [1,9,17,25,1,9,17,25,1,9,17,25,1,9,17,25]
5465 ; AVX512DQBW-SLOW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5466 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm12, %zmm0
5467 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm22, %zmm4, %zmm0
5468 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm26, %zmm1
5469 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm20, %zmm4, %zmm1
5470 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
5471 ; AVX512DQBW-SLOW-NEXT:    vbroadcasti128 {{.*#+}} ymm2 = [1,9,17,25,1,9,17,25]
5472 ; AVX512DQBW-SLOW-NEXT:    # ymm2 = mem[0,1,0,1]
5473 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm10, %zmm0
5474 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm9, %zmm2, %zmm0
5475 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm7, %zmm2
5476 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm17, %zmm4, %zmm2
5477 ; AVX512DQBW-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
5478 ; AVX512DQBW-SLOW-NEXT:    vinserti64x4 $0, %ymm0, %zmm1, %zmm0
5479 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5480 ; AVX512DQBW-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [2,10,18,26,2,10,18,26,2,10,18,26,2,10,18,26]
5481 ; AVX512DQBW-SLOW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5482 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm12, %zmm1
5483 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm22, %zmm0, %zmm1
5484 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5485 ; AVX512DQBW-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm2 = [3,11,19,27,3,11,19,27,3,11,19,27,3,11,19,27]
5486 ; AVX512DQBW-SLOW-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5487 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm12, %zmm1
5488 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm22, %zmm2, %zmm1
5489 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm2, %zmm3
5490 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5491 ; AVX512DQBW-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [4,12,20,28,4,12,20,28,4,12,20,28,4,12,20,28]
5492 ; AVX512DQBW-SLOW-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5493 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm12, %zmm2
5494 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm22, %zmm10, %zmm2
5495 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5496 ; AVX512DQBW-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm15 = [5,13,21,29,5,13,21,29,5,13,21,29,5,13,21,29]
5497 ; AVX512DQBW-SLOW-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5498 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm12, %zmm1
5499 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm22, %zmm15, %zmm1
5500 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5501 ; AVX512DQBW-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm13 = [6,14,22,30,6,14,22,30,6,14,22,30,6,14,22,30]
5502 ; AVX512DQBW-SLOW-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5503 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm12, %zmm1
5504 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm22, %zmm13, %zmm1
5505 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5506 ; AVX512DQBW-SLOW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm1 = [7,15,23,31,7,15,23,31,7,15,23,31,7,15,23,31]
5507 ; AVX512DQBW-SLOW-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5508 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm22, %zmm1, %zmm12
5509 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5510 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm26, %zmm24
5511 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm20, %zmm0, %zmm24
5512 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm26, %zmm27
5513 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm20, %zmm3, %zmm27
5514 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm26, %zmm31
5515 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm20, %zmm10, %zmm31
5516 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm26, %zmm30
5517 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm20, %zmm15, %zmm30
5518 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm26, %zmm22
5519 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm20, %zmm13, %zmm22
5520 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm20, %zmm1, %zmm26
5521 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm7, %zmm8
5522 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm17, %zmm0, %zmm8
5523 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm7, %zmm12
5524 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm17, %zmm3, %zmm12
5525 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm7, %zmm6
5526 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm17, %zmm10, %zmm6
5527 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm6, (%rsp) # 64-byte Spill
5528 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm7, %zmm6
5529 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm17, %zmm15, %zmm6
5530 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5531 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm7, %zmm6
5532 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm17, %zmm13, %zmm6
5533 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5534 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm17, %zmm1, %zmm7
5535 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5536 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm25, %zmm18
5537 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm21, %zmm4, %zmm18
5538 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm25, %zmm19
5539 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm21, %zmm0, %zmm19
5540 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm25, %zmm23
5541 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm3, %zmm6
5542 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm21, %zmm3, %zmm23
5543 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm25, %zmm16
5544 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm21, %zmm10, %zmm16
5545 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm25, %zmm20
5546 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm21, %zmm15, %zmm20
5547 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm25, %zmm17
5548 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm21, %zmm13, %zmm17
5549 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm21, %zmm1, %zmm25
5550 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm29, %zmm9
5551 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm5, %zmm4, %zmm9
5552 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm29, %zmm11
5553 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm5, %zmm0, %zmm11
5554 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm0, %zmm3
5555 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm29, %zmm14
5556 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm5, %zmm6, %zmm14
5557 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm29, %zmm21
5558 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm5, %zmm10, %zmm21
5559 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm29, %zmm7
5560 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm15, %zmm2
5561 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm5, %zmm15, %zmm7
5562 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm29, %zmm15
5563 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm5, %zmm13, %zmm15
5564 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm5, %zmm1, %zmm29
5565 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5566 ; AVX512DQBW-SLOW-NEXT:    vpermi2d %zmm28, %zmm0, %zmm4
5567 ; AVX512DQBW-SLOW-NEXT:    vpermi2d %zmm28, %zmm0, %zmm3
5568 ; AVX512DQBW-SLOW-NEXT:    vpermi2d %zmm28, %zmm0, %zmm6
5569 ; AVX512DQBW-SLOW-NEXT:    vpermi2d %zmm28, %zmm0, %zmm10
5570 ; AVX512DQBW-SLOW-NEXT:    vpermi2d %zmm28, %zmm0, %zmm2
5571 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5572 ; AVX512DQBW-SLOW-NEXT:    vpermi2d %zmm28, %zmm0, %zmm13
5573 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm28, %zmm1, %zmm0
5574 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5575 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm18, %zmm9 {%k1}
5576 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
5577 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
5578 ; AVX512DQBW-SLOW-NEXT:    vbroadcasti128 {{.*#+}} ymm0 = [1,9,17,25,1,9,17,25]
5579 ; AVX512DQBW-SLOW-NEXT:    # ymm0 = mem[0,1,0,1]
5580 ; AVX512DQBW-SLOW-NEXT:    vpermi2d %zmm28, %zmm2, %zmm0
5581 ; AVX512DQBW-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm4[0,1,2,3],ymm0[4,5,6,7]
5582 ; AVX512DQBW-SLOW-NEXT:    vinserti64x4 $0, %ymm0, %zmm9, %zmm18
5583 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5584 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm0, %zmm24 {%k1}
5585 ; AVX512DQBW-SLOW-NEXT:    vbroadcasti128 {{.*#+}} ymm9 = [2,10,18,26,2,10,18,26]
5586 ; AVX512DQBW-SLOW-NEXT:    # ymm9 = mem[0,1,0,1]
5587 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
5588 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm0
5589 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
5590 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm5, %zmm9, %zmm0
5591 ; AVX512DQBW-SLOW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm8[0,1,2,3],ymm0[4,5,6,7]
5592 ; AVX512DQBW-SLOW-NEXT:    vinserti64x4 $0, %ymm0, %zmm24, %zmm24
5593 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm19, %zmm11 {%k1}
5594 ; AVX512DQBW-SLOW-NEXT:    vpermi2d %zmm28, %zmm2, %zmm9
5595 ; AVX512DQBW-SLOW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm9[4,5,6,7]
5596 ; AVX512DQBW-SLOW-NEXT:    vinserti64x4 $0, %ymm1, %zmm11, %zmm1
5597 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5598 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm0, %zmm27 {%k1}
5599 ; AVX512DQBW-SLOW-NEXT:    vbroadcasti128 {{.*#+}} ymm3 = [3,11,19,27,3,11,19,27]
5600 ; AVX512DQBW-SLOW-NEXT:    # ymm3 = mem[0,1,0,1]
5601 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm0
5602 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm4, %zmm9
5603 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm5, %zmm3, %zmm9
5604 ; AVX512DQBW-SLOW-NEXT:    vpblendd {{.*#+}} ymm4 = ymm12[0,1,2,3],ymm9[4,5,6,7]
5605 ; AVX512DQBW-SLOW-NEXT:    vinserti64x4 $0, %ymm4, %zmm27, %zmm4
5606 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm23, %zmm14 {%k1}
5607 ; AVX512DQBW-SLOW-NEXT:    vpermi2d %zmm28, %zmm2, %zmm3
5608 ; AVX512DQBW-SLOW-NEXT:    vpblendd {{.*#+}} ymm3 = ymm6[0,1,2,3],ymm3[4,5,6,7]
5609 ; AVX512DQBW-SLOW-NEXT:    vinserti64x4 $0, %ymm3, %zmm14, %zmm3
5610 ; AVX512DQBW-SLOW-NEXT:    vbroadcasti128 {{.*#+}} ymm6 = [4,12,20,28,4,12,20,28]
5611 ; AVX512DQBW-SLOW-NEXT:    # ymm6 = mem[0,1,0,1]
5612 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm0, %zmm8
5613 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm5, %zmm6, %zmm8
5614 ; AVX512DQBW-SLOW-NEXT:    vbroadcasti128 {{.*#+}} ymm9 = [5,13,21,29,5,13,21,29]
5615 ; AVX512DQBW-SLOW-NEXT:    # ymm9 = mem[0,1,0,1]
5616 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm0, %zmm11
5617 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm5, %zmm9, %zmm11
5618 ; AVX512DQBW-SLOW-NEXT:    vbroadcasti128 {{.*#+}} ymm12 = [6,14,22,30,6,14,22,30]
5619 ; AVX512DQBW-SLOW-NEXT:    # ymm12 = mem[0,1,0,1]
5620 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm0, %zmm14
5621 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm5, %zmm12, %zmm14
5622 ; AVX512DQBW-SLOW-NEXT:    vbroadcasti64x2 {{.*#+}} ymm19 = [7,15,23,31,7,15,23,31]
5623 ; AVX512DQBW-SLOW-NEXT:    # ymm19 = mem[0,1,0,1]
5624 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm5, %zmm19, %zmm0
5625 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm0, %zmm5
5626 ; AVX512DQBW-SLOW-NEXT:    vpermi2d %zmm28, %zmm2, %zmm6
5627 ; AVX512DQBW-SLOW-NEXT:    vpermi2d %zmm28, %zmm2, %zmm9
5628 ; AVX512DQBW-SLOW-NEXT:    vpermi2d %zmm28, %zmm2, %zmm12
5629 ; AVX512DQBW-SLOW-NEXT:    vpermt2d %zmm28, %zmm19, %zmm2
5630 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm2, %zmm0
5631 ; AVX512DQBW-SLOW-NEXT:    vpblendd $15, (%rsp), %ymm8, %ymm8 # 32-byte Folded Reload
5632 ; AVX512DQBW-SLOW-NEXT:    # ymm8 = mem[0,1,2,3],ymm8[4,5,6,7]
5633 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
5634 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm2, %zmm31 {%k1}
5635 ; AVX512DQBW-SLOW-NEXT:    vinserti64x4 $0, %ymm8, %zmm31, %zmm8
5636 ; AVX512DQBW-SLOW-NEXT:    vpblendd {{.*#+}} ymm6 = ymm10[0,1,2,3],ymm6[4,5,6,7]
5637 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm16, %zmm21 {%k1}
5638 ; AVX512DQBW-SLOW-NEXT:    vinserti64x4 $0, %ymm6, %zmm21, %zmm6
5639 ; AVX512DQBW-SLOW-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm10 # 32-byte Folded Reload
5640 ; AVX512DQBW-SLOW-NEXT:    # ymm10 = mem[0,1,2,3],ymm11[4,5,6,7]
5641 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
5642 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm2, %zmm30 {%k1}
5643 ; AVX512DQBW-SLOW-NEXT:    vinserti64x4 $0, %ymm10, %zmm30, %zmm10
5644 ; AVX512DQBW-SLOW-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm9 # 32-byte Folded Reload
5645 ; AVX512DQBW-SLOW-NEXT:    # ymm9 = mem[0,1,2,3],ymm9[4,5,6,7]
5646 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm20, %zmm7 {%k1}
5647 ; AVX512DQBW-SLOW-NEXT:    vinserti64x4 $0, %ymm9, %zmm7, %zmm7
5648 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
5649 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm2, %zmm22 {%k1}
5650 ; AVX512DQBW-SLOW-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm9 # 32-byte Folded Reload
5651 ; AVX512DQBW-SLOW-NEXT:    # ymm9 = mem[0,1,2,3],ymm14[4,5,6,7]
5652 ; AVX512DQBW-SLOW-NEXT:    vinserti64x4 $0, %ymm9, %zmm22, %zmm9
5653 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm17, %zmm15 {%k1}
5654 ; AVX512DQBW-SLOW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm13[0,1,2,3],ymm12[4,5,6,7]
5655 ; AVX512DQBW-SLOW-NEXT:    vinserti64x4 $0, %ymm2, %zmm15, %zmm2
5656 ; AVX512DQBW-SLOW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
5657 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm11, %zmm26 {%k1}
5658 ; AVX512DQBW-SLOW-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm11 # 32-byte Folded Reload
5659 ; AVX512DQBW-SLOW-NEXT:    # ymm11 = mem[0,1,2,3],ymm5[4,5,6,7]
5660 ; AVX512DQBW-SLOW-NEXT:    vinserti64x4 $0, %ymm11, %zmm26, %zmm5
5661 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm25, %zmm29 {%k1}
5662 ; AVX512DQBW-SLOW-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm11 # 32-byte Folded Reload
5663 ; AVX512DQBW-SLOW-NEXT:    # ymm11 = mem[0,1,2,3],ymm0[4,5,6,7]
5664 ; AVX512DQBW-SLOW-NEXT:    vinserti64x4 $0, %ymm11, %zmm29, %zmm11
5665 ; AVX512DQBW-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5666 ; AVX512DQBW-SLOW-NEXT:    vmovaps %zmm0, 64(%rsi)
5667 ; AVX512DQBW-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5668 ; AVX512DQBW-SLOW-NEXT:    vmovaps %zmm0, (%rsi)
5669 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm18, 64(%rdx)
5670 ; AVX512DQBW-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5671 ; AVX512DQBW-SLOW-NEXT:    vmovaps %zmm0, (%rdx)
5672 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm1, 64(%rcx)
5673 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm24, (%rcx)
5674 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm3, 64(%r8)
5675 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm4, (%r8)
5676 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm6, 64(%r9)
5677 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm8, (%r9)
5678 ; AVX512DQBW-SLOW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
5679 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm7, 64(%rax)
5680 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm10, (%rax)
5681 ; AVX512DQBW-SLOW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
5682 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm2, 64(%rax)
5683 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm9, (%rax)
5684 ; AVX512DQBW-SLOW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
5685 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm11, 64(%rax)
5686 ; AVX512DQBW-SLOW-NEXT:    vmovdqa64 %zmm5, (%rax)
5687 ; AVX512DQBW-SLOW-NEXT:    addq $1096, %rsp # imm = 0x448
5688 ; AVX512DQBW-SLOW-NEXT:    vzeroupper
5689 ; AVX512DQBW-SLOW-NEXT:    retq
5691 ; AVX512DQBW-FAST-LABEL: load_i32_stride8_vf32:
5692 ; AVX512DQBW-FAST:       # %bb.0:
5693 ; AVX512DQBW-FAST-NEXT:    subq $1096, %rsp # imm = 0x448
5694 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 704(%rdi), %zmm6
5695 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5696 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 640(%rdi), %zmm8
5697 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5698 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 576(%rdi), %zmm28
5699 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 512(%rdi), %zmm11
5700 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5701 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 832(%rdi), %zmm5
5702 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 768(%rdi), %zmm29
5703 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 960(%rdi), %zmm21
5704 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 896(%rdi), %zmm25
5705 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 (%rdi), %zmm7
5706 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 64(%rdi), %zmm17
5707 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 128(%rdi), %zmm4
5708 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 192(%rdi), %zmm9
5709 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 320(%rdi), %zmm20
5710 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 256(%rdi), %zmm26
5711 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 448(%rdi), %zmm22
5712 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 384(%rdi), %zmm2
5713 ; AVX512DQBW-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [0,8,16,24,0,8,16,24,0,8,16,24,0,8,16,24]
5714 ; AVX512DQBW-FAST-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5715 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm2, %zmm1
5716 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm2, %zmm12
5717 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm22, %zmm0, %zmm1
5718 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm26, %zmm2
5719 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm20, %zmm0, %zmm2
5720 ; AVX512DQBW-FAST-NEXT:    movb $-64, %al
5721 ; AVX512DQBW-FAST-NEXT:    kmovd %eax, %k1
5722 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm1, %zmm2 {%k1}
5723 ; AVX512DQBW-FAST-NEXT:    vbroadcasti128 {{.*#+}} ymm1 = [0,8,16,24,0,8,16,24]
5724 ; AVX512DQBW-FAST-NEXT:    # ymm1 = mem[0,1,0,1]
5725 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm4, %zmm3
5726 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm4, %zmm10
5727 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5728 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm9, %zmm1, %zmm3
5729 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5730 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm7, %zmm4
5731 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm17, %zmm0, %zmm4
5732 ; AVX512DQBW-FAST-NEXT:    vpblendd {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
5733 ; AVX512DQBW-FAST-NEXT:    vinserti64x4 $0, %ymm3, %zmm2, %zmm2
5734 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5735 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm25, %zmm2
5736 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm21, %zmm0, %zmm2
5737 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm29, %zmm3
5738 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm5, %zmm0, %zmm3
5739 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm2, %zmm3 {%k1}
5740 ; AVX512DQBW-FAST-NEXT:    vpermi2d %zmm28, %zmm11, %zmm0
5741 ; AVX512DQBW-FAST-NEXT:    vpermi2d %zmm6, %zmm8, %zmm1
5742 ; AVX512DQBW-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
5743 ; AVX512DQBW-FAST-NEXT:    vinserti64x4 $0, %ymm0, %zmm3, %zmm0
5744 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5745 ; AVX512DQBW-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [1,9,17,25,1,9,17,25,1,9,17,25,1,9,17,25]
5746 ; AVX512DQBW-FAST-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5747 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm12, %zmm0
5748 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm22, %zmm4, %zmm0
5749 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm26, %zmm1
5750 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm20, %zmm4, %zmm1
5751 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
5752 ; AVX512DQBW-FAST-NEXT:    vbroadcasti128 {{.*#+}} ymm2 = [1,9,17,25,1,9,17,25]
5753 ; AVX512DQBW-FAST-NEXT:    # ymm2 = mem[0,1,0,1]
5754 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm10, %zmm0
5755 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm9, %zmm2, %zmm0
5756 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm7, %zmm2
5757 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm17, %zmm4, %zmm2
5758 ; AVX512DQBW-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
5759 ; AVX512DQBW-FAST-NEXT:    vinserti64x4 $0, %ymm0, %zmm1, %zmm0
5760 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5761 ; AVX512DQBW-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [2,10,18,26,2,10,18,26,2,10,18,26,2,10,18,26]
5762 ; AVX512DQBW-FAST-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5763 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm12, %zmm1
5764 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm22, %zmm0, %zmm1
5765 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5766 ; AVX512DQBW-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm2 = [3,11,19,27,3,11,19,27,3,11,19,27,3,11,19,27]
5767 ; AVX512DQBW-FAST-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5768 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm12, %zmm1
5769 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm22, %zmm2, %zmm1
5770 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm2, %zmm3
5771 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5772 ; AVX512DQBW-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [4,12,20,28,4,12,20,28,4,12,20,28,4,12,20,28]
5773 ; AVX512DQBW-FAST-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5774 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm12, %zmm2
5775 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm22, %zmm10, %zmm2
5776 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5777 ; AVX512DQBW-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm15 = [5,13,21,29,5,13,21,29,5,13,21,29,5,13,21,29]
5778 ; AVX512DQBW-FAST-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5779 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm12, %zmm1
5780 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm22, %zmm15, %zmm1
5781 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5782 ; AVX512DQBW-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm13 = [6,14,22,30,6,14,22,30,6,14,22,30,6,14,22,30]
5783 ; AVX512DQBW-FAST-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5784 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm12, %zmm1
5785 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm22, %zmm13, %zmm1
5786 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5787 ; AVX512DQBW-FAST-NEXT:    vbroadcasti32x4 {{.*#+}} zmm1 = [7,15,23,31,7,15,23,31,7,15,23,31,7,15,23,31]
5788 ; AVX512DQBW-FAST-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5789 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm22, %zmm1, %zmm12
5790 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5791 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm26, %zmm24
5792 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm20, %zmm0, %zmm24
5793 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm26, %zmm27
5794 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm20, %zmm3, %zmm27
5795 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm26, %zmm31
5796 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm20, %zmm10, %zmm31
5797 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm26, %zmm30
5798 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm20, %zmm15, %zmm30
5799 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm26, %zmm22
5800 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm20, %zmm13, %zmm22
5801 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm20, %zmm1, %zmm26
5802 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm7, %zmm8
5803 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm17, %zmm0, %zmm8
5804 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm7, %zmm12
5805 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm17, %zmm3, %zmm12
5806 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm7, %zmm6
5807 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm17, %zmm10, %zmm6
5808 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm6, (%rsp) # 64-byte Spill
5809 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm7, %zmm6
5810 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm17, %zmm15, %zmm6
5811 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5812 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm7, %zmm6
5813 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm17, %zmm13, %zmm6
5814 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5815 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm17, %zmm1, %zmm7
5816 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5817 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm25, %zmm18
5818 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm21, %zmm4, %zmm18
5819 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm25, %zmm19
5820 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm21, %zmm0, %zmm19
5821 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm25, %zmm23
5822 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm3, %zmm6
5823 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm21, %zmm3, %zmm23
5824 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm25, %zmm16
5825 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm21, %zmm10, %zmm16
5826 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm25, %zmm20
5827 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm21, %zmm15, %zmm20
5828 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm25, %zmm17
5829 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm21, %zmm13, %zmm17
5830 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm21, %zmm1, %zmm25
5831 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm29, %zmm9
5832 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm5, %zmm4, %zmm9
5833 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm29, %zmm11
5834 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm5, %zmm0, %zmm11
5835 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm0, %zmm3
5836 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm29, %zmm14
5837 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm5, %zmm6, %zmm14
5838 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm29, %zmm21
5839 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm5, %zmm10, %zmm21
5840 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm29, %zmm7
5841 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm15, %zmm2
5842 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm5, %zmm15, %zmm7
5843 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm29, %zmm15
5844 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm5, %zmm13, %zmm15
5845 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm5, %zmm1, %zmm29
5846 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5847 ; AVX512DQBW-FAST-NEXT:    vpermi2d %zmm28, %zmm0, %zmm4
5848 ; AVX512DQBW-FAST-NEXT:    vpermi2d %zmm28, %zmm0, %zmm3
5849 ; AVX512DQBW-FAST-NEXT:    vpermi2d %zmm28, %zmm0, %zmm6
5850 ; AVX512DQBW-FAST-NEXT:    vpermi2d %zmm28, %zmm0, %zmm10
5851 ; AVX512DQBW-FAST-NEXT:    vpermi2d %zmm28, %zmm0, %zmm2
5852 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5853 ; AVX512DQBW-FAST-NEXT:    vpermi2d %zmm28, %zmm0, %zmm13
5854 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm28, %zmm1, %zmm0
5855 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5856 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm18, %zmm9 {%k1}
5857 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
5858 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
5859 ; AVX512DQBW-FAST-NEXT:    vbroadcasti128 {{.*#+}} ymm0 = [1,9,17,25,1,9,17,25]
5860 ; AVX512DQBW-FAST-NEXT:    # ymm0 = mem[0,1,0,1]
5861 ; AVX512DQBW-FAST-NEXT:    vpermi2d %zmm28, %zmm2, %zmm0
5862 ; AVX512DQBW-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm4[0,1,2,3],ymm0[4,5,6,7]
5863 ; AVX512DQBW-FAST-NEXT:    vinserti64x4 $0, %ymm0, %zmm9, %zmm18
5864 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5865 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm0, %zmm24 {%k1}
5866 ; AVX512DQBW-FAST-NEXT:    vbroadcasti128 {{.*#+}} ymm9 = [2,10,18,26,2,10,18,26]
5867 ; AVX512DQBW-FAST-NEXT:    # ymm9 = mem[0,1,0,1]
5868 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
5869 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm4, %zmm0
5870 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
5871 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm5, %zmm9, %zmm0
5872 ; AVX512DQBW-FAST-NEXT:    vpblendd {{.*#+}} ymm0 = ymm8[0,1,2,3],ymm0[4,5,6,7]
5873 ; AVX512DQBW-FAST-NEXT:    vinserti64x4 $0, %ymm0, %zmm24, %zmm24
5874 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm19, %zmm11 {%k1}
5875 ; AVX512DQBW-FAST-NEXT:    vpermi2d %zmm28, %zmm2, %zmm9
5876 ; AVX512DQBW-FAST-NEXT:    vpblendd {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm9[4,5,6,7]
5877 ; AVX512DQBW-FAST-NEXT:    vinserti64x4 $0, %ymm1, %zmm11, %zmm1
5878 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5879 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm0, %zmm27 {%k1}
5880 ; AVX512DQBW-FAST-NEXT:    vbroadcasti128 {{.*#+}} ymm3 = [3,11,19,27,3,11,19,27]
5881 ; AVX512DQBW-FAST-NEXT:    # ymm3 = mem[0,1,0,1]
5882 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm4, %zmm0
5883 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm4, %zmm9
5884 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm5, %zmm3, %zmm9
5885 ; AVX512DQBW-FAST-NEXT:    vpblendd {{.*#+}} ymm4 = ymm12[0,1,2,3],ymm9[4,5,6,7]
5886 ; AVX512DQBW-FAST-NEXT:    vinserti64x4 $0, %ymm4, %zmm27, %zmm4
5887 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm23, %zmm14 {%k1}
5888 ; AVX512DQBW-FAST-NEXT:    vpermi2d %zmm28, %zmm2, %zmm3
5889 ; AVX512DQBW-FAST-NEXT:    vpblendd {{.*#+}} ymm3 = ymm6[0,1,2,3],ymm3[4,5,6,7]
5890 ; AVX512DQBW-FAST-NEXT:    vinserti64x4 $0, %ymm3, %zmm14, %zmm3
5891 ; AVX512DQBW-FAST-NEXT:    vbroadcasti128 {{.*#+}} ymm6 = [4,12,20,28,4,12,20,28]
5892 ; AVX512DQBW-FAST-NEXT:    # ymm6 = mem[0,1,0,1]
5893 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm0, %zmm8
5894 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm5, %zmm6, %zmm8
5895 ; AVX512DQBW-FAST-NEXT:    vbroadcasti128 {{.*#+}} ymm9 = [5,13,21,29,5,13,21,29]
5896 ; AVX512DQBW-FAST-NEXT:    # ymm9 = mem[0,1,0,1]
5897 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm0, %zmm11
5898 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm5, %zmm9, %zmm11
5899 ; AVX512DQBW-FAST-NEXT:    vbroadcasti128 {{.*#+}} ymm12 = [6,14,22,30,6,14,22,30]
5900 ; AVX512DQBW-FAST-NEXT:    # ymm12 = mem[0,1,0,1]
5901 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm0, %zmm14
5902 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm5, %zmm12, %zmm14
5903 ; AVX512DQBW-FAST-NEXT:    vbroadcasti64x2 {{.*#+}} ymm19 = [7,15,23,31,7,15,23,31]
5904 ; AVX512DQBW-FAST-NEXT:    # ymm19 = mem[0,1,0,1]
5905 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm5, %zmm19, %zmm0
5906 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm0, %zmm5
5907 ; AVX512DQBW-FAST-NEXT:    vpermi2d %zmm28, %zmm2, %zmm6
5908 ; AVX512DQBW-FAST-NEXT:    vpermi2d %zmm28, %zmm2, %zmm9
5909 ; AVX512DQBW-FAST-NEXT:    vpermi2d %zmm28, %zmm2, %zmm12
5910 ; AVX512DQBW-FAST-NEXT:    vpermt2d %zmm28, %zmm19, %zmm2
5911 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm2, %zmm0
5912 ; AVX512DQBW-FAST-NEXT:    vpblendd $15, (%rsp), %ymm8, %ymm8 # 32-byte Folded Reload
5913 ; AVX512DQBW-FAST-NEXT:    # ymm8 = mem[0,1,2,3],ymm8[4,5,6,7]
5914 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
5915 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm2, %zmm31 {%k1}
5916 ; AVX512DQBW-FAST-NEXT:    vinserti64x4 $0, %ymm8, %zmm31, %zmm8
5917 ; AVX512DQBW-FAST-NEXT:    vpblendd {{.*#+}} ymm6 = ymm10[0,1,2,3],ymm6[4,5,6,7]
5918 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm16, %zmm21 {%k1}
5919 ; AVX512DQBW-FAST-NEXT:    vinserti64x4 $0, %ymm6, %zmm21, %zmm6
5920 ; AVX512DQBW-FAST-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm10 # 32-byte Folded Reload
5921 ; AVX512DQBW-FAST-NEXT:    # ymm10 = mem[0,1,2,3],ymm11[4,5,6,7]
5922 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
5923 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm2, %zmm30 {%k1}
5924 ; AVX512DQBW-FAST-NEXT:    vinserti64x4 $0, %ymm10, %zmm30, %zmm10
5925 ; AVX512DQBW-FAST-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm9 # 32-byte Folded Reload
5926 ; AVX512DQBW-FAST-NEXT:    # ymm9 = mem[0,1,2,3],ymm9[4,5,6,7]
5927 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm20, %zmm7 {%k1}
5928 ; AVX512DQBW-FAST-NEXT:    vinserti64x4 $0, %ymm9, %zmm7, %zmm7
5929 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
5930 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm2, %zmm22 {%k1}
5931 ; AVX512DQBW-FAST-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm9 # 32-byte Folded Reload
5932 ; AVX512DQBW-FAST-NEXT:    # ymm9 = mem[0,1,2,3],ymm14[4,5,6,7]
5933 ; AVX512DQBW-FAST-NEXT:    vinserti64x4 $0, %ymm9, %zmm22, %zmm9
5934 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm17, %zmm15 {%k1}
5935 ; AVX512DQBW-FAST-NEXT:    vpblendd {{.*#+}} ymm2 = ymm13[0,1,2,3],ymm12[4,5,6,7]
5936 ; AVX512DQBW-FAST-NEXT:    vinserti64x4 $0, %ymm2, %zmm15, %zmm2
5937 ; AVX512DQBW-FAST-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
5938 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm11, %zmm26 {%k1}
5939 ; AVX512DQBW-FAST-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm11 # 32-byte Folded Reload
5940 ; AVX512DQBW-FAST-NEXT:    # ymm11 = mem[0,1,2,3],ymm5[4,5,6,7]
5941 ; AVX512DQBW-FAST-NEXT:    vinserti64x4 $0, %ymm11, %zmm26, %zmm5
5942 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm25, %zmm29 {%k1}
5943 ; AVX512DQBW-FAST-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm11 # 32-byte Folded Reload
5944 ; AVX512DQBW-FAST-NEXT:    # ymm11 = mem[0,1,2,3],ymm0[4,5,6,7]
5945 ; AVX512DQBW-FAST-NEXT:    vinserti64x4 $0, %ymm11, %zmm29, %zmm11
5946 ; AVX512DQBW-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5947 ; AVX512DQBW-FAST-NEXT:    vmovaps %zmm0, 64(%rsi)
5948 ; AVX512DQBW-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5949 ; AVX512DQBW-FAST-NEXT:    vmovaps %zmm0, (%rsi)
5950 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm18, 64(%rdx)
5951 ; AVX512DQBW-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5952 ; AVX512DQBW-FAST-NEXT:    vmovaps %zmm0, (%rdx)
5953 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm1, 64(%rcx)
5954 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm24, (%rcx)
5955 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm3, 64(%r8)
5956 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm4, (%r8)
5957 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm6, 64(%r9)
5958 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm8, (%r9)
5959 ; AVX512DQBW-FAST-NEXT:    movq {{[0-9]+}}(%rsp), %rax
5960 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm7, 64(%rax)
5961 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm10, (%rax)
5962 ; AVX512DQBW-FAST-NEXT:    movq {{[0-9]+}}(%rsp), %rax
5963 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm2, 64(%rax)
5964 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm9, (%rax)
5965 ; AVX512DQBW-FAST-NEXT:    movq {{[0-9]+}}(%rsp), %rax
5966 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm11, 64(%rax)
5967 ; AVX512DQBW-FAST-NEXT:    vmovdqa64 %zmm5, (%rax)
5968 ; AVX512DQBW-FAST-NEXT:    addq $1096, %rsp # imm = 0x448
5969 ; AVX512DQBW-FAST-NEXT:    vzeroupper
5970 ; AVX512DQBW-FAST-NEXT:    retq
5971   %wide.vec = load <256 x i32>, ptr %in.vec, align 64
5972   %strided.vec0 = shufflevector <256 x i32> %wide.vec, <256 x i32> poison, <32 x i32> <i32 0, i32 8, i32 16, i32 24, i32 32, i32 40, i32 48, i32 56, i32 64, i32 72, i32 80, i32 88, i32 96, i32 104, i32 112, i32 120, i32 128, i32 136, i32 144, i32 152, i32 160, i32 168, i32 176, i32 184, i32 192, i32 200, i32 208, i32 216, i32 224, i32 232, i32 240, i32 248>
5973   %strided.vec1 = shufflevector <256 x i32> %wide.vec, <256 x i32> poison, <32 x i32> <i32 1, i32 9, i32 17, i32 25, i32 33, i32 41, i32 49, i32 57, i32 65, i32 73, i32 81, i32 89, i32 97, i32 105, i32 113, i32 121, i32 129, i32 137, i32 145, i32 153, i32 161, i32 169, i32 177, i32 185, i32 193, i32 201, i32 209, i32 217, i32 225, i32 233, i32 241, i32 249>
5974   %strided.vec2 = shufflevector <256 x i32> %wide.vec, <256 x i32> poison, <32 x i32> <i32 2, i32 10, i32 18, i32 26, i32 34, i32 42, i32 50, i32 58, i32 66, i32 74, i32 82, i32 90, i32 98, i32 106, i32 114, i32 122, i32 130, i32 138, i32 146, i32 154, i32 162, i32 170, i32 178, i32 186, i32 194, i32 202, i32 210, i32 218, i32 226, i32 234, i32 242, i32 250>
5975   %strided.vec3 = shufflevector <256 x i32> %wide.vec, <256 x i32> poison, <32 x i32> <i32 3, i32 11, i32 19, i32 27, i32 35, i32 43, i32 51, i32 59, i32 67, i32 75, i32 83, i32 91, i32 99, i32 107, i32 115, i32 123, i32 131, i32 139, i32 147, i32 155, i32 163, i32 171, i32 179, i32 187, i32 195, i32 203, i32 211, i32 219, i32 227, i32 235, i32 243, i32 251>
5976   %strided.vec4 = shufflevector <256 x i32> %wide.vec, <256 x i32> poison, <32 x i32> <i32 4, i32 12, i32 20, i32 28, i32 36, i32 44, i32 52, i32 60, i32 68, i32 76, i32 84, i32 92, i32 100, i32 108, i32 116, i32 124, i32 132, i32 140, i32 148, i32 156, i32 164, i32 172, i32 180, i32 188, i32 196, i32 204, i32 212, i32 220, i32 228, i32 236, i32 244, i32 252>
5977   %strided.vec5 = shufflevector <256 x i32> %wide.vec, <256 x i32> poison, <32 x i32> <i32 5, i32 13, i32 21, i32 29, i32 37, i32 45, i32 53, i32 61, i32 69, i32 77, i32 85, i32 93, i32 101, i32 109, i32 117, i32 125, i32 133, i32 141, i32 149, i32 157, i32 165, i32 173, i32 181, i32 189, i32 197, i32 205, i32 213, i32 221, i32 229, i32 237, i32 245, i32 253>
5978   %strided.vec6 = shufflevector <256 x i32> %wide.vec, <256 x i32> poison, <32 x i32> <i32 6, i32 14, i32 22, i32 30, i32 38, i32 46, i32 54, i32 62, i32 70, i32 78, i32 86, i32 94, i32 102, i32 110, i32 118, i32 126, i32 134, i32 142, i32 150, i32 158, i32 166, i32 174, i32 182, i32 190, i32 198, i32 206, i32 214, i32 222, i32 230, i32 238, i32 246, i32 254>
5979   %strided.vec7 = shufflevector <256 x i32> %wide.vec, <256 x i32> poison, <32 x i32> <i32 7, i32 15, i32 23, i32 31, i32 39, i32 47, i32 55, i32 63, i32 71, i32 79, i32 87, i32 95, i32 103, i32 111, i32 119, i32 127, i32 135, i32 143, i32 151, i32 159, i32 167, i32 175, i32 183, i32 191, i32 199, i32 207, i32 215, i32 223, i32 231, i32 239, i32 247, i32 255>
5980   store <32 x i32> %strided.vec0, ptr %out.vec0, align 64
5981   store <32 x i32> %strided.vec1, ptr %out.vec1, align 64
5982   store <32 x i32> %strided.vec2, ptr %out.vec2, align 64
5983   store <32 x i32> %strided.vec3, ptr %out.vec3, align 64
5984   store <32 x i32> %strided.vec4, ptr %out.vec4, align 64
5985   store <32 x i32> %strided.vec5, ptr %out.vec5, align 64
5986   store <32 x i32> %strided.vec6, ptr %out.vec6, align 64
5987   store <32 x i32> %strided.vec7, ptr %out.vec7, align 64
5988   ret void
5991 define void @load_i32_stride8_vf64(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2, ptr %out.vec3, ptr %out.vec4, ptr %out.vec5, ptr %out.vec6, ptr %out.vec7) nounwind {
5992 ; SSE-LABEL: load_i32_stride8_vf64:
5993 ; SSE:       # %bb.0:
5994 ; SSE-NEXT:    subq $2232, %rsp # imm = 0x8B8
5995 ; SSE-NEXT:    movaps 288(%rdi), %xmm4
5996 ; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5997 ; SSE-NEXT:    movaps 352(%rdi), %xmm5
5998 ; SSE-NEXT:    movaps %xmm5, (%rsp) # 16-byte Spill
5999 ; SSE-NEXT:    movaps 320(%rdi), %xmm6
6000 ; SSE-NEXT:    movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6001 ; SSE-NEXT:    movaps 416(%rdi), %xmm7
6002 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6003 ; SSE-NEXT:    movaps 384(%rdi), %xmm8
6004 ; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6005 ; SSE-NEXT:    movaps 480(%rdi), %xmm9
6006 ; SSE-NEXT:    movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6007 ; SSE-NEXT:    movaps 448(%rdi), %xmm3
6008 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6009 ; SSE-NEXT:    movaps 160(%rdi), %xmm10
6010 ; SSE-NEXT:    movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6011 ; SSE-NEXT:    movaps 128(%rdi), %xmm1
6012 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6013 ; SSE-NEXT:    movaps 224(%rdi), %xmm2
6014 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6015 ; SSE-NEXT:    movaps 192(%rdi), %xmm0
6016 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6017 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
6018 ; SSE-NEXT:    movaps %xmm1, %xmm2
6019 ; SSE-NEXT:    unpcklps {{.*#+}} xmm2 = xmm2[0],xmm10[0],xmm2[1],xmm10[1]
6020 ; SSE-NEXT:    movaps %xmm2, %xmm1
6021 ; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
6022 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6023 ; SSE-NEXT:    movaps %xmm3, %xmm1
6024 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm9[0],xmm1[1],xmm9[1]
6025 ; SSE-NEXT:    movaps %xmm8, %xmm3
6026 ; SSE-NEXT:    unpcklps {{.*#+}} xmm3 = xmm3[0],xmm7[0],xmm3[1],xmm7[1]
6027 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
6028 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6029 ; SSE-NEXT:    movaps %xmm3, %xmm0
6030 ; SSE-NEXT:    movlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]
6031 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6032 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm3 = xmm3[1],xmm1[1]
6033 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6034 ; SSE-NEXT:    movaps %xmm6, %xmm0
6035 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm5[0],xmm0[1],xmm5[1]
6036 ; SSE-NEXT:    movaps 256(%rdi), %xmm2
6037 ; SSE-NEXT:    movaps %xmm2, %xmm1
6038 ; SSE-NEXT:    movaps %xmm2, %xmm3
6039 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm4[0],xmm1[1],xmm4[1]
6040 ; SSE-NEXT:    movaps %xmm1, %xmm2
6041 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
6042 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6043 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
6044 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6045 ; SSE-NEXT:    movaps 736(%rdi), %xmm9
6046 ; SSE-NEXT:    movaps 704(%rdi), %xmm0
6047 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6048 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm9[0],xmm0[1],xmm9[1]
6049 ; SSE-NEXT:    movaps 672(%rdi), %xmm2
6050 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6051 ; SSE-NEXT:    movaps 640(%rdi), %xmm1
6052 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6053 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
6054 ; SSE-NEXT:    movaps %xmm1, %xmm2
6055 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
6056 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6057 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
6058 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6059 ; SSE-NEXT:    movaps 608(%rdi), %xmm2
6060 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6061 ; SSE-NEXT:    movaps 576(%rdi), %xmm1
6062 ; SSE-NEXT:    movaps %xmm1, %xmm0
6063 ; SSE-NEXT:    movaps %xmm1, %xmm4
6064 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
6065 ; SSE-NEXT:    movaps 544(%rdi), %xmm15
6066 ; SSE-NEXT:    movaps 512(%rdi), %xmm2
6067 ; SSE-NEXT:    movaps %xmm2, %xmm1
6068 ; SSE-NEXT:    movaps %xmm2, %xmm6
6069 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm15[0],xmm1[1],xmm15[1]
6070 ; SSE-NEXT:    movaps %xmm1, %xmm2
6071 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
6072 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6073 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
6074 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6075 ; SSE-NEXT:    movaps 992(%rdi), %xmm1
6076 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6077 ; SSE-NEXT:    movaps 960(%rdi), %xmm0
6078 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6079 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
6080 ; SSE-NEXT:    movaps 928(%rdi), %xmm2
6081 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6082 ; SSE-NEXT:    movaps 896(%rdi), %xmm1
6083 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6084 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
6085 ; SSE-NEXT:    movaps %xmm1, %xmm2
6086 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
6087 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6088 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
6089 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6090 ; SSE-NEXT:    movaps 864(%rdi), %xmm1
6091 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6092 ; SSE-NEXT:    movaps 832(%rdi), %xmm0
6093 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6094 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
6095 ; SSE-NEXT:    movaps 800(%rdi), %xmm14
6096 ; SSE-NEXT:    movaps 768(%rdi), %xmm2
6097 ; SSE-NEXT:    movaps %xmm2, %xmm1
6098 ; SSE-NEXT:    movaps %xmm2, %xmm8
6099 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm14[0],xmm1[1],xmm14[1]
6100 ; SSE-NEXT:    movaps %xmm1, %xmm2
6101 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
6102 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6103 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
6104 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6105 ; SSE-NEXT:    movaps 1248(%rdi), %xmm1
6106 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6107 ; SSE-NEXT:    movaps 1216(%rdi), %xmm0
6108 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6109 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
6110 ; SSE-NEXT:    movaps 1184(%rdi), %xmm2
6111 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6112 ; SSE-NEXT:    movaps 1152(%rdi), %xmm1
6113 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6114 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
6115 ; SSE-NEXT:    movaps %xmm1, %xmm2
6116 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
6117 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6118 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
6119 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6120 ; SSE-NEXT:    movaps 1120(%rdi), %xmm2
6121 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6122 ; SSE-NEXT:    movaps 1088(%rdi), %xmm1
6123 ; SSE-NEXT:    movaps %xmm1, %xmm0
6124 ; SSE-NEXT:    movaps %xmm1, %xmm7
6125 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
6126 ; SSE-NEXT:    movaps 1056(%rdi), %xmm2
6127 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6128 ; SSE-NEXT:    movaps 1024(%rdi), %xmm1
6129 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6130 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
6131 ; SSE-NEXT:    movaps %xmm1, %xmm2
6132 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
6133 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6134 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
6135 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6136 ; SSE-NEXT:    movaps 1504(%rdi), %xmm1
6137 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6138 ; SSE-NEXT:    movaps 1472(%rdi), %xmm0
6139 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6140 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
6141 ; SSE-NEXT:    movaps 1440(%rdi), %xmm2
6142 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6143 ; SSE-NEXT:    movaps 1408(%rdi), %xmm1
6144 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6145 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
6146 ; SSE-NEXT:    movaps %xmm1, %xmm2
6147 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
6148 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6149 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
6150 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6151 ; SSE-NEXT:    movaps 1376(%rdi), %xmm1
6152 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6153 ; SSE-NEXT:    movaps 1344(%rdi), %xmm0
6154 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6155 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
6156 ; SSE-NEXT:    movaps 1312(%rdi), %xmm2
6157 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6158 ; SSE-NEXT:    movaps 1280(%rdi), %xmm1
6159 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6160 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
6161 ; SSE-NEXT:    movaps %xmm1, %xmm2
6162 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
6163 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6164 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
6165 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6166 ; SSE-NEXT:    movaps 1760(%rdi), %xmm1
6167 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6168 ; SSE-NEXT:    movaps 1728(%rdi), %xmm0
6169 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6170 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
6171 ; SSE-NEXT:    movaps 1696(%rdi), %xmm2
6172 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6173 ; SSE-NEXT:    movaps 1664(%rdi), %xmm1
6174 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6175 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
6176 ; SSE-NEXT:    movaps %xmm1, %xmm2
6177 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
6178 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6179 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
6180 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6181 ; SSE-NEXT:    movaps 1632(%rdi), %xmm1
6182 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6183 ; SSE-NEXT:    movaps 1600(%rdi), %xmm0
6184 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6185 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
6186 ; SSE-NEXT:    movaps 1568(%rdi), %xmm5
6187 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6188 ; SSE-NEXT:    movaps 1536(%rdi), %xmm2
6189 ; SSE-NEXT:    movaps %xmm2, %xmm1
6190 ; SSE-NEXT:    movaps %xmm2, %xmm13
6191 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm5[0],xmm1[1],xmm5[1]
6192 ; SSE-NEXT:    movaps %xmm1, %xmm2
6193 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
6194 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6195 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
6196 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6197 ; SSE-NEXT:    movaps 2016(%rdi), %xmm1
6198 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6199 ; SSE-NEXT:    movaps 1984(%rdi), %xmm0
6200 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6201 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
6202 ; SSE-NEXT:    movaps 1952(%rdi), %xmm2
6203 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6204 ; SSE-NEXT:    movaps 1920(%rdi), %xmm1
6205 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6206 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
6207 ; SSE-NEXT:    movaps %xmm1, %xmm2
6208 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
6209 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6210 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
6211 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6212 ; SSE-NEXT:    movaps 1888(%rdi), %xmm1
6213 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6214 ; SSE-NEXT:    movaps 1856(%rdi), %xmm0
6215 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6216 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
6217 ; SSE-NEXT:    movaps 1824(%rdi), %xmm2
6218 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6219 ; SSE-NEXT:    movaps 1792(%rdi), %xmm1
6220 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6221 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
6222 ; SSE-NEXT:    movaps %xmm1, %xmm5
6223 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm0[0]
6224 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6225 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
6226 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6227 ; SSE-NEXT:    movaps 96(%rdi), %xmm2
6228 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6229 ; SSE-NEXT:    movaps 64(%rdi), %xmm12
6230 ; SSE-NEXT:    movaps %xmm12, %xmm0
6231 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
6232 ; SSE-NEXT:    movaps (%rdi), %xmm10
6233 ; SSE-NEXT:    movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6234 ; SSE-NEXT:    movaps 32(%rdi), %xmm1
6235 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6236 ; SSE-NEXT:    unpcklps {{.*#+}} xmm10 = xmm10[0],xmm1[0],xmm10[1],xmm1[1]
6237 ; SSE-NEXT:    movaps %xmm10, %xmm5
6238 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm0[0]
6239 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6240 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm10 = xmm10[1],xmm0[1]
6241 ; SSE-NEXT:    movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6242 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload
6243 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Folded Reload
6244 ; SSE-NEXT:    # xmm11 = xmm11[2],mem[2],xmm11[3],mem[3]
6245 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
6246 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload
6247 ; SSE-NEXT:    # xmm5 = xmm5[2],mem[2],xmm5[3],mem[3]
6248 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
6249 ; SSE-NEXT:    unpckhps (%rsp), %xmm10 # 16-byte Folded Reload
6250 ; SSE-NEXT:    # xmm10 = xmm10[2],mem[2],xmm10[3],mem[3]
6251 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload
6252 ; SSE-NEXT:    # xmm3 = xmm3[2],mem[2],xmm3[3],mem[3]
6253 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6254 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
6255 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload
6256 ; SSE-NEXT:    # xmm3 = xmm3[2],mem[2],xmm3[3],mem[3]
6257 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6258 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6259 ; SSE-NEXT:    # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]
6260 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
6261 ; SSE-NEXT:    # xmm4 = xmm4[2],mem[2],xmm4[3],mem[3]
6262 ; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6263 ; SSE-NEXT:    unpckhps {{.*#+}} xmm6 = xmm6[2],xmm15[2],xmm6[3],xmm15[3]
6264 ; SSE-NEXT:    movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6265 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
6266 ; SSE-NEXT:    unpckhps {{.*#+}} xmm15 = xmm15[2],xmm9[2],xmm15[3],xmm9[3]
6267 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6268 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
6269 ; SSE-NEXT:    # xmm1 = xmm1[2],mem[2],xmm1[3],mem[3]
6270 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
6271 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
6272 ; SSE-NEXT:    # xmm2 = xmm2[2],mem[2],xmm2[3],mem[3]
6273 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6274 ; SSE-NEXT:    unpckhps {{.*#+}} xmm8 = xmm8[2],xmm14[2],xmm8[3],xmm14[3]
6275 ; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6276 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
6277 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Folded Reload
6278 ; SSE-NEXT:    # xmm14 = xmm14[2],mem[2],xmm14[3],mem[3]
6279 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload
6280 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload
6281 ; SSE-NEXT:    # xmm9 = xmm9[2],mem[2],xmm9[3],mem[3]
6282 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload
6283 ; SSE-NEXT:    # xmm7 = xmm7[2],mem[2],xmm7[3],mem[3]
6284 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6285 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
6286 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
6287 ; SSE-NEXT:    # xmm2 = xmm2[2],mem[2],xmm2[3],mem[3]
6288 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6289 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
6290 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload
6291 ; SSE-NEXT:    # xmm8 = xmm8[2],mem[2],xmm8[3],mem[3]
6292 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
6293 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload
6294 ; SSE-NEXT:    # xmm6 = xmm6[2],mem[2],xmm6[3],mem[3]
6295 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
6296 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
6297 ; SSE-NEXT:    # xmm2 = xmm2[2],mem[2],xmm2[3],mem[3]
6298 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6299 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
6300 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
6301 ; SSE-NEXT:    # xmm2 = xmm2[2],mem[2],xmm2[3],mem[3]
6302 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6303 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
6304 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload
6305 ; SSE-NEXT:    # xmm7 = xmm7[2],mem[2],xmm7[3],mem[3]
6306 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6307 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
6308 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
6309 ; SSE-NEXT:    # xmm4 = xmm4[2],mem[2],xmm4[3],mem[3]
6310 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
6311 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
6312 ; SSE-NEXT:    # xmm2 = xmm2[2],mem[2],xmm2[3],mem[3]
6313 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6314 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Folded Reload
6315 ; SSE-NEXT:    # xmm13 = xmm13[2],mem[2],xmm13[3],mem[3]
6316 ; SSE-NEXT:    movaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6317 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
6318 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
6319 ; SSE-NEXT:    # xmm2 = xmm2[2],mem[2],xmm2[3],mem[3]
6320 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
6321 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload
6322 ; SSE-NEXT:    # xmm7 = xmm7[2],mem[2],xmm7[3],mem[3]
6323 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6324 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
6325 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload
6326 ; SSE-NEXT:    # xmm7 = xmm7[2],mem[2],xmm7[3],mem[3]
6327 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6328 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
6329 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload
6330 ; SSE-NEXT:    # xmm7 = xmm7[2],mem[2],xmm7[3],mem[3]
6331 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6332 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
6333 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload
6334 ; SSE-NEXT:    # xmm7 = xmm7[2],mem[2],xmm7[3],mem[3]
6335 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6336 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload
6337 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Folded Reload
6338 ; SSE-NEXT:    # xmm13 = xmm13[2],mem[2],xmm13[3],mem[3]
6339 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Folded Reload
6340 ; SSE-NEXT:    # xmm12 = xmm12[2],mem[2],xmm12[3],mem[3]
6341 ; SSE-NEXT:    movaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6342 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload
6343 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Folded Reload
6344 ; SSE-NEXT:    # xmm12 = xmm12[2],mem[2],xmm12[3],mem[3]
6345 ; SSE-NEXT:    movaps %xmm5, %xmm7
6346 ; SSE-NEXT:    movlhps {{.*#+}} xmm7 = xmm7[0],xmm11[0]
6347 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6348 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm11[1]
6349 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6350 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
6351 ; SSE-NEXT:    movaps %xmm5, %xmm7
6352 ; SSE-NEXT:    movlhps {{.*#+}} xmm7 = xmm7[0],xmm10[0]
6353 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6354 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm10[1]
6355 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6356 ; SSE-NEXT:    movaps %xmm0, %xmm5
6357 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm3[0]
6358 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6359 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm3[1]
6360 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6361 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6362 ; SSE-NEXT:    movaps %xmm0, %xmm5
6363 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
6364 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm3[0]
6365 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6366 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm3[1]
6367 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6368 ; SSE-NEXT:    movaps %xmm1, %xmm5
6369 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm15[0]
6370 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6371 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm15[1]
6372 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6373 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6374 ; SSE-NEXT:    movaps %xmm0, %xmm5
6375 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6376 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm1[0]
6377 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6378 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]
6379 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6380 ; SSE-NEXT:    movaps %xmm9, %xmm5
6381 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm14[0]
6382 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6383 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm9 = xmm9[1],xmm14[1]
6384 ; SSE-NEXT:    movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6385 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6386 ; SSE-NEXT:    movaps %xmm0, %xmm5
6387 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6388 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm1[0]
6389 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6390 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]
6391 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6392 ; SSE-NEXT:    movaps %xmm6, %xmm5
6393 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm8[0]
6394 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6395 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm6 = xmm6[1],xmm8[1]
6396 ; SSE-NEXT:    movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6397 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6398 ; SSE-NEXT:    movaps %xmm0, %xmm5
6399 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6400 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm1[0]
6401 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6402 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]
6403 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6404 ; SSE-NEXT:    movaps %xmm4, %xmm5
6405 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6406 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm1[0]
6407 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6408 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm1[1]
6409 ; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6410 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6411 ; SSE-NEXT:    movaps %xmm0, %xmm5
6412 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6413 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm1[0]
6414 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6415 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]
6416 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6417 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6418 ; SSE-NEXT:    movaps %xmm0, %xmm4
6419 ; SSE-NEXT:    movlhps {{.*#+}} xmm4 = xmm4[0],xmm2[0]
6420 ; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6421 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
6422 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6423 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
6424 ; SSE-NEXT:    movaps %xmm6, %xmm0
6425 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6426 ; SSE-NEXT:    movlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]
6427 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6428 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm6 = xmm6[1],xmm1[1]
6429 ; SSE-NEXT:    movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6430 ; SSE-NEXT:    movaps %xmm13, %xmm0
6431 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6432 ; SSE-NEXT:    movlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]
6433 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6434 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm13 = xmm13[1],xmm1[1]
6435 ; SSE-NEXT:    movaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6436 ; SSE-NEXT:    movaps %xmm12, %xmm0
6437 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6438 ; SSE-NEXT:    movlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]
6439 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6440 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm12 = xmm12[1],xmm1[1]
6441 ; SSE-NEXT:    movaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6442 ; SSE-NEXT:    movaps 240(%rdi), %xmm2
6443 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6444 ; SSE-NEXT:    movaps 208(%rdi), %xmm7
6445 ; SSE-NEXT:    movaps %xmm7, %xmm0
6446 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
6447 ; SSE-NEXT:    movaps 176(%rdi), %xmm3
6448 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6449 ; SSE-NEXT:    movaps 144(%rdi), %xmm1
6450 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6451 ; SSE-NEXT:    movaps %xmm1, %xmm2
6452 ; SSE-NEXT:    unpcklps {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]
6453 ; SSE-NEXT:    movaps %xmm2, %xmm1
6454 ; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]
6455 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6456 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
6457 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6458 ; SSE-NEXT:    movaps 368(%rdi), %xmm3
6459 ; SSE-NEXT:    movaps 336(%rdi), %xmm0
6460 ; SSE-NEXT:    movaps %xmm0, (%rsp) # 16-byte Spill
6461 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
6462 ; SSE-NEXT:    movaps 304(%rdi), %xmm4
6463 ; SSE-NEXT:    movaps 272(%rdi), %xmm1
6464 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6465 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm4[0],xmm1[1],xmm4[1]
6466 ; SSE-NEXT:    movaps %xmm1, %xmm2
6467 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
6468 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6469 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
6470 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6471 ; SSE-NEXT:    movaps 496(%rdi), %xmm5
6472 ; SSE-NEXT:    movaps 464(%rdi), %xmm0
6473 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6474 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm5[0],xmm0[1],xmm5[1]
6475 ; SSE-NEXT:    movaps 432(%rdi), %xmm6
6476 ; SSE-NEXT:    movaps 400(%rdi), %xmm1
6477 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6478 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm6[0],xmm1[1],xmm6[1]
6479 ; SSE-NEXT:    movaps %xmm1, %xmm2
6480 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
6481 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6482 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
6483 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6484 ; SSE-NEXT:    movaps 624(%rdi), %xmm9
6485 ; SSE-NEXT:    movaps 592(%rdi), %xmm0
6486 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6487 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm9[0],xmm0[1],xmm9[1]
6488 ; SSE-NEXT:    movaps 560(%rdi), %xmm10
6489 ; SSE-NEXT:    movaps 528(%rdi), %xmm1
6490 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6491 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm10[0],xmm1[1],xmm10[1]
6492 ; SSE-NEXT:    movaps %xmm1, %xmm2
6493 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
6494 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6495 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
6496 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6497 ; SSE-NEXT:    movaps 752(%rdi), %xmm12
6498 ; SSE-NEXT:    movaps 720(%rdi), %xmm0
6499 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6500 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm12[0],xmm0[1],xmm12[1]
6501 ; SSE-NEXT:    movaps 688(%rdi), %xmm13
6502 ; SSE-NEXT:    movaps 656(%rdi), %xmm2
6503 ; SSE-NEXT:    movaps %xmm2, %xmm1
6504 ; SSE-NEXT:    movaps %xmm2, %xmm15
6505 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm13[0],xmm1[1],xmm13[1]
6506 ; SSE-NEXT:    movaps %xmm1, %xmm2
6507 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
6508 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6509 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
6510 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6511 ; SSE-NEXT:    movaps 880(%rdi), %xmm1
6512 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6513 ; SSE-NEXT:    movaps 848(%rdi), %xmm0
6514 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6515 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
6516 ; SSE-NEXT:    movaps 816(%rdi), %xmm2
6517 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6518 ; SSE-NEXT:    movaps 784(%rdi), %xmm1
6519 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6520 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
6521 ; SSE-NEXT:    movaps %xmm1, %xmm2
6522 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
6523 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6524 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
6525 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6526 ; SSE-NEXT:    movaps 1008(%rdi), %xmm14
6527 ; SSE-NEXT:    movaps 976(%rdi), %xmm0
6528 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6529 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm14[0],xmm0[1],xmm14[1]
6530 ; SSE-NEXT:    movaps 944(%rdi), %xmm2
6531 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6532 ; SSE-NEXT:    movaps 912(%rdi), %xmm1
6533 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6534 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
6535 ; SSE-NEXT:    movaps %xmm1, %xmm2
6536 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
6537 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6538 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
6539 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6540 ; SSE-NEXT:    movaps 1136(%rdi), %xmm1
6541 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6542 ; SSE-NEXT:    movaps 1104(%rdi), %xmm0
6543 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6544 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
6545 ; SSE-NEXT:    movaps 1072(%rdi), %xmm2
6546 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6547 ; SSE-NEXT:    movaps 1040(%rdi), %xmm1
6548 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6549 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
6550 ; SSE-NEXT:    movaps %xmm1, %xmm2
6551 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
6552 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6553 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
6554 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6555 ; SSE-NEXT:    movaps 1264(%rdi), %xmm11
6556 ; SSE-NEXT:    movaps 1232(%rdi), %xmm0
6557 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6558 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm11[0],xmm0[1],xmm11[1]
6559 ; SSE-NEXT:    movaps 1200(%rdi), %xmm2
6560 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6561 ; SSE-NEXT:    movaps 1168(%rdi), %xmm1
6562 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6563 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
6564 ; SSE-NEXT:    movaps %xmm1, %xmm2
6565 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
6566 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6567 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
6568 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6569 ; SSE-NEXT:    movaps 1392(%rdi), %xmm1
6570 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6571 ; SSE-NEXT:    movaps 1360(%rdi), %xmm0
6572 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6573 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
6574 ; SSE-NEXT:    movaps 1328(%rdi), %xmm2
6575 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6576 ; SSE-NEXT:    movaps 1296(%rdi), %xmm1
6577 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6578 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
6579 ; SSE-NEXT:    movaps %xmm1, %xmm2
6580 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
6581 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6582 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
6583 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6584 ; SSE-NEXT:    movaps 1520(%rdi), %xmm1
6585 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6586 ; SSE-NEXT:    movaps 1488(%rdi), %xmm0
6587 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6588 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
6589 ; SSE-NEXT:    movaps 1456(%rdi), %xmm2
6590 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6591 ; SSE-NEXT:    movaps 1424(%rdi), %xmm1
6592 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6593 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
6594 ; SSE-NEXT:    movaps %xmm1, %xmm2
6595 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
6596 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6597 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
6598 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6599 ; SSE-NEXT:    movaps 1648(%rdi), %xmm1
6600 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6601 ; SSE-NEXT:    movaps 1616(%rdi), %xmm0
6602 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6603 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
6604 ; SSE-NEXT:    movaps 1584(%rdi), %xmm2
6605 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6606 ; SSE-NEXT:    movaps 1552(%rdi), %xmm1
6607 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6608 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
6609 ; SSE-NEXT:    movaps %xmm1, %xmm2
6610 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
6611 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6612 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
6613 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6614 ; SSE-NEXT:    movaps 1776(%rdi), %xmm8
6615 ; SSE-NEXT:    movaps 1744(%rdi), %xmm0
6616 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6617 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm8[0],xmm0[1],xmm8[1]
6618 ; SSE-NEXT:    movaps 1712(%rdi), %xmm2
6619 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6620 ; SSE-NEXT:    movaps 1680(%rdi), %xmm1
6621 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6622 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
6623 ; SSE-NEXT:    movaps %xmm1, %xmm2
6624 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
6625 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6626 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
6627 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6628 ; SSE-NEXT:    movaps 1904(%rdi), %xmm1
6629 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6630 ; SSE-NEXT:    movaps 1872(%rdi), %xmm0
6631 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6632 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
6633 ; SSE-NEXT:    movaps 1840(%rdi), %xmm2
6634 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6635 ; SSE-NEXT:    movaps 1808(%rdi), %xmm1
6636 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6637 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
6638 ; SSE-NEXT:    movaps %xmm1, %xmm2
6639 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
6640 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6641 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
6642 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6643 ; SSE-NEXT:    movaps 2032(%rdi), %xmm1
6644 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6645 ; SSE-NEXT:    movaps 2000(%rdi), %xmm0
6646 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6647 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
6648 ; SSE-NEXT:    movaps 1968(%rdi), %xmm2
6649 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6650 ; SSE-NEXT:    movaps 1936(%rdi), %xmm1
6651 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6652 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
6653 ; SSE-NEXT:    movaps %xmm1, %xmm2
6654 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
6655 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6656 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
6657 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6658 ; SSE-NEXT:    movaps 112(%rdi), %xmm1
6659 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6660 ; SSE-NEXT:    movaps 80(%rdi), %xmm0
6661 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6662 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
6663 ; SSE-NEXT:    movaps 16(%rdi), %xmm1
6664 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6665 ; SSE-NEXT:    movaps 48(%rdi), %xmm2
6666 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6667 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
6668 ; SSE-NEXT:    movaps %xmm1, %xmm2
6669 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
6670 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6671 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
6672 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6673 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload
6674 ; SSE-NEXT:    # xmm7 = xmm7[2],mem[2],xmm7[3],mem[3]
6675 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
6676 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
6677 ; SSE-NEXT:    # xmm2 = xmm2[2],mem[2],xmm2[3],mem[3]
6678 ; SSE-NEXT:    movaps (%rsp), %xmm1 # 16-byte Reload
6679 ; SSE-NEXT:    unpckhps {{.*#+}} xmm1 = xmm1[2],xmm3[2],xmm1[3],xmm3[3]
6680 ; SSE-NEXT:    movaps %xmm1, (%rsp) # 16-byte Spill
6681 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6682 ; SSE-NEXT:    unpckhps {{.*#+}} xmm1 = xmm1[2],xmm4[2],xmm1[3],xmm4[3]
6683 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6684 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6685 ; SSE-NEXT:    unpckhps {{.*#+}} xmm1 = xmm1[2],xmm5[2],xmm1[3],xmm5[3]
6686 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6687 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6688 ; SSE-NEXT:    unpckhps {{.*#+}} xmm1 = xmm1[2],xmm6[2],xmm1[3],xmm6[3]
6689 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6690 ; SSE-NEXT:    unpckhps {{.*#+}} xmm0 = xmm0[2],xmm9[2],xmm0[3],xmm9[3]
6691 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6692 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
6693 ; SSE-NEXT:    unpckhps {{.*#+}} xmm5 = xmm5[2],xmm10[2],xmm5[3],xmm10[3]
6694 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
6695 ; SSE-NEXT:    unpckhps {{.*#+}} xmm6 = xmm6[2],xmm12[2],xmm6[3],xmm12[3]
6696 ; SSE-NEXT:    movaps %xmm15, %xmm4
6697 ; SSE-NEXT:    unpckhps {{.*#+}} xmm4 = xmm4[2],xmm13[2],xmm4[3],xmm13[3]
6698 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
6699 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload
6700 ; SSE-NEXT:    # xmm15 = xmm15[2],mem[2],xmm15[3],mem[3]
6701 ; SSE-NEXT:    movaps %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6702 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
6703 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload
6704 ; SSE-NEXT:    # xmm15 = xmm15[2],mem[2],xmm15[3],mem[3]
6705 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
6706 ; SSE-NEXT:    unpckhps {{.*#+}} xmm3 = xmm3[2],xmm14[2],xmm3[3],xmm14[3]
6707 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
6708 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Folded Reload
6709 ; SSE-NEXT:    # xmm14 = xmm14[2],mem[2],xmm14[3],mem[3]
6710 ; SSE-NEXT:    movaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6711 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
6712 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Folded Reload
6713 ; SSE-NEXT:    # xmm14 = xmm14[2],mem[2],xmm14[3],mem[3]
6714 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload
6715 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Folded Reload
6716 ; SSE-NEXT:    # xmm13 = xmm13[2],mem[2],xmm13[3],mem[3]
6717 ; SSE-NEXT:    movaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6718 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload
6719 ; SSE-NEXT:    unpckhps {{.*#+}} xmm13 = xmm13[2],xmm11[2],xmm13[3],xmm11[3]
6720 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload
6721 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Folded Reload
6722 ; SSE-NEXT:    # xmm11 = xmm11[2],mem[2],xmm11[3],mem[3]
6723 ; SSE-NEXT:    movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6724 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload
6725 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Folded Reload
6726 ; SSE-NEXT:    # xmm11 = xmm11[2],mem[2],xmm11[3],mem[3]
6727 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload
6728 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Folded Reload
6729 ; SSE-NEXT:    # xmm12 = xmm12[2],mem[2],xmm12[3],mem[3]
6730 ; SSE-NEXT:    movaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6731 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload
6732 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Folded Reload
6733 ; SSE-NEXT:    # xmm12 = xmm12[2],mem[2],xmm12[3],mem[3]
6734 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
6735 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Folded Reload
6736 ; SSE-NEXT:    # xmm10 = xmm10[2],mem[2],xmm10[3],mem[3]
6737 ; SSE-NEXT:    movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6738 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
6739 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Folded Reload
6740 ; SSE-NEXT:    # xmm10 = xmm10[2],mem[2],xmm10[3],mem[3]
6741 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload
6742 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload
6743 ; SSE-NEXT:    # xmm9 = xmm9[2],mem[2],xmm9[3],mem[3]
6744 ; SSE-NEXT:    movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6745 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload
6746 ; SSE-NEXT:    unpckhps {{.*#+}} xmm9 = xmm9[2],xmm8[2],xmm9[3],xmm8[3]
6747 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
6748 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload
6749 ; SSE-NEXT:    # xmm8 = xmm8[2],mem[2],xmm8[3],mem[3]
6750 ; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6751 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
6752 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload
6753 ; SSE-NEXT:    # xmm8 = xmm8[2],mem[2],xmm8[3],mem[3]
6754 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6755 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6756 ; SSE-NEXT:    # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]
6757 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6758 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6759 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6760 ; SSE-NEXT:    # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]
6761 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6762 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6763 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6764 ; SSE-NEXT:    # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]
6765 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6766 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6767 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6768 ; SSE-NEXT:    # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]
6769 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6770 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6771 ; SSE-NEXT:    unpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
6772 ; SSE-NEXT:    # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]
6773 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6774 ; SSE-NEXT:    movaps %xmm2, %xmm0
6775 ; SSE-NEXT:    movlhps {{.*#+}} xmm0 = xmm0[0],xmm7[0]
6776 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6777 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm7[1]
6778 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6779 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6780 ; SSE-NEXT:    movaps %xmm0, %xmm2
6781 ; SSE-NEXT:    movaps (%rsp), %xmm7 # 16-byte Reload
6782 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm7[0]
6783 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6784 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm7[1]
6785 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6786 ; SSE-NEXT:    movaps %xmm1, %xmm0
6787 ; SSE-NEXT:    movaps %xmm1, %xmm2
6788 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6789 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm1[0]
6790 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6791 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]
6792 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6793 ; SSE-NEXT:    movaps %xmm5, %xmm2
6794 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6795 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm1[0]
6796 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6797 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm1[1]
6798 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6799 ; SSE-NEXT:    movaps %xmm4, %xmm2
6800 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm6[0]
6801 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6802 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm6[1]
6803 ; SSE-NEXT:    movaps %xmm4, (%rsp) # 16-byte Spill
6804 ; SSE-NEXT:    movaps %xmm15, %xmm0
6805 ; SSE-NEXT:    movaps %xmm15, %xmm2
6806 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6807 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm1[0]
6808 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6809 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]
6810 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6811 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6812 ; SSE-NEXT:    movaps %xmm0, %xmm15
6813 ; SSE-NEXT:    movlhps {{.*#+}} xmm15 = xmm15[0],xmm3[0]
6814 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm3[1]
6815 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6816 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6817 ; SSE-NEXT:    movaps %xmm0, %xmm2
6818 ; SSE-NEXT:    movaps %xmm14, %xmm1
6819 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm14[0]
6820 ; SSE-NEXT:    movaps %xmm2, %xmm14
6821 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]
6822 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6823 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6824 ; SSE-NEXT:    movaps %xmm0, %xmm2
6825 ; SSE-NEXT:    movaps %xmm13, %xmm1
6826 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm13[0]
6827 ; SSE-NEXT:    movaps %xmm2, %xmm13
6828 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]
6829 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6830 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6831 ; SSE-NEXT:    movaps %xmm0, %xmm7
6832 ; SSE-NEXT:    movlhps {{.*#+}} xmm7 = xmm7[0],xmm11[0]
6833 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm11[1]
6834 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6835 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6836 ; SSE-NEXT:    movaps %xmm0, %xmm6
6837 ; SSE-NEXT:    movlhps {{.*#+}} xmm6 = xmm6[0],xmm12[0]
6838 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm12[1]
6839 ; SSE-NEXT:    movaps %xmm0, %xmm12
6840 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6841 ; SSE-NEXT:    movaps %xmm0, %xmm2
6842 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm10[0]
6843 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm10[1]
6844 ; SSE-NEXT:    movaps %xmm0, %xmm10
6845 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6846 ; SSE-NEXT:    movaps %xmm0, %xmm5
6847 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm9[0]
6848 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm9[1]
6849 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6850 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6851 ; SSE-NEXT:    movaps %xmm0, %xmm4
6852 ; SSE-NEXT:    movlhps {{.*#+}} xmm4 = xmm4[0],xmm8[0]
6853 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm8[1]
6854 ; SSE-NEXT:    movaps %xmm0, %xmm8
6855 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
6856 ; SSE-NEXT:    movaps %xmm0, %xmm3
6857 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6858 ; SSE-NEXT:    movlhps {{.*#+}} xmm3 = xmm3[0],xmm1[0]
6859 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]
6860 ; SSE-NEXT:    movaps %xmm0, %xmm9
6861 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload
6862 ; SSE-NEXT:    movaps %xmm11, %xmm0
6863 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6864 ; SSE-NEXT:    movlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]
6865 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm11 = xmm11[1],xmm1[1]
6866 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6867 ; SSE-NEXT:    movaps %xmm1, 224(%rsi)
6868 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6869 ; SSE-NEXT:    movaps %xmm1, 160(%rsi)
6870 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6871 ; SSE-NEXT:    movaps %xmm1, 96(%rsi)
6872 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6873 ; SSE-NEXT:    movaps %xmm1, 32(%rsi)
6874 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6875 ; SSE-NEXT:    movaps %xmm1, 240(%rsi)
6876 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6877 ; SSE-NEXT:    movaps %xmm1, 176(%rsi)
6878 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6879 ; SSE-NEXT:    movaps %xmm1, 112(%rsi)
6880 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6881 ; SSE-NEXT:    movaps %xmm1, 48(%rsi)
6882 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6883 ; SSE-NEXT:    movaps %xmm1, 192(%rsi)
6884 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6885 ; SSE-NEXT:    movaps %xmm1, 128(%rsi)
6886 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6887 ; SSE-NEXT:    movaps %xmm1, 64(%rsi)
6888 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6889 ; SSE-NEXT:    movaps %xmm1, (%rsi)
6890 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6891 ; SSE-NEXT:    movaps %xmm1, 208(%rsi)
6892 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6893 ; SSE-NEXT:    movaps %xmm1, 144(%rsi)
6894 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6895 ; SSE-NEXT:    movaps %xmm1, 80(%rsi)
6896 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6897 ; SSE-NEXT:    movaps %xmm1, 16(%rsi)
6898 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6899 ; SSE-NEXT:    movaps %xmm1, 224(%rdx)
6900 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6901 ; SSE-NEXT:    movaps %xmm1, 240(%rdx)
6902 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6903 ; SSE-NEXT:    movaps %xmm1, 192(%rdx)
6904 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6905 ; SSE-NEXT:    movaps %xmm1, 208(%rdx)
6906 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6907 ; SSE-NEXT:    movaps %xmm1, 160(%rdx)
6908 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6909 ; SSE-NEXT:    movaps %xmm1, 176(%rdx)
6910 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6911 ; SSE-NEXT:    movaps %xmm1, 128(%rdx)
6912 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6913 ; SSE-NEXT:    movaps %xmm1, 144(%rdx)
6914 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6915 ; SSE-NEXT:    movaps %xmm1, 96(%rdx)
6916 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6917 ; SSE-NEXT:    movaps %xmm1, 112(%rdx)
6918 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6919 ; SSE-NEXT:    movaps %xmm1, 64(%rdx)
6920 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6921 ; SSE-NEXT:    movaps %xmm1, 80(%rdx)
6922 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6923 ; SSE-NEXT:    movaps %xmm1, 32(%rdx)
6924 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6925 ; SSE-NEXT:    movaps %xmm1, 48(%rdx)
6926 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6927 ; SSE-NEXT:    movaps %xmm1, (%rdx)
6928 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6929 ; SSE-NEXT:    movaps %xmm1, 16(%rdx)
6930 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6931 ; SSE-NEXT:    movaps %xmm1, 240(%rcx)
6932 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6933 ; SSE-NEXT:    movaps %xmm1, 224(%rcx)
6934 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6935 ; SSE-NEXT:    movaps %xmm1, 208(%rcx)
6936 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6937 ; SSE-NEXT:    movaps %xmm1, 192(%rcx)
6938 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6939 ; SSE-NEXT:    movaps %xmm1, 176(%rcx)
6940 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6941 ; SSE-NEXT:    movaps %xmm1, 160(%rcx)
6942 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6943 ; SSE-NEXT:    movaps %xmm1, 144(%rcx)
6944 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6945 ; SSE-NEXT:    movaps %xmm1, 128(%rcx)
6946 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6947 ; SSE-NEXT:    movaps %xmm1, 112(%rcx)
6948 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6949 ; SSE-NEXT:    movaps %xmm1, 96(%rcx)
6950 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6951 ; SSE-NEXT:    movaps %xmm1, 80(%rcx)
6952 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6953 ; SSE-NEXT:    movaps %xmm1, 64(%rcx)
6954 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6955 ; SSE-NEXT:    movaps %xmm1, 48(%rcx)
6956 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6957 ; SSE-NEXT:    movaps %xmm1, 32(%rcx)
6958 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6959 ; SSE-NEXT:    movaps %xmm1, 16(%rcx)
6960 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6961 ; SSE-NEXT:    movaps %xmm1, (%rcx)
6962 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6963 ; SSE-NEXT:    movaps %xmm1, 240(%r8)
6964 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6965 ; SSE-NEXT:    movaps %xmm1, 224(%r8)
6966 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6967 ; SSE-NEXT:    movaps %xmm1, 208(%r8)
6968 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6969 ; SSE-NEXT:    movaps %xmm1, 192(%r8)
6970 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6971 ; SSE-NEXT:    movaps %xmm1, 176(%r8)
6972 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6973 ; SSE-NEXT:    movaps %xmm1, 160(%r8)
6974 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6975 ; SSE-NEXT:    movaps %xmm1, 144(%r8)
6976 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6977 ; SSE-NEXT:    movaps %xmm1, 128(%r8)
6978 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6979 ; SSE-NEXT:    movaps %xmm1, 112(%r8)
6980 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6981 ; SSE-NEXT:    movaps %xmm1, 96(%r8)
6982 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6983 ; SSE-NEXT:    movaps %xmm1, 80(%r8)
6984 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6985 ; SSE-NEXT:    movaps %xmm1, 64(%r8)
6986 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6987 ; SSE-NEXT:    movaps %xmm1, 48(%r8)
6988 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6989 ; SSE-NEXT:    movaps %xmm1, 32(%r8)
6990 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6991 ; SSE-NEXT:    movaps %xmm1, 16(%r8)
6992 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6993 ; SSE-NEXT:    movaps %xmm1, (%r8)
6994 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6995 ; SSE-NEXT:    movaps %xmm1, 240(%r9)
6996 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6997 ; SSE-NEXT:    movaps %xmm1, 224(%r9)
6998 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
6999 ; SSE-NEXT:    movaps %xmm1, 208(%r9)
7000 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7001 ; SSE-NEXT:    movaps %xmm1, 192(%r9)
7002 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7003 ; SSE-NEXT:    movaps %xmm1, 176(%r9)
7004 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7005 ; SSE-NEXT:    movaps %xmm1, 160(%r9)
7006 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7007 ; SSE-NEXT:    movaps %xmm1, 144(%r9)
7008 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7009 ; SSE-NEXT:    movaps %xmm1, 128(%r9)
7010 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7011 ; SSE-NEXT:    movaps %xmm1, 112(%r9)
7012 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7013 ; SSE-NEXT:    movaps %xmm1, 96(%r9)
7014 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7015 ; SSE-NEXT:    movaps %xmm1, 80(%r9)
7016 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7017 ; SSE-NEXT:    movaps %xmm1, 64(%r9)
7018 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7019 ; SSE-NEXT:    movaps %xmm1, 48(%r9)
7020 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7021 ; SSE-NEXT:    movaps %xmm1, 32(%r9)
7022 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7023 ; SSE-NEXT:    movaps %xmm1, 16(%r9)
7024 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7025 ; SSE-NEXT:    movaps %xmm1, (%r9)
7026 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
7027 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7028 ; SSE-NEXT:    movaps %xmm1, 240(%rax)
7029 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7030 ; SSE-NEXT:    movaps %xmm1, 224(%rax)
7031 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7032 ; SSE-NEXT:    movaps %xmm1, 208(%rax)
7033 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7034 ; SSE-NEXT:    movaps %xmm1, 192(%rax)
7035 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7036 ; SSE-NEXT:    movaps %xmm1, 176(%rax)
7037 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7038 ; SSE-NEXT:    movaps %xmm1, 160(%rax)
7039 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7040 ; SSE-NEXT:    movaps %xmm1, 144(%rax)
7041 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7042 ; SSE-NEXT:    movaps %xmm1, 128(%rax)
7043 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7044 ; SSE-NEXT:    movaps %xmm1, 112(%rax)
7045 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7046 ; SSE-NEXT:    movaps %xmm1, 96(%rax)
7047 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7048 ; SSE-NEXT:    movaps %xmm1, 80(%rax)
7049 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7050 ; SSE-NEXT:    movaps %xmm1, 64(%rax)
7051 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7052 ; SSE-NEXT:    movaps %xmm1, 48(%rax)
7053 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7054 ; SSE-NEXT:    movaps %xmm1, 32(%rax)
7055 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7056 ; SSE-NEXT:    movaps %xmm1, 16(%rax)
7057 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7058 ; SSE-NEXT:    movaps %xmm1, (%rax)
7059 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
7060 ; SSE-NEXT:    movaps %xmm3, 240(%rax)
7061 ; SSE-NEXT:    movaps %xmm4, 224(%rax)
7062 ; SSE-NEXT:    movaps %xmm5, 208(%rax)
7063 ; SSE-NEXT:    movaps %xmm2, 192(%rax)
7064 ; SSE-NEXT:    movaps %xmm6, 176(%rax)
7065 ; SSE-NEXT:    movaps %xmm7, 160(%rax)
7066 ; SSE-NEXT:    movaps %xmm13, 144(%rax)
7067 ; SSE-NEXT:    movaps %xmm14, 128(%rax)
7068 ; SSE-NEXT:    movaps %xmm15, 112(%rax)
7069 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7070 ; SSE-NEXT:    movaps %xmm1, 96(%rax)
7071 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7072 ; SSE-NEXT:    movaps %xmm1, 80(%rax)
7073 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7074 ; SSE-NEXT:    movaps %xmm1, 64(%rax)
7075 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7076 ; SSE-NEXT:    movaps %xmm1, 48(%rax)
7077 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7078 ; SSE-NEXT:    movaps %xmm1, 32(%rax)
7079 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7080 ; SSE-NEXT:    movaps %xmm1, 16(%rax)
7081 ; SSE-NEXT:    movaps %xmm0, (%rax)
7082 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
7083 ; SSE-NEXT:    movaps %xmm9, 240(%rax)
7084 ; SSE-NEXT:    movaps %xmm8, 224(%rax)
7085 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7086 ; SSE-NEXT:    movaps %xmm0, 208(%rax)
7087 ; SSE-NEXT:    movaps %xmm10, 192(%rax)
7088 ; SSE-NEXT:    movaps %xmm12, 176(%rax)
7089 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7090 ; SSE-NEXT:    movaps %xmm0, 160(%rax)
7091 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7092 ; SSE-NEXT:    movaps %xmm0, 144(%rax)
7093 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7094 ; SSE-NEXT:    movaps %xmm0, 128(%rax)
7095 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7096 ; SSE-NEXT:    movaps %xmm0, 112(%rax)
7097 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7098 ; SSE-NEXT:    movaps %xmm0, 96(%rax)
7099 ; SSE-NEXT:    movaps (%rsp), %xmm0 # 16-byte Reload
7100 ; SSE-NEXT:    movaps %xmm0, 80(%rax)
7101 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7102 ; SSE-NEXT:    movaps %xmm0, 64(%rax)
7103 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7104 ; SSE-NEXT:    movaps %xmm0, 48(%rax)
7105 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7106 ; SSE-NEXT:    movaps %xmm0, 32(%rax)
7107 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7108 ; SSE-NEXT:    movaps %xmm0, 16(%rax)
7109 ; SSE-NEXT:    movaps %xmm11, (%rax)
7110 ; SSE-NEXT:    addq $2232, %rsp # imm = 0x8B8
7111 ; SSE-NEXT:    retq
7113 ; AVX1-ONLY-LABEL: load_i32_stride8_vf64:
7114 ; AVX1-ONLY:       # %bb.0:
7115 ; AVX1-ONLY-NEXT:    subq $3720, %rsp # imm = 0xE88
7116 ; AVX1-ONLY-NEXT:    vmovaps 288(%rdi), %xmm13
7117 ; AVX1-ONLY-NEXT:    vmovaps 256(%rdi), %xmm2
7118 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm2[0],xmm13[0],xmm2[1],xmm13[1]
7119 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, %xmm15
7120 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7121 ; AVX1-ONLY-NEXT:    vmovaps 352(%rdi), %xmm1
7122 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7123 ; AVX1-ONLY-NEXT:    vmovaps 320(%rdi), %xmm2
7124 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7125 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
7126 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7127 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]
7128 ; AVX1-ONLY-NEXT:    vmovaps 416(%rdi), %xmm1
7129 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7130 ; AVX1-ONLY-NEXT:    vmovaps 384(%rdi), %xmm2
7131 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7132 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
7133 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
7134 ; AVX1-ONLY-NEXT:    vmovaps 480(%rdi), %xmm2
7135 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7136 ; AVX1-ONLY-NEXT:    vmovaps 448(%rdi), %xmm3
7137 ; AVX1-ONLY-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7138 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
7139 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7140 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[0,1,0,1]
7141 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
7142 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
7143 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
7144 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7145 ; AVX1-ONLY-NEXT:    vmovaps 928(%rdi), %xmm1
7146 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7147 ; AVX1-ONLY-NEXT:    vmovaps 896(%rdi), %xmm0
7148 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7149 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
7150 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
7151 ; AVX1-ONLY-NEXT:    vmovaps 992(%rdi), %xmm1
7152 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7153 ; AVX1-ONLY-NEXT:    vmovaps 960(%rdi), %xmm2
7154 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7155 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
7156 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7157 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[0,1,0,1]
7158 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
7159 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
7160 ; AVX1-ONLY-NEXT:    vmovaps 800(%rdi), %xmm1
7161 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7162 ; AVX1-ONLY-NEXT:    vmovaps 768(%rdi), %xmm14
7163 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm14[0],xmm1[0],xmm14[1],xmm1[1]
7164 ; AVX1-ONLY-NEXT:    vmovaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7165 ; AVX1-ONLY-NEXT:    vmovaps 864(%rdi), %xmm2
7166 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7167 ; AVX1-ONLY-NEXT:    vmovaps 832(%rdi), %xmm3
7168 ; AVX1-ONLY-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7169 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
7170 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7171 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]
7172 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7173 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7174 ; AVX1-ONLY-NEXT:    vmovaps 1440(%rdi), %xmm1
7175 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7176 ; AVX1-ONLY-NEXT:    vmovaps 1408(%rdi), %xmm0
7177 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7178 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
7179 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
7180 ; AVX1-ONLY-NEXT:    vmovaps 1504(%rdi), %xmm1
7181 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7182 ; AVX1-ONLY-NEXT:    vmovaps 1472(%rdi), %xmm2
7183 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7184 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
7185 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7186 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[0,1,0,1]
7187 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
7188 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
7189 ; AVX1-ONLY-NEXT:    vmovaps 1312(%rdi), %xmm2
7190 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7191 ; AVX1-ONLY-NEXT:    vmovaps 1280(%rdi), %xmm1
7192 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7193 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
7194 ; AVX1-ONLY-NEXT:    vmovaps 1376(%rdi), %xmm2
7195 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7196 ; AVX1-ONLY-NEXT:    vmovaps 1344(%rdi), %xmm3
7197 ; AVX1-ONLY-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7198 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
7199 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7200 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]
7201 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7202 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7203 ; AVX1-ONLY-NEXT:    vmovaps 1952(%rdi), %xmm0
7204 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7205 ; AVX1-ONLY-NEXT:    vmovaps 1920(%rdi), %xmm1
7206 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7207 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
7208 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
7209 ; AVX1-ONLY-NEXT:    vmovaps 2016(%rdi), %xmm1
7210 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7211 ; AVX1-ONLY-NEXT:    vmovaps 1984(%rdi), %xmm2
7212 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7213 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
7214 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7215 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[0,1,0,1]
7216 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
7217 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
7218 ; AVX1-ONLY-NEXT:    vmovaps 1824(%rdi), %xmm1
7219 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7220 ; AVX1-ONLY-NEXT:    vmovaps 1792(%rdi), %xmm5
7221 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm5[0],xmm1[0],xmm5[1],xmm1[1]
7222 ; AVX1-ONLY-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7223 ; AVX1-ONLY-NEXT:    vmovaps 1888(%rdi), %xmm2
7224 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7225 ; AVX1-ONLY-NEXT:    vmovaps 1856(%rdi), %xmm3
7226 ; AVX1-ONLY-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7227 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm10 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
7228 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm10[0]
7229 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7230 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7231 ; AVX1-ONLY-NEXT:    vmovaps 160(%rdi), %xmm0
7232 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7233 ; AVX1-ONLY-NEXT:    vmovaps 128(%rdi), %xmm1
7234 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7235 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
7236 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
7237 ; AVX1-ONLY-NEXT:    vmovaps 224(%rdi), %xmm1
7238 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7239 ; AVX1-ONLY-NEXT:    vmovaps 192(%rdi), %xmm2
7240 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7241 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
7242 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7243 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[0,1,0,1]
7244 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
7245 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
7246 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %xmm1
7247 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7248 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %xmm4
7249 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm4[0],xmm1[0],xmm4[1],xmm1[1]
7250 ; AVX1-ONLY-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7251 ; AVX1-ONLY-NEXT:    vmovaps 96(%rdi), %xmm2
7252 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7253 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdi), %xmm3
7254 ; AVX1-ONLY-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7255 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
7256 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm3[0]
7257 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7258 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7259 ; AVX1-ONLY-NEXT:    vmovaps 672(%rdi), %xmm1
7260 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7261 ; AVX1-ONLY-NEXT:    vmovaps 640(%rdi), %xmm0
7262 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7263 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
7264 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
7265 ; AVX1-ONLY-NEXT:    vmovaps 736(%rdi), %xmm1
7266 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7267 ; AVX1-ONLY-NEXT:    vmovaps 704(%rdi), %xmm2
7268 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7269 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
7270 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7271 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm6 = xmm1[0,1,0,1]
7272 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
7273 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm6 = ymm0[0,1,2,3,4,5],ymm6[6,7]
7274 ; AVX1-ONLY-NEXT:    vmovaps 544(%rdi), %xmm0
7275 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7276 ; AVX1-ONLY-NEXT:    vmovaps 512(%rdi), %xmm2
7277 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]
7278 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7279 ; AVX1-ONLY-NEXT:    vmovaps 608(%rdi), %xmm0
7280 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7281 ; AVX1-ONLY-NEXT:    vmovaps 576(%rdi), %xmm1
7282 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7283 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
7284 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm7 = xmm7[0],xmm1[0]
7285 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm7[0,1,2,3],ymm6[4,5,6,7]
7286 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7287 ; AVX1-ONLY-NEXT:    vmovaps 1184(%rdi), %xmm0
7288 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7289 ; AVX1-ONLY-NEXT:    vmovaps 1152(%rdi), %xmm6
7290 ; AVX1-ONLY-NEXT:    vmovaps %xmm6, (%rsp) # 16-byte Spill
7291 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm6 = xmm6[0],xmm0[0],xmm6[1],xmm0[1]
7292 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm7
7293 ; AVX1-ONLY-NEXT:    vmovaps 1248(%rdi), %xmm0
7294 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7295 ; AVX1-ONLY-NEXT:    vmovaps 1216(%rdi), %xmm6
7296 ; AVX1-ONLY-NEXT:    vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7297 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm6[0],xmm0[0],xmm6[1],xmm0[1]
7298 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7299 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm8 = xmm0[0,1,0,1]
7300 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm8
7301 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm8 = ymm7[0,1,2,3,4,5],ymm8[6,7]
7302 ; AVX1-ONLY-NEXT:    vmovaps 1056(%rdi), %xmm0
7303 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7304 ; AVX1-ONLY-NEXT:    vmovaps 1024(%rdi), %xmm6
7305 ; AVX1-ONLY-NEXT:    vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7306 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm9 = xmm6[0],xmm0[0],xmm6[1],xmm0[1]
7307 ; AVX1-ONLY-NEXT:    vmovaps 1120(%rdi), %xmm0
7308 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7309 ; AVX1-ONLY-NEXT:    vmovaps 1088(%rdi), %xmm6
7310 ; AVX1-ONLY-NEXT:    vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7311 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm6[0],xmm0[0],xmm6[1],xmm0[1]
7312 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7313 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm9 = xmm9[0],xmm0[0]
7314 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm9[0,1,2,3],ymm8[4,5,6,7]
7315 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7316 ; AVX1-ONLY-NEXT:    vmovaps 1696(%rdi), %xmm0
7317 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7318 ; AVX1-ONLY-NEXT:    vmovaps 1664(%rdi), %xmm6
7319 ; AVX1-ONLY-NEXT:    vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7320 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm8 = xmm6[0],xmm0[0],xmm6[1],xmm0[1]
7321 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm9
7322 ; AVX1-ONLY-NEXT:    vmovaps 1760(%rdi), %xmm0
7323 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7324 ; AVX1-ONLY-NEXT:    vmovaps 1728(%rdi), %xmm6
7325 ; AVX1-ONLY-NEXT:    vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7326 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm6[0],xmm0[0],xmm6[1],xmm0[1]
7327 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7328 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm11 = xmm0[0,1,0,1]
7329 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm11, %ymm0, %ymm11
7330 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm11 = ymm9[0,1,2,3,4,5],ymm11[6,7]
7331 ; AVX1-ONLY-NEXT:    vmovaps 1568(%rdi), %xmm12
7332 ; AVX1-ONLY-NEXT:    vmovaps 1536(%rdi), %xmm8
7333 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm8[0],xmm12[0],xmm8[1],xmm12[1]
7334 ; AVX1-ONLY-NEXT:    vmovaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7335 ; AVX1-ONLY-NEXT:    vmovaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7336 ; AVX1-ONLY-NEXT:    vmovaps 1632(%rdi), %xmm6
7337 ; AVX1-ONLY-NEXT:    vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7338 ; AVX1-ONLY-NEXT:    vmovaps 1600(%rdi), %xmm7
7339 ; AVX1-ONLY-NEXT:    vmovaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7340 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} xmm9 = xmm7[0],xmm6[0],xmm7[1],xmm6[1]
7341 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm0 = xmm0[0],xmm9[0]
7342 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm11[4,5,6,7]
7343 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7344 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm15[1,1,1,1]
7345 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0],xmm13[1],xmm0[2,3]
7346 ; AVX1-ONLY-NEXT:    vblendps $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
7347 ; AVX1-ONLY-NEXT:    # xmm0 = xmm0[0,1],mem[2,3]
7348 ; AVX1-ONLY-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm11 # 16-byte Folded Reload
7349 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
7350 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm15 = xmm7[1,1,1,1]
7351 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
7352 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm15 = xmm15[0],xmm6[1],xmm15[2,3]
7353 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm15
7354 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm11 = ymm15[0,1,2,3,4,5],ymm11[6,7]
7355 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm11[4,5,6,7]
7356 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7357 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm14[1,1,1,1]
7358 ; AVX1-ONLY-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
7359 ; AVX1-ONLY-NEXT:    # xmm0 = xmm0[0],mem[1],xmm0[2,3]
7360 ; AVX1-ONLY-NEXT:    vblendps $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
7361 ; AVX1-ONLY-NEXT:    # xmm0 = xmm0[0,1],mem[2,3]
7362 ; AVX1-ONLY-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm11 # 16-byte Folded Reload
7363 ; AVX1-ONLY-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload
7364 ; AVX1-ONLY-NEXT:    # xmm15 = mem[1,1,1,1]
7365 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
7366 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm15 = xmm15[0],xmm14[1],xmm15[2,3]
7367 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm15
7368 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm11 = ymm15[0,1,2,3,4,5],ymm11[6,7]
7369 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm11[4,5,6,7]
7370 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7371 ; AVX1-ONLY-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
7372 ; AVX1-ONLY-NEXT:    # xmm0 = mem[1,1,1,1]
7373 ; AVX1-ONLY-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
7374 ; AVX1-ONLY-NEXT:    # xmm0 = xmm0[0],mem[1],xmm0[2,3]
7375 ; AVX1-ONLY-NEXT:    vblendps $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
7376 ; AVX1-ONLY-NEXT:    # xmm0 = xmm0[0,1],mem[2,3]
7377 ; AVX1-ONLY-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm11 # 16-byte Folded Reload
7378 ; AVX1-ONLY-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload
7379 ; AVX1-ONLY-NEXT:    # xmm15 = mem[1,1,1,1]
7380 ; AVX1-ONLY-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload
7381 ; AVX1-ONLY-NEXT:    # xmm15 = xmm15[0],mem[1],xmm15[2,3]
7382 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm15
7383 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm11 = ymm15[0,1,2,3,4,5],ymm11[6,7]
7384 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm11[4,5,6,7]
7385 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7386 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm5[1,1,1,1]
7387 ; AVX1-ONLY-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
7388 ; AVX1-ONLY-NEXT:    # xmm0 = xmm0[0],mem[1],xmm0[2,3]
7389 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm10[2,3]
7390 ; AVX1-ONLY-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm5 # 16-byte Folded Reload
7391 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload
7392 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm10 = xmm11[1,1,1,1]
7393 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
7394 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0],xmm15[1],xmm10[2,3]
7395 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
7396 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm10[0,1,2,3,4,5],ymm5[6,7]
7397 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm5[4,5,6,7]
7398 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7399 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm4[1,1,1,1]
7400 ; AVX1-ONLY-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
7401 ; AVX1-ONLY-NEXT:    # xmm0 = xmm0[0],mem[1],xmm0[2,3]
7402 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm3[2,3]
7403 ; AVX1-ONLY-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm3 # 16-byte Folded Reload
7404 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
7405 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm4 = xmm10[1,1,1,1]
7406 ; AVX1-ONLY-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload
7407 ; AVX1-ONLY-NEXT:    # xmm4 = xmm4[0],mem[1],xmm4[2,3]
7408 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
7409 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3,4,5],ymm3[6,7]
7410 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
7411 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7412 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm2[1,1,1,1]
7413 ; AVX1-ONLY-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
7414 ; AVX1-ONLY-NEXT:    # xmm0 = xmm0[0],mem[1],xmm0[2,3]
7415 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
7416 ; AVX1-ONLY-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 16-byte Folded Reload
7417 ; AVX1-ONLY-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
7418 ; AVX1-ONLY-NEXT:    # xmm2 = mem[1,1,1,1]
7419 ; AVX1-ONLY-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
7420 ; AVX1-ONLY-NEXT:    # xmm2 = xmm2[0],mem[1],xmm2[2,3]
7421 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
7422 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
7423 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
7424 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7425 ; AVX1-ONLY-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
7426 ; AVX1-ONLY-NEXT:    # xmm0 = mem[1,1,1,1]
7427 ; AVX1-ONLY-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
7428 ; AVX1-ONLY-NEXT:    # xmm0 = xmm0[0],mem[1],xmm0[2,3]
7429 ; AVX1-ONLY-NEXT:    vblendps $12, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
7430 ; AVX1-ONLY-NEXT:    # xmm0 = xmm0[0,1],mem[2,3]
7431 ; AVX1-ONLY-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 16-byte Folded Reload
7432 ; AVX1-ONLY-NEXT:    vpermilps $85, (%rsp), %xmm2 # 16-byte Folded Reload
7433 ; AVX1-ONLY-NEXT:    # xmm2 = mem[1,1,1,1]
7434 ; AVX1-ONLY-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
7435 ; AVX1-ONLY-NEXT:    # xmm2 = xmm2[0],mem[1],xmm2[2,3]
7436 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
7437 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
7438 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
7439 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7440 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm8[1,1,1,1]
7441 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0],xmm12[1],xmm0[2,3]
7442 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm9[2,3]
7443 ; AVX1-ONLY-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 16-byte Folded Reload
7444 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload
7445 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm9[1,1,1,1]
7446 ; AVX1-ONLY-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
7447 ; AVX1-ONLY-NEXT:    # xmm2 = xmm2[0],mem[1],xmm2[2,3]
7448 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
7449 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
7450 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
7451 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7452 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7453 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm0[2],xmm13[2],xmm0[3],xmm13[3]
7454 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7455 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm7[2],xmm6[2],xmm7[3],xmm6[3]
7456 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7457 ; AVX1-ONLY-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
7458 ; AVX1-ONLY-NEXT:    # xmm0 = mem[2,2,2,2]
7459 ; AVX1-ONLY-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
7460 ; AVX1-ONLY-NEXT:    # xmm0 = mem[0,1,2],xmm0[3]
7461 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
7462 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
7463 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7464 ; AVX1-ONLY-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
7465 ; AVX1-ONLY-NEXT:    # xmm1 = mem[2,2,2,2]
7466 ; AVX1-ONLY-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
7467 ; AVX1-ONLY-NEXT:    # xmm1 = mem[0,1,2],xmm1[3]
7468 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
7469 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7470 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7471 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7472 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm2 # 16-byte Folded Reload
7473 ; AVX1-ONLY-NEXT:    # xmm2 = xmm0[2],mem[2],xmm0[3],mem[3]
7474 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7475 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7476 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm0[2],xmm14[2],xmm0[3],xmm14[3]
7477 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7478 ; AVX1-ONLY-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
7479 ; AVX1-ONLY-NEXT:    # xmm0 = mem[2,2,2,2]
7480 ; AVX1-ONLY-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
7481 ; AVX1-ONLY-NEXT:    # xmm0 = mem[0,1,2],xmm0[3]
7482 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
7483 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
7484 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7485 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
7486 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm7[2,2,2,2]
7487 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
7488 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm6[0,1,2],xmm1[3]
7489 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
7490 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7491 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7492 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7493 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm2 # 16-byte Folded Reload
7494 ; AVX1-ONLY-NEXT:    # xmm2 = xmm0[2],mem[2],xmm0[3],mem[3]
7495 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7496 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7497 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm1 # 16-byte Folded Reload
7498 ; AVX1-ONLY-NEXT:    # xmm1 = xmm0[2],mem[2],xmm0[3],mem[3]
7499 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7500 ; AVX1-ONLY-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
7501 ; AVX1-ONLY-NEXT:    # xmm0 = mem[2,2,2,2]
7502 ; AVX1-ONLY-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
7503 ; AVX1-ONLY-NEXT:    # xmm0 = mem[0,1,2],xmm0[3]
7504 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
7505 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
7506 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7507 ; AVX1-ONLY-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
7508 ; AVX1-ONLY-NEXT:    # xmm1 = mem[2,2,2,2]
7509 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
7510 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm4[0,1,2],xmm1[3]
7511 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
7512 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7513 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7514 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7515 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm3 # 16-byte Folded Reload
7516 ; AVX1-ONLY-NEXT:    # xmm3 = xmm0[2],mem[2],xmm0[3],mem[3]
7517 ; AVX1-ONLY-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7518 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm11[2],xmm15[2],xmm11[3],xmm15[3]
7519 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7520 ; AVX1-ONLY-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
7521 ; AVX1-ONLY-NEXT:    # xmm0 = mem[2,2,2,2]
7522 ; AVX1-ONLY-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
7523 ; AVX1-ONLY-NEXT:    # xmm0 = mem[0,1,2],xmm0[3]
7524 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
7525 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
7526 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7527 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
7528 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm5[2,2,2,2]
7529 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
7530 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1,2],xmm1[3]
7531 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm3[0,1],xmm1[2,3]
7532 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7533 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7534 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7535 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm8 # 16-byte Folded Reload
7536 ; AVX1-ONLY-NEXT:    # xmm8 = xmm0[2],mem[2],xmm0[3],mem[3]
7537 ; AVX1-ONLY-NEXT:    vmovaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7538 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10, %xmm1 # 16-byte Folded Reload
7539 ; AVX1-ONLY-NEXT:    # xmm1 = xmm10[2],mem[2],xmm10[3],mem[3]
7540 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7541 ; AVX1-ONLY-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
7542 ; AVX1-ONLY-NEXT:    # xmm0 = mem[2,2,2,2]
7543 ; AVX1-ONLY-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
7544 ; AVX1-ONLY-NEXT:    # xmm0 = mem[0,1,2],xmm0[3]
7545 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
7546 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
7547 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7548 ; AVX1-ONLY-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
7549 ; AVX1-ONLY-NEXT:    # xmm1 = mem[2,2,2,2]
7550 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
7551 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm3[0,1,2],xmm1[3]
7552 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm8[0,1],xmm1[2,3]
7553 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7554 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7555 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7556 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm8 # 16-byte Folded Reload
7557 ; AVX1-ONLY-NEXT:    # xmm8 = xmm0[2],mem[2],xmm0[3],mem[3]
7558 ; AVX1-ONLY-NEXT:    vmovaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7559 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7560 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
7561 ; AVX1-ONLY-NEXT:    # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]
7562 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7563 ; AVX1-ONLY-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload
7564 ; AVX1-ONLY-NEXT:    # xmm15 = mem[2,2,2,2]
7565 ; AVX1-ONLY-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm15 # 16-byte Folded Reload
7566 ; AVX1-ONLY-NEXT:    # xmm15 = mem[0,1,2],xmm15[3]
7567 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm15
7568 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm14
7569 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3,4,5],ymm15[6,7]
7570 ; AVX1-ONLY-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload
7571 ; AVX1-ONLY-NEXT:    # xmm15 = mem[2,2,2,2]
7572 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7573 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm15 = xmm1[0,1,2],xmm15[3]
7574 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm15 = xmm8[0,1],xmm15[2,3]
7575 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm8 = ymm15[0,1,2,3],ymm14[4,5,6,7]
7576 ; AVX1-ONLY-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7577 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
7578 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8, %xmm0 # 16-byte Folded Reload
7579 ; AVX1-ONLY-NEXT:    # xmm0 = xmm8[2],mem[2],xmm8[3],mem[3]
7580 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7581 ; AVX1-ONLY-NEXT:    vmovaps (%rsp), %xmm8 # 16-byte Reload
7582 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8, %xmm8 # 16-byte Folded Reload
7583 ; AVX1-ONLY-NEXT:    # xmm8 = xmm8[2],mem[2],xmm8[3],mem[3]
7584 ; AVX1-ONLY-NEXT:    vmovaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7585 ; AVX1-ONLY-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Folded Reload
7586 ; AVX1-ONLY-NEXT:    # xmm13 = mem[2,2,2,2]
7587 ; AVX1-ONLY-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm13, %xmm13 # 16-byte Folded Reload
7588 ; AVX1-ONLY-NEXT:    # xmm13 = mem[0,1,2],xmm13[3]
7589 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm13, %ymm0, %ymm13
7590 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm12
7591 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3,4,5],ymm13[6,7]
7592 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
7593 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm13 = xmm15[2,2,2,2]
7594 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
7595 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm13 = xmm14[0,1,2],xmm13[3]
7596 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm13 = xmm0[0,1],xmm13[2,3]
7597 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm12[4,5,6,7]
7598 ; AVX1-ONLY-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7599 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
7600 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8, %xmm0 # 16-byte Folded Reload
7601 ; AVX1-ONLY-NEXT:    # xmm0 = xmm8[2],mem[2],xmm8[3],mem[3]
7602 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, (%rsp) # 16-byte Spill
7603 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm9, %xmm8 # 16-byte Folded Reload
7604 ; AVX1-ONLY-NEXT:    # xmm8 = xmm9[2],mem[2],xmm9[3],mem[3]
7605 ; AVX1-ONLY-NEXT:    vmovaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7606 ; AVX1-ONLY-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Folded Reload
7607 ; AVX1-ONLY-NEXT:    # xmm11 = mem[2,2,2,2]
7608 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload
7609 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm11 = xmm13[0,1,2],xmm11[3]
7610 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm11, %ymm0, %ymm11
7611 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm9
7612 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5],ymm11[6,7]
7613 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload
7614 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm11 = xmm12[2,2,2,2]
7615 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
7616 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm11 = xmm10[0,1,2],xmm11[3]
7617 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm11 = xmm0[0,1],xmm11[2,3]
7618 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm8 = ymm11[0,1,2,3],ymm9[4,5,6,7]
7619 ; AVX1-ONLY-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7620 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
7621 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8, %xmm9 # 16-byte Folded Reload
7622 ; AVX1-ONLY-NEXT:    # xmm9 = xmm8[2],mem[2],xmm8[3],mem[3]
7623 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
7624 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm9 = xmm8[1],xmm9[1]
7625 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
7626 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8, %xmm11 # 16-byte Folded Reload
7627 ; AVX1-ONLY-NEXT:    # xmm11 = xmm8[2],mem[2],xmm8[3],mem[3]
7628 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm11, %ymm0, %ymm11
7629 ; AVX1-ONLY-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload
7630 ; AVX1-ONLY-NEXT:    # xmm8 = mem[2,3,2,3]
7631 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm8
7632 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],ymm11[6,7]
7633 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm8 = ymm9[0,1,2,3],ymm8[4,5,6,7]
7634 ; AVX1-ONLY-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7635 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm8 = xmm6[2],xmm7[2],xmm6[3],xmm7[3]
7636 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
7637 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm7 = xmm6[1],xmm8[1]
7638 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
7639 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6, %xmm8 # 16-byte Folded Reload
7640 ; AVX1-ONLY-NEXT:    # xmm8 = xmm6[2],mem[2],xmm6[3],mem[3]
7641 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm8
7642 ; AVX1-ONLY-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload
7643 ; AVX1-ONLY-NEXT:    # xmm9 = mem[2,3,2,3]
7644 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm9, %ymm0, %ymm9
7645 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm8 = ymm9[0,1,2,3,4,5],ymm8[6,7]
7646 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3],ymm8[4,5,6,7]
7647 ; AVX1-ONLY-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7648 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm7 # 16-byte Folded Reload
7649 ; AVX1-ONLY-NEXT:    # xmm7 = xmm4[2],mem[2],xmm4[3],mem[3]
7650 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
7651 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm7 = xmm4[1],xmm7[1]
7652 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
7653 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm8 # 16-byte Folded Reload
7654 ; AVX1-ONLY-NEXT:    # xmm8 = xmm4[2],mem[2],xmm4[3],mem[3]
7655 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm8
7656 ; AVX1-ONLY-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload
7657 ; AVX1-ONLY-NEXT:    # xmm6 = mem[2,3,2,3]
7658 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
7659 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5],ymm8[6,7]
7660 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]
7661 ; AVX1-ONLY-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7662 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm6 = xmm2[2],xmm5[2],xmm2[3],xmm5[3]
7663 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
7664 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm4 = xmm2[1],xmm6[1]
7665 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
7666 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm6 # 16-byte Folded Reload
7667 ; AVX1-ONLY-NEXT:    # xmm6 = xmm2[2],mem[2],xmm2[3],mem[3]
7668 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
7669 ; AVX1-ONLY-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload
7670 ; AVX1-ONLY-NEXT:    # xmm5 = mem[2,3,2,3]
7671 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
7672 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],ymm6[6,7]
7673 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm5[4,5,6,7]
7674 ; AVX1-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7675 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm4 # 16-byte Folded Reload
7676 ; AVX1-ONLY-NEXT:    # xmm4 = xmm3[2],mem[2],xmm3[3],mem[3]
7677 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
7678 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm2 = xmm2[1],xmm4[1]
7679 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
7680 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm4 # 16-byte Folded Reload
7681 ; AVX1-ONLY-NEXT:    # xmm4 = xmm3[2],mem[2],xmm3[3],mem[3]
7682 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
7683 ; AVX1-ONLY-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload
7684 ; AVX1-ONLY-NEXT:    # xmm3 = mem[2,3,2,3]
7685 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
7686 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm4[6,7]
7687 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
7688 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7689 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm2 # 16-byte Folded Reload
7690 ; AVX1-ONLY-NEXT:    # xmm2 = xmm1[2],mem[2],xmm1[3],mem[3]
7691 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7692 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
7693 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7694 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm2 # 16-byte Folded Reload
7695 ; AVX1-ONLY-NEXT:    # xmm2 = xmm1[2],mem[2],xmm1[3],mem[3]
7696 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
7697 ; AVX1-ONLY-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
7698 ; AVX1-ONLY-NEXT:    # xmm1 = mem[2,3,2,3]
7699 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
7700 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
7701 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
7702 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7703 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm14[2],xmm15[2],xmm14[3],xmm15[3]
7704 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7705 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
7706 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
7707 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
7708 ; AVX1-ONLY-NEXT:    # xmm1 = xmm1[2],mem[2],xmm1[3],mem[3]
7709 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
7710 ; AVX1-ONLY-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
7711 ; AVX1-ONLY-NEXT:    # xmm2 = mem[2,3,2,3]
7712 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
7713 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
7714 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
7715 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7716 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm10[2],xmm12[2],xmm10[3],xmm12[3]
7717 ; AVX1-ONLY-NEXT:    vmovaps (%rsp), %xmm1 # 16-byte Reload
7718 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]
7719 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13, %xmm1 # 16-byte Folded Reload
7720 ; AVX1-ONLY-NEXT:    # xmm1 = xmm13[2],mem[2],xmm13[3],mem[3]
7721 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
7722 ; AVX1-ONLY-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
7723 ; AVX1-ONLY-NEXT:    # xmm2 = mem[2,3,2,3]
7724 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
7725 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
7726 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
7727 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7728 ; AVX1-ONLY-NEXT:    vmovaps 416(%rdi), %ymm2
7729 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7730 ; AVX1-ONLY-NEXT:    vmovaps 384(%rdi), %ymm3
7731 ; AVX1-ONLY-NEXT:    vmovaps 448(%rdi), %ymm1
7732 ; AVX1-ONLY-NEXT:    vmovaps 480(%rdi), %ymm0
7733 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7734 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
7735 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, %ymm4
7736 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
7737 ; AVX1-ONLY-NEXT:    vmovaps %ymm3, %ymm15
7738 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]
7739 ; AVX1-ONLY-NEXT:    vmovaps 288(%rdi), %ymm6
7740 ; AVX1-ONLY-NEXT:    vmovaps 256(%rdi), %ymm1
7741 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7742 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm6[0],ymm1[1],ymm6[1],ymm1[4],ymm6[4],ymm1[5],ymm6[5]
7743 ; AVX1-ONLY-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7744 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm1, %xmm1
7745 ; AVX1-ONLY-NEXT:    vmovaps 320(%rdi), %ymm2
7746 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7747 ; AVX1-ONLY-NEXT:    vmovaps 352(%rdi), %ymm5
7748 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm5[0],ymm2[0],ymm5[2],ymm2[2]
7749 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, %ymm9
7750 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[0,1,2,0,4,5,6,4]
7751 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm2, %xmm2
7752 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
7753 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7754 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7755 ; AVX1-ONLY-NEXT:    vmovaps 672(%rdi), %ymm12
7756 ; AVX1-ONLY-NEXT:    vmovaps 640(%rdi), %ymm8
7757 ; AVX1-ONLY-NEXT:    vmovaps 704(%rdi), %ymm1
7758 ; AVX1-ONLY-NEXT:    vmovaps 736(%rdi), %ymm0
7759 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7760 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
7761 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, %ymm13
7762 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7763 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm8[0],ymm12[0],ymm8[1],ymm12[1],ymm8[4],ymm12[4],ymm8[5],ymm12[5]
7764 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]
7765 ; AVX1-ONLY-NEXT:    vmovaps 544(%rdi), %ymm1
7766 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7767 ; AVX1-ONLY-NEXT:    vmovaps 512(%rdi), %ymm2
7768 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7769 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[4],ymm1[4],ymm2[5],ymm1[5]
7770 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm1, %xmm1
7771 ; AVX1-ONLY-NEXT:    vmovaps 576(%rdi), %ymm11
7772 ; AVX1-ONLY-NEXT:    vmovaps 608(%rdi), %ymm7
7773 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm7[0],ymm11[0],ymm7[2],ymm11[2]
7774 ; AVX1-ONLY-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7775 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[0,1,2,0,4,5,6,4]
7776 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm2, %xmm2
7777 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
7778 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7779 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7780 ; AVX1-ONLY-NEXT:    vmovaps 928(%rdi), %ymm2
7781 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7782 ; AVX1-ONLY-NEXT:    vmovaps 896(%rdi), %ymm3
7783 ; AVX1-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7784 ; AVX1-ONLY-NEXT:    vmovaps 960(%rdi), %ymm1
7785 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7786 ; AVX1-ONLY-NEXT:    vmovaps 992(%rdi), %ymm0
7787 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7788 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
7789 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
7790 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]
7791 ; AVX1-ONLY-NEXT:    vmovaps 800(%rdi), %ymm2
7792 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7793 ; AVX1-ONLY-NEXT:    vmovaps 768(%rdi), %ymm1
7794 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7795 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[1],ymm2[1],ymm1[4],ymm2[4],ymm1[5],ymm2[5]
7796 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm1, %xmm1
7797 ; AVX1-ONLY-NEXT:    vmovaps 832(%rdi), %ymm3
7798 ; AVX1-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7799 ; AVX1-ONLY-NEXT:    vmovaps 864(%rdi), %ymm2
7800 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7801 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
7802 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[0,1,2,0,4,5,6,4]
7803 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm2, %xmm2
7804 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
7805 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7806 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7807 ; AVX1-ONLY-NEXT:    vmovaps 1184(%rdi), %ymm2
7808 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7809 ; AVX1-ONLY-NEXT:    vmovaps 1152(%rdi), %ymm1
7810 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7811 ; AVX1-ONLY-NEXT:    vmovaps 1216(%rdi), %ymm0
7812 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7813 ; AVX1-ONLY-NEXT:    vmovaps 1248(%rdi), %ymm3
7814 ; AVX1-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7815 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm3[0],ymm0[0],ymm3[2],ymm0[2]
7816 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[1],ymm2[1],ymm1[4],ymm2[4],ymm1[5],ymm2[5]
7817 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]
7818 ; AVX1-ONLY-NEXT:    vmovaps 1056(%rdi), %ymm1
7819 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7820 ; AVX1-ONLY-NEXT:    vmovaps 1024(%rdi), %ymm2
7821 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7822 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[4],ymm1[4],ymm2[5],ymm1[5]
7823 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm1, %xmm1
7824 ; AVX1-ONLY-NEXT:    vmovaps 1088(%rdi), %ymm3
7825 ; AVX1-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7826 ; AVX1-ONLY-NEXT:    vmovaps 1120(%rdi), %ymm2
7827 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7828 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
7829 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[0,1,2,0,4,5,6,4]
7830 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm2, %xmm2
7831 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
7832 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7833 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7834 ; AVX1-ONLY-NEXT:    vmovaps 1440(%rdi), %ymm2
7835 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7836 ; AVX1-ONLY-NEXT:    vmovaps 1408(%rdi), %ymm3
7837 ; AVX1-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7838 ; AVX1-ONLY-NEXT:    vmovaps 1472(%rdi), %ymm1
7839 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7840 ; AVX1-ONLY-NEXT:    vmovaps 1504(%rdi), %ymm0
7841 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7842 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
7843 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
7844 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]
7845 ; AVX1-ONLY-NEXT:    vmovaps 1312(%rdi), %ymm2
7846 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7847 ; AVX1-ONLY-NEXT:    vmovaps 1280(%rdi), %ymm1
7848 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7849 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[1],ymm2[1],ymm1[4],ymm2[4],ymm1[5],ymm2[5]
7850 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm1, %xmm1
7851 ; AVX1-ONLY-NEXT:    vmovaps 1344(%rdi), %ymm3
7852 ; AVX1-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7853 ; AVX1-ONLY-NEXT:    vmovaps 1376(%rdi), %ymm2
7854 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7855 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
7856 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[0,1,2,0,4,5,6,4]
7857 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm2, %xmm2
7858 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
7859 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7860 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7861 ; AVX1-ONLY-NEXT:    vmovaps 1696(%rdi), %ymm2
7862 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7863 ; AVX1-ONLY-NEXT:    vmovaps 1664(%rdi), %ymm3
7864 ; AVX1-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7865 ; AVX1-ONLY-NEXT:    vmovaps 1728(%rdi), %ymm1
7866 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7867 ; AVX1-ONLY-NEXT:    vmovaps 1760(%rdi), %ymm0
7868 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7869 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
7870 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
7871 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]
7872 ; AVX1-ONLY-NEXT:    vmovaps 1568(%rdi), %ymm2
7873 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7874 ; AVX1-ONLY-NEXT:    vmovaps 1536(%rdi), %ymm1
7875 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7876 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[1],ymm2[1],ymm1[4],ymm2[4],ymm1[5],ymm2[5]
7877 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm1, %xmm1
7878 ; AVX1-ONLY-NEXT:    vmovaps 1600(%rdi), %ymm3
7879 ; AVX1-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7880 ; AVX1-ONLY-NEXT:    vmovaps 1632(%rdi), %ymm2
7881 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7882 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
7883 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[0,1,2,0,4,5,6,4]
7884 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm2, %xmm2
7885 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
7886 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7887 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7888 ; AVX1-ONLY-NEXT:    vmovaps 1952(%rdi), %ymm2
7889 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7890 ; AVX1-ONLY-NEXT:    vmovaps 1920(%rdi), %ymm3
7891 ; AVX1-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7892 ; AVX1-ONLY-NEXT:    vmovaps 1984(%rdi), %ymm1
7893 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7894 ; AVX1-ONLY-NEXT:    vmovaps 2016(%rdi), %ymm0
7895 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7896 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
7897 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
7898 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]
7899 ; AVX1-ONLY-NEXT:    vmovaps 1824(%rdi), %ymm2
7900 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7901 ; AVX1-ONLY-NEXT:    vmovaps 1792(%rdi), %ymm1
7902 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7903 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[1],ymm2[1],ymm1[4],ymm2[4],ymm1[5],ymm2[5]
7904 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm1, %xmm1
7905 ; AVX1-ONLY-NEXT:    vmovaps 1856(%rdi), %ymm3
7906 ; AVX1-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7907 ; AVX1-ONLY-NEXT:    vmovaps 1888(%rdi), %ymm2
7908 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7909 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
7910 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[0,1,2,0,4,5,6,4]
7911 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm2, %xmm2
7912 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
7913 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7914 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7915 ; AVX1-ONLY-NEXT:    vmovaps 160(%rdi), %ymm2
7916 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7917 ; AVX1-ONLY-NEXT:    vmovaps 128(%rdi), %ymm3
7918 ; AVX1-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7919 ; AVX1-ONLY-NEXT:    vmovaps 192(%rdi), %ymm1
7920 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7921 ; AVX1-ONLY-NEXT:    vmovaps 224(%rdi), %ymm0
7922 ; AVX1-ONLY-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
7923 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
7924 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
7925 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm10 = ymm1[0,1],ymm0[2,0],ymm1[4,5],ymm0[6,4]
7926 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdi), %ymm1
7927 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7928 ; AVX1-ONLY-NEXT:    vmovaps 96(%rdi), %ymm0
7929 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7930 ; AVX1-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
7931 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[0,1,2,0,4,5,6,4]
7932 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm0, %xmm0
7933 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %ymm1
7934 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7935 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %ymm2
7936 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7937 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm14 = ymm1[0],ymm2[0],ymm1[1],ymm2[1],ymm1[4],ymm2[4],ymm1[5],ymm2[5]
7938 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm14, %xmm14
7939 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm14[0,1],xmm0[2,3]
7940 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm10[4,5,6,7]
7941 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7942 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
7943 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, %ymm5
7944 ; AVX1-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7945 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm4[0],ymm3[0],ymm4[1],ymm3[1],ymm4[4],ymm3[4],ymm4[5],ymm3[5]
7946 ; AVX1-ONLY-NEXT:    vmovaps %ymm15, %ymm4
7947 ; AVX1-ONLY-NEXT:    vmovups %ymm15, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7948 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
7949 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm10 = ymm1[1,0],ymm15[1,0],ymm1[5,4],ymm15[5,4]
7950 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm10[2,0],ymm0[2,3],ymm10[6,4],ymm0[6,7]
7951 ; AVX1-ONLY-NEXT:    vmovaps %ymm9, %ymm15
7952 ; AVX1-ONLY-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7953 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
7954 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm10 = ymm9[0],ymm15[0],ymm9[1],ymm15[1],ymm9[4],ymm15[4],ymm9[5],ymm15[5]
7955 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm10, %xmm10
7956 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
7957 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm14 = ymm6[1,0],ymm2[1,0],ymm6[5,4],ymm2[5,4]
7958 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[2,0,2,3,6,4,6,7]
7959 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm14, %xmm14
7960 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm10 = xmm14[0,1],xmm10[2,3]
7961 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm0[4,5,6,7]
7962 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7963 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
7964 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm13[0],ymm6[0],ymm13[1],ymm6[1],ymm13[4],ymm6[4],ymm13[5],ymm6[5]
7965 ; AVX1-ONLY-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7966 ; AVX1-ONLY-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7967 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm10 = ymm12[1,0],ymm8[1,0],ymm12[5,4],ymm8[5,4]
7968 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm10[2,0],ymm0[2,3],ymm10[6,4],ymm0[6,7]
7969 ; AVX1-ONLY-NEXT:    vmovaps %ymm11, %ymm13
7970 ; AVX1-ONLY-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7971 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm10 = ymm11[0],ymm7[0],ymm11[1],ymm7[1],ymm11[4],ymm7[4],ymm11[5],ymm7[5]
7972 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm10, %xmm10
7973 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload
7974 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
7975 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm14 = ymm7[1,0],ymm11[1,0],ymm7[5,4],ymm11[5,4]
7976 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[2,0,2,3,6,4,6,7]
7977 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm14, %xmm14
7978 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm10 = xmm14[0,1],xmm10[2,3]
7979 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm0[4,5,6,7]
7980 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7981 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7982 ; AVX1-ONLY-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
7983 ; AVX1-ONLY-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[1],mem[1],ymm0[4],mem[4],ymm0[5],mem[5]
7984 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
7985 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
7986 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm10 = ymm10[1,0],ymm7[1,0],ymm10[5,4],ymm7[5,4]
7987 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm10[2,0],ymm0[2,3],ymm10[6,4],ymm0[6,7]
7988 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
7989 ; AVX1-ONLY-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
7990 ; AVX1-ONLY-NEXT:    # ymm10 = ymm10[0],mem[0],ymm10[1],mem[1],ymm10[4],mem[4],ymm10[5],mem[5]
7991 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm10, %xmm10
7992 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
7993 ; AVX1-ONLY-NEXT:    vshufps $17, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
7994 ; AVX1-ONLY-NEXT:    # ymm14 = ymm14[1,0],mem[1,0],ymm14[5,4],mem[5,4]
7995 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[2,0,2,3,6,4,6,7]
7996 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm14, %xmm14
7997 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm10 = xmm14[0,1],xmm10[2,3]
7998 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm0[4,5,6,7]
7999 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8000 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8001 ; AVX1-ONLY-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
8002 ; AVX1-ONLY-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[1],mem[1],ymm0[4],mem[4],ymm0[5],mem[5]
8003 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
8004 ; AVX1-ONLY-NEXT:    vshufps $17, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
8005 ; AVX1-ONLY-NEXT:    # ymm10 = ymm10[1,0],mem[1,0],ymm10[5,4],mem[5,4]
8006 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm10[2,0],ymm0[2,3],ymm10[6,4],ymm0[6,7]
8007 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
8008 ; AVX1-ONLY-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
8009 ; AVX1-ONLY-NEXT:    # ymm10 = ymm10[0],mem[0],ymm10[1],mem[1],ymm10[4],mem[4],ymm10[5],mem[5]
8010 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm10, %xmm10
8011 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
8012 ; AVX1-ONLY-NEXT:    vshufps $17, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
8013 ; AVX1-ONLY-NEXT:    # ymm14 = ymm14[1,0],mem[1,0],ymm14[5,4],mem[5,4]
8014 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[2,0,2,3,6,4,6,7]
8015 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm14, %xmm14
8016 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm10 = xmm14[0,1],xmm10[2,3]
8017 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm0[4,5,6,7]
8018 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8019 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8020 ; AVX1-ONLY-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
8021 ; AVX1-ONLY-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[1],mem[1],ymm0[4],mem[4],ymm0[5],mem[5]
8022 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
8023 ; AVX1-ONLY-NEXT:    vshufps $17, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
8024 ; AVX1-ONLY-NEXT:    # ymm10 = ymm10[1,0],mem[1,0],ymm10[5,4],mem[5,4]
8025 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm10[2,0],ymm0[2,3],ymm10[6,4],ymm0[6,7]
8026 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
8027 ; AVX1-ONLY-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
8028 ; AVX1-ONLY-NEXT:    # ymm10 = ymm10[0],mem[0],ymm10[1],mem[1],ymm10[4],mem[4],ymm10[5],mem[5]
8029 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm10, %xmm10
8030 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
8031 ; AVX1-ONLY-NEXT:    vshufps $17, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
8032 ; AVX1-ONLY-NEXT:    # ymm14 = ymm14[1,0],mem[1,0],ymm14[5,4],mem[5,4]
8033 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[2,0,2,3,6,4,6,7]
8034 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm14, %xmm14
8035 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm10 = xmm14[0,1],xmm10[2,3]
8036 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm0[4,5,6,7]
8037 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8038 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8039 ; AVX1-ONLY-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
8040 ; AVX1-ONLY-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[1],mem[1],ymm0[4],mem[4],ymm0[5],mem[5]
8041 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
8042 ; AVX1-ONLY-NEXT:    vshufps $17, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
8043 ; AVX1-ONLY-NEXT:    # ymm10 = ymm10[1,0],mem[1,0],ymm10[5,4],mem[5,4]
8044 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm10[2,0],ymm0[2,3],ymm10[6,4],ymm0[6,7]
8045 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
8046 ; AVX1-ONLY-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
8047 ; AVX1-ONLY-NEXT:    # ymm10 = ymm10[0],mem[0],ymm10[1],mem[1],ymm10[4],mem[4],ymm10[5],mem[5]
8048 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm10, %xmm10
8049 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
8050 ; AVX1-ONLY-NEXT:    vshufps $17, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
8051 ; AVX1-ONLY-NEXT:    # ymm14 = ymm14[1,0],mem[1,0],ymm14[5,4],mem[5,4]
8052 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[2,0,2,3,6,4,6,7]
8053 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm14, %xmm14
8054 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm10 = xmm14[0,1],xmm10[2,3]
8055 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm0[4,5,6,7]
8056 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8057 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8058 ; AVX1-ONLY-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
8059 ; AVX1-ONLY-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[1],mem[1],ymm0[4],mem[4],ymm0[5],mem[5]
8060 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
8061 ; AVX1-ONLY-NEXT:    vshufps $17, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
8062 ; AVX1-ONLY-NEXT:    # ymm10 = ymm10[1,0],mem[1,0],ymm10[5,4],mem[5,4]
8063 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm10[2,0],ymm0[2,3],ymm10[6,4],ymm0[6,7]
8064 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
8065 ; AVX1-ONLY-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
8066 ; AVX1-ONLY-NEXT:    # ymm10 = ymm10[0],mem[0],ymm10[1],mem[1],ymm10[4],mem[4],ymm10[5],mem[5]
8067 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm10, %xmm10
8068 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
8069 ; AVX1-ONLY-NEXT:    vshufps $17, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
8070 ; AVX1-ONLY-NEXT:    # ymm14 = ymm14[1,0],mem[1,0],ymm14[5,4],mem[5,4]
8071 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[2,0,2,3,6,4,6,7]
8072 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm14, %xmm14
8073 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm10 = xmm14[0,1],xmm10[2,3]
8074 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm0[4,5,6,7]
8075 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8076 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8077 ; AVX1-ONLY-NEXT:    vunpcklps (%rsp), %ymm0, %ymm0 # 32-byte Folded Reload
8078 ; AVX1-ONLY-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[1],mem[1],ymm0[4],mem[4],ymm0[5],mem[5]
8079 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
8080 ; AVX1-ONLY-NEXT:    vshufps $17, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
8081 ; AVX1-ONLY-NEXT:    # ymm10 = ymm10[1,0],mem[1,0],ymm10[5,4],mem[5,4]
8082 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm10[2,0],ymm0[2,3],ymm10[6,4],ymm0[6,7]
8083 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
8084 ; AVX1-ONLY-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
8085 ; AVX1-ONLY-NEXT:    # ymm10 = ymm10[0],mem[0],ymm10[1],mem[1],ymm10[4],mem[4],ymm10[5],mem[5]
8086 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm10, %xmm10
8087 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
8088 ; AVX1-ONLY-NEXT:    vshufps $17, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
8089 ; AVX1-ONLY-NEXT:    # ymm14 = ymm14[1,0],mem[1,0],ymm14[5,4],mem[5,4]
8090 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[2,0,2,3,6,4,6,7]
8091 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm14, %xmm14
8092 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm10 = xmm14[0,1],xmm10[2,3]
8093 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm0[4,5,6,7]
8094 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8095 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm3[1],ymm5[1],ymm3[3],ymm5[3]
8096 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} ymm10 = ymm4[2],ymm1[2],ymm4[3],ymm1[3],ymm4[6],ymm1[6],ymm4[7],ymm1[7]
8097 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm10[0,1],ymm0[2,0],ymm10[4,5],ymm0[6,4]
8098 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm10 # 32-byte Folded Reload
8099 ; AVX1-ONLY-NEXT:    # ymm10 = ymm2[2],mem[2],ymm2[3],mem[3],ymm2[6],mem[6],ymm2[7],mem[7]
8100 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm10, %xmm10
8101 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm14 = ymm15[1],ymm9[1],ymm15[3],ymm9[3]
8102 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[0,1,2,0,4,5,6,4]
8103 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm14, %xmm14
8104 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0,1],xmm14[2,3]
8105 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm0[4,5,6,7]
8106 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8107 ; AVX1-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm0 # 32-byte Folded Reload
8108 ; AVX1-ONLY-NEXT:    # ymm0 = ymm6[1],mem[1],ymm6[3],mem[3]
8109 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} ymm10 = ymm8[2],ymm12[2],ymm8[3],ymm12[3],ymm8[6],ymm12[6],ymm8[7],ymm12[7]
8110 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm10[0,1],ymm0[2,0],ymm10[4,5],ymm0[6,4]
8111 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
8112 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} ymm10 = ymm11[2],ymm12[2],ymm11[3],ymm12[3],ymm11[6],ymm12[6],ymm11[7],ymm12[7]
8113 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm10, %xmm10
8114 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8115 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm14 = ymm1[1],ymm13[1],ymm1[3],ymm13[3]
8116 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[0,1,2,0,4,5,6,4]
8117 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm14, %xmm14
8118 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0,1],xmm14[2,3]
8119 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm0[4,5,6,7]
8120 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8121 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
8122 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
8123 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm6[1],ymm4[1],ymm6[3],ymm4[3]
8124 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
8125 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} ymm10 = ymm7[2],ymm5[2],ymm7[3],ymm5[3],ymm7[6],ymm5[6],ymm7[7],ymm5[7]
8126 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm10[0,1],ymm0[2,0],ymm10[4,5],ymm0[6,4]
8127 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
8128 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload
8129 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} ymm10 = ymm13[2],ymm11[2],ymm13[3],ymm11[3],ymm13[6],ymm11[6],ymm13[7],ymm11[7]
8130 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm10, %xmm10
8131 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
8132 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
8133 ; AVX1-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm14 = ymm3[1],ymm2[1],ymm3[3],ymm2[3]
8134 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[0,1,2,0,4,5,6,4]
8135 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm14, %xmm14
8136 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0,1],xmm14[2,3]
8137 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm0[4,5,6,7]
8138 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8139 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
8140 ; AVX1-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm0 # 32-byte Folded Reload
8141 ; AVX1-ONLY-NEXT:    # ymm0 = ymm8[1],mem[1],ymm8[3],mem[3]
8142 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
8143 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
8144 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} ymm10 = ymm9[2],ymm7[2],ymm9[3],ymm7[3],ymm9[6],ymm7[6],ymm9[7],ymm7[7]
8145 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm10[0,1],ymm0[2,0],ymm10[4,5],ymm0[6,4]
8146 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload
8147 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm10 # 32-byte Folded Reload
8148 ; AVX1-ONLY-NEXT:    # ymm10 = ymm15[2],mem[2],ymm15[3],mem[3],ymm15[6],mem[6],ymm15[7],mem[7]
8149 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm10, %xmm10
8150 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
8151 ; AVX1-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
8152 ; AVX1-ONLY-NEXT:    # ymm14 = ymm14[1],mem[1],ymm14[3],mem[3]
8153 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[0,1,2,0,4,5,6,4]
8154 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm14, %xmm14
8155 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0,1],xmm14[2,3]
8156 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm0[4,5,6,7]
8157 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8158 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8159 ; AVX1-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
8160 ; AVX1-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
8161 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
8162 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
8163 ; AVX1-ONLY-NEXT:    # ymm10 = ymm10[2],mem[2],ymm10[3],mem[3],ymm10[6],mem[6],ymm10[7],mem[7]
8164 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm10[0,1],ymm0[2,0],ymm10[4,5],ymm0[6,4]
8165 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
8166 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
8167 ; AVX1-ONLY-NEXT:    # ymm10 = ymm10[2],mem[2],ymm10[3],mem[3],ymm10[6],mem[6],ymm10[7],mem[7]
8168 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm10, %xmm10
8169 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
8170 ; AVX1-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
8171 ; AVX1-ONLY-NEXT:    # ymm14 = ymm14[1],mem[1],ymm14[3],mem[3]
8172 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[0,1,2,0,4,5,6,4]
8173 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm14, %xmm14
8174 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0,1],xmm14[2,3]
8175 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm0[4,5,6,7]
8176 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8177 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8178 ; AVX1-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
8179 ; AVX1-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
8180 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
8181 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
8182 ; AVX1-ONLY-NEXT:    # ymm10 = ymm10[2],mem[2],ymm10[3],mem[3],ymm10[6],mem[6],ymm10[7],mem[7]
8183 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm10[0,1],ymm0[2,0],ymm10[4,5],ymm0[6,4]
8184 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
8185 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
8186 ; AVX1-ONLY-NEXT:    # ymm10 = ymm10[2],mem[2],ymm10[3],mem[3],ymm10[6],mem[6],ymm10[7],mem[7]
8187 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm10, %xmm10
8188 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
8189 ; AVX1-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
8190 ; AVX1-ONLY-NEXT:    # ymm14 = ymm14[1],mem[1],ymm14[3],mem[3]
8191 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[0,1,2,0,4,5,6,4]
8192 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm14, %xmm14
8193 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0,1],xmm14[2,3]
8194 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm0[4,5,6,7]
8195 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8196 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8197 ; AVX1-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
8198 ; AVX1-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
8199 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
8200 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
8201 ; AVX1-ONLY-NEXT:    # ymm10 = ymm10[2],mem[2],ymm10[3],mem[3],ymm10[6],mem[6],ymm10[7],mem[7]
8202 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm10[0,1],ymm0[2,0],ymm10[4,5],ymm0[6,4]
8203 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
8204 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
8205 ; AVX1-ONLY-NEXT:    # ymm10 = ymm10[2],mem[2],ymm10[3],mem[3],ymm10[6],mem[6],ymm10[7],mem[7]
8206 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm10, %xmm10
8207 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
8208 ; AVX1-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
8209 ; AVX1-ONLY-NEXT:    # ymm14 = ymm14[1],mem[1],ymm14[3],mem[3]
8210 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[0,1,2,0,4,5,6,4]
8211 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm14, %xmm14
8212 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0,1],xmm14[2,3]
8213 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm0[4,5,6,7]
8214 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8215 ; AVX1-ONLY-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
8216 ; AVX1-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
8217 ; AVX1-ONLY-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
8218 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
8219 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
8220 ; AVX1-ONLY-NEXT:    # ymm10 = ymm10[2],mem[2],ymm10[3],mem[3],ymm10[6],mem[6],ymm10[7],mem[7]
8221 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm10[0,1],ymm0[2,0],ymm10[4,5],ymm0[6,4]
8222 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
8223 ; AVX1-ONLY-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
8224 ; AVX1-ONLY-NEXT:    # ymm10 = ymm10[1],mem[1],ymm10[3],mem[3]
8225 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm10 = ymm10[0,1,2,0,4,5,6,4]
8226 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm10, %xmm10
8227 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
8228 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
8229 ; AVX1-ONLY-NEXT:    # ymm14 = ymm14[2],mem[2],ymm14[3],mem[3],ymm14[6],mem[6],ymm14[7],mem[7]
8230 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm14, %xmm14
8231 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm10 = xmm14[0,1],xmm10[2,3]
8232 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm0[4,5,6,7]
8233 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8234 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8235 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
8236 ; AVX1-ONLY-NEXT:    # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
8237 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
8238 ; AVX1-ONLY-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
8239 ; AVX1-ONLY-NEXT:    # ymm10 = ymm10[3,0],mem[3,0],ymm10[7,4],mem[7,4]
8240 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm10[2,0],ymm0[2,3],ymm10[6,4],ymm0[6,7]
8241 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
8242 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
8243 ; AVX1-ONLY-NEXT:    # ymm10 = ymm10[2],mem[2],ymm10[3],mem[3],ymm10[6],mem[6],ymm10[7],mem[7]
8244 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
8245 ; AVX1-ONLY-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
8246 ; AVX1-ONLY-NEXT:    # ymm14 = ymm14[3,0],mem[3,0],ymm14[7,4],mem[7,4]
8247 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm10, %xmm10
8248 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[2,0,2,3,6,4,6,7]
8249 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm14, %xmm14
8250 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm10 = xmm14[0,1],xmm10[2,3]
8251 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm0[4,5,6,7]
8252 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8253 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8254 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
8255 ; AVX1-ONLY-NEXT:    # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
8256 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
8257 ; AVX1-ONLY-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
8258 ; AVX1-ONLY-NEXT:    # ymm10 = ymm10[3,0],mem[3,0],ymm10[7,4],mem[7,4]
8259 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm10[2,0],ymm0[2,3],ymm10[6,4],ymm0[6,7]
8260 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
8261 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} ymm10 = ymm10[2],ymm1[2],ymm10[3],ymm1[3],ymm10[6],ymm1[6],ymm10[7],ymm1[7]
8262 ; AVX1-ONLY-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm14 # 32-byte Folded Reload
8263 ; AVX1-ONLY-NEXT:    # ymm14 = ymm12[3,0],mem[3,0],ymm12[7,4],mem[7,4]
8264 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm10, %xmm10
8265 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[2,0,2,3,6,4,6,7]
8266 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm14, %xmm14
8267 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm10 = xmm14[0,1],xmm10[2,3]
8268 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm12 = ymm10[0,1,2,3],ymm0[4,5,6,7]
8269 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} ymm0 = ymm4[2],ymm6[2],ymm4[3],ymm6[3],ymm4[6],ymm6[6],ymm4[7],ymm6[7]
8270 ; AVX1-ONLY-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm10 # 32-byte Folded Reload
8271 ; AVX1-ONLY-NEXT:    # ymm10 = ymm5[3,0],mem[3,0],ymm5[7,4],mem[7,4]
8272 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm10[2,0],ymm0[2,3],ymm10[6,4],ymm0[6,7]
8273 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} ymm10 = ymm2[2],ymm3[2],ymm2[3],ymm3[3],ymm2[6],ymm3[6],ymm2[7],ymm3[7]
8274 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm14 = ymm11[3,0],ymm13[3,0],ymm11[7,4],ymm13[7,4]
8275 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm10, %xmm10
8276 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[2,0,2,3,6,4,6,7]
8277 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm14, %xmm14
8278 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm10 = xmm14[0,1],xmm10[2,3]
8279 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm3 = ymm10[0,1,2,3],ymm0[4,5,6,7]
8280 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8281 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} ymm0 = ymm0[2],ymm8[2],ymm0[3],ymm8[3],ymm0[6],ymm8[6],ymm0[7],ymm8[7]
8282 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm10 = ymm7[3,0],ymm9[3,0],ymm7[7,4],ymm9[7,4]
8283 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm10[2,0],ymm0[2,3],ymm10[6,4],ymm0[6,7]
8284 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8285 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm10 # 32-byte Folded Reload
8286 ; AVX1-ONLY-NEXT:    # ymm10 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
8287 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8288 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm14 = ymm1[3,0],ymm15[3,0],ymm1[7,4],ymm15[7,4]
8289 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm10, %xmm10
8290 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[2,0,2,3,6,4,6,7]
8291 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm14, %xmm14
8292 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm10 = xmm14[0,1],xmm10[2,3]
8293 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm10[0,1,2,3],ymm0[4,5,6,7]
8294 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8295 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
8296 ; AVX1-ONLY-NEXT:    # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
8297 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8298 ; AVX1-ONLY-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm10 # 32-byte Folded Reload
8299 ; AVX1-ONLY-NEXT:    # ymm10 = ymm1[3,0],mem[3,0],ymm1[7,4],mem[7,4]
8300 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm10[2,0],ymm0[2,3],ymm10[6,4],ymm0[6,7]
8301 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8302 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm10 # 32-byte Folded Reload
8303 ; AVX1-ONLY-NEXT:    # ymm10 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
8304 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8305 ; AVX1-ONLY-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm14 # 32-byte Folded Reload
8306 ; AVX1-ONLY-NEXT:    # ymm14 = ymm1[3,0],mem[3,0],ymm1[7,4],mem[7,4]
8307 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm10, %xmm10
8308 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[2,0,2,3,6,4,6,7]
8309 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm14, %xmm14
8310 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm10 = xmm14[0,1],xmm10[2,3]
8311 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1,2,3],ymm0[4,5,6,7]
8312 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8313 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
8314 ; AVX1-ONLY-NEXT:    # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
8315 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8316 ; AVX1-ONLY-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm14 # 32-byte Folded Reload
8317 ; AVX1-ONLY-NEXT:    # ymm14 = ymm1[3,0],mem[3,0],ymm1[7,4],mem[7,4]
8318 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm14[2,0],ymm0[2,3],ymm14[6,4],ymm0[6,7]
8319 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8320 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm14 # 32-byte Folded Reload
8321 ; AVX1-ONLY-NEXT:    # ymm14 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
8322 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8323 ; AVX1-ONLY-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
8324 ; AVX1-ONLY-NEXT:    # ymm0 = ymm0[3,0],mem[3,0],ymm0[7,4],mem[7,4]
8325 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm14, %xmm14
8326 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,0,2,3,6,4,6,7]
8327 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm0, %xmm0
8328 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm14[2,3]
8329 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm14 = ymm0[0,1,2,3],ymm1[4,5,6,7]
8330 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8331 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
8332 ; AVX1-ONLY-NEXT:    # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
8333 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8334 ; AVX1-ONLY-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
8335 ; AVX1-ONLY-NEXT:    # ymm1 = ymm1[3,0],mem[3,0],ymm1[7,4],mem[7,4]
8336 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[2,0],ymm0[2,3],ymm1[6,4],ymm0[6,7]
8337 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8338 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
8339 ; AVX1-ONLY-NEXT:    # ymm1 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
8340 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
8341 ; AVX1-ONLY-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm5 # 32-byte Folded Reload
8342 ; AVX1-ONLY-NEXT:    # ymm5 = ymm2[3,0],mem[3,0],ymm2[7,4],mem[7,4]
8343 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm1, %xmm1
8344 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm5 = ymm5[2,0,2,3,6,4,6,7]
8345 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm5, %xmm5
8346 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm5[0,1],xmm1[2,3]
8347 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm1[0,1,2,3],ymm0[4,5,6,7]
8348 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8349 ; AVX1-ONLY-NEXT:    vunpckhps (%rsp), %ymm0, %ymm0 # 32-byte Folded Reload
8350 ; AVX1-ONLY-NEXT:    # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
8351 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8352 ; AVX1-ONLY-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
8353 ; AVX1-ONLY-NEXT:    # ymm1 = ymm1[3,0],mem[3,0],ymm1[7,4],mem[7,4]
8354 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[2,0],ymm0[2,3],ymm1[6,4],ymm0[6,7]
8355 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8356 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload
8357 ; AVX1-ONLY-NEXT:    # ymm1 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
8358 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
8359 ; AVX1-ONLY-NEXT:    vshufps $51, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
8360 ; AVX1-ONLY-NEXT:    # ymm2 = ymm2[3,0],mem[3,0],ymm2[7,4],mem[7,4]
8361 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm1, %xmm1
8362 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[2,0,2,3,6,4,6,7]
8363 ; AVX1-ONLY-NEXT:    vextractf128 $1, %ymm2, %xmm2
8364 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
8365 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
8366 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8367 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 192(%rsi)
8368 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8369 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 128(%rsi)
8370 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8371 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 64(%rsi)
8372 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8373 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, (%rsi)
8374 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8375 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 224(%rsi)
8376 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8377 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 160(%rsi)
8378 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8379 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 96(%rsi)
8380 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8381 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 32(%rsi)
8382 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8383 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 192(%rdx)
8384 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8385 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 128(%rdx)
8386 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8387 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 64(%rdx)
8388 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8389 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, (%rdx)
8390 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8391 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 224(%rdx)
8392 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8393 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 160(%rdx)
8394 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8395 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 96(%rdx)
8396 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8397 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 32(%rdx)
8398 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8399 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 192(%rcx)
8400 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8401 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 128(%rcx)
8402 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8403 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 64(%rcx)
8404 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8405 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, (%rcx)
8406 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8407 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 224(%rcx)
8408 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8409 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 160(%rcx)
8410 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8411 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 96(%rcx)
8412 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8413 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 32(%rcx)
8414 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8415 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 192(%r8)
8416 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8417 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 128(%r8)
8418 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8419 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 64(%r8)
8420 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8421 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, (%r8)
8422 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8423 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 224(%r8)
8424 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8425 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 160(%r8)
8426 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8427 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 96(%r8)
8428 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8429 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 32(%r8)
8430 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8431 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 224(%r9)
8432 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8433 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 192(%r9)
8434 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8435 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 160(%r9)
8436 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8437 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 128(%r9)
8438 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8439 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 96(%r9)
8440 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8441 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 64(%r9)
8442 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8443 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 32(%r9)
8444 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8445 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, (%r9)
8446 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
8447 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8448 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 224(%rax)
8449 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8450 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 192(%rax)
8451 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8452 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 160(%rax)
8453 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8454 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 128(%rax)
8455 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8456 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 96(%rax)
8457 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8458 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 64(%rax)
8459 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8460 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 32(%rax)
8461 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8462 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, (%rax)
8463 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
8464 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8465 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 224(%rax)
8466 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8467 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 192(%rax)
8468 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8469 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 160(%rax)
8470 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8471 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 128(%rax)
8472 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8473 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 96(%rax)
8474 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8475 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 64(%rax)
8476 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8477 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 32(%rax)
8478 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8479 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, (%rax)
8480 ; AVX1-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
8481 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, 224(%rax)
8482 ; AVX1-ONLY-NEXT:    vmovaps %ymm14, 192(%rax)
8483 ; AVX1-ONLY-NEXT:    vmovaps %ymm10, 160(%rax)
8484 ; AVX1-ONLY-NEXT:    vmovaps %ymm4, 128(%rax)
8485 ; AVX1-ONLY-NEXT:    vmovaps %ymm3, 96(%rax)
8486 ; AVX1-ONLY-NEXT:    vmovaps %ymm12, 64(%rax)
8487 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
8488 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 32(%rax)
8489 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, (%rax)
8490 ; AVX1-ONLY-NEXT:    addq $3720, %rsp # imm = 0xE88
8491 ; AVX1-ONLY-NEXT:    vzeroupper
8492 ; AVX1-ONLY-NEXT:    retq
8494 ; AVX2-ONLY-LABEL: load_i32_stride8_vf64:
8495 ; AVX2-ONLY:       # %bb.0:
8496 ; AVX2-ONLY-NEXT:    subq $3528, %rsp # imm = 0xDC8
8497 ; AVX2-ONLY-NEXT:    vmovaps 288(%rdi), %xmm10
8498 ; AVX2-ONLY-NEXT:    vmovaps 256(%rdi), %xmm0
8499 ; AVX2-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8500 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm0[0],xmm10[0],xmm0[1],xmm10[1]
8501 ; AVX2-ONLY-NEXT:    vmovaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8502 ; AVX2-ONLY-NEXT:    vmovaps 352(%rdi), %xmm2
8503 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm2, %xmm1
8504 ; AVX2-ONLY-NEXT:    vmovaps %xmm2, %xmm9
8505 ; AVX2-ONLY-NEXT:    vmovaps 320(%rdi), %xmm2
8506 ; AVX2-ONLY-NEXT:    vmovaps %xmm2, (%rsp) # 16-byte Spill
8507 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm2, %xmm2
8508 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
8509 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
8510 ; AVX2-ONLY-NEXT:    vmovaps 416(%rdi), %xmm1
8511 ; AVX2-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8512 ; AVX2-ONLY-NEXT:    vmovaps 384(%rdi), %xmm2
8513 ; AVX2-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8514 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
8515 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
8516 ; AVX2-ONLY-NEXT:    vmovaps 480(%rdi), %xmm3
8517 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm3, %xmm2
8518 ; AVX2-ONLY-NEXT:    vmovaps %xmm3, %xmm13
8519 ; AVX2-ONLY-NEXT:    vmovaps 448(%rdi), %xmm3
8520 ; AVX2-ONLY-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8521 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm3, %xmm3
8522 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
8523 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
8524 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
8525 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
8526 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8527 ; AVX2-ONLY-NEXT:    vmovaps 800(%rdi), %xmm0
8528 ; AVX2-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8529 ; AVX2-ONLY-NEXT:    vmovaps 768(%rdi), %xmm1
8530 ; AVX2-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8531 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
8532 ; AVX2-ONLY-NEXT:    vmovaps 864(%rdi), %xmm12
8533 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm12, %xmm1
8534 ; AVX2-ONLY-NEXT:    vmovaps 832(%rdi), %xmm2
8535 ; AVX2-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8536 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm2, %xmm2
8537 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
8538 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
8539 ; AVX2-ONLY-NEXT:    vmovaps 992(%rdi), %xmm1
8540 ; AVX2-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8541 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm1, %xmm1
8542 ; AVX2-ONLY-NEXT:    vmovaps 960(%rdi), %xmm2
8543 ; AVX2-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8544 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm2, %xmm2
8545 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
8546 ; AVX2-ONLY-NEXT:    vmovaps 928(%rdi), %xmm2
8547 ; AVX2-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8548 ; AVX2-ONLY-NEXT:    vmovaps 896(%rdi), %xmm3
8549 ; AVX2-ONLY-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8550 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
8551 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
8552 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
8553 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
8554 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
8555 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8556 ; AVX2-ONLY-NEXT:    vmovaps 1376(%rdi), %xmm0
8557 ; AVX2-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8558 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm0, %xmm0
8559 ; AVX2-ONLY-NEXT:    vmovaps 1344(%rdi), %xmm1
8560 ; AVX2-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8561 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm1, %xmm1
8562 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
8563 ; AVX2-ONLY-NEXT:    vmovaps 1312(%rdi), %xmm1
8564 ; AVX2-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8565 ; AVX2-ONLY-NEXT:    vmovaps 1280(%rdi), %xmm2
8566 ; AVX2-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8567 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
8568 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
8569 ; AVX2-ONLY-NEXT:    vmovaps 1504(%rdi), %xmm1
8570 ; AVX2-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8571 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm1, %xmm1
8572 ; AVX2-ONLY-NEXT:    vmovaps 1472(%rdi), %xmm2
8573 ; AVX2-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8574 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm2, %xmm2
8575 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
8576 ; AVX2-ONLY-NEXT:    vmovaps 1440(%rdi), %xmm2
8577 ; AVX2-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8578 ; AVX2-ONLY-NEXT:    vmovaps 1408(%rdi), %xmm3
8579 ; AVX2-ONLY-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8580 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
8581 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
8582 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
8583 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
8584 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
8585 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8586 ; AVX2-ONLY-NEXT:    vmovaps 1888(%rdi), %xmm0
8587 ; AVX2-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8588 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm0, %xmm0
8589 ; AVX2-ONLY-NEXT:    vmovaps 1856(%rdi), %xmm1
8590 ; AVX2-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8591 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm1, %xmm1
8592 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
8593 ; AVX2-ONLY-NEXT:    vmovaps 1824(%rdi), %xmm1
8594 ; AVX2-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8595 ; AVX2-ONLY-NEXT:    vmovaps 1792(%rdi), %xmm2
8596 ; AVX2-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8597 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
8598 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm3 = xmm1[0,1],xmm0[2,3]
8599 ; AVX2-ONLY-NEXT:    vmovaps 2016(%rdi), %xmm0
8600 ; AVX2-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8601 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm0, %xmm1
8602 ; AVX2-ONLY-NEXT:    vmovaps 1984(%rdi), %xmm0
8603 ; AVX2-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8604 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm0, %xmm2
8605 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
8606 ; AVX2-ONLY-NEXT:    vmovaps 1952(%rdi), %xmm0
8607 ; AVX2-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8608 ; AVX2-ONLY-NEXT:    vmovaps 1920(%rdi), %xmm2
8609 ; AVX2-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8610 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]
8611 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
8612 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
8613 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
8614 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm1[4,5,6,7]
8615 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8616 ; AVX2-ONLY-NEXT:    vmovaps 608(%rdi), %xmm0
8617 ; AVX2-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8618 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm0, %xmm0
8619 ; AVX2-ONLY-NEXT:    vmovaps 576(%rdi), %xmm1
8620 ; AVX2-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8621 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm1, %xmm1
8622 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
8623 ; AVX2-ONLY-NEXT:    vmovaps 544(%rdi), %xmm2
8624 ; AVX2-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8625 ; AVX2-ONLY-NEXT:    vmovaps 512(%rdi), %xmm1
8626 ; AVX2-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8627 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
8628 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
8629 ; AVX2-ONLY-NEXT:    vmovaps 736(%rdi), %xmm1
8630 ; AVX2-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8631 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm1, %xmm1
8632 ; AVX2-ONLY-NEXT:    vmovaps 704(%rdi), %xmm2
8633 ; AVX2-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8634 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm2, %xmm2
8635 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
8636 ; AVX2-ONLY-NEXT:    vmovaps 672(%rdi), %xmm3
8637 ; AVX2-ONLY-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8638 ; AVX2-ONLY-NEXT:    vmovaps 640(%rdi), %xmm2
8639 ; AVX2-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8640 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]
8641 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
8642 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
8643 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
8644 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
8645 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8646 ; AVX2-ONLY-NEXT:    vmovaps 1120(%rdi), %xmm0
8647 ; AVX2-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8648 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm0, %xmm0
8649 ; AVX2-ONLY-NEXT:    vmovaps 1088(%rdi), %xmm1
8650 ; AVX2-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8651 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm1, %xmm1
8652 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
8653 ; AVX2-ONLY-NEXT:    vmovaps 1056(%rdi), %xmm2
8654 ; AVX2-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8655 ; AVX2-ONLY-NEXT:    vmovaps 1024(%rdi), %xmm1
8656 ; AVX2-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8657 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
8658 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
8659 ; AVX2-ONLY-NEXT:    vmovaps 1248(%rdi), %xmm1
8660 ; AVX2-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8661 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm1, %xmm1
8662 ; AVX2-ONLY-NEXT:    vmovaps 1216(%rdi), %xmm2
8663 ; AVX2-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8664 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm2, %xmm2
8665 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
8666 ; AVX2-ONLY-NEXT:    vmovaps 1184(%rdi), %xmm3
8667 ; AVX2-ONLY-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8668 ; AVX2-ONLY-NEXT:    vmovaps 1152(%rdi), %xmm2
8669 ; AVX2-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8670 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]
8671 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
8672 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
8673 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
8674 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
8675 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8676 ; AVX2-ONLY-NEXT:    vmovaps 1632(%rdi), %xmm0
8677 ; AVX2-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8678 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm0, %xmm0
8679 ; AVX2-ONLY-NEXT:    vmovaps 1600(%rdi), %xmm1
8680 ; AVX2-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8681 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm1, %xmm1
8682 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
8683 ; AVX2-ONLY-NEXT:    vmovaps 1568(%rdi), %xmm2
8684 ; AVX2-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8685 ; AVX2-ONLY-NEXT:    vmovaps 1536(%rdi), %xmm1
8686 ; AVX2-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8687 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
8688 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
8689 ; AVX2-ONLY-NEXT:    vmovaps 1760(%rdi), %xmm1
8690 ; AVX2-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8691 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm1, %xmm1
8692 ; AVX2-ONLY-NEXT:    vmovaps 1728(%rdi), %xmm2
8693 ; AVX2-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8694 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm2, %xmm2
8695 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
8696 ; AVX2-ONLY-NEXT:    vmovaps 1696(%rdi), %xmm3
8697 ; AVX2-ONLY-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8698 ; AVX2-ONLY-NEXT:    vmovaps 1664(%rdi), %xmm2
8699 ; AVX2-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8700 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]
8701 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
8702 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
8703 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
8704 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
8705 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8706 ; AVX2-ONLY-NEXT:    vmovaps 224(%rdi), %xmm0
8707 ; AVX2-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8708 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm0, %xmm0
8709 ; AVX2-ONLY-NEXT:    vmovaps 192(%rdi), %xmm11
8710 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm11, %xmm1
8711 ; AVX2-ONLY-NEXT:    vmovaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8712 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
8713 ; AVX2-ONLY-NEXT:    vmovaps 160(%rdi), %xmm2
8714 ; AVX2-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8715 ; AVX2-ONLY-NEXT:    vmovaps 128(%rdi), %xmm1
8716 ; AVX2-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8717 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
8718 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
8719 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
8720 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm1[0,1,2,3,4,5],ymm0[6,7]
8721 ; AVX2-ONLY-NEXT:    vmovaps 96(%rdi), %xmm8
8722 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm8, %xmm1
8723 ; AVX2-ONLY-NEXT:    vmovaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8724 ; AVX2-ONLY-NEXT:    vmovaps 64(%rdi), %xmm7
8725 ; AVX2-ONLY-NEXT:    vbroadcastss %xmm7, %xmm2
8726 ; AVX2-ONLY-NEXT:    vmovaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8727 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
8728 ; AVX2-ONLY-NEXT:    vmovaps (%rdi), %xmm5
8729 ; AVX2-ONLY-NEXT:    vmovaps 32(%rdi), %xmm6
8730 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm5[0],xmm6[0],xmm5[1],xmm6[1]
8731 ; AVX2-ONLY-NEXT:    vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8732 ; AVX2-ONLY-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8733 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm3[2,3]
8734 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm4[4,5,6,7]
8735 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8736 ; AVX2-ONLY-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
8737 ; AVX2-ONLY-NEXT:    # xmm0 = mem[1,1,1,1]
8738 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0],xmm10[1],xmm0[2,3]
8739 ; AVX2-ONLY-NEXT:    vmovaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8740 ; AVX2-ONLY-NEXT:    vmovaps (%rsp), %xmm1 # 16-byte Reload
8741 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm9[0],xmm1[1],xmm9[1]
8742 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
8743 ; AVX2-ONLY-NEXT:    vmovaps %xmm13, %xmm9
8744 ; AVX2-ONLY-NEXT:    vmovaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8745 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
8746 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm10[0],xmm13[0],xmm10[1],xmm13[1]
8747 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
8748 ; AVX2-ONLY-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
8749 ; AVX2-ONLY-NEXT:    # xmm2 = mem[1,1,1,1]
8750 ; AVX2-ONLY-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
8751 ; AVX2-ONLY-NEXT:    # xmm2 = xmm2[0],mem[1],xmm2[2,3]
8752 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
8753 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
8754 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
8755 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8756 ; AVX2-ONLY-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
8757 ; AVX2-ONLY-NEXT:    # xmm0 = mem[1,1,1,1]
8758 ; AVX2-ONLY-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
8759 ; AVX2-ONLY-NEXT:    # xmm0 = xmm0[0],mem[1],xmm0[2,3]
8760 ; AVX2-ONLY-NEXT:    vmovaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8761 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
8762 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm12[0],xmm1[1],xmm12[1]
8763 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
8764 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload
8765 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload
8766 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm13[0],xmm12[0],xmm13[1],xmm12[1]
8767 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
8768 ; AVX2-ONLY-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
8769 ; AVX2-ONLY-NEXT:    # xmm2 = mem[1,1,1,1]
8770 ; AVX2-ONLY-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
8771 ; AVX2-ONLY-NEXT:    # xmm2 = xmm2[0],mem[1],xmm2[2,3]
8772 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
8773 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
8774 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
8775 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8776 ; AVX2-ONLY-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
8777 ; AVX2-ONLY-NEXT:    # xmm0 = mem[1,1,1,1]
8778 ; AVX2-ONLY-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
8779 ; AVX2-ONLY-NEXT:    # xmm0 = xmm0[0],mem[1],xmm0[2,3]
8780 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
8781 ; AVX2-ONLY-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
8782 ; AVX2-ONLY-NEXT:    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
8783 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
8784 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
8785 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
8786 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm15[0],xmm14[0],xmm15[1],xmm14[1]
8787 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
8788 ; AVX2-ONLY-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
8789 ; AVX2-ONLY-NEXT:    # xmm2 = mem[1,1,1,1]
8790 ; AVX2-ONLY-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
8791 ; AVX2-ONLY-NEXT:    # xmm2 = xmm2[0],mem[1],xmm2[2,3]
8792 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
8793 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
8794 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
8795 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8796 ; AVX2-ONLY-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
8797 ; AVX2-ONLY-NEXT:    # xmm0 = mem[1,1,1,1]
8798 ; AVX2-ONLY-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
8799 ; AVX2-ONLY-NEXT:    # xmm0 = xmm0[0],mem[1],xmm0[2,3]
8800 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
8801 ; AVX2-ONLY-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
8802 ; AVX2-ONLY-NEXT:    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
8803 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
8804 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
8805 ; AVX2-ONLY-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
8806 ; AVX2-ONLY-NEXT:    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
8807 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
8808 ; AVX2-ONLY-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
8809 ; AVX2-ONLY-NEXT:    # xmm2 = mem[1,1,1,1]
8810 ; AVX2-ONLY-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
8811 ; AVX2-ONLY-NEXT:    # xmm2 = xmm2[0],mem[1],xmm2[2,3]
8812 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
8813 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
8814 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
8815 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8816 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm5[1,1,1,1]
8817 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0],xmm6[1],xmm0[2,3]
8818 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm7[0],xmm8[0],xmm7[1],xmm8[1]
8819 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
8820 ; AVX2-ONLY-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11, %xmm1 # 16-byte Folded Reload
8821 ; AVX2-ONLY-NEXT:    # xmm1 = xmm11[0],mem[0],xmm11[1],mem[1]
8822 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
8823 ; AVX2-ONLY-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
8824 ; AVX2-ONLY-NEXT:    # xmm2 = mem[1,1,1,1]
8825 ; AVX2-ONLY-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
8826 ; AVX2-ONLY-NEXT:    # xmm2 = xmm2[0],mem[1],xmm2[2,3]
8827 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
8828 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
8829 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
8830 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8831 ; AVX2-ONLY-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
8832 ; AVX2-ONLY-NEXT:    # xmm0 = mem[1,1,1,1]
8833 ; AVX2-ONLY-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
8834 ; AVX2-ONLY-NEXT:    # xmm0 = xmm0[0],mem[1],xmm0[2,3]
8835 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
8836 ; AVX2-ONLY-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
8837 ; AVX2-ONLY-NEXT:    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
8838 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
8839 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
8840 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
8841 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]
8842 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
8843 ; AVX2-ONLY-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
8844 ; AVX2-ONLY-NEXT:    # xmm2 = mem[1,1,1,1]
8845 ; AVX2-ONLY-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
8846 ; AVX2-ONLY-NEXT:    # xmm2 = xmm2[0],mem[1],xmm2[2,3]
8847 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
8848 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
8849 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
8850 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8851 ; AVX2-ONLY-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
8852 ; AVX2-ONLY-NEXT:    # xmm0 = mem[1,1,1,1]
8853 ; AVX2-ONLY-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
8854 ; AVX2-ONLY-NEXT:    # xmm0 = xmm0[0],mem[1],xmm0[2,3]
8855 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
8856 ; AVX2-ONLY-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
8857 ; AVX2-ONLY-NEXT:    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
8858 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
8859 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
8860 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload
8861 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm11[0],xmm5[0],xmm11[1],xmm5[1]
8862 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
8863 ; AVX2-ONLY-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
8864 ; AVX2-ONLY-NEXT:    # xmm2 = mem[1,1,1,1]
8865 ; AVX2-ONLY-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
8866 ; AVX2-ONLY-NEXT:    # xmm2 = xmm2[0],mem[1],xmm2[2,3]
8867 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
8868 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
8869 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
8870 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8871 ; AVX2-ONLY-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
8872 ; AVX2-ONLY-NEXT:    # xmm0 = mem[1,1,1,1]
8873 ; AVX2-ONLY-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
8874 ; AVX2-ONLY-NEXT:    # xmm0 = xmm0[0],mem[1],xmm0[2,3]
8875 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
8876 ; AVX2-ONLY-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
8877 ; AVX2-ONLY-NEXT:    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
8878 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
8879 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
8880 ; AVX2-ONLY-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
8881 ; AVX2-ONLY-NEXT:    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
8882 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
8883 ; AVX2-ONLY-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
8884 ; AVX2-ONLY-NEXT:    # xmm2 = mem[1,1,1,1]
8885 ; AVX2-ONLY-NEXT:    vblendps $2, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload
8886 ; AVX2-ONLY-NEXT:    # xmm2 = xmm2[0],mem[1],xmm2[2,3]
8887 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
8888 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
8889 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
8890 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8891 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8892 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm6 # 16-byte Folded Reload
8893 ; AVX2-ONLY-NEXT:    # xmm6 = xmm0[2],mem[2],xmm0[3],mem[3]
8894 ; AVX2-ONLY-NEXT:    vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8895 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8896 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm1 # 16-byte Folded Reload
8897 ; AVX2-ONLY-NEXT:    # xmm1 = xmm0[2],mem[2],xmm0[3],mem[3]
8898 ; AVX2-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8899 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm9[2,2,2,2]
8900 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm10[0,1,2],xmm0[3]
8901 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
8902 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
8903 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
8904 ; AVX2-ONLY-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
8905 ; AVX2-ONLY-NEXT:    # xmm1 = mem[2,2,2,2]
8906 ; AVX2-ONLY-NEXT:    vblendps $7, (%rsp), %xmm1, %xmm1 # 16-byte Folded Reload
8907 ; AVX2-ONLY-NEXT:    # xmm1 = mem[0,1,2],xmm1[3]
8908 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm6[0,1],xmm1[2,3]
8909 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
8910 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8911 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8912 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm2 # 16-byte Folded Reload
8913 ; AVX2-ONLY-NEXT:    # xmm2 = xmm0[2],mem[2],xmm0[3],mem[3]
8914 ; AVX2-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8915 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8916 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm1 # 16-byte Folded Reload
8917 ; AVX2-ONLY-NEXT:    # xmm1 = xmm0[2],mem[2],xmm0[3],mem[3]
8918 ; AVX2-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8919 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm12[2,2,2,2]
8920 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm13[0,1,2],xmm0[3]
8921 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
8922 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
8923 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
8924 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload
8925 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm9[2,2,2,2]
8926 ; AVX2-ONLY-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
8927 ; AVX2-ONLY-NEXT:    # xmm1 = mem[0,1,2],xmm1[3]
8928 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
8929 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
8930 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8931 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8932 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm10 # 16-byte Folded Reload
8933 ; AVX2-ONLY-NEXT:    # xmm10 = xmm0[2],mem[2],xmm0[3],mem[3]
8934 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8935 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm1 # 16-byte Folded Reload
8936 ; AVX2-ONLY-NEXT:    # xmm1 = xmm0[2],mem[2],xmm0[3],mem[3]
8937 ; AVX2-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8938 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm14[2,2,2,2]
8939 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm15[0,1,2],xmm0[3]
8940 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
8941 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
8942 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
8943 ; AVX2-ONLY-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
8944 ; AVX2-ONLY-NEXT:    # xmm1 = mem[2,2,2,2]
8945 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
8946 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm7[0,1,2],xmm1[3]
8947 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm10[0,1],xmm1[2,3]
8948 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
8949 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8950 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8951 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm8 # 16-byte Folded Reload
8952 ; AVX2-ONLY-NEXT:    # xmm8 = xmm0[2],mem[2],xmm0[3],mem[3]
8953 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8954 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm1 # 16-byte Folded Reload
8955 ; AVX2-ONLY-NEXT:    # xmm1 = xmm0[2],mem[2],xmm0[3],mem[3]
8956 ; AVX2-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8957 ; AVX2-ONLY-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
8958 ; AVX2-ONLY-NEXT:    # xmm0 = mem[2,2,2,2]
8959 ; AVX2-ONLY-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
8960 ; AVX2-ONLY-NEXT:    # xmm0 = mem[0,1,2],xmm0[3]
8961 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
8962 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
8963 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
8964 ; AVX2-ONLY-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
8965 ; AVX2-ONLY-NEXT:    # xmm1 = mem[2,2,2,2]
8966 ; AVX2-ONLY-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
8967 ; AVX2-ONLY-NEXT:    # xmm1 = mem[0,1,2],xmm1[3]
8968 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm8[0,1],xmm1[2,3]
8969 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
8970 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8971 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8972 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm2 # 16-byte Folded Reload
8973 ; AVX2-ONLY-NEXT:    # xmm2 = xmm0[2],mem[2],xmm0[3],mem[3]
8974 ; AVX2-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8975 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8976 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm1 # 16-byte Folded Reload
8977 ; AVX2-ONLY-NEXT:    # xmm1 = xmm0[2],mem[2],xmm0[3],mem[3]
8978 ; AVX2-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8979 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm3[2,2,2,2]
8980 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm4[0,1,2],xmm0[3]
8981 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
8982 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
8983 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
8984 ; AVX2-ONLY-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
8985 ; AVX2-ONLY-NEXT:    # xmm1 = mem[2,2,2,2]
8986 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
8987 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm6[0,1,2],xmm1[3]
8988 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
8989 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
8990 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8991 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8992 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm2 # 16-byte Folded Reload
8993 ; AVX2-ONLY-NEXT:    # xmm2 = xmm0[2],mem[2],xmm0[3],mem[3]
8994 ; AVX2-ONLY-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8995 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8996 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm1 # 16-byte Folded Reload
8997 ; AVX2-ONLY-NEXT:    # xmm1 = xmm0[2],mem[2],xmm0[3],mem[3]
8998 ; AVX2-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
8999 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm5[2,2,2,2]
9000 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm11[0,1,2],xmm0[3]
9001 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
9002 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
9003 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
9004 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
9005 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm4[2,2,2,2]
9006 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
9007 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm3[0,1,2],xmm1[3]
9008 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
9009 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
9010 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9011 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9012 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm5 # 16-byte Folded Reload
9013 ; AVX2-ONLY-NEXT:    # xmm5 = xmm0[2],mem[2],xmm0[3],mem[3]
9014 ; AVX2-ONLY-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9015 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9016 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm1 # 16-byte Folded Reload
9017 ; AVX2-ONLY-NEXT:    # xmm1 = xmm0[2],mem[2],xmm0[3],mem[3]
9018 ; AVX2-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9019 ; AVX2-ONLY-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
9020 ; AVX2-ONLY-NEXT:    # xmm0 = mem[2,2,2,2]
9021 ; AVX2-ONLY-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
9022 ; AVX2-ONLY-NEXT:    # xmm0 = mem[0,1,2],xmm0[3]
9023 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
9024 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm15
9025 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm15[0,1,2,3,4,5],ymm0[6,7]
9026 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
9027 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} xmm15 = xmm2[2,2,2,2]
9028 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
9029 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm15 = xmm1[0,1,2],xmm15[3]
9030 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm15 = xmm5[0,1],xmm15[2,3]
9031 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm15[0,1,2,3],ymm0[4,5,6,7]
9032 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9033 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9034 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm5 # 16-byte Folded Reload
9035 ; AVX2-ONLY-NEXT:    # xmm5 = xmm0[2],mem[2],xmm0[3],mem[3]
9036 ; AVX2-ONLY-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
9037 ; AVX2-ONLY-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload
9038 ; AVX2-ONLY-NEXT:    # xmm15 = mem[2,2,2,2]
9039 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
9040 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm15 = xmm0[0,1,2],xmm15[3]
9041 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm15
9042 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm14
9043 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3,4,5],ymm15[6,7]
9044 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
9045 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm15 # 16-byte Folded Reload
9046 ; AVX2-ONLY-NEXT:    # xmm15 = xmm5[2],mem[2],xmm5[3],mem[3]
9047 ; AVX2-ONLY-NEXT:    vpermilps $170, {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Folded Reload
9048 ; AVX2-ONLY-NEXT:    # xmm13 = mem[2,2,2,2]
9049 ; AVX2-ONLY-NEXT:    vblendps $7, {{[-0-9]+}}(%r{{[sb]}}p), %xmm13, %xmm13 # 16-byte Folded Reload
9050 ; AVX2-ONLY-NEXT:    # xmm13 = mem[0,1,2],xmm13[3]
9051 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm13 = xmm15[0,1],xmm13[2,3]
9052 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm12 = ymm13[0,1,2,3],ymm14[4,5,6,7]
9053 ; AVX2-ONLY-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9054 ; AVX2-ONLY-NEXT:    vmovaps (%rsp), %xmm5 # 16-byte Reload
9055 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm13 # 16-byte Folded Reload
9056 ; AVX2-ONLY-NEXT:    # xmm13 = xmm5[2],mem[2],xmm5[3],mem[3]
9057 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
9058 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm13 = xmm5[1],xmm13[1]
9059 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
9060 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm14 # 16-byte Folded Reload
9061 ; AVX2-ONLY-NEXT:    # xmm14 = xmm5[2],mem[2],xmm5[3],mem[3]
9062 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm14, %ymm0, %ymm14
9063 ; AVX2-ONLY-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Folded Reload
9064 ; AVX2-ONLY-NEXT:    # xmm12 = mem[2,3,2,3]
9065 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm12
9066 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3,4,5],ymm14[6,7]
9067 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm12 = ymm13[0,1,2,3],ymm12[4,5,6,7]
9068 ; AVX2-ONLY-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9069 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
9070 ; AVX2-ONLY-NEXT:    vunpckhps {{.*#+}} xmm12 = xmm5[2],xmm9[2],xmm5[3],xmm9[3]
9071 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
9072 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm11 = xmm5[1],xmm12[1]
9073 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
9074 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm12 # 16-byte Folded Reload
9075 ; AVX2-ONLY-NEXT:    # xmm12 = xmm5[2],mem[2],xmm5[3],mem[3]
9076 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm12
9077 ; AVX2-ONLY-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Folded Reload
9078 ; AVX2-ONLY-NEXT:    # xmm13 = mem[2,3,2,3]
9079 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm13, %ymm0, %ymm13
9080 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm12 = ymm13[0,1,2,3,4,5],ymm12[6,7]
9081 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1,2,3],ymm12[4,5,6,7]
9082 ; AVX2-ONLY-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9083 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7, %xmm11 # 16-byte Folded Reload
9084 ; AVX2-ONLY-NEXT:    # xmm11 = xmm7[2],mem[2],xmm7[3],mem[3]
9085 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm9 = xmm10[1],xmm11[1]
9086 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
9087 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm11 # 16-byte Folded Reload
9088 ; AVX2-ONLY-NEXT:    # xmm11 = xmm5[2],mem[2],xmm5[3],mem[3]
9089 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm11, %ymm0, %ymm11
9090 ; AVX2-ONLY-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Folded Reload
9091 ; AVX2-ONLY-NEXT:    # xmm10 = mem[2,3,2,3]
9092 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
9093 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1,2,3,4,5],ymm11[6,7]
9094 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3],ymm10[4,5,6,7]
9095 ; AVX2-ONLY-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9096 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
9097 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm9 # 16-byte Folded Reload
9098 ; AVX2-ONLY-NEXT:    # xmm9 = xmm5[2],mem[2],xmm5[3],mem[3]
9099 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm7 = xmm8[1],xmm9[1]
9100 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
9101 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm9 # 16-byte Folded Reload
9102 ; AVX2-ONLY-NEXT:    # xmm9 = xmm5[2],mem[2],xmm5[3],mem[3]
9103 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm9, %ymm0, %ymm9
9104 ; AVX2-ONLY-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload
9105 ; AVX2-ONLY-NEXT:    # xmm8 = mem[2,3,2,3]
9106 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm8
9107 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],ymm9[6,7]
9108 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3],ymm8[4,5,6,7]
9109 ; AVX2-ONLY-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9110 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6, %xmm7 # 16-byte Folded Reload
9111 ; AVX2-ONLY-NEXT:    # xmm7 = xmm6[2],mem[2],xmm6[3],mem[3]
9112 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
9113 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm5 = xmm5[1],xmm7[1]
9114 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
9115 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6, %xmm7 # 16-byte Folded Reload
9116 ; AVX2-ONLY-NEXT:    # xmm7 = xmm6[2],mem[2],xmm6[3],mem[3]
9117 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
9118 ; AVX2-ONLY-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload
9119 ; AVX2-ONLY-NEXT:    # xmm6 = mem[2,3,2,3]
9120 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
9121 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5],ymm7[6,7]
9122 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm6[4,5,6,7]
9123 ; AVX2-ONLY-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9124 ; AVX2-ONLY-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm3[2],xmm4[2],xmm3[3],xmm4[3]
9125 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
9126 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm3 = xmm3[1],xmm5[1]
9127 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
9128 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm5 # 16-byte Folded Reload
9129 ; AVX2-ONLY-NEXT:    # xmm5 = xmm4[2],mem[2],xmm4[3],mem[3]
9130 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
9131 ; AVX2-ONLY-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload
9132 ; AVX2-ONLY-NEXT:    # xmm4 = mem[2,3,2,3]
9133 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
9134 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],ymm5[6,7]
9135 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm4[4,5,6,7]
9136 ; AVX2-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9137 ; AVX2-ONLY-NEXT:    vunpckhps {{.*#+}} xmm3 = xmm1[2],xmm2[2],xmm1[3],xmm2[3]
9138 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
9139 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm3[1]
9140 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
9141 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm3 # 16-byte Folded Reload
9142 ; AVX2-ONLY-NEXT:    # xmm3 = xmm2[2],mem[2],xmm2[3],mem[3]
9143 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
9144 ; AVX2-ONLY-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
9145 ; AVX2-ONLY-NEXT:    # xmm2 = mem[2,3,2,3]
9146 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
9147 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm3[6,7]
9148 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]
9149 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9150 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm1 # 16-byte Folded Reload
9151 ; AVX2-ONLY-NEXT:    # xmm1 = xmm0[2],mem[2],xmm0[3],mem[3]
9152 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
9153 ; AVX2-ONLY-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
9154 ; AVX2-ONLY-NEXT:    # xmm0 = mem[2,3,2,3]
9155 ; AVX2-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
9156 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
9157 ; AVX2-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
9158 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
9159 ; AVX2-ONLY-NEXT:    # xmm1 = xmm1[2],mem[2],xmm1[3],mem[3]
9160 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm15[1],xmm1[1]
9161 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
9162 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9163 ; AVX2-ONLY-NEXT:    vmovaps 32(%rdi), %ymm0
9164 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9165 ; AVX2-ONLY-NEXT:    vmovaps (%rdi), %ymm1
9166 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9167 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
9168 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm0, %xmm0
9169 ; AVX2-ONLY-NEXT:    vmovaps 96(%rdi), %ymm1
9170 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9171 ; AVX2-ONLY-NEXT:    vmovaps 64(%rdi), %ymm2
9172 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9173 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[4],ymm1[4],ymm2[5],ymm1[5]
9174 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9175 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,2]
9176 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
9177 ; AVX2-ONLY-NEXT:    vmovaps 224(%rdi), %ymm2
9178 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9179 ; AVX2-ONLY-NEXT:    vmovaps 192(%rdi), %ymm3
9180 ; AVX2-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9181 ; AVX2-ONLY-NEXT:    vmovaps 160(%rdi), %ymm15
9182 ; AVX2-ONLY-NEXT:    vmovaps 128(%rdi), %ymm1
9183 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9184 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm15[0],ymm1[1],ymm15[1],ymm1[4],ymm15[4],ymm1[5],ymm15[5]
9185 ; AVX2-ONLY-NEXT:    vmovups %ymm15, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9186 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm2 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
9187 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9188 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
9189 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
9190 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9191 ; AVX2-ONLY-NEXT:    vmovaps 288(%rdi), %ymm0
9192 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9193 ; AVX2-ONLY-NEXT:    vmovaps 256(%rdi), %ymm1
9194 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9195 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
9196 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm0, %xmm0
9197 ; AVX2-ONLY-NEXT:    vmovaps 352(%rdi), %ymm1
9198 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9199 ; AVX2-ONLY-NEXT:    vmovaps 320(%rdi), %ymm2
9200 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9201 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[4],ymm1[4],ymm2[5],ymm1[5]
9202 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9203 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,2]
9204 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
9205 ; AVX2-ONLY-NEXT:    vmovaps 480(%rdi), %ymm2
9206 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9207 ; AVX2-ONLY-NEXT:    vmovaps 448(%rdi), %ymm3
9208 ; AVX2-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9209 ; AVX2-ONLY-NEXT:    vmovaps 416(%rdi), %ymm4
9210 ; AVX2-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9211 ; AVX2-ONLY-NEXT:    vmovaps 384(%rdi), %ymm1
9212 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9213 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm4[0],ymm1[1],ymm4[1],ymm1[4],ymm4[4],ymm1[5],ymm4[5]
9214 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm12 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
9215 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm12[0],ymm1[2],ymm12[2]
9216 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
9217 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9218 ; AVX2-ONLY-NEXT:    vmovaps 544(%rdi), %ymm0
9219 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9220 ; AVX2-ONLY-NEXT:    vmovaps 512(%rdi), %ymm1
9221 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9222 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
9223 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm0, %xmm0
9224 ; AVX2-ONLY-NEXT:    vmovaps 608(%rdi), %ymm1
9225 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9226 ; AVX2-ONLY-NEXT:    vmovaps 576(%rdi), %ymm2
9227 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9228 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[4],ymm1[4],ymm2[5],ymm1[5]
9229 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9230 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,2]
9231 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
9232 ; AVX2-ONLY-NEXT:    vmovaps 736(%rdi), %ymm2
9233 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9234 ; AVX2-ONLY-NEXT:    vmovaps 704(%rdi), %ymm3
9235 ; AVX2-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9236 ; AVX2-ONLY-NEXT:    vmovaps 672(%rdi), %ymm4
9237 ; AVX2-ONLY-NEXT:    vmovaps 640(%rdi), %ymm1
9238 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9239 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm4[0],ymm1[1],ymm4[1],ymm1[4],ymm4[4],ymm1[5],ymm4[5]
9240 ; AVX2-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9241 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm8 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]
9242 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm8[0],ymm1[2],ymm8[2]
9243 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
9244 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9245 ; AVX2-ONLY-NEXT:    vmovaps 800(%rdi), %ymm0
9246 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9247 ; AVX2-ONLY-NEXT:    vmovaps 768(%rdi), %ymm1
9248 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9249 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
9250 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm0, %xmm0
9251 ; AVX2-ONLY-NEXT:    vmovaps 864(%rdi), %ymm1
9252 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9253 ; AVX2-ONLY-NEXT:    vmovaps 832(%rdi), %ymm2
9254 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9255 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[4],ymm1[4],ymm2[5],ymm1[5]
9256 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9257 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,2]
9258 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
9259 ; AVX2-ONLY-NEXT:    vmovaps 992(%rdi), %ymm2
9260 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9261 ; AVX2-ONLY-NEXT:    vmovaps 960(%rdi), %ymm5
9262 ; AVX2-ONLY-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9263 ; AVX2-ONLY-NEXT:    vmovaps 928(%rdi), %ymm3
9264 ; AVX2-ONLY-NEXT:    vmovaps 896(%rdi), %ymm1
9265 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9266 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[1],ymm3[1],ymm1[4],ymm3[4],ymm1[5],ymm3[5]
9267 ; AVX2-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9268 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm5 = ymm5[0],ymm2[0],ymm5[1],ymm2[1],ymm5[4],ymm2[4],ymm5[5],ymm2[5]
9269 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm5[0],ymm1[2],ymm5[2]
9270 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
9271 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9272 ; AVX2-ONLY-NEXT:    vmovaps 1056(%rdi), %ymm0
9273 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9274 ; AVX2-ONLY-NEXT:    vmovaps 1024(%rdi), %ymm1
9275 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9276 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]
9277 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm0, %xmm0
9278 ; AVX2-ONLY-NEXT:    vmovaps 1120(%rdi), %ymm1
9279 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9280 ; AVX2-ONLY-NEXT:    vmovaps 1088(%rdi), %ymm2
9281 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9282 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[4],ymm1[4],ymm2[5],ymm1[5]
9283 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9284 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,2]
9285 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]
9286 ; AVX2-ONLY-NEXT:    vmovaps 1248(%rdi), %ymm1
9287 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9288 ; AVX2-ONLY-NEXT:    vmovaps 1216(%rdi), %ymm7
9289 ; AVX2-ONLY-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9290 ; AVX2-ONLY-NEXT:    vmovaps 1184(%rdi), %ymm2
9291 ; AVX2-ONLY-NEXT:    vmovaps 1152(%rdi), %ymm6
9292 ; AVX2-ONLY-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9293 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm6 = ymm6[0],ymm2[0],ymm6[1],ymm2[1],ymm6[4],ymm2[4],ymm6[5],ymm2[5]
9294 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9295 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm1 = ymm7[0],ymm1[0],ymm7[1],ymm1[1],ymm7[4],ymm1[4],ymm7[5],ymm1[5]
9296 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm6 = ymm6[0],ymm1[0],ymm6[2],ymm1[2]
9297 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm6[4,5,6,7]
9298 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9299 ; AVX2-ONLY-NEXT:    vmovaps 1312(%rdi), %ymm0
9300 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9301 ; AVX2-ONLY-NEXT:    vmovaps 1280(%rdi), %ymm6
9302 ; AVX2-ONLY-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9303 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm6[0],ymm0[0],ymm6[1],ymm0[1],ymm6[4],ymm0[4],ymm6[5],ymm0[5]
9304 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm0, %xmm6
9305 ; AVX2-ONLY-NEXT:    vmovaps 1376(%rdi), %ymm0
9306 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9307 ; AVX2-ONLY-NEXT:    vmovaps 1344(%rdi), %ymm7
9308 ; AVX2-ONLY-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9309 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm7[0],ymm0[0],ymm7[1],ymm0[1],ymm7[4],ymm0[4],ymm7[5],ymm0[5]
9310 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9311 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm7 = ymm0[2,2,2,2]
9312 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm7 = xmm6[0,1],xmm7[2,3]
9313 ; AVX2-ONLY-NEXT:    vmovaps 1504(%rdi), %ymm6
9314 ; AVX2-ONLY-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9315 ; AVX2-ONLY-NEXT:    vmovaps 1472(%rdi), %ymm10
9316 ; AVX2-ONLY-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9317 ; AVX2-ONLY-NEXT:    vmovaps 1440(%rdi), %ymm0
9318 ; AVX2-ONLY-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
9319 ; AVX2-ONLY-NEXT:    vmovaps 1408(%rdi), %ymm9
9320 ; AVX2-ONLY-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9321 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm9 = ymm9[0],ymm0[0],ymm9[1],ymm0[1],ymm9[4],ymm0[4],ymm9[5],ymm0[5]
9322 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm0 = ymm10[0],ymm6[0],ymm10[1],ymm6[1],ymm10[4],ymm6[4],ymm10[5],ymm6[5]
9323 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm9 = ymm9[0],ymm0[0],ymm9[2],ymm0[2]
9324 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3],ymm9[4,5,6,7]
9325 ; AVX2-ONLY-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9326 ; AVX2-ONLY-NEXT:    vmovaps 1568(%rdi), %ymm6
9327 ; AVX2-ONLY-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9328 ; AVX2-ONLY-NEXT:    vmovaps 1536(%rdi), %ymm7
9329 ; AVX2-ONLY-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9330 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm7 = ymm7[0],ymm6[0],ymm7[1],ymm6[1],ymm7[4],ymm6[4],ymm7[5],ymm6[5]
9331 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm7, %xmm9
9332 ; AVX2-ONLY-NEXT:    vmovaps 1632(%rdi), %ymm6
9333 ; AVX2-ONLY-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9334 ; AVX2-ONLY-NEXT:    vmovaps 1600(%rdi), %ymm7
9335 ; AVX2-ONLY-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9336 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm6 = ymm7[0],ymm6[0],ymm7[1],ymm6[1],ymm7[4],ymm6[4],ymm7[5],ymm6[5]
9337 ; AVX2-ONLY-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9338 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm10 = ymm6[2,2,2,2]
9339 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm10 = xmm9[0,1],xmm10[2,3]
9340 ; AVX2-ONLY-NEXT:    vmovaps 1760(%rdi), %ymm9
9341 ; AVX2-ONLY-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9342 ; AVX2-ONLY-NEXT:    vmovaps 1728(%rdi), %ymm6
9343 ; AVX2-ONLY-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9344 ; AVX2-ONLY-NEXT:    vmovaps 1696(%rdi), %ymm7
9345 ; AVX2-ONLY-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9346 ; AVX2-ONLY-NEXT:    vmovaps 1664(%rdi), %ymm11
9347 ; AVX2-ONLY-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9348 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm11 = ymm11[0],ymm7[0],ymm11[1],ymm7[1],ymm11[4],ymm7[4],ymm11[5],ymm7[5]
9349 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm6 = ymm6[0],ymm9[0],ymm6[1],ymm9[1],ymm6[4],ymm9[4],ymm6[5],ymm9[5]
9350 ; AVX2-ONLY-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9351 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm11 = ymm11[0],ymm6[0],ymm11[2],ymm6[2]
9352 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1,2,3],ymm11[4,5,6,7]
9353 ; AVX2-ONLY-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9354 ; AVX2-ONLY-NEXT:    vmovaps 1824(%rdi), %ymm6
9355 ; AVX2-ONLY-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9356 ; AVX2-ONLY-NEXT:    vmovaps 1792(%rdi), %ymm7
9357 ; AVX2-ONLY-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9358 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm10 = ymm7[0],ymm6[0],ymm7[1],ymm6[1],ymm7[4],ymm6[4],ymm7[5],ymm6[5]
9359 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm10, %xmm11
9360 ; AVX2-ONLY-NEXT:    vmovaps 1888(%rdi), %ymm6
9361 ; AVX2-ONLY-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9362 ; AVX2-ONLY-NEXT:    vmovaps 1856(%rdi), %ymm7
9363 ; AVX2-ONLY-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9364 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm6 = ymm7[0],ymm6[0],ymm7[1],ymm6[1],ymm7[4],ymm6[4],ymm7[5],ymm6[5]
9365 ; AVX2-ONLY-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9366 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm13 = ymm6[2,2,2,2]
9367 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm13 = xmm11[0,1],xmm13[2,3]
9368 ; AVX2-ONLY-NEXT:    vmovaps 2016(%rdi), %ymm11
9369 ; AVX2-ONLY-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9370 ; AVX2-ONLY-NEXT:    vmovaps 1984(%rdi), %ymm6
9371 ; AVX2-ONLY-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9372 ; AVX2-ONLY-NEXT:    vmovaps 1952(%rdi), %ymm7
9373 ; AVX2-ONLY-NEXT:    vmovaps 1920(%rdi), %ymm9
9374 ; AVX2-ONLY-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9375 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm14 = ymm9[0],ymm7[0],ymm9[1],ymm7[1],ymm9[4],ymm7[4],ymm9[5],ymm7[5]
9376 ; AVX2-ONLY-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9377 ; AVX2-ONLY-NEXT:    vunpcklps {{.*#+}} ymm11 = ymm6[0],ymm11[0],ymm6[1],ymm11[1],ymm6[4],ymm11[4],ymm6[5],ymm11[5]
9378 ; AVX2-ONLY-NEXT:    vunpcklpd {{.*#+}} ymm14 = ymm14[0],ymm11[0],ymm14[2],ymm11[2]
9379 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1,2,3],ymm14[4,5,6,7]
9380 ; AVX2-ONLY-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9381 ; AVX2-ONLY-NEXT:    vbroadcastss 148(%rdi), %ymm13
9382 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1,2,3,4],ymm15[5],ymm13[6,7]
9383 ; AVX2-ONLY-NEXT:    vblendps $192, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm13 # 32-byte Folded Reload
9384 ; AVX2-ONLY-NEXT:    # ymm13 = ymm13[0,1,2,3,4,5],mem[6,7]
9385 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9386 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm6, %xmm14
9387 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
9388 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} ymm15 = ymm9[1,1,1,1,5,5,5,5]
9389 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9390 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm15 = ymm15[0],ymm6[1],ymm15[2,3,4],ymm6[5],ymm15[6,7]
9391 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm15, %xmm15
9392 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm14 = xmm15[0,1],xmm14[2,3]
9393 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm13 = ymm14[0,1,2,3],ymm13[4,5,6,7]
9394 ; AVX2-ONLY-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9395 ; AVX2-ONLY-NEXT:    vbroadcastss 404(%rdi), %ymm13
9396 ; AVX2-ONLY-NEXT:    vblendps $32, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm13 # 32-byte Folded Reload
9397 ; AVX2-ONLY-NEXT:    # ymm13 = ymm13[0,1,2,3,4],mem[5],ymm13[6,7]
9398 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm12 = ymm13[0,1,2,3,4,5],ymm12[6,7]
9399 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
9400 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm10, %xmm13
9401 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload
9402 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} ymm14 = ymm15[1,1,1,1,5,5,5,5]
9403 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
9404 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0],ymm10[1],ymm14[2,3,4],ymm10[5],ymm14[6,7]
9405 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm14, %xmm14
9406 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm13 = xmm14[0,1],xmm13[2,3]
9407 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm12 = ymm13[0,1,2,3],ymm12[4,5,6,7]
9408 ; AVX2-ONLY-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9409 ; AVX2-ONLY-NEXT:    vbroadcastss 660(%rdi), %ymm12
9410 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3,4],ymm4[5],ymm12[6,7]
9411 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm12[0,1,2,3,4,5],ymm8[6,7]
9412 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
9413 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm8, %xmm8
9414 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
9415 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} ymm12 = ymm13[1,1,1,1,5,5,5,5]
9416 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload
9417 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0],ymm14[1],ymm12[2,3,4],ymm14[5],ymm12[6,7]
9418 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm12, %xmm12
9419 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm8 = xmm12[0,1],xmm8[2,3]
9420 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm8[0,1,2,3],ymm4[4,5,6,7]
9421 ; AVX2-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9422 ; AVX2-ONLY-NEXT:    vbroadcastss 916(%rdi), %ymm4
9423 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4],ymm3[5],ymm4[6,7]
9424 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3,4,5],ymm5[6,7]
9425 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
9426 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm4, %xmm4
9427 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
9428 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} ymm5 = ymm8[1,1,1,1,5,5,5,5]
9429 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
9430 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0],ymm12[1],ymm5[2,3,4],ymm12[5],ymm5[6,7]
9431 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm5, %xmm5
9432 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm4 = xmm5[0,1],xmm4[2,3]
9433 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
9434 ; AVX2-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9435 ; AVX2-ONLY-NEXT:    vbroadcastss 1172(%rdi), %ymm3
9436 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4],ymm2[5],ymm3[6,7]
9437 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3,4,5],ymm1[6,7]
9438 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9439 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm2, %xmm2
9440 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
9441 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} ymm3 = ymm4[1,1,1,1,5,5,5,5]
9442 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
9443 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0],ymm5[1],ymm3[2,3,4],ymm5[5],ymm3[6,7]
9444 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm3, %xmm3
9445 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm3[0,1],xmm2[2,3]
9446 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
9447 ; AVX2-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9448 ; AVX2-ONLY-NEXT:    vbroadcastss 1428(%rdi), %ymm1
9449 ; AVX2-ONLY-NEXT:    vblendps $32, (%rsp), %ymm1, %ymm1 # 32-byte Folded Reload
9450 ; AVX2-ONLY-NEXT:    # ymm1 = ymm1[0,1,2,3,4],mem[5],ymm1[6,7]
9451 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm0[6,7]
9452 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9453 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm0, %xmm0
9454 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
9455 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm3[1,1,1,1,5,5,5,5]
9456 ; AVX2-ONLY-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
9457 ; AVX2-ONLY-NEXT:    # ymm2 = ymm2[0],mem[1],ymm2[2,3,4],mem[5],ymm2[6,7]
9458 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm2, %xmm2
9459 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm2[0,1],xmm0[2,3]
9460 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
9461 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9462 ; AVX2-ONLY-NEXT:    vbroadcastss 1684(%rdi), %ymm0
9463 ; AVX2-ONLY-NEXT:    vblendps $32, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
9464 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[0,1,2,3,4],mem[5],ymm0[6,7]
9465 ; AVX2-ONLY-NEXT:    vblendps $192, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
9466 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
9467 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9468 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm1, %xmm1
9469 ; AVX2-ONLY-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Folded Reload
9470 ; AVX2-ONLY-NEXT:    # ymm2 = mem[1,1,1,1,5,5,5,5]
9471 ; AVX2-ONLY-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
9472 ; AVX2-ONLY-NEXT:    # ymm2 = ymm2[0],mem[1],ymm2[2,3,4],mem[5],ymm2[6,7]
9473 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm2, %xmm2
9474 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
9475 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
9476 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9477 ; AVX2-ONLY-NEXT:    vbroadcastss 1940(%rdi), %ymm0
9478 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm7[5],ymm0[6,7]
9479 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm11[6,7]
9480 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9481 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm1, %xmm1
9482 ; AVX2-ONLY-NEXT:    vpermilps $85, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Folded Reload
9483 ; AVX2-ONLY-NEXT:    # ymm2 = mem[1,1,1,1,5,5,5,5]
9484 ; AVX2-ONLY-NEXT:    vblendps $34, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
9485 ; AVX2-ONLY-NEXT:    # ymm2 = ymm2[0],mem[1],ymm2[2,3,4],mem[5],ymm2[6,7]
9486 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm2, %xmm2
9487 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0,1],xmm1[2,3]
9488 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
9489 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9490 ; AVX2-ONLY-NEXT:    vbroadcastss 248(%rdi), %ymm0
9491 ; AVX2-ONLY-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
9492 ; AVX2-ONLY-NEXT:    # ymm0 = mem[0,1,2,3,4,5,6],ymm0[7]
9493 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9494 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm7 # 32-byte Folded Reload
9495 ; AVX2-ONLY-NEXT:    # ymm7 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
9496 ; AVX2-ONLY-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9497 ; AVX2-ONLY-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm9[2],ymm6[2],ymm9[3],ymm6[3],ymm9[6],ymm6[6],ymm9[7],ymm6[7]
9498 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9499 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9500 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload
9501 ; AVX2-ONLY-NEXT:    # ymm6 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
9502 ; AVX2-ONLY-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9503 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm2, %xmm1
9504 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm2 = ymm6[2,2,2,2]
9505 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
9506 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm7[0,1,2,3,4,5],ymm0[6,7]
9507 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
9508 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9509 ; AVX2-ONLY-NEXT:    vbroadcastss 504(%rdi), %ymm0
9510 ; AVX2-ONLY-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
9511 ; AVX2-ONLY-NEXT:    # ymm0 = mem[0,1,2,3,4,5,6],ymm0[7]
9512 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9513 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload
9514 ; AVX2-ONLY-NEXT:    # ymm6 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
9515 ; AVX2-ONLY-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9516 ; AVX2-ONLY-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm15[2],ymm10[2],ymm15[3],ymm10[3],ymm15[6],ymm10[6],ymm15[7],ymm10[7]
9517 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9518 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9519 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm7 # 32-byte Folded Reload
9520 ; AVX2-ONLY-NEXT:    # ymm7 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
9521 ; AVX2-ONLY-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9522 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm2, %xmm1
9523 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm2 = ymm7[2,2,2,2]
9524 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
9525 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm6[0,1,2,3,4,5],ymm0[6,7]
9526 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
9527 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9528 ; AVX2-ONLY-NEXT:    vbroadcastss 760(%rdi), %ymm0
9529 ; AVX2-ONLY-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
9530 ; AVX2-ONLY-NEXT:    # ymm0 = mem[0,1,2,3,4,5,6],ymm0[7]
9531 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9532 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload
9533 ; AVX2-ONLY-NEXT:    # ymm6 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
9534 ; AVX2-ONLY-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9535 ; AVX2-ONLY-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm13[2],ymm14[2],ymm13[3],ymm14[3],ymm13[6],ymm14[6],ymm13[7],ymm14[7]
9536 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9537 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9538 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm7 # 32-byte Folded Reload
9539 ; AVX2-ONLY-NEXT:    # ymm7 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
9540 ; AVX2-ONLY-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9541 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm2, %xmm1
9542 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm2 = ymm7[2,2,2,2]
9543 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
9544 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm6[0,1,2,3,4,5],ymm0[6,7]
9545 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
9546 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9547 ; AVX2-ONLY-NEXT:    vbroadcastss 1016(%rdi), %ymm0
9548 ; AVX2-ONLY-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
9549 ; AVX2-ONLY-NEXT:    # ymm0 = mem[0,1,2,3,4,5,6],ymm0[7]
9550 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9551 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload
9552 ; AVX2-ONLY-NEXT:    # ymm6 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
9553 ; AVX2-ONLY-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9554 ; AVX2-ONLY-NEXT:    vunpckhps {{.*#+}} ymm2 = ymm8[2],ymm12[2],ymm8[3],ymm12[3],ymm8[6],ymm12[6],ymm8[7],ymm12[7]
9555 ; AVX2-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9556 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9557 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm14 # 32-byte Folded Reload
9558 ; AVX2-ONLY-NEXT:    # ymm14 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
9559 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm2, %xmm1
9560 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm2 = ymm14[2,2,2,2]
9561 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
9562 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm6[0,1,2,3,4,5],ymm0[6,7]
9563 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
9564 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9565 ; AVX2-ONLY-NEXT:    vbroadcastss 1272(%rdi), %ymm0
9566 ; AVX2-ONLY-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
9567 ; AVX2-ONLY-NEXT:    # ymm0 = mem[0,1,2,3,4,5,6],ymm0[7]
9568 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9569 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm12 # 32-byte Folded Reload
9570 ; AVX2-ONLY-NEXT:    # ymm12 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
9571 ; AVX2-ONLY-NEXT:    vunpckhps {{.*#+}} ymm13 = ymm4[2],ymm5[2],ymm4[3],ymm5[3],ymm4[6],ymm5[6],ymm4[7],ymm5[7]
9572 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9573 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm11 # 32-byte Folded Reload
9574 ; AVX2-ONLY-NEXT:    # ymm11 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
9575 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm13, %xmm1
9576 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm2 = ymm11[2,2,2,2]
9577 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
9578 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm12[0,1,2,3,4,5],ymm0[6,7]
9579 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
9580 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9581 ; AVX2-ONLY-NEXT:    vbroadcastss 1528(%rdi), %ymm0
9582 ; AVX2-ONLY-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
9583 ; AVX2-ONLY-NEXT:    # ymm0 = mem[0,1,2,3,4,5,6],ymm0[7]
9584 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9585 ; AVX2-ONLY-NEXT:    vunpckhps (%rsp), %ymm1, %ymm10 # 32-byte Folded Reload
9586 ; AVX2-ONLY-NEXT:    # ymm10 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
9587 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm9 # 32-byte Folded Reload
9588 ; AVX2-ONLY-NEXT:    # ymm9 = ymm3[2],mem[2],ymm3[3],mem[3],ymm3[6],mem[6],ymm3[7],mem[7]
9589 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9590 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm8 # 32-byte Folded Reload
9591 ; AVX2-ONLY-NEXT:    # ymm8 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
9592 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm9, %xmm1
9593 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm2 = ymm8[2,2,2,2]
9594 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
9595 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1,2,3,4,5],ymm0[6,7]
9596 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
9597 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9598 ; AVX2-ONLY-NEXT:    vbroadcastss 1784(%rdi), %ymm0
9599 ; AVX2-ONLY-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
9600 ; AVX2-ONLY-NEXT:    # ymm0 = mem[0,1,2,3,4,5,6],ymm0[7]
9601 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9602 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload
9603 ; AVX2-ONLY-NEXT:    # ymm6 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
9604 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9605 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm7 # 32-byte Folded Reload
9606 ; AVX2-ONLY-NEXT:    # ymm7 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
9607 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9608 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm5 # 32-byte Folded Reload
9609 ; AVX2-ONLY-NEXT:    # ymm5 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]
9610 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm7, %xmm1
9611 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm2 = ymm5[2,2,2,2]
9612 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3]
9613 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm6[0,1,2,3,4,5],ymm0[6,7]
9614 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
9615 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9616 ; AVX2-ONLY-NEXT:    vbroadcastss 2040(%rdi), %ymm0
9617 ; AVX2-ONLY-NEXT:    vblendps $127, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload
9618 ; AVX2-ONLY-NEXT:    # ymm1 = mem[0,1,2,3,4,5,6],ymm0[7]
9619 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9620 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm4 # 32-byte Folded Reload
9621 ; AVX2-ONLY-NEXT:    # ymm4 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
9622 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9623 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm3 # 32-byte Folded Reload
9624 ; AVX2-ONLY-NEXT:    # ymm3 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
9625 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9626 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload
9627 ; AVX2-ONLY-NEXT:    # ymm2 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
9628 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm3, %xmm0
9629 ; AVX2-ONLY-NEXT:    vpermpd {{.*#+}} ymm15 = ymm2[2,2,2,2]
9630 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm15[2,3]
9631 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm4[0,1,2,3,4,5],ymm1[6,7]
9632 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
9633 ; AVX2-ONLY-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
9634 ; AVX2-ONLY-NEXT:    vbroadcastss 220(%rdi), %ymm0
9635 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
9636 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
9637 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9638 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
9639 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9640 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm1, %xmm1
9641 ; AVX2-ONLY-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Folded Reload
9642 ; AVX2-ONLY-NEXT:    # ymm15 = mem[2,3,2,3,6,7,6,7]
9643 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm15, %xmm15
9644 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm15[0,1],xmm1[2,3]
9645 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
9646 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9647 ; AVX2-ONLY-NEXT:    vbroadcastss 476(%rdi), %ymm0
9648 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
9649 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
9650 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9651 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
9652 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9653 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm1, %xmm1
9654 ; AVX2-ONLY-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Folded Reload
9655 ; AVX2-ONLY-NEXT:    # ymm15 = mem[2,3,2,3,6,7,6,7]
9656 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm15, %xmm15
9657 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm15[0,1],xmm1[2,3]
9658 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
9659 ; AVX2-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9660 ; AVX2-ONLY-NEXT:    vbroadcastss 732(%rdi), %ymm0
9661 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
9662 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
9663 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9664 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
9665 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9666 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm1, %xmm1
9667 ; AVX2-ONLY-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Folded Reload
9668 ; AVX2-ONLY-NEXT:    # ymm15 = mem[2,3,2,3,6,7,6,7]
9669 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm15, %xmm15
9670 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm15[0,1],xmm1[2,3]
9671 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm15 = ymm1[0,1,2,3],ymm0[4,5,6,7]
9672 ; AVX2-ONLY-NEXT:    vbroadcastss 988(%rdi), %ymm0
9673 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
9674 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
9675 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
9676 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
9677 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm14, %xmm1
9678 ; AVX2-ONLY-NEXT:    vpermilps $238, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Folded Reload
9679 ; AVX2-ONLY-NEXT:    # ymm14 = mem[2,3,2,3,6,7,6,7]
9680 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm14, %xmm14
9681 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm14[0,1],xmm1[2,3]
9682 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm14 = ymm1[0,1,2,3],ymm0[4,5,6,7]
9683 ; AVX2-ONLY-NEXT:    vbroadcastss 1244(%rdi), %ymm0
9684 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
9685 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
9686 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm12[1],ymm0[1],ymm12[3],ymm0[3]
9687 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm11, %xmm1
9688 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} ymm11 = ymm13[2,3,2,3,6,7,6,7]
9689 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm11, %xmm11
9690 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm11[0,1],xmm1[2,3]
9691 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm0[4,5,6,7]
9692 ; AVX2-ONLY-NEXT:    vbroadcastss 1500(%rdi), %ymm0
9693 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
9694 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
9695 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm10[1],ymm0[1],ymm10[3],ymm0[3]
9696 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm8, %xmm8
9697 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} ymm9 = ymm9[2,3,2,3,6,7,6,7]
9698 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm9, %xmm9
9699 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm8 = xmm9[0,1],xmm8[2,3]
9700 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm0[4,5,6,7]
9701 ; AVX2-ONLY-NEXT:    vbroadcastss 1756(%rdi), %ymm0
9702 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
9703 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
9704 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm6[1],ymm0[1],ymm6[3],ymm0[3]
9705 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm5, %xmm5
9706 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} ymm6 = ymm7[2,3,2,3,6,7,6,7]
9707 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm6, %xmm6
9708 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm5 = xmm6[0,1],xmm5[2,3]
9709 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm0[4,5,6,7]
9710 ; AVX2-ONLY-NEXT:    vbroadcastss 2012(%rdi), %ymm0
9711 ; AVX2-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
9712 ; AVX2-ONLY-NEXT:    # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]
9713 ; AVX2-ONLY-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm4[1],ymm0[1],ymm4[3],ymm0[3]
9714 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm2, %xmm2
9715 ; AVX2-ONLY-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[2,3,2,3,6,7,6,7]
9716 ; AVX2-ONLY-NEXT:    vextractf128 $1, %ymm3, %xmm3
9717 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm3[0,1],xmm2[2,3]
9718 ; AVX2-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
9719 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9720 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 192(%rsi)
9721 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9722 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 128(%rsi)
9723 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9724 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 64(%rsi)
9725 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9726 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, (%rsi)
9727 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9728 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 224(%rsi)
9729 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9730 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 160(%rsi)
9731 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9732 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 96(%rsi)
9733 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9734 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 32(%rsi)
9735 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9736 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 192(%rdx)
9737 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9738 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 128(%rdx)
9739 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9740 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 64(%rdx)
9741 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9742 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, (%rdx)
9743 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9744 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 224(%rdx)
9745 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9746 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 160(%rdx)
9747 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9748 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 96(%rdx)
9749 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9750 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 32(%rdx)
9751 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9752 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 192(%rcx)
9753 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9754 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 128(%rcx)
9755 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9756 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 64(%rcx)
9757 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9758 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, (%rcx)
9759 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9760 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 224(%rcx)
9761 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9762 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 160(%rcx)
9763 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9764 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 96(%rcx)
9765 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9766 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 32(%rcx)
9767 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9768 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 192(%r8)
9769 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9770 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 128(%r8)
9771 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9772 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 64(%r8)
9773 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9774 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, (%r8)
9775 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9776 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 224(%r8)
9777 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9778 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 160(%r8)
9779 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9780 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 96(%r8)
9781 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9782 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 32(%r8)
9783 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9784 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 224(%r9)
9785 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9786 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 192(%r9)
9787 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9788 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 160(%r9)
9789 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9790 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 128(%r9)
9791 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9792 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 96(%r9)
9793 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9794 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 64(%r9)
9795 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9796 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 32(%r9)
9797 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9798 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, (%r9)
9799 ; AVX2-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
9800 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9801 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 224(%rax)
9802 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9803 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 192(%rax)
9804 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9805 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 160(%rax)
9806 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9807 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 128(%rax)
9808 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9809 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 96(%rax)
9810 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9811 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 64(%rax)
9812 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9813 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 32(%rax)
9814 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9815 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, (%rax)
9816 ; AVX2-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
9817 ; AVX2-ONLY-NEXT:    vmovups (%rsp), %ymm2 # 32-byte Reload
9818 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 224(%rax)
9819 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9820 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 192(%rax)
9821 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9822 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 160(%rax)
9823 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9824 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 128(%rax)
9825 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9826 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 96(%rax)
9827 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9828 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 64(%rax)
9829 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9830 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, 32(%rax)
9831 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
9832 ; AVX2-ONLY-NEXT:    vmovaps %ymm2, (%rax)
9833 ; AVX2-ONLY-NEXT:    movq {{[0-9]+}}(%rsp), %rax
9834 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 224(%rax)
9835 ; AVX2-ONLY-NEXT:    vmovaps %ymm5, 192(%rax)
9836 ; AVX2-ONLY-NEXT:    vmovaps %ymm8, 160(%rax)
9837 ; AVX2-ONLY-NEXT:    vmovaps %ymm1, 128(%rax)
9838 ; AVX2-ONLY-NEXT:    vmovaps %ymm14, 96(%rax)
9839 ; AVX2-ONLY-NEXT:    vmovaps %ymm15, 64(%rax)
9840 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9841 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, 32(%rax)
9842 ; AVX2-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9843 ; AVX2-ONLY-NEXT:    vmovaps %ymm0, (%rax)
9844 ; AVX2-ONLY-NEXT:    addq $3528, %rsp # imm = 0xDC8
9845 ; AVX2-ONLY-NEXT:    vzeroupper
9846 ; AVX2-ONLY-NEXT:    retq
9848 ; AVX512F-LABEL: load_i32_stride8_vf64:
9849 ; AVX512F:       # %bb.0:
9850 ; AVX512F-NEXT:    subq $3304, %rsp # imm = 0xCE8
9851 ; AVX512F-NEXT:    vmovdqa64 1984(%rdi), %zmm21
9852 ; AVX512F-NEXT:    vmovdqa64 1216(%rdi), %zmm7
9853 ; AVX512F-NEXT:    vmovaps 1152(%rdi), %zmm0
9854 ; AVX512F-NEXT:    vmovups %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9855 ; AVX512F-NEXT:    vmovdqa64 1088(%rdi), %zmm23
9856 ; AVX512F-NEXT:    vmovdqa64 1024(%rdi), %zmm8
9857 ; AVX512F-NEXT:    vmovdqa64 1344(%rdi), %zmm22
9858 ; AVX512F-NEXT:    vmovdqa64 1280(%rdi), %zmm28
9859 ; AVX512F-NEXT:    vmovdqa64 1472(%rdi), %zmm30
9860 ; AVX512F-NEXT:    vmovdqa64 1408(%rdi), %zmm9
9861 ; AVX512F-NEXT:    vmovdqa64 704(%rdi), %zmm18
9862 ; AVX512F-NEXT:    vmovdqa64 640(%rdi), %zmm15
9863 ; AVX512F-NEXT:    vmovdqa64 576(%rdi), %zmm11
9864 ; AVX512F-NEXT:    vmovdqa64 512(%rdi), %zmm14
9865 ; AVX512F-NEXT:    vmovdqa64 832(%rdi), %zmm17
9866 ; AVX512F-NEXT:    vmovdqa64 768(%rdi), %zmm27
9867 ; AVX512F-NEXT:    vmovdqa64 960(%rdi), %zmm19
9868 ; AVX512F-NEXT:    vmovdqa64 896(%rdi), %zmm16
9869 ; AVX512F-NEXT:    vmovdqa64 (%rdi), %zmm10
9870 ; AVX512F-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9871 ; AVX512F-NEXT:    vmovdqa64 64(%rdi), %zmm13
9872 ; AVX512F-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9873 ; AVX512F-NEXT:    vmovdqa64 128(%rdi), %zmm5
9874 ; AVX512F-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9875 ; AVX512F-NEXT:    vmovdqa64 192(%rdi), %zmm6
9876 ; AVX512F-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9877 ; AVX512F-NEXT:    vmovdqa64 320(%rdi), %zmm4
9878 ; AVX512F-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9879 ; AVX512F-NEXT:    vmovdqa64 256(%rdi), %zmm20
9880 ; AVX512F-NEXT:    vmovdqa64 448(%rdi), %zmm2
9881 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9882 ; AVX512F-NEXT:    vmovdqa64 384(%rdi), %zmm1
9883 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9884 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [0,8,16,24,0,8,16,24,0,8,16,24,0,8,16,24]
9885 ; AVX512F-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9886 ; AVX512F-NEXT:    vpermt2d %zmm2, %zmm0, %zmm1
9887 ; AVX512F-NEXT:    vmovdqa64 %zmm20, %zmm2
9888 ; AVX512F-NEXT:    vpermt2d %zmm4, %zmm0, %zmm2
9889 ; AVX512F-NEXT:    movb $-64, %al
9890 ; AVX512F-NEXT:    kmovw %eax, %k1
9891 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm2 {%k1}
9892 ; AVX512F-NEXT:    vbroadcasti128 {{.*#+}} ymm1 = [0,8,16,24,0,8,16,24]
9893 ; AVX512F-NEXT:    # ymm1 = mem[0,1,0,1]
9894 ; AVX512F-NEXT:    vmovdqa64 %zmm5, %zmm4
9895 ; AVX512F-NEXT:    vpermt2d %zmm6, %zmm1, %zmm4
9896 ; AVX512F-NEXT:    vpermt2d %zmm13, %zmm0, %zmm10
9897 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm4 = ymm10[0,1,2,3],ymm4[4,5,6,7]
9898 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm4, %zmm2, %zmm2
9899 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9900 ; AVX512F-NEXT:    vmovdqa64 %zmm16, %zmm2
9901 ; AVX512F-NEXT:    vpermt2d %zmm19, %zmm0, %zmm2
9902 ; AVX512F-NEXT:    vmovdqa64 %zmm19, %zmm29
9903 ; AVX512F-NEXT:    vmovdqu64 %zmm19, (%rsp) # 64-byte Spill
9904 ; AVX512F-NEXT:    vmovdqa64 %zmm27, %zmm4
9905 ; AVX512F-NEXT:    vpermt2d %zmm17, %zmm0, %zmm4
9906 ; AVX512F-NEXT:    vmovdqa64 %zmm17, %zmm31
9907 ; AVX512F-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9908 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm4 {%k1}
9909 ; AVX512F-NEXT:    vmovdqa64 %zmm14, %zmm2
9910 ; AVX512F-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9911 ; AVX512F-NEXT:    vpermt2d %zmm11, %zmm0, %zmm2
9912 ; AVX512F-NEXT:    vmovdqa64 %zmm15, %zmm6
9913 ; AVX512F-NEXT:    vmovdqa64 %zmm15, %zmm13
9914 ; AVX512F-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9915 ; AVX512F-NEXT:    vpermt2d %zmm18, %zmm1, %zmm6
9916 ; AVX512F-NEXT:    vmovdqa64 %zmm18, %zmm15
9917 ; AVX512F-NEXT:    vmovdqu64 %zmm18, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9918 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm6[4,5,6,7]
9919 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm2, %zmm4, %zmm2
9920 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9921 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm17
9922 ; AVX512F-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9923 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm2
9924 ; AVX512F-NEXT:    vpermt2d %zmm30, %zmm0, %zmm2
9925 ; AVX512F-NEXT:    vmovdqa64 %zmm28, %zmm4
9926 ; AVX512F-NEXT:    vmovdqa64 %zmm22, %zmm19
9927 ; AVX512F-NEXT:    vpermt2d %zmm22, %zmm0, %zmm4
9928 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm4 {%k1}
9929 ; AVX512F-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9930 ; AVX512F-NEXT:    vmovdqa64 %zmm8, %zmm2
9931 ; AVX512F-NEXT:    vpermt2d %zmm23, %zmm0, %zmm2
9932 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
9933 ; AVX512F-NEXT:    vmovdqa64 %zmm12, %zmm6
9934 ; AVX512F-NEXT:    vpermt2d %zmm7, %zmm1, %zmm6
9935 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm6[4,5,6,7]
9936 ; AVX512F-NEXT:    vmovdqa64 1920(%rdi), %zmm3
9937 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm2, %zmm4, %zmm2
9938 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9939 ; AVX512F-NEXT:    vmovdqa64 %zmm3, %zmm2
9940 ; AVX512F-NEXT:    vmovdqa64 %zmm3, %zmm18
9941 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9942 ; AVX512F-NEXT:    vpermt2d %zmm21, %zmm0, %zmm2
9943 ; AVX512F-NEXT:    vmovdqa64 %zmm21, %zmm22
9944 ; AVX512F-NEXT:    vmovdqa64 1856(%rdi), %zmm10
9945 ; AVX512F-NEXT:    vmovdqa64 1792(%rdi), %zmm4
9946 ; AVX512F-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9947 ; AVX512F-NEXT:    vpermt2d %zmm10, %zmm0, %zmm4
9948 ; AVX512F-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9949 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm4 {%k1}
9950 ; AVX512F-NEXT:    vmovdqa64 1600(%rdi), %zmm2
9951 ; AVX512F-NEXT:    vmovdqa64 1536(%rdi), %zmm3
9952 ; AVX512F-NEXT:    vpermi2d %zmm2, %zmm3, %zmm0
9953 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm25
9954 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9955 ; AVX512F-NEXT:    vmovdqa64 1728(%rdi), %zmm26
9956 ; AVX512F-NEXT:    vmovdqa64 1664(%rdi), %zmm9
9957 ; AVX512F-NEXT:    vpermi2d %zmm26, %zmm9, %zmm1
9958 ; AVX512F-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9959 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
9960 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
9961 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9962 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [1,9,17,25,1,9,17,25,1,9,17,25,1,9,17,25]
9963 ; AVX512F-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9964 ; AVX512F-NEXT:    vmovdqa64 %zmm17, %zmm1
9965 ; AVX512F-NEXT:    vpermt2d %zmm30, %zmm0, %zmm1
9966 ; AVX512F-NEXT:    vmovdqa64 %zmm28, %zmm2
9967 ; AVX512F-NEXT:    vmovdqa64 %zmm28, %zmm24
9968 ; AVX512F-NEXT:    vpermt2d %zmm19, %zmm0, %zmm2
9969 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm2 {%k1}
9970 ; AVX512F-NEXT:    vpermt2d %zmm23, %zmm0, %zmm8
9971 ; AVX512F-NEXT:    vbroadcasti128 {{.*#+}} ymm1 = [1,9,17,25,1,9,17,25]
9972 ; AVX512F-NEXT:    # ymm1 = mem[0,1,0,1]
9973 ; AVX512F-NEXT:    vmovdqa64 %zmm12, %zmm6
9974 ; AVX512F-NEXT:    vpermt2d %zmm7, %zmm1, %zmm6
9975 ; AVX512F-NEXT:    vmovdqa64 %zmm7, %zmm17
9976 ; AVX512F-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9977 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm4 = ymm8[0,1,2,3],ymm6[4,5,6,7]
9978 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm4, %zmm2, %zmm2
9979 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9980 ; AVX512F-NEXT:    vmovdqa64 %zmm16, %zmm8
9981 ; AVX512F-NEXT:    vmovdqa64 %zmm16, %zmm2
9982 ; AVX512F-NEXT:    vpermt2d %zmm29, %zmm0, %zmm2
9983 ; AVX512F-NEXT:    vmovdqa64 %zmm27, %zmm4
9984 ; AVX512F-NEXT:    vpermt2d %zmm31, %zmm0, %zmm4
9985 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm4 {%k1}
9986 ; AVX512F-NEXT:    vpermt2d %zmm11, %zmm0, %zmm14
9987 ; AVX512F-NEXT:    vpermt2d %zmm15, %zmm1, %zmm13
9988 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm2 = ymm14[0,1,2,3],ymm13[4,5,6,7]
9989 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm2, %zmm4, %zmm2
9990 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9991 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
9992 ; AVX512F-NEXT:    vmovdqa64 %zmm12, %zmm2
9993 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
9994 ; AVX512F-NEXT:    vpermt2d %zmm5, %zmm0, %zmm2
9995 ; AVX512F-NEXT:    vmovdqa64 %zmm20, %zmm4
9996 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm29 # 64-byte Reload
9997 ; AVX512F-NEXT:    vpermt2d %zmm29, %zmm0, %zmm4
9998 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm4 {%k1}
9999 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
10000 ; AVX512F-NEXT:    vmovdqa64 %zmm13, %zmm2
10001 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
10002 ; AVX512F-NEXT:    vpermt2d %zmm31, %zmm1, %zmm2
10003 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
10004 ; AVX512F-NEXT:    vmovdqa64 %zmm7, %zmm6
10005 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
10006 ; AVX512F-NEXT:    vpermt2d %zmm16, %zmm0, %zmm6
10007 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm2 = ymm6[0,1,2,3],ymm2[4,5,6,7]
10008 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm2, %zmm4, %zmm2
10009 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10010 ; AVX512F-NEXT:    vmovdqa64 %zmm18, %zmm2
10011 ; AVX512F-NEXT:    vpermt2d %zmm21, %zmm0, %zmm2
10012 ; AVX512F-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10013 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm21 # 64-byte Reload
10014 ; AVX512F-NEXT:    vmovdqa64 %zmm21, %zmm4
10015 ; AVX512F-NEXT:    vpermt2d %zmm10, %zmm0, %zmm4
10016 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm4 {%k1}
10017 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10018 ; AVX512F-NEXT:    vpermi2d %zmm25, %zmm3, %zmm0
10019 ; AVX512F-NEXT:    vmovdqa64 %zmm26, %zmm10
10020 ; AVX512F-NEXT:    vmovdqu64 %zmm26, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10021 ; AVX512F-NEXT:    vpermi2d %zmm26, %zmm9, %zmm1
10022 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
10023 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
10024 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10025 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [2,10,18,26,2,10,18,26,2,10,18,26,2,10,18,26]
10026 ; AVX512F-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10027 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
10028 ; AVX512F-NEXT:    vmovdqa64 %zmm28, %zmm1
10029 ; AVX512F-NEXT:    vpermt2d %zmm30, %zmm0, %zmm1
10030 ; AVX512F-NEXT:    vmovdqa64 %zmm24, %zmm18
10031 ; AVX512F-NEXT:    vmovdqu64 %zmm24, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10032 ; AVX512F-NEXT:    vmovdqa64 %zmm24, %zmm2
10033 ; AVX512F-NEXT:    vmovdqa64 %zmm19, %zmm26
10034 ; AVX512F-NEXT:    vpermt2d %zmm19, %zmm0, %zmm2
10035 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm2 {%k1}
10036 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
10037 ; AVX512F-NEXT:    vmovdqa64 %zmm15, %zmm4
10038 ; AVX512F-NEXT:    vmovdqa64 %zmm23, %zmm14
10039 ; AVX512F-NEXT:    vmovdqu64 %zmm23, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10040 ; AVX512F-NEXT:    vpermt2d %zmm23, %zmm0, %zmm4
10041 ; AVX512F-NEXT:    vbroadcasti128 {{.*#+}} ymm1 = [2,10,18,26,2,10,18,26]
10042 ; AVX512F-NEXT:    # ymm1 = mem[0,1,0,1]
10043 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
10044 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm6
10045 ; AVX512F-NEXT:    vpermt2d %zmm17, %zmm1, %zmm6
10046 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm6[4,5,6,7]
10047 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm4, %zmm2, %zmm2
10048 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10049 ; AVX512F-NEXT:    vmovdqa64 %zmm8, %zmm2
10050 ; AVX512F-NEXT:    vmovdqa64 %zmm8, %zmm24
10051 ; AVX512F-NEXT:    vmovdqu64 (%rsp), %zmm19 # 64-byte Reload
10052 ; AVX512F-NEXT:    vpermt2d %zmm19, %zmm0, %zmm2
10053 ; AVX512F-NEXT:    vmovdqa64 %zmm27, %zmm4
10054 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
10055 ; AVX512F-NEXT:    vpermt2d %zmm17, %zmm0, %zmm4
10056 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm4 {%k1}
10057 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10058 ; AVX512F-NEXT:    vpermt2d %zmm11, %zmm0, %zmm2
10059 ; AVX512F-NEXT:    vmovdqa64 %zmm11, %zmm23
10060 ; AVX512F-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10061 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
10062 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm25 # 64-byte Reload
10063 ; AVX512F-NEXT:    vpermt2d %zmm25, %zmm1, %zmm6
10064 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm6[4,5,6,7]
10065 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm2, %zmm4, %zmm2
10066 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10067 ; AVX512F-NEXT:    vmovdqa64 %zmm12, %zmm2
10068 ; AVX512F-NEXT:    vpermt2d %zmm5, %zmm0, %zmm2
10069 ; AVX512F-NEXT:    vmovdqa64 %zmm5, %zmm11
10070 ; AVX512F-NEXT:    vmovdqa64 %zmm20, %zmm4
10071 ; AVX512F-NEXT:    vmovdqa64 %zmm29, %zmm5
10072 ; AVX512F-NEXT:    vpermt2d %zmm29, %zmm0, %zmm4
10073 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm4 {%k1}
10074 ; AVX512F-NEXT:    vmovdqa64 %zmm13, %zmm2
10075 ; AVX512F-NEXT:    vmovdqa64 %zmm13, %zmm8
10076 ; AVX512F-NEXT:    vpermt2d %zmm31, %zmm1, %zmm2
10077 ; AVX512F-NEXT:    vpermt2d %zmm16, %zmm0, %zmm7
10078 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm2 = ymm7[0,1,2,3],ymm2[4,5,6,7]
10079 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm2, %zmm4, %zmm2
10080 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10081 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
10082 ; AVX512F-NEXT:    vmovdqa64 %zmm7, %zmm2
10083 ; AVX512F-NEXT:    vpermt2d %zmm22, %zmm0, %zmm2
10084 ; AVX512F-NEXT:    vmovdqa64 %zmm21, %zmm4
10085 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
10086 ; AVX512F-NEXT:    vpermt2d %zmm12, %zmm0, %zmm4
10087 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm4 {%k1}
10088 ; AVX512F-NEXT:    vpermi2d {{[-0-9]+}}(%r{{[sb]}}p), %zmm3, %zmm0 # 64-byte Folded Reload
10089 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10090 ; AVX512F-NEXT:    vpermi2d %zmm10, %zmm3, %zmm1
10091 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
10092 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
10093 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10094 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [3,11,19,27,3,11,19,27,3,11,19,27,3,11,19,27]
10095 ; AVX512F-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10096 ; AVX512F-NEXT:    vmovdqa64 %zmm28, %zmm1
10097 ; AVX512F-NEXT:    vpermt2d %zmm30, %zmm0, %zmm1
10098 ; AVX512F-NEXT:    vpermt2d %zmm26, %zmm0, %zmm18
10099 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm18 {%k1}
10100 ; AVX512F-NEXT:    vpermt2d %zmm14, %zmm0, %zmm15
10101 ; AVX512F-NEXT:    vbroadcasti128 {{.*#+}} ymm1 = [3,11,19,27,3,11,19,27]
10102 ; AVX512F-NEXT:    # ymm1 = mem[0,1,0,1]
10103 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm6
10104 ; AVX512F-NEXT:    vpermt2d {{[-0-9]+}}(%r{{[sb]}}p), %zmm1, %zmm6 # 64-byte Folded Reload
10105 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm4 = ymm15[0,1,2,3],ymm6[4,5,6,7]
10106 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm4, %zmm18, %zmm2
10107 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10108 ; AVX512F-NEXT:    vmovdqa64 %zmm24, %zmm2
10109 ; AVX512F-NEXT:    vmovdqa64 %zmm24, %zmm29
10110 ; AVX512F-NEXT:    vmovdqu64 %zmm24, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10111 ; AVX512F-NEXT:    vpermt2d %zmm19, %zmm0, %zmm2
10112 ; AVX512F-NEXT:    vmovdqa64 %zmm19, %zmm24
10113 ; AVX512F-NEXT:    vmovdqa64 %zmm27, %zmm4
10114 ; AVX512F-NEXT:    vmovdqa64 %zmm27, %zmm16
10115 ; AVX512F-NEXT:    vmovdqu64 %zmm27, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10116 ; AVX512F-NEXT:    vpermt2d %zmm17, %zmm0, %zmm4
10117 ; AVX512F-NEXT:    vmovdqa64 %zmm17, %zmm28
10118 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm4 {%k1}
10119 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
10120 ; AVX512F-NEXT:    vmovdqa64 %zmm13, %zmm2
10121 ; AVX512F-NEXT:    vpermt2d %zmm23, %zmm0, %zmm2
10122 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
10123 ; AVX512F-NEXT:    vmovdqa64 %zmm14, %zmm6
10124 ; AVX512F-NEXT:    vmovdqa64 %zmm25, %zmm15
10125 ; AVX512F-NEXT:    vpermt2d %zmm25, %zmm1, %zmm6
10126 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm6[4,5,6,7]
10127 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm2, %zmm4, %zmm2
10128 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10129 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm23 # 64-byte Reload
10130 ; AVX512F-NEXT:    vmovdqa64 %zmm23, %zmm2
10131 ; AVX512F-NEXT:    vpermt2d %zmm11, %zmm0, %zmm2
10132 ; AVX512F-NEXT:    vmovdqa64 %zmm11, %zmm27
10133 ; AVX512F-NEXT:    vmovdqa64 %zmm20, %zmm4
10134 ; AVX512F-NEXT:    vmovdqa64 %zmm20, %zmm22
10135 ; AVX512F-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10136 ; AVX512F-NEXT:    vpermt2d %zmm5, %zmm0, %zmm4
10137 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm4 {%k1}
10138 ; AVX512F-NEXT:    vmovdqa64 %zmm8, %zmm2
10139 ; AVX512F-NEXT:    vmovdqa64 %zmm8, %zmm11
10140 ; AVX512F-NEXT:    vpermt2d %zmm31, %zmm1, %zmm2
10141 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
10142 ; AVX512F-NEXT:    vmovdqa64 %zmm10, %zmm6
10143 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
10144 ; AVX512F-NEXT:    vpermt2d %zmm20, %zmm0, %zmm6
10145 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm2 = ymm6[0,1,2,3],ymm2[4,5,6,7]
10146 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm2, %zmm4, %zmm2
10147 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10148 ; AVX512F-NEXT:    vmovdqa64 %zmm7, %zmm17
10149 ; AVX512F-NEXT:    vmovdqa64 %zmm7, %zmm2
10150 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm18 # 64-byte Reload
10151 ; AVX512F-NEXT:    vpermt2d %zmm18, %zmm0, %zmm2
10152 ; AVX512F-NEXT:    vmovdqa64 %zmm21, %zmm4
10153 ; AVX512F-NEXT:    vmovdqa64 %zmm12, %zmm21
10154 ; AVX512F-NEXT:    vpermt2d %zmm12, %zmm0, %zmm4
10155 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm4 {%k1}
10156 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
10157 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
10158 ; AVX512F-NEXT:    vpermi2d %zmm12, %zmm7, %zmm0
10159 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
10160 ; AVX512F-NEXT:    vpermi2d %zmm8, %zmm3, %zmm1
10161 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
10162 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
10163 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10164 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [4,12,20,28,4,12,20,28,4,12,20,28,4,12,20,28]
10165 ; AVX512F-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10166 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
10167 ; AVX512F-NEXT:    vmovdqa64 %zmm5, %zmm1
10168 ; AVX512F-NEXT:    vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10169 ; AVX512F-NEXT:    vpermt2d %zmm30, %zmm0, %zmm1
10170 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm25 # 64-byte Reload
10171 ; AVX512F-NEXT:    vmovdqa64 %zmm25, %zmm2
10172 ; AVX512F-NEXT:    vmovdqu64 %zmm26, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10173 ; AVX512F-NEXT:    vpermt2d %zmm26, %zmm0, %zmm2
10174 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm2 {%k1}
10175 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10176 ; AVX512F-NEXT:    vmovdqa64 %zmm3, %zmm4
10177 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
10178 ; AVX512F-NEXT:    vpermt2d %zmm19, %zmm0, %zmm4
10179 ; AVX512F-NEXT:    vbroadcasti128 {{.*#+}} ymm1 = [4,12,20,28,4,12,20,28]
10180 ; AVX512F-NEXT:    # ymm1 = mem[0,1,0,1]
10181 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm6
10182 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
10183 ; AVX512F-NEXT:    vpermt2d %zmm9, %zmm1, %zmm6
10184 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm6[4,5,6,7]
10185 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm4, %zmm2, %zmm2
10186 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10187 ; AVX512F-NEXT:    vpermt2d %zmm24, %zmm0, %zmm29
10188 ; AVX512F-NEXT:    vmovdqa64 %zmm16, %zmm4
10189 ; AVX512F-NEXT:    vpermt2d %zmm28, %zmm0, %zmm4
10190 ; AVX512F-NEXT:    vmovdqa64 %zmm29, %zmm4 {%k1}
10191 ; AVX512F-NEXT:    vmovdqa64 %zmm13, %zmm2
10192 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm24 # 64-byte Reload
10193 ; AVX512F-NEXT:    vpermt2d %zmm24, %zmm0, %zmm2
10194 ; AVX512F-NEXT:    vmovdqa64 %zmm14, %zmm6
10195 ; AVX512F-NEXT:    vpermt2d %zmm15, %zmm1, %zmm6
10196 ; AVX512F-NEXT:    vmovdqa64 %zmm15, %zmm16
10197 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm6[4,5,6,7]
10198 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm2, %zmm4, %zmm2
10199 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10200 ; AVX512F-NEXT:    vmovdqa64 %zmm23, %zmm2
10201 ; AVX512F-NEXT:    vpermt2d %zmm27, %zmm0, %zmm2
10202 ; AVX512F-NEXT:    vmovdqa64 %zmm27, %zmm15
10203 ; AVX512F-NEXT:    vmovdqa64 %zmm22, %zmm4
10204 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm27 # 64-byte Reload
10205 ; AVX512F-NEXT:    vpermt2d %zmm27, %zmm0, %zmm4
10206 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm4 {%k1}
10207 ; AVX512F-NEXT:    vpermt2d %zmm31, %zmm1, %zmm11
10208 ; AVX512F-NEXT:    vmovdqa64 %zmm10, %zmm6
10209 ; AVX512F-NEXT:    vpermt2d %zmm20, %zmm0, %zmm6
10210 ; AVX512F-NEXT:    vmovdqa64 %zmm20, %zmm22
10211 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm2 = ymm6[0,1,2,3],ymm11[4,5,6,7]
10212 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm2, %zmm4, %zmm2
10213 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10214 ; AVX512F-NEXT:    vmovdqa64 %zmm17, %zmm2
10215 ; AVX512F-NEXT:    vpermt2d %zmm18, %zmm0, %zmm2
10216 ; AVX512F-NEXT:    vmovdqa64 %zmm18, %zmm6
10217 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm29 # 64-byte Reload
10218 ; AVX512F-NEXT:    vmovdqa64 %zmm29, %zmm4
10219 ; AVX512F-NEXT:    vpermt2d %zmm21, %zmm0, %zmm4
10220 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm4 {%k1}
10221 ; AVX512F-NEXT:    vpermi2d %zmm12, %zmm7, %zmm0
10222 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10223 ; AVX512F-NEXT:    vpermi2d %zmm8, %zmm2, %zmm1
10224 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
10225 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
10226 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10227 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm7 = [5,13,21,29,5,13,21,29,5,13,21,29,5,13,21,29]
10228 ; AVX512F-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10229 ; AVX512F-NEXT:    vmovdqa64 %zmm5, %zmm0
10230 ; AVX512F-NEXT:    vpermt2d %zmm30, %zmm7, %zmm0
10231 ; AVX512F-NEXT:    vmovdqa64 %zmm25, %zmm1
10232 ; AVX512F-NEXT:    vmovdqa64 %zmm25, %zmm12
10233 ; AVX512F-NEXT:    vpermt2d %zmm26, %zmm7, %zmm1
10234 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
10235 ; AVX512F-NEXT:    vmovdqa64 %zmm3, %zmm0
10236 ; AVX512F-NEXT:    vpermt2d %zmm19, %zmm7, %zmm0
10237 ; AVX512F-NEXT:    vmovdqa64 %zmm19, %zmm26
10238 ; AVX512F-NEXT:    vbroadcasti128 {{.*#+}} ymm2 = [5,13,21,29,5,13,21,29]
10239 ; AVX512F-NEXT:    # ymm2 = mem[0,1,0,1]
10240 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
10241 ; AVX512F-NEXT:    vpermt2d %zmm9, %zmm2, %zmm4
10242 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm4[4,5,6,7]
10243 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm0, %zmm1, %zmm0
10244 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10245 ; AVX512F-NEXT:    vmovdqa64 %zmm13, %zmm0
10246 ; AVX512F-NEXT:    vpermt2d %zmm24, %zmm7, %zmm0
10247 ; AVX512F-NEXT:    vpermt2d %zmm16, %zmm2, %zmm14
10248 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm14[4,5,6,7]
10249 ; AVX512F-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10250 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm21 # 64-byte Reload
10251 ; AVX512F-NEXT:    vmovdqa64 %zmm21, %zmm9
10252 ; AVX512F-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
10253 ; AVX512F-NEXT:    vpermt2d %zmm0, %zmm7, %zmm9
10254 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [6,14,22,30,6,14,22,30,6,14,22,30,6,14,22,30]
10255 ; AVX512F-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10256 ; AVX512F-NEXT:    vmovdqa64 %zmm21, %zmm30
10257 ; AVX512F-NEXT:    vpermt2d %zmm0, %zmm10, %zmm30
10258 ; AVX512F-NEXT:    vbroadcasti32x4 {{.*#+}} zmm2 = [7,15,23,31,7,15,23,31,7,15,23,31,7,15,23,31]
10259 ; AVX512F-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10260 ; AVX512F-NEXT:    vpermt2d %zmm0, %zmm2, %zmm21
10261 ; AVX512F-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10262 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
10263 ; AVX512F-NEXT:    vmovdqa64 %zmm20, %zmm25
10264 ; AVX512F-NEXT:    vpermt2d %zmm28, %zmm7, %zmm25
10265 ; AVX512F-NEXT:    vmovdqa64 %zmm20, %zmm31
10266 ; AVX512F-NEXT:    vpermt2d %zmm28, %zmm10, %zmm31
10267 ; AVX512F-NEXT:    vpermt2d %zmm28, %zmm2, %zmm20
10268 ; AVX512F-NEXT:    vmovdqa64 %zmm13, %zmm4
10269 ; AVX512F-NEXT:    vpermt2d %zmm24, %zmm10, %zmm4
10270 ; AVX512F-NEXT:    vmovdqu64 %zmm4, (%rsp) # 64-byte Spill
10271 ; AVX512F-NEXT:    vpermt2d %zmm24, %zmm2, %zmm13
10272 ; AVX512F-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10273 ; AVX512F-NEXT:    vmovdqa64 %zmm23, %zmm19
10274 ; AVX512F-NEXT:    vmovdqa64 %zmm23, %zmm18
10275 ; AVX512F-NEXT:    vpermt2d %zmm15, %zmm7, %zmm18
10276 ; AVX512F-NEXT:    vmovdqa64 %zmm23, %zmm16
10277 ; AVX512F-NEXT:    vpermt2d %zmm15, %zmm10, %zmm16
10278 ; AVX512F-NEXT:    vpermt2d %zmm15, %zmm2, %zmm19
10279 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm23 # 64-byte Reload
10280 ; AVX512F-NEXT:    vmovdqa64 %zmm23, %zmm11
10281 ; AVX512F-NEXT:    vpermt2d %zmm27, %zmm7, %zmm11
10282 ; AVX512F-NEXT:    vmovdqa64 %zmm23, %zmm17
10283 ; AVX512F-NEXT:    vpermt2d %zmm27, %zmm10, %zmm17
10284 ; AVX512F-NEXT:    vpermt2d %zmm27, %zmm2, %zmm23
10285 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
10286 ; AVX512F-NEXT:    vmovdqa64 %zmm13, %zmm14
10287 ; AVX512F-NEXT:    vpermt2d %zmm22, %zmm7, %zmm14
10288 ; AVX512F-NEXT:    vmovdqa64 %zmm13, %zmm1
10289 ; AVX512F-NEXT:    vpermt2d %zmm22, %zmm10, %zmm1
10290 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10291 ; AVX512F-NEXT:    vpermt2d %zmm22, %zmm2, %zmm13
10292 ; AVX512F-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10293 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
10294 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm21
10295 ; AVX512F-NEXT:    vpermt2d %zmm6, %zmm7, %zmm21
10296 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm28
10297 ; AVX512F-NEXT:    vpermt2d %zmm6, %zmm10, %zmm28
10298 ; AVX512F-NEXT:    vpermt2d %zmm6, %zmm2, %zmm1
10299 ; AVX512F-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10300 ; AVX512F-NEXT:    vmovdqa64 %zmm29, %zmm1
10301 ; AVX512F-NEXT:    vmovdqa64 %zmm29, %zmm22
10302 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10303 ; AVX512F-NEXT:    vpermt2d %zmm0, %zmm7, %zmm22
10304 ; AVX512F-NEXT:    vmovdqa64 %zmm29, %zmm24
10305 ; AVX512F-NEXT:    vpermt2d %zmm0, %zmm10, %zmm24
10306 ; AVX512F-NEXT:    vpermt2d %zmm0, %zmm2, %zmm1
10307 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm29
10308 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10309 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
10310 ; AVX512F-NEXT:    vpermi2d %zmm1, %zmm0, %zmm7
10311 ; AVX512F-NEXT:    vmovdqa64 %zmm5, %zmm27
10312 ; AVX512F-NEXT:    vmovdqa64 %zmm5, %zmm15
10313 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10314 ; AVX512F-NEXT:    vpermt2d %zmm3, %zmm10, %zmm15
10315 ; AVX512F-NEXT:    vmovdqa64 %zmm12, %zmm13
10316 ; AVX512F-NEXT:    vmovdqa64 %zmm12, %zmm5
10317 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
10318 ; AVX512F-NEXT:    vpermt2d %zmm4, %zmm10, %zmm5
10319 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
10320 ; AVX512F-NEXT:    vmovdqa64 %zmm12, %zmm8
10321 ; AVX512F-NEXT:    vmovdqa64 %zmm26, %zmm6
10322 ; AVX512F-NEXT:    vpermt2d %zmm26, %zmm10, %zmm8
10323 ; AVX512F-NEXT:    vpermi2d %zmm1, %zmm0, %zmm10
10324 ; AVX512F-NEXT:    vpermt2d %zmm1, %zmm2, %zmm0
10325 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10326 ; AVX512F-NEXT:    vpermt2d %zmm3, %zmm2, %zmm27
10327 ; AVX512F-NEXT:    vpermt2d %zmm4, %zmm2, %zmm13
10328 ; AVX512F-NEXT:    vmovdqa64 %zmm13, %zmm26
10329 ; AVX512F-NEXT:    vpermt2d %zmm6, %zmm2, %zmm12
10330 ; AVX512F-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10331 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm25 {%k1}
10332 ; AVX512F-NEXT:    vinserti64x4 $0, {{[-0-9]+}}(%r{{[sb]}}p), %zmm25, %zmm25 # 32-byte Folded Reload
10333 ; AVX512F-NEXT:    vmovdqa64 %zmm18, %zmm11 {%k1}
10334 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
10335 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm6
10336 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
10337 ; AVX512F-NEXT:    vbroadcasti128 {{.*#+}} ymm0 = [5,13,21,29,5,13,21,29]
10338 ; AVX512F-NEXT:    # ymm0 = mem[0,1,0,1]
10339 ; AVX512F-NEXT:    vpermt2d %zmm4, %zmm0, %zmm6
10340 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm3 = ymm14[0,1,2,3],ymm6[4,5,6,7]
10341 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm3, %zmm11, %zmm18
10342 ; AVX512F-NEXT:    vmovdqa64 %zmm21, %zmm22 {%k1}
10343 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
10344 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
10345 ; AVX512F-NEXT:    vpermi2d %zmm14, %zmm1, %zmm0
10346 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm2 = ymm7[0,1,2,3],ymm0[4,5,6,7]
10347 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm2, %zmm22, %zmm21
10348 ; AVX512F-NEXT:    vbroadcasti128 {{.*#+}} ymm3 = [6,14,22,30,6,14,22,30]
10349 ; AVX512F-NEXT:    # ymm3 = mem[0,1,0,1]
10350 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
10351 ; AVX512F-NEXT:    vmovdqa64 %zmm12, %zmm7
10352 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10353 ; AVX512F-NEXT:    vpermt2d %zmm2, %zmm3, %zmm7
10354 ; AVX512F-NEXT:    vbroadcasti128 {{.*#+}} ymm11 = [7,15,23,31,7,15,23,31]
10355 ; AVX512F-NEXT:    # ymm11 = mem[0,1,0,1]
10356 ; AVX512F-NEXT:    vpermt2d %zmm2, %zmm11, %zmm12
10357 ; AVX512F-NEXT:    vmovdqa64 %zmm9, %zmm0
10358 ; AVX512F-NEXT:    vpermt2d %zmm4, %zmm3, %zmm0
10359 ; AVX512F-NEXT:    vpermt2d %zmm4, %zmm11, %zmm9
10360 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
10361 ; AVX512F-NEXT:    vmovdqa64 %zmm6, %zmm2
10362 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
10363 ; AVX512F-NEXT:    vpermt2d %zmm22, %zmm3, %zmm2
10364 ; AVX512F-NEXT:    vpermi2d %zmm14, %zmm1, %zmm3
10365 ; AVX512F-NEXT:    vpermt2d %zmm14, %zmm11, %zmm1
10366 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm14
10367 ; AVX512F-NEXT:    vpermt2d %zmm22, %zmm11, %zmm6
10368 ; AVX512F-NEXT:    vmovdqa64 %zmm6, %zmm11
10369 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm6 = ymm8[0,1,2,3],ymm2[4,5,6,7]
10370 ; AVX512F-NEXT:    vmovdqa64 %zmm15, %zmm5 {%k1}
10371 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm6, %zmm5, %zmm6
10372 ; AVX512F-NEXT:    vpblendd $15, (%rsp), %ymm7, %ymm7 # 32-byte Folded Reload
10373 ; AVX512F-NEXT:    # ymm7 = mem[0,1,2,3],ymm7[4,5,6,7]
10374 ; AVX512F-NEXT:    vmovdqa64 %zmm30, %zmm31 {%k1}
10375 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm7, %zmm31, %zmm13
10376 ; AVX512F-NEXT:    vmovdqa64 %zmm16, %zmm17 {%k1}
10377 ; AVX512F-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
10378 ; AVX512F-NEXT:    # ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
10379 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm0, %zmm17, %zmm0
10380 ; AVX512F-NEXT:    vmovdqa64 %zmm28, %zmm24 {%k1}
10381 ; AVX512F-NEXT:    vpblendd {{.*#+}} ymm1 = ymm10[0,1,2,3],ymm3[4,5,6,7]
10382 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm1, %zmm24, %zmm1
10383 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10384 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm20 {%k1}
10385 ; AVX512F-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm3 # 32-byte Folded Reload
10386 ; AVX512F-NEXT:    # ymm3 = mem[0,1,2,3],ymm12[4,5,6,7]
10387 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm3, %zmm20, %zmm3
10388 ; AVX512F-NEXT:    vmovdqa64 %zmm19, %zmm23 {%k1}
10389 ; AVX512F-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm4 # 32-byte Folded Reload
10390 ; AVX512F-NEXT:    # ymm4 = mem[0,1,2,3],ymm9[4,5,6,7]
10391 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm4, %zmm23, %zmm4
10392 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10393 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm29 {%k1}
10394 ; AVX512F-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm7 # 32-byte Folded Reload
10395 ; AVX512F-NEXT:    # ymm7 = mem[0,1,2,3],ymm14[4,5,6,7]
10396 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm7, %zmm29, %zmm7
10397 ; AVX512F-NEXT:    vmovdqa64 %zmm27, %zmm26 {%k1}
10398 ; AVX512F-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm8 # 32-byte Folded Reload
10399 ; AVX512F-NEXT:    # ymm8 = mem[0,1,2,3],ymm11[4,5,6,7]
10400 ; AVX512F-NEXT:    vinserti64x4 $0, %ymm8, %zmm26, %zmm8
10401 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10402 ; AVX512F-NEXT:    vmovaps %zmm2, 192(%rsi)
10403 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10404 ; AVX512F-NEXT:    vmovaps %zmm2, 128(%rsi)
10405 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10406 ; AVX512F-NEXT:    vmovaps %zmm2, 64(%rsi)
10407 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10408 ; AVX512F-NEXT:    vmovaps %zmm2, (%rsi)
10409 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10410 ; AVX512F-NEXT:    vmovaps %zmm2, 192(%rdx)
10411 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10412 ; AVX512F-NEXT:    vmovaps %zmm2, (%rdx)
10413 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10414 ; AVX512F-NEXT:    vmovaps %zmm2, 64(%rdx)
10415 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10416 ; AVX512F-NEXT:    vmovaps %zmm2, 128(%rdx)
10417 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10418 ; AVX512F-NEXT:    vmovaps %zmm2, 192(%rcx)
10419 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10420 ; AVX512F-NEXT:    vmovaps %zmm2, (%rcx)
10421 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10422 ; AVX512F-NEXT:    vmovaps %zmm2, 64(%rcx)
10423 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10424 ; AVX512F-NEXT:    vmovaps %zmm2, 128(%rcx)
10425 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10426 ; AVX512F-NEXT:    vmovaps %zmm2, 192(%r8)
10427 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10428 ; AVX512F-NEXT:    vmovaps %zmm2, (%r8)
10429 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10430 ; AVX512F-NEXT:    vmovaps %zmm2, 64(%r8)
10431 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10432 ; AVX512F-NEXT:    vmovaps %zmm2, 128(%r8)
10433 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10434 ; AVX512F-NEXT:    vmovaps %zmm2, 192(%r9)
10435 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10436 ; AVX512F-NEXT:    vmovaps %zmm2, (%r9)
10437 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10438 ; AVX512F-NEXT:    vmovaps %zmm2, 64(%r9)
10439 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10440 ; AVX512F-NEXT:    vmovaps %zmm2, 128(%r9)
10441 ; AVX512F-NEXT:    movq {{[0-9]+}}(%rsp), %rax
10442 ; AVX512F-NEXT:    vmovdqa64 %zmm21, 192(%rax)
10443 ; AVX512F-NEXT:    vmovdqa64 %zmm18, (%rax)
10444 ; AVX512F-NEXT:    vmovdqa64 %zmm25, 64(%rax)
10445 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10446 ; AVX512F-NEXT:    vmovaps %zmm2, 128(%rax)
10447 ; AVX512F-NEXT:    movq {{[0-9]+}}(%rsp), %rax
10448 ; AVX512F-NEXT:    vmovdqa64 %zmm1, 192(%rax)
10449 ; AVX512F-NEXT:    vmovdqa64 %zmm0, (%rax)
10450 ; AVX512F-NEXT:    vmovdqa64 %zmm13, 64(%rax)
10451 ; AVX512F-NEXT:    vmovdqa64 %zmm6, 128(%rax)
10452 ; AVX512F-NEXT:    movq {{[0-9]+}}(%rsp), %rax
10453 ; AVX512F-NEXT:    vmovdqa64 %zmm8, 128(%rax)
10454 ; AVX512F-NEXT:    vmovdqa64 %zmm7, 192(%rax)
10455 ; AVX512F-NEXT:    vmovdqa64 %zmm4, (%rax)
10456 ; AVX512F-NEXT:    vmovdqa64 %zmm3, 64(%rax)
10457 ; AVX512F-NEXT:    addq $3304, %rsp # imm = 0xCE8
10458 ; AVX512F-NEXT:    vzeroupper
10459 ; AVX512F-NEXT:    retq
10461 ; AVX512BW-LABEL: load_i32_stride8_vf64:
10462 ; AVX512BW:       # %bb.0:
10463 ; AVX512BW-NEXT:    subq $3304, %rsp # imm = 0xCE8
10464 ; AVX512BW-NEXT:    vmovdqa64 1984(%rdi), %zmm21
10465 ; AVX512BW-NEXT:    vmovdqa64 1216(%rdi), %zmm7
10466 ; AVX512BW-NEXT:    vmovaps 1152(%rdi), %zmm0
10467 ; AVX512BW-NEXT:    vmovups %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10468 ; AVX512BW-NEXT:    vmovdqa64 1088(%rdi), %zmm23
10469 ; AVX512BW-NEXT:    vmovdqa64 1024(%rdi), %zmm8
10470 ; AVX512BW-NEXT:    vmovdqa64 1344(%rdi), %zmm22
10471 ; AVX512BW-NEXT:    vmovdqa64 1280(%rdi), %zmm28
10472 ; AVX512BW-NEXT:    vmovdqa64 1472(%rdi), %zmm30
10473 ; AVX512BW-NEXT:    vmovdqa64 1408(%rdi), %zmm9
10474 ; AVX512BW-NEXT:    vmovdqa64 704(%rdi), %zmm18
10475 ; AVX512BW-NEXT:    vmovdqa64 640(%rdi), %zmm15
10476 ; AVX512BW-NEXT:    vmovdqa64 576(%rdi), %zmm11
10477 ; AVX512BW-NEXT:    vmovdqa64 512(%rdi), %zmm14
10478 ; AVX512BW-NEXT:    vmovdqa64 832(%rdi), %zmm17
10479 ; AVX512BW-NEXT:    vmovdqa64 768(%rdi), %zmm27
10480 ; AVX512BW-NEXT:    vmovdqa64 960(%rdi), %zmm19
10481 ; AVX512BW-NEXT:    vmovdqa64 896(%rdi), %zmm16
10482 ; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm10
10483 ; AVX512BW-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10484 ; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %zmm13
10485 ; AVX512BW-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10486 ; AVX512BW-NEXT:    vmovdqa64 128(%rdi), %zmm5
10487 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10488 ; AVX512BW-NEXT:    vmovdqa64 192(%rdi), %zmm6
10489 ; AVX512BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10490 ; AVX512BW-NEXT:    vmovdqa64 320(%rdi), %zmm4
10491 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10492 ; AVX512BW-NEXT:    vmovdqa64 256(%rdi), %zmm20
10493 ; AVX512BW-NEXT:    vmovdqa64 448(%rdi), %zmm2
10494 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10495 ; AVX512BW-NEXT:    vmovdqa64 384(%rdi), %zmm1
10496 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10497 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [0,8,16,24,0,8,16,24,0,8,16,24,0,8,16,24]
10498 ; AVX512BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10499 ; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm0, %zmm1
10500 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, %zmm2
10501 ; AVX512BW-NEXT:    vpermt2d %zmm4, %zmm0, %zmm2
10502 ; AVX512BW-NEXT:    movb $-64, %al
10503 ; AVX512BW-NEXT:    kmovd %eax, %k1
10504 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm2 {%k1}
10505 ; AVX512BW-NEXT:    vbroadcasti128 {{.*#+}} ymm1 = [0,8,16,24,0,8,16,24]
10506 ; AVX512BW-NEXT:    # ymm1 = mem[0,1,0,1]
10507 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm4
10508 ; AVX512BW-NEXT:    vpermt2d %zmm6, %zmm1, %zmm4
10509 ; AVX512BW-NEXT:    vpermt2d %zmm13, %zmm0, %zmm10
10510 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm4 = ymm10[0,1,2,3],ymm4[4,5,6,7]
10511 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm4, %zmm2, %zmm2
10512 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10513 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, %zmm2
10514 ; AVX512BW-NEXT:    vpermt2d %zmm19, %zmm0, %zmm2
10515 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm29
10516 ; AVX512BW-NEXT:    vmovdqu64 %zmm19, (%rsp) # 64-byte Spill
10517 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, %zmm4
10518 ; AVX512BW-NEXT:    vpermt2d %zmm17, %zmm0, %zmm4
10519 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm31
10520 ; AVX512BW-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10521 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm4 {%k1}
10522 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, %zmm2
10523 ; AVX512BW-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10524 ; AVX512BW-NEXT:    vpermt2d %zmm11, %zmm0, %zmm2
10525 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm6
10526 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm13
10527 ; AVX512BW-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10528 ; AVX512BW-NEXT:    vpermt2d %zmm18, %zmm1, %zmm6
10529 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, %zmm15
10530 ; AVX512BW-NEXT:    vmovdqu64 %zmm18, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10531 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm6[4,5,6,7]
10532 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm2, %zmm4, %zmm2
10533 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10534 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm17
10535 ; AVX512BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10536 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm2
10537 ; AVX512BW-NEXT:    vpermt2d %zmm30, %zmm0, %zmm2
10538 ; AVX512BW-NEXT:    vmovdqa64 %zmm28, %zmm4
10539 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm19
10540 ; AVX512BW-NEXT:    vpermt2d %zmm22, %zmm0, %zmm4
10541 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm4 {%k1}
10542 ; AVX512BW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10543 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm2
10544 ; AVX512BW-NEXT:    vpermt2d %zmm23, %zmm0, %zmm2
10545 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
10546 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm6
10547 ; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm1, %zmm6
10548 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm6[4,5,6,7]
10549 ; AVX512BW-NEXT:    vmovdqa64 1920(%rdi), %zmm3
10550 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm2, %zmm4, %zmm2
10551 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10552 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm2
10553 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm18
10554 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10555 ; AVX512BW-NEXT:    vpermt2d %zmm21, %zmm0, %zmm2
10556 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, %zmm22
10557 ; AVX512BW-NEXT:    vmovdqa64 1856(%rdi), %zmm10
10558 ; AVX512BW-NEXT:    vmovdqa64 1792(%rdi), %zmm4
10559 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10560 ; AVX512BW-NEXT:    vpermt2d %zmm10, %zmm0, %zmm4
10561 ; AVX512BW-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10562 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm4 {%k1}
10563 ; AVX512BW-NEXT:    vmovdqa64 1600(%rdi), %zmm2
10564 ; AVX512BW-NEXT:    vmovdqa64 1536(%rdi), %zmm3
10565 ; AVX512BW-NEXT:    vpermi2d %zmm2, %zmm3, %zmm0
10566 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm25
10567 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10568 ; AVX512BW-NEXT:    vmovdqa64 1728(%rdi), %zmm26
10569 ; AVX512BW-NEXT:    vmovdqa64 1664(%rdi), %zmm9
10570 ; AVX512BW-NEXT:    vpermi2d %zmm26, %zmm9, %zmm1
10571 ; AVX512BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10572 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
10573 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
10574 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10575 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [1,9,17,25,1,9,17,25,1,9,17,25,1,9,17,25]
10576 ; AVX512BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10577 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm1
10578 ; AVX512BW-NEXT:    vpermt2d %zmm30, %zmm0, %zmm1
10579 ; AVX512BW-NEXT:    vmovdqa64 %zmm28, %zmm2
10580 ; AVX512BW-NEXT:    vmovdqa64 %zmm28, %zmm24
10581 ; AVX512BW-NEXT:    vpermt2d %zmm19, %zmm0, %zmm2
10582 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm2 {%k1}
10583 ; AVX512BW-NEXT:    vpermt2d %zmm23, %zmm0, %zmm8
10584 ; AVX512BW-NEXT:    vbroadcasti128 {{.*#+}} ymm1 = [1,9,17,25,1,9,17,25]
10585 ; AVX512BW-NEXT:    # ymm1 = mem[0,1,0,1]
10586 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm6
10587 ; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm1, %zmm6
10588 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm17
10589 ; AVX512BW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10590 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm4 = ymm8[0,1,2,3],ymm6[4,5,6,7]
10591 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm4, %zmm2, %zmm2
10592 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10593 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, %zmm8
10594 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, %zmm2
10595 ; AVX512BW-NEXT:    vpermt2d %zmm29, %zmm0, %zmm2
10596 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, %zmm4
10597 ; AVX512BW-NEXT:    vpermt2d %zmm31, %zmm0, %zmm4
10598 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm4 {%k1}
10599 ; AVX512BW-NEXT:    vpermt2d %zmm11, %zmm0, %zmm14
10600 ; AVX512BW-NEXT:    vpermt2d %zmm15, %zmm1, %zmm13
10601 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm14[0,1,2,3],ymm13[4,5,6,7]
10602 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm2, %zmm4, %zmm2
10603 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10604 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
10605 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm2
10606 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
10607 ; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm0, %zmm2
10608 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, %zmm4
10609 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm29 # 64-byte Reload
10610 ; AVX512BW-NEXT:    vpermt2d %zmm29, %zmm0, %zmm4
10611 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm4 {%k1}
10612 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
10613 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm2
10614 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload
10615 ; AVX512BW-NEXT:    vpermt2d %zmm31, %zmm1, %zmm2
10616 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
10617 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm6
10618 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
10619 ; AVX512BW-NEXT:    vpermt2d %zmm16, %zmm0, %zmm6
10620 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm6[0,1,2,3],ymm2[4,5,6,7]
10621 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm2, %zmm4, %zmm2
10622 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10623 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, %zmm2
10624 ; AVX512BW-NEXT:    vpermt2d %zmm21, %zmm0, %zmm2
10625 ; AVX512BW-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10626 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm21 # 64-byte Reload
10627 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, %zmm4
10628 ; AVX512BW-NEXT:    vpermt2d %zmm10, %zmm0, %zmm4
10629 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm4 {%k1}
10630 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10631 ; AVX512BW-NEXT:    vpermi2d %zmm25, %zmm3, %zmm0
10632 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, %zmm10
10633 ; AVX512BW-NEXT:    vmovdqu64 %zmm26, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10634 ; AVX512BW-NEXT:    vpermi2d %zmm26, %zmm9, %zmm1
10635 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
10636 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
10637 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10638 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [2,10,18,26,2,10,18,26,2,10,18,26,2,10,18,26]
10639 ; AVX512BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10640 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
10641 ; AVX512BW-NEXT:    vmovdqa64 %zmm28, %zmm1
10642 ; AVX512BW-NEXT:    vpermt2d %zmm30, %zmm0, %zmm1
10643 ; AVX512BW-NEXT:    vmovdqa64 %zmm24, %zmm18
10644 ; AVX512BW-NEXT:    vmovdqu64 %zmm24, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10645 ; AVX512BW-NEXT:    vmovdqa64 %zmm24, %zmm2
10646 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm26
10647 ; AVX512BW-NEXT:    vpermt2d %zmm19, %zmm0, %zmm2
10648 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm2 {%k1}
10649 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
10650 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm4
10651 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, %zmm14
10652 ; AVX512BW-NEXT:    vmovdqu64 %zmm23, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10653 ; AVX512BW-NEXT:    vpermt2d %zmm23, %zmm0, %zmm4
10654 ; AVX512BW-NEXT:    vbroadcasti128 {{.*#+}} ymm1 = [2,10,18,26,2,10,18,26]
10655 ; AVX512BW-NEXT:    # ymm1 = mem[0,1,0,1]
10656 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
10657 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm6
10658 ; AVX512BW-NEXT:    vpermt2d %zmm17, %zmm1, %zmm6
10659 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm6[4,5,6,7]
10660 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm4, %zmm2, %zmm2
10661 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10662 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm2
10663 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm24
10664 ; AVX512BW-NEXT:    vmovdqu64 (%rsp), %zmm19 # 64-byte Reload
10665 ; AVX512BW-NEXT:    vpermt2d %zmm19, %zmm0, %zmm2
10666 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, %zmm4
10667 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
10668 ; AVX512BW-NEXT:    vpermt2d %zmm17, %zmm0, %zmm4
10669 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm4 {%k1}
10670 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10671 ; AVX512BW-NEXT:    vpermt2d %zmm11, %zmm0, %zmm2
10672 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm23
10673 ; AVX512BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10674 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
10675 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm25 # 64-byte Reload
10676 ; AVX512BW-NEXT:    vpermt2d %zmm25, %zmm1, %zmm6
10677 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm6[4,5,6,7]
10678 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm2, %zmm4, %zmm2
10679 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10680 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm2
10681 ; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm0, %zmm2
10682 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm11
10683 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, %zmm4
10684 ; AVX512BW-NEXT:    vmovdqa64 %zmm29, %zmm5
10685 ; AVX512BW-NEXT:    vpermt2d %zmm29, %zmm0, %zmm4
10686 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm4 {%k1}
10687 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm2
10688 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm8
10689 ; AVX512BW-NEXT:    vpermt2d %zmm31, %zmm1, %zmm2
10690 ; AVX512BW-NEXT:    vpermt2d %zmm16, %zmm0, %zmm7
10691 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm7[0,1,2,3],ymm2[4,5,6,7]
10692 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm2, %zmm4, %zmm2
10693 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10694 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
10695 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm2
10696 ; AVX512BW-NEXT:    vpermt2d %zmm22, %zmm0, %zmm2
10697 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, %zmm4
10698 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
10699 ; AVX512BW-NEXT:    vpermt2d %zmm12, %zmm0, %zmm4
10700 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm4 {%k1}
10701 ; AVX512BW-NEXT:    vpermi2d {{[-0-9]+}}(%r{{[sb]}}p), %zmm3, %zmm0 # 64-byte Folded Reload
10702 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10703 ; AVX512BW-NEXT:    vpermi2d %zmm10, %zmm3, %zmm1
10704 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
10705 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
10706 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10707 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [3,11,19,27,3,11,19,27,3,11,19,27,3,11,19,27]
10708 ; AVX512BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10709 ; AVX512BW-NEXT:    vmovdqa64 %zmm28, %zmm1
10710 ; AVX512BW-NEXT:    vpermt2d %zmm30, %zmm0, %zmm1
10711 ; AVX512BW-NEXT:    vpermt2d %zmm26, %zmm0, %zmm18
10712 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm18 {%k1}
10713 ; AVX512BW-NEXT:    vpermt2d %zmm14, %zmm0, %zmm15
10714 ; AVX512BW-NEXT:    vbroadcasti128 {{.*#+}} ymm1 = [3,11,19,27,3,11,19,27]
10715 ; AVX512BW-NEXT:    # ymm1 = mem[0,1,0,1]
10716 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm6
10717 ; AVX512BW-NEXT:    vpermt2d {{[-0-9]+}}(%r{{[sb]}}p), %zmm1, %zmm6 # 64-byte Folded Reload
10718 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm4 = ymm15[0,1,2,3],ymm6[4,5,6,7]
10719 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm4, %zmm18, %zmm2
10720 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10721 ; AVX512BW-NEXT:    vmovdqa64 %zmm24, %zmm2
10722 ; AVX512BW-NEXT:    vmovdqa64 %zmm24, %zmm29
10723 ; AVX512BW-NEXT:    vmovdqu64 %zmm24, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10724 ; AVX512BW-NEXT:    vpermt2d %zmm19, %zmm0, %zmm2
10725 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm24
10726 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, %zmm4
10727 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, %zmm16
10728 ; AVX512BW-NEXT:    vmovdqu64 %zmm27, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10729 ; AVX512BW-NEXT:    vpermt2d %zmm17, %zmm0, %zmm4
10730 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm28
10731 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm4 {%k1}
10732 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
10733 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm2
10734 ; AVX512BW-NEXT:    vpermt2d %zmm23, %zmm0, %zmm2
10735 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
10736 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, %zmm6
10737 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, %zmm15
10738 ; AVX512BW-NEXT:    vpermt2d %zmm25, %zmm1, %zmm6
10739 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm6[4,5,6,7]
10740 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm2, %zmm4, %zmm2
10741 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10742 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm23 # 64-byte Reload
10743 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, %zmm2
10744 ; AVX512BW-NEXT:    vpermt2d %zmm11, %zmm0, %zmm2
10745 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm27
10746 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, %zmm4
10747 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, %zmm22
10748 ; AVX512BW-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10749 ; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm0, %zmm4
10750 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm4 {%k1}
10751 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm2
10752 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm11
10753 ; AVX512BW-NEXT:    vpermt2d %zmm31, %zmm1, %zmm2
10754 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
10755 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm6
10756 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
10757 ; AVX512BW-NEXT:    vpermt2d %zmm20, %zmm0, %zmm6
10758 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm6[0,1,2,3],ymm2[4,5,6,7]
10759 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm2, %zmm4, %zmm2
10760 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10761 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm17
10762 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm2
10763 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm18 # 64-byte Reload
10764 ; AVX512BW-NEXT:    vpermt2d %zmm18, %zmm0, %zmm2
10765 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, %zmm4
10766 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm21
10767 ; AVX512BW-NEXT:    vpermt2d %zmm12, %zmm0, %zmm4
10768 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm4 {%k1}
10769 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
10770 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
10771 ; AVX512BW-NEXT:    vpermi2d %zmm12, %zmm7, %zmm0
10772 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
10773 ; AVX512BW-NEXT:    vpermi2d %zmm8, %zmm3, %zmm1
10774 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
10775 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
10776 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10777 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [4,12,20,28,4,12,20,28,4,12,20,28,4,12,20,28]
10778 ; AVX512BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10779 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
10780 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm1
10781 ; AVX512BW-NEXT:    vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10782 ; AVX512BW-NEXT:    vpermt2d %zmm30, %zmm0, %zmm1
10783 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm25 # 64-byte Reload
10784 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, %zmm2
10785 ; AVX512BW-NEXT:    vmovdqu64 %zmm26, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10786 ; AVX512BW-NEXT:    vpermt2d %zmm26, %zmm0, %zmm2
10787 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm2 {%k1}
10788 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10789 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm4
10790 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
10791 ; AVX512BW-NEXT:    vpermt2d %zmm19, %zmm0, %zmm4
10792 ; AVX512BW-NEXT:    vbroadcasti128 {{.*#+}} ymm1 = [4,12,20,28,4,12,20,28]
10793 ; AVX512BW-NEXT:    # ymm1 = mem[0,1,0,1]
10794 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm6
10795 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
10796 ; AVX512BW-NEXT:    vpermt2d %zmm9, %zmm1, %zmm6
10797 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm6[4,5,6,7]
10798 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm4, %zmm2, %zmm2
10799 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10800 ; AVX512BW-NEXT:    vpermt2d %zmm24, %zmm0, %zmm29
10801 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, %zmm4
10802 ; AVX512BW-NEXT:    vpermt2d %zmm28, %zmm0, %zmm4
10803 ; AVX512BW-NEXT:    vmovdqa64 %zmm29, %zmm4 {%k1}
10804 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm2
10805 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm24 # 64-byte Reload
10806 ; AVX512BW-NEXT:    vpermt2d %zmm24, %zmm0, %zmm2
10807 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, %zmm6
10808 ; AVX512BW-NEXT:    vpermt2d %zmm15, %zmm1, %zmm6
10809 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm16
10810 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm6[4,5,6,7]
10811 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm2, %zmm4, %zmm2
10812 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10813 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, %zmm2
10814 ; AVX512BW-NEXT:    vpermt2d %zmm27, %zmm0, %zmm2
10815 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, %zmm15
10816 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm4
10817 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm27 # 64-byte Reload
10818 ; AVX512BW-NEXT:    vpermt2d %zmm27, %zmm0, %zmm4
10819 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm4 {%k1}
10820 ; AVX512BW-NEXT:    vpermt2d %zmm31, %zmm1, %zmm11
10821 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm6
10822 ; AVX512BW-NEXT:    vpermt2d %zmm20, %zmm0, %zmm6
10823 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, %zmm22
10824 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm6[0,1,2,3],ymm11[4,5,6,7]
10825 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm2, %zmm4, %zmm2
10826 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10827 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm2
10828 ; AVX512BW-NEXT:    vpermt2d %zmm18, %zmm0, %zmm2
10829 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, %zmm6
10830 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm29 # 64-byte Reload
10831 ; AVX512BW-NEXT:    vmovdqa64 %zmm29, %zmm4
10832 ; AVX512BW-NEXT:    vpermt2d %zmm21, %zmm0, %zmm4
10833 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm4 {%k1}
10834 ; AVX512BW-NEXT:    vpermi2d %zmm12, %zmm7, %zmm0
10835 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10836 ; AVX512BW-NEXT:    vpermi2d %zmm8, %zmm2, %zmm1
10837 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
10838 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm4, %zmm0
10839 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10840 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm7 = [5,13,21,29,5,13,21,29,5,13,21,29,5,13,21,29]
10841 ; AVX512BW-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10842 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm0
10843 ; AVX512BW-NEXT:    vpermt2d %zmm30, %zmm7, %zmm0
10844 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, %zmm1
10845 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, %zmm12
10846 ; AVX512BW-NEXT:    vpermt2d %zmm26, %zmm7, %zmm1
10847 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
10848 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm0
10849 ; AVX512BW-NEXT:    vpermt2d %zmm19, %zmm7, %zmm0
10850 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm26
10851 ; AVX512BW-NEXT:    vbroadcasti128 {{.*#+}} ymm2 = [5,13,21,29,5,13,21,29]
10852 ; AVX512BW-NEXT:    # ymm2 = mem[0,1,0,1]
10853 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
10854 ; AVX512BW-NEXT:    vpermt2d %zmm9, %zmm2, %zmm4
10855 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm4[4,5,6,7]
10856 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm1, %zmm0
10857 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10858 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm0
10859 ; AVX512BW-NEXT:    vpermt2d %zmm24, %zmm7, %zmm0
10860 ; AVX512BW-NEXT:    vpermt2d %zmm16, %zmm2, %zmm14
10861 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm14[4,5,6,7]
10862 ; AVX512BW-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10863 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm21 # 64-byte Reload
10864 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, %zmm9
10865 ; AVX512BW-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
10866 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm7, %zmm9
10867 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [6,14,22,30,6,14,22,30,6,14,22,30,6,14,22,30]
10868 ; AVX512BW-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10869 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, %zmm30
10870 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm10, %zmm30
10871 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm2 = [7,15,23,31,7,15,23,31,7,15,23,31,7,15,23,31]
10872 ; AVX512BW-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10873 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm2, %zmm21
10874 ; AVX512BW-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10875 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
10876 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, %zmm25
10877 ; AVX512BW-NEXT:    vpermt2d %zmm28, %zmm7, %zmm25
10878 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, %zmm31
10879 ; AVX512BW-NEXT:    vpermt2d %zmm28, %zmm10, %zmm31
10880 ; AVX512BW-NEXT:    vpermt2d %zmm28, %zmm2, %zmm20
10881 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm4
10882 ; AVX512BW-NEXT:    vpermt2d %zmm24, %zmm10, %zmm4
10883 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, (%rsp) # 64-byte Spill
10884 ; AVX512BW-NEXT:    vpermt2d %zmm24, %zmm2, %zmm13
10885 ; AVX512BW-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10886 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, %zmm19
10887 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, %zmm18
10888 ; AVX512BW-NEXT:    vpermt2d %zmm15, %zmm7, %zmm18
10889 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, %zmm16
10890 ; AVX512BW-NEXT:    vpermt2d %zmm15, %zmm10, %zmm16
10891 ; AVX512BW-NEXT:    vpermt2d %zmm15, %zmm2, %zmm19
10892 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm23 # 64-byte Reload
10893 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, %zmm11
10894 ; AVX512BW-NEXT:    vpermt2d %zmm27, %zmm7, %zmm11
10895 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, %zmm17
10896 ; AVX512BW-NEXT:    vpermt2d %zmm27, %zmm10, %zmm17
10897 ; AVX512BW-NEXT:    vpermt2d %zmm27, %zmm2, %zmm23
10898 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
10899 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm14
10900 ; AVX512BW-NEXT:    vpermt2d %zmm22, %zmm7, %zmm14
10901 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm1
10902 ; AVX512BW-NEXT:    vpermt2d %zmm22, %zmm10, %zmm1
10903 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10904 ; AVX512BW-NEXT:    vpermt2d %zmm22, %zmm2, %zmm13
10905 ; AVX512BW-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10906 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
10907 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm21
10908 ; AVX512BW-NEXT:    vpermt2d %zmm6, %zmm7, %zmm21
10909 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm28
10910 ; AVX512BW-NEXT:    vpermt2d %zmm6, %zmm10, %zmm28
10911 ; AVX512BW-NEXT:    vpermt2d %zmm6, %zmm2, %zmm1
10912 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10913 ; AVX512BW-NEXT:    vmovdqa64 %zmm29, %zmm1
10914 ; AVX512BW-NEXT:    vmovdqa64 %zmm29, %zmm22
10915 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10916 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm7, %zmm22
10917 ; AVX512BW-NEXT:    vmovdqa64 %zmm29, %zmm24
10918 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm10, %zmm24
10919 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm2, %zmm1
10920 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm29
10921 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10922 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
10923 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm7
10924 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm27
10925 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm15
10926 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10927 ; AVX512BW-NEXT:    vpermt2d %zmm3, %zmm10, %zmm15
10928 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm13
10929 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm5
10930 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
10931 ; AVX512BW-NEXT:    vpermt2d %zmm4, %zmm10, %zmm5
10932 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
10933 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm8
10934 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, %zmm6
10935 ; AVX512BW-NEXT:    vpermt2d %zmm26, %zmm10, %zmm8
10936 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm10
10937 ; AVX512BW-NEXT:    vpermt2d %zmm1, %zmm2, %zmm0
10938 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10939 ; AVX512BW-NEXT:    vpermt2d %zmm3, %zmm2, %zmm27
10940 ; AVX512BW-NEXT:    vpermt2d %zmm4, %zmm2, %zmm13
10941 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm26
10942 ; AVX512BW-NEXT:    vpermt2d %zmm6, %zmm2, %zmm12
10943 ; AVX512BW-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10944 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm25 {%k1}
10945 ; AVX512BW-NEXT:    vinserti64x4 $0, {{[-0-9]+}}(%r{{[sb]}}p), %zmm25, %zmm25 # 32-byte Folded Reload
10946 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, %zmm11 {%k1}
10947 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
10948 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm6
10949 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
10950 ; AVX512BW-NEXT:    vbroadcasti128 {{.*#+}} ymm0 = [5,13,21,29,5,13,21,29]
10951 ; AVX512BW-NEXT:    # ymm0 = mem[0,1,0,1]
10952 ; AVX512BW-NEXT:    vpermt2d %zmm4, %zmm0, %zmm6
10953 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm3 = ymm14[0,1,2,3],ymm6[4,5,6,7]
10954 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm3, %zmm11, %zmm18
10955 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, %zmm22 {%k1}
10956 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
10957 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
10958 ; AVX512BW-NEXT:    vpermi2d %zmm14, %zmm1, %zmm0
10959 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm2 = ymm7[0,1,2,3],ymm0[4,5,6,7]
10960 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm2, %zmm22, %zmm21
10961 ; AVX512BW-NEXT:    vbroadcasti128 {{.*#+}} ymm3 = [6,14,22,30,6,14,22,30]
10962 ; AVX512BW-NEXT:    # ymm3 = mem[0,1,0,1]
10963 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
10964 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm7
10965 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10966 ; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm3, %zmm7
10967 ; AVX512BW-NEXT:    vbroadcasti128 {{.*#+}} ymm11 = [7,15,23,31,7,15,23,31]
10968 ; AVX512BW-NEXT:    # ymm11 = mem[0,1,0,1]
10969 ; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm11, %zmm12
10970 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm0
10971 ; AVX512BW-NEXT:    vpermt2d %zmm4, %zmm3, %zmm0
10972 ; AVX512BW-NEXT:    vpermt2d %zmm4, %zmm11, %zmm9
10973 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
10974 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm2
10975 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
10976 ; AVX512BW-NEXT:    vpermt2d %zmm22, %zmm3, %zmm2
10977 ; AVX512BW-NEXT:    vpermi2d %zmm14, %zmm1, %zmm3
10978 ; AVX512BW-NEXT:    vpermt2d %zmm14, %zmm11, %zmm1
10979 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm14
10980 ; AVX512BW-NEXT:    vpermt2d %zmm22, %zmm11, %zmm6
10981 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm11
10982 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm6 = ymm8[0,1,2,3],ymm2[4,5,6,7]
10983 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm5 {%k1}
10984 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm6, %zmm5, %zmm6
10985 ; AVX512BW-NEXT:    vpblendd $15, (%rsp), %ymm7, %ymm7 # 32-byte Folded Reload
10986 ; AVX512BW-NEXT:    # ymm7 = mem[0,1,2,3],ymm7[4,5,6,7]
10987 ; AVX512BW-NEXT:    vmovdqa64 %zmm30, %zmm31 {%k1}
10988 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm7, %zmm31, %zmm13
10989 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, %zmm17 {%k1}
10990 ; AVX512BW-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
10991 ; AVX512BW-NEXT:    # ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
10992 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm17, %zmm0
10993 ; AVX512BW-NEXT:    vmovdqa64 %zmm28, %zmm24 {%k1}
10994 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm10[0,1,2,3],ymm3[4,5,6,7]
10995 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm24, %zmm1
10996 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10997 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm20 {%k1}
10998 ; AVX512BW-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm3 # 32-byte Folded Reload
10999 ; AVX512BW-NEXT:    # ymm3 = mem[0,1,2,3],ymm12[4,5,6,7]
11000 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm3, %zmm20, %zmm3
11001 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm23 {%k1}
11002 ; AVX512BW-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm4 # 32-byte Folded Reload
11003 ; AVX512BW-NEXT:    # ymm4 = mem[0,1,2,3],ymm9[4,5,6,7]
11004 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm4, %zmm23, %zmm4
11005 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11006 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm29 {%k1}
11007 ; AVX512BW-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm7 # 32-byte Folded Reload
11008 ; AVX512BW-NEXT:    # ymm7 = mem[0,1,2,3],ymm14[4,5,6,7]
11009 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm7, %zmm29, %zmm7
11010 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, %zmm26 {%k1}
11011 ; AVX512BW-NEXT:    vpblendd $15, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm8 # 32-byte Folded Reload
11012 ; AVX512BW-NEXT:    # ymm8 = mem[0,1,2,3],ymm11[4,5,6,7]
11013 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm26, %zmm8
11014 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11015 ; AVX512BW-NEXT:    vmovaps %zmm2, 192(%rsi)
11016 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11017 ; AVX512BW-NEXT:    vmovaps %zmm2, 128(%rsi)
11018 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11019 ; AVX512BW-NEXT:    vmovaps %zmm2, 64(%rsi)
11020 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11021 ; AVX512BW-NEXT:    vmovaps %zmm2, (%rsi)
11022 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11023 ; AVX512BW-NEXT:    vmovaps %zmm2, 192(%rdx)
11024 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11025 ; AVX512BW-NEXT:    vmovaps %zmm2, (%rdx)
11026 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11027 ; AVX512BW-NEXT:    vmovaps %zmm2, 64(%rdx)
11028 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11029 ; AVX512BW-NEXT:    vmovaps %zmm2, 128(%rdx)
11030 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11031 ; AVX512BW-NEXT:    vmovaps %zmm2, 192(%rcx)
11032 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11033 ; AVX512BW-NEXT:    vmovaps %zmm2, (%rcx)
11034 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11035 ; AVX512BW-NEXT:    vmovaps %zmm2, 64(%rcx)
11036 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11037 ; AVX512BW-NEXT:    vmovaps %zmm2, 128(%rcx)
11038 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11039 ; AVX512BW-NEXT:    vmovaps %zmm2, 192(%r8)
11040 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11041 ; AVX512BW-NEXT:    vmovaps %zmm2, (%r8)
11042 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11043 ; AVX512BW-NEXT:    vmovaps %zmm2, 64(%r8)
11044 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11045 ; AVX512BW-NEXT:    vmovaps %zmm2, 128(%r8)
11046 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11047 ; AVX512BW-NEXT:    vmovaps %zmm2, 192(%r9)
11048 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11049 ; AVX512BW-NEXT:    vmovaps %zmm2, (%r9)
11050 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11051 ; AVX512BW-NEXT:    vmovaps %zmm2, 64(%r9)
11052 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11053 ; AVX512BW-NEXT:    vmovaps %zmm2, 128(%r9)
11054 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
11055 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, 192(%rax)
11056 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, (%rax)
11057 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, 64(%rax)
11058 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11059 ; AVX512BW-NEXT:    vmovaps %zmm2, 128(%rax)
11060 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
11061 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, 192(%rax)
11062 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, (%rax)
11063 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, 64(%rax)
11064 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, 128(%rax)
11065 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
11066 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, 128(%rax)
11067 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, 192(%rax)
11068 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, (%rax)
11069 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, 64(%rax)
11070 ; AVX512BW-NEXT:    addq $3304, %rsp # imm = 0xCE8
11071 ; AVX512BW-NEXT:    vzeroupper
11072 ; AVX512BW-NEXT:    retq
11073   %wide.vec = load <512 x i32>, ptr %in.vec, align 64
11074   %strided.vec0 = shufflevector <512 x i32> %wide.vec, <512 x i32> poison, <64 x i32> <i32 0, i32 8, i32 16, i32 24, i32 32, i32 40, i32 48, i32 56, i32 64, i32 72, i32 80, i32 88, i32 96, i32 104, i32 112, i32 120, i32 128, i32 136, i32 144, i32 152, i32 160, i32 168, i32 176, i32 184, i32 192, i32 200, i32 208, i32 216, i32 224, i32 232, i32 240, i32 248, i32 256, i32 264, i32 272, i32 280, i32 288, i32 296, i32 304, i32 312, i32 320, i32 328, i32 336, i32 344, i32 352, i32 360, i32 368, i32 376, i32 384, i32 392, i32 400, i32 408, i32 416, i32 424, i32 432, i32 440, i32 448, i32 456, i32 464, i32 472, i32 480, i32 488, i32 496, i32 504>
11075   %strided.vec1 = shufflevector <512 x i32> %wide.vec, <512 x i32> poison, <64 x i32> <i32 1, i32 9, i32 17, i32 25, i32 33, i32 41, i32 49, i32 57, i32 65, i32 73, i32 81, i32 89, i32 97, i32 105, i32 113, i32 121, i32 129, i32 137, i32 145, i32 153, i32 161, i32 169, i32 177, i32 185, i32 193, i32 201, i32 209, i32 217, i32 225, i32 233, i32 241, i32 249, i32 257, i32 265, i32 273, i32 281, i32 289, i32 297, i32 305, i32 313, i32 321, i32 329, i32 337, i32 345, i32 353, i32 361, i32 369, i32 377, i32 385, i32 393, i32 401, i32 409, i32 417, i32 425, i32 433, i32 441, i32 449, i32 457, i32 465, i32 473, i32 481, i32 489, i32 497, i32 505>
11076   %strided.vec2 = shufflevector <512 x i32> %wide.vec, <512 x i32> poison, <64 x i32> <i32 2, i32 10, i32 18, i32 26, i32 34, i32 42, i32 50, i32 58, i32 66, i32 74, i32 82, i32 90, i32 98, i32 106, i32 114, i32 122, i32 130, i32 138, i32 146, i32 154, i32 162, i32 170, i32 178, i32 186, i32 194, i32 202, i32 210, i32 218, i32 226, i32 234, i32 242, i32 250, i32 258, i32 266, i32 274, i32 282, i32 290, i32 298, i32 306, i32 314, i32 322, i32 330, i32 338, i32 346, i32 354, i32 362, i32 370, i32 378, i32 386, i32 394, i32 402, i32 410, i32 418, i32 426, i32 434, i32 442, i32 450, i32 458, i32 466, i32 474, i32 482, i32 490, i32 498, i32 506>
11077   %strided.vec3 = shufflevector <512 x i32> %wide.vec, <512 x i32> poison, <64 x i32> <i32 3, i32 11, i32 19, i32 27, i32 35, i32 43, i32 51, i32 59, i32 67, i32 75, i32 83, i32 91, i32 99, i32 107, i32 115, i32 123, i32 131, i32 139, i32 147, i32 155, i32 163, i32 171, i32 179, i32 187, i32 195, i32 203, i32 211, i32 219, i32 227, i32 235, i32 243, i32 251, i32 259, i32 267, i32 275, i32 283, i32 291, i32 299, i32 307, i32 315, i32 323, i32 331, i32 339, i32 347, i32 355, i32 363, i32 371, i32 379, i32 387, i32 395, i32 403, i32 411, i32 419, i32 427, i32 435, i32 443, i32 451, i32 459, i32 467, i32 475, i32 483, i32 491, i32 499, i32 507>
11078   %strided.vec4 = shufflevector <512 x i32> %wide.vec, <512 x i32> poison, <64 x i32> <i32 4, i32 12, i32 20, i32 28, i32 36, i32 44, i32 52, i32 60, i32 68, i32 76, i32 84, i32 92, i32 100, i32 108, i32 116, i32 124, i32 132, i32 140, i32 148, i32 156, i32 164, i32 172, i32 180, i32 188, i32 196, i32 204, i32 212, i32 220, i32 228, i32 236, i32 244, i32 252, i32 260, i32 268, i32 276, i32 284, i32 292, i32 300, i32 308, i32 316, i32 324, i32 332, i32 340, i32 348, i32 356, i32 364, i32 372, i32 380, i32 388, i32 396, i32 404, i32 412, i32 420, i32 428, i32 436, i32 444, i32 452, i32 460, i32 468, i32 476, i32 484, i32 492, i32 500, i32 508>
11079   %strided.vec5 = shufflevector <512 x i32> %wide.vec, <512 x i32> poison, <64 x i32> <i32 5, i32 13, i32 21, i32 29, i32 37, i32 45, i32 53, i32 61, i32 69, i32 77, i32 85, i32 93, i32 101, i32 109, i32 117, i32 125, i32 133, i32 141, i32 149, i32 157, i32 165, i32 173, i32 181, i32 189, i32 197, i32 205, i32 213, i32 221, i32 229, i32 237, i32 245, i32 253, i32 261, i32 269, i32 277, i32 285, i32 293, i32 301, i32 309, i32 317, i32 325, i32 333, i32 341, i32 349, i32 357, i32 365, i32 373, i32 381, i32 389, i32 397, i32 405, i32 413, i32 421, i32 429, i32 437, i32 445, i32 453, i32 461, i32 469, i32 477, i32 485, i32 493, i32 501, i32 509>
11080   %strided.vec6 = shufflevector <512 x i32> %wide.vec, <512 x i32> poison, <64 x i32> <i32 6, i32 14, i32 22, i32 30, i32 38, i32 46, i32 54, i32 62, i32 70, i32 78, i32 86, i32 94, i32 102, i32 110, i32 118, i32 126, i32 134, i32 142, i32 150, i32 158, i32 166, i32 174, i32 182, i32 190, i32 198, i32 206, i32 214, i32 222, i32 230, i32 238, i32 246, i32 254, i32 262, i32 270, i32 278, i32 286, i32 294, i32 302, i32 310, i32 318, i32 326, i32 334, i32 342, i32 350, i32 358, i32 366, i32 374, i32 382, i32 390, i32 398, i32 406, i32 414, i32 422, i32 430, i32 438, i32 446, i32 454, i32 462, i32 470, i32 478, i32 486, i32 494, i32 502, i32 510>
11081   %strided.vec7 = shufflevector <512 x i32> %wide.vec, <512 x i32> poison, <64 x i32> <i32 7, i32 15, i32 23, i32 31, i32 39, i32 47, i32 55, i32 63, i32 71, i32 79, i32 87, i32 95, i32 103, i32 111, i32 119, i32 127, i32 135, i32 143, i32 151, i32 159, i32 167, i32 175, i32 183, i32 191, i32 199, i32 207, i32 215, i32 223, i32 231, i32 239, i32 247, i32 255, i32 263, i32 271, i32 279, i32 287, i32 295, i32 303, i32 311, i32 319, i32 327, i32 335, i32 343, i32 351, i32 359, i32 367, i32 375, i32 383, i32 391, i32 399, i32 407, i32 415, i32 423, i32 431, i32 439, i32 447, i32 455, i32 463, i32 471, i32 479, i32 487, i32 495, i32 503, i32 511>
11082   store <64 x i32> %strided.vec0, ptr %out.vec0, align 64
11083   store <64 x i32> %strided.vec1, ptr %out.vec1, align 64
11084   store <64 x i32> %strided.vec2, ptr %out.vec2, align 64
11085   store <64 x i32> %strided.vec3, ptr %out.vec3, align 64
11086   store <64 x i32> %strided.vec4, ptr %out.vec4, align 64
11087   store <64 x i32> %strided.vec5, ptr %out.vec5, align 64
11088   store <64 x i32> %strided.vec6, ptr %out.vec6, align 64
11089   store <64 x i32> %strided.vec7, ptr %out.vec7, align 64
11090   ret void
11092 ;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
11093 ; AVX: {{.*}}
11094 ; AVX1: {{.*}}
11095 ; AVX2: {{.*}}
11096 ; AVX2-FAST: {{.*}}
11097 ; AVX2-FAST-PERLANE: {{.*}}
11098 ; AVX2-SLOW: {{.*}}
11099 ; AVX512BW-SLOW: {{.*}}
11100 ; AVX512F-FAST: {{.*}}
11101 ; AVX512F-SLOW: {{.*}}
11102 ; FALLBACK0: {{.*}}
11103 ; FALLBACK1: {{.*}}
11104 ; FALLBACK10: {{.*}}
11105 ; FALLBACK11: {{.*}}
11106 ; FALLBACK12: {{.*}}
11107 ; FALLBACK2: {{.*}}
11108 ; FALLBACK3: {{.*}}
11109 ; FALLBACK4: {{.*}}
11110 ; FALLBACK5: {{.*}}
11111 ; FALLBACK6: {{.*}}
11112 ; FALLBACK7: {{.*}}
11113 ; FALLBACK8: {{.*}}
11114 ; FALLBACK9: {{.*}}