Lines Matching refs:AVX512F
3 …wn-linux-gnu -mcpu=knl -mattr=+avx512bw | FileCheck %s --check-prefix=ALL --check-prefix=AVX512F-32
33 ; AVX512F-32-LABEL: test_cmp_b_512:
34 ; AVX512F-32: # BB#0:
35 ; AVX512F-32-NEXT: subl $68, %esp
36 ; AVX512F-32-NEXT: .Ltmp0:
37 ; AVX512F-32-NEXT: .cfi_def_cfa_offset 72
38 ; AVX512F-32-NEXT: vpcmpeqb %zmm1, %zmm0, %k0
39 ; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
40 ; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %eax
41 ; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %edx
42 ; AVX512F-32-NEXT: vpcmpltb %zmm1, %zmm0, %k0
43 ; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
44 ; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
45 ; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
46 ; AVX512F-32-NEXT: vpcmpleb %zmm1, %zmm0, %k0
47 ; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
48 ; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
49 ; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
50 ; AVX512F-32-NEXT: vpcmpunordb %zmm1, %zmm0, %k0
51 ; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
52 ; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
53 ; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
54 ; AVX512F-32-NEXT: vpcmpneqb %zmm1, %zmm0, %k0
55 ; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
56 ; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
57 ; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
58 ; AVX512F-32-NEXT: vpcmpnltb %zmm1, %zmm0, %k0
59 ; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
60 ; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
61 ; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
62 ; AVX512F-32-NEXT: vpcmpnleb %zmm1, %zmm0, %k0
63 ; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
64 ; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
65 ; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
66 ; AVX512F-32-NEXT: vpcmpordb %zmm1, %zmm0, %k0
67 ; AVX512F-32-NEXT: kmovq %k0, (%esp)
68 ; AVX512F-32-NEXT: addl (%esp), %eax
69 ; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
70 ; AVX512F-32-NEXT: addl $68, %esp
71 ; AVX512F-32-NEXT: retl
119 ; AVX512F-32-LABEL: test_mask_cmp_b_512:
120 ; AVX512F-32: # BB#0:
121 ; AVX512F-32-NEXT: subl $68, %esp
122 ; AVX512F-32-NEXT: .Ltmp1:
123 ; AVX512F-32-NEXT: .cfi_def_cfa_offset 72
124 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k0
125 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
126 ; AVX512F-32-NEXT: kunpckdq %k0, %k1, %k1
127 ; AVX512F-32-NEXT: vpcmpeqb %zmm1, %zmm0, %k0 {%k1}
128 ; AVX512F-32-NEXT: kmovq %k0, (%esp)
129 ; AVX512F-32-NEXT: movl (%esp), %eax
130 ; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %edx
131 ; AVX512F-32-NEXT: vpcmpltb %zmm1, %zmm0, %k0 {%k1}
132 ; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
133 ; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
134 ; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
135 ; AVX512F-32-NEXT: vpcmpleb %zmm1, %zmm0, %k0 {%k1}
136 ; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
137 ; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
138 ; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
139 ; AVX512F-32-NEXT: vpcmpunordb %zmm1, %zmm0, %k0 {%k1}
140 ; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
141 ; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
142 ; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
143 ; AVX512F-32-NEXT: vpcmpneqb %zmm1, %zmm0, %k0 {%k1}
144 ; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
145 ; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
146 ; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
147 ; AVX512F-32-NEXT: vpcmpnltb %zmm1, %zmm0, %k0 {%k1}
148 ; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
149 ; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
150 ; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
151 ; AVX512F-32-NEXT: vpcmpnleb %zmm1, %zmm0, %k0 {%k1}
152 ; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
153 ; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
154 ; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
155 ; AVX512F-32-NEXT: vpcmpordb %zmm1, %zmm0, %k0 {%k1}
156 ; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
157 ; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
158 ; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
159 ; AVX512F-32-NEXT: addl $68, %esp
160 ; AVX512F-32-NEXT: retl
209 ; AVX512F-32-LABEL: test_ucmp_b_512:
210 ; AVX512F-32: # BB#0:
211 ; AVX512F-32-NEXT: subl $68, %esp
212 ; AVX512F-32-NEXT: .Ltmp2:
213 ; AVX512F-32-NEXT: .cfi_def_cfa_offset 72
214 ; AVX512F-32-NEXT: vpcmpequb %zmm1, %zmm0, %k0
215 ; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
216 ; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %eax
217 ; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %edx
218 ; AVX512F-32-NEXT: vpcmpltub %zmm1, %zmm0, %k0
219 ; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
220 ; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
221 ; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
222 ; AVX512F-32-NEXT: vpcmpleub %zmm1, %zmm0, %k0
223 ; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
224 ; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
225 ; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
226 ; AVX512F-32-NEXT: vpcmpunordub %zmm1, %zmm0, %k0
227 ; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
228 ; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
229 ; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
230 ; AVX512F-32-NEXT: vpcmpnequb %zmm1, %zmm0, %k0
231 ; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
232 ; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
233 ; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
234 ; AVX512F-32-NEXT: vpcmpnltub %zmm1, %zmm0, %k0
235 ; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
236 ; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
237 ; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
238 ; AVX512F-32-NEXT: vpcmpnleub %zmm1, %zmm0, %k0
239 ; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
240 ; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
241 ; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
242 ; AVX512F-32-NEXT: vpcmpordub %zmm1, %zmm0, %k0
243 ; AVX512F-32-NEXT: kmovq %k0, (%esp)
244 ; AVX512F-32-NEXT: addl (%esp), %eax
245 ; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
246 ; AVX512F-32-NEXT: addl $68, %esp
247 ; AVX512F-32-NEXT: retl
295 ; AVX512F-32-LABEL: test_mask_x86_avx512_ucmp_b_512:
296 ; AVX512F-32: # BB#0:
297 ; AVX512F-32-NEXT: subl $68, %esp
298 ; AVX512F-32-NEXT: .Ltmp3:
299 ; AVX512F-32-NEXT: .cfi_def_cfa_offset 72
300 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k0
301 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
302 ; AVX512F-32-NEXT: kunpckdq %k0, %k1, %k1
303 ; AVX512F-32-NEXT: vpcmpequb %zmm1, %zmm0, %k0 {%k1}
304 ; AVX512F-32-NEXT: kmovq %k0, (%esp)
305 ; AVX512F-32-NEXT: movl (%esp), %eax
306 ; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %edx
307 ; AVX512F-32-NEXT: vpcmpltub %zmm1, %zmm0, %k0 {%k1}
308 ; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
309 ; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
310 ; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
311 ; AVX512F-32-NEXT: vpcmpleub %zmm1, %zmm0, %k0 {%k1}
312 ; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
313 ; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
314 ; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
315 ; AVX512F-32-NEXT: vpcmpunordub %zmm1, %zmm0, %k0 {%k1}
316 ; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
317 ; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
318 ; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
319 ; AVX512F-32-NEXT: vpcmpnequb %zmm1, %zmm0, %k0 {%k1}
320 ; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
321 ; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
322 ; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
323 ; AVX512F-32-NEXT: vpcmpnltub %zmm1, %zmm0, %k0 {%k1}
324 ; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
325 ; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
326 ; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
327 ; AVX512F-32-NEXT: vpcmpnleub %zmm1, %zmm0, %k0 {%k1}
328 ; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
329 ; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
330 ; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
331 ; AVX512F-32-NEXT: vpcmpordub %zmm1, %zmm0, %k0 {%k1}
332 ; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
333 ; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
334 ; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
335 ; AVX512F-32-NEXT: addl $68, %esp
336 ; AVX512F-32-NEXT: retl
385 ; AVX512F-32-LABEL: test_cmp_w_512:
386 ; AVX512F-32: # BB#0:
387 ; AVX512F-32-NEXT: vpcmpeqw %zmm1, %zmm0, %k0
388 ; AVX512F-32-NEXT: kmovd %k0, %eax
389 ; AVX512F-32-NEXT: vpcmpltw %zmm1, %zmm0, %k0
390 ; AVX512F-32-NEXT: kmovd %k0, %ecx
391 ; AVX512F-32-NEXT: addl %eax, %ecx
392 ; AVX512F-32-NEXT: vpcmplew %zmm1, %zmm0, %k0
393 ; AVX512F-32-NEXT: kmovd %k0, %eax
394 ; AVX512F-32-NEXT: addl %ecx, %eax
395 ; AVX512F-32-NEXT: vpcmpunordw %zmm1, %zmm0, %k0
396 ; AVX512F-32-NEXT: kmovd %k0, %ecx
397 ; AVX512F-32-NEXT: addl %eax, %ecx
398 ; AVX512F-32-NEXT: vpcmpneqw %zmm1, %zmm0, %k0
399 ; AVX512F-32-NEXT: kmovd %k0, %eax
400 ; AVX512F-32-NEXT: addl %ecx, %eax
401 ; AVX512F-32-NEXT: vpcmpnltw %zmm1, %zmm0, %k0
402 ; AVX512F-32-NEXT: kmovd %k0, %ecx
403 ; AVX512F-32-NEXT: addl %eax, %ecx
404 ; AVX512F-32-NEXT: vpcmpnlew %zmm1, %zmm0, %k0
405 ; AVX512F-32-NEXT: kmovd %k0, %edx
406 ; AVX512F-32-NEXT: addl %ecx, %edx
407 ; AVX512F-32-NEXT: vpcmpordw %zmm1, %zmm0, %k0
408 ; AVX512F-32-NEXT: kmovd %k0, %eax
409 ; AVX512F-32-NEXT: addl %edx, %eax
410 ; AVX512F-32-NEXT: retl
458 ; AVX512F-32-LABEL: test_mask_cmp_w_512:
459 ; AVX512F-32: # BB#0:
460 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
461 ; AVX512F-32-NEXT: vpcmpeqw %zmm1, %zmm0, %k0 {%k1}
462 ; AVX512F-32-NEXT: kmovd %k0, %eax
463 ; AVX512F-32-NEXT: vpcmpltw %zmm1, %zmm0, %k0 {%k1}
464 ; AVX512F-32-NEXT: kmovd %k0, %ecx
465 ; AVX512F-32-NEXT: addl %eax, %ecx
466 ; AVX512F-32-NEXT: vpcmplew %zmm1, %zmm0, %k0 {%k1}
467 ; AVX512F-32-NEXT: kmovd %k0, %eax
468 ; AVX512F-32-NEXT: addl %ecx, %eax
469 ; AVX512F-32-NEXT: vpcmpunordw %zmm1, %zmm0, %k0 {%k1}
470 ; AVX512F-32-NEXT: kmovd %k0, %ecx
471 ; AVX512F-32-NEXT: addl %eax, %ecx
472 ; AVX512F-32-NEXT: vpcmpneqw %zmm1, %zmm0, %k0 {%k1}
473 ; AVX512F-32-NEXT: kmovd %k0, %eax
474 ; AVX512F-32-NEXT: addl %ecx, %eax
475 ; AVX512F-32-NEXT: vpcmpnltw %zmm1, %zmm0, %k0 {%k1}
476 ; AVX512F-32-NEXT: kmovd %k0, %ecx
477 ; AVX512F-32-NEXT: addl %eax, %ecx
478 ; AVX512F-32-NEXT: vpcmpnlew %zmm1, %zmm0, %k0 {%k1}
479 ; AVX512F-32-NEXT: kmovd %k0, %edx
480 ; AVX512F-32-NEXT: addl %ecx, %edx
481 ; AVX512F-32-NEXT: vpcmpordw %zmm1, %zmm0, %k0 {%k1}
482 ; AVX512F-32-NEXT: kmovd %k0, %eax
483 ; AVX512F-32-NEXT: addl %edx, %eax
484 ; AVX512F-32-NEXT: retl
533 ; AVX512F-32-LABEL: test_ucmp_w_512:
534 ; AVX512F-32: # BB#0:
535 ; AVX512F-32-NEXT: vpcmpequw %zmm1, %zmm0, %k0
536 ; AVX512F-32-NEXT: kmovd %k0, %eax
537 ; AVX512F-32-NEXT: vpcmpltuw %zmm1, %zmm0, %k0
538 ; AVX512F-32-NEXT: kmovd %k0, %ecx
539 ; AVX512F-32-NEXT: addl %eax, %ecx
540 ; AVX512F-32-NEXT: vpcmpleuw %zmm1, %zmm0, %k0
541 ; AVX512F-32-NEXT: kmovd %k0, %eax
542 ; AVX512F-32-NEXT: addl %ecx, %eax
543 ; AVX512F-32-NEXT: vpcmpunorduw %zmm1, %zmm0, %k0
544 ; AVX512F-32-NEXT: kmovd %k0, %ecx
545 ; AVX512F-32-NEXT: addl %eax, %ecx
546 ; AVX512F-32-NEXT: vpcmpnequw %zmm1, %zmm0, %k0
547 ; AVX512F-32-NEXT: kmovd %k0, %eax
548 ; AVX512F-32-NEXT: addl %ecx, %eax
549 ; AVX512F-32-NEXT: vpcmpnltuw %zmm1, %zmm0, %k0
550 ; AVX512F-32-NEXT: kmovd %k0, %ecx
551 ; AVX512F-32-NEXT: addl %eax, %ecx
552 ; AVX512F-32-NEXT: vpcmpnleuw %zmm1, %zmm0, %k0
553 ; AVX512F-32-NEXT: kmovd %k0, %edx
554 ; AVX512F-32-NEXT: addl %ecx, %edx
555 ; AVX512F-32-NEXT: vpcmporduw %zmm1, %zmm0, %k0
556 ; AVX512F-32-NEXT: kmovd %k0, %eax
557 ; AVX512F-32-NEXT: addl %edx, %eax
558 ; AVX512F-32-NEXT: retl
606 ; AVX512F-32-LABEL: test_mask_ucmp_w_512:
607 ; AVX512F-32: # BB#0:
608 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
609 ; AVX512F-32-NEXT: vpcmpequw %zmm1, %zmm0, %k0 {%k1}
610 ; AVX512F-32-NEXT: kmovd %k0, %eax
611 ; AVX512F-32-NEXT: vpcmpltuw %zmm1, %zmm0, %k0 {%k1}
612 ; AVX512F-32-NEXT: kmovd %k0, %ecx
613 ; AVX512F-32-NEXT: addl %eax, %ecx
614 ; AVX512F-32-NEXT: vpcmpleuw %zmm1, %zmm0, %k0 {%k1}
615 ; AVX512F-32-NEXT: kmovd %k0, %eax
616 ; AVX512F-32-NEXT: addl %ecx, %eax
617 ; AVX512F-32-NEXT: vpcmpunorduw %zmm1, %zmm0, %k0 {%k1}
618 ; AVX512F-32-NEXT: kmovd %k0, %ecx
619 ; AVX512F-32-NEXT: addl %eax, %ecx
620 ; AVX512F-32-NEXT: vpcmpnequw %zmm1, %zmm0, %k0 {%k1}
621 ; AVX512F-32-NEXT: kmovd %k0, %eax
622 ; AVX512F-32-NEXT: addl %ecx, %eax
623 ; AVX512F-32-NEXT: vpcmpnltuw %zmm1, %zmm0, %k0 {%k1}
624 ; AVX512F-32-NEXT: kmovd %k0, %ecx
625 ; AVX512F-32-NEXT: addl %eax, %ecx
626 ; AVX512F-32-NEXT: vpcmpnleuw %zmm1, %zmm0, %k0 {%k1}
627 ; AVX512F-32-NEXT: kmovd %k0, %edx
628 ; AVX512F-32-NEXT: addl %ecx, %edx
629 ; AVX512F-32-NEXT: vpcmporduw %zmm1, %zmm0, %k0 {%k1}
630 ; AVX512F-32-NEXT: kmovd %k0, %eax
631 ; AVX512F-32-NEXT: addl %edx, %eax
632 ; AVX512F-32-NEXT: retl
659 ; AVX512F-32-LABEL: test_mask_packs_epi32_rr_512:
660 ; AVX512F-32: # BB#0:
661 ; AVX512F-32-NEXT: vpackssdw %zmm1, %zmm0, %zmm0
662 ; AVX512F-32-NEXT: retl
675 ; AVX512F-32-LABEL: test_mask_packs_epi32_rrk_512:
676 ; AVX512F-32: # BB#0:
677 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
678 ; AVX512F-32-NEXT: vpackssdw %zmm1, %zmm0, %zmm2 {%k1}
679 ; AVX512F-32-NEXT: vmovaps %zmm2, %zmm0
680 ; AVX512F-32-NEXT: retl
692 ; AVX512F-32-LABEL: test_mask_packs_epi32_rrkz_512:
693 ; AVX512F-32: # BB#0:
694 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
695 ; AVX512F-32-NEXT: vpackssdw %zmm1, %zmm0, %zmm0 {%k1} {z}
696 ; AVX512F-32-NEXT: retl
707 ; AVX512F-32-LABEL: test_mask_packs_epi32_rm_512:
708 ; AVX512F-32: # BB#0:
709 ; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %eax
710 ; AVX512F-32-NEXT: vpackssdw (%eax), %zmm0, %zmm0
711 ; AVX512F-32-NEXT: retl
725 ; AVX512F-32-LABEL: test_mask_packs_epi32_rmk_512:
726 ; AVX512F-32: # BB#0:
727 ; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %eax
728 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
729 ; AVX512F-32-NEXT: vpackssdw (%eax), %zmm0, %zmm1 {%k1}
730 ; AVX512F-32-NEXT: vmovaps %zmm1, %zmm0
731 ; AVX512F-32-NEXT: retl
744 ; AVX512F-32-LABEL: test_mask_packs_epi32_rmkz_512:
745 ; AVX512F-32: # BB#0:
746 ; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %eax
747 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
748 ; AVX512F-32-NEXT: vpackssdw (%eax), %zmm0, %zmm0 {%k1} {z}
749 ; AVX512F-32-NEXT: retl
761 ; AVX512F-32-LABEL: test_mask_packs_epi32_rmb_512:
762 ; AVX512F-32: # BB#0:
763 ; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %eax
764 ; AVX512F-32-NEXT: vpackssdw (%eax){1to16}, %zmm0, %zmm0
765 ; AVX512F-32-NEXT: retl
781 ; AVX512F-32-LABEL: test_mask_packs_epi32_rmbk_512:
782 ; AVX512F-32: # BB#0:
783 ; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %eax
784 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
785 ; AVX512F-32-NEXT: vpackssdw (%eax){1to16}, %zmm0, %zmm1 {%k1}
786 ; AVX512F-32-NEXT: vmovaps %zmm1, %zmm0
787 ; AVX512F-32-NEXT: retl
802 ; AVX512F-32-LABEL: test_mask_packs_epi32_rmbkz_512:
803 ; AVX512F-32: # BB#0:
804 ; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %eax
805 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
806 ; AVX512F-32-NEXT: vpackssdw (%eax){1to16}, %zmm0, %zmm0 {%k1} {z}
807 ; AVX512F-32-NEXT: retl
823 ; AVX512F-32-LABEL: test_mask_packs_epi16_rr_512:
824 ; AVX512F-32: # BB#0:
825 ; AVX512F-32-NEXT: vpacksswb %zmm1, %zmm0, %zmm0
826 ; AVX512F-32-NEXT: retl
839 ; AVX512F-32-LABEL: test_mask_packs_epi16_rrk_512:
840 ; AVX512F-32: # BB#0:
841 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k0
842 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
843 ; AVX512F-32-NEXT: kunpckdq %k0, %k1, %k1
844 ; AVX512F-32-NEXT: vpacksswb %zmm1, %zmm0, %zmm2 {%k1}
845 ; AVX512F-32-NEXT: vmovaps %zmm2, %zmm0
846 ; AVX512F-32-NEXT: retl
858 ; AVX512F-32-LABEL: test_mask_packs_epi16_rrkz_512:
859 ; AVX512F-32: # BB#0:
860 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k0
861 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
862 ; AVX512F-32-NEXT: kunpckdq %k0, %k1, %k1
863 ; AVX512F-32-NEXT: vpacksswb %zmm1, %zmm0, %zmm0 {%k1} {z}
864 ; AVX512F-32-NEXT: retl
875 ; AVX512F-32-LABEL: test_mask_packs_epi16_rm_512:
876 ; AVX512F-32: # BB#0:
877 ; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %eax
878 ; AVX512F-32-NEXT: vpacksswb (%eax), %zmm0, %zmm0
879 ; AVX512F-32-NEXT: retl
893 ; AVX512F-32-LABEL: test_mask_packs_epi16_rmk_512:
894 ; AVX512F-32: # BB#0:
895 ; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %eax
896 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k0
897 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
898 ; AVX512F-32-NEXT: kunpckdq %k0, %k1, %k1
899 ; AVX512F-32-NEXT: vpacksswb (%eax), %zmm0, %zmm1 {%k1}
900 ; AVX512F-32-NEXT: vmovaps %zmm1, %zmm0
901 ; AVX512F-32-NEXT: retl
914 ; AVX512F-32-LABEL: test_mask_packs_epi16_rmkz_512:
915 ; AVX512F-32: # BB#0:
916 ; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %eax
917 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k0
918 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
919 ; AVX512F-32-NEXT: kunpckdq %k0, %k1, %k1
920 ; AVX512F-32-NEXT: vpacksswb (%eax), %zmm0, %zmm0 {%k1} {z}
921 ; AVX512F-32-NEXT: retl
936 ; AVX512F-32-LABEL: test_mask_packus_epi32_rr_512:
937 ; AVX512F-32: # BB#0:
938 ; AVX512F-32-NEXT: vpackusdw %zmm1, %zmm0, %zmm0
939 ; AVX512F-32-NEXT: retl
952 ; AVX512F-32-LABEL: test_mask_packus_epi32_rrk_512:
953 ; AVX512F-32: # BB#0:
954 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
955 ; AVX512F-32-NEXT: vpackusdw %zmm1, %zmm0, %zmm2 {%k1}
956 ; AVX512F-32-NEXT: vmovaps %zmm2, %zmm0
957 ; AVX512F-32-NEXT: retl
969 ; AVX512F-32-LABEL: test_mask_packus_epi32_rrkz_512:
970 ; AVX512F-32: # BB#0:
971 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
972 ; AVX512F-32-NEXT: vpackusdw %zmm1, %zmm0, %zmm0 {%k1} {z}
973 ; AVX512F-32-NEXT: retl
984 ; AVX512F-32-LABEL: test_mask_packus_epi32_rm_512:
985 ; AVX512F-32: # BB#0:
986 ; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %eax
987 ; AVX512F-32-NEXT: vpackusdw (%eax), %zmm0, %zmm0
988 ; AVX512F-32-NEXT: retl
1002 ; AVX512F-32-LABEL: test_mask_packus_epi32_rmk_512:
1003 ; AVX512F-32: # BB#0:
1004 ; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %eax
1005 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
1006 ; AVX512F-32-NEXT: vpackusdw (%eax), %zmm0, %zmm1 {%k1}
1007 ; AVX512F-32-NEXT: vmovaps %zmm1, %zmm0
1008 ; AVX512F-32-NEXT: retl
1021 ; AVX512F-32-LABEL: test_mask_packus_epi32_rmkz_512:
1022 ; AVX512F-32: # BB#0:
1023 ; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %eax
1024 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
1025 ; AVX512F-32-NEXT: vpackusdw (%eax), %zmm0, %zmm0 {%k1} {z}
1026 ; AVX512F-32-NEXT: retl
1038 ; AVX512F-32-LABEL: test_mask_packus_epi32_rmb_512:
1039 ; AVX512F-32: # BB#0:
1040 ; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %eax
1041 ; AVX512F-32-NEXT: vpackusdw (%eax){1to16}, %zmm0, %zmm0
1042 ; AVX512F-32-NEXT: retl
1058 ; AVX512F-32-LABEL: test_mask_packus_epi32_rmbk_512:
1059 ; AVX512F-32: # BB#0:
1060 ; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %eax
1061 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
1062 ; AVX512F-32-NEXT: vpackusdw (%eax){1to16}, %zmm0, %zmm1 {%k1}
1063 ; AVX512F-32-NEXT: vmovaps %zmm1, %zmm0
1064 ; AVX512F-32-NEXT: retl
1079 ; AVX512F-32-LABEL: test_mask_packus_epi32_rmbkz_512:
1080 ; AVX512F-32: # BB#0:
1081 ; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %eax
1082 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
1083 ; AVX512F-32-NEXT: vpackusdw (%eax){1to16}, %zmm0, %zmm0 {%k1} {z}
1084 ; AVX512F-32-NEXT: retl
1100 ; AVX512F-32-LABEL: test_mask_packus_epi16_rr_512:
1101 ; AVX512F-32: # BB#0:
1102 ; AVX512F-32-NEXT: vpackuswb %zmm1, %zmm0, %zmm0
1103 ; AVX512F-32-NEXT: retl
1116 ; AVX512F-32-LABEL: test_mask_packus_epi16_rrk_512:
1117 ; AVX512F-32: # BB#0:
1118 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k0
1119 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
1120 ; AVX512F-32-NEXT: kunpckdq %k0, %k1, %k1
1121 ; AVX512F-32-NEXT: vpackuswb %zmm1, %zmm0, %zmm2 {%k1}
1122 ; AVX512F-32-NEXT: vmovaps %zmm2, %zmm0
1123 ; AVX512F-32-NEXT: retl
1135 ; AVX512F-32-LABEL: test_mask_packus_epi16_rrkz_512:
1136 ; AVX512F-32: # BB#0:
1137 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k0
1138 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
1139 ; AVX512F-32-NEXT: kunpckdq %k0, %k1, %k1
1140 ; AVX512F-32-NEXT: vpackuswb %zmm1, %zmm0, %zmm0 {%k1} {z}
1141 ; AVX512F-32-NEXT: retl
1152 ; AVX512F-32-LABEL: test_mask_packus_epi16_rm_512:
1153 ; AVX512F-32: # BB#0:
1154 ; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %eax
1155 ; AVX512F-32-NEXT: vpackuswb (%eax), %zmm0, %zmm0
1156 ; AVX512F-32-NEXT: retl
1170 ; AVX512F-32-LABEL: test_mask_packus_epi16_rmk_512:
1171 ; AVX512F-32: # BB#0:
1172 ; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %eax
1173 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k0
1174 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
1175 ; AVX512F-32-NEXT: kunpckdq %k0, %k1, %k1
1176 ; AVX512F-32-NEXT: vpackuswb (%eax), %zmm0, %zmm1 {%k1}
1177 ; AVX512F-32-NEXT: vmovaps %zmm1, %zmm0
1178 ; AVX512F-32-NEXT: retl
1191 ; AVX512F-32-LABEL: test_mask_packus_epi16_rmkz_512:
1192 ; AVX512F-32: # BB#0:
1193 ; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %eax
1194 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k0
1195 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
1196 ; AVX512F-32-NEXT: kunpckdq %k0, %k1, %k1
1197 ; AVX512F-32-NEXT: vpackuswb (%eax), %zmm0, %zmm0 {%k1} {z}
1198 ; AVX512F-32-NEXT: retl
1212 ; AVX512F-32-LABEL: test_mask_adds_epi16_rr_512:
1213 ; AVX512F-32: # BB#0:
1214 ; AVX512F-32-NEXT: vpaddsw %zmm1, %zmm0, %zmm0
1215 ; AVX512F-32-NEXT: retl
1228 ; AVX512F-32-LABEL: test_mask_adds_epi16_rrk_512:
1229 ; AVX512F-32: # BB#0:
1230 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
1231 ; AVX512F-32-NEXT: vpaddsw %zmm1, %zmm0, %zmm2 {%k1}
1232 ; AVX512F-32-NEXT: vmovaps %zmm2, %zmm0
1233 ; AVX512F-32-NEXT: retl
1245 ; AVX512F-32-LABEL: test_mask_adds_epi16_rrkz_512:
1246 ; AVX512F-32: # BB#0:
1247 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
1248 ; AVX512F-32-NEXT: vpaddsw %zmm1, %zmm0, %zmm0 {%k1} {z}
1249 ; AVX512F-32-NEXT: retl
1260 ; AVX512F-32-LABEL: test_mask_adds_epi16_rm_512:
1261 ; AVX512F-32: # BB#0:
1262 ; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %eax
1263 ; AVX512F-32-NEXT: vpaddsw (%eax), %zmm0, %zmm0
1264 ; AVX512F-32-NEXT: retl
1278 ; AVX512F-32-LABEL: test_mask_adds_epi16_rmk_512:
1279 ; AVX512F-32: # BB#0:
1280 ; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %eax
1281 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
1282 ; AVX512F-32-NEXT: vpaddsw (%eax), %zmm0, %zmm1 {%k1}
1283 ; AVX512F-32-NEXT: vmovaps %zmm1, %zmm0
1284 ; AVX512F-32-NEXT: retl
1297 ; AVX512F-32-LABEL: test_mask_adds_epi16_rmkz_512:
1298 ; AVX512F-32: # BB#0:
1299 ; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %eax
1300 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
1301 ; AVX512F-32-NEXT: vpaddsw (%eax), %zmm0, %zmm0 {%k1} {z}
1302 ; AVX512F-32-NEXT: retl
1316 ; AVX512F-32-LABEL: test_mask_subs_epi16_rr_512:
1317 ; AVX512F-32: # BB#0:
1318 ; AVX512F-32-NEXT: vpsubsw %zmm1, %zmm0, %zmm0
1319 ; AVX512F-32-NEXT: retl
1332 ; AVX512F-32-LABEL: test_mask_subs_epi16_rrk_512:
1333 ; AVX512F-32: # BB#0:
1334 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
1335 ; AVX512F-32-NEXT: vpsubsw %zmm1, %zmm0, %zmm2 {%k1}
1336 ; AVX512F-32-NEXT: vmovaps %zmm2, %zmm0
1337 ; AVX512F-32-NEXT: retl
1349 ; AVX512F-32-LABEL: test_mask_subs_epi16_rrkz_512:
1350 ; AVX512F-32: # BB#0:
1351 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
1352 ; AVX512F-32-NEXT: vpsubsw %zmm1, %zmm0, %zmm0 {%k1} {z}
1353 ; AVX512F-32-NEXT: retl
1364 ; AVX512F-32-LABEL: test_mask_subs_epi16_rm_512:
1365 ; AVX512F-32: # BB#0:
1366 ; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %eax
1367 ; AVX512F-32-NEXT: vpsubsw (%eax), %zmm0, %zmm0
1368 ; AVX512F-32-NEXT: retl
1382 ; AVX512F-32-LABEL: test_mask_subs_epi16_rmk_512:
1383 ; AVX512F-32: # BB#0:
1384 ; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %eax
1385 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
1386 ; AVX512F-32-NEXT: vpsubsw (%eax), %zmm0, %zmm1 {%k1}
1387 ; AVX512F-32-NEXT: vmovaps %zmm1, %zmm0
1388 ; AVX512F-32-NEXT: retl
1401 ; AVX512F-32-LABEL: test_mask_subs_epi16_rmkz_512:
1402 ; AVX512F-32: # BB#0:
1403 ; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %eax
1404 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
1405 ; AVX512F-32-NEXT: vpsubsw (%eax), %zmm0, %zmm0 {%k1} {z}
1406 ; AVX512F-32-NEXT: retl
1420 ; AVX512F-32-LABEL: test_mask_adds_epu16_rr_512:
1421 ; AVX512F-32: # BB#0:
1422 ; AVX512F-32-NEXT: vpaddusw %zmm1, %zmm0, %zmm0
1423 ; AVX512F-32-NEXT: retl
1436 ; AVX512F-32-LABEL: test_mask_adds_epu16_rrk_512:
1437 ; AVX512F-32: # BB#0:
1438 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
1439 ; AVX512F-32-NEXT: vpaddusw %zmm1, %zmm0, %zmm2 {%k1}
1440 ; AVX512F-32-NEXT: vmovaps %zmm2, %zmm0
1441 ; AVX512F-32-NEXT: retl
1453 ; AVX512F-32-LABEL: test_mask_adds_epu16_rrkz_512:
1454 ; AVX512F-32: # BB#0:
1455 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
1456 ; AVX512F-32-NEXT: vpaddusw %zmm1, %zmm0, %zmm0 {%k1} {z}
1457 ; AVX512F-32-NEXT: retl
1468 ; AVX512F-32-LABEL: test_mask_adds_epu16_rm_512:
1469 ; AVX512F-32: # BB#0:
1470 ; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %eax
1471 ; AVX512F-32-NEXT: vpaddusw (%eax), %zmm0, %zmm0
1472 ; AVX512F-32-NEXT: retl
1486 ; AVX512F-32-LABEL: test_mask_adds_epu16_rmk_512:
1487 ; AVX512F-32: # BB#0:
1488 ; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %eax
1489 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
1490 ; AVX512F-32-NEXT: vpaddusw (%eax), %zmm0, %zmm1 {%k1}
1491 ; AVX512F-32-NEXT: vmovaps %zmm1, %zmm0
1492 ; AVX512F-32-NEXT: retl
1505 ; AVX512F-32-LABEL: test_mask_adds_epu16_rmkz_512:
1506 ; AVX512F-32: # BB#0:
1507 ; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %eax
1508 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
1509 ; AVX512F-32-NEXT: vpaddusw (%eax), %zmm0, %zmm0 {%k1} {z}
1510 ; AVX512F-32-NEXT: retl
1524 ; AVX512F-32-LABEL: test_mask_subs_epu16_rr_512:
1525 ; AVX512F-32: # BB#0:
1526 ; AVX512F-32-NEXT: vpsubusw %zmm1, %zmm0, %zmm0
1527 ; AVX512F-32-NEXT: retl
1540 ; AVX512F-32-LABEL: test_mask_subs_epu16_rrk_512:
1541 ; AVX512F-32: # BB#0:
1542 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
1543 ; AVX512F-32-NEXT: vpsubusw %zmm1, %zmm0, %zmm2 {%k1}
1544 ; AVX512F-32-NEXT: vmovaps %zmm2, %zmm0
1545 ; AVX512F-32-NEXT: retl
1557 ; AVX512F-32-LABEL: test_mask_subs_epu16_rrkz_512:
1558 ; AVX512F-32: # BB#0:
1559 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
1560 ; AVX512F-32-NEXT: vpsubusw %zmm1, %zmm0, %zmm0 {%k1} {z}
1561 ; AVX512F-32-NEXT: retl
1572 ; AVX512F-32-LABEL: test_mask_subs_epu16_rm_512:
1573 ; AVX512F-32: # BB#0:
1574 ; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %eax
1575 ; AVX512F-32-NEXT: vpsubusw (%eax), %zmm0, %zmm0
1576 ; AVX512F-32-NEXT: retl
1590 ; AVX512F-32-LABEL: test_mask_subs_epu16_rmk_512:
1591 ; AVX512F-32: # BB#0:
1592 ; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %eax
1593 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
1594 ; AVX512F-32-NEXT: vpsubusw (%eax), %zmm0, %zmm1 {%k1}
1595 ; AVX512F-32-NEXT: vmovaps %zmm1, %zmm0
1596 ; AVX512F-32-NEXT: retl
1609 ; AVX512F-32-LABEL: test_mask_subs_epu16_rmkz_512:
1610 ; AVX512F-32: # BB#0:
1611 ; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %eax
1612 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
1613 ; AVX512F-32-NEXT: vpsubusw (%eax), %zmm0, %zmm0 {%k1} {z}
1614 ; AVX512F-32-NEXT: retl
1633 ; AVX512F-32-LABEL: test_int_x86_avx512_mask_pmaxs_b_512:
1634 ; AVX512F-32: # BB#0:
1635 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k0
1636 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
1637 ; AVX512F-32-NEXT: kunpckdq %k0, %k1, %k1
1638 ; AVX512F-32-NEXT: vpmaxsb %zmm1, %zmm0, %zmm2 {%k1}
1639 ; AVX512F-32-NEXT: vpmaxsb %zmm1, %zmm0, %zmm0
1640 ; AVX512F-32-NEXT: vpaddb %zmm0, %zmm2, %zmm0
1641 ; AVX512F-32-NEXT: retl
1659 ; AVX512F-32-LABEL: test_int_x86_avx512_mask_pmaxs_w_512:
1660 ; AVX512F-32: # BB#0:
1661 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
1662 ; AVX512F-32-NEXT: vpmaxsw %zmm1, %zmm0, %zmm2 {%k1}
1663 ; AVX512F-32-NEXT: vpmaxsw %zmm1, %zmm0, %zmm0
1664 ; AVX512F-32-NEXT: vpaddw %zmm0, %zmm2, %zmm0
1665 ; AVX512F-32-NEXT: retl
1683 ; AVX512F-32-LABEL: test_int_x86_avx512_mask_pmaxu_b_512:
1684 ; AVX512F-32: # BB#0:
1685 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k0
1686 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
1687 ; AVX512F-32-NEXT: kunpckdq %k0, %k1, %k1
1688 ; AVX512F-32-NEXT: vpmaxub %zmm1, %zmm0, %zmm2 {%k1}
1689 ; AVX512F-32-NEXT: vpmaxub %zmm1, %zmm0, %zmm0
1690 ; AVX512F-32-NEXT: vpaddb %zmm0, %zmm2, %zmm0
1691 ; AVX512F-32-NEXT: retl
1709 ; AVX512F-32-LABEL: test_int_x86_avx512_mask_pmaxu_w_512:
1710 ; AVX512F-32: # BB#0:
1711 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
1712 ; AVX512F-32-NEXT: vpmaxuw %zmm1, %zmm0, %zmm2 {%k1}
1713 ; AVX512F-32-NEXT: vpmaxuw %zmm1, %zmm0, %zmm0
1714 ; AVX512F-32-NEXT: vpaddw %zmm0, %zmm2, %zmm0
1715 ; AVX512F-32-NEXT: retl
1733 ; AVX512F-32-LABEL: test_int_x86_avx512_mask_pmins_b_512:
1734 ; AVX512F-32: # BB#0:
1735 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k0
1736 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
1737 ; AVX512F-32-NEXT: kunpckdq %k0, %k1, %k1
1738 ; AVX512F-32-NEXT: vpminsb %zmm1, %zmm0, %zmm2 {%k1}
1739 ; AVX512F-32-NEXT: vpminsb %zmm1, %zmm0, %zmm0
1740 ; AVX512F-32-NEXT: vpaddb %zmm0, %zmm2, %zmm0
1741 ; AVX512F-32-NEXT: retl
1759 ; AVX512F-32-LABEL: test_int_x86_avx512_mask_pmins_w_512:
1760 ; AVX512F-32: # BB#0:
1761 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
1762 ; AVX512F-32-NEXT: vpminsw %zmm1, %zmm0, %zmm2 {%k1}
1763 ; AVX512F-32-NEXT: vpminsw %zmm1, %zmm0, %zmm0
1764 ; AVX512F-32-NEXT: vpaddw %zmm0, %zmm2, %zmm0
1765 ; AVX512F-32-NEXT: retl
1783 ; AVX512F-32-LABEL: test_int_x86_avx512_mask_pminu_b_512:
1784 ; AVX512F-32: # BB#0:
1785 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k0
1786 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
1787 ; AVX512F-32-NEXT: kunpckdq %k0, %k1, %k1
1788 ; AVX512F-32-NEXT: vpminub %zmm1, %zmm0, %zmm2 {%k1}
1789 ; AVX512F-32-NEXT: vpminub %zmm1, %zmm0, %zmm0
1790 ; AVX512F-32-NEXT: vpaddb %zmm0, %zmm2, %zmm0
1791 ; AVX512F-32-NEXT: retl
1809 ; AVX512F-32-LABEL: test_int_x86_avx512_mask_pminu_w_512:
1810 ; AVX512F-32: # BB#0:
1811 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
1812 ; AVX512F-32-NEXT: vpminuw %zmm1, %zmm0, %zmm2 {%k1}
1813 ; AVX512F-32-NEXT: vpminuw %zmm1, %zmm0, %zmm0
1814 ; AVX512F-32-NEXT: vpaddw %zmm0, %zmm2, %zmm0
1815 ; AVX512F-32-NEXT: retl
1834 ; AVX512F-32-LABEL: test_int_x86_avx512_mask_vpermt2var_hi_512:
1835 ; AVX512F-32: # BB#0:
1836 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
1837 ; AVX512F-32-NEXT: vmovaps %zmm1, %zmm3
1838 ; AVX512F-32-NEXT: vpermt2w %zmm2, %zmm0, %zmm3 {%k1}
1839 ; AVX512F-32-NEXT: vpermt2w %zmm2, %zmm0, %zmm1
1840 ; AVX512F-32-NEXT: vpaddw %zmm1, %zmm3, %zmm0
1841 ; AVX512F-32-NEXT: retl
1860 ; AVX512F-32-LABEL: test_int_x86_avx512_maskz_vpermt2var_hi_512:
1861 ; AVX512F-32: # BB#0:
1862 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
1863 ; AVX512F-32-NEXT: vmovaps %zmm1, %zmm3
1864 ; AVX512F-32-NEXT: vpermt2w %zmm2, %zmm0, %zmm3 {%k1} {z}
1865 ; AVX512F-32-NEXT: vpermt2w %zmm2, %zmm0, %zmm1
1866 ; AVX512F-32-NEXT: vpaddw %zmm1, %zmm3, %zmm0
1867 ; AVX512F-32-NEXT: retl
1886 ; AVX512F-32-LABEL: test_int_x86_avx512_mask_vpermi2var_hi_512:
1887 ; AVX512F-32: # BB#0:
1888 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
1889 ; AVX512F-32-NEXT: vmovaps %zmm1, %zmm3
1890 ; AVX512F-32-NEXT: vpermi2w %zmm2, %zmm0, %zmm3 {%k1}
1891 ; AVX512F-32-NEXT: vpermi2w %zmm2, %zmm0, %zmm1
1892 ; AVX512F-32-NEXT: vpaddw %zmm1, %zmm3, %zmm0
1893 ; AVX512F-32-NEXT: retl
1911 ; AVX512F-32-LABEL: test_int_x86_avx512_mask_pavg_b_512:
1912 ; AVX512F-32: # BB#0:
1913 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k0
1914 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
1915 ; AVX512F-32-NEXT: kunpckdq %k0, %k1, %k1
1916 ; AVX512F-32-NEXT: vpavgb %zmm1, %zmm0, %zmm2 {%k1}
1917 ; AVX512F-32-NEXT: vpavgb %zmm1, %zmm0, %zmm0
1918 ; AVX512F-32-NEXT: vpaddb %zmm0, %zmm2, %zmm0
1919 ; AVX512F-32-NEXT: retl
1937 ; AVX512F-32-LABEL: test_int_x86_avx512_mask_pavg_w_512:
1938 ; AVX512F-32: # BB#0:
1939 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
1940 ; AVX512F-32-NEXT: vpavgw %zmm1, %zmm0, %zmm2 {%k1}
1941 ; AVX512F-32-NEXT: vpavgw %zmm1, %zmm0, %zmm0
1942 ; AVX512F-32-NEXT: vpaddw %zmm0, %zmm2, %zmm0
1943 ; AVX512F-32-NEXT: retl
1961 ; AVX512F-32-LABEL: test_int_x86_avx512_mask_pshuf_b_512:
1962 ; AVX512F-32: # BB#0:
1963 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k0
1964 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
1965 ; AVX512F-32-NEXT: kunpckdq %k0, %k1, %k1
1966 ; AVX512F-32-NEXT: vpshufb %zmm1, %zmm0, %zmm2 {%k1}
1967 ; AVX512F-32-NEXT: vpshufb %zmm1, %zmm0, %zmm0
1968 ; AVX512F-32-NEXT: vpaddb %zmm0, %zmm2, %zmm0
1969 ; AVX512F-32-NEXT: retl
1987 ; AVX512F-32-LABEL: test_int_x86_avx512_mask_pabs_w_512:
1988 ; AVX512F-32: # BB#0:
1989 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
1990 ; AVX512F-32-NEXT: vpabsw %zmm0, %zmm1 {%k1}
1991 ; AVX512F-32-NEXT: vpabsw %zmm0, %zmm0
1992 ; AVX512F-32-NEXT: vpaddw %zmm0, %zmm1, %zmm0
1993 ; AVX512F-32-NEXT: retl
2011 ; AVX512F-32-LABEL: test_int_x86_avx512_mask_pabs_b_512:
2012 ; AVX512F-32: # BB#0:
2013 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k0
2014 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
2015 ; AVX512F-32-NEXT: kunpckdq %k0, %k1, %k1
2016 ; AVX512F-32-NEXT: vpabsb %zmm0, %zmm1 {%k1}
2017 ; AVX512F-32-NEXT: vpabsb %zmm0, %zmm0
2018 ; AVX512F-32-NEXT: vpaddb %zmm0, %zmm1, %zmm0
2019 ; AVX512F-32-NEXT: retl
2037 ; AVX512F-32-LABEL: test_int_x86_avx512_mask_pmulhu_w_512:
2038 ; AVX512F-32: # BB#0:
2039 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
2040 ; AVX512F-32-NEXT: vpmulhuw %zmm1, %zmm0, %zmm2 {%k1}
2041 ; AVX512F-32-NEXT: vpmulhuw %zmm1, %zmm0, %zmm0
2042 ; AVX512F-32-NEXT: vpaddw %zmm0, %zmm2, %zmm0
2043 ; AVX512F-32-NEXT: retl
2061 ; AVX512F-32-LABEL: test_int_x86_avx512_mask_pmulh_w_512:
2062 ; AVX512F-32: # BB#0:
2063 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
2064 ; AVX512F-32-NEXT: vpmulhw %zmm1, %zmm0, %zmm2 {%k1}
2065 ; AVX512F-32-NEXT: vpmulhw %zmm1, %zmm0, %zmm0
2066 ; AVX512F-32-NEXT: vpaddw %zmm0, %zmm2, %zmm0
2067 ; AVX512F-32-NEXT: retl
2085 ; AVX512F-32-LABEL: test_int_x86_avx512_mask_pmulhr_sw_512:
2086 ; AVX512F-32: # BB#0:
2087 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
2088 ; AVX512F-32-NEXT: vpmulhrsw %zmm1, %zmm0, %zmm2 {%k1}
2089 ; AVX512F-32-NEXT: vpmulhrsw %zmm1, %zmm0, %zmm0
2090 ; AVX512F-32-NEXT: vpaddw %zmm0, %zmm2, %zmm0
2091 ; AVX512F-32-NEXT: retl
2111 ; AVX512F-32-LABEL: test_int_x86_avx512_mask_pmov_wb_512:
2112 ; AVX512F-32: # BB#0:
2113 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
2114 ; AVX512F-32-NEXT: vpmovwb %zmm0, %ymm1 {%k1}
2115 ; AVX512F-32-NEXT: vpmovwb %zmm0, %ymm2 {%k1} {z}
2116 ; AVX512F-32-NEXT: vpmovwb %zmm0, %ymm0
2117 ; AVX512F-32-NEXT: vpaddb %ymm1, %ymm0, %ymm0
2118 ; AVX512F-32-NEXT: vpaddb %ymm2, %ymm0, %ymm0
2119 ; AVX512F-32-NEXT: retl
2138 ; AVX512F-32-LABEL: test_int_x86_avx512_mask_pmov_wb_mem_512:
2139 ; AVX512F-32: # BB#0:
2140 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
2141 ; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %eax
2142 ; AVX512F-32-NEXT: vpmovwb %zmm0, (%eax)
2143 ; AVX512F-32-NEXT: vpmovwb %zmm0, (%eax) {%k1}
2144 ; AVX512F-32-NEXT: retl
2163 ; AVX512F-32-LABEL: test_int_x86_avx512_mask_pmovs_wb_512:
2164 ; AVX512F-32: # BB#0:
2165 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
2166 ; AVX512F-32-NEXT: vpmovswb %zmm0, %ymm1 {%k1}
2167 ; AVX512F-32-NEXT: vpmovswb %zmm0, %ymm2 {%k1} {z}
2168 ; AVX512F-32-NEXT: vpmovswb %zmm0, %ymm0
2169 ; AVX512F-32-NEXT: vpaddb %ymm1, %ymm0, %ymm0
2170 ; AVX512F-32-NEXT: vpaddb %ymm2, %ymm0, %ymm0
2171 ; AVX512F-32-NEXT: retl
2190 ; AVX512F-32-LABEL: test_int_x86_avx512_mask_pmovs_wb_mem_512:
2191 ; AVX512F-32: # BB#0:
2192 ; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %eax
2193 ; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %ecx
2194 ; AVX512F-32-NEXT: vpmovswb %zmm0, (%ecx)
2195 ; AVX512F-32-NEXT: kmovd %eax, %k1
2196 ; AVX512F-32-NEXT: vpmovswb %zmm0, (%ecx) {%k1}
2197 ; AVX512F-32-NEXT: retl
2216 ; AVX512F-32-LABEL: test_int_x86_avx512_mask_pmovus_wb_512:
2217 ; AVX512F-32: # BB#0:
2218 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
2219 ; AVX512F-32-NEXT: vpmovuswb %zmm0, %ymm1 {%k1}
2220 ; AVX512F-32-NEXT: vpmovuswb %zmm0, %ymm2 {%k1} {z}
2221 ; AVX512F-32-NEXT: vpmovuswb %zmm0, %ymm0
2222 ; AVX512F-32-NEXT: vpaddb %ymm1, %ymm0, %ymm0
2223 ; AVX512F-32-NEXT: vpaddb %ymm2, %ymm0, %ymm0
2224 ; AVX512F-32-NEXT: retl
2243 ; AVX512F-32-LABEL: test_int_x86_avx512_mask_pmovus_wb_mem_512:
2244 ; AVX512F-32: # BB#0:
2245 ; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %eax
2246 ; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %ecx
2247 ; AVX512F-32-NEXT: vpmovuswb %zmm0, (%ecx)
2248 ; AVX512F-32-NEXT: kmovd %eax, %k1
2249 ; AVX512F-32-NEXT: vpmovuswb %zmm0, (%ecx) {%k1}
2250 ; AVX512F-32-NEXT: retl
2267 ; AVX512F-32-LABEL: test_int_x86_avx512_mask_pmaddubs_w_512:
2268 ; AVX512F-32: # BB#0:
2269 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
2270 ; AVX512F-32-NEXT: vpmaddubsw %zmm1, %zmm0, %zmm2 {%k1}
2271 ; AVX512F-32-NEXT: vpmaddubsw %zmm1, %zmm0, %zmm0
2272 ; AVX512F-32-NEXT: vpaddw %zmm0, %zmm2, %zmm0
2273 ; AVX512F-32-NEXT: retl
2291 ; AVX512F-32-LABEL: test_int_x86_avx512_mask_pmaddw_d_512:
2292 ; AVX512F-32: # BB#0:
2293 ; AVX512F-32-NEXT: kmovw {{[0-9]+}}(%esp), %k1
2294 ; AVX512F-32-NEXT: vpmaddwd %zmm1, %zmm0, %zmm2 {%k1}
2295 ; AVX512F-32-NEXT: vpmaddwd %zmm1, %zmm0, %zmm0
2296 ; AVX512F-32-NEXT: vpaddd %zmm0, %zmm2, %zmm0
2297 ; AVX512F-32-NEXT: retl
2317 ; AVX512F-32-LABEL: test_int_x86_avx512_mask_dbpsadbw_512:
2318 ; AVX512F-32: # BB#0:
2319 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
2320 ; AVX512F-32-NEXT: vdbpsadbw $2, %zmm1, %zmm0, %zmm2 {%k1}
2321 ; AVX512F-32-NEXT: vdbpsadbw $2, %zmm1, %zmm0, %zmm3 {%k1} {z}
2322 ; AVX512F-32-NEXT: vdbpsadbw $2, %zmm1, %zmm0, %zmm0
2323 ; AVX512F-32-NEXT: vpaddw %zmm3, %zmm2, %zmm1
2324 ; AVX512F-32-NEXT: vpaddw %zmm0, %zmm1, %zmm0
2325 ; AVX512F-32-NEXT: retl
2344 ; AVX512F-32-LABEL: test_int_x86_avx512_mask_psadb_w_512:
2345 ; AVX512F-32: # BB#0:
2346 ; AVX512F-32-NEXT: vpsadbw %zmm1, %zmm0, %zmm1
2347 ; AVX512F-32-NEXT: vpsadbw %zmm2, %zmm0, %zmm0
2348 ; AVX512F-32-NEXT: vpaddq %zmm0, %zmm1, %zmm0
2349 ; AVX512F-32-NEXT: retl
2367 ; AVX512F-32-LABEL: test_int_x86_avx512_kunpck_wd:
2368 ; AVX512F-32: # BB#0:
2369 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k0
2370 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
2371 ; AVX512F-32-NEXT: kunpckwd %k1, %k0, %k0
2372 ; AVX512F-32-NEXT: kmovd %k0, %eax
2373 ; AVX512F-32-NEXT: retl
2389 ; AVX512F-32-LABEL: test_int_x86_avx512_kunpck_qd:
2390 ; AVX512F-32: # BB#0:
2391 ; AVX512F-32-NEXT: subl $12, %esp
2392 ; AVX512F-32-NEXT: .Ltmp4:
2393 ; AVX512F-32-NEXT: .cfi_def_cfa_offset 16
2394 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k0
2395 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
2396 ; AVX512F-32-NEXT: kunpckdq %k0, %k1, %k0
2397 ; AVX512F-32-NEXT: kmovq %k0, (%esp)
2398 ; AVX512F-32-NEXT: movl (%esp), %eax
2399 ; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %edx
2400 ; AVX512F-32-NEXT: addl $12, %esp
2401 ; AVX512F-32-NEXT: retl
2415 ; AVX512F-32-LABEL: test_int_x86_avx512_cvtb2mask_512:
2416 ; AVX512F-32: # BB#0:
2417 ; AVX512F-32-NEXT: subl $12, %esp
2418 ; AVX512F-32-NEXT: .Ltmp5:
2419 ; AVX512F-32-NEXT: .cfi_def_cfa_offset 16
2420 ; AVX512F-32-NEXT: vpmovb2m %zmm0, %k0
2421 ; AVX512F-32-NEXT: kmovq %k0, (%esp)
2422 ; AVX512F-32-NEXT: movl (%esp), %eax
2423 ; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %edx
2424 ; AVX512F-32-NEXT: addl $12, %esp
2425 ; AVX512F-32-NEXT: retl
2439 ; AVX512F-32-LABEL: test_int_x86_avx512_cvtw2mask_512:
2440 ; AVX512F-32: # BB#0:
2441 ; AVX512F-32-NEXT: vpmovw2m %zmm0, %k0
2442 ; AVX512F-32-NEXT: kmovd %k0, %eax
2443 ; AVX512F-32-NEXT: retl
2457 ; AVX512F-32-LABEL: test_int_x86_avx512_cvtmask2b_512:
2458 ; AVX512F-32: # BB#0:
2459 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k0
2460 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
2461 ; AVX512F-32-NEXT: kunpckdq %k0, %k1, %k0
2462 ; AVX512F-32-NEXT: vpmovm2b %k0, %zmm0
2463 ; AVX512F-32-NEXT: retl
2477 ; AVX512F-32-LABEL: test_int_x86_avx512_cvtmask2w_512:
2478 ; AVX512F-32: # BB#0:
2479 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k0
2480 ; AVX512F-32-NEXT: vpmovm2w %k0, %zmm0
2481 ; AVX512F-32-NEXT: retl
2499 ; AVX512F-32-LABEL: test_int_x86_avx512_mask_psrl_w_512:
2500 ; AVX512F-32: # BB#0:
2501 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
2502 ; AVX512F-32-NEXT: vpsrlw %xmm1, %zmm0, %zmm2 {%k1}
2503 ; AVX512F-32-NEXT: vpsrlw %xmm1, %zmm0, %zmm3 {%k1} {z}
2504 ; AVX512F-32-NEXT: vpsrlw %xmm1, %zmm0, %zmm0
2505 ; AVX512F-32-NEXT: vpaddw %zmm0, %zmm2, %zmm0
2506 ; AVX512F-32-NEXT: vpaddw %zmm3, %zmm0, %zmm0
2507 ; AVX512F-32-NEXT: retl
2529 ; AVX512F-32-LABEL: test_int_x86_avx512_mask_psrl_wi_512:
2530 ; AVX512F-32: # BB#0:
2531 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
2532 ; AVX512F-32-NEXT: vpsrlw $3, %zmm0, %zmm1 {%k1}
2533 ; AVX512F-32-NEXT: vpsrlw $3, %zmm0, %zmm2 {%k1} {z}
2534 ; AVX512F-32-NEXT: vpsrlw $3, %zmm0, %zmm0
2535 ; AVX512F-32-NEXT: vpaddw %zmm0, %zmm1, %zmm0
2536 ; AVX512F-32-NEXT: vpaddw %zmm2, %zmm0, %zmm0
2537 ; AVX512F-32-NEXT: retl
2559 ; AVX512F-32-LABEL: test_int_x86_avx512_mask_psrlv32hi:
2560 ; AVX512F-32: # BB#0:
2561 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
2562 ; AVX512F-32-NEXT: vpsrlvw %zmm1, %zmm0, %zmm2 {%k1}
2563 ; AVX512F-32-NEXT: vpsrlvw %zmm1, %zmm0, %zmm3 {%k1} {z}
2564 ; AVX512F-32-NEXT: vpsrlvw %zmm1, %zmm0, %zmm0
2565 ; AVX512F-32-NEXT: vpaddw %zmm3, %zmm2, %zmm1
2566 ; AVX512F-32-NEXT: vpaddw %zmm0, %zmm1, %zmm0
2567 ; AVX512F-32-NEXT: retl
2589 ; AVX512F-32-LABEL: test_int_x86_avx512_mask_psra_w_512:
2590 ; AVX512F-32: # BB#0:
2591 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
2592 ; AVX512F-32-NEXT: vpsraw %xmm1, %zmm0, %zmm2 {%k1}
2593 ; AVX512F-32-NEXT: vpsraw %xmm1, %zmm0, %zmm3 {%k1} {z}
2594 ; AVX512F-32-NEXT: vpsraw %xmm1, %zmm0, %zmm0
2595 ; AVX512F-32-NEXT: vpaddw %zmm3, %zmm2, %zmm1
2596 ; AVX512F-32-NEXT: vpaddw %zmm0, %zmm1, %zmm0
2597 ; AVX512F-32-NEXT: retl
2619 ; AVX512F-32-LABEL: test_int_x86_avx512_mask_psra_wi_512:
2620 ; AVX512F-32: # BB#0:
2621 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
2622 ; AVX512F-32-NEXT: vpsraw $3, %zmm0, %zmm1 {%k1}
2623 ; AVX512F-32-NEXT: vpsraw $3, %zmm0, %zmm2 {%k1} {z}
2624 ; AVX512F-32-NEXT: vpsraw $3, %zmm0, %zmm0
2625 ; AVX512F-32-NEXT: vpaddw %zmm2, %zmm1, %zmm1
2626 ; AVX512F-32-NEXT: vpaddw %zmm0, %zmm1, %zmm0
2627 ; AVX512F-32-NEXT: retl
2649 ; AVX512F-32-LABEL: test_int_x86_avx512_mask_psrav32_hi:
2650 ; AVX512F-32: # BB#0:
2651 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
2652 ; AVX512F-32-NEXT: vpsravw %zmm1, %zmm0, %zmm2 {%k1}
2653 ; AVX512F-32-NEXT: vpsravw %zmm1, %zmm0, %zmm3 {%k1} {z}
2654 ; AVX512F-32-NEXT: vpsravw %zmm1, %zmm0, %zmm0
2655 ; AVX512F-32-NEXT: vpaddw %zmm3, %zmm2, %zmm1
2656 ; AVX512F-32-NEXT: vpaddw %zmm0, %zmm1, %zmm0
2657 ; AVX512F-32-NEXT: retl
2673 ; AVX512F-32-LABEL: test_int_x86_avx512_mask_psrav32_hi_const:
2674 ; AVX512F-32: # BB#0:
2675 ; AVX512F-32-NEXT: vmovdqu16 {{.*#+}} zmm0 = [2,9,65524,23,65510,37,65496,51,2,9,65524,23,65510,…
2676 ; AVX512F-32-NEXT: vpsravw {{\.LCPI.*}}, %zmm0, %zmm0
2677 ; AVX512F-32-NEXT: retl
2697 ; AVX512F-32-LABEL: test_int_x86_avx512_mask_psll_w_512:
2698 ; AVX512F-32: # BB#0:
2699 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
2700 ; AVX512F-32-NEXT: vpsllw %xmm1, %zmm0, %zmm2 {%k1}
2701 ; AVX512F-32-NEXT: vpsllw %xmm1, %zmm0, %zmm3 {%k1} {z}
2702 ; AVX512F-32-NEXT: vpsllw %xmm1, %zmm0, %zmm0
2703 ; AVX512F-32-NEXT: vpaddw %zmm3, %zmm2, %zmm1
2704 ; AVX512F-32-NEXT: vpaddw %zmm0, %zmm1, %zmm0
2705 ; AVX512F-32-NEXT: retl
2727 ; AVX512F-32-LABEL: test_int_x86_avx512_mask_psll_wi_512:
2728 ; AVX512F-32: # BB#0:
2729 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
2730 ; AVX512F-32-NEXT: vpsllw $3, %zmm0, %zmm1 {%k1}
2731 ; AVX512F-32-NEXT: vpsllw $3, %zmm0, %zmm2 {%k1} {z}
2732 ; AVX512F-32-NEXT: vpsllw $3, %zmm0, %zmm0
2733 ; AVX512F-32-NEXT: vpaddw %zmm2, %zmm1, %zmm1
2734 ; AVX512F-32-NEXT: vpaddw %zmm0, %zmm1, %zmm0
2735 ; AVX512F-32-NEXT: retl
2757 ; AVX512F-32-LABEL: test_int_x86_avx512_mask_psllv32hi:
2758 ; AVX512F-32: # BB#0:
2759 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
2760 ; AVX512F-32-NEXT: vpsllvw %zmm1, %zmm0, %zmm2 {%k1}
2761 ; AVX512F-32-NEXT: vpsllvw %zmm1, %zmm0, %zmm3 {%k1} {z}
2762 ; AVX512F-32-NEXT: vpsllvw %zmm1, %zmm0, %zmm0
2763 ; AVX512F-32-NEXT: vpaddw %zmm3, %zmm2, %zmm1
2764 ; AVX512F-32-NEXT: vpaddw %zmm0, %zmm1, %zmm0
2765 ; AVX512F-32-NEXT: retl
2787 ; AVX512F-32-LABEL: test_int_x86_avx512_mask_pmovzxb_w_512:
2788 ; AVX512F-32: # BB#0:
2789 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
2790 ; AVX512F-32-NEXT: vpmovzxbw {{.*#+}} zmm1 {%k1} = ymm0[0],zero,ymm0[1],zero,ymm0[2],zero,ymm0[3…
2791 ; AVX512F-32-NEXT: vpmovzxbw {{.*#+}} zmm2 {%k1} {z} = ymm0[0],zero,ymm0[1],zero,ymm0[2],zero,ym…
2792 ; AVX512F-32-NEXT: vpmovzxbw {{.*#+}} zmm0 = ymm0[0],zero,ymm0[1],zero,ymm0[2],zero,ymm0[3],zero…
2793 ; AVX512F-32-NEXT: vpaddw %zmm2, %zmm1, %zmm1
2794 ; AVX512F-32-NEXT: vpaddw %zmm0, %zmm1, %zmm0
2795 ; AVX512F-32-NEXT: retl
2817 ; AVX512F-32-LABEL: test_int_x86_avx512_mask_pmovsxb_w_512:
2818 ; AVX512F-32: # BB#0:
2819 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
2820 ; AVX512F-32-NEXT: vpmovsxbw %ymm0, %zmm1 {%k1}
2821 ; AVX512F-32-NEXT: vpmovsxbw %ymm0, %zmm2 {%k1} {z}
2822 ; AVX512F-32-NEXT: vpmovsxbw %ymm0, %zmm0
2823 ; AVX512F-32-NEXT: vpaddw %zmm2, %zmm1, %zmm1
2824 ; AVX512F-32-NEXT: vpaddw %zmm0, %zmm1, %zmm0
2825 ; AVX512F-32-NEXT: retl
2847 ; AVX512F-32-LABEL: test_int_x86_avx512_mask_permvar_hi_512:
2848 ; AVX512F-32: # BB#0:
2849 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
2850 ; AVX512F-32-NEXT: vpermw %zmm0, %zmm1, %zmm2 {%k1}
2851 ; AVX512F-32-NEXT: vpermw %zmm0, %zmm1, %zmm3 {%k1} {z}
2852 ; AVX512F-32-NEXT: vpermw %zmm0, %zmm1, %zmm0
2853 ; AVX512F-32-NEXT: vpaddw %zmm3, %zmm2, %zmm1
2854 ; AVX512F-32-NEXT: vpaddw %zmm0, %zmm1, %zmm0
2855 ; AVX512F-32-NEXT: retl
2877 ; AVX512F-32-LABEL: test_int_x86_avx512_ptestm_b_512:
2878 ; AVX512F-32: # BB#0:
2879 ; AVX512F-32-NEXT: subl $20, %esp
2880 ; AVX512F-32-NEXT: .Ltmp6:
2881 ; AVX512F-32-NEXT: .cfi_def_cfa_offset 24
2882 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k0
2883 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
2884 ; AVX512F-32-NEXT: kunpckdq %k0, %k1, %k1
2885 ; AVX512F-32-NEXT: vptestmb %zmm1, %zmm0, %k0 {%k1}
2886 ; AVX512F-32-NEXT: kmovq %k0, (%esp)
2887 ; AVX512F-32-NEXT: vptestmb %zmm1, %zmm0, %k0
2888 ; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
2889 ; AVX512F-32-NEXT: movl (%esp), %eax
2890 ; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %edx
2891 ; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
2892 ; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
2893 ; AVX512F-32-NEXT: addl $20, %esp
2894 ; AVX512F-32-NEXT: retl
2914 ; AVX512F-32-LABEL: test_int_x86_avx512_ptestm_w_512:
2915 ; AVX512F-32: # BB#0:
2916 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
2917 ; AVX512F-32-NEXT: vptestmw %zmm1, %zmm0, %k0 {%k1}
2918 ; AVX512F-32-NEXT: kmovd %k0, %ecx
2919 ; AVX512F-32-NEXT: vptestmw %zmm1, %zmm0, %k0
2920 ; AVX512F-32-NEXT: kmovd %k0, %eax
2921 ; AVX512F-32-NEXT: addl %ecx, %eax
2922 ; AVX512F-32-NEXT: retl
2942 ; AVX512F-32-LABEL: test_int_x86_avx512_ptestnm_b_512:
2943 ; AVX512F-32: # BB#0:
2944 ; AVX512F-32-NEXT: subl $20, %esp
2945 ; AVX512F-32-NEXT: .Ltmp7:
2946 ; AVX512F-32-NEXT: .cfi_def_cfa_offset 24
2947 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k0
2948 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
2949 ; AVX512F-32-NEXT: kunpckdq %k0, %k1, %k1
2950 ; AVX512F-32-NEXT: vptestnmb %zmm1, %zmm0, %k0 {%k1}
2951 ; AVX512F-32-NEXT: kmovq %k0, (%esp)
2952 ; AVX512F-32-NEXT: vptestnmb %zmm1, %zmm0, %k0
2953 ; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
2954 ; AVX512F-32-NEXT: movl (%esp), %eax
2955 ; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %edx
2956 ; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
2957 ; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
2958 ; AVX512F-32-NEXT: addl $20, %esp
2959 ; AVX512F-32-NEXT: retl
2979 ; AVX512F-32-LABEL: test_int_x86_avx512_ptestnm_w_512:
2980 ; AVX512F-32: # BB#0:
2981 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
2982 ; AVX512F-32-NEXT: vptestnmw %zmm1, %zmm0, %k0 {%k1}
2983 ; AVX512F-32-NEXT: kmovd %k0, %ecx
2984 ; AVX512F-32-NEXT: vptestnmw %zmm1, %zmm0, %k0
2985 ; AVX512F-32-NEXT: kmovd %k0, %eax
2986 ; AVX512F-32-NEXT: addl %ecx, %eax
2987 ; AVX512F-32-NEXT: retl
3007 ; AVX512F-32-LABEL: test_int_x86_avx512_mask_pbroadcast_b_gpr_512:
3008 ; AVX512F-32: # BB#0:
3009 ; AVX512F-32-NEXT: movb {{[0-9]+}}(%esp), %al
3010 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k0
3011 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
3012 ; AVX512F-32-NEXT: kunpckdq %k0, %k1, %k1
3013 ; AVX512F-32-NEXT: vpbroadcastb %al, %zmm1 {%k1} {z}
3014 ; AVX512F-32-NEXT: vpbroadcastb %al, %zmm0 {%k1}
3015 ; AVX512F-32-NEXT: vpbroadcastb %al, %zmm2
3016 ; AVX512F-32-NEXT: vpaddb %zmm0, %zmm2, %zmm0
3017 ; AVX512F-32-NEXT: vpaddb %zmm0, %zmm1, %zmm0
3018 ; AVX512F-32-NEXT: retl
3040 ; AVX512F-32-LABEL: test_int_x86_avx512_mask_pbroadcast_w_gpr_512:
3041 ; AVX512F-32: # BB#0:
3042 ; AVX512F-32-NEXT: movzwl {{[0-9]+}}(%esp), %eax
3043 ; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
3044 ; AVX512F-32-NEXT: vpbroadcastw %ax, %zmm0 {%k1}
3045 ; AVX512F-32-NEXT: vpbroadcastw %ax, %zmm1 {%k1} {z}
3046 ; AVX512F-32-NEXT: vpbroadcastw %ax, %zmm2
3047 ; AVX512F-32-NEXT: vpaddw %zmm0, %zmm2, %zmm0
3048 ; AVX512F-32-NEXT: vpaddw %zmm0, %zmm1, %zmm0
3049 ; AVX512F-32-NEXT: retl