Lines Matching full:next
17 ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,2147483648,2147483648,2147483648]
18 ; SSE2-NEXT: movdqa %xmm1, %xmm3
19 ; SSE2-NEXT: pxor %xmm2, %xmm3
20 ; SSE2-NEXT: pxor %xmm0, %xmm2
21 ; SSE2-NEXT: movdqa %xmm2, %xmm4
22 ; SSE2-NEXT: pcmpgtd %xmm3, %xmm4
23 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2]
24 ; SSE2-NEXT: pcmpeqd %xmm3, %xmm2
25 ; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3]
26 ; SSE2-NEXT: pand %xmm5, %xmm2
27 ; SSE2-NEXT: pshufd {{.*#+}} xmm3 = xmm4[1,1,3,3]
28 ; SSE2-NEXT: por %xmm2, %xmm3
29 ; SSE2-NEXT: pand %xmm3, %xmm0
30 ; SSE2-NEXT: pandn %xmm1, %xmm3
31 ; SSE2-NEXT: por %xmm3, %xmm0
32 ; SSE2-NEXT: retq
36 ; SSE41-NEXT: movdqa %xmm0, %xmm2
37 ; SSE41-NEXT: movdqa {{.*#+}} xmm0 = [2147483648,2147483648,2147483648,2147483648]
38 ; SSE41-NEXT: movdqa %xmm1, %xmm3
39 ; SSE41-NEXT: pxor %xmm0, %xmm3
40 ; SSE41-NEXT: pxor %xmm2, %xmm0
41 ; SSE41-NEXT: movdqa %xmm0, %xmm4
42 ; SSE41-NEXT: pcmpgtd %xmm3, %xmm4
43 ; SSE41-NEXT: pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2]
44 ; SSE41-NEXT: pcmpeqd %xmm3, %xmm0
45 ; SSE41-NEXT: pshufd {{.*#+}} xmm3 = xmm0[1,1,3,3]
46 ; SSE41-NEXT: pand %xmm5, %xmm3
47 ; SSE41-NEXT: pshufd {{.*#+}} xmm0 = xmm4[1,1,3,3]
48 ; SSE41-NEXT: por %xmm3, %xmm0
49 ; SSE41-NEXT: blendvpd %xmm2, %xmm1
50 ; SSE41-NEXT: movapd %xmm1, %xmm0
51 ; SSE41-NEXT: retq
55 ; SSE42-NEXT: movdqa %xmm0, %xmm2
56 ; SSE42-NEXT: movdqa {{.*#+}} xmm0 = [9223372036854775808,9223372036854775808]
57 ; SSE42-NEXT: movdqa %xmm1, %xmm3
58 ; SSE42-NEXT: pxor %xmm0, %xmm3
59 ; SSE42-NEXT: pxor %xmm2, %xmm0
60 ; SSE42-NEXT: pcmpgtq %xmm3, %xmm0
61 ; SSE42-NEXT: blendvpd %xmm2, %xmm1
62 ; SSE42-NEXT: movapd %xmm1, %xmm0
63 ; SSE42-NEXT: retq
67 ; AVX-NEXT: vmovdqa {{.*#+}} xmm2 = [9223372036854775808,9223372036854775808]
68 ; AVX-NEXT: vpxor %xmm2, %xmm1, %xmm3
69 ; AVX-NEXT: vpxor %xmm2, %xmm0, %xmm2
70 ; AVX-NEXT: vpcmpgtq %xmm3, %xmm2, %xmm2
71 ; AVX-NEXT: vblendvpd %xmm2, %xmm0, %xmm1, %xmm0
72 ; AVX-NEXT: retq
81 ; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [2147483648,2147483648,2147483648,2147483648]
82 ; SSE2-NEXT: movdqa %xmm3, %xmm5
83 ; SSE2-NEXT: pxor %xmm4, %xmm5
84 ; SSE2-NEXT: movdqa %xmm1, %xmm6
85 ; SSE2-NEXT: pxor %xmm4, %xmm6
86 ; SSE2-NEXT: movdqa %xmm6, %xmm7
87 ; SSE2-NEXT: pcmpgtd %xmm5, %xmm7
88 ; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2]
89 ; SSE2-NEXT: pcmpeqd %xmm5, %xmm6
90 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm6[1,1,3,3]
91 ; SSE2-NEXT: pand %xmm8, %xmm5
92 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm7[1,1,3,3]
93 ; SSE2-NEXT: por %xmm5, %xmm6
94 ; SSE2-NEXT: movdqa %xmm2, %xmm5
95 ; SSE2-NEXT: pxor %xmm4, %xmm5
96 ; SSE2-NEXT: pxor %xmm0, %xmm4
97 ; SSE2-NEXT: movdqa %xmm4, %xmm7
98 ; SSE2-NEXT: pcmpgtd %xmm5, %xmm7
99 ; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2]
100 ; SSE2-NEXT: pcmpeqd %xmm5, %xmm4
101 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm4[1,1,3,3]
102 ; SSE2-NEXT: pand %xmm8, %xmm4
103 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm7[1,1,3,3]
104 ; SSE2-NEXT: por %xmm4, %xmm5
105 ; SSE2-NEXT: pand %xmm5, %xmm0
106 ; SSE2-NEXT: pandn %xmm2, %xmm5
107 ; SSE2-NEXT: por %xmm5, %xmm0
108 ; SSE2-NEXT: pand %xmm6, %xmm1
109 ; SSE2-NEXT: pandn %xmm3, %xmm6
110 ; SSE2-NEXT: por %xmm6, %xmm1
111 ; SSE2-NEXT: retq
115 ; SSE41-NEXT: movdqa %xmm0, %xmm8
116 ; SSE41-NEXT: movdqa {{.*#+}} xmm0 = [2147483648,2147483648,2147483648,2147483648]
117 ; SSE41-NEXT: movdqa %xmm3, %xmm5
118 ; SSE41-NEXT: pxor %xmm0, %xmm5
119 ; SSE41-NEXT: movdqa %xmm1, %xmm6
120 ; SSE41-NEXT: pxor %xmm0, %xmm6
121 ; SSE41-NEXT: movdqa %xmm6, %xmm7
122 ; SSE41-NEXT: pcmpgtd %xmm5, %xmm7
123 ; SSE41-NEXT: pshufd {{.*#+}} xmm4 = xmm7[0,0,2,2]
124 ; SSE41-NEXT: pcmpeqd %xmm5, %xmm6
125 ; SSE41-NEXT: pshufd {{.*#+}} xmm6 = xmm6[1,1,3,3]
126 ; SSE41-NEXT: pand %xmm4, %xmm6
127 ; SSE41-NEXT: pshufd {{.*#+}} xmm5 = xmm7[1,1,3,3]
128 ; SSE41-NEXT: por %xmm6, %xmm5
129 ; SSE41-NEXT: movdqa %xmm2, %xmm4
130 ; SSE41-NEXT: pxor %xmm0, %xmm4
131 ; SSE41-NEXT: pxor %xmm8, %xmm0
132 ; SSE41-NEXT: movdqa %xmm0, %xmm6
133 ; SSE41-NEXT: pcmpgtd %xmm4, %xmm6
134 ; SSE41-NEXT: pshufd {{.*#+}} xmm7 = xmm6[0,0,2,2]
135 ; SSE41-NEXT: pcmpeqd %xmm4, %xmm0
136 ; SSE41-NEXT: pshufd {{.*#+}} xmm4 = xmm0[1,1,3,3]
137 ; SSE41-NEXT: pand %xmm7, %xmm4
138 ; SSE41-NEXT: pshufd {{.*#+}} xmm0 = xmm6[1,1,3,3]
139 ; SSE41-NEXT: por %xmm4, %xmm0
140 ; SSE41-NEXT: blendvpd %xmm8, %xmm2
141 ; SSE41-NEXT: movdqa %xmm5, %xmm0
142 ; SSE41-NEXT: blendvpd %xmm1, %xmm3
143 ; SSE41-NEXT: movapd %xmm2, %xmm0
144 ; SSE41-NEXT: movapd %xmm3, %xmm1
145 ; SSE41-NEXT: retq
149 ; SSE42-NEXT: movdqa %xmm0, %xmm4
150 ; SSE42-NEXT: movdqa {{.*#+}} xmm0 = [9223372036854775808,9223372036854775808]
151 ; SSE42-NEXT: movdqa %xmm3, %xmm6
152 ; SSE42-NEXT: pxor %xmm0, %xmm6
153 ; SSE42-NEXT: movdqa %xmm1, %xmm5
154 ; SSE42-NEXT: pxor %xmm0, %xmm5
155 ; SSE42-NEXT: pcmpgtq %xmm6, %xmm5
156 ; SSE42-NEXT: movdqa %xmm2, %xmm6
157 ; SSE42-NEXT: pxor %xmm0, %xmm6
158 ; SSE42-NEXT: pxor %xmm4, %xmm0
159 ; SSE42-NEXT: pcmpgtq %xmm6, %xmm0
160 ; SSE42-NEXT: blendvpd %xmm4, %xmm2
161 ; SSE42-NEXT: movdqa %xmm5, %xmm0
162 ; SSE42-NEXT: blendvpd %xmm1, %xmm3
163 ; SSE42-NEXT: movapd %xmm2, %xmm0
164 ; SSE42-NEXT: movapd %xmm3, %xmm1
165 ; SSE42-NEXT: retq
169 ; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2
170 ; AVX1-NEXT: vmovaps {{.*#+}} xmm3 = [9223372036854775808,9223372036854775808]
171 ; AVX1-NEXT: vxorps %xmm3, %xmm2, %xmm2
172 ; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm4
173 ; AVX1-NEXT: vxorps %xmm3, %xmm4, %xmm4
174 ; AVX1-NEXT: vpcmpgtq %xmm2, %xmm4, %xmm2
175 ; AVX1-NEXT: vxorps %xmm3, %xmm1, %xmm4
176 ; AVX1-NEXT: vxorps %xmm3, %xmm0, %xmm3
177 ; AVX1-NEXT: vpcmpgtq %xmm4, %xmm3, %xmm3
178 ; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm3, %ymm2
179 ; AVX1-NEXT: vblendvpd %ymm2, %ymm0, %ymm1, %ymm0
180 ; AVX1-NEXT: retq
184 ; AVX2-NEXT: vpbroadcastq {{.*}}(%rip), %ymm2
185 ; AVX2-NEXT: vpxor %ymm2, %ymm1, %ymm3
186 ; AVX2-NEXT: vpxor %ymm2, %ymm0, %ymm2
187 ; AVX2-NEXT: vpcmpgtq %ymm3, %ymm2, %ymm2
188 ; AVX2-NEXT: vblendvpd %ymm2, %ymm0, %ymm1, %ymm0
189 ; AVX2-NEXT: retq
193 ; AVX512-NEXT: vpbroadcastq {{.*}}(%rip), %ymm2
194 ; AVX512-NEXT: vpxor %ymm2, %ymm1, %ymm3
195 ; AVX512-NEXT: vpxor %ymm2, %ymm0, %ymm2
196 ; AVX512-NEXT: vpcmpgtq %ymm3, %ymm2, %ymm2
197 ; AVX512-NEXT: vblendvpd %ymm2, %ymm0, %ymm1, %ymm0
198 ; AVX512-NEXT: retq
207 ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,2147483648,2147483648,2147483648]
208 ; SSE2-NEXT: movdqa %xmm1, %xmm3
209 ; SSE2-NEXT: pxor %xmm2, %xmm3
210 ; SSE2-NEXT: pxor %xmm0, %xmm2
211 ; SSE2-NEXT: pcmpgtd %xmm3, %xmm2
212 ; SSE2-NEXT: pand %xmm2, %xmm0
213 ; SSE2-NEXT: pandn %xmm1, %xmm2
214 ; SSE2-NEXT: por %xmm2, %xmm0
215 ; SSE2-NEXT: retq
219 ; SSE41-NEXT: pmaxud %xmm1, %xmm0
220 ; SSE41-NEXT: retq
224 ; SSE42-NEXT: pmaxud %xmm1, %xmm0
225 ; SSE42-NEXT: retq
229 ; AVX-NEXT: vpmaxud %xmm1, %xmm0, %xmm0
230 ; AVX-NEXT: retq
239 ; SSE2-NEXT: movdqa {{.*#+}} xmm5 = [2147483648,2147483648,2147483648,2147483648]
240 ; SSE2-NEXT: movdqa %xmm3, %xmm6
241 ; SSE2-NEXT: pxor %xmm5, %xmm6
242 ; SSE2-NEXT: movdqa %xmm1, %xmm4
243 ; SSE2-NEXT: pxor %xmm5, %xmm4
244 ; SSE2-NEXT: pcmpgtd %xmm6, %xmm4
245 ; SSE2-NEXT: movdqa %xmm2, %xmm6
246 ; SSE2-NEXT: pxor %xmm5, %xmm6
247 ; SSE2-NEXT: pxor %xmm0, %xmm5
248 ; SSE2-NEXT: pcmpgtd %xmm6, %xmm5
249 ; SSE2-NEXT: pand %xmm5, %xmm0
250 ; SSE2-NEXT: pandn %xmm2, %xmm5
251 ; SSE2-NEXT: por %xmm5, %xmm0
252 ; SSE2-NEXT: pand %xmm4, %xmm1
253 ; SSE2-NEXT: pandn %xmm3, %xmm4
254 ; SSE2-NEXT: por %xmm1, %xmm4
255 ; SSE2-NEXT: movdqa %xmm4, %xmm1
256 ; SSE2-NEXT: retq
260 ; SSE41-NEXT: pmaxud %xmm2, %xmm0
261 ; SSE41-NEXT: pmaxud %xmm3, %xmm1
262 ; SSE41-NEXT: retq
266 ; SSE42-NEXT: pmaxud %xmm2, %xmm0
267 ; SSE42-NEXT: pmaxud %xmm3, %xmm1
268 ; SSE42-NEXT: retq
272 ; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2
273 ; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3
274 ; AVX1-NEXT: vpmaxud %xmm2, %xmm3, %xmm2
275 ; AVX1-NEXT: vpmaxud %xmm1, %xmm0, %xmm0
276 ; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0
277 ; AVX1-NEXT: retq
281 ; AVX2-NEXT: vpmaxud %ymm1, %ymm0, %ymm0
282 ; AVX2-NEXT: retq
286 ; AVX512-NEXT: vpmaxud %ymm1, %ymm0, %ymm0
287 ; AVX512-NEXT: retq
296 ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [32768,32768,32768,32768,32768,32768,32768,32768]
297 ; SSE2-NEXT: movdqa %xmm1, %xmm3
298 ; SSE2-NEXT: pxor %xmm2, %xmm3
299 ; SSE2-NEXT: pxor %xmm0, %xmm2
300 ; SSE2-NEXT: pcmpgtw %xmm3, %xmm2
301 ; SSE2-NEXT: pand %xmm2, %xmm0
302 ; SSE2-NEXT: pandn %xmm1, %xmm2
303 ; SSE2-NEXT: por %xmm2, %xmm0
304 ; SSE2-NEXT: retq
308 ; SSE41-NEXT: pmaxuw %xmm1, %xmm0
309 ; SSE41-NEXT: retq
313 ; SSE42-NEXT: pmaxuw %xmm1, %xmm0
314 ; SSE42-NEXT: retq
318 ; AVX-NEXT: vpmaxuw %xmm1, %xmm0, %xmm0
319 ; AVX-NEXT: retq
328 ; SSE2-NEXT: movdqa {{.*#+}} xmm5 = [32768,32768,32768,32768,32768,32768,32768,32768]
329 ; SSE2-NEXT: movdqa %xmm3, %xmm6
330 ; SSE2-NEXT: pxor %xmm5, %xmm6
331 ; SSE2-NEXT: movdqa %xmm1, %xmm4
332 ; SSE2-NEXT: pxor %xmm5, %xmm4
333 ; SSE2-NEXT: pcmpgtw %xmm6, %xmm4
334 ; SSE2-NEXT: movdqa %xmm2, %xmm6
335 ; SSE2-NEXT: pxor %xmm5, %xmm6
336 ; SSE2-NEXT: pxor %xmm0, %xmm5
337 ; SSE2-NEXT: pcmpgtw %xmm6, %xmm5
338 ; SSE2-NEXT: pand %xmm5, %xmm0
339 ; SSE2-NEXT: pandn %xmm2, %xmm5
340 ; SSE2-NEXT: por %xmm5, %xmm0
341 ; SSE2-NEXT: pand %xmm4, %xmm1
342 ; SSE2-NEXT: pandn %xmm3, %xmm4
343 ; SSE2-NEXT: por %xmm1, %xmm4
344 ; SSE2-NEXT: movdqa %xmm4, %xmm1
345 ; SSE2-NEXT: retq
349 ; SSE41-NEXT: pmaxuw %xmm2, %xmm0
350 ; SSE41-NEXT: pmaxuw %xmm3, %xmm1
351 ; SSE41-NEXT: retq
355 ; SSE42-NEXT: pmaxuw %xmm2, %xmm0
356 ; SSE42-NEXT: pmaxuw %xmm3, %xmm1
357 ; SSE42-NEXT: retq
361 ; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2
362 ; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3
363 ; AVX1-NEXT: vpmaxuw %xmm2, %xmm3, %xmm2
364 ; AVX1-NEXT: vpmaxuw %xmm1, %xmm0, %xmm0
365 ; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0
366 ; AVX1-NEXT: retq
370 ; AVX2-NEXT: vpmaxuw %ymm1, %ymm0, %ymm0
371 ; AVX2-NEXT: retq
375 ; AVX512-NEXT: vpmaxuw %ymm1, %ymm0, %ymm0
376 ; AVX512-NEXT: retq
385 ; SSE-NEXT: pmaxub %xmm1, %xmm0
386 ; SSE-NEXT: retq
390 ; AVX-NEXT: vpmaxub %xmm1, %xmm0, %xmm0
391 ; AVX-NEXT: retq
400 ; SSE-NEXT: pmaxub %xmm2, %xmm0
401 ; SSE-NEXT: pmaxub %xmm3, %xmm1
402 ; SSE-NEXT: retq
406 ; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2
407 ; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3
408 ; AVX1-NEXT: vpmaxub %xmm2, %xmm3, %xmm2
409 ; AVX1-NEXT: vpmaxub %xmm1, %xmm0, %xmm0
410 ; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0
411 ; AVX1-NEXT: retq
415 ; AVX2-NEXT: vpmaxub %ymm1, %ymm0, %ymm0
416 ; AVX2-NEXT: retq
420 ; AVX512-NEXT: vpmaxub %ymm1, %ymm0, %ymm0
421 ; AVX512-NEXT: retq
434 ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,2147483648,2147483648,2147483648]
435 ; SSE2-NEXT: movdqa %xmm0, %xmm3
436 ; SSE2-NEXT: pxor %xmm2, %xmm3
437 ; SSE2-NEXT: pxor %xmm1, %xmm2
438 ; SSE2-NEXT: movdqa %xmm2, %xmm4
439 ; SSE2-NEXT: pcmpgtd %xmm3, %xmm4
440 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2]
441 ; SSE2-NEXT: pcmpeqd %xmm3, %xmm2
442 ; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3]
443 ; SSE2-NEXT: pand %xmm5, %xmm2
444 ; SSE2-NEXT: pshufd {{.*#+}} xmm3 = xmm4[1,1,3,3]
445 ; SSE2-NEXT: por %xmm2, %xmm3
446 ; SSE2-NEXT: pcmpeqd %xmm2, %xmm2
447 ; SSE2-NEXT: pxor %xmm3, %xmm2
448 ; SSE2-NEXT: pandn %xmm0, %xmm3
449 ; SSE2-NEXT: pandn %xmm1, %xmm2
450 ; SSE2-NEXT: por %xmm3, %xmm2
451 ; SSE2-NEXT: movdqa %xmm2, %xmm0
452 ; SSE2-NEXT: retq
456 ; SSE41-NEXT: movdqa %xmm0, %xmm2
457 ; SSE41-NEXT: movdqa {{.*#+}} xmm0 = [2147483648,2147483648,2147483648,2147483648]
458 ; SSE41-NEXT: movdqa %xmm2, %xmm3
459 ; SSE41-NEXT: pxor %xmm0, %xmm3
460 ; SSE41-NEXT: pxor %xmm1, %xmm0
461 ; SSE41-NEXT: movdqa %xmm0, %xmm4
462 ; SSE41-NEXT: pcmpgtd %xmm3, %xmm4
463 ; SSE41-NEXT: pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2]
464 ; SSE41-NEXT: pcmpeqd %xmm3, %xmm0
465 ; SSE41-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,3,3]
466 ; SSE41-NEXT: pand %xmm5, %xmm0
467 ; SSE41-NEXT: pshufd {{.*#+}} xmm3 = xmm4[1,1,3,3]
468 ; SSE41-NEXT: por %xmm0, %xmm3
469 ; SSE41-NEXT: pcmpeqd %xmm0, %xmm0
470 ; SSE41-NEXT: pxor %xmm3, %xmm0
471 ; SSE41-NEXT: blendvpd %xmm2, %xmm1
472 ; SSE41-NEXT
473 ; SSE41-NEXT: retq
477 ; SSE42-NEXT: movdqa %xmm0, %xmm2
478 ; SSE42-NEXT: movdqa {{.*#+}} xmm3 = [9223372036854775808,9223372036854775808]
479 ; SSE42-NEXT: pxor %xmm3, %xmm0
480 ; SSE42-NEXT: pxor %xmm1, %xmm3
481 ; SSE42-NEXT: pcmpgtq %xmm0, %xmm3
482 ; SSE42-NEXT: pcmpeqd %xmm0, %xmm0
483 ; SSE42-NEXT: pxor %xmm3, %xmm0
484 ; SSE42-NEXT: blendvpd %xmm2, %xmm1
485 ; SSE42-NEXT: movapd %xmm1, %xmm0
486 ; SSE42-NEXT: retq
490 ; AVX-NEXT: vmovdqa {{.*#+}} xmm2 = [9223372036854775808,9223372036854775808]
491 ; AVX-NEXT: vpxor %xmm2, %xmm0, %xmm3
492 ; AVX-NEXT: vpxor %xmm2, %xmm1, %xmm2
493 ; AVX-NEXT: vpcmpgtq %xmm3, %xmm2, %xmm2
494 ; AVX-NEXT: vpcmpeqd %xmm3, %xmm3, %xmm3
495 ; AVX-NEXT: vpxor %xmm3, %xmm2, %xmm2
496 ; AVX-NEXT: vblendvpd %xmm2, %xmm0, %xmm1, %xmm0
497 ; AVX-NEXT: retq
506 ; SSE2-NEXT: movdqa {{.*#+}} xmm7 = [2147483648,2147483648,2147483648,2147483648]
507 ; SSE2-NEXT: movdqa %xmm1, %xmm4
508 ; SSE2-NEXT: pxor %xmm7, %xmm4
509 ; SSE2-NEXT: movdqa %xmm3, %xmm5
510 ; SSE2-NEXT: pxor %xmm7, %xmm5
511 ; SSE2-NEXT: movdqa %xmm5, %xmm6
512 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm6
513 ; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm6[0,0,2,2]
514 ; SSE2-NEXT: pcmpeqd %xmm4, %xmm5
515 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3]
516 ; SSE2-NEXT: pand %xmm8, %xmm4
517 ; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm6[1,1,3,3]
518 ; SSE2-NEXT: por %xmm4, %xmm8
519 ; SSE2-NEXT: pcmpeqd %xmm4, %xmm4
520 ; SSE2-NEXT: movdqa %xmm8, %xmm9
521 ; SSE2-NEXT: pxor %xmm4, %xmm9
522 ; SSE2-NEXT: movdqa %xmm0, %xmm6
523 ; SSE2-NEXT: pxor %xmm7, %xmm6
524 ; SSE2-NEXT: pxor %xmm2, %xmm7
525 ; SSE2-NEXT: movdqa %xmm7, %xmm5
526 ; SSE2-NEXT: pcmpgtd %xmm6, %xmm5
527 ; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm5[0,0,2,2]
528 ; SSE2-NEXT: pcmpeqd %xmm6, %xmm7
529 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm7[1,1,3,3]
530 ; SSE2-NEXT: pand %xmm10, %xmm6
531 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm5[1,1,3,3]
532 ; SSE2-NEXT: por %xmm6, %xmm5
533 ; SSE2-NEXT: pxor %xmm5, %xmm4
534 ; SSE2-NEXT: pandn %xmm0, %xmm5
535 ; SSE2-NEXT: pandn %xmm2, %xmm4
536 ; SSE2-NEXT: por %xmm5, %xmm4
537 ; SSE2-NEXT: pandn %xmm1, %xmm8
538 ; SSE2-NEXT: pandn %xmm3, %xmm9
539 ; SSE2-NEXT: por %xmm8, %xmm9
540 ; SSE2-NEXT: movdqa %xmm4, %xmm0
541 ; SSE2-NEXT: movdqa %xmm9, %xmm1
542 ; SSE2-NEXT: retq
546 ; SSE41-NEXT: movdqa %xmm0, %xmm8
547 ; SSE41-NEXT: movdqa {{.*#+}} xmm0 = [2147483648,2147483648,2147483648,2147483648]
548 ; SSE41-NEXT: movdqa %xmm1, %xmm5
549 ; SSE41-NEXT: pxor %xmm0, %xmm5
550 ; SSE41-NEXT: movdqa %xmm3, %xmm6
551 ; SSE41-NEXT: pxor %xmm0, %xmm6
552 ; SSE41-NEXT: movdqa %xmm6, %xmm7
553 ; SSE41-NEXT: pcmpgtd %xmm5, %xmm7
554 ; SSE41-NEXT: pshufd {{.*#+}} xmm4 = xmm7[0,0,2,2]
555 ; SSE41-NEXT: pcmpeqd %xmm5, %xmm6
556 ; SSE41-NEXT: pshufd {{.*#+}} xmm6 = xmm6[1,1,3,3]
557 ; SSE41-NEXT: pand %xmm4, %xmm6
558 ; SSE41-NEXT: pshufd {{.*#+}} xmm5 = xmm7[1,1,3,3]
559 ; SSE41-NEXT: por %xmm6, %xmm5
560 ; SSE41-NEXT: pcmpeqd %xmm9, %xmm9
561 ; SSE41-NEXT: pxor %xmm9, %xmm5
562 ; SSE41-NEXT: movdqa %xmm8, %xmm6
563 ; SSE41-NEXT: pxor %xmm0, %xmm6
564 ; SSE41-NEXT: pxor %xmm2, %xmm0
565 ; SSE41-NEXT: movdqa %xmm0, %xmm7
566 ; SSE41-NEXT: pcmpgtd %xmm6, %xmm7
567 ; SSE41-NEXT: pshufd {{.*#+}} xmm4 = xmm7[0,0,2,2]
568 ; SSE41-NEXT: pcmpeqd %xmm6, %xmm0
569 ; SSE41-NEXT: pshufd {{.*#+}} xmm6 = xmm0[1,1,3,3]
570 ; SSE41-NEXT: pand %xmm4, %xmm6
571 ; SSE41-NEXT: pshufd {{.*#+}} xmm0 = xmm7[1,1,3,3]
572 ; SSE41-NEXT: por %xmm6, %xmm0
573 ; SSE41-NEXT: pxor %xmm9, %xmm0
574 ; SSE41-NEXT: blendvpd %xmm8, %xmm2
575 ; SSE41-NEXT: movdqa %xmm5, %xmm0
576 ; SSE41-NEXT: blendvpd %xmm1, %xmm3
577 ; SSE41-NEXT: movapd %xmm2, %xmm0
578 ; SSE41-NEXT: movapd %xmm3, %xmm1
579 ; SSE41-NEXT: retq
583 ; SSE42-NEXT: movdqa %xmm0, %xmm4
584 ; SSE42-NEXT: movdqa {{.*#+}} xmm0 = [9223372036854775808,9223372036854775808]
585 ; SSE42-NEXT: movdqa %xmm1, %xmm6
586 ; SSE42-NEXT: pxor %xmm0, %xmm6
587 ; SSE42-NEXT: movdqa %xmm3, %xmm5
588 ; SSE42-NEXT: pxor %xmm0, %xmm5
589 ; SSE42-NEXT: pcmpgtq %xmm6, %xmm5
590 ; SSE42-NEXT: pcmpeqd %xmm6, %xmm6
591 ; SSE42-NEXT: pxor %xmm6, %xmm5
592 ; SSE42-NEXT: movdqa %xmm4, %xmm7
593 ; SSE42-NEXT: pxor %xmm0, %xmm7
594 ; SSE42-NEXT: pxor %xmm2, %xmm0
595 ; SSE42-NEXT: pcmpgtq %xmm7, %xmm0
596 ; SSE42-NEXT: pxor %xmm6, %xmm0
597 ; SSE42-NEXT: blendvpd %xmm4, %xmm2
598 ; SSE42-NEXT: movdqa %xmm5, %xmm0
599 ; SSE42-NEXT: blendvpd %xmm1, %xmm3
600 ; SSE42-NEXT: movapd %xmm2, %xmm0
601 ; SSE42-NEXT: movapd %xmm3, %xmm1
602 ; SSE42-NEXT: retq
606 ; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm2
607 ; AVX1-NEXT: vmovaps {{.*#+}} xmm3 = [9223372036854775808,9223372036854775808]
608 ; AVX1-NEXT: vxorps %xmm3, %xmm2, %xmm2
609 ; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4
610 ; AVX1-NEXT: vxorps %xmm3, %xmm4, %xmm4
611 ; AVX1-NEXT: vpcmpgtq %xmm2, %xmm4, %xmm2
612 ; AVX1-NEXT: vpcmpeqd %xmm4, %xmm4, %xmm4
613 ; AVX1-NEXT: vpxor %xmm4, %xmm2, %xmm2
614 ; AVX1-NEXT: vxorps %xmm3, %xmm0, %xmm5
615 ; AVX1-NEXT: vxorps %xmm3, %xmm1, %xmm3
616 ; AVX1-NEXT: vpcmpgtq %xmm5, %xmm3, %xmm3
617 ; AVX1-NEXT: vpxor %xmm4, %xmm3, %xmm3
618 ; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm3, %ymm2
619 ; AVX1-NEXT: vblendvpd %ymm2, %ymm0, %ymm1, %ymm0
620 ; AVX1-NEXT: retq
624 ; AVX2-NEXT: vpbroadcastq {{.*}}(%rip), %ymm2
625 ; AVX2-NEXT: vpxor %ymm2, %ymm0, %ymm3
626 ; AVX2-NEXT: vpxor %ymm2, %ymm1, %ymm2
627 ; AVX2-NEXT: vpcmpgtq %ymm3, %ymm2, %ymm2
628 ; AVX2-NEXT: vpcmpeqd %ymm3, %ymm3, %ymm3
629 ; AVX2-NEXT: vpxor %ymm3, %ymm2, %ymm2
630 ; AVX2-NEXT: vblendvpd %ymm2, %ymm0, %ymm1, %ymm0
631 ; AVX2-NEXT: retq
635 ; AVX512-NEXT: vpbroadcastq {{.*}}(%rip), %ymm2
636 ; AVX512-NEXT: vpxor %ymm2, %ymm0, %ymm3
637 ; AVX512-NEXT: vpxor %ymm2, %ymm1, %ymm2
638 ; AVX512-NEXT: vpcmpgtq %ymm3, %ymm2, %ymm2
639 ; AVX512-NEXT: vpcmpeqd %ymm3, %ymm3, %ymm3
640 ; AVX512-NEXT: vpxor %ymm3, %ymm2, %ymm2
641 ; AVX512-NEXT: vblendvpd %ymm2, %ymm0, %ymm1, %ymm0
642 ; AVX512-NEXT: retq
651 ; SSE2-NEXT: movdqa {{.*#+}} xmm3 = [2147483648,2147483648,2147483648,2147483648]
652 ; SSE2-NEXT: movdqa %xmm0, %xmm2
653 ; SSE2-NEXT: pxor %xmm3, %xmm2
654 ; SSE2-NEXT: pxor %xmm1, %xmm3
655 ; SSE2-NEXT: pcmpgtd %xmm2, %xmm3
656 ; SSE2-NEXT: pcmpeqd %xmm2, %xmm2
657 ; SSE2-NEXT: pxor %xmm3, %xmm2
658 ; SSE2-NEXT: pandn %xmm0, %xmm3
659 ; SSE2-NEXT: pandn %xmm1, %xmm2
660 ; SSE2-NEXT: por %xmm3, %xmm2
661 ; SSE2-NEXT: movdqa %xmm2, %xmm0
662 ; SSE2-NEXT: retq
666 ; SSE41-NEXT: pmaxud %xmm1, %xmm0
667 ; SSE41-NEXT: retq
671 ; SSE42-NEXT: pmaxud %xmm1, %xmm0
672 ; SSE42-NEXT: retq
676 ; AVX-NEXT: vpmaxud %xmm1, %xmm0, %xmm0
677 ; AVX-NEXT: retq
686 ; SSE2-NEXT: movdqa {{.*#+}} xmm6 = [2147483648,2147483648,2147483648,2147483648]
687 ; SSE2-NEXT: movdqa %xmm1, %xmm4
688 ; SSE2-NEXT: pxor %xmm6, %xmm4
689 ; SSE2-NEXT: movdqa %xmm3, %xmm7
690 ; SSE2-NEXT: pxor %xmm6, %xmm7
691 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm7
692 ; SSE2-NEXT: pcmpeqd %xmm4, %xmm4
693 ; SSE2-NEXT: movdqa %xmm7, %xmm5
694 ; SSE2-NEXT: pxor %xmm4, %xmm5
695 ; SSE2-NEXT: movdqa %xmm0, %xmm8
696 ; SSE2-NEXT: pxor %xmm6, %xmm8
697 ; SSE2-NEXT: pxor %xmm2, %xmm6
698 ; SSE2-NEXT: pcmpgtd %xmm8, %xmm6
699 ; SSE2-NEXT: pxor %xmm6, %xmm4
700 ; SSE2-NEXT: pandn %xmm0, %xmm6
701 ; SSE2-NEXT: pandn %xmm2, %xmm4
702 ; SSE2-NEXT: por %xmm6, %xmm4
703 ; SSE2-NEXT: pandn %xmm1, %xmm7
704 ; SSE2-NEXT: pandn %xmm3, %xmm5
705 ; SSE2-NEXT: por %xmm7, %xmm5
706 ; SSE2-NEXT: movdqa %xmm4, %xmm0
707 ; SSE2-NEXT: movdqa %xmm5, %xmm1
708 ; SSE2-NEXT: retq
712 ; SSE41-NEXT: pmaxud %xmm2, %xmm0
713 ; SSE41-NEXT: pmaxud %xmm3, %xmm1
714 ; SSE41-NEXT: retq
718 ; SSE42-NEXT: pmaxud %xmm2, %xmm0
719 ; SSE42-NEXT: pmaxud %xmm3, %xmm1
720 ; SSE42-NEXT: retq
724 ; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2
725 ; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3
726 ; AVX1-NEXT: vpmaxud %xmm2, %xmm3, %xmm2
727 ; AVX1-NEXT: vpmaxud %xmm1, %xmm0, %xmm0
728 ; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0
729 ; AVX1-NEXT: retq
733 ; AVX2-NEXT: vpmaxud %ymm1, %ymm0, %ymm0
734 ; AVX2-NEXT: retq
738 ; AVX512-NEXT: vpmaxud %ymm1, %ymm0, %ymm0
739 ; AVX512-NEXT: retq
748 ; SSE2-NEXT: movdqa %xmm1, %xmm2
749 ; SSE2-NEXT: psubusw %xmm0, %xmm2
750 ; SSE2-NEXT: pxor %xmm3, %xmm3
751 ; SSE2-NEXT: pcmpeqw %xmm2, %xmm3
752 ; SSE2-NEXT: pand %xmm3, %xmm0
753 ; SSE2-NEXT: pandn %xmm1, %xmm3
754 ; SSE2-NEXT: por %xmm3, %xmm0
755 ; SSE2-NEXT: retq
759 ; SSE41-NEXT: pmaxuw %xmm1, %xmm0
760 ; SSE41-NEXT: retq
764 ; SSE42-NEXT: pmaxuw %xmm1, %xmm0
765 ; SSE42-NEXT: retq
769 ; AVX-NEXT: vpmaxuw %xmm1, %xmm0, %xmm0
770 ; AVX-NEXT: retq
779 ; SSE2-NEXT: movdqa %xmm3, %xmm4
780 ; SSE2-NEXT: psubusw %xmm1, %xmm4
781 ; SSE2-NEXT: pxor %xmm5, %xmm5
782 ; SSE2-NEXT: pcmpeqw %xmm5, %xmm4
783 ; SSE2-NEXT: movdqa %xmm2, %xmm6
784 ; SSE2-NEXT: psubusw %xmm0, %xmm6
785 ; SSE2-NEXT: pcmpeqw %xmm5, %xmm6
786 ; SSE2-NEXT: pand %xmm6, %xmm0
787 ; SSE2-NEXT: pandn %xmm2, %xmm6
788 ; SSE2-NEXT: por %xmm6, %xmm0
789 ; SSE2-NEXT: pand %xmm4, %xmm1
790 ; SSE2-NEXT: pandn %xmm3, %xmm4
791 ; SSE2-NEXT: por %xmm4, %xmm1
792 ; SSE2-NEXT: retq
796 ; SSE41-NEXT: pmaxuw %xmm2, %xmm0
797 ; SSE41-NEXT: pmaxuw %xmm3, %xmm1
798 ; SSE41-NEXT: retq
802 ; SSE42-NEXT: pmaxuw %xmm2, %xmm0
803 ; SSE42-NEXT: pmaxuw %xmm3, %xmm1
804 ; SSE42-NEXT: retq
808 ; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2
809 ; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3
810 ; AVX1-NEXT: vpmaxuw %xmm2, %xmm3, %xmm2
811 ; AVX1-NEXT: vpmaxuw %xmm1, %xmm0, %xmm0
812 ; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0
813 ; AVX1-NEXT: retq
817 ; AVX2-NEXT: vpmaxuw %ymm1, %ymm0, %ymm0
818 ; AVX2-NEXT: retq
822 ; AVX512-NEXT: vpmaxuw %ymm1, %ymm0, %ymm0
823 ; AVX512-NEXT: retq
832 ; SSE-NEXT: pmaxub %xmm1, %xmm0
833 ; SSE-NEXT: retq
837 ; AVX-NEXT: vpmaxub %xmm1, %xmm0, %xmm0
838 ; AVX-NEXT: retq
847 ; SSE-NEXT: pmaxub %xmm2, %xmm0
848 ; SSE-NEXT: pmaxub %xmm3, %xmm1
849 ; SSE-NEXT: retq
853 ; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2
854 ; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3
855 ; AVX1-NEXT: vpmaxub %xmm2, %xmm3, %xmm2
856 ; AVX1-NEXT: vpmaxub %xmm1, %xmm0, %xmm0
857 ; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0
858 ; AVX1-NEXT: retq
862 ; AVX2-NEXT: vpmaxub %ymm1, %ymm0, %ymm0
863 ; AVX2-NEXT: retq
867 ; AVX512-NEXT: vpmaxub %ymm1, %ymm0, %ymm0
868 ; AVX512-NEXT: retq
881 ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,2147483648,2147483648,2147483648]
882 ; SSE2-NEXT: movdqa %xmm0, %xmm3
883 ; SSE2-NEXT: pxor %xmm2, %xmm3
884 ; SSE2-NEXT: pxor %xmm1, %xmm2
885 ; SSE2-NEXT: movdqa %xmm2, %xmm4
886 ; SSE2-NEXT: pcmpgtd %xmm3, %xmm4
887 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2]
888 ; SSE2-NEXT: pcmpeqd %xmm3, %xmm2
889 ; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3]
890 ; SSE2-NEXT: pand %xmm5, %xmm2
891 ; SSE2-NEXT: pshufd {{.*#+}} xmm3 = xmm4[1,1,3,3]
892 ; SSE2-NEXT: por %xmm2, %xmm3
893 ; SSE2-NEXT: pand %xmm3, %xmm0
894 ; SSE2-NEXT: pandn %xmm1, %xmm3
895 ; SSE2-NEXT: por %xmm3, %xmm0
896 ; SSE2-NEXT: retq
900 ; SSE41-NEXT: movdqa %xmm0, %xmm2
901 ; SSE41-NEXT: movdqa {{.*#+}} xmm0 = [2147483648,2147483648,2147483648,2147483648]
902 ; SSE41-NEXT: movdqa %xmm2, %xmm3
903 ; SSE41-NEXT: pxor %xmm0, %xmm3
904 ; SSE41-NEXT: pxor %xmm1, %xmm0
905 ; SSE41-NEXT: movdqa %xmm0, %xmm4
906 ; SSE41-NEXT: pcmpgtd %xmm3, %xmm4
907 ; SSE41-NEXT: pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2]
908 ; SSE41-NEXT: pcmpeqd %xmm3, %xmm0
909 ; SSE41-NEXT: pshufd {{.*#+}} xmm3 = xmm0[1,1,3,3]
910 ; SSE41-NEXT: pand %xmm5, %xmm3
911 ; SSE41-NEXT: pshufd {{.*#+}} xmm0 = xmm4[1,1,3,3]
912 ; SSE41-NEXT: por %xmm3, %xmm0
913 ; SSE41-NEXT: blendvpd %xmm2, %xmm1
914 ; SSE41-NEXT: movapd %xmm1, %xmm0
915 ; SSE41-NEXT: retq
919 ; SSE42-NEXT: movdqa %xmm0, %xmm2
920 ; SSE42-NEXT: movdqa {{.*#+}} xmm0 = [9223372036854775808,9223372036854775808]
921 ; SSE42-NEXT: movdqa %xmm2, %xmm3
922 ; SSE42-NEXT: pxor %xmm0, %xmm3
923 ; SSE42-NEXT: pxor %xmm1, %xmm0
924 ; SSE42-NEXT: pcmpgtq %xmm3, %xmm0
925 ; SSE42-NEXT: blendvpd %xmm2, %xmm1
926 ; SSE42-NEXT: movapd %xmm1, %xmm0
927 ; SSE42-NEXT: retq
931 ; AVX-NEXT: vmovdqa {{.*#+}} xmm2 = [9223372036854775808,9223372036854775808]
932 ; AVX-NEXT: vpxor %xmm2, %xmm0, %xmm3
933 ; AVX-NEXT: vpxor %xmm2, %xmm1, %xmm2
934 ; AVX-NEXT: vpcmpgtq %xmm3, %xmm2, %xmm2
935 ; AVX-NEXT: vblendvpd %xmm2, %xmm0, %xmm1, %xmm0
936 ; AVX-NEXT: retq
945 ; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [2147483648,2147483648,2147483648,2147483648]
946 ; SSE2-NEXT: movdqa %xmm1, %xmm5
947 ; SSE2-NEXT: pxor %xmm4, %xmm5
948 ; SSE2-NEXT: movdqa %xmm3, %xmm6
949 ; SSE2-NEXT: pxor %xmm4, %xmm6
950 ; SSE2-NEXT: movdqa %xmm6, %xmm7
951 ; SSE2-NEXT: pcmpgtd %xmm5, %xmm7
952 ; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2]
953 ; SSE2-NEXT: pcmpeqd %xmm5, %xmm6
954 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm6[1,1,3,3]
955 ; SSE2-NEXT: pand %xmm8, %xmm5
956 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm7[1,1,3,3]
957 ; SSE2-NEXT: por %xmm5, %xmm6
958 ; SSE2-NEXT: movdqa %xmm0, %xmm5
959 ; SSE2-NEXT: pxor %xmm4, %xmm5
960 ; SSE2-NEXT: pxor %xmm2, %xmm4
961 ; SSE2-NEXT: movdqa %xmm4, %xmm7
962 ; SSE2-NEXT: pcmpgtd %xmm5, %xmm7
963 ; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2]
964 ; SSE2-NEXT: pcmpeqd %xmm5, %xmm4
965 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm4[1,1,3,3]
966 NEXT: pand %xmm8, %xmm4
967 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm7[1,1,3,3]
968 ; SSE2-NEXT: por %xmm4, %xmm5
969 ; SSE2-NEXT: pand %xmm5, %xmm0
970 ; SSE2-NEXT: pandn %xmm2, %xmm5
971 ; SSE2-NEXT: por %xmm5, %xmm0
972 ; SSE2-NEXT: pand %xmm6, %xmm1
973 ; SSE2-NEXT: pandn %xmm3, %xmm6
974 ; SSE2-NEXT: por %xmm6, %xmm1
975 ; SSE2-NEXT: retq
979 ; SSE41-NEXT: movdqa %xmm0, %xmm8
980 ; SSE41-NEXT: movdqa {{.*#+}} xmm0 = [2147483648,2147483648,2147483648,2147483648]
981 ; SSE41-NEXT: movdqa %xmm1, %xmm5
982 ; SSE41-NEXT: pxor %xmm0, %xmm5
983 ; SSE41-NEXT: movdqa %xmm3, %xmm6
984 ; SSE41-NEXT: pxor %xmm0, %xmm6
985 ; SSE41-NEXT: movdqa %xmm6, %xmm7
986 ; SSE41-NEXT: pcmpgtd %xmm5, %xmm7
987 ; SSE41-NEXT: pshufd {{.*#+}} xmm4 = xmm7[0,0,2,2]
988 ; SSE41-NEXT: pcmpeqd %xmm5, %xmm6
989 ; SSE41-NEXT: pshufd {{.*#+}} xmm6 = xmm6[1,1,3,3]
990 ; SSE41-NEXT: pand %xmm4, %xmm6
991 ; SSE41-NEXT: pshufd {{.*#+}} xmm5 = xmm7[1,1,3,3]
992 ; SSE41-NEXT: por %xmm6, %xmm5
993 ; SSE41-NEXT: movdqa %xmm8, %xmm4
994 ; SSE41-NEXT: pxor %xmm0, %xmm4
995 ; SSE41-NEXT: pxor %xmm2, %xmm0
996 ; SSE41-NEXT: movdqa %xmm0, %xmm6
997 ; SSE41-NEXT: pcmpgtd %xmm4, %xmm6
998 ; SSE41-NEXT: pshufd {{.*#+}} xmm7 = xmm6[0,0,2,2]
999 ; SSE41-NEXT: pcmpeqd %xmm4, %xmm0
1000 ; SSE41-NEXT: pshufd {{.*#+}} xmm4 = xmm0[1,1,3,3]
1001 ; SSE41-NEXT: pand %xmm7, %xmm4
1002 ; SSE41-NEXT: pshufd {{.*#+}} xmm0 = xmm6[1,1,3,3]
1003 ; SSE41-NEXT: por %xmm4, %xmm0
1004 ; SSE41-NEXT: blendvpd %xmm8, %xmm2
1005 ; SSE41-NEXT: movdqa %xmm5, %xmm0
1006 ; SSE41-NEXT: blendvpd %xmm1, %xmm3
1007 ; SSE41-NEXT: movapd %xmm2, %xmm0
1008 ; SSE41-NEXT: movapd %xmm3, %xmm1
1009 ; SSE41-NEXT: retq
1013 ; SSE42-NEXT: movdqa %xmm0, %xmm4
1014 ; SSE42-NEXT: movdqa {{.*#+}} xmm0 = [9223372036854775808,9223372036854775808]
1015 ; SSE42-NEXT: movdqa %xmm1, %xmm6
1016 ; SSE42-NEXT: pxor %xmm0, %xmm6
1017 ; SSE42-NEXT: movdqa %xmm3, %xmm5
1018 ; SSE42-NEXT: pxor %xmm0, %xmm5
1019 ; SSE42-NEXT: pcmpgtq %xmm6, %xmm5
1020 ; SSE42-NEXT: movdqa %xmm4, %xmm6
1021 ; SSE42-NEXT: pxor %xmm0, %xmm6
1022 ; SSE42-NEXT: pxor %xmm2, %xmm0
1023 ; SSE42-NEXT: pcmpgtq %xmm6, %xmm0
1024 ; SSE42-NEXT: blendvpd %xmm4, %xmm2
1025 ; SSE42-NEXT: movdqa %xmm5, %xmm0
1026 ; SSE42-NEXT: blendvpd %xmm1, %xmm3
1027 ; SSE42-NEXT: movapd %xmm2, %xmm0
1028 ; SSE42-NEXT: movapd %xmm3, %xmm1
1029 ; SSE42-NEXT: retq
1033 ; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm2
1034 ; AVX1-NEXT: vmovaps {{.*#+}} xmm3 = [9223372036854775808,9223372036854775808]
1035 ; AVX1-NEXT: vxorps %xmm3, %xmm2, %xmm2
1036 ; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4
1037 ; AVX1-NEXT: vxorps %xmm3, %xmm4, %xmm4
1038 ; AVX1-NEXT: vpcmpgtq %xmm2, %xmm4, %xmm2
1039 ; AVX1-NEXT: vxorps %xmm3, %xmm0, %xmm4
1040 ; AVX1-NEXT: vxorps %xmm3, %xmm1, %xmm3
1041 ; AVX1-NEXT: vpcmpgtq %xmm4, %xmm3, %xmm3
1042 ; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm3, %ymm2
1043 ; AVX1-NEXT: vblendvpd %ymm2, %ymm0, %ymm1, %ymm0
1044 ; AVX1-NEXT: retq
1048 ; AVX2-NEXT: vpbroadcastq {{.*}}(%rip), %ymm2
1049 ; AVX2-NEXT: vpxor %ymm2, %ymm0, %ymm3
1050 ; AVX2-NEXT: vpxor %ymm2, %ymm1, %ymm2
1051 ; AVX2-NEXT: vpcmpgtq %ymm3, %ymm2, %ymm2
1052 ; AVX2-NEXT: vblendvpd %ymm2, %ymm0, %ymm1, %ymm0
1053 ; AVX2-NEXT: retq
1057 ; AVX512-NEXT: vpbroadcastq {{.*}}(%rip), %ymm2
1058 ; AVX512-NEXT: vpxor %ymm2, %ymm0, %ymm3
1059 ; AVX512-NEXT: vpxor %ymm2, %ymm1, %ymm2
1060 ; AVX512-NEXT: vpcmpgtq %ymm3, %ymm2, %ymm2
1061 ; AVX512-NEXT: vblendvpd %ymm2, %ymm0, %ymm1, %ymm0
1062 ; AVX512-NEXT: retq
1071 ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,2147483648,2147483648,2147483648]
1072 ; SSE2-NEXT: movdqa %xmm0, %xmm3
1073 ; SSE2-NEXT: pxor %xmm2, %xmm3
1074 ; SSE2-NEXT: pxor %xmm1, %xmm2
1075 ; SSE2-NEXT: pcmpgtd %xmm3, %xmm2
1076 ; SSE2-NEXT: pand %xmm2, %xmm0
1077 ; SSE2-NEXT: pandn %xmm1, %xmm2
1078 ; SSE2-NEXT: por %xmm2, %xmm0
1079 ; SSE2-NEXT: retq
1083 ; SSE41-NEXT: pminud %xmm1, %xmm0
1084 ; SSE41-NEXT: retq
1088 ; SSE42-NEXT: pminud %xmm1, %xmm0
1089 ; SSE42-NEXT: retq
1093 ; AVX-NEXT: vpminud %xmm1, %xmm0, %xmm0
1094 ; AVX-NEXT: retq
1103 ; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [2147483648,2147483648,2147483648,2147483648]
1104 ; SSE2-NEXT: movdqa %xmm1, %xmm5
1105 ; SSE2-NEXT: pxor %xmm4, %xmm5
1106 ; SSE2-NEXT: movdqa %xmm3, %xmm6
1107 ; SSE2-NEXT: pxor %xmm4, %xmm6
1108 ; SSE2-NEXT: pcmpgtd %xmm5, %xmm6
1109 ; SSE2-NEXT: movdqa %xmm0, %xmm5
1110 ; SSE2-NEXT: pxor %xmm4, %xmm5
1111 ; SSE2-NEXT: pxor %xmm2, %xmm4
1112 ; SSE2-NEXT: pcmpgtd %xmm5, %xmm4
1113 ; SSE2-NEXT: pand %xmm4, %xmm0
1114 ; SSE2-NEXT: pandn %xmm2, %xmm4
1115 ; SSE2-NEXT: por %xmm4, %xmm0
1116 ; SSE2-NEXT: pand %xmm6, %xmm1
1117 ; SSE2-NEXT: pandn %xmm3, %xmm6
1118 ; SSE2-NEXT: por %xmm6, %xmm1
1119 ; SSE2-NEXT: retq
1123 ; SSE41-NEXT: pminud %xmm2, %xmm0
1124 ; SSE41-NEXT: pminud %xmm3, %xmm1
1125 ; SSE41-NEXT: retq
1129 ; SSE42-NEXT: pminud %xmm2, %xmm0
1130 ; SSE42-NEXT: pminud %xmm3, %xmm1
1131 ; SSE42-NEXT: retq
1135 ; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2
1136 ; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3
1137 ; AVX1-NEXT: vpminud %xmm2, %xmm3, %xmm2
1138 ; AVX1-NEXT: vpminud %xmm1, %xmm0, %xmm0
1139 ; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0
1140 ; AVX1-NEXT: retq
1144 ; AVX2-NEXT: vpminud %ymm1, %ymm0, %ymm0
1145 ; AVX2-NEXT: retq
1149 ; AVX512-NEXT: vpminud %ymm1, %ymm0, %ymm0
1150 ; AVX512-NEXT: retq
1159 ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [32768,32768,32768,32768,32768,32768,32768,32768]
1160 ; SSE2-NEXT: movdqa %xmm0, %xmm3
1161 ; SSE2-NEXT: pxor %xmm2, %xmm3
1162 ; SSE2-NEXT: pxor %xmm1, %xmm2
1163 ; SSE2-NEXT: pcmpgtw %xmm3, %xmm2
1164 ; SSE2-NEXT: pand %xmm2, %xmm0
1165 ; SSE2-NEXT: pandn %xmm1, %xmm2
1166 ; SSE2-NEXT: por %xmm2, %xmm0
1167 ; SSE2-NEXT: retq
1171 ; SSE41-NEXT: pminuw %xmm1, %xmm0
1172 ; SSE41-NEXT: retq
1176 ; SSE42-NEXT: pminuw %xmm1, %xmm0
1177 ; SSE42-NEXT: retq
1181 ; AVX-NEXT: vpminuw %xmm1, %xmm0, %xmm0
1182 ; AVX-NEXT: retq
1191 ; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [32768,32768,32768,32768,32768,32768,32768,32768]
1192 ; SSE2-NEXT: movdqa %xmm1, %xmm5
1193 ; SSE2-NEXT: pxor %xmm4, %xmm5
1194 ; SSE2-NEXT: movdqa %xmm3, %xmm6
1195 ; SSE2-NEXT: pxor %xmm4, %xmm6
1196 ; SSE2-NEXT: pcmpgtw %xmm5, %xmm6
1197 ; SSE2-NEXT: movdqa %xmm0, %xmm5
1198 ; SSE2-NEXT: pxor %xmm4, %xmm5
1199 ; SSE2-NEXT: pxor %xmm2, %xmm4
1200 ; SSE2-NEXT: pcmpgtw %xmm5, %xmm4
1201 ; SSE2-NEXT: pand %xmm4, %xmm0
1202 ; SSE2-NEXT: pandn %xmm2, %xmm4
1203 ; SSE2-NEXT: por %xmm4, %xmm0
1204 ; SSE2-NEXT: pand %xmm6, %xmm1
1205 ; SSE2-NEXT: pandn %xmm3, %xmm6
1206 ; SSE2-NEXT: por %xmm6, %xmm1
1207 ; SSE2-NEXT: retq
1211 ; SSE41-NEXT: pminuw %xmm2, %xmm0
1212 ; SSE41-NEXT: pminuw %xmm3, %xmm1
1213 ; SSE41-NEXT: retq
1217 ; SSE42-NEXT: pminuw %xmm2, %xmm0
1218 ; SSE42-NEXT: pminuw %xmm3, %xmm1
1219 ; SSE42-NEXT: retq
1223 ; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2
1224 ; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3
1225 ; AVX1-NEXT: vpminuw %xmm2, %xmm3, %xmm2
1226 ; AVX1-NEXT: vpminuw %xmm1, %xmm0, %xmm0
1227 ; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0
1228 ; AVX1-NEXT: retq
1232 ; AVX2-NEXT: vpminuw %ymm1, %ymm0, %ymm0
1233 ; AVX2-NEXT: retq
1237 ; AVX512-NEXT: vpminuw %ymm1, %ymm0, %ymm0
1238 ; AVX512-NEXT: retq
1247 ; SSE-NEXT: pminub %xmm1, %xmm0
1248 ; SSE-NEXT: retq
1252 ; AVX-NEXT: vpminub %xmm1, %xmm0, %xmm0
1253 ; AVX-NEXT: retq
1262 ; SSE-NEXT: pminub %xmm2, %xmm0
1263 ; SSE-NEXT: pminub %xmm3, %xmm1
1264 ; SSE-NEXT: retq
1268 ; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2
1269 ; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3
1270 ; AVX1-NEXT: vpminub %xmm2, %xmm3, %xmm2
1271 ; AVX1-NEXT: vpminub %xmm1, %xmm0, %xmm0
1272 ; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0
1273 ; AVX1-NEXT: retq
1277 ; AVX2-NEXT: vpminub %ymm1, %ymm0, %ymm0
1278 ; AVX2-NEXT: retq
1282 ; AVX512-NEXT: vpminub %ymm1, %ymm0, %ymm0
1283 ; AVX512-NEXT: retq
1296 ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [2147483648,2147483648,2147483648,2147483648]
1297 ; SSE2-NEXT: movdqa %xmm1, %xmm3
1298 ; SSE2-NEXT: pxor %xmm2, %xmm3
1299 ; SSE2-NEXT: pxor %xmm0, %xmm2
1300 ; SSE2-NEXT: movdqa %xmm2, %xmm4
1301 ; SSE2-NEXT: pcmpgtd %xmm3, %xmm4
1302 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2]
1303 ; SSE2-NEXT: pcmpeqd %xmm3, %xmm2
1304 ; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3]
1305 ; SSE2-NEXT: pand %xmm5, %xmm2
1306 ; SSE2-NEXT: pshufd {{.*#+}} xmm3 = xmm4[1,1,3,3]
1307 ; SSE2-NEXT: por %xmm2, %xmm3
1308 ; SSE2-NEXT: pcmpeqd %xmm2, %xmm2
1309 ; SSE2-NEXT: pxor %xmm3, %xmm2
1310 ; SSE2-NEXT: pandn %xmm0, %xmm3
1311 ; SSE2-NEXT: pandn %xmm1, %xmm2
1312 ; SSE2-NEXT: por %xmm3, %xmm2
1313 ; SSE2-NEXT: movdqa %xmm2, %xmm0
1314 ; SSE2-NEXT: retq
1318 ; SSE41-NEXT: movdqa %xmm0, %xmm2
1319 ; SSE41-NEXT: movdqa {{.*#+}} xmm0 = [2147483648,2147483648,2147483648,2147483648]
1320 ; SSE41-NEXT: movdqa %xmm1, %xmm3
1321 ; SSE41-NEXT: pxor %xmm0, %xmm3
1322 ; SSE41-NEXT: pxor %xmm2, %xmm0
1323 ; SSE41-NEXT: movdqa %xmm0, %xmm4
1324 ; SSE41-NEXT: pcmpgtd %xmm3, %xmm4
1325 ; SSE41-NEXT: pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2]
1326 ; SSE41-NEXT: pcmpeqd %xmm3, %xmm0
1327 ; SSE41-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,3,3]
1328 ; SSE41-NEXT: pand %xmm5, %xmm0
1329 ; SSE41-NEXT: pshufd {{.*#+}} xmm3 = xmm4[1,1,3,3]
1330 ; SSE41-NEXT: por %xmm0, %xmm3
1331 ; SSE41-NEXT: pcmpeqd %xmm0, %xmm0
1332 ; SSE41-NEXT: pxor %xmm3, %xmm0
1333 ; SSE41-NEXT: blendvpd %xmm2, %xmm1
1334 ; SSE41-NEXT: movapd %xmm1, %xmm0
1335 ; SSE41-NEXT: retq
1339 ; SSE42-NEXT: movdqa %xmm0, %xmm2
1340 ; SSE42-NEXT: movdqa {{.*#+}} xmm3 = [9223372036854775808,9223372036854775808]
1341 ; SSE42-NEXT: movdqa %xmm1, %xmm0
1342 ; SSE42-NEXT: pxor %xmm3, %xmm0
1343 ; SSE42-NEXT: pxor %xmm2, %xmm3
1344 ; SSE42-NEXT: pcmpgtq %xmm0, %xmm3
1345 ; SSE42-NEXT: pcmpeqd %xmm0, %xmm0
1346 ; SSE42-NEXT: pxor %xmm3, %xmm0
1347 ; SSE42-NEXT: blendvpd %xmm2, %xmm1
1348 ; SSE42-NEXT: movapd %xmm1, %xmm0
1349 ; SSE42-NEXT: retq
1353 ; AVX-NEXT: vmovdqa {{.*#+}} xmm2 = [9223372036854775808,9223372036854775808]
1354 ; AVX-NEXT: vpxor %xmm2, %xmm1, %xmm3
1355 ; AVX-NEXT: vpxor %xmm2, %xmm0, %xmm2
1356 ; AVX-NEXT: vpcmpgtq %xmm3, %xmm2, %xmm2
1357 ; AVX-NEXT: vpcmpeqd %xmm3, %xmm3, %xmm3
1358 ; AVX-NEXT: vpxor %xmm3, %xmm2, %xmm2
1359 ; AVX-NEXT: vblendvpd %xmm2, %xmm0, %xmm1, %xmm0
1360 ; AVX-NEXT: retq
1369 ; SSE2-NEXT: movdqa {{.*#+}} xmm7 = [2147483648,2147483648,2147483648,2147483648]
1370 ; SSE2-NEXT: movdqa %xmm3, %xmm4
1371 ; SSE2-NEXT: pxor %xmm7, %xmm4
1372 ; SSE2-NEXT: movdqa %xmm1, %xmm5
1373 ; SSE2-NEXT: pxor %xmm7, %xmm5
1374 ; SSE2-NEXT: movdqa %xmm5, %xmm6
1375 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm6
1376 ; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm6[0,0,2,2]
1377 ; SSE2-NEXT: pcmpeqd %xmm4, %xmm5
1378 ; SSE2-NEXT: pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3]
1379 ; SSE2-NEXT: pand %xmm8, %xmm4
1380 ; SSE2-NEXT: pshufd {{.*#+}} xmm8 = xmm6[1,1,3,3]
1381 ; SSE2-NEXT: por %xmm4, %xmm8
1382 ; SSE2-NEXT: pcmpeqd %xmm4, %xmm4
1383 ; SSE2-NEXT: movdqa %xmm8, %xmm9
1384 ; SSE2-NEXT: pxor %xmm4, %xmm9
1385 ; SSE2-NEXT: movdqa %xmm2, %xmm6
1386 ; SSE2-NEXT: pxor %xmm7, %xmm6
1387 ; SSE2-NEXT: pxor %xmm0, %xmm7
1388 ; SSE2-NEXT: movdqa %xmm7, %xmm5
1389 ; SSE2-NEXT: pcmpgtd %xmm6, %xmm5
1390 ; SSE2-NEXT: pshufd {{.*#+}} xmm10 = xmm5[0,0,2,2]
1391 ; SSE2-NEXT: pcmpeqd %xmm6, %xmm7
1392 ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm7[1,1,3,3]
1393 ; SSE2-NEXT: pand %xmm10, %xmm6
1394 ; SSE2-NEXT: pshufd {{.*#+}} xmm5 = xmm5[1,1,3,3]
1395 ; SSE2-NEXT: por %xmm6, %xmm5
1396 ; SSE2-NEXT: pxor %xmm5, %xmm4
1397 ; SSE2-NEXT: pandn %xmm0, %xmm5
1398 ; SSE2-NEXT: pandn %xmm2, %xmm4
1399 ; SSE2-NEXT: por %xmm5, %xmm4
1400 ; SSE2-NEXT: pandn %xmm1, %xmm8
1401 ; SSE2-NEXT: pandn %xmm3, %xmm9
1402 ; SSE2-NEXT: por %xmm8, %xmm9
1403 ; SSE2-NEXT: movdqa %xmm4, %xmm0
1404 ; SSE2-NEXT: movdqa %xmm9, %xmm1
1405 ; SSE2-NEXT: retq
1409 ; SSE41-NEXT: movdqa %xmm0, %xmm8
1410 ; SSE41-NEXT: movdqa {{.*#+}} xmm0 = [2147483648,2147483648,2147483648,2147483648]
1411 ; SSE41-NEXT: movdqa %xmm3, %xmm5
1412 ; SSE41-NEXT: pxor %xmm0, %xmm5
1413 ; SSE41-NEXT: movdqa %xmm1, %xmm6
1414 ; SSE41-NEXT: pxor %xmm0, %xmm6
1415 ; SSE41-NEXT: movdqa %xmm6, %xmm7
1416 ; SSE41-NEXT: pcmpgtd %xmm5, %xmm7
1417 ; SSE41-NEXT: pshufd {{.*#+}} xmm4 = xmm7[0,0,2,2]
1418 ; SSE41-NEXT: pcmpeqd %xmm5, %xmm6
1419 ; SSE41-NEXT: pshufd {{.*#+}} xmm6 = xmm6[1,1,3,3]
1420 ; SSE41-NEXT: pand %xmm4, %xmm6
1421 ; SSE41-NEXT: pshufd {{.*#+}} xmm5 = xmm7[1,1,3,3]
1422 ; SSE41-NEXT: por %xmm6, %xmm5
1423 ; SSE41-NEXT: pcmpeqd %xmm9, %xmm9
1424 ; SSE41-NEXT: pxor %xmm9, %xmm5
1425 ; SSE41-NEXT: movdqa %xmm2, %xmm6
1426 ; SSE41-NEXT: pxor %xmm0, %xmm6
1427 ; SSE41-NEXT: pxor %xmm8, %xmm0
1428 ; SSE41-NEXT: movdqa %xmm0, %xmm7
1429 ; SSE41-NEXT: pcmpgtd %xmm6, %xmm7
1430 ; SSE41-NEXT: pshufd {{.*#+}} xmm4 = xmm7[0,0,2,2]
1431 ; SSE41-NEXT: pcmpeqd %xmm6, %xmm0
1432 ; SSE41-NEXT: pshufd {{.*#+}} xmm6 = xmm0[1,1,3,3]
1433 ; SSE41-NEXT: pand %xmm4, %xmm6
1434 ; SSE41-NEXT: pshufd {{.*#+}} xmm0 = xmm7[1,1,3,3]
1435 ; SSE41-NEXT: por %xmm6, %xmm0
1436 ; SSE41-NEXT: pxor %xmm9, %xmm0
1437 ; SSE41-NEXT: blendvpd %xmm8, %xmm2
1438 ; SSE41-NEXT: movdqa %xmm5, %xmm0
1439 ; SSE41-NEXT: blendvpd %xmm1, %xmm3
1440 ; SSE41-NEXT: movapd %xmm2, %xmm0
1441 ; SSE41-NEXT: movapd %xmm3, %xmm1
1442 ; SSE41-NEXT: retq
1446 ; SSE42-NEXT: movdqa %xmm0, %xmm4
1447 ; SSE42-NEXT: movdqa {{.*#+}} xmm0 = [9223372036854775808,9223372036854775808]
1448 ; SSE42-NEXT: movdqa %xmm3, %xmm6
1449 ; SSE42-NEXT: pxor %xmm0, %xmm6
1450 ; SSE42-NEXT: movdqa %xmm1, %xmm5
1451 ; SSE42-NEXT: pxor %xmm0, %xmm5
1452 ; SSE42-NEXT: pcmpgtq %xmm6, %xmm5
1453 ; SSE42-NEXT: pcmpeqd %xmm6, %xmm6
1454 ; SSE42-NEXT: pxor %xmm6, %xmm5
1455 ; SSE42-NEXT: movdqa %xmm2, %xmm7
1456 ; SSE42-NEXT
1457 ; SSE42-NEXT: pxor %xmm4, %xmm0
1458 ; SSE42-NEXT: pcmpgtq %xmm7, %xmm0
1459 ; SSE42-NEXT: pxor %xmm6, %xmm0
1460 ; SSE42-NEXT: blendvpd %xmm4, %xmm2
1461 ; SSE42-NEXT: movdqa %xmm5, %xmm0
1462 ; SSE42-NEXT: blendvpd %xmm1, %xmm3
1463 ; SSE42-NEXT: movapd %xmm2, %xmm0
1464 ; SSE42-NEXT: movapd %xmm3, %xmm1
1465 ; SSE42-NEXT: retq
1469 ; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2
1470 ; AVX1-NEXT: vmovaps {{.*#+}} xmm3 = [9223372036854775808,9223372036854775808]
1471 ; AVX1-NEXT: vxorps %xmm3, %xmm2, %xmm2
1472 ; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm4
1473 ; AVX1-NEXT: vxorps %xmm3, %xmm4, %xmm4
1474 ; AVX1-NEXT: vpcmpgtq %xmm2, %xmm4, %xmm2
1475 ; AVX1-NEXT: vpcmpeqd %xmm4, %xmm4, %xmm4
1476 ; AVX1-NEXT: vpxor %xmm4, %xmm2, %xmm2
1477 ; AVX1-NEXT: vxorps %xmm3, %xmm1, %xmm5
1478 ; AVX1-NEXT: vxorps %xmm3, %xmm0, %xmm3
1479 ; AVX1-NEXT: vpcmpgtq %xmm5, %xmm3, %xmm3
1480 ; AVX1-NEXT: vpxor %xmm4, %xmm3, %xmm3
1481 ; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm3, %ymm2
1482 ; AVX1-NEXT: vblendvpd %ymm2, %ymm0, %ymm1, %ymm0
1483 ; AVX1-NEXT: retq
1487 ; AVX2-NEXT: vpbroadcastq {{.*}}(%rip), %ymm2
1488 ; AVX2-NEXT: vpxor %ymm2, %ymm1, %ymm3
1489 ; AVX2-NEXT: vpxor %ymm2, %ymm0, %ymm2
1490 ; AVX2-NEXT: vpcmpgtq %ymm3, %ymm2, %ymm2
1491 ; AVX2-NEXT: vpcmpeqd %ymm3, %ymm3, %ymm3
1492 ; AVX2-NEXT: vpxor %ymm3, %ymm2, %ymm2
1493 ; AVX2-NEXT: vblendvpd %ymm2, %ymm0, %ymm1, %ymm0
1494 ; AVX2-NEXT: retq
1498 ; AVX512-NEXT: vpbroadcastq {{.*}}(%rip), %ymm2
1499 ; AVX512-NEXT: vpxor %ymm2, %ymm1, %ymm3
1500 ; AVX512-NEXT: vpxor %ymm2, %ymm0, %ymm2
1501 ; AVX512-NEXT: vpcmpgtq %ymm3, %ymm2, %ymm2
1502 ; AVX512-NEXT: vpcmpeqd %ymm3, %ymm3, %ymm3
1503 ; AVX512-NEXT: vpxor %ymm3, %ymm2, %ymm2
1504 ; AVX512-NEXT: vblendvpd %ymm2, %ymm0, %ymm1, %ymm0
1505 ; AVX512-NEXT: retq
1514 ; SSE2-NEXT: movdqa {{.*#+}} xmm3 = [2147483648,2147483648,2147483648,2147483648]
1515 ; SSE2-NEXT: movdqa %xmm1, %xmm2
1516 ; SSE2-NEXT: pxor %xmm3, %xmm2
1517 ; SSE2-NEXT: pxor %xmm0, %xmm3
1518 ; SSE2-NEXT: pcmpgtd %xmm2, %xmm3
1519 ; SSE2-NEXT: pcmpeqd %xmm2, %xmm2
1520 ; SSE2-NEXT: pxor %xmm3, %xmm2
1521 ; SSE2-NEXT: pandn %xmm0, %xmm3
1522 ; SSE2-NEXT: pandn %xmm1, %xmm2
1523 ; SSE2-NEXT: por %xmm3, %xmm2
1524 ; SSE2-NEXT: movdqa %xmm2, %xmm0
1525 ; SSE2-NEXT: retq
1529 ; SSE41-NEXT: pminud %xmm1, %xmm0
1530 ; SSE41-NEXT: retq
1534 ; SSE42-NEXT: pminud %xmm1, %xmm0
1535 ; SSE42-NEXT: retq
1539 ; AVX-NEXT: vpminud %xmm1, %xmm0, %xmm0
1540 ; AVX-NEXT: retq
1549 ; SSE2-NEXT: movdqa {{.*#+}} xmm6 = [2147483648,2147483648,2147483648,2147483648]
1550 ; SSE2-NEXT: movdqa %xmm3, %xmm4
1551 ; SSE2-NEXT: pxor %xmm6, %xmm4
1552 ; SSE2-NEXT: movdqa %xmm1, %xmm7
1553 ; SSE2-NEXT: pxor %xmm6, %xmm7
1554 ; SSE2-NEXT: pcmpgtd %xmm4, %xmm7
1555 ; SSE2-NEXT: pcmpeqd %xmm4, %xmm4
1556 ; SSE2-NEXT: movdqa %xmm7, %xmm5
1557 ; SSE2-NEXT: pxor %xmm4, %xmm5
1558 ; SSE2-NEXT: movdqa %xmm2, %xmm8
1559 ; SSE2-NEXT: pxor %xmm6, %xmm8
1560 ; SSE2-NEXT: pxor %xmm0, %xmm6
1561 ; SSE2-NEXT: pcmpgtd %xmm8, %xmm6
1562 ; SSE2-NEXT: pxor %xmm6, %xmm4
1563 ; SSE2-NEXT: pandn %xmm0, %xmm6
1564 ; SSE2-NEXT: pandn %xmm2, %xmm4
1565 ; SSE2-NEXT: por %xmm6, %xmm4
1566 ; SSE2-NEXT: pandn %xmm1, %xmm7
1567 ; SSE2-NEXT: pandn %xmm3, %xmm5
1568 ; SSE2-NEXT: por %xmm7, %xmm5
1569 ; SSE2-NEXT: movdqa %xmm4, %xmm0
1570 ; SSE2-NEXT: movdqa %xmm5, %xmm1
1571 ; SSE2-NEXT: retq
1575 ; SSE41-NEXT: pminud %xmm2, %xmm0
1576 ; SSE41-NEXT: pminud %xmm3, %xmm1
1577 ; SSE41-NEXT: retq
1581 ; SSE42-NEXT: pminud %xmm2, %xmm0
1582 ; SSE42-NEXT: pminud %xmm3, %xmm1
1583 ; SSE42-NEXT: retq
1587 ; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2
1588 ; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3
1589 ; AVX1-NEXT: vpminud %xmm2, %xmm3, %xmm2
1590 ; AVX1-NEXT: vpminud %xmm1, %xmm0, %xmm0
1591 ; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0
1592 ; AVX1-NEXT: retq
1596 ; AVX2-NEXT: vpminud %ymm1, %ymm0, %ymm0
1597 ; AVX2-NEXT: retq
1601 ; AVX512-NEXT: vpminud %ymm1, %ymm0, %ymm0
1602 ; AVX512-NEXT: retq
1611 ; SSE2-NEXT: movdqa %xmm0, %xmm2
1612 ; SSE2-NEXT: psubusw %xmm1, %xmm2
1613 ; SSE2-NEXT: pxor %xmm3, %xmm3
1614 ; SSE2-NEXT: pcmpeqw %xmm2, %xmm3
1615 ; SSE2-NEXT: pand %xmm3, %xmm0
1616 ; SSE2-NEXT: pandn %xmm1, %xmm3
1617 ; SSE2-NEXT: por %xmm3, %xmm0
1618 ; SSE2-NEXT: retq
1622 ; SSE41-NEXT: pminuw %xmm1, %xmm0
1623 ; SSE41-NEXT: retq
1627 ; SSE42-NEXT: pminuw %xmm1, %xmm0
1628 ; SSE42-NEXT: retq
1632 ; AVX-NEXT: vpminuw %xmm1, %xmm0, %xmm0
1633 ; AVX-NEXT: retq
1642 ; SSE2-NEXT: movdqa %xmm1, %xmm4
1643 ; SSE2-NEXT: psubusw %xmm3, %xmm4
1644 ; SSE2-NEXT: pxor %xmm6, %xmm6
1645 ; SSE2-NEXT: pcmpeqw %xmm6, %xmm4
1646 ; SSE2-NEXT: movdqa %xmm0, %xmm5
1647 ; SSE2-NEXT: psubusw %xmm2, %xmm5
1648 ; SSE2-NEXT: pcmpeqw %xmm6, %xmm5
1649 ; SSE2-NEXT: pand %xmm5, %xmm0
1650 ; SSE2-NEXT: pandn %xmm2, %xmm5
1651 ; SSE2-NEXT: por %xmm0, %xmm5
1652 ; SSE2-NEXT: pand %xmm4, %xmm1
1653 ; SSE2-NEXT: pandn %xmm3, %xmm4
1654 ; SSE2-NEXT: por %xmm1, %xmm4
1655 ; SSE2-NEXT: movdqa %xmm5, %xmm0
1656 ; SSE2-NEXT: movdqa %xmm4, %xmm1
1657 ; SSE2-NEXT: retq
1661 ; SSE41-NEXT: pminuw %xmm2, %xmm0
1662 ; SSE41-NEXT: pminuw %xmm3, %xmm1
1663 ; SSE41-NEXT: retq
1667 ; SSE42-NEXT: pminuw %xmm2, %xmm0
1668 ; SSE42-NEXT: pminuw %xmm3, %xmm1
1669 ; SSE42-NEXT: retq
1673 ; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2
1674 ; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3
1675 ; AVX1-NEXT: vpminuw %xmm2, %xmm3, %xmm2
1676 ; AVX1-NEXT: vpminuw %xmm1, %xmm0, %xmm0
1677 ; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0
1678 ; AVX1-NEXT: retq
1682 ; AVX2-NEXT: vpminuw %ymm1, %ymm0, %ymm0
1683 ; AVX2-NEXT: retq
1687 ; AVX512-NEXT: vpminuw %ymm1, %ymm0, %ymm0
1688 ; AVX512-NEXT: retq
1697 ; SSE-NEXT: pminub %xmm1, %xmm0
1698 ; SSE-NEXT: retq
1702 ; AVX-NEXT: vpminub %xmm1, %xmm0, %xmm0
1703 ; AVX-NEXT: retq
1712 ; SSE-NEXT: pminub %xmm2, %xmm0
1713 ; SSE-NEXT: pminub %xmm3, %xmm1
1714 ; SSE-NEXT: retq
1718 ; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2
1719 ; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3
1720 ; AVX1-NEXT: vpminub %xmm2, %xmm3, %xmm2
1721 ; AVX1-NEXT: vpminub %xmm1, %xmm0, %xmm0
1722 ; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0
1723 ; AVX1-NEXT: retq
1727 ; AVX2-NEXT: vpminub %ymm1, %ymm0, %ymm0
1728 ; AVX2-NEXT: retq
1732 ; AVX512-NEXT: vpminub %ymm1, %ymm0, %ymm0
1733 ; AVX512-NEXT: retq
1746 ; SSE-NEXT: movaps {{.*#+}} xmm0 = [18446744073709551615,7]
1747 ; SSE-NEXT: retq
1751 ; AVX-NEXT: vmovaps {{.*#+}} xmm0 = [18446744073709551615,7]
1752 ; AVX-NEXT: retq
1763 ; SSE-NEXT: movaps {{.*#+}} xmm1 = [7,7]
1764 ; SSE-NEXT: pcmpeqd %xmm0, %xmm0
1765 ; SSE-NEXT: retq
1769 ; AVX-NEXT: vmovaps {{.*#+}} ymm0 = [18446744073709551615,18446744073709551615,7,7]
1770 ; AVX-NEXT: retq
1781 ; SSE-NEXT: movaps {{.*#+}} xmm0 = [4294967295,4294967295,7,7]
1782 ; SSE-NEXT: retq
1786 ; AVX-NEXT: vmovaps {{.*#+}} xmm0 = [4294967295,4294967295,7,7]
1787 ; AVX-NEXT: retq
1798 ; SSE-NEXT: movaps {{.*#+}} xmm0 = [4294967295,4294967293,4294967293,4294967295]
1799 ; SSE-NEXT: movaps {{.*#+}} xmm1 = [7,5,5,7]
1800 ; SSE-NEXT: retq
1804 ; AVX-NEXT: vmovaps {{.*#+}} ymm0 = [4294967295,4294967293,4294967293,4294967295,7,5,5,7]
1805 ; AVX-NEXT: retq
1816 ; SSE-NEXT: movaps {{.*#+}} xmm0 = [65535,65533,65533,65535,7,5,5,7]
1817 ; SSE-NEXT: retq
1821 ; AVX-NEXT: vmovaps {{.*#+}} xmm0 = [65535,65533,65533,65535,7,5,5,7]
1822 ; AVX-NEXT: retq
1833 ; SSE-NEXT: movaps {{.*#+}} xmm0 = [65535,65534,65533,65532,65533,65534,65535,0]
1834 ; SSE-NEXT: movaps {{.*#+}} xmm1 = [7,6,5,4,5,6,7,8]
1835 ; SSE-NEXT: retq
1839 ; AVX-NEXT: vmovaps {{.*#+}} ymm0 = [65535,65534,65533,65532,65533,65534,65535,0,7,6,5,4,5,6,7,8]
1840 ; AVX-NEXT: retq
1851 ; SSE-NEXT: movaps {{.*#+}} xmm0 = [255,254,253,252,253,254,255,0,7,6,5,4,5,6,7,8]
1852 ; SSE-NEXT: retq
1856 ; AVX-NEXT: vmovaps {{.*#+}} xmm0 = [255,254,253,252,253,254,255,0,7,6,5,4,5,6,7,8]
1857 ; AVX-NEXT: retq
1868 ; SSE-NEXT: movaps {{.*#+}} xmm0 = [18446744073709551615,7]
1869 ; SSE-NEXT: retq
1873 ; AVX-NEXT: vmovaps {{.*#+}} xmm0 = [18446744073709551615,7]
1874 ; AVX-NEXT: retq
1885 ; SSE-NEXT: movaps {{.*#+}} xmm1 = [7,7]
1886 ; SSE-NEXT: pcmpeqd %xmm0, %xmm0
1887 ; SSE-NEXT: retq
1891 ; AVX-NEXT: vmovaps {{.*#+}} ymm0 = [18446744073709551615,18446744073709551615,7,7]
1892 ; AVX-NEXT: retq
1903 ; SSE-NEXT: movaps {{.*#+}} xmm0 = [4294967295,4294967295,7,7]
1904 ; SSE-NEXT: retq
1908 ; AVX-NEXT: vmovaps {{.*#+}} xmm0 = [4294967295,4294967295,7,7]
1909 ; AVX-NEXT: retq
1920 ; SSE-NEXT: movaps {{.*#+}} xmm0 = [4294967295,4294967293,4294967293,4294967295]
1921 ; SSE-NEXT: movaps {{.*#+}} xmm1 = [7,5,5,7]
1922 ; SSE-NEXT: retq
1926 ; AVX-NEXT: vmovaps {{.*#+}} ymm0 = [4294967295,4294967293,4294967293,4294967295,7,5,5,7]
1927 ; AVX-NEXT: retq
1938 ; SSE-NEXT: movaps {{.*#+}} xmm0 = [65535,65533,65533,65535,7,5,5,7]
1939 ; SSE-NEXT: retq
1943 ; AVX-NEXT: vmovaps {{.*#+}} xmm0 = [65535,65533,65533,65535,7,5,5,7]
1944 ; AVX-NEXT: retq
1955 ; SSE-NEXT: movaps {{.*#+}} xmm0 = [65535,65534,65533,65532,65533,65534,65535,0]
1956 ; SSE-NEXT: movaps {{.*#+}} xmm1 = [7,6,5,4,5,6,7,8]
1957 ; SSE-NEXT: retq
1961 ; AVX-NEXT: vmovaps {{.*#+}} ymm0 = [65535,65534,65533,65532,65533,65534,65535,0,7,6,5,4,5,6,7,8]
1962 ; AVX-NEXT: retq
1973 ; SSE-NEXT: movaps {{.*#+}} xmm0 = [255,254,253,252,253,254,255,0,7,6,5,4,5,6,7,8]
1974 ; SSE-NEXT: retq
1978 ; AVX-NEXT: vmovaps {{.*#+}} xmm0 = [255,254,253,252,253,254,255,0,7,6,5,4,5,6,7,8]
1979 ; AVX-NEXT: retq
1990 ; SSE-NEXT: movaps {{.*#+}} xmm0 = [18446744073709551609,1]
1991 ; SSE-NEXT: retq
1995 ; AVX-NEXT: vmovaps {{.*#+}} xmm0 = [18446744073709551609,1]
1996 ; AVX-NEXT: retq
2007 ; SSE-NEXT: movaps {{.*#+}} xmm0 = [18446744073709551609,18446744073709551609]
2008 ; SSE-NEXT: movaps {{.*#+}} xmm1 = [1,1]
2009 ; SSE-NEXT: retq
2013 ; AVX-NEXT: vmovaps {{.*#+}} ymm0 = [18446744073709551609,18446744073709551609,1,1]
2014 ; AVX-NEXT: retq
2025 ; SSE-NEXT: movaps {{.*#+}} xmm0 = [4294967289,4294967289,1,1]
2026 ; SSE-NEXT: retq
2030 ; AVX-NEXT: vmovaps {{.*#+}} xmm0 = [4294967289,4294967289,1,1]
2031 ; AVX-NEXT: retq
2042 ; SSE-NEXT: movaps {{.*#+}} xmm0 = [4294967289,4294967291,4294967291,4294967289]
2043 ; SSE-NEXT: movaps {{.*#+}} xmm1 = [1,3,3,1]
2044 ; SSE-NEXT: retq
2048 ; AVX-NEXT: vmovaps {{.*#+}} ymm0 = [4294967289,4294967291,4294967291,4294967289,1,3,3,1]
2049 ; AVX-NEXT: retq
2060 ; SSE-NEXT: movaps {{.*#+}} xmm0 = [1,65531,65531,65529,1,3,3,1]
2061 ; SSE-NEXT: retq
2065 ; AVX-NEXT: vmovaps {{.*#+}} xmm0 = [1,65531,65531,65529,1,3,3,1]
2066 ; AVX-NEXT: retq
2077 ; SSE-NEXT: movaps {{.*#+}} xmm0 = [1,65530,65531,65532,65531,65530,65529,0]
2078 ; SSE-NEXT: movaps {{.*#+}} xmm1 = [1,2,3,4,3,2,1,0]
2079 ; SSE-NEXT: retq
2083 ; AVX-NEXT: vmovaps {{.*#+}} ymm0 = [1,65530,65531,65532,65531,65530,65529,0,1,2,3,4,3,2,1,0]
2084 ; AVX-NEXT: retq
2095 ; SSE-NEXT: movaps {{.*#+}} xmm0 = [1,250,251,252,251,250,249,0,1,2,3,4,3,2,1,0]
2096 ; SSE-NEXT: retq
2100 ; AVX-NEXT: vmovaps {{.*#+}} xmm0 = [1,250,251,252,251,250,249,0,1,2,3,4,3,2,1,0]
2101 ; AVX-NEXT: retq
2112 ; SSE-NEXT: movaps {{.*#+}} xmm0 = [18446744073709551609,1]
2113 ; SSE-NEXT: retq
2117 ; AVX-NEXT: vmovaps {{.*#+}} xmm0 = [18446744073709551609,1]
2118 ; AVX-NEXT: retq
2129 ; SSE-NEXT: movaps {{.*#+}} xmm0 = [18446744073709551609,18446744073709551609]
2130 ; SSE-NEXT: movaps {{.*#+}} xmm1 = [1,1]
2131 ; SSE-NEXT: retq
2135 ; AVX-NEXT: vmovaps {{.*#+}} ymm0 = [18446744073709551609,18446744073709551609,1,1]
2136 ; AVX-NEXT: retq
2147 ; SSE-NEXT: movaps {{.*#+}} xmm0 = [4294967289,4294967289,1,1]
2148 ; SSE-NEXT: retq
2152 ; AVX-NEXT: vmovaps {{.*#+}} xmm0 = [4294967289,4294967289,1,1]
2153 ; AVX-NEXT: retq
2164 ; SSE-NEXT: movaps {{.*#+}} xmm0 = [4294967289,4294967291,4294967291,4294967289]
2165 ; SSE-NEXT: movaps {{.*#+}} xmm1 = [1,3,3,1]
2166 ; SSE-NEXT: retq
2170 ; AVX-NEXT: vmovaps {{.*#+}} ymm0 = [4294967289,4294967291,4294967291,4294967289,1,3,3,1]
2171 ; AVX-NEXT: retq
2182 ; SSE-NEXT: movaps {{.*#+}} xmm0 = [65529,65531,65531,65529,1,3,3,1]
2183 ; SSE-NEXT: retq
2187 ; AVX-NEXT: vmovaps {{.*#+}} xmm0 = [65529,65531,65531,65529,1,3,3,1]
2188 ; AVX-NEXT: retq
2199 ; SSE-NEXT: movaps {{.*#+}} xmm0 = [65529,65530,65531,65532,65531,65530,65529,0]
2200 ; SSE-NEXT: movaps {{.*#+}} xmm1 = [1,2,3,4,3,2,1,0]
2201 ; SSE-NEXT: retq
2205 ; AVX-NEXT: vmovaps {{.*#+}} ymm0 = [65529,65530,65531,65532,65531,65530,65529,0,1,2,3,4,3,2,1,0]
2206 ; AVX-NEXT: retq
2217 ; SSE-NEXT: movaps {{.*#+}} xmm0 = [249,250,251,252,251,250,249,0,1,2,3,4,3,2,1,0]
2218 ; SSE-NEXT: retq
2222 ; AVX-NEXT: vmovaps {{.*#+}} xmm0 = [249,250,251,252,251,250,249,0,1,2,3,4,3,2,1,0]
2223 ; AVX-NEXT: retq