Lines Matching refs:NEXT

12 ; SSE2-NEXT:    movd %xmm0, %rax
13 ; SSE2-NEXT: bsfq %rax, %rax
14 ; SSE2-NEXT: movl $64, %ecx
15 ; SSE2-NEXT: cmoveq %rcx, %rax
16 ; SSE2-NEXT: movd %rax, %xmm1
17 ; SSE2-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,3,0,1]
18 ; SSE2-NEXT: movd %xmm0, %rax
19 ; SSE2-NEXT: bsfq %rax, %rax
20 ; SSE2-NEXT: cmoveq %rcx, %rax
21 ; SSE2-NEXT: movd %rax, %xmm0
22 ; SSE2-NEXT: punpcklqdq {{.*#+}} xmm1 = xmm1[0],xmm0[0]
23 ; SSE2-NEXT: movdqa %xmm1, %xmm0
24 ; SSE2-NEXT: retq
28 ; SSE3-NEXT: movd %xmm0, %rax
29 ; SSE3-NEXT: bsfq %rax, %rax
30 ; SSE3-NEXT: movl $64, %ecx
31 ; SSE3-NEXT: cmoveq %rcx, %rax
32 ; SSE3-NEXT: movd %rax, %xmm1
33 ; SSE3-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,3,0,1]
34 ; SSE3-NEXT: movd %xmm0, %rax
35 ; SSE3-NEXT: bsfq %rax, %rax
36 ; SSE3-NEXT: cmoveq %rcx, %rax
37 ; SSE3-NEXT: movd %rax, %xmm0
38 ; SSE3-NEXT: punpcklqdq {{.*#+}} xmm1 = xmm1[0],xmm0[0]
39 ; SSE3-NEXT: movdqa %xmm1, %xmm0
40 ; SSE3-NEXT: retq
44 ; SSSE3-NEXT: movd %xmm0, %rax
45 ; SSSE3-NEXT: bsfq %rax, %rax
46 ; SSSE3-NEXT: movl $64, %ecx
47 ; SSSE3-NEXT: cmoveq %rcx, %rax
48 ; SSSE3-NEXT: movd %rax, %xmm1
49 ; SSSE3-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,3,0,1]
50 ; SSSE3-NEXT: movd %xmm0, %rax
51 ; SSSE3-NEXT: bsfq %rax, %rax
52 ; SSSE3-NEXT: cmoveq %rcx, %rax
53 ; SSSE3-NEXT: movd %rax, %xmm0
54 ; SSSE3-NEXT: punpcklqdq {{.*#+}} xmm1 = xmm1[0],xmm0[0]
55 ; SSSE3-NEXT: movdqa %xmm1, %xmm0
56 ; SSSE3-NEXT: retq
60 ; SSE41-NEXT: pextrq $1, %xmm0, %rax
61 ; SSE41-NEXT: bsfq %rax, %rax
62 ; SSE41-NEXT: movl $64, %ecx
63 ; SSE41-NEXT: cmoveq %rcx, %rax
64 ; SSE41-NEXT: movd %rax, %xmm1
65 ; SSE41-NEXT: movd %xmm0, %rax
66 ; SSE41-NEXT: bsfq %rax, %rax
67 ; SSE41-NEXT: cmoveq %rcx, %rax
68 ; SSE41-NEXT: movd %rax, %xmm0
69 ; SSE41-NEXT: punpcklqdq {{.*#+}} xmm0 = xmm0[0],xmm1[0]
70 ; SSE41-NEXT: retq
74 ; AVX-NEXT: vpextrq $1, %xmm0, %rax
75 ; AVX-NEXT: bsfq %rax, %rax
76 ; AVX-NEXT: movl $64, %ecx
77 ; AVX-NEXT: cmoveq %rcx, %rax
78 ; AVX-NEXT: vmovq %rax, %xmm1
79 ; AVX-NEXT: vmovq %xmm0, %rax
80 ; AVX-NEXT: bsfq %rax, %rax
81 ; AVX-NEXT: cmoveq %rcx, %rax
82 ; AVX-NEXT: vmovq %rax, %xmm0
83 ; AVX-NEXT: vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],xmm1[0]
84 ; AVX-NEXT: retq
92 ; SSE2-NEXT: movd %xmm0, %rax
93 ; SSE2-NEXT: bsfq %rax, %rax
94 ; SSE2-NEXT: movd %rax, %xmm1
95 ; SSE2-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,3,0,1]
96 ; SSE2-NEXT: movd %xmm0, %rax
97 ; SSE2-NEXT: bsfq %rax, %rax
98 ; SSE2-NEXT: movd %rax, %xmm0
99 ; SSE2-NEXT: punpcklqdq {{.*#+}} xmm1 = xmm1[0],xmm0[0]
100 ; SSE2-NEXT: movdqa %xmm1, %xmm0
101 ; SSE2-NEXT: retq
105 ; SSE3-NEXT: movd %xmm0, %rax
106 ; SSE3-NEXT: bsfq %rax, %rax
107 ; SSE3-NEXT: movd %rax, %xmm1
108 ; SSE3-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,3,0,1]
109 ; SSE3-NEXT: movd %xmm0, %rax
110 ; SSE3-NEXT: bsfq %rax, %rax
111 ; SSE3-NEXT: movd %rax, %xmm0
112 ; SSE3-NEXT: punpcklqdq {{.*#+}} xmm1 = xmm1[0],xmm0[0]
113 ; SSE3-NEXT: movdqa %xmm1, %xmm0
114 ; SSE3-NEXT: retq
118 ; SSSE3-NEXT: movd %xmm0, %rax
119 ; SSSE3-NEXT: bsfq %rax, %rax
120 ; SSSE3-NEXT: movd %rax, %xmm1
121 ; SSSE3-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,3,0,1]
122 ; SSSE3-NEXT: movd %xmm0, %rax
123 ; SSSE3-NEXT: bsfq %rax, %rax
124 ; SSSE3-NEXT: movd %rax, %xmm0
125 ; SSSE3-NEXT: punpcklqdq {{.*#+}} xmm1 = xmm1[0],xmm0[0]
126 ; SSSE3-NEXT: movdqa %xmm1, %xmm0
127 ; SSSE3-NEXT: retq
131 ; SSE41-NEXT: pextrq $1, %xmm0, %rax
132 ; SSE41-NEXT: bsfq %rax, %rax
133 ; SSE41-NEXT: movd %rax, %xmm1
134 ; SSE41-NEXT: movd %xmm0, %rax
135 ; SSE41-NEXT: bsfq %rax, %rax
136 ; SSE41-NEXT: movd %rax, %xmm0
137 ; SSE41-NEXT: punpcklqdq {{.*#+}} xmm0 = xmm0[0],xmm1[0]
138 ; SSE41-NEXT: retq
142 ; AVX-NEXT: vpextrq $1, %xmm0, %rax
143 ; AVX-NEXT: bsfq %rax, %rax
144 ; AVX-NEXT: vmovq %rax, %xmm1
145 ; AVX-NEXT: vmovq %xmm0, %rax
146 ; AVX-NEXT: bsfq %rax, %rax
147 ; AVX-NEXT: vmovq %rax, %xmm0
148 ; AVX-NEXT: vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],xmm1[0]
149 ; AVX-NEXT: retq
157 ; SSE2-NEXT: pxor %xmm1, %xmm1
158 ; SSE2-NEXT: pxor %xmm2, %xmm2
159 ; SSE2-NEXT: psubd %xmm0, %xmm2
160 ; SSE2-NEXT: pand %xmm0, %xmm2
161 ; SSE2-NEXT: psubd {{.*}}(%rip), %xmm2
162 ; SSE2-NEXT: movdqa %xmm2, %xmm0
163 ; SSE2-NEXT: psrld $1, %xmm0
164 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm0
165 ; SSE2-NEXT: psubd %xmm0, %xmm2
166 ; SSE2-NEXT: movdqa {{.*#+}} xmm0 = [858993459,858993459,858993459,858993459]
167 ; SSE2-NEXT: movdqa %xmm2, %xmm3
168 ; SSE2-NEXT: pand %xmm0, %xmm3
169 ; SSE2-NEXT: psrld $2, %xmm2
170 ; SSE2-NEXT: pand %xmm0, %xmm2
171 ; SSE2-NEXT: paddd %xmm3, %xmm2
172 ; SSE2-NEXT: movdqa %xmm2, %xmm0
173 ; SSE2-NEXT: psrld $4, %xmm0
174 ; SSE2-NEXT: paddd %xmm2, %xmm0
175 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm0
176 ; SSE2-NEXT: movdqa %xmm0, %xmm2
177 ; SSE2-NEXT: punpckhdq {{.*#+}} xmm2 = xmm2[2],xmm1[2],xmm2[3],xmm1[3]
178 ; SSE2-NEXT: psadbw %xmm1, %xmm2
179 ; SSE2-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
180 ; SSE2-NEXT: psadbw %xmm1, %xmm0
181 ; SSE2-NEXT: packuswb %xmm2, %xmm0
182 ; SSE2-NEXT: retq
186 ; SSE3-NEXT: pxor %xmm1, %xmm1
187 ; SSE3-NEXT: pxor %xmm2, %xmm2
188 ; SSE3-NEXT: psubd %xmm0, %xmm2
189 ; SSE3-NEXT: pand %xmm0, %xmm2
190 ; SSE3-NEXT: psubd {{.*}}(%rip), %xmm2
191 ; SSE3-NEXT: movdqa %xmm2, %xmm0
192 ; SSE3-NEXT: psrld $1, %xmm0
193 ; SSE3-NEXT: pand {{.*}}(%rip), %xmm0
194 ; SSE3-NEXT: psubd %xmm0, %xmm2
195 ; SSE3-NEXT: movdqa {{.*#+}} xmm0 = [858993459,858993459,858993459,858993459]
196 ; SSE3-NEXT: movdqa %xmm2, %xmm3
197 ; SSE3-NEXT: pand %xmm0, %xmm3
198 ; SSE3-NEXT: psrld $2, %xmm2
199 ; SSE3-NEXT: pand %xmm0, %xmm2
200 ; SSE3-NEXT: paddd %xmm3, %xmm2
201 ; SSE3-NEXT: movdqa %xmm2, %xmm0
202 ; SSE3-NEXT: psrld $4, %xmm0
203 ; SSE3-NEXT: paddd %xmm2, %xmm0
204 ; SSE3-NEXT: pand {{.*}}(%rip), %xmm0
205 ; SSE3-NEXT: movdqa %xmm0, %xmm2
206 ; SSE3-NEXT: punpckhdq {{.*#+}} xmm2 = xmm2[2],xmm1[2],xmm2[3],xmm1[3]
207 ; SSE3-NEXT: psadbw %xmm1, %xmm2
208 ; SSE3-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
209 ; SSE3-NEXT: psadbw %xmm1, %xmm0
210 ; SSE3-NEXT: packuswb %xmm2, %xmm0
211 ; SSE3-NEXT: retq
215 ; SSSE3-NEXT: pxor %xmm1, %xmm1
216 ; SSSE3-NEXT: pxor %xmm2, %xmm2
217 ; SSSE3-NEXT: psubd %xmm0, %xmm2
218 ; SSSE3-NEXT: pand %xmm0, %xmm2
219 ; SSSE3-NEXT: psubd {{.*}}(%rip), %xmm2
220 ; SSSE3-NEXT: movdqa {{.*#+}} xmm3 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
221 ; SSSE3-NEXT: movdqa %xmm2, %xmm4
222 ; SSSE3-NEXT: pand %xmm3, %xmm4
223 ; SSSE3-NEXT: movdqa {{.*#+}} xmm0 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4]
224 ; SSSE3-NEXT: movdqa %xmm0, %xmm5
225 ; SSSE3-NEXT: pshufb %xmm4, %xmm5
226 ; SSSE3-NEXT: psrlw $4, %xmm2
227 ; SSSE3-NEXT: pand %xmm3, %xmm2
228 ; SSSE3-NEXT: pshufb %xmm2, %xmm0
229 ; SSSE3-NEXT: paddb %xmm5, %xmm0
230 ; SSSE3-NEXT: movdqa %xmm0, %xmm2
231 ; SSSE3-NEXT: punpckhdq {{.*#+}} xmm2 = xmm2[2],xmm1[2],xmm2[3],xmm1[3]
232 ; SSSE3-NEXT: psadbw %xmm1, %xmm2
233 ; SSSE3-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
234 ; SSSE3-NEXT: psadbw %xmm1, %xmm0
235 ; SSSE3-NEXT: packuswb %xmm2, %xmm0
236 ; SSSE3-NEXT: retq
240 ; SSE41-NEXT: pxor %xmm1, %xmm1
241 ; SSE41-NEXT: pxor %xmm2, %xmm2
242 ; SSE41-NEXT: psubd %xmm0, %xmm2
243 ; SSE41-NEXT: pand %xmm0, %xmm2
244 ; SSE41-NEXT: psubd {{.*}}(%rip), %xmm2
245 ; SSE41-NEXT: movdqa {{.*#+}} xmm3 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
246 ; SSE41-NEXT: movdqa %xmm2, %xmm4
247 ; SSE41-NEXT: pand %xmm3, %xmm4
248 ; SSE41-NEXT: movdqa {{.*#+}} xmm0 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4]
249 ; SSE41-NEXT: movdqa %xmm0, %xmm5
250 ; SSE41-NEXT: pshufb %xmm4, %xmm5
251 ; SSE41-NEXT: psrlw $4, %xmm2
252 ; SSE41-NEXT: pand %xmm3, %xmm2
253 ; SSE41-NEXT: pshufb %xmm2, %xmm0
254 ; SSE41-NEXT: paddb %xmm5, %xmm0
255 ; SSE41-NEXT: movdqa %xmm0, %xmm2
256 ; SSE41-NEXT: punpckhdq {{.*#+}} xmm2 = xmm2[2],xmm1[2],xmm2[3],xmm1[3]
257 ; SSE41-NEXT: psadbw %xmm1, %xmm2
258 ; SSE41-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
259 ; SSE41-NEXT: psadbw %xmm1, %xmm0
260 ; SSE41-NEXT: packuswb %xmm2, %xmm0
261 ; SSE41-NEXT: retq
265 ; AVX1-NEXT: vpxor %xmm1, %xmm1, %xmm1
266 ; AVX1-NEXT: vpsubd %xmm0, %xmm1, %xmm2
267 ; AVX1-NEXT: vpand %xmm2, %xmm0, %xmm0
268 ; AVX1-NEXT: vpsubd {{.*}}(%rip), %xmm0, %xmm0
269 ; AVX1-NEXT: vmovdqa {{.*#+}} xmm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
270 ; AVX1-NEXT: vpand %xmm2, %xmm0, %xmm3
271 ; AVX1-NEXT: vmovdqa {{.*#+}} xmm4 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4]
272 ; AVX1-NEXT: vpshufb %xmm3, %xmm4, %xmm3
273 ; AVX1-NEXT: vpsrlw $4, %xmm0, %xmm0
274 ; AVX1-NEXT: vpand %xmm2, %xmm0, %xmm0
275 ; AVX1-NEXT: vpshufb %xmm0, %xmm4, %xmm0
276 ; AVX1-NEXT: vpaddb %xmm3, %xmm0, %xmm0
277 ; AVX1-NEXT: vpunpckhdq {{.*#+}} xmm2 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]
278 ; AVX1-NEXT: vpsadbw %xmm1, %xmm2, %xmm2
279 ; AVX1-NEXT: vpunpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
280 ; AVX1-NEXT: vpsadbw %xmm1, %xmm0, %xmm0
281 ; AVX1-NEXT: vpackuswb %xmm2, %xmm0, %xmm0
282 ; AVX1-NEXT: retq
286 ; AVX2-NEXT: vpxor %xmm1, %xmm1, %xmm1
287 ; AVX2-NEXT: vpsubd %xmm0, %xmm1, %xmm2
288 ; AVX2-NEXT: vpand %xmm2, %xmm0, %xmm0
289 ; AVX2-NEXT: vpbroadcastd {{.*}}(%rip), %xmm2
290 ; AVX2-NEXT: vpsubd %xmm2, %xmm0, %xmm0
291 ; AVX2-NEXT: vmovdqa {{.*#+}} xmm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
292 ; AVX2-NEXT: vpand %xmm2, %xmm0, %xmm3
293 ; AVX2-NEXT: vmovdqa {{.*#+}} xmm4 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4]
294 ; AVX2-NEXT: vpshufb %xmm3, %xmm4, %xmm3
295 ; AVX2-NEXT: vpsrlw $4, %xmm0, %xmm0
296 ; AVX2-NEXT: vpand %xmm2, %xmm0, %xmm0
297 ; AVX2-NEXT: vpshufb %xmm0, %xmm4, %xmm0
298 ; AVX2-NEXT: vpaddb %xmm3, %xmm0, %xmm0
299 ; AVX2-NEXT: vpunpckhdq {{.*#+}} xmm2 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]
300 ; AVX2-NEXT: vpsadbw %xmm1, %xmm2, %xmm2
301 ; AVX2-NEXT: vpunpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
302 ; AVX2-NEXT: vpsadbw %xmm1, %xmm0, %xmm0
303 ; AVX2-NEXT: vpackuswb %xmm2, %xmm0, %xmm0
304 ; AVX2-NEXT: retq
312 ; SSE2-NEXT: pxor %xmm1, %xmm1
313 ; SSE2-NEXT: pxor %xmm2, %xmm2
314 ; SSE2-NEXT: psubd %xmm0, %xmm2
315 ; SSE2-NEXT: pand %xmm0, %xmm2
316 ; SSE2-NEXT: psubd {{.*}}(%rip), %xmm2
317 ; SSE2-NEXT: movdqa %xmm2, %xmm0
318 ; SSE2-NEXT: psrld $1, %xmm0
319 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm0
320 ; SSE2-NEXT: psubd %xmm0, %xmm2
321 ; SSE2-NEXT: movdqa {{.*#+}} xmm0 = [858993459,858993459,858993459,858993459]
322 ; SSE2-NEXT: movdqa %xmm2, %xmm3
323 ; SSE2-NEXT: pand %xmm0, %xmm3
324 ; SSE2-NEXT: psrld $2, %xmm2
325 ; SSE2-NEXT: pand %xmm0, %xmm2
326 ; SSE2-NEXT: paddd %xmm3, %xmm2
327 ; SSE2-NEXT: movdqa %xmm2, %xmm0
328 ; SSE2-NEXT: psrld $4, %xmm0
329 ; SSE2-NEXT: paddd %xmm2, %xmm0
330 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm0
331 ; SSE2-NEXT: movdqa %xmm0, %xmm2
332 ; SSE2-NEXT: punpckhdq {{.*#+}} xmm2 = xmm2[2],xmm1[2],xmm2[3],xmm1[3]
333 ; SSE2-NEXT: psadbw %xmm1, %xmm2
334 ; SSE2-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
335 ; SSE2-NEXT: psadbw %xmm1, %xmm0
336 ; SSE2-NEXT: packuswb %xmm2, %xmm0
337 ; SSE2-NEXT: retq
341 ; SSE3-NEXT: pxor %xmm1, %xmm1
342 ; SSE3-NEXT: pxor %xmm2, %xmm2
343 ; SSE3-NEXT: psubd %xmm0, %xmm2
344 ; SSE3-NEXT: pand %xmm0, %xmm2
345 ; SSE3-NEXT: psubd {{.*}}(%rip), %xmm2
346 ; SSE3-NEXT: movdqa %xmm2, %xmm0
347 ; SSE3-NEXT: psrld $1, %xmm0
348 ; SSE3-NEXT: pand {{.*}}(%rip), %xmm0
349 ; SSE3-NEXT: psubd %xmm0, %xmm2
350 ; SSE3-NEXT: movdqa {{.*#+}} xmm0 = [858993459,858993459,858993459,858993459]
351 ; SSE3-NEXT: movdqa %xmm2, %xmm3
352 ; SSE3-NEXT: pand %xmm0, %xmm3
353 ; SSE3-NEXT: psrld $2, %xmm2
354 ; SSE3-NEXT: pand %xmm0, %xmm2
355 ; SSE3-NEXT: paddd %xmm3, %xmm2
356 ; SSE3-NEXT: movdqa %xmm2, %xmm0
357 ; SSE3-NEXT: psrld $4, %xmm0
358 ; SSE3-NEXT: paddd %xmm2, %xmm0
359 ; SSE3-NEXT: pand {{.*}}(%rip), %xmm0
360 ; SSE3-NEXT: movdqa %xmm0, %xmm2
361 ; SSE3-NEXT: punpckhdq {{.*#+}} xmm2 = xmm2[2],xmm1[2],xmm2[3],xmm1[3]
362 ; SSE3-NEXT: psadbw %xmm1, %xmm2
363 ; SSE3-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
364 ; SSE3-NEXT: psadbw %xmm1, %xmm0
365 ; SSE3-NEXT: packuswb %xmm2, %xmm0
366 ; SSE3-NEXT: retq
370 ; SSSE3-NEXT: pxor %xmm1, %xmm1
371 ; SSSE3-NEXT: pxor %xmm2, %xmm2
372 ; SSSE3-NEXT: psubd %xmm0, %xmm2
373 ; SSSE3-NEXT: pand %xmm0, %xmm2
374 ; SSSE3-NEXT: psubd {{.*}}(%rip), %xmm2
375 ; SSSE3-NEXT: movdqa {{.*#+}} xmm3 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
376 ; SSSE3-NEXT: movdqa %xmm2, %xmm4
377 ; SSSE3-NEXT: pand %xmm3, %xmm4
378 ; SSSE3-NEXT: movdqa {{.*#+}} xmm0 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4]
379 ; SSSE3-NEXT: movdqa %xmm0, %xmm5
380 ; SSSE3-NEXT: pshufb %xmm4, %xmm5
381 ; SSSE3-NEXT: psrlw $4, %xmm2
382 ; SSSE3-NEXT: pand %xmm3, %xmm2
383 ; SSSE3-NEXT: pshufb %xmm2, %xmm0
384 ; SSSE3-NEXT: paddb %xmm5, %xmm0
385 ; SSSE3-NEXT: movdqa %xmm0, %xmm2
386 ; SSSE3-NEXT: punpckhdq {{.*#+}} xmm2 = xmm2[2],xmm1[2],xmm2[3],xmm1[3]
387 ; SSSE3-NEXT: psadbw %xmm1, %xmm2
388 ; SSSE3-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
389 ; SSSE3-NEXT: psadbw %xmm1, %xmm0
390 ; SSSE3-NEXT: packuswb %xmm2, %xmm0
391 ; SSSE3-NEXT: retq
395 ; SSE41-NEXT: pxor %xmm1, %xmm1
396 ; SSE41-NEXT: pxor %xmm2, %xmm2
397 ; SSE41-NEXT: psubd %xmm0, %xmm2
398 ; SSE41-NEXT: pand %xmm0, %xmm2
399 ; SSE41-NEXT: psubd {{.*}}(%rip), %xmm2
400 ; SSE41-NEXT: movdqa {{.*#+}} xmm3 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
401 ; SSE41-NEXT: movdqa %xmm2, %xmm4
402 ; SSE41-NEXT: pand %xmm3, %xmm4
403 ; SSE41-NEXT: movdqa {{.*#+}} xmm0 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4]
404 ; SSE41-NEXT: movdqa %xmm0, %xmm5
405 ; SSE41-NEXT: pshufb %xmm4, %xmm5
406 ; SSE41-NEXT: psrlw $4, %xmm2
407 ; SSE41-NEXT: pand %xmm3, %xmm2
408 ; SSE41-NEXT: pshufb %xmm2, %xmm0
409 ; SSE41-NEXT: paddb %xmm5, %xmm0
410 ; SSE41-NEXT: movdqa %xmm0, %xmm2
411 ; SSE41-NEXT: punpckhdq {{.*#+}} xmm2 = xmm2[2],xmm1[2],xmm2[3],xmm1[3]
412 ; SSE41-NEXT: psadbw %xmm1, %xmm2
413 ; SSE41-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
414 ; SSE41-NEXT: psadbw %xmm1, %xmm0
415 ; SSE41-NEXT: packuswb %xmm2, %xmm0
416 ; SSE41-NEXT: retq
420 ; AVX1-NEXT: vpxor %xmm1, %xmm1, %xmm1
421 ; AVX1-NEXT: vpsubd %xmm0, %xmm1, %xmm2
422 ; AVX1-NEXT: vpand %xmm2, %xmm0, %xmm0
423 ; AVX1-NEXT: vpsubd {{.*}}(%rip), %xmm0, %xmm0
424 ; AVX1-NEXT: vmovdqa {{.*#+}} xmm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
425 ; AVX1-NEXT: vpand %xmm2, %xmm0, %xmm3
426 ; AVX1-NEXT: vmovdqa {{.*#+}} xmm4 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4]
427 ; AVX1-NEXT: vpshufb %xmm3, %xmm4, %xmm3
428 ; AVX1-NEXT: vpsrlw $4, %xmm0, %xmm0
429 ; AVX1-NEXT: vpand %xmm2, %xmm0, %xmm0
430 ; AVX1-NEXT: vpshufb %xmm0, %xmm4, %xmm0
431 ; AVX1-NEXT: vpaddb %xmm3, %xmm0, %xmm0
432 ; AVX1-NEXT: vpunpckhdq {{.*#+}} xmm2 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]
433 ; AVX1-NEXT: vpsadbw %xmm1, %xmm2, %xmm2
434 ; AVX1-NEXT: vpunpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
435 ; AVX1-NEXT: vpsadbw %xmm1, %xmm0, %xmm0
436 ; AVX1-NEXT: vpackuswb %xmm2, %xmm0, %xmm0
437 ; AVX1-NEXT: retq
441 ; AVX2-NEXT: vpxor %xmm1, %xmm1, %xmm1
442 ; AVX2-NEXT: vpsubd %xmm0, %xmm1, %xmm2
443 ; AVX2-NEXT: vpand %xmm2, %xmm0, %xmm0
444 ; AVX2-NEXT: vpbroadcastd {{.*}}(%rip), %xmm2
445 ; AVX2-NEXT: vpsubd %xmm2, %xmm0, %xmm0
446 ; AVX2-NEXT: vmovdqa {{.*#+}} xmm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
447 ; AVX2-NEXT: vpand %xmm2, %xmm0, %xmm3
448 ; AVX2-NEXT: vmovdqa {{.*#+}} xmm4 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4]
449 ; AVX2-NEXT: vpshufb %xmm3, %xmm4, %xmm3
450 ; AVX2-NEXT: vpsrlw $4, %xmm0, %xmm0
451 ; AVX2-NEXT: vpand %xmm2, %xmm0, %xmm0
452 ; AVX2-NEXT: vpshufb %xmm0, %xmm4, %xmm0
453 ; AVX2-NEXT: vpaddb %xmm3, %xmm0, %xmm0
454 ; AVX2-NEXT: vpunpckhdq {{.*#+}} xmm2 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]
455 ; AVX2-NEXT: vpsadbw %xmm1, %xmm2, %xmm2
456 ; AVX2-NEXT: vpunpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
457 ; AVX2-NEXT: vpsadbw %xmm1, %xmm0, %xmm0
458 ; AVX2-NEXT: vpackuswb %xmm2, %xmm0, %xmm0
459 ; AVX2-NEXT: retq
467 ; SSE2-NEXT: pxor %xmm1, %xmm1
468 ; SSE2-NEXT: psubw %xmm0, %xmm1
469 ; SSE2-NEXT: pand %xmm0, %xmm1
470 ; SSE2-NEXT: psubw {{.*}}(%rip), %xmm1
471 ; SSE2-NEXT: movdqa %xmm1, %xmm0
472 ; SSE2-NEXT: psrlw $1, %xmm0
473 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm0
474 ; SSE2-NEXT: psubw %xmm0, %xmm1
475 ; SSE2-NEXT: movdqa {{.*#+}} xmm0 = [13107,13107,13107,13107,13107,13107,13107,13107]
476 ; SSE2-NEXT: movdqa %xmm1, %xmm2
477 ; SSE2-NEXT: pand %xmm0, %xmm2
478 ; SSE2-NEXT: psrlw $2, %xmm1
479 ; SSE2-NEXT: pand %xmm0, %xmm1
480 ; SSE2-NEXT: paddw %xmm2, %xmm1
481 ; SSE2-NEXT: movdqa %xmm1, %xmm2
482 ; SSE2-NEXT: psrlw $4, %xmm2
483 ; SSE2-NEXT: paddw %xmm1, %xmm2
484 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm2
485 ; SSE2-NEXT: movdqa %xmm2, %xmm0
486 ; SSE2-NEXT: psllw $8, %xmm0
487 ; SSE2-NEXT: paddb %xmm2, %xmm0
488 ; SSE2-NEXT: psrlw $8, %xmm0
489 ; SSE2-NEXT: retq
493 ; SSE3-NEXT: pxor %xmm1, %xmm1
494 ; SSE3-NEXT: psubw %xmm0, %xmm1
495 ; SSE3-NEXT: pand %xmm0, %xmm1
496 ; SSE3-NEXT: psubw {{.*}}(%rip), %xmm1
497 ; SSE3-NEXT: movdqa %xmm1, %xmm0
498 ; SSE3-NEXT: psrlw $1, %xmm0
499 ; SSE3-NEXT: pand {{.*}}(%rip), %xmm0
500 ; SSE3-NEXT: psubw %xmm0, %xmm1
501 ; SSE3-NEXT: movdqa {{.*#+}} xmm0 = [13107,13107,13107,13107,13107,13107,13107,13107]
502 ; SSE3-NEXT: movdqa %xmm1, %xmm2
503 ; SSE3-NEXT: pand %xmm0, %xmm2
504 ; SSE3-NEXT: psrlw $2, %xmm1
505 ; SSE3-NEXT: pand %xmm0, %xmm1
506 ; SSE3-NEXT: paddw %xmm2, %xmm1
507 ; SSE3-NEXT: movdqa %xmm1, %xmm2
508 ; SSE3-NEXT: psrlw $4, %xmm2
509 ; SSE3-NEXT: paddw %xmm1, %xmm2
510 ; SSE3-NEXT: pand {{.*}}(%rip), %xmm2
511 ; SSE3-NEXT: movdqa %xmm2, %xmm0
512 ; SSE3-NEXT: psllw $8, %xmm0
513 ; SSE3-NEXT: paddb %xmm2, %xmm0
514 ; SSE3-NEXT: psrlw $8, %xmm0
515 ; SSE3-NEXT: retq
519 ; SSSE3-NEXT: pxor %xmm1, %xmm1
520 ; SSSE3-NEXT: psubw %xmm0, %xmm1
521 ; SSSE3-NEXT: pand %xmm0, %xmm1
522 ; SSSE3-NEXT: psubw {{.*}}(%rip), %xmm1
523 ; SSSE3-NEXT: movdqa {{.*#+}} xmm0 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
524 ; SSSE3-NEXT: movdqa %xmm1, %xmm2
525 ; SSSE3-NEXT: pand %xmm0, %xmm2
526 ; SSSE3-NEXT: movdqa {{.*#+}} xmm3 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4]
527 ; SSSE3-NEXT: movdqa %xmm3, %xmm4
528 ; SSSE3-NEXT: pshufb %xmm2, %xmm4
529 ; SSSE3-NEXT: psrlw $4, %xmm1
530 ; SSSE3-NEXT: pand %xmm0, %xmm1
531 ; SSSE3-NEXT: pshufb %xmm1, %xmm3
532 ; SSSE3-NEXT: paddb %xmm4, %xmm3
533 ; SSSE3-NEXT: movdqa %xmm3, %xmm0
534 ; SSSE3-NEXT: psllw $8, %xmm0
535 ; SSSE3-NEXT: paddb %xmm3, %xmm0
536 ; SSSE3-NEXT: psrlw $8, %xmm0
537 ; SSSE3-NEXT: retq
541 ; SSE41-NEXT: pxor %xmm1, %xmm1
542 ; SSE41-NEXT: psubw %xmm0, %xmm1
543 ; SSE41-NEXT: pand %xmm0, %xmm1
544 ; SSE41-NEXT: psubw {{.*}}(%rip), %xmm1
545 ; SSE41-NEXT: movdqa {{.*#+}} xmm0 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
546 ; SSE41-NEXT: movdqa %xmm1, %xmm2
547 ; SSE41-NEXT: pand %xmm0, %xmm2
548 ; SSE41-NEXT: movdqa {{.*#+}} xmm3 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4]
549 ; SSE41-NEXT: movdqa %xmm3, %xmm4
550 ; SSE41-NEXT: pshufb %xmm2, %xmm4
551 ; SSE41-NEXT: psrlw $4, %xmm1
552 ; SSE41-NEXT: pand %xmm0, %xmm1
553 ; SSE41-NEXT: pshufb %xmm1, %xmm3
554 ; SSE41-NEXT: paddb %xmm4, %xmm3
555 ; SSE41-NEXT: movdqa %xmm3, %xmm0
556 ; SSE41-NEXT: psllw $8, %xmm0
557 ; SSE41-NEXT: paddb %xmm3, %xmm0
558 ; SSE41-NEXT: psrlw $8, %xmm0
559 ; SSE41-NEXT: retq
563 ; AVX-NEXT: vpxor %xmm1, %xmm1, %xmm1
564 ; AVX-NEXT: vpsubw %xmm0, %xmm1, %xmm1
565 ; AVX-NEXT: vpand %xmm1, %xmm0, %xmm0
566 ; AVX-NEXT: vpsubw {{.*}}(%rip), %xmm0, %xmm0
567 ; AVX-NEXT: vmovdqa {{.*#+}} xmm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
568 ; AVX-NEXT: vpand %xmm1, %xmm0, %xmm2
569 ; AVX-NEXT: vmovdqa {{.*#+}} xmm3 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4]
570 ; AVX-NEXT: vpshufb %xmm2, %xmm3, %xmm2
571 ; AVX-NEXT: vpsrlw $4, %xmm0, %xmm0
572 ; AVX-NEXT: vpand %xmm1, %xmm0, %xmm0
573 ; AVX-NEXT: vpshufb %xmm0, %xmm3, %xmm0
574 ; AVX-NEXT: vpaddb %xmm2, %xmm0, %xmm0
575 ; AVX-NEXT: vpsllw $8, %xmm0, %xmm1
576 ; AVX-NEXT: vpaddb %xmm0, %xmm1, %xmm0
577 ; AVX-NEXT: vpsrlw $8, %xmm0, %xmm0
578 ; AVX-NEXT: retq
586 ; SSE2-NEXT: pxor %xmm1, %xmm1
587 ; SSE2-NEXT: psubw %xmm0, %xmm1
588 ; SSE2-NEXT: pand %xmm0, %xmm1
589 ; SSE2-NEXT: psubw {{.*}}(%rip), %xmm1
590 ; SSE2-NEXT: movdqa %xmm1, %xmm0
591 ; SSE2-NEXT: psrlw $1, %xmm0
592 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm0
593 ; SSE2-NEXT: psubw %xmm0, %xmm1
594 ; SSE2-NEXT: movdqa {{.*#+}} xmm0 = [13107,13107,13107,13107,13107,13107,13107,13107]
595 ; SSE2-NEXT: movdqa %xmm1, %xmm2
596 ; SSE2-NEXT: pand %xmm0, %xmm2
597 ; SSE2-NEXT: psrlw $2, %xmm1
598 ; SSE2-NEXT: pand %xmm0, %xmm1
599 ; SSE2-NEXT: paddw %xmm2, %xmm1
600 ; SSE2-NEXT: movdqa %xmm1, %xmm2
601 ; SSE2-NEXT: psrlw $4, %xmm2
602 ; SSE2-NEXT: paddw %xmm1, %xmm2
603 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm2
604 ; SSE2-NEXT: movdqa %xmm2, %xmm0
605 ; SSE2-NEXT: psllw $8, %xmm0
606 ; SSE2-NEXT: paddb %xmm2, %xmm0
607 ; SSE2-NEXT: psrlw $8, %xmm0
608 ; SSE2-NEXT: retq
612 ; SSE3-NEXT: pxor %xmm1, %xmm1
613 ; SSE3-NEXT: psubw %xmm0, %xmm1
614 ; SSE3-NEXT: pand %xmm0, %xmm1
615 ; SSE3-NEXT: psubw {{.*}}(%rip), %xmm1
616 ; SSE3-NEXT: movdqa %xmm1, %xmm0
617 ; SSE3-NEXT: psrlw $1, %xmm0
618 ; SSE3-NEXT: pand {{.*}}(%rip), %xmm0
619 ; SSE3-NEXT: psubw %xmm0, %xmm1
620 ; SSE3-NEXT: movdqa {{.*#+}} xmm0 = [13107,13107,13107,13107,13107,13107,13107,13107]
621 ; SSE3-NEXT: movdqa %xmm1, %xmm2
622 ; SSE3-NEXT: pand %xmm0, %xmm2
623 ; SSE3-NEXT: psrlw $2, %xmm1
624 ; SSE3-NEXT: pand %xmm0, %xmm1
625 ; SSE3-NEXT: paddw %xmm2, %xmm1
626 ; SSE3-NEXT: movdqa %xmm1, %xmm2
627 ; SSE3-NEXT: psrlw $4, %xmm2
628 ; SSE3-NEXT: paddw %xmm1, %xmm2
629 ; SSE3-NEXT: pand {{.*}}(%rip), %xmm2
630 ; SSE3-NEXT: movdqa %xmm2, %xmm0
631 ; SSE3-NEXT: psllw $8, %xmm0
632 ; SSE3-NEXT: paddb %xmm2, %xmm0
633 ; SSE3-NEXT: psrlw $8, %xmm0
634 ; SSE3-NEXT: retq
638 ; SSSE3-NEXT: pxor %xmm1, %xmm1
639 ; SSSE3-NEXT: psubw %xmm0, %xmm1
640 ; SSSE3-NEXT: pand %xmm0, %xmm1
641 ; SSSE3-NEXT: psubw {{.*}}(%rip), %xmm1
642 ; SSSE3-NEXT: movdqa {{.*#+}} xmm0 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
643 ; SSSE3-NEXT: movdqa %xmm1, %xmm2
644 ; SSSE3-NEXT: pand %xmm0, %xmm2
645 ; SSSE3-NEXT: movdqa {{.*#+}} xmm3 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4]
646 ; SSSE3-NEXT: movdqa %xmm3, %xmm4
647 ; SSSE3-NEXT: pshufb %xmm2, %xmm4
648 ; SSSE3-NEXT: psrlw $4, %xmm1
649 ; SSSE3-NEXT: pand %xmm0, %xmm1
650 ; SSSE3-NEXT: pshufb %xmm1, %xmm3
651 ; SSSE3-NEXT: paddb %xmm4, %xmm3
652 ; SSSE3-NEXT: movdqa %xmm3, %xmm0
653 ; SSSE3-NEXT: psllw $8, %xmm0
654 ; SSSE3-NEXT: paddb %xmm3, %xmm0
655 ; SSSE3-NEXT: psrlw $8, %xmm0
656 ; SSSE3-NEXT: retq
660 ; SSE41-NEXT: pxor %xmm1, %xmm1
661 ; SSE41-NEXT: psubw %xmm0, %xmm1
662 ; SSE41-NEXT: pand %xmm0, %xmm1
663 ; SSE41-NEXT: psubw {{.*}}(%rip), %xmm1
664 ; SSE41-NEXT: movdqa {{.*#+}} xmm0 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
665 ; SSE41-NEXT: movdqa %xmm1, %xmm2
666 ; SSE41-NEXT: pand %xmm0, %xmm2
667 ; SSE41-NEXT: movdqa {{.*#+}} xmm3 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4]
668 ; SSE41-NEXT: movdqa %xmm3, %xmm4
669 ; SSE41-NEXT: pshufb %xmm2, %xmm4
670 ; SSE41-NEXT: psrlw $4, %xmm1
671 ; SSE41-NEXT: pand %xmm0, %xmm1
672 ; SSE41-NEXT: pshufb %xmm1, %xmm3
673 ; SSE41-NEXT: paddb %xmm4, %xmm3
674 ; SSE41-NEXT: movdqa %xmm3, %xmm0
675 ; SSE41-NEXT: psllw $8, %xmm0
676 ; SSE41-NEXT: paddb %xmm3, %xmm0
677 ; SSE41-NEXT: psrlw $8, %xmm0
678 ; SSE41-NEXT: retq
682 ; AVX-NEXT: vpxor %xmm1, %xmm1, %xmm1
683 ; AVX-NEXT: vpsubw %xmm0, %xmm1, %xmm1
684 ; AVX-NEXT: vpand %xmm1, %xmm0, %xmm0
685 ; AVX-NEXT: vpsubw {{.*}}(%rip), %xmm0, %xmm0
686 ; AVX-NEXT: vmovdqa {{.*#+}} xmm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
687 ; AVX-NEXT: vpand %xmm1, %xmm0, %xmm2
688 ; AVX-NEXT: vmovdqa {{.*#+}} xmm3 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4]
689 ; AVX-NEXT: vpshufb %xmm2, %xmm3, %xmm2
690 ; AVX-NEXT: vpsrlw $4, %xmm0, %xmm0
691 ; AVX-NEXT: vpand %xmm1, %xmm0, %xmm0
692 ; AVX-NEXT: vpshufb %xmm0, %xmm3, %xmm0
693 ; AVX-NEXT: vpaddb %xmm2, %xmm0, %xmm0
694 ; AVX-NEXT: vpsllw $8, %xmm0, %xmm1
695 ; AVX-NEXT: vpaddb %xmm0, %xmm1, %xmm0
696 ; AVX-NEXT: vpsrlw $8, %xmm0, %xmm0
697 ; AVX-NEXT: retq
705 ; SSE2-NEXT: pxor %xmm1, %xmm1
706 ; SSE2-NEXT: psubb %xmm0, %xmm1
707 ; SSE2-NEXT: pand %xmm0, %xmm1
708 ; SSE2-NEXT: psubb {{.*}}(%rip), %xmm1
709 ; SSE2-NEXT: movdqa %xmm1, %xmm0
710 ; SSE2-NEXT: psrlw $1, %xmm0
711 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm0
712 ; SSE2-NEXT: psubb %xmm0, %xmm1
713 ; SSE2-NEXT: movdqa {{.*#+}} xmm0 = [51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51]
714 ; SSE2-NEXT: movdqa %xmm1, %xmm2
715 ; SSE2-NEXT: pand %xmm0, %xmm2
716 ; SSE2-NEXT: psrlw $2, %xmm1
717 ; SSE2-NEXT: pand %xmm0, %xmm1
718 ; SSE2-NEXT: paddb %xmm2, %xmm1
719 ; SSE2-NEXT: movdqa %xmm1, %xmm0
720 ; SSE2-NEXT: psrlw $4, %xmm0
721 ; SSE2-NEXT: paddb %xmm1, %xmm0
722 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm0
723 ; SSE2-NEXT: retq
727 ; SSE3-NEXT: pxor %xmm1, %xmm1
728 ; SSE3-NEXT: psubb %xmm0, %xmm1
729 ; SSE3-NEXT: pand %xmm0, %xmm1
730 ; SSE3-NEXT: psubb {{.*}}(%rip), %xmm1
731 ; SSE3-NEXT: movdqa %xmm1, %xmm0
732 ; SSE3-NEXT: psrlw $1, %xmm0
733 ; SSE3-NEXT: pand {{.*}}(%rip), %xmm0
734 ; SSE3-NEXT: psubb %xmm0, %xmm1
735 ; SSE3-NEXT: movdqa {{.*#+}} xmm0 = [51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51]
736 ; SSE3-NEXT: movdqa %xmm1, %xmm2
737 ; SSE3-NEXT: pand %xmm0, %xmm2
738 ; SSE3-NEXT: psrlw $2, %xmm1
739 ; SSE3-NEXT: pand %xmm0, %xmm1
740 ; SSE3-NEXT: paddb %xmm2, %xmm1
741 ; SSE3-NEXT: movdqa %xmm1, %xmm0
742 ; SSE3-NEXT: psrlw $4, %xmm0
743 ; SSE3-NEXT: paddb %xmm1, %xmm0
744 ; SSE3-NEXT: pand {{.*}}(%rip), %xmm0
745 ; SSE3-NEXT: retq
749 ; SSSE3-NEXT: pxor %xmm1, %xmm1
750 ; SSSE3-NEXT: psubb %xmm0, %xmm1
751 ; SSSE3-NEXT: pand %xmm0, %xmm1
752 ; SSSE3-NEXT: psubb {{.*}}(%rip), %xmm1
753 ; SSSE3-NEXT: movdqa {{.*#+}} xmm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
754 ; SSSE3-NEXT: movdqa %xmm1, %xmm3
755 ; SSSE3-NEXT: pand %xmm2, %xmm3
756 ; SSSE3-NEXT: movdqa {{.*#+}} xmm0 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4]
757 ; SSSE3-NEXT: movdqa %xmm0, %xmm4
758 ; SSSE3-NEXT: pshufb %xmm3, %xmm4
759 ; SSSE3-NEXT: psrlw $4, %xmm1
760 ; SSSE3-NEXT: pand %xmm2, %xmm1
761 ; SSSE3-NEXT: pshufb %xmm1, %xmm0
762 ; SSSE3-NEXT: paddb %xmm4, %xmm0
763 ; SSSE3-NEXT: retq
767 ; SSE41-NEXT: pxor %xmm1, %xmm1
768 ; SSE41-NEXT: psubb %xmm0, %xmm1
769 ; SSE41-NEXT: pand %xmm0, %xmm1
770 ; SSE41-NEXT: psubb {{.*}}(%rip), %xmm1
771 ; SSE41-NEXT: movdqa {{.*#+}} xmm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
772 ; SSE41-NEXT: movdqa %xmm1, %xmm3
773 ; SSE41-NEXT: pand %xmm2, %xmm3
774 ; SSE41-NEXT: movdqa {{.*#+}} xmm0 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4]
775 ; SSE41-NEXT: movdqa %xmm0, %xmm4
776 ; SSE41-NEXT: pshufb %xmm3, %xmm4
777 ; SSE41-NEXT: psrlw $4, %xmm1
778 ; SSE41-NEXT: pand %xmm2, %xmm1
779 ; SSE41-NEXT: pshufb %xmm1, %xmm0
780 ; SSE41-NEXT: paddb %xmm4, %xmm0
781 ; SSE41-NEXT: retq
785 ; AVX-NEXT: vpxor %xmm1, %xmm1, %xmm1
786 ; AVX-NEXT: vpsubb %xmm0, %xmm1, %xmm1
787 ; AVX-NEXT: vpand %xmm1, %xmm0, %xmm0
788 ; AVX-NEXT: vpsubb {{.*}}(%rip), %xmm0, %xmm0
789 ; AVX-NEXT: vmovdqa {{.*#+}} xmm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
790 ; AVX-NEXT: vpand %xmm1, %xmm0, %xmm2
791 ; AVX-NEXT: vmovdqa {{.*#+}} xmm3 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4]
792 ; AVX-NEXT: vpshufb %xmm2, %xmm3, %xmm2
793 ; AVX-NEXT: vpsrlw $4, %xmm0, %xmm0
794 ; AVX-NEXT: vpand %xmm1, %xmm0, %xmm0
795 ; AVX-NEXT: vpshufb %xmm0, %xmm3, %xmm0
796 ; AVX-NEXT: vpaddb %xmm2, %xmm0, %xmm0
797 ; AVX-NEXT: retq
805 ; SSE2-NEXT: pxor %xmm1, %xmm1
806 ; SSE2-NEXT: psubb %xmm0, %xmm1
807 ; SSE2-NEXT: pand %xmm0, %xmm1
808 ; SSE2-NEXT: psubb {{.*}}(%rip), %xmm1
809 ; SSE2-NEXT: movdqa %xmm1, %xmm0
810 ; SSE2-NEXT: psrlw $1, %xmm0
811 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm0
812 ; SSE2-NEXT: psubb %xmm0, %xmm1
813 ; SSE2-NEXT: movdqa {{.*#+}} xmm0 = [51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51]
814 ; SSE2-NEXT: movdqa %xmm1, %xmm2
815 ; SSE2-NEXT: pand %xmm0, %xmm2
816 ; SSE2-NEXT: psrlw $2, %xmm1
817 ; SSE2-NEXT: pand %xmm0, %xmm1
818 ; SSE2-NEXT: paddb %xmm2, %xmm1
819 ; SSE2-NEXT: movdqa %xmm1, %xmm0
820 ; SSE2-NEXT: psrlw $4, %xmm0
821 ; SSE2-NEXT: paddb %xmm1, %xmm0
822 ; SSE2-NEXT: pand {{.*}}(%rip), %xmm0
823 ; SSE2-NEXT: retq
827 ; SSE3-NEXT: pxor %xmm1, %xmm1
828 ; SSE3-NEXT: psubb %xmm0, %xmm1
829 ; SSE3-NEXT: pand %xmm0, %xmm1
830 ; SSE3-NEXT: psubb {{.*}}(%rip), %xmm1
831 ; SSE3-NEXT: movdqa %xmm1, %xmm0
832 ; SSE3-NEXT: psrlw $1, %xmm0
833 ; SSE3-NEXT: pand {{.*}}(%rip), %xmm0
834 ; SSE3-NEXT: psubb %xmm0, %xmm1
835 ; SSE3-NEXT: movdqa {{.*#+}} xmm0 = [51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51]
836 ; SSE3-NEXT: movdqa %xmm1, %xmm2
837 ; SSE3-NEXT: pand %xmm0, %xmm2
838 ; SSE3-NEXT: psrlw $2, %xmm1
839 ; SSE3-NEXT: pand %xmm0, %xmm1
840 ; SSE3-NEXT: paddb %xmm2, %xmm1
841 ; SSE3-NEXT: movdqa %xmm1, %xmm0
842 ; SSE3-NEXT: psrlw $4, %xmm0
843 ; SSE3-NEXT: paddb %xmm1, %xmm0
844 ; SSE3-NEXT: pand {{.*}}(%rip), %xmm0
845 ; SSE3-NEXT: retq
849 ; SSSE3-NEXT: pxor %xmm1, %xmm1
850 ; SSSE3-NEXT: psubb %xmm0, %xmm1
851 ; SSSE3-NEXT: pand %xmm0, %xmm1
852 ; SSSE3-NEXT: psubb {{.*}}(%rip), %xmm1
853 ; SSSE3-NEXT: movdqa {{.*#+}} xmm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
854 ; SSSE3-NEXT: movdqa %xmm1, %xmm3
855 ; SSSE3-NEXT: pand %xmm2, %xmm3
856 ; SSSE3-NEXT: movdqa {{.*#+}} xmm0 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4]
857 ; SSSE3-NEXT: movdqa %xmm0, %xmm4
858 ; SSSE3-NEXT: pshufb %xmm3, %xmm4
859 ; SSSE3-NEXT: psrlw $4, %xmm1
860 ; SSSE3-NEXT: pand %xmm2, %xmm1
861 ; SSSE3-NEXT: pshufb %xmm1, %xmm0
862 ; SSSE3-NEXT: paddb %xmm4, %xmm0
863 ; SSSE3-NEXT: retq
867 ; SSE41-NEXT: pxor %xmm1, %xmm1
868 ; SSE41-NEXT: psubb %xmm0, %xmm1
869 ; SSE41-NEXT: pand %xmm0, %xmm1
870 ; SSE41-NEXT: psubb {{.*}}(%rip), %xmm1
871 ; SSE41-NEXT: movdqa {{.*#+}} xmm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
872 ; SSE41-NEXT: movdqa %xmm1, %xmm3
873 ; SSE41-NEXT: pand %xmm2, %xmm3
874 ; SSE41-NEXT: movdqa {{.*#+}} xmm0 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4]
875 ; SSE41-NEXT: movdqa %xmm0, %xmm4
876 ; SSE41-NEXT: pshufb %xmm3, %xmm4
877 ; SSE41-NEXT: psrlw $4, %xmm1
878 ; SSE41-NEXT: pand %xmm2, %xmm1
879 ; SSE41-NEXT: pshufb %xmm1, %xmm0
880 ; SSE41-NEXT: paddb %xmm4, %xmm0
881 ; SSE41-NEXT: retq
885 ; AVX-NEXT: vpxor %xmm1, %xmm1, %xmm1
886 ; AVX-NEXT: vpsubb %xmm0, %xmm1, %xmm1
887 ; AVX-NEXT: vpand %xmm1, %xmm0, %xmm0
888 ; AVX-NEXT: vpsubb {{.*}}(%rip), %xmm0, %xmm0
889 ; AVX-NEXT: vmovdqa {{.*#+}} xmm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
890 ; AVX-NEXT: vpand %xmm1, %xmm0, %xmm2
891 ; AVX-NEXT: vmovdqa {{.*#+}} xmm3 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4]
892 ; AVX-NEXT: vpshufb %xmm2, %xmm3, %xmm2
893 ; AVX-NEXT: vpsrlw $4, %xmm0, %xmm0
894 ; AVX-NEXT: vpand %xmm1, %xmm0, %xmm0
895 ; AVX-NEXT: vpshufb %xmm0, %xmm3, %xmm0
896 ; AVX-NEXT: vpaddb %xmm2, %xmm0, %xmm0
897 ; AVX-NEXT: retq
905 ; SSE-NEXT: movl $8, %eax
906 ; SSE-NEXT: movd %rax, %xmm0
907 ; SSE-NEXT: retq
911 ; AVX-NEXT: movl $8, %eax
912 ; AVX-NEXT: vmovq %rax, %xmm0
913 ; AVX-NEXT: retq
921 ; SSE-NEXT: movl $8, %eax
922 ; SSE-NEXT: movd %rax, %xmm0
923 ; SSE-NEXT: retq
927 ; AVX-NEXT: movl $8, %eax
928 ; AVX-NEXT: vmovq %rax, %xmm0
929 ; AVX-NEXT: retq
937 ; SSE-NEXT: movaps {{.*#+}} xmm0 = [8,0,32,0]
938 ; SSE-NEXT: retq
942 ; AVX-NEXT: vmovaps {{.*#+}} xmm0 = [8,0,32,0]
943 ; AVX-NEXT: retq
951 ; SSE-NEXT: movaps {{.*#+}} xmm0 = [8,0,32,0]
952 ; SSE-NEXT: retq
956 ; AVX-NEXT: vmovaps {{.*#+}} xmm0 = [8,0,32,0]
957 ; AVX-NEXT: retq
965 ; SSE-NEXT: movaps {{.*#+}} xmm0 = [8,0,16,0,16,0,3,3]
966 ; SSE-NEXT: retq
970 ; AVX-NEXT: vmovaps {{.*#+}} xmm0 = [8,0,16,0,16,0,3,3]
971 ; AVX-NEXT: retq
979 ; SSE-NEXT: movaps {{.*#+}} xmm0 = [8,0,16,0,16,0,3,3]
980 ; SSE-NEXT: retq
984 ; AVX-NEXT: vmovaps {{.*#+}} xmm0 = [8,0,16,0,16,0,3,3]
985 ; AVX-NEXT: retq
993 ; SSE-NEXT: movaps {{.*#+}} xmm0 = [8,0,8,0,8,0,3,3,1,1,0,1,2,3,4,5]
994 ; SSE-NEXT: retq
998 ; AVX-NEXT: vmovaps {{.*#+}} xmm0 = [8,0,8,0,8,0,3,3,1,1,0,1,2,3,4,5]
999 ; AVX-NEXT: retq
1007 ; SSE-NEXT: movaps {{.*#+}} xmm0 = [8,0,8,0,8,0,3,3,1,1,0,1,2,3,4,5]
1008 ; SSE-NEXT: retq
1012 ; AVX-NEXT: vmovaps {{.*#+}} xmm0 = [8,0,8,0,8,0,3,3,1,1,0,1,2,3,4,5]
1013 ; AVX-NEXT: retq