• Home
  • Raw
  • Download

Lines Matching refs:AVX512F

4 …e=i686-unknown-unknown -mattr=+avx512f -O3 | FileCheck %s --check-prefixes=CHECK,AVX512F,AVX512F-32
5 …x86_64-unknown-unknown -mattr=+avx512f -O3 | FileCheck %s --check-prefixes=CHECK,AVX512F,AVX512F-64
93 ; AVX512F-32-LABEL: strict_vector_fptosi_v4f64_to_v4i64:
94 ; AVX512F-32: # %bb.0:
95 ; AVX512F-32-NEXT: pushl %ebp
96 ; AVX512F-32-NEXT: .cfi_def_cfa_offset 8
97 ; AVX512F-32-NEXT: .cfi_offset %ebp, -8
98 ; AVX512F-32-NEXT: movl %esp, %ebp
99 ; AVX512F-32-NEXT: .cfi_def_cfa_register %ebp
100 ; AVX512F-32-NEXT: andl $-8, %esp
101 ; AVX512F-32-NEXT: subl $32, %esp
102 ; AVX512F-32-NEXT: vmovlps %xmm0, {{[0-9]+}}(%esp)
103 ; AVX512F-32-NEXT: vmovhps %xmm0, {{[0-9]+}}(%esp)
104 ; AVX512F-32-NEXT: vextractf128 $1, %ymm0, %xmm0
105 ; AVX512F-32-NEXT: vmovlps %xmm0, {{[0-9]+}}(%esp)
106 ; AVX512F-32-NEXT: vmovhps %xmm0, (%esp)
107 ; AVX512F-32-NEXT: fldl {{[0-9]+}}(%esp)
108 ; AVX512F-32-NEXT: fisttpll {{[0-9]+}}(%esp)
109 ; AVX512F-32-NEXT: fldl {{[0-9]+}}(%esp)
110 ; AVX512F-32-NEXT: fisttpll {{[0-9]+}}(%esp)
111 ; AVX512F-32-NEXT: fldl {{[0-9]+}}(%esp)
112 ; AVX512F-32-NEXT: fisttpll {{[0-9]+}}(%esp)
113 ; AVX512F-32-NEXT: fldl (%esp)
114 ; AVX512F-32-NEXT: fisttpll (%esp)
115 ; AVX512F-32-NEXT: wait
116 ; AVX512F-32-NEXT: vmovd {{.*#+}} xmm0 = mem[0],zero,zero,zero
117 ; AVX512F-32-NEXT: vpinsrd $1, {{[0-9]+}}(%esp), %xmm0, %xmm0
118 ; AVX512F-32-NEXT: vpinsrd $2, {{[0-9]+}}(%esp), %xmm0, %xmm0
119 ; AVX512F-32-NEXT: vpinsrd $3, {{[0-9]+}}(%esp), %xmm0, %xmm0
120 ; AVX512F-32-NEXT: vmovd {{.*#+}} xmm1 = mem[0],zero,zero,zero
121 ; AVX512F-32-NEXT: vpinsrd $1, {{[0-9]+}}(%esp), %xmm1, %xmm1
122 ; AVX512F-32-NEXT: vpinsrd $2, (%esp), %xmm1, %xmm1
123 ; AVX512F-32-NEXT: vpinsrd $3, {{[0-9]+}}(%esp), %xmm1, %xmm1
124 ; AVX512F-32-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm0
125 ; AVX512F-32-NEXT: movl %ebp, %esp
126 ; AVX512F-32-NEXT: popl %ebp
127 ; AVX512F-32-NEXT: .cfi_def_cfa %esp, 4
128 ; AVX512F-32-NEXT: retl
130 ; AVX512F-64-LABEL: strict_vector_fptosi_v4f64_to_v4i64:
131 ; AVX512F-64: # %bb.0:
132 ; AVX512F-64-NEXT: vextractf128 $1, %ymm0, %xmm1
133 ; AVX512F-64-NEXT: vcvttsd2si %xmm1, %rax
134 ; AVX512F-64-NEXT: vmovq %rax, %xmm2
135 ; AVX512F-64-NEXT: vpermilpd {{.*#+}} xmm1 = xmm1[1,0]
136 ; AVX512F-64-NEXT: vcvttsd2si %xmm1, %rax
137 ; AVX512F-64-NEXT: vmovq %rax, %xmm1
138 ; AVX512F-64-NEXT: vpunpcklqdq {{.*#+}} xmm1 = xmm2[0],xmm1[0]
139 ; AVX512F-64-NEXT: vcvttsd2si %xmm0, %rax
140 ; AVX512F-64-NEXT: vmovq %rax, %xmm2
141 ; AVX512F-64-NEXT: vpermilpd {{.*#+}} xmm0 = xmm0[1,0]
142 ; AVX512F-64-NEXT: vcvttsd2si %xmm0, %rax
143 ; AVX512F-64-NEXT: vmovq %rax, %xmm0
144 ; AVX512F-64-NEXT: vpunpcklqdq {{.*#+}} xmm0 = xmm2[0],xmm0[0]
145 ; AVX512F-64-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm0
146 ; AVX512F-64-NEXT: retq
369 ; AVX512F-32-LABEL: strict_vector_fptoui_v4f64_to_v4i64:
370 ; AVX512F-32: # %bb.0:
371 ; AVX512F-32-NEXT: pushl %ebp
372 ; AVX512F-32-NEXT: .cfi_def_cfa_offset 8
373 ; AVX512F-32-NEXT: .cfi_offset %ebp, -8
374 ; AVX512F-32-NEXT: movl %esp, %ebp
375 ; AVX512F-32-NEXT: .cfi_def_cfa_register %ebp
376 ; AVX512F-32-NEXT: pushl %ebx
377 ; AVX512F-32-NEXT: andl $-8, %esp
378 ; AVX512F-32-NEXT: subl $40, %esp
379 ; AVX512F-32-NEXT: .cfi_offset %ebx, -12
380 ; AVX512F-32-NEXT: vextractf128 $1, %ymm0, %xmm1
381 ; AVX512F-32-NEXT: vpermilpd {{.*#+}} xmm2 = xmm1[1,0]
382 ; AVX512F-32-NEXT: vmovsd {{.*#+}} xmm3 = mem[0],zero
383 ; AVX512F-32-NEXT: xorl %eax, %eax
384 ; AVX512F-32-NEXT: vcomisd %xmm3, %xmm2
385 ; AVX512F-32-NEXT: setae %al
386 ; AVX512F-32-NEXT: kmovw %eax, %k1
387 ; AVX512F-32-NEXT: vmovsd %xmm3, %xmm3, %xmm4 {%k1} {z}
388 ; AVX512F-32-NEXT: vsubsd %xmm4, %xmm2, %xmm2
389 ; AVX512F-32-NEXT: vmovsd %xmm2, (%esp)
390 ; AVX512F-32-NEXT: xorl %edx, %edx
391 ; AVX512F-32-NEXT: vcomisd %xmm3, %xmm1
392 ; AVX512F-32-NEXT: setae %dl
393 ; AVX512F-32-NEXT: kmovw %edx, %k1
394 ; AVX512F-32-NEXT: vmovsd %xmm3, %xmm3, %xmm2 {%k1} {z}
395 ; AVX512F-32-NEXT: vsubsd %xmm2, %xmm1, %xmm1
396 ; AVX512F-32-NEXT: vmovsd %xmm1, {{[0-9]+}}(%esp)
397 ; AVX512F-32-NEXT: vpermilpd {{.*#+}} xmm1 = xmm0[1,0]
398 ; AVX512F-32-NEXT: xorl %ecx, %ecx
399 ; AVX512F-32-NEXT: vcomisd %xmm3, %xmm1
400 ; AVX512F-32-NEXT: setae %cl
401 ; AVX512F-32-NEXT: kmovw %ecx, %k1
402 ; AVX512F-32-NEXT: vmovsd %xmm3, %xmm3, %xmm2 {%k1} {z}
403 ; AVX512F-32-NEXT: vsubsd %xmm2, %xmm1, %xmm1
404 ; AVX512F-32-NEXT: vmovsd %xmm1, {{[0-9]+}}(%esp)
405 ; AVX512F-32-NEXT: xorl %ebx, %ebx
406 ; AVX512F-32-NEXT: vcomisd %xmm3, %xmm0
407 ; AVX512F-32-NEXT: setae %bl
408 ; AVX512F-32-NEXT: kmovw %ebx, %k1
409 ; AVX512F-32-NEXT: vmovsd %xmm3, %xmm3, %xmm1 {%k1} {z}
410 ; AVX512F-32-NEXT: vsubsd %xmm1, %xmm0, %xmm0
411 ; AVX512F-32-NEXT: vmovsd %xmm0, {{[0-9]+}}(%esp)
412 ; AVX512F-32-NEXT: fldl (%esp)
413 ; AVX512F-32-NEXT: fisttpll (%esp)
414 ; AVX512F-32-NEXT: fldl {{[0-9]+}}(%esp)
415 ; AVX512F-32-NEXT: fisttpll {{[0-9]+}}(%esp)
416 ; AVX512F-32-NEXT: fldl {{[0-9]+}}(%esp)
417 ; AVX512F-32-NEXT: fisttpll {{[0-9]+}}(%esp)
418 ; AVX512F-32-NEXT: fldl {{[0-9]+}}(%esp)
419 ; AVX512F-32-NEXT: fisttpll {{[0-9]+}}(%esp)
420 ; AVX512F-32-NEXT: wait
421 ; AVX512F-32-NEXT: shll $31, %eax
422 ; AVX512F-32-NEXT: xorl {{[0-9]+}}(%esp), %eax
423 ; AVX512F-32-NEXT: shll $31, %edx
424 ; AVX512F-32-NEXT: xorl {{[0-9]+}}(%esp), %edx
425 ; AVX512F-32-NEXT: vmovd {{.*#+}} xmm0 = mem[0],zero,zero,zero
426 ; AVX512F-32-NEXT: vpinsrd $1, %edx, %xmm0, %xmm0
427 ; AVX512F-32-NEXT: vpinsrd $2, (%esp), %xmm0, %xmm0
428 ; AVX512F-32-NEXT: vpinsrd $3, %eax, %xmm0, %xmm0
429 ; AVX512F-32-NEXT: shll $31, %ecx
430 ; AVX512F-32-NEXT: xorl {{[0-9]+}}(%esp), %ecx
431 ; AVX512F-32-NEXT: shll $31, %ebx
432 ; AVX512F-32-NEXT: xorl {{[0-9]+}}(%esp), %ebx
433 ; AVX512F-32-NEXT: vmovd {{.*#+}} xmm1 = mem[0],zero,zero,zero
434 ; AVX512F-32-NEXT: vpinsrd $1, %ebx, %xmm1, %xmm1
435 ; AVX512F-32-NEXT: vpinsrd $2, {{[0-9]+}}(%esp), %xmm1, %xmm1
436 ; AVX512F-32-NEXT: vpinsrd $3, %ecx, %xmm1, %xmm1
437 ; AVX512F-32-NEXT: vinserti128 $1, %xmm0, %ymm1, %ymm0
438 ; AVX512F-32-NEXT: leal -4(%ebp), %esp
439 ; AVX512F-32-NEXT: popl %ebx
440 ; AVX512F-32-NEXT: popl %ebp
441 ; AVX512F-32-NEXT: .cfi_def_cfa %esp, 4
442 ; AVX512F-32-NEXT: retl
444 ; AVX512F-64-LABEL: strict_vector_fptoui_v4f64_to_v4i64:
445 ; AVX512F-64: # %bb.0:
446 ; AVX512F-64-NEXT: vextractf128 $1, %ymm0, %xmm1
447 ; AVX512F-64-NEXT: vcvttsd2usi %xmm1, %rax
448 ; AVX512F-64-NEXT: vmovq %rax, %xmm2
449 ; AVX512F-64-NEXT: vpermilpd {{.*#+}} xmm1 = xmm1[1,0]
450 ; AVX512F-64-NEXT: vcvttsd2usi %xmm1, %rax
451 ; AVX512F-64-NEXT: vmovq %rax, %xmm1
452 ; AVX512F-64-NEXT: vpunpcklqdq {{.*#+}} xmm1 = xmm2[0],xmm1[0]
453 ; AVX512F-64-NEXT: vcvttsd2usi %xmm0, %rax
454 ; AVX512F-64-NEXT: vmovq %rax, %xmm2
455 ; AVX512F-64-NEXT: vpermilpd {{.*#+}} xmm0 = xmm0[1,0]
456 ; AVX512F-64-NEXT: vcvttsd2usi %xmm0, %rax
457 ; AVX512F-64-NEXT: vmovq %rax, %xmm0
458 ; AVX512F-64-NEXT: vpunpcklqdq {{.*#+}} xmm0 = xmm2[0],xmm0[0]
459 ; AVX512F-64-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm0
460 ; AVX512F-64-NEXT: retq
626 ; AVX512F-32-LABEL: strict_vector_fptosi_v4f32_to_v4i64:
627 ; AVX512F-32: # %bb.0:
628 ; AVX512F-32-NEXT: pushl %ebp
629 ; AVX512F-32-NEXT: .cfi_def_cfa_offset 8
630 ; AVX512F-32-NEXT: .cfi_offset %ebp, -8
631 ; AVX512F-32-NEXT: movl %esp, %ebp
632 ; AVX512F-32-NEXT: .cfi_def_cfa_register %ebp
633 ; AVX512F-32-NEXT: andl $-8, %esp
634 ; AVX512F-32-NEXT: subl $32, %esp
635 ; AVX512F-32-NEXT: vmovd %xmm0, {{[0-9]+}}(%esp)
636 ; AVX512F-32-NEXT: vextractps $1, %xmm0, {{[0-9]+}}(%esp)
637 ; AVX512F-32-NEXT: vextractps $2, %xmm0, {{[0-9]+}}(%esp)
638 ; AVX512F-32-NEXT: vextractps $3, %xmm0, (%esp)
639 ; AVX512F-32-NEXT: flds {{[0-9]+}}(%esp)
640 ; AVX512F-32-NEXT: fisttpll {{[0-9]+}}(%esp)
641 ; AVX512F-32-NEXT: flds {{[0-9]+}}(%esp)
642 ; AVX512F-32-NEXT: fisttpll {{[0-9]+}}(%esp)
643 ; AVX512F-32-NEXT: flds {{[0-9]+}}(%esp)
644 ; AVX512F-32-NEXT: fisttpll {{[0-9]+}}(%esp)
645 ; AVX512F-32-NEXT: flds (%esp)
646 ; AVX512F-32-NEXT: fisttpll (%esp)
647 ; AVX512F-32-NEXT: wait
648 ; AVX512F-32-NEXT: vmovd {{.*#+}} xmm0 = mem[0],zero,zero,zero
649 ; AVX512F-32-NEXT: vpinsrd $1, {{[0-9]+}}(%esp), %xmm0, %xmm0
650 ; AVX512F-32-NEXT: vpinsrd $2, {{[0-9]+}}(%esp), %xmm0, %xmm0
651 ; AVX512F-32-NEXT: vpinsrd $3, {{[0-9]+}}(%esp), %xmm0, %xmm0
652 ; AVX512F-32-NEXT: vmovd {{.*#+}} xmm1 = mem[0],zero,zero,zero
653 ; AVX512F-32-NEXT: vpinsrd $1, {{[0-9]+}}(%esp), %xmm1, %xmm1
654 ; AVX512F-32-NEXT: vpinsrd $2, (%esp), %xmm1, %xmm1
655 ; AVX512F-32-NEXT: vpinsrd $3, {{[0-9]+}}(%esp), %xmm1, %xmm1
656 ; AVX512F-32-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm0
657 ; AVX512F-32-NEXT: movl %ebp, %esp
658 ; AVX512F-32-NEXT: popl %ebp
659 ; AVX512F-32-NEXT: .cfi_def_cfa %esp, 4
660 ; AVX512F-32-NEXT: retl
662 ; AVX512F-64-LABEL: strict_vector_fptosi_v4f32_to_v4i64:
663 ; AVX512F-64: # %bb.0:
664 ; AVX512F-64-NEXT: vpermilps {{.*#+}} xmm1 = xmm0[3,3,3,3]
665 ; AVX512F-64-NEXT: vcvttss2si %xmm1, %rax
666 ; AVX512F-64-NEXT: vmovq %rax, %xmm1
667 ; AVX512F-64-NEXT: vpermilpd {{.*#+}} xmm2 = xmm0[1,0]
668 ; AVX512F-64-NEXT: vcvttss2si %xmm2, %rax
669 ; AVX512F-64-NEXT: vmovq %rax, %xmm2
670 ; AVX512F-64-NEXT: vpunpcklqdq {{.*#+}} xmm1 = xmm2[0],xmm1[0]
671 ; AVX512F-64-NEXT: vcvttss2si %xmm0, %rax
672 ; AVX512F-64-NEXT: vmovq %rax, %xmm2
673 ; AVX512F-64-NEXT: vmovshdup {{.*#+}} xmm0 = xmm0[1,1,3,3]
674 ; AVX512F-64-NEXT: vcvttss2si %xmm0, %rax
675 ; AVX512F-64-NEXT: vmovq %rax, %xmm0
676 ; AVX512F-64-NEXT: vpunpcklqdq {{.*#+}} xmm0 = xmm2[0],xmm0[0]
677 ; AVX512F-64-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm0
678 ; AVX512F-64-NEXT: retq
900 ; AVX512F-32-LABEL: strict_vector_fptoui_v4f32_to_v4i64:
901 ; AVX512F-32: # %bb.0:
902 ; AVX512F-32-NEXT: pushl %ebp
903 ; AVX512F-32-NEXT: .cfi_def_cfa_offset 8
904 ; AVX512F-32-NEXT: .cfi_offset %ebp, -8
905 ; AVX512F-32-NEXT: movl %esp, %ebp
906 ; AVX512F-32-NEXT: .cfi_def_cfa_register %ebp
907 ; AVX512F-32-NEXT: pushl %ebx
908 ; AVX512F-32-NEXT: andl $-8, %esp
909 ; AVX512F-32-NEXT: subl $40, %esp
910 ; AVX512F-32-NEXT: .cfi_offset %ebx, -12
911 ; AVX512F-32-NEXT: vpermilps {{.*#+}} xmm1 = xmm0[3,3,3,3]
912 ; AVX512F-32-NEXT: vmovss {{.*#+}} xmm2 = mem[0],zero,zero,zero
913 ; AVX512F-32-NEXT: xorl %eax, %eax
914 ; AVX512F-32-NEXT: vcomiss %xmm2, %xmm1
915 ; AVX512F-32-NEXT: setae %al
916 ; AVX512F-32-NEXT: kmovw %eax, %k1
917 ; AVX512F-32-NEXT: vmovss %xmm2, %xmm2, %xmm3 {%k1} {z}
918 ; AVX512F-32-NEXT: vsubss %xmm3, %xmm1, %xmm1
919 ; AVX512F-32-NEXT: vmovss %xmm1, (%esp)
920 ; AVX512F-32-NEXT: vpermilpd {{.*#+}} xmm1 = xmm0[1,0]
921 ; AVX512F-32-NEXT: xorl %edx, %edx
922 ; AVX512F-32-NEXT: vcomiss %xmm2, %xmm1
923 ; AVX512F-32-NEXT: setae %dl
924 ; AVX512F-32-NEXT: kmovw %edx, %k1
925 ; AVX512F-32-NEXT: vmovss %xmm2, %xmm2, %xmm3 {%k1} {z}
926 ; AVX512F-32-NEXT: vsubss %xmm3, %xmm1, %xmm1
927 ; AVX512F-32-NEXT: vmovss %xmm1, {{[0-9]+}}(%esp)
928 ; AVX512F-32-NEXT: vmovshdup {{.*#+}} xmm1 = xmm0[1,1,3,3]
929 ; AVX512F-32-NEXT: xorl %ecx, %ecx
930 ; AVX512F-32-NEXT: vcomiss %xmm2, %xmm1
931 ; AVX512F-32-NEXT: setae %cl
932 ; AVX512F-32-NEXT: kmovw %ecx, %k1
933 ; AVX512F-32-NEXT: vmovss %xmm2, %xmm2, %xmm3 {%k1} {z}
934 ; AVX512F-32-NEXT: vsubss %xmm3, %xmm1, %xmm1
935 ; AVX512F-32-NEXT: vmovss %xmm1, {{[0-9]+}}(%esp)
936 ; AVX512F-32-NEXT: xorl %ebx, %ebx
937 ; AVX512F-32-NEXT: vcomiss %xmm2, %xmm0
938 ; AVX512F-32-NEXT: setae %bl
939 ; AVX512F-32-NEXT: kmovw %ebx, %k1
940 ; AVX512F-32-NEXT: vmovss %xmm2, %xmm2, %xmm1 {%k1} {z}
941 ; AVX512F-32-NEXT: vsubss %xmm1, %xmm0, %xmm0
942 ; AVX512F-32-NEXT: vmovss %xmm0, {{[0-9]+}}(%esp)
943 ; AVX512F-32-NEXT: flds (%esp)
944 ; AVX512F-32-NEXT: fisttpll (%esp)
945 ; AVX512F-32-NEXT: flds {{[0-9]+}}(%esp)
946 ; AVX512F-32-NEXT: fisttpll {{[0-9]+}}(%esp)
947 ; AVX512F-32-NEXT: flds {{[0-9]+}}(%esp)
948 ; AVX512F-32-NEXT: fisttpll {{[0-9]+}}(%esp)
949 ; AVX512F-32-NEXT: flds {{[0-9]+}}(%esp)
950 ; AVX512F-32-NEXT: fisttpll {{[0-9]+}}(%esp)
951 ; AVX512F-32-NEXT: wait
952 ; AVX512F-32-NEXT: shll $31, %eax
953 ; AVX512F-32-NEXT: xorl {{[0-9]+}}(%esp), %eax
954 ; AVX512F-32-NEXT: shll $31, %edx
955 ; AVX512F-32-NEXT: xorl {{[0-9]+}}(%esp), %edx
956 ; AVX512F-32-NEXT: vmovd {{.*#+}} xmm0 = mem[0],zero,zero,zero
957 ; AVX512F-32-NEXT: vpinsrd $1, %edx, %xmm0, %xmm0
958 ; AVX512F-32-NEXT: vpinsrd $2, (%esp), %xmm0, %xmm0
959 ; AVX512F-32-NEXT: vpinsrd $3, %eax, %xmm0, %xmm0
960 ; AVX512F-32-NEXT: shll $31, %ecx
961 ; AVX512F-32-NEXT: xorl {{[0-9]+}}(%esp), %ecx
962 ; AVX512F-32-NEXT: shll $31, %ebx
963 ; AVX512F-32-NEXT: xorl {{[0-9]+}}(%esp), %ebx
964 ; AVX512F-32-NEXT: vmovd {{.*#+}} xmm1 = mem[0],zero,zero,zero
965 ; AVX512F-32-NEXT: vpinsrd $1, %ebx, %xmm1, %xmm1
966 ; AVX512F-32-NEXT: vpinsrd $2, {{[0-9]+}}(%esp), %xmm1, %xmm1
967 ; AVX512F-32-NEXT: vpinsrd $3, %ecx, %xmm1, %xmm1
968 ; AVX512F-32-NEXT: vinserti128 $1, %xmm0, %ymm1, %ymm0
969 ; AVX512F-32-NEXT: leal -4(%ebp), %esp
970 ; AVX512F-32-NEXT: popl %ebx
971 ; AVX512F-32-NEXT: popl %ebp
972 ; AVX512F-32-NEXT: .cfi_def_cfa %esp, 4
973 ; AVX512F-32-NEXT: retl
975 ; AVX512F-64-LABEL: strict_vector_fptoui_v4f32_to_v4i64:
976 ; AVX512F-64: # %bb.0:
977 ; AVX512F-64-NEXT: vpermilps {{.*#+}} xmm1 = xmm0[3,3,3,3]
978 ; AVX512F-64-NEXT: vcvttss2usi %xmm1, %rax
979 ; AVX512F-64-NEXT: vmovq %rax, %xmm1
980 ; AVX512F-64-NEXT: vpermilpd {{.*#+}} xmm2 = xmm0[1,0]
981 ; AVX512F-64-NEXT: vcvttss2usi %xmm2, %rax
982 ; AVX512F-64-NEXT: vmovq %rax, %xmm2
983 ; AVX512F-64-NEXT: vpunpcklqdq {{.*#+}} xmm1 = xmm2[0],xmm1[0]
984 ; AVX512F-64-NEXT: vcvttss2usi %xmm0, %rax
985 ; AVX512F-64-NEXT: vmovq %rax, %xmm2
986 ; AVX512F-64-NEXT: vmovshdup {{.*#+}} xmm0 = xmm0[1,1,3,3]
987 ; AVX512F-64-NEXT: vcvttss2usi %xmm0, %rax
988 ; AVX512F-64-NEXT: vmovq %rax, %xmm0
989 ; AVX512F-64-NEXT: vpunpcklqdq {{.*#+}} xmm0 = xmm2[0],xmm0[0]
990 ; AVX512F-64-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm0
991 ; AVX512F-64-NEXT: retq
1131 ; AVX512F-LABEL: strict_vector_fptoui_v4f64_to_v4i32:
1132 ; AVX512F: # %bb.0:
1133 ; AVX512F-NEXT: vmovaps %ymm0, %ymm0
1134 ; AVX512F-NEXT: vcvttpd2udq %zmm0, %ymm0
1135 ; AVX512F-NEXT: # kill: def $xmm0 killed $xmm0 killed $ymm0
1136 ; AVX512F-NEXT: vzeroupper
1137 ; AVX512F-NEXT: ret{{[l|q]}}
1196 ; AVX512F-LABEL: strict_vector_fptosi_v4f64_to_v4i8:
1197 ; AVX512F: # %bb.0:
1198 ; AVX512F-NEXT: vcvttpd2dq %ymm0, %xmm0
1199 ; AVX512F-NEXT: vpackssdw %xmm0, %xmm0, %xmm0
1200 ; AVX512F-NEXT: vpacksswb %xmm0, %xmm0, %xmm0
1201 ; AVX512F-NEXT: vzeroupper
1202 ; AVX512F-NEXT: ret{{[l|q]}}
1239 ; AVX512F-LABEL: strict_vector_fptoui_v4f64_to_v4i8:
1240 ; AVX512F: # %bb.0:
1241 ; AVX512F-NEXT: vcvttpd2dq %ymm0, %xmm0
1242 ; AVX512F-NEXT: vpackusdw %xmm0, %xmm0, %xmm0
1243 ; AVX512F-NEXT: vpackuswb %xmm0, %xmm0, %xmm0
1244 ; AVX512F-NEXT: vzeroupper
1245 ; AVX512F-NEXT: ret{{[l|q]}}
1280 ; AVX512F-LABEL: strict_vector_fptosi_v4f64_to_v4i1:
1281 ; AVX512F: # %bb.0:
1282 ; AVX512F-NEXT: vcvttpd2dq %ymm0, %xmm0
1283 ; AVX512F-NEXT: vptestmd %zmm0, %zmm0, %k1
1284 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
1285 ; AVX512F-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
1286 ; AVX512F-NEXT: vzeroupper
1287 ; AVX512F-NEXT: ret{{[l|q]}}
1326 ; AVX512F-LABEL: strict_vector_fptoui_v4f64_to_v4i1:
1327 ; AVX512F: # %bb.0:
1328 ; AVX512F-NEXT: vcvttpd2dq %ymm0, %xmm0
1329 ; AVX512F-NEXT: vpslld $31, %xmm0, %xmm0
1330 ; AVX512F-NEXT: vptestmd %zmm0, %zmm0, %k1
1331 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
1332 ; AVX512F-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
1333 ; AVX512F-NEXT: vzeroupper
1334 ; AVX512F-NEXT: ret{{[l|q]}}
1393 ; AVX512F-LABEL: strict_vector_fptoui_v8f32_to_v8i32:
1394 ; AVX512F: # %bb.0:
1395 ; AVX512F-NEXT: vmovaps %ymm0, %ymm0
1396 ; AVX512F-NEXT: vcvttps2udq %zmm0, %zmm0
1397 ; AVX512F-NEXT: # kill: def $ymm0 killed $ymm0 killed $zmm0
1398 ; AVX512F-NEXT: ret{{[l|q]}}
1430 ; AVX512F-LABEL: strict_vector_fptosi_v8f32_to_v8i16:
1431 ; AVX512F: # %bb.0:
1432 ; AVX512F-NEXT: vcvttps2dq %ymm0, %ymm0
1433 ; AVX512F-NEXT: vpmovdw %zmm0, %ymm0
1434 ; AVX512F-NEXT: # kill: def $xmm0 killed $xmm0 killed $ymm0
1435 ; AVX512F-NEXT: vzeroupper
1436 ; AVX512F-NEXT: ret{{[l|q]}}
1473 ; AVX512F-LABEL: strict_vector_fptoui_v8f32_to_v8i16:
1474 ; AVX512F: # %bb.0:
1475 ; AVX512F-NEXT: vcvttps2dq %ymm0, %ymm0
1476 ; AVX512F-NEXT: vpmovdw %zmm0, %ymm0
1477 ; AVX512F-NEXT: # kill: def $xmm0 killed $xmm0 killed $ymm0
1478 ; AVX512F-NEXT: vzeroupper
1479 ; AVX512F-NEXT: ret{{[l|q]}}
1517 ; AVX512F-LABEL: strict_vector_fptosi_v8f32_to_v8i8:
1518 ; AVX512F: # %bb.0:
1519 ; AVX512F-NEXT: vcvttps2dq %ymm0, %ymm0
1520 ; AVX512F-NEXT: vpmovdb %zmm0, %xmm0
1521 ; AVX512F-NEXT: vzeroupper
1522 ; AVX512F-NEXT: ret{{[l|q]}}
1559 ; AVX512F-LABEL: strict_vector_fptoui_v8f32_to_v8i8:
1560 ; AVX512F: # %bb.0:
1561 ; AVX512F-NEXT: vcvttps2dq %ymm0, %ymm0
1562 ; AVX512F-NEXT: vpmovdb %zmm0, %xmm0
1563 ; AVX512F-NEXT: vzeroupper
1564 ; AVX512F-NEXT: ret{{[l|q]}}
1600 ; AVX512F-LABEL: strict_vector_fptosi_v8f32_to_v8i1:
1601 ; AVX512F: # %bb.0:
1602 ; AVX512F-NEXT: vcvttps2dq %ymm0, %ymm0
1603 ; AVX512F-NEXT: vptestmd %zmm0, %zmm0, %k1
1604 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
1605 ; AVX512F-NEXT: vpmovdw %zmm0, %ymm0
1606 ; AVX512F-NEXT: # kill: def $xmm0 killed $xmm0 killed $ymm0
1607 ; AVX512F-NEXT: vzeroupper
1608 ; AVX512F-NEXT: ret{{[l|q]}}
1652 ; AVX512F-LABEL: strict_vector_fptoui_v8f32_to_v8i1:
1653 ; AVX512F: # %bb.0:
1654 ; AVX512F-NEXT: vcvttps2dq %ymm0, %ymm0
1655 ; AVX512F-NEXT: vpslld $31, %ymm0, %ymm0
1656 ; AVX512F-NEXT: vptestmd %zmm0, %zmm0, %k1
1657 ; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
1658 ; AVX512F-NEXT: vpmovdw %zmm0, %ymm0
1659 ; AVX512F-NEXT: # kill: def $xmm0 killed $xmm0 killed $ymm0
1660 ; AVX512F-NEXT: vzeroupper
1661 ; AVX512F-NEXT: ret{{[l|q]}}