llvm.org GIT mirror llvm / b82cf8d
[X86] Make ANY_EXTEND from vXi1 Custom for more types. We should be able to support ANY_EXTEND for any types we support ZERO_EXTEND for. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320675 91177308-0d34-0410-b5e6-96231b3b80d8 Craig Topper 2 years ago
6 changed file(s) with 774 addition(s) and 9524 deletion(s). Raw diff Collapse all Expand all
12401240 setOperationAction(ISD::ZERO_EXTEND, MVT::v2i64, Custom);
12411241 setOperationAction(ISD::SIGN_EXTEND, MVT::v4i32, Custom);
12421242 setOperationAction(ISD::SIGN_EXTEND, MVT::v2i64, Custom);
1243 setOperationAction(ISD::ANY_EXTEND, MVT::v4i32, Custom);
1244 setOperationAction(ISD::ANY_EXTEND, MVT::v2i64, Custom);
12431245 }
12441246
12451247 setOperationAction(ISD::TRUNCATE, MVT::v8i32, Custom);
12531255
12541256 setOperationAction(ISD::SIGN_EXTEND, MVT::v16i8, Custom);
12551257 setOperationAction(ISD::ZERO_EXTEND, MVT::v16i8, Custom);
1258 setOperationAction(ISD::ANY_EXTEND, MVT::v16i8, Custom);
12561259 setOperationAction(ISD::SIGN_EXTEND, MVT::v8i16, Custom);
12571260 setOperationAction(ISD::ZERO_EXTEND, MVT::v8i16, Custom);
1261 setOperationAction(ISD::ANY_EXTEND, MVT::v8i16, Custom);
12581262
12591263 for (auto VT : { MVT::v16f32, MVT::v8f64 }) {
12601264 setOperationAction(ISD::FFLOOR, VT, Legal);
14451449 setOperationAction(ISD::SELECT, MVT::v64i1, Custom);
14461450 setOperationAction(ISD::SIGN_EXTEND, MVT::v32i8, Custom);
14471451 setOperationAction(ISD::ZERO_EXTEND, MVT::v32i8, Custom);
1452 setOperationAction(ISD::ANY_EXTEND, MVT::v32i8, Custom);
14481453 setOperationAction(ISD::SIGN_EXTEND, MVT::v32i16, Custom);
14491454 setOperationAction(ISD::ZERO_EXTEND, MVT::v32i16, Custom);
14501455 setOperationAction(ISD::ANY_EXTEND, MVT::v32i16, Custom);
14521457 setOperationAction(ISD::VECTOR_SHUFFLE, MVT::v64i8, Custom);
14531458 setOperationAction(ISD::SIGN_EXTEND, MVT::v64i8, Custom);
14541459 setOperationAction(ISD::ZERO_EXTEND, MVT::v64i8, Custom);
1460 setOperationAction(ISD::ANY_EXTEND, MVT::v64i8, Custom);
14551461 setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v32i1, Custom);
14561462 setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v64i1, Custom);
14571463 setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v32i16, Custom);
799799 ; KNL-NEXT: xorl %eax, %eax
800800 ; KNL-NEXT: cmpl %esi, %edi
801801 ; KNL-NEXT: setb %al
802 ; KNL-NEXT: vpcmpltud %zmm3, %zmm1, %k0
803 ; KNL-NEXT: kshiftlw $14, %k0, %k1
804 ; KNL-NEXT: kshiftrw $15, %k1, %k1
805 ; KNL-NEXT: kmovw %k1, %ecx
806 ; KNL-NEXT: kshiftlw $15, %k0, %k1
807 ; KNL-NEXT: kshiftrw $15, %k1, %k1
808 ; KNL-NEXT: kmovw %k1, %edx
809 ; KNL-NEXT: vmovd %edx, %xmm1
810 ; KNL-NEXT: vpinsrb $1, %ecx, %xmm1, %xmm1
811 ; KNL-NEXT: kshiftlw $13, %k0, %k1
812 ; KNL-NEXT: kshiftrw $15, %k1, %k1
813 ; KNL-NEXT: kmovw %k1, %ecx
814 ; KNL-NEXT: vpinsrb $2, %ecx, %xmm1, %xmm1
815 ; KNL-NEXT: kshiftlw $12, %k0, %k1
816 ; KNL-NEXT: kshiftrw $15, %k1, %k1
817 ; KNL-NEXT: kmovw %k1, %ecx
818 ; KNL-NEXT: vpinsrb $3, %ecx, %xmm1, %xmm1
819 ; KNL-NEXT: kshiftlw $11, %k0, %k1
820 ; KNL-NEXT: kshiftrw $15, %k1, %k1
821 ; KNL-NEXT: kmovw %k1, %ecx
822 ; KNL-NEXT: vpinsrb $4, %ecx, %xmm1, %xmm1
823 ; KNL-NEXT: kshiftlw $10, %k0, %k1
824 ; KNL-NEXT: kshiftrw $15, %k1, %k1
825 ; KNL-NEXT: kmovw %k1, %ecx
826 ; KNL-NEXT: vpinsrb $5, %ecx, %xmm1, %xmm1
827 ; KNL-NEXT: kshiftlw $9, %k0, %k1
828 ; KNL-NEXT: kshiftrw $15, %k1, %k1
829 ; KNL-NEXT: kmovw %k1, %ecx
830 ; KNL-NEXT: vpinsrb $6, %ecx, %xmm1, %xmm1
831 ; KNL-NEXT: kshiftlw $8, %k0, %k1
832 ; KNL-NEXT: kshiftrw $15, %k1, %k1
833 ; KNL-NEXT: kmovw %k1, %ecx
834 ; KNL-NEXT: vpinsrb $7, %ecx, %xmm1, %xmm1
835 ; KNL-NEXT: kshiftlw $7, %k0, %k1
836 ; KNL-NEXT: kshiftrw $15, %k1, %k1
837 ; KNL-NEXT: kmovw %k1, %ecx
838 ; KNL-NEXT: vpinsrb $8, %ecx, %xmm1, %xmm1
839 ; KNL-NEXT: kshiftlw $6, %k0, %k1
840 ; KNL-NEXT: kshiftrw $15, %k1, %k1
841 ; KNL-NEXT: kmovw %k1, %ecx
842 ; KNL-NEXT: vpinsrb $9, %ecx, %xmm1, %xmm1
843 ; KNL-NEXT: kshiftlw $5, %k0, %k1
844 ; KNL-NEXT: kshiftrw $15, %k1, %k1
845 ; KNL-NEXT: kmovw %k1, %ecx
846 ; KNL-NEXT: vpinsrb $10, %ecx, %xmm1, %xmm1
847 ; KNL-NEXT: kshiftlw $4, %k0, %k1
848 ; KNL-NEXT: kshiftrw $15, %k1, %k1
849 ; KNL-NEXT: kmovw %k1, %ecx
850 ; KNL-NEXT: vpinsrb $11, %ecx, %xmm1, %xmm1
851 ; KNL-NEXT: kshiftlw $3, %k0, %k1
852 ; KNL-NEXT: kshiftrw $15, %k1, %k1
853 ; KNL-NEXT: kmovw %k1, %ecx
854 ; KNL-NEXT: vpinsrb $12, %ecx, %xmm1, %xmm1
855 ; KNL-NEXT: kshiftlw $2, %k0, %k1
856 ; KNL-NEXT: kshiftrw $15, %k1, %k1
857 ; KNL-NEXT: kmovw %k1, %ecx
858 ; KNL-NEXT: vpinsrb $13, %ecx, %xmm1, %xmm1
859 ; KNL-NEXT: kshiftlw $1, %k0, %k1
860 ; KNL-NEXT: kshiftrw $15, %k1, %k1
861 ; KNL-NEXT: kmovw %k1, %ecx
862 ; KNL-NEXT: vpinsrb $14, %ecx, %xmm1, %xmm1
863 ; KNL-NEXT: kshiftrw $15, %k0, %k0
864 ; KNL-NEXT: kmovw %k0, %ecx
865 ; KNL-NEXT: vpinsrb $15, %ecx, %xmm1, %xmm1
866 ; KNL-NEXT: vpcmpltud %zmm2, %zmm0, %k0
867 ; KNL-NEXT: kshiftlw $14, %k0, %k1
868 ; KNL-NEXT: kshiftrw $15, %k1, %k1
869 ; KNL-NEXT: kmovw %k1, %ecx
870 ; KNL-NEXT: kshiftlw $15, %k0, %k1
871 ; KNL-NEXT: kshiftrw $15, %k1, %k1
872 ; KNL-NEXT: kmovw %k1, %edx
873 ; KNL-NEXT: vmovd %edx, %xmm0
874 ; KNL-NEXT: vpinsrb $1, %ecx, %xmm0, %xmm0
875 ; KNL-NEXT: kshiftlw $13, %k0, %k1
876 ; KNL-NEXT: kshiftrw $15, %k1, %k1
877 ; KNL-NEXT: kmovw %k1, %ecx
878 ; KNL-NEXT: vpinsrb $2, %ecx, %xmm0, %xmm0
879 ; KNL-NEXT: kshiftlw $12, %k0, %k1
880 ; KNL-NEXT: kshiftrw $15, %k1, %k1
881 ; KNL-NEXT: kmovw %k1, %ecx
882 ; KNL-NEXT: vpinsrb $3, %ecx, %xmm0, %xmm0
883 ; KNL-NEXT: kshiftlw $11, %k0, %k1
884 ; KNL-NEXT: kshiftrw $15, %k1, %k1
885 ; KNL-NEXT: kmovw %k1, %ecx
886 ; KNL-NEXT: vpinsrb $4, %ecx, %xmm0, %xmm0
887 ; KNL-NEXT: kshiftlw $10, %k0, %k1
888 ; KNL-NEXT: kshiftrw $15, %k1, %k1
889 ; KNL-NEXT: kmovw %k1, %ecx
890 ; KNL-NEXT: vpinsrb $5, %ecx, %xmm0, %xmm0
891 ; KNL-NEXT: kshiftlw $9, %k0, %k1
892 ; KNL-NEXT: kshiftrw $15, %k1, %k1
893 ; KNL-NEXT: kmovw %k1, %ecx
894 ; KNL-NEXT: vpinsrb $6, %ecx, %xmm0, %xmm0
895 ; KNL-NEXT: kshiftlw $8, %k0, %k1
896 ; KNL-NEXT: kshiftrw $15, %k1, %k1
897 ; KNL-NEXT: kmovw %k1, %ecx
898 ; KNL-NEXT: vpinsrb $7, %ecx, %xmm0, %xmm0
899 ; KNL-NEXT: kshiftlw $7, %k0, %k1
900 ; KNL-NEXT: kshiftrw $15, %k1, %k1
901 ; KNL-NEXT: kmovw %k1, %ecx
902 ; KNL-NEXT: vpinsrb $8, %ecx, %xmm0, %xmm0
903 ; KNL-NEXT: kshiftlw $6, %k0, %k1
904 ; KNL-NEXT: kshiftrw $15, %k1, %k1
905 ; KNL-NEXT: kmovw %k1, %ecx
906 ; KNL-NEXT: vpinsrb $9, %ecx, %xmm0, %xmm0
907 ; KNL-NEXT: kshiftlw $5, %k0, %k1
908 ; KNL-NEXT: kshiftrw $15, %k1, %k1
909 ; KNL-NEXT: kmovw %k1, %ecx
910 ; KNL-NEXT: vpinsrb $10, %ecx, %xmm0, %xmm0
911 ; KNL-NEXT: kshiftlw $4, %k0, %k1
912 ; KNL-NEXT: kshiftrw $15, %k1, %k1
913 ; KNL-NEXT: kmovw %k1, %ecx
914 ; KNL-NEXT: vpinsrb $11, %ecx, %xmm0, %xmm0
915 ; KNL-NEXT: kshiftlw $3, %k0, %k1
916 ; KNL-NEXT: kshiftrw $15, %k1, %k1
917 ; KNL-NEXT: kmovw %k1, %ecx
918 ; KNL-NEXT: vpinsrb $12, %ecx, %xmm0, %xmm0
919 ; KNL-NEXT: kshiftlw $2, %k0, %k1
920 ; KNL-NEXT: kshiftrw $15, %k1, %k1
921 ; KNL-NEXT: kmovw %k1, %ecx
922 ; KNL-NEXT: vpinsrb $13, %ecx, %xmm0, %xmm0
923 ; KNL-NEXT: kshiftlw $1, %k0, %k1
924 ; KNL-NEXT: kshiftrw $15, %k1, %k1
925 ; KNL-NEXT: kmovw %k1, %ecx
926 ; KNL-NEXT: vpinsrb $14, %ecx, %xmm0, %xmm0
927 ; KNL-NEXT: kshiftrw $15, %k0, %k0
928 ; KNL-NEXT: kmovw %k0, %ecx
929 ; KNL-NEXT: vpinsrb $15, %ecx, %xmm0, %xmm0
802 ; KNL-NEXT: vpcmpltud %zmm2, %zmm0, %k1
803 ; KNL-NEXT: movl {{.*}}(%rip), %ecx
804 ; KNL-NEXT: vpbroadcastd %ecx, %zmm0 {%k1} {z}
805 ; KNL-NEXT: vpmovdb %zmm0, %xmm0
806 ; KNL-NEXT: vpcmpltud %zmm3, %zmm1, %k1
807 ; KNL-NEXT: vpbroadcastd %ecx, %zmm1 {%k1} {z}
808 ; KNL-NEXT: vpmovdb %zmm1, %xmm1
930809 ; KNL-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm0
931810 ; KNL-NEXT: vpsllw $7, %ymm0, %ymm0
932811 ; KNL-NEXT: vpand {{.*}}(%rip), %ymm0, %ymm0
18021802 ; KNL-NEXT: vmovups (%rdi), %zmm2
18031803 ; KNL-NEXT: vmovups 64(%rdi), %zmm3
18041804 ; KNL-NEXT: vcmpltps %zmm0, %zmm2, %k1
1805 ; KNL-NEXT: kshiftlw $14, %k1, %k0
1806 ; KNL-NEXT: kshiftrw $15, %k0, %k0
1807 ; KNL-NEXT: kmovw %k0, %eax
1808 ; KNL-NEXT: kshiftlw $15, %k1, %k0
1809 ; KNL-NEXT: kshiftrw $15, %k0, %k0
1810 ; KNL-NEXT: kmovw %k0, %ecx
1811 ; KNL-NEXT: vmovd %ecx, %xmm2
1812 ; KNL-NEXT: vpinsrb $1, %eax, %xmm2, %xmm2
1813 ; KNL-NEXT: kshiftlw $13, %k1, %k0
1814 ; KNL-NEXT: kshiftrw $15, %k0, %k0
1815 ; KNL-NEXT: kmovw %k0, %eax
1816 ; KNL-NEXT: vpinsrb $2, %eax, %xmm2, %xmm2
1817 ; KNL-NEXT: kshiftlw $12, %k1, %k0
1818 ; KNL-NEXT: kshiftrw $15, %k0, %k0
1819 ; KNL-NEXT: kmovw %k0, %eax
1820 ; KNL-NEXT: vpinsrb $3, %eax, %xmm2, %xmm2
1821 ; KNL-NEXT: kshiftlw $11, %k1, %k0
1822 ; KNL-NEXT: kshiftrw $15, %k0, %k0
1823 ; KNL-NEXT: kmovw %k0, %eax
1824 ; KNL-NEXT: vpinsrb $4, %eax, %xmm2, %xmm2
1825 ; KNL-NEXT: kshiftlw $10, %k1, %k0
1826 ; KNL-NEXT: kshiftrw $15, %k0, %k0
1827 ; KNL-NEXT: kmovw %k0, %eax
1828 ; KNL-NEXT: vpinsrb $5, %eax, %xmm2, %xmm2
1829 ; KNL-NEXT: kshiftlw $9, %k1, %k0
1830 ; KNL-NEXT: kshiftrw $15, %k0, %k0
1831 ; KNL-NEXT: kmovw %k0, %eax
1832 ; KNL-NEXT: vpinsrb $6, %eax, %xmm2, %xmm2
1833 ; KNL-NEXT: kshiftlw $8, %k1, %k0
1834 ; KNL-NEXT: kshiftrw $15, %k0, %k0
1835 ; KNL-NEXT: kmovw %k0, %eax
1836 ; KNL-NEXT: vpinsrb $7, %eax, %xmm2, %xmm2
1837 ; KNL-NEXT: kshiftlw $7, %k1, %k0
1838 ; KNL-NEXT: kshiftrw $15, %k0, %k0
1839 ; KNL-NEXT: kmovw %k0, %eax
1840 ; KNL-NEXT: vpinsrb $8, %eax, %xmm2, %xmm2
1841 ; KNL-NEXT: kshiftlw $6, %k1, %k0
1842 ; KNL-NEXT: kshiftrw $15, %k0, %k0
1843 ; KNL-NEXT: kmovw %k0, %eax
1844 ; KNL-NEXT: vpinsrb $9, %eax, %xmm2, %xmm2
1845 ; KNL-NEXT: kshiftlw $5, %k1, %k0
1846 ; KNL-NEXT: kshiftrw $15, %k0, %k0
1847 ; KNL-NEXT: kmovw %k0, %eax
1848 ; KNL-NEXT: vpinsrb $10, %eax, %xmm2, %xmm2
1849 ; KNL-NEXT: kshiftlw $4, %k1, %k0
1850 ; KNL-NEXT: kshiftrw $15, %k0, %k0
1851 ; KNL-NEXT: kmovw %k0, %eax
1852 ; KNL-NEXT: vpinsrb $11, %eax, %xmm2, %xmm2
1853 ; KNL-NEXT: kshiftlw $3, %k1, %k0
1854 ; KNL-NEXT: kshiftrw $15, %k0, %k0
1855 ; KNL-NEXT: kmovw %k0, %eax
1856 ; KNL-NEXT: vpinsrb $12, %eax, %xmm2, %xmm2
1857 ; KNL-NEXT: kshiftlw $2, %k1, %k0
1858 ; KNL-NEXT: kshiftrw $15, %k0, %k0
1859 ; KNL-NEXT: kmovw %k0, %eax
1860 ; KNL-NEXT: vpinsrb $13, %eax, %xmm2, %xmm2
1861 ; KNL-NEXT: kshiftlw $1, %k1, %k0
1862 ; KNL-NEXT: kshiftrw $15, %k0, %k0
1863 ; KNL-NEXT: kmovw %k0, %eax
1864 ; KNL-NEXT: vpinsrb $14, %eax, %xmm2, %xmm2
1865 ; KNL-NEXT: kshiftrw $15, %k1, %k0
1866 ; KNL-NEXT: kmovw %k0, %eax
1867 ; KNL-NEXT: vpinsrb $15, %eax, %xmm2, %xmm2
1805 ; KNL-NEXT: movl {{.*}}(%rip), %eax
1806 ; KNL-NEXT: vpbroadcastd %eax, %zmm2 {%k1} {z}
1807 ; KNL-NEXT: vpmovdb %zmm2, %xmm2
18681808 ; KNL-NEXT: vcmpltps %zmm1, %zmm3, %k2
1869 ; KNL-NEXT: kshiftlw $14, %k2, %k0
1870 ; KNL-NEXT: kshiftrw $15, %k0, %k0
1871 ; KNL-NEXT: kmovw %k0, %eax
1872 ; KNL-NEXT: kshiftlw $15, %k2, %k0
1873 ; KNL-NEXT: kshiftrw $15, %k0, %k0
1874 ; KNL-NEXT: kmovw %k0, %ecx
1875 ; KNL-NEXT: vmovd %ecx, %xmm3
1876 ; KNL-NEXT: vpinsrb $1, %eax, %xmm3, %xmm3
1877 ; KNL-NEXT: kshiftlw $13, %k2, %k0
1878 ; KNL-NEXT: kshiftrw $15, %k0, %k0
1879 ; KNL-NEXT: kmovw %k0, %eax
1880 ; KNL-NEXT: vpinsrb $2, %eax, %xmm3, %xmm3
1881 ; KNL-NEXT: kshiftlw $12, %k2, %k0
1882 ; KNL-NEXT: kshiftrw $15, %k0, %k0
1883 ; KNL-NEXT: kmovw %k0, %eax
1884 ; KNL-NEXT: vpinsrb $3, %eax, %xmm3, %xmm3
1885 ; KNL-NEXT: kshiftlw $11, %k2, %k0
1886 ; KNL-NEXT: kshiftrw $15, %k0, %k0
1887 ; KNL-NEXT: kmovw %k0, %eax
1888 ; KNL-NEXT: vpinsrb $4, %eax, %xmm3, %xmm3
1889 ; KNL-NEXT: kshiftlw $10, %k2, %k0
1890 ; KNL-NEXT: kshiftrw $15, %k0, %k0
1891 ; KNL-NEXT: kmovw %k0, %eax
1892 ; KNL-NEXT: vpinsrb $5, %eax, %xmm3, %xmm3
1893 ; KNL-NEXT: kshiftlw $9, %k2, %k0
1894 ; KNL-NEXT: kshiftrw $15, %k0, %k0
1895 ; KNL-NEXT: kmovw %k0, %eax
1896 ; KNL-NEXT: vpinsrb $6, %eax, %xmm3, %xmm3
1897 ; KNL-NEXT: kshiftlw $8, %k2, %k0
1898 ; KNL-NEXT: kshiftrw $15, %k0, %k0
1899 ; KNL-NEXT: kmovw %k0, %eax
1900 ; KNL-NEXT: vpinsrb $7, %eax, %xmm3, %xmm3
1901 ; KNL-NEXT: kshiftlw $7, %k2, %k0
1902 ; KNL-NEXT: kshiftrw $15, %k0, %k0
1903 ; KNL-NEXT: kmovw %k0, %eax
1904 ; KNL-NEXT: vpinsrb $8, %eax, %xmm3, %xmm3
1905 ; KNL-NEXT: kshiftlw $6, %k2, %k0
1906 ; KNL-NEXT: kshiftrw $15, %k0, %k0
1907 ; KNL-NEXT: kmovw %k0, %eax
1908 ; KNL-NEXT: vpinsrb $9, %eax, %xmm3, %xmm3
1909 ; KNL-NEXT: kshiftlw $5, %k2, %k0
1910 ; KNL-NEXT: kshiftrw $15, %k0, %k0
1911 ; KNL-NEXT: kmovw %k0, %eax
1912 ; KNL-NEXT: vpinsrb $10, %eax, %xmm3, %xmm3
1913 ; KNL-NEXT: kshiftlw $4, %k2, %k0
1914 ; KNL-NEXT: kshiftrw $15, %k0, %k0
1915 ; KNL-NEXT: kmovw %k0, %eax
1916 ; KNL-NEXT: vpinsrb $11, %eax, %xmm3, %xmm3
1917 ; KNL-NEXT: kshiftlw $3, %k2, %k0
1918 ; KNL-NEXT: kshiftrw $15, %k0, %k0
1919 ; KNL-NEXT: kmovw %k0, %eax
1920 ; KNL-NEXT: vpinsrb $12, %eax, %xmm3, %xmm3
1921 ; KNL-NEXT: kshiftlw $2, %k2, %k0
1922 ; KNL-NEXT: kshiftrw $15, %k0, %k0
1923 ; KNL-NEXT: kmovw %k0, %eax
1924 ; KNL-NEXT: vpinsrb $13, %eax, %xmm3, %xmm3
1925 ; KNL-NEXT: kshiftlw $1, %k2, %k0
1926 ; KNL-NEXT: kshiftrw $15, %k0, %k0
1927 ; KNL-NEXT: kmovw %k0, %eax
1928 ; KNL-NEXT: vpinsrb $14, %eax, %xmm3, %xmm3
1929 ; KNL-NEXT: kshiftrw $15, %k2, %k0
1930 ; KNL-NEXT: kmovw %k0, %eax
1931 ; KNL-NEXT: vpinsrb $15, %eax, %xmm3, %xmm3
1932 ; KNL-NEXT: vmovups 68(%rdi), %zmm5 {%k2} {z}
1933 ; KNL-NEXT: vmovups 4(%rdi), %zmm4 {%k1} {z}
1934 ; KNL-NEXT: vcmpltps %zmm4, %zmm0, %k0
1935 ; KNL-NEXT: kshiftlw $14, %k0, %k1
1936 ; KNL-NEXT: kshiftrw $15, %k1, %k1
1937 ; KNL-NEXT: kmovw %k1, %eax
1938 ; KNL-NEXT: kshiftlw $15, %k0, %k1
1939 ; KNL-NEXT: kshiftrw $15, %k1, %k1
1940 ; KNL-NEXT: kmovw %k1, %ecx
1941 ; KNL-NEXT: vmovd %ecx, %xmm4
1942 ; KNL-NEXT: vpinsrb $1, %eax, %xmm4, %xmm4
1943 ; KNL-NEXT: kshiftlw $13, %k0, %k1
1944 ; KNL-NEXT: kshiftrw $15, %k1, %k1
1945 ; KNL-NEXT: kmovw %k1, %eax
1946 ; KNL-NEXT: vpinsrb $2, %eax, %xmm4, %xmm4
1947 ; KNL-NEXT: kshiftlw $12, %k0, %k1
1948 ; KNL-NEXT: kshiftrw $15, %k1, %k1
1949 ; KNL-NEXT: kmovw %k1, %eax
1950 ; KNL-NEXT: vpinsrb $3, %eax, %xmm4, %xmm4
1951 ; KNL-NEXT: kshiftlw $11, %k0, %k1
1952 ; KNL-NEXT: kshiftrw $15, %k1, %k1
1953 ; KNL-NEXT: kmovw %k1, %eax
1954 ; KNL-NEXT: vpinsrb $4, %eax, %xmm4, %xmm4
1955 ; KNL-NEXT: kshiftlw $10, %k0, %k1
1956 ; KNL-NEXT: kshiftrw $15, %k1, %k1
1957 ; KNL-NEXT: kmovw %k1, %eax
1958 ; KNL-NEXT: vpinsrb $5, %eax, %xmm4, %xmm4
1959 ; KNL-NEXT: kshiftlw $9, %k0, %k1
1960 ; KNL-NEXT: kshiftrw $15, %k1, %k1
1961 ; KNL-NEXT: kmovw %k1, %eax
1962 ; KNL-NEXT: vpinsrb $6, %eax, %xmm4, %xmm4
1963 ; KNL-NEXT: kshiftlw $8, %k0, %k1
1964 ; KNL-NEXT: kshiftrw $15, %k1, %k1
1965 ; KNL-NEXT: kmovw %k1, %eax
1966 ; KNL-NEXT: vpinsrb $7, %eax, %xmm4, %xmm4
1967 ; KNL-NEXT: kshiftlw $7, %k0, %k1
1968 ; KNL-NEXT: kshiftrw $15, %k1, %k1
1969 ; KNL-NEXT: kmovw %k1, %eax
1970 ; KNL-NEXT: vpinsrb $8, %eax, %xmm4, %xmm4
1971 ; KNL-NEXT: kshiftlw $6, %k0, %k1
1972 ; KNL-NEXT: kshiftrw $15, %k1, %k1
1973 ; KNL-NEXT: kmovw %k1, %eax
1974 ; KNL-NEXT: vpinsrb $9, %eax, %xmm4, %xmm4
1975 ; KNL-NEXT: kshiftlw $5, %k0, %k1
1976 ; KNL-NEXT: kshiftrw $15, %k1, %k1
1977 ; KNL-NEXT: kmovw %k1, %eax
1978 ; KNL-NEXT: vpinsrb $10, %eax, %xmm4, %xmm4
1979 ; KNL-NEXT: kshiftlw $4, %k0, %k1
1980 ; KNL-NEXT: kshiftrw $15, %k1, %k1
1981 ; KNL-NEXT: kmovw %k1, %eax
1982 ; KNL-NEXT: vpinsrb $11, %eax, %xmm4, %xmm4
1983 ; KNL-NEXT: kshiftlw $3, %k0, %k1
1984 ; KNL-NEXT: kshiftrw $15, %k1, %k1
1985 ; KNL-NEXT: kmovw %k1, %eax
1986 ; KNL-NEXT: vpinsrb $12, %eax, %xmm4, %xmm4
1987 ; KNL-NEXT: kshiftlw $2, %k0, %k1
1988 ; KNL-NEXT: kshiftrw $15, %k1, %k1
1989 ; KNL-NEXT: kmovw %k1, %eax
1990 ; KNL-NEXT: vpinsrb $13, %eax, %xmm4, %xmm4
1991 ; KNL-NEXT: kshiftlw $1, %k0, %k1
1992 ; KNL-NEXT: kshiftrw $15, %k1, %k1
1993 ; KNL-NEXT: kmovw %k1, %eax
1994 ; KNL-NEXT: vpinsrb $14, %eax, %xmm4, %xmm4
1995 ; KNL-NEXT: kshiftrw $15, %k0, %k0
1996 ; KNL-NEXT: kmovw %k0, %eax
1997 ; KNL-NEXT: vpinsrb $15, %eax, %xmm4, %xmm4
1998 ; KNL-NEXT: vcmpltps %zmm5, %zmm1, %k0
1999 ; KNL-NEXT: kshiftlw $14, %k0, %k1
2000 ; KNL-NEXT: kshiftrw $15, %k1, %k1
2001 ; KNL-NEXT: kmovw %k1, %eax
2002 ; KNL-NEXT: kshiftlw $15, %k0, %k1
2003 ; KNL-NEXT: kshiftrw $15, %k1, %k1
2004 ; KNL-NEXT: kmovw %k1, %ecx
2005 ; KNL-NEXT: vmovd %ecx, %xmm5
2006 ; KNL-NEXT: vpinsrb $1, %eax, %xmm5, %xmm5
2007 ; KNL-NEXT: kshiftlw $13, %k0, %k1
2008 ; KNL-NEXT: kshiftrw $15, %k1, %k1
2009 ; KNL-NEXT: kmovw %k1, %eax
2010 ; KNL-NEXT: vpinsrb $2, %eax, %xmm5, %xmm5
2011 ; KNL-NEXT: kshiftlw $12, %k0, %k1
2012 ; KNL-NEXT: kshiftrw $15, %k1, %k1
2013 ; KNL-NEXT: kmovw %k1, %eax
2014 ; KNL-NEXT: vpinsrb $3, %eax, %xmm5, %xmm5
2015 ; KNL-NEXT: kshiftlw $11, %k0, %k1
2016 ; KNL-NEXT: kshiftrw $15, %k1, %k1
2017 ; KNL-NEXT: kmovw %k1, %eax
2018 ; KNL-NEXT: vpinsrb $4, %eax, %xmm5, %xmm5
2019 ; KNL-NEXT: kshiftlw $10, %k0, %k1
2020 ; KNL-NEXT: kshiftrw $15, %k1, %k1
2021 ; KNL-NEXT: kmovw %k1, %eax
2022 ; KNL-NEXT: vpinsrb $5, %eax, %xmm5, %xmm5
2023 ; KNL-NEXT: kshiftlw $9, %k0, %k1
2024 ; KNL-NEXT: kshiftrw $15, %k1, %k1
2025 ; KNL-NEXT: kmovw %k1, %eax
2026 ; KNL-NEXT: vpinsrb $6, %eax, %xmm5, %xmm5
2027 ; KNL-NEXT: kshiftlw $8, %k0, %k1
2028 ; KNL-NEXT: kshiftrw $15, %k1, %k1
2029 ; KNL-NEXT: kmovw %k1, %eax
2030 ; KNL-NEXT: vpinsrb $7, %eax, %xmm5, %xmm5
2031 ; KNL-NEXT: kshiftlw $7, %k0, %k1
2032 ; KNL-NEXT: kshiftrw $15, %k1, %k1
2033 ; KNL-NEXT: kmovw %k1, %eax
2034 ; KNL-NEXT: vpinsrb $8, %eax, %xmm5, %xmm5
2035 ; KNL-NEXT: kshiftlw $6, %k0, %k1
2036 ; KNL-NEXT: kshiftrw $15, %k1, %k1
2037 ; KNL-NEXT: kmovw %k1, %eax
2038 ; KNL-NEXT: vpinsrb $9, %eax, %xmm5, %xmm5
2039 ; KNL-NEXT: kshiftlw $5, %k0, %k1
2040 ; KNL-NEXT: kshiftrw $15, %k1, %k1
2041 ; KNL-NEXT: kmovw %k1, %eax
2042 ; KNL-NEXT: vpinsrb $10, %eax, %xmm5, %xmm5
2043 ; KNL-NEXT: kshiftlw $4, %k0, %k1
2044 ; KNL-NEXT: kshiftrw $15, %k1, %k1
2045 ; KNL-NEXT: kmovw %k1, %eax
2046 ; KNL-NEXT: vpinsrb $11, %eax, %xmm5, %xmm5
2047 ; KNL-NEXT: kshiftlw $3, %k0, %k1
2048 ; KNL-NEXT: kshiftrw $15, %k1, %k1
2049 ; KNL-NEXT: kmovw %k1, %eax
2050 ; KNL-NEXT: vpinsrb $12, %eax, %xmm5, %xmm5
2051 ; KNL-NEXT: kshiftlw $2, %k0, %k1
2052 ; KNL-NEXT: kshiftrw $15, %k1, %k1
2053 ; KNL-NEXT: kmovw %k1, %eax
2054 ; KNL-NEXT: vpinsrb $13, %eax, %xmm5, %xmm5
2055 ; KNL-NEXT: kshiftlw $1, %k0, %k1
2056 ; KNL-NEXT: kshiftrw $15, %k1, %k1
2057 ; KNL-NEXT: kmovw %k1, %eax
2058 ; KNL-NEXT: vpinsrb $14, %eax, %xmm5, %xmm5
2059 ; KNL-NEXT: kshiftrw $15, %k0, %k0
2060 ; KNL-NEXT: kmovw %k0, %eax
2061 ; KNL-NEXT: vpinsrb $15, %eax, %xmm5, %xmm5
2062 ; KNL-NEXT: vpor %xmm5, %xmm3, %xmm3
1809 ; KNL-NEXT: vpbroadcastd %eax, %zmm3 {%k2} {z}
1810 ; KNL-NEXT: vpmovdb %zmm3, %xmm3
1811 ; KNL-NEXT: vmovups 68(%rdi), %zmm4 {%k2} {z}
1812 ; KNL-NEXT: vmovups 4(%rdi), %zmm5 {%k1} {z}
1813 ; KNL-NEXT: vcmpltps %zmm5, %zmm0, %k1
1814 ; KNL-NEXT: vpbroadcastd %eax, %zmm5 {%k1} {z}
1815 ; KNL-NEXT: vpmovdb %zmm5, %xmm5
1816 ; KNL-NEXT: vpor %xmm5, %xmm2, %xmm2
1817 ; KNL-NEXT: vcmpltps %zmm4, %zmm1, %k1
1818 ; KNL-NEXT: vpbroadcastd %eax, %zmm4 {%k1} {z}
1819 ; KNL-NEXT: vpmovdb %zmm4, %xmm4
1820 ; KNL-NEXT: vpor %xmm4, %xmm3, %xmm3
20631821 ; KNL-NEXT: vpmovsxbd %xmm3, %zmm3
20641822 ; KNL-NEXT: vpslld $31, %zmm3, %zmm3
20651823 ; KNL-NEXT: vptestmd %zmm3, %zmm3, %k0
20661824 ; KNL-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2067 ; KNL-NEXT: vpor %xmm4, %xmm2, %xmm2
20681825 ; KNL-NEXT: vpmovsxbd %xmm2, %zmm2
20691826 ; KNL-NEXT: vpslld $31, %zmm2, %zmm2
20701827 ; KNL-NEXT: vptestmd %zmm2, %zmm2, %k0
21481905 ; AVX512DQ-NEXT: vmovups (%rdi), %zmm2
21491906 ; AVX512DQ-NEXT: vmovups 64(%rdi), %zmm3
21501907 ; AVX512DQ-NEXT: vcmpltps %zmm0, %zmm2, %k1
2151 ; AVX512DQ-NEXT: kshiftlw $14, %k1, %k0
2152 ; AVX512DQ-NEXT: kshiftrw $15, %k0, %k0
2153 ; AVX512DQ-NEXT: kmovw %k0, %eax
2154 ; AVX512DQ-NEXT: kshiftlw $15, %k1, %k0
2155 ; AVX512DQ-NEXT: kshiftrw $15, %k0, %k0
2156 ; AVX512DQ-NEXT: kmovw %k0, %ecx
2157 ; AVX512DQ-NEXT: vmovd %ecx, %xmm2
2158 ; AVX512DQ-NEXT: vpinsrb $1, %eax, %xmm2, %xmm2
2159 ; AVX512DQ-NEXT: kshiftlw $13, %k1, %k0
2160 ; AVX512DQ-NEXT: kshiftrw $15, %k0, %k0
2161 ; AVX512DQ-NEXT: kmovw %k0, %eax
2162 ; AVX512DQ-NEXT: vpinsrb $2, %eax, %xmm2, %xmm2
2163 ; AVX512DQ-NEXT: kshiftlw $12, %k1, %k0
2164 ; AVX512DQ-NEXT: kshiftrw $15, %k0, %k0
2165 ; AVX512DQ-NEXT: kmovw %k0, %eax
2166 ; AVX512DQ-NEXT: vpinsrb $3, %eax, %xmm2, %xmm2
2167 ; AVX512DQ-NEXT: kshiftlw $11, %k1, %k0
2168 ; AVX512DQ-NEXT: kshiftrw $15, %k0, %k0
2169 ; AVX512DQ-NEXT: kmovw %k0, %eax
2170 ; AVX512DQ-NEXT: vpinsrb $4, %eax, %xmm2, %xmm2
2171 ; AVX512DQ-NEXT: kshiftlw $10, %k1, %k0
2172 ; AVX512DQ-NEXT: kshiftrw $15, %k0, %k0
2173 ; AVX512DQ-NEXT: kmovw %k0, %eax
2174 ; AVX512DQ-NEXT: vpinsrb $5, %eax, %xmm2, %xmm2
2175 ; AVX512DQ-NEXT: kshiftlw $9, %k1, %k0
2176 ; AVX512DQ-NEXT: kshiftrw $15, %k0, %k0
2177 ; AVX512DQ-NEXT: kmovw %k0, %eax
2178 ; AVX512DQ-NEXT: vpinsrb $6, %eax, %xmm2, %xmm2
2179 ; AVX512DQ-NEXT: kshiftlw $8, %k1, %k0
2180 ; AVX512DQ-NEXT: kshiftrw $15, %k0, %k0
2181 ; AVX512DQ-NEXT: kmovw %k0, %eax
2182 ; AVX512DQ-NEXT: vpinsrb $7, %eax, %xmm2, %xmm2
2183 ; AVX512DQ-NEXT: kshiftlw $7, %k1, %k0
2184 ; AVX512DQ-NEXT: kshiftrw $15, %k0, %k0
2185 ; AVX512DQ-NEXT: kmovw %k0, %eax
2186 ; AVX512DQ-NEXT: vpinsrb $8, %eax, %xmm2, %xmm2
2187 ; AVX512DQ-NEXT: kshiftlw $6, %k1, %k0
2188 ; AVX512DQ-NEXT: kshiftrw $15, %k0, %k0
2189 ; AVX512DQ-NEXT: kmovw %k0, %eax
2190 ; AVX512DQ-NEXT: vpinsrb $9, %eax, %xmm2, %xmm2
2191 ; AVX512DQ-NEXT: kshiftlw $5, %k1, %k0
2192 ; AVX512DQ-NEXT: kshiftrw $15, %k0, %k0
2193 ; AVX512DQ-NEXT: kmovw %k0, %eax
2194 ; AVX512DQ-NEXT: vpinsrb $10, %eax, %xmm2, %xmm2
2195 ; AVX512DQ-NEXT: kshiftlw $4, %k1, %k0
2196 ; AVX512DQ-NEXT: kshiftrw $15, %k0, %k0
2197 ; AVX512DQ-NEXT: kmovw %k0, %eax
2198 ; AVX512DQ-NEXT: vpinsrb $11, %eax, %xmm2, %xmm2
2199 ; AVX512DQ-NEXT: kshiftlw $3, %k1, %k0
2200 ; AVX512DQ-NEXT: kshiftrw $15, %k0, %k0
2201 ; AVX512DQ-NEXT: kmovw %k0, %eax
2202 ; AVX512DQ-NEXT: vpinsrb $12, %eax, %xmm2, %xmm2
2203 ; AVX512DQ-NEXT: kshiftlw $2, %k1, %k0
2204 ; AVX512DQ-NEXT: kshiftrw $15, %k0, %k0
2205 ; AVX512DQ-NEXT: kmovw %k0, %eax
2206 ; AVX512DQ-NEXT: vpinsrb $13, %eax, %xmm2, %xmm2
2207 ; AVX512DQ-NEXT: kshiftlw $1, %k1, %k0
2208 ; AVX512DQ-NEXT: kshiftrw $15, %k0, %k0
2209 ; AVX512DQ-NEXT: kmovw %k0, %eax
2210 ; AVX512DQ-NEXT: vpinsrb $14, %eax, %xmm2, %xmm2
2211 ; AVX512DQ-NEXT: kshiftrw $15, %k1, %k0
2212 ; AVX512DQ-NEXT: kmovw %k0, %eax
2213 ; AVX512DQ-NEXT: vpinsrb $15, %eax, %xmm2, %xmm2
1908 ; AVX512DQ-NEXT: movl {{.*}}(%rip), %eax
1909 ; AVX512DQ-NEXT: vpbroadcastd %eax, %zmm2 {%k1} {z}
1910 ; AVX512DQ-NEXT: vpmovdb %zmm2, %xmm2
22141911 ; AVX512DQ-NEXT: vcmpltps %zmm1, %zmm3, %k2
2215 ; AVX512DQ-NEXT: kshiftlw $14, %k2, %k0
2216 ; AVX512DQ-NEXT: kshiftrw $15, %k0, %k0
2217 ; AVX512DQ-NEXT: kmovw %k0, %eax
2218 ; AVX512DQ-NEXT: kshiftlw $15, %k2, %k0
2219 ; AVX512DQ-NEXT: kshiftrw $15, %k0, %k0
2220 ; AVX512DQ-NEXT: kmovw %k0, %ecx
2221 ; AVX512DQ-NEXT: vmovd %ecx, %xmm3
2222 ; AVX512DQ-NEXT: vpinsrb $1, %eax, %xmm3, %xmm3
2223 ; AVX512DQ-NEXT: kshiftlw $13, %k2, %k0
2224 ; AVX512DQ-NEXT: kshiftrw $15, %k0, %k0
2225 ; AVX512DQ-NEXT: kmovw %k0, %eax
2226 ; AVX512DQ-NEXT: vpinsrb $2, %eax, %xmm3, %xmm3
2227 ; AVX512DQ-NEXT: kshiftlw $12, %k2, %k0
2228 ; AVX512DQ-NEXT: kshiftrw $15, %k0, %k0
2229 ; AVX512DQ-NEXT: kmovw %k0, %eax
2230 ; AVX512DQ-NEXT: vpinsrb $3, %eax, %xmm3, %xmm3
2231 ; AVX512DQ-NEXT: kshiftlw $11, %k2, %k0
2232 ; AVX512DQ-NEXT: kshiftrw $15, %k0, %k0
2233 ; AVX512DQ-NEXT: kmovw %k0, %eax
2234 ; AVX512DQ-NEXT: vpinsrb $4, %eax, %xmm3, %xmm3
2235 ; AVX512DQ-NEXT: kshiftlw $10, %k2, %k0
2236 ; AVX512DQ-NEXT: kshiftrw $15, %k0, %k0
2237 ; AVX512DQ-NEXT: kmovw %k0, %eax
2238 ; AVX512DQ-NEXT: vpinsrb $5, %eax, %xmm3, %xmm3
2239 ; AVX512DQ-NEXT: kshiftlw $9, %k2, %k0
2240 ; AVX512DQ-NEXT: kshiftrw $15, %k0, %k0
2241 ; AVX512DQ-NEXT: kmovw %k0, %eax
2242 ; AVX512DQ-NEXT: vpinsrb $6, %eax, %xmm3, %xmm3
2243 ; AVX512DQ-NEXT: kshiftlw $8, %k2, %k0
2244 ; AVX512DQ-NEXT: kshiftrw $15, %k0, %k0
2245 ; AVX512DQ-NEXT: kmovw %k0, %eax
2246 ; AVX512DQ-NEXT: vpinsrb $7, %eax, %xmm3, %xmm3
2247 ; AVX512DQ-NEXT: kshiftlw $7, %k2, %k0
2248 ; AVX512DQ-NEXT: kshiftrw $15, %k0, %k0
2249 ; AVX512DQ-NEXT: kmovw %k0, %eax
2250 ; AVX512DQ-NEXT: vpinsrb $8, %eax, %xmm3, %xmm3
2251 ; AVX512DQ-NEXT: kshiftlw $6, %k2, %k0
2252 ; AVX512DQ-NEXT: kshiftrw $15, %k0, %k0
2253 ; AVX512DQ-NEXT: kmovw %k0, %eax
2254 ; AVX512DQ-NEXT: vpinsrb $9, %eax, %xmm3, %xmm3
2255 ; AVX512DQ-NEXT: kshiftlw $5, %k2, %k0
2256 ; AVX512DQ-NEXT: kshiftrw $15, %k0, %k0
2257 ; AVX512DQ-NEXT: kmovw %k0, %eax
2258 ; AVX512DQ-NEXT: vpinsrb $10, %eax, %xmm3, %xmm3
2259 ; AVX512DQ-NEXT: kshiftlw $4, %k2, %k0
2260 ; AVX512DQ-NEXT: kshiftrw $15, %k0, %k0
2261 ; AVX512DQ-NEXT: kmovw %k0, %eax
2262 ; AVX512DQ-NEXT: vpinsrb $11, %eax, %xmm3, %xmm3
2263 ; AVX512DQ-NEXT: kshiftlw $3, %k2, %k0
2264 ; AVX512DQ-NEXT: kshiftrw $15, %k0, %k0
2265 ; AVX512DQ-NEXT: kmovw %k0, %eax
2266 ; AVX512DQ-NEXT: vpinsrb $12, %eax, %xmm3, %xmm3
2267 ; AVX512DQ-NEXT: kshiftlw $2, %k2, %k0
2268 ; AVX512DQ-NEXT: kshiftrw $15, %k0, %k0
2269 ; AVX512DQ-NEXT: kmovw %k0, %eax
2270 ; AVX512DQ-NEXT: vpinsrb $13, %eax, %xmm3, %xmm3
2271 ; AVX512DQ-NEXT: kshiftlw $1, %k2, %k0
2272 ; AVX512DQ-NEXT: kshiftrw $15, %k0, %k0
2273 ; AVX512DQ-NEXT: kmovw %k0, %eax
2274 ; AVX512DQ-NEXT: vpinsrb $14, %eax, %xmm3, %xmm3
2275 ; AVX512DQ-NEXT: kshiftrw $15, %k2, %k0
2276 ; AVX512DQ-NEXT: kmovw %k0, %eax
2277 ; AVX512DQ-NEXT: vpinsrb $15, %eax, %xmm3, %xmm3
2278 ; AVX512DQ-NEXT: vmovups 68(%rdi), %zmm5 {%k2} {z}
2279 ; AVX512DQ-NEXT: vmovups 4(%rdi), %zmm4 {%k1} {z}
2280 ; AVX512DQ-NEXT: vcmpltps %zmm4, %zmm0, %k0
2281 ; AVX512DQ-NEXT: kshiftlw $14, %k0, %k1
2282 ; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1
2283 ; AVX512DQ-NEXT: kmovw %k1, %eax
2284 ; AVX512DQ-NEXT: kshiftlw $15, %k0, %k1
2285 ; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1
2286 ; AVX512DQ-NEXT: kmovw %k1, %ecx
2287 ; AVX512DQ-NEXT: vmovd %ecx, %xmm4
2288 ; AVX512DQ-NEXT: vpinsrb $1, %eax, %xmm4, %xmm4
2289 ; AVX512DQ-NEXT: kshiftlw $13, %k0, %k1
2290 ; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1
2291 ; AVX512DQ-NEXT: kmovw %k1, %eax
2292 ; AVX512DQ-NEXT: vpinsrb $2, %eax, %xmm4, %xmm4
2293 ; AVX512DQ-NEXT: kshiftlw $12, %k0, %k1
2294 ; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1
2295 ; AVX512DQ-NEXT: kmovw %k1, %eax
2296 ; AVX512DQ-NEXT: vpinsrb $3, %eax, %xmm4, %xmm4
2297 ; AVX512DQ-NEXT: kshiftlw $11, %k0, %k1
2298 ; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1
2299 ; AVX512DQ-NEXT: kmovw %k1, %eax
2300 ; AVX512DQ-NEXT: vpinsrb $4, %eax, %xmm4, %xmm4
2301 ; AVX512DQ-NEXT: kshiftlw $10, %k0, %k1
2302 ; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1
2303 ; AVX512DQ-NEXT: kmovw %k1, %eax
2304 ; AVX512DQ-NEXT: vpinsrb $5, %eax, %xmm4, %xmm4
2305 ; AVX512DQ-NEXT: kshiftlw $9, %k0, %k1
2306 ; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1
2307 ; AVX512DQ-NEXT: kmovw %k1, %eax
2308 ; AVX512DQ-NEXT: vpinsrb $6, %eax, %xmm4, %xmm4
2309 ; AVX512DQ-NEXT: kshiftlw $8, %k0, %k1
2310 ; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1
2311 ; AVX512DQ-NEXT: kmovw %k1, %eax
2312 ; AVX512DQ-NEXT: vpinsrb $7, %eax, %xmm4, %xmm4
2313 ; AVX512DQ-NEXT: kshiftlw $7, %k0, %k1
2314 ; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1
2315 ; AVX512DQ-NEXT: kmovw %k1, %eax
2316 ; AVX512DQ-NEXT: vpinsrb $8, %eax, %xmm4, %xmm4
2317 ; AVX512DQ-NEXT: kshiftlw $6, %k0, %k1
2318 ; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1
2319 ; AVX512DQ-NEXT: kmovw %k1, %eax
2320 ; AVX512DQ-NEXT: vpinsrb $9, %eax, %xmm4, %xmm4
2321 ; AVX512DQ-NEXT: kshiftlw $5, %k0, %k1
2322 ; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1
2323 ; AVX512DQ-NEXT: kmovw %k1, %eax
2324 ; AVX512DQ-NEXT: vpinsrb $10, %eax, %xmm4, %xmm4
2325 ; AVX512DQ-NEXT: kshiftlw $4, %k0, %k1
2326 ; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1
2327 ; AVX512DQ-NEXT: kmovw %k1, %eax
2328 ; AVX512DQ-NEXT: vpinsrb $11, %eax, %xmm4, %xmm4
2329 ; AVX512DQ-NEXT: kshiftlw $3, %k0, %k1
2330 ; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1
2331 ; AVX512DQ-NEXT: kmovw %k1, %eax
2332 ; AVX512DQ-NEXT: vpinsrb $12, %eax, %xmm4, %xmm4
2333 ; AVX512DQ-NEXT: kshiftlw $2, %k0, %k1
2334 ; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1
2335 ; AVX512DQ-NEXT: kmovw %k1, %eax
2336 ; AVX512DQ-NEXT: vpinsrb $13, %eax, %xmm4, %xmm4
2337 ; AVX512DQ-NEXT: kshiftlw $1, %k0, %k1
2338 ; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1
2339 ; AVX512DQ-NEXT: kmovw %k1, %eax
2340 ; AVX512DQ-NEXT: vpinsrb $14, %eax, %xmm4, %xmm4
2341 ; AVX512DQ-NEXT: kshiftrw $15, %k0, %k0
2342 ; AVX512DQ-NEXT: kmovw %k0, %eax
2343 ; AVX512DQ-NEXT: vpinsrb $15, %eax, %xmm4, %xmm4
2344 ; AVX512DQ-NEXT: vcmpltps %zmm5, %zmm1, %k0
2345 ; AVX512DQ-NEXT: kshiftlw $14, %k0, %k1
2346 ; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1
2347 ; AVX512DQ-NEXT: kmovw %k1, %eax
2348 ; AVX512DQ-NEXT: kshiftlw $15, %k0, %k1
2349 ; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1
2350 ; AVX512DQ-NEXT: kmovw %k1, %ecx
2351 ; AVX512DQ-NEXT: vmovd %ecx, %xmm5
2352 ; AVX512DQ-NEXT: vpinsrb $1, %eax, %xmm5, %xmm5
2353 ; AVX512DQ-NEXT: kshiftlw $13, %k0, %k1
2354 ; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1
2355 ; AVX512DQ-NEXT: kmovw %k1, %eax
2356 ; AVX512DQ-NEXT: vpinsrb $2, %eax, %xmm5, %xmm5
2357 ; AVX512DQ-NEXT: kshiftlw $12, %k0, %k1
2358 ; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1
2359 ; AVX512DQ-NEXT: kmovw %k1, %eax
2360 ; AVX512DQ-NEXT: vpinsrb $3, %eax, %xmm5, %xmm5
2361 ; AVX512DQ-NEXT: kshiftlw $11, %k0, %k1
2362 ; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1
2363 ; AVX512DQ-NEXT: kmovw %k1, %eax
2364 ; AVX512DQ-NEXT: vpinsrb $4, %eax, %xmm5, %xmm5
2365 ; AVX512DQ-NEXT: kshiftlw $10, %k0, %k1
2366 ; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1
2367 ; AVX512DQ-NEXT: kmovw %k1, %eax
2368 ; AVX512DQ-NEXT: vpinsrb $5, %eax, %xmm5, %xmm5
2369 ; AVX512DQ-NEXT: kshiftlw $9, %k0, %k1
2370 ; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1
2371 ; AVX512DQ-NEXT: kmovw %k1, %eax
2372 ; AVX512DQ-NEXT: vpinsrb $6, %eax, %xmm5, %xmm5
2373 ; AVX512DQ-NEXT: kshiftlw $8, %k0, %k1
2374 ; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1
2375 ; AVX512DQ-NEXT: kmovw %k1, %eax
2376 ; AVX512DQ-NEXT: vpinsrb $7, %eax, %xmm5, %xmm5
2377 ; AVX512DQ-NEXT: kshiftlw $7, %k0, %k1
2378 ; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1
2379 ; AVX512DQ-NEXT: kmovw %k1, %eax
2380 ; AVX512DQ-NEXT: vpinsrb $8, %eax, %xmm5, %xmm5
2381 ; AVX512DQ-NEXT: kshiftlw $6, %k0, %k1
2382 ; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1
2383 ; AVX512DQ-NEXT: kmovw %k1, %eax
2384 ; AVX512DQ-NEXT: vpinsrb $9, %eax, %xmm5, %xmm5
2385 ; AVX512DQ-NEXT: kshiftlw $5, %k0, %k1
2386 ; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1
2387 ; AVX512DQ-NEXT: kmovw %k1, %eax
2388 ; AVX512DQ-NEXT: vpinsrb $10, %eax, %xmm5, %xmm5
2389 ; AVX512DQ-NEXT: kshiftlw $4, %k0, %k1
2390 ; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1
2391 ; AVX512DQ-NEXT: kmovw %k1, %eax
2392 ; AVX512DQ-NEXT: vpinsrb $11, %eax, %xmm5, %xmm5
2393 ; AVX512DQ-NEXT: kshiftlw $3, %k0, %k1
2394 ; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1
2395 ; AVX512DQ-NEXT: kmovw %k1, %eax
2396 ; AVX512DQ-NEXT: vpinsrb $12, %eax, %xmm5, %xmm5
2397 ; AVX512DQ-NEXT: kshiftlw $2, %k0, %k1
2398 ; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1
2399 ; AVX512DQ-NEXT: kmovw %k1, %eax
2400 ; AVX512DQ-NEXT: vpinsrb $13, %eax, %xmm5, %xmm5
2401 ; AVX512DQ-NEXT: kshiftlw $1, %k0, %k1
2402 ; AVX512DQ-NEXT: kshiftrw $15, %k1, %k1
2403 ; AVX512DQ-NEXT: kmovw %k1, %eax
2404 ; AVX512DQ-NEXT: vpinsrb $14, %eax, %xmm5, %xmm5
2405 ; AVX512DQ-NEXT: kshiftrw $15, %k0, %k0
2406 ; AVX512DQ-NEXT: kmovw %k0, %eax
2407 ; AVX512DQ-NEXT: vpinsrb $15, %eax, %xmm5, %xmm5
2408 ; AVX512DQ-NEXT: vpor %xmm5, %xmm3, %xmm3
1912 ; AVX512DQ-NEXT: vpbroadcastd %eax, %zmm3 {%k2} {z}
1913 ; AVX512DQ-NEXT: vpmovdb %zmm3, %xmm3
1914 ; AVX512DQ-NEXT: vmovups 68(%rdi), %zmm4 {%k2} {z}
1915 ; AVX512DQ-NEXT: vmovups 4(%rdi), %zmm5 {%k1} {z}
1916 ; AVX512DQ-NEXT: vcmpltps %zmm5, %zmm0, %k1
1917 ; AVX512DQ-NEXT: vpbroadcastd %eax, %zmm5 {%k1} {z}
1918 ; AVX512DQ-NEXT: vpmovdb %zmm5, %xmm5
1919 ; AVX512DQ-NEXT: vpor %xmm5, %xmm2, %xmm2
1920 ; AVX512DQ-NEXT: vcmpltps %zmm4, %zmm1, %k1
1921 ; AVX512DQ-NEXT: vpbroadcastd %eax, %zmm4 {%k1} {z}
1922 ; AVX512DQ-NEXT: vpmovdb %zmm4, %xmm4
1923 ; AVX512DQ-NEXT: vpor %xmm4, %xmm3, %xmm3
24091924 ; AVX512DQ-NEXT: vpmovsxbd %xmm3, %zmm3
24101925 ; AVX512DQ-NEXT: vpslld $31, %zmm3, %zmm3
24111926 ; AVX512DQ-NEXT: vptestmd %zmm3, %zmm3, %k0
24121927 ; AVX512DQ-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
2413 ; AVX512DQ-NEXT: vpor %xmm4, %xmm2, %xmm2
24141928 ; AVX512DQ-NEXT: vpmovsxbd %xmm2, %zmm2
24151929 ; AVX512DQ-NEXT: vpslld $31, %zmm2, %zmm2
24161930 ; AVX512DQ-NEXT: vptestmd %zmm2, %zmm2, %k0
190190 ; KNL-NEXT: movq %rsp, %rbp
191191 ; KNL-NEXT: andq $-32, %rsp
192192 ; KNL-NEXT: subq $32, %rsp
193 ; KNL-NEXT: vpcmpeqd %zmm3, %zmm1, %k0
194 ; KNL-NEXT: kshiftlw $14, %k0, %k1
195 ; KNL-NEXT: kshiftrw $15, %k1, %k1
196 ; KNL-NEXT: kmovw %k1, %eax
197 ; KNL-NEXT: kshiftlw $15, %k0, %k1
198 ; KNL-NEXT: kshiftrw $15, %k1, %k1
199 ; KNL-NEXT: kmovw %k1, %ecx
200 ; KNL-NEXT: vmovd %ecx, %xmm1
201 ; KNL-NEXT: vpinsrb $1, %eax, %xmm1, %xmm1
202 ; KNL-NEXT: kshiftlw $13, %k0, %k1
203 ; KNL-NEXT: kshiftrw $15, %k1, %k1
204 ; KNL-NEXT: kmovw %k1, %eax
205 ; KNL-NEXT: vpinsrb $2, %eax, %xmm1, %xmm1
206 ; KNL-NEXT: kshiftlw $12, %k0, %k1
207 ; KNL-NEXT: kshiftrw $15, %k1, %k1
208 ; KNL-NEXT: kmovw %k1, %eax
209 ; KNL-NEXT: vpinsrb $3, %eax, %xmm1, %xmm1
210 ; KNL-NEXT: kshiftlw $11, %k0, %k1
211 ; KNL-NEXT: kshiftrw $15, %k1, %k1
212 ; KNL-NEXT: kmovw %k1, %eax
213 ; KNL-NEXT: vpinsrb $4, %eax, %xmm1, %xmm1
214 ; KNL-NEXT: kshiftlw $10, %k0, %k1
215 ; KNL-NEXT: kshiftrw $15, %k1, %k1
216 ; KNL-NEXT: kmovw %k1, %eax
217 ; KNL-NEXT: vpinsrb $5, %eax, %xmm1, %xmm1
218 ; KNL-NEXT: kshiftlw $9, %k0, %k1
219 ; KNL-NEXT: kshiftrw $15, %k1, %k1
220 ; KNL-NEXT: kmovw %k1, %eax
221 ; KNL-NEXT: vpinsrb $6, %eax, %xmm1, %xmm1
222 ; KNL-NEXT: kshiftlw $8, %k0, %k1
223 ; KNL-NEXT: kshiftrw $15, %k1, %k1
224 ; KNL-NEXT: kmovw %k1, %eax
225 ; KNL-NEXT: vpinsrb $7, %eax, %xmm1, %xmm1
226 ; KNL-NEXT: kshiftlw $7, %k0, %k1
227 ; KNL-NEXT: kshiftrw $15, %k1, %k1
228 ; KNL-NEXT: kmovw %k1, %eax
229 ; KNL-NEXT: vpinsrb $8, %eax, %xmm1, %xmm1
230 ; KNL-NEXT: kshiftlw $6, %k0, %k1
231 ; KNL-NEXT: kshiftrw $15, %k1, %k1
232 ; KNL-NEXT: kmovw %k1, %eax
233 ; KNL-NEXT: vpinsrb $9, %eax, %xmm1, %xmm1
234 ; KNL-NEXT: kshiftlw $5, %k0, %k1
235 ; KNL-NEXT: kshiftrw $15, %k1, %k1
236 ; KNL-NEXT: kmovw %k1, %eax
237 ; KNL-NEXT: vpinsrb $10, %eax, %xmm1, %xmm1
238 ; KNL-NEXT: kshiftlw $4, %k0, %k1
239 ; KNL-NEXT: kshiftrw $15, %k1, %k1
240 ; KNL-NEXT: kmovw %k1, %eax
241 ; KNL-NEXT: vpinsrb $11, %eax, %xmm1, %xmm1
242 ; KNL-NEXT: kshiftlw $3, %k0, %k1
243 ; KNL-NEXT: kshiftrw $15, %k1, %k1
244 ; KNL-NEXT: kmovw %k1, %eax
245 ; KNL-NEXT: vpinsrb $12, %eax, %xmm1, %xmm1
246 ; KNL-NEXT: kshiftlw $2, %k0, %k1
247 ; KNL-NEXT: kshiftrw $15, %k1, %k1
248 ; KNL-NEXT: kmovw %k1, %eax
249 ; KNL-NEXT: vpinsrb $13, %eax, %xmm1, %xmm1
250 ; KNL-NEXT: kshiftlw $1, %k0, %k1
251 ; KNL-NEXT: kshiftrw $15, %k1, %k1
252 ; KNL-NEXT: kmovw %k1, %eax
253 ; KNL-NEXT: vpinsrb $14, %eax, %xmm1, %xmm1
254 ; KNL-NEXT: kshiftrw $15, %k0, %k0
255 ; KNL-NEXT: kmovw %k0, %eax
256 ; KNL-NEXT: vpinsrb $15, %eax, %xmm1, %xmm1
193 ; KNL-NEXT: vpcmpeqd %zmm3, %zmm1, %k1
194 ; KNL-NEXT: movl {{.*}}(%rip), %eax
195 ; KNL-NEXT: vpbroadcastd %eax, %zmm1 {%k1} {z}
196 ; KNL-NEXT: vpmovdb %zmm1, %xmm1
257197 ; KNL-NEXT: vpmovsxbd %xmm1, %zmm1
258198 ; KNL-NEXT: vpslld $31, %zmm1, %zmm1
259199 ; KNL-NEXT: vptestmd %zmm1, %zmm1, %k0
260200 ; KNL-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
261 ; KNL-NEXT: vpcmpeqd %zmm2, %zmm0, %k0
262 ; KNL-NEXT: kshiftlw $14, %k0, %k1
263 ; KNL-NEXT: kshiftrw $15, %k1, %k1
264 ; KNL-NEXT: kmovw %k1, %eax
265 ; KNL-NEXT: kshiftlw $15, %k0, %k1
266 ; KNL-NEXT: kshiftrw $15, %k1, %k1
267 ; KNL-NEXT: kmovw %k1, %ecx
268 ; KNL-NEXT: vmovd %ecx, %xmm0
269 ; KNL-NEXT: vpinsrb $1, %eax, %xmm0, %xmm0
270 ; KNL-NEXT: kshiftlw $13, %k0, %k1
271 ; KNL-NEXT: kshiftrw $15, %k1, %k1
272 ; KNL-NEXT: kmovw %k1, %eax
273 ; KNL-NEXT: vpinsrb $2, %eax, %xmm0, %xmm0
274 ; KNL-NEXT: kshiftlw $12, %k0, %k1
275 ; KNL-NEXT: kshiftrw $15, %k1, %k1
276 ; KNL-NEXT: kmovw %k1, %eax
277 ; KNL-NEXT: vpinsrb $3, %eax, %xmm0, %xmm0
278 ; KNL-NEXT: kshiftlw $11, %k0, %k1
279 ; KNL-NEXT: kshiftrw $15, %k1, %k1
280 ; KNL-NEXT: kmovw %k1, %eax
281 ; KNL-NEXT: vpinsrb $4, %eax, %xmm0, %xmm0
282 ; KNL-NEXT: kshiftlw $10, %k0, %k1
283 ; KNL-NEXT: kshiftrw $15, %k1, %k1
284 ; KNL-NEXT: kmovw %k1, %eax
285 ; KNL-NEXT: vpinsrb $5, %eax, %xmm0, %xmm0
286 ; KNL-NEXT: kshiftlw $9, %k0, %k1
287 ; KNL-NEXT: kshiftrw $15, %k1, %k1
288 ; KNL-NEXT: kmovw %k1, %eax
289 ; KNL-NEXT: vpinsrb $6, %eax, %xmm0, %xmm0
290 ; KNL-NEXT: kshiftlw $8, %k0, %k1
291 ; KNL-NEXT: kshiftrw $15, %k1, %k1
292 ; KNL-NEXT: kmovw %k1, %eax
293 ; KNL-NEXT: vpinsrb $7, %eax, %xmm0, %xmm0
294 ; KNL-NEXT: kshiftlw $7, %k0, %k1
295 ; KNL-NEXT: kshiftrw $15, %k1, %k1
296 ; KNL-NEXT: kmovw %k1, %eax
297 ; KNL-NEXT: vpinsrb $8, %eax, %xmm0, %xmm0
298 ; KNL-NEXT: kshiftlw $6, %k0, %k1
299 ; KNL-NEXT: kshiftrw $15, %k1, %k1
300 ; KNL-NEXT: kmovw %k1, %eax
301 ; KNL-NEXT: vpinsrb $9, %eax, %xmm0, %xmm0
302 ; KNL-NEXT: kshiftlw $5, %k0, %k1
303 ; KNL-NEXT: kshiftrw $15, %k1, %k1
304 ; KNL-NEXT: kmovw %k1, %eax
305 ; KNL-NEXT: vpinsrb $10, %eax, %xmm0, %xmm0
306 ; KNL-NEXT: kshiftlw $4, %k0, %k1
307 ; KNL-NEXT: kshiftrw $15, %k1, %k1
308 ; KNL-NEXT: kmovw %k1, %eax
309 ; KNL-NEXT: vpinsrb $11, %eax, %xmm0, %xmm0
310 ; KNL-NEXT: kshiftlw $3, %k0, %k1
311 ; KNL-NEXT: kshiftrw $15, %k1, %k1
312 ; KNL-NEXT: kmovw %k1, %eax
313 ; KNL-NEXT: vpinsrb $12, %eax, %xmm0, %xmm0
314 ; KNL-NEXT: kshiftlw $2, %k0, %k1
315 ; KNL-NEXT: kshiftrw $15, %k1, %k1
316 ; KNL-NEXT: kmovw %k1, %eax
317 ; KNL-NEXT: vpinsrb $13, %eax, %xmm0, %xmm0
318 ; KNL-NEXT: kshiftlw $1, %k0, %k1
319 ; KNL-NEXT: kshiftrw $15, %k1, %k1
320 ; KNL-NEXT: kmovw %k1, %eax
321 ; KNL-NEXT: vpinsrb $14, %eax, %xmm0, %xmm0
322 ; KNL-NEXT: kshiftrw $15, %k0, %k0
323 ; KNL-NEXT: kmovw %k0, %eax
324 ; KNL-NEXT: vpinsrb $15, %eax, %xmm0, %xmm0
201 ; KNL-NEXT: vpcmpeqd %zmm2, %zmm0, %k1
202 ; KNL-NEXT: vpbroadcastd %eax, %zmm0 {%k1} {z}
203 ; KNL-NEXT: vpmovdb %zmm0, %xmm0
325204 ; KNL-NEXT: vpmovsxbd %xmm0, %zmm0
326205 ; KNL-NEXT: vpslld $31, %zmm0, %zmm0
327206 ; KNL-NEXT: vptestmd %zmm0, %zmm0, %k0
9191 ; NoVLX-NEXT: .cfi_offset %rbp, -16
9292 ; NoVLX-NEXT: movq %rsp, %rbp
9393 ; NoVLX-NEXT: .cfi_def_cfa_register %rbp
94 ; NoVLX-NEXT: pushq %r15
95 ; NoVLX-NEXT: pushq %r14
96 ; NoVLX-NEXT: pushq %r13
97 ; NoVLX-NEXT: pushq %r12
98 ; NoVLX-NEXT: pushq %rbx
9994 ; NoVLX-NEXT: andq $-32, %rsp
10095 ; NoVLX-NEXT: subq $32, %rsp
101 ; NoVLX-NEXT: .cfi_offset %rbx, -56
102 ; NoVLX-NEXT: .cfi_offset %r12, -48
103 ; NoVLX-NEXT: .cfi_offset %r13, -40
104 ; NoVLX-NEXT: .cfi_offset %r14, -32
105 ; NoVLX-NEXT: .cfi_offset %r15, -24
10696 ; NoVLX-NEXT: vpcmpeqb %xmm1, %xmm0, %xmm0
10797 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
10898 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
10999 ; NoVLX-NEXT: kmovw %edi, %k1
110 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0 {%k1}
111 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
112 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
113 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
114 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
115 ; NoVLX-NEXT: kmovw %k1, %r8d
116 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
117 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
118 ; NoVLX-NEXT: kmovw %k1, %r10d
119 ; NoVLX-NEXT: kshiftlw $13, %k0, %k1
120 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
121 ; NoVLX-NEXT: kmovw %k1, %r9d
122 ; NoVLX-NEXT: kshiftlw $12, %k0, %k1
123 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
124 ; NoVLX-NEXT: kmovw %k1, %r11d
125 ; NoVLX-NEXT: kshiftlw $11, %k0, %k1
126 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
127 ; NoVLX-NEXT: kmovw %k1, %r14d
128 ; NoVLX-NEXT: kshiftlw $10, %k0, %k1
129 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
130 ; NoVLX-NEXT: kmovw %k1, %r15d
131 ; NoVLX-NEXT: kshiftlw $9, %k0, %k1
132 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
133 ; NoVLX-NEXT: kmovw %k1, %r12d
134 ; NoVLX-NEXT: kshiftlw $8, %k0, %k1
135 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
136 ; NoVLX-NEXT: kmovw %k1, %r13d
137 ; NoVLX-NEXT: kshiftlw $7, %k0, %k1
138 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
139 ; NoVLX-NEXT: kmovw %k1, %esi
140 ; NoVLX-NEXT: kshiftlw $6, %k0, %k1
141 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
142 ; NoVLX-NEXT: kmovw %k1, %ebx
143 ; NoVLX-NEXT: kshiftlw $5, %k0, %k1
144 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
145 ; NoVLX-NEXT: kmovw %k1, %edi
146 ; NoVLX-NEXT: kshiftlw $4, %k0, %k1
147 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
148 ; NoVLX-NEXT: kmovw %k1, %eax
149 ; NoVLX-NEXT: kshiftlw $3, %k0, %k1
150 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
151 ; NoVLX-NEXT: kmovw %k1, %edx
152 ; NoVLX-NEXT: kshiftlw $2, %k0, %k1
153 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
154 ; NoVLX-NEXT: vmovd %r10d, %xmm0
155 ; NoVLX-NEXT: kmovw %k1, %r10d
156 ; NoVLX-NEXT: kshiftlw $1, %k0, %k1
157 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
158 ; NoVLX-NEXT: vpinsrb $1, %r8d, %xmm0, %xmm0
159 ; NoVLX-NEXT: kmovw %k1, %ecx
160 ; NoVLX-NEXT: vpinsrb $2, %r9d, %xmm0, %xmm0
161 ; NoVLX-NEXT: vpinsrb $3, %r11d, %xmm0, %xmm0
162 ; NoVLX-NEXT: vpinsrb $4, %r14d, %xmm0, %xmm0
163 ; NoVLX-NEXT: vpinsrb $5, %r15d, %xmm0, %xmm0
164 ; NoVLX-NEXT: vpinsrb $6, %r12d, %xmm0, %xmm0
165 ; NoVLX-NEXT: vpinsrb $7, %r13d, %xmm0, %xmm0
166 ; NoVLX-NEXT: vpinsrb $8, %esi, %xmm0, %xmm0
167 ; NoVLX-NEXT: vpinsrb $9, %ebx, %xmm0, %xmm0
168 ; NoVLX-NEXT: vpinsrb $10, %edi, %xmm0, %xmm0
169 ; NoVLX-NEXT: vpinsrb $11, %eax, %xmm0, %xmm0
170 ; NoVLX-NEXT: vpinsrb $12, %edx, %xmm0, %xmm0
171 ; NoVLX-NEXT: kshiftrw $15, %k0, %k0
172 ; NoVLX-NEXT: vpinsrb $13, %r10d, %xmm0, %xmm0
173 ; NoVLX-NEXT: vpinsrb $14, %ecx, %xmm0, %xmm0
174 ; NoVLX-NEXT: kmovw %k0, %eax
175 ; NoVLX-NEXT: vpinsrb $15, %eax, %xmm0, %xmm0
100 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1 {%k1}
101 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
102 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
103 ; NoVLX-NEXT: vpbroadcastd {{.*}}(%rip), %zmm0 {%k1} {z}
104 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
176105 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
177106 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
178107 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
179108 ; NoVLX-NEXT: kmovw %k0, (%rsp)
180109 ; NoVLX-NEXT: movl (%rsp), %eax
181 ; NoVLX-NEXT: leaq -40(%rbp), %rsp
182 ; NoVLX-NEXT: popq %rbx
183 ; NoVLX-NEXT: popq %r12
184 ; NoVLX-NEXT: popq %r13
185 ; NoVLX-NEXT: popq %r14
186 ; NoVLX-NEXT: popq %r15
110 ; NoVLX-NEXT: movq %rbp, %rsp
187111 ; NoVLX-NEXT: popq %rbp
188112 ; NoVLX-NEXT: vzeroupper
189113 ; NoVLX-NEXT: retq
213137 ; NoVLX-NEXT: .cfi_offset %rbp, -16
214138 ; NoVLX-NEXT: movq %rsp, %rbp
215139 ; NoVLX-NEXT: .cfi_def_cfa_register %rbp
216 ; NoVLX-NEXT: pushq %r15
217 ; NoVLX-NEXT: pushq %r14
218 ; NoVLX-NEXT: pushq %r13
219 ; NoVLX-NEXT: pushq %r12
220 ; NoVLX-NEXT: pushq %rbx
221140 ; NoVLX-NEXT: andq $-32, %rsp
222141 ; NoVLX-NEXT: subq $32, %rsp
223 ; NoVLX-NEXT: .cfi_offset %rbx, -56
224 ; NoVLX-NEXT: .cfi_offset %r12, -48
225 ; NoVLX-NEXT: .cfi_offset %r13, -40
226 ; NoVLX-NEXT: .cfi_offset %r14, -32
227 ; NoVLX-NEXT: .cfi_offset %r15, -24
228142 ; NoVLX-NEXT: vpcmpeqb (%rsi), %xmm0, %xmm0
229143 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
230144 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
231145 ; NoVLX-NEXT: kmovw %edi, %k1
232 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0 {%k1}
233 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
234 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
235 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
236 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
237 ; NoVLX-NEXT: kmovw %k1, %r8d
238 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
239 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
240 ; NoVLX-NEXT: kmovw %k1, %r10d
241 ; NoVLX-NEXT: kshiftlw $13, %k0, %k1
242 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
243 ; NoVLX-NEXT: kmovw %k1, %r9d
244 ; NoVLX-NEXT: kshiftlw $12, %k0, %k1
245 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
246 ; NoVLX-NEXT: kmovw %k1, %r11d
247 ; NoVLX-NEXT: kshiftlw $11, %k0, %k1
248 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
249 ; NoVLX-NEXT: kmovw %k1, %r14d
250 ; NoVLX-NEXT: kshiftlw $10, %k0, %k1
251 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
252 ; NoVLX-NEXT: kmovw %k1, %r15d
253 ; NoVLX-NEXT: kshiftlw $9, %k0, %k1
254 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
255 ; NoVLX-NEXT: kmovw %k1, %r12d
256 ; NoVLX-NEXT: kshiftlw $8, %k0, %k1
257 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
258 ; NoVLX-NEXT: kmovw %k1, %r13d
259 ; NoVLX-NEXT: kshiftlw $7, %k0, %k1
260 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
261 ; NoVLX-NEXT: kmovw %k1, %esi
262 ; NoVLX-NEXT: kshiftlw $6, %k0, %k1
263 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
264 ; NoVLX-NEXT: kmovw %k1, %ebx
265 ; NoVLX-NEXT: kshiftlw $5, %k0, %k1
266 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
267 ; NoVLX-NEXT: kmovw %k1, %edi
268 ; NoVLX-NEXT: kshiftlw $4, %k0, %k1
269 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
270 ; NoVLX-NEXT: kmovw %k1, %eax
271 ; NoVLX-NEXT: kshiftlw $3, %k0, %k1
272 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
273 ; NoVLX-NEXT: kmovw %k1, %edx
274 ; NoVLX-NEXT: kshiftlw $2, %k0, %k1
275 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
276 ; NoVLX-NEXT: vmovd %r10d, %xmm0
277 ; NoVLX-NEXT: kmovw %k1, %r10d
278 ; NoVLX-NEXT: kshiftlw $1, %k0, %k1
279 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
280 ; NoVLX-NEXT: vpinsrb $1, %r8d, %xmm0, %xmm0
281 ; NoVLX-NEXT: kmovw %k1, %ecx
282 ; NoVLX-NEXT: vpinsrb $2, %r9d, %xmm0, %xmm0
283 ; NoVLX-NEXT: vpinsrb $3, %r11d, %xmm0, %xmm0
284 ; NoVLX-NEXT: vpinsrb $4, %r14d, %xmm0, %xmm0
285 ; NoVLX-NEXT: vpinsrb $5, %r15d, %xmm0, %xmm0
286 ; NoVLX-NEXT: vpinsrb $6, %r12d, %xmm0, %xmm0
287 ; NoVLX-NEXT: vpinsrb $7, %r13d, %xmm0, %xmm0
288 ; NoVLX-NEXT: vpinsrb $8, %esi, %xmm0, %xmm0
289 ; NoVLX-NEXT: vpinsrb $9, %ebx, %xmm0, %xmm0
290 ; NoVLX-NEXT: vpinsrb $10, %edi, %xmm0, %xmm0
291 ; NoVLX-NEXT: vpinsrb $11, %eax, %xmm0, %xmm0
292 ; NoVLX-NEXT: vpinsrb $12, %edx, %xmm0, %xmm0
293 ; NoVLX-NEXT: kshiftrw $15, %k0, %k0
294 ; NoVLX-NEXT: vpinsrb $13, %r10d, %xmm0, %xmm0
295 ; NoVLX-NEXT: vpinsrb $14, %ecx, %xmm0, %xmm0
296 ; NoVLX-NEXT: kmovw %k0, %eax
297 ; NoVLX-NEXT: vpinsrb $15, %eax, %xmm0, %xmm0
146 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1 {%k1}
147 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
148 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
149 ; NoVLX-NEXT: vpbroadcastd {{.*}}(%rip), %zmm0 {%k1} {z}
150 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
298151 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
299152 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
300153 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
301154 ; NoVLX-NEXT: kmovw %k0, (%rsp)
302155 ; NoVLX-NEXT: movl (%rsp), %eax
303 ; NoVLX-NEXT: leaq -40(%rbp), %rsp
304 ; NoVLX-NEXT: popq %rbx
305 ; NoVLX-NEXT: popq %r12
306 ; NoVLX-NEXT: popq %r13
307 ; NoVLX-NEXT: popq %r14
308 ; NoVLX-NEXT: popq %r15
156 ; NoVLX-NEXT: movq %rbp, %rsp
309157 ; NoVLX-NEXT: popq %rbp
310158 ; NoVLX-NEXT: vzeroupper
311159 ; NoVLX-NEXT: retq
422270 ; NoVLX-NEXT: .cfi_offset %rbp, -16
423271 ; NoVLX-NEXT: movq %rsp, %rbp
424272 ; NoVLX-NEXT: .cfi_def_cfa_register %rbp
425 ; NoVLX-NEXT: pushq %r15
426 ; NoVLX-NEXT: pushq %r14
427 ; NoVLX-NEXT: pushq %r13
428 ; NoVLX-NEXT: pushq %r12
429 ; NoVLX-NEXT: pushq %rbx
430273 ; NoVLX-NEXT: andq $-32, %rsp
431274 ; NoVLX-NEXT: subq $64, %rsp
432 ; NoVLX-NEXT: .cfi_offset %rbx, -56
433 ; NoVLX-NEXT: .cfi_offset %r12, -48
434 ; NoVLX-NEXT: .cfi_offset %r13, -40
435 ; NoVLX-NEXT: .cfi_offset %r14, -32
436 ; NoVLX-NEXT: .cfi_offset %r15, -24
437275 ; NoVLX-NEXT: vpcmpeqb %xmm1, %xmm0, %xmm0
438276 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
439277 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
440278 ; NoVLX-NEXT: kmovw %edi, %k1
441 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0 {%k1}
442 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
443 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
444 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
445 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
446 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
447 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
448 ; NoVLX-NEXT: kmovw %k1, %r8d
449 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
450 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
451 ; NoVLX-NEXT: kmovw %k1, %r10d
452 ; NoVLX-NEXT: kshiftlw $13, %k0, %k1
453 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
454 ; NoVLX-NEXT: kmovw %k1, %r9d
455 ; NoVLX-NEXT: kshiftlw $12, %k0, %k1
456 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
457 ; NoVLX-NEXT: kmovw %k1, %r11d
458 ; NoVLX-NEXT: kshiftlw $11, %k0, %k1
459 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
460 ; NoVLX-NEXT: kmovw %k1, %r14d
461 ; NoVLX-NEXT: kshiftlw $10, %k0, %k1
462 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
463 ; NoVLX-NEXT: kmovw %k1, %r15d
464 ; NoVLX-NEXT: kshiftlw $9, %k0, %k1
465 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
466 ; NoVLX-NEXT: kmovw %k1, %r12d
467 ; NoVLX-NEXT: kshiftlw $8, %k0, %k1
468 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
469 ; NoVLX-NEXT: kmovw %k1, %r13d
470 ; NoVLX-NEXT: kshiftlw $7, %k0, %k1
471 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
472 ; NoVLX-NEXT: kmovw %k1, %esi
473 ; NoVLX-NEXT: kshiftlw $6, %k0, %k1
474 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
475 ; NoVLX-NEXT: kmovw %k1, %ebx
476 ; NoVLX-NEXT: kshiftlw $5, %k0, %k1
477 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
478 ; NoVLX-NEXT: kmovw %k1, %edi
479 ; NoVLX-NEXT: kshiftlw $4, %k0, %k1
480 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
481 ; NoVLX-NEXT: kmovw %k1, %eax
482 ; NoVLX-NEXT: kshiftlw $3, %k0, %k1
483 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
484 ; NoVLX-NEXT: kmovw %k1, %edx
485 ; NoVLX-NEXT: kshiftlw $2, %k0, %k1
486 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
487 ; NoVLX-NEXT: vmovd %r10d, %xmm0
488 ; NoVLX-NEXT: kmovw %k1, %r10d
489 ; NoVLX-NEXT: kshiftlw $1, %k0, %k1
490 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
491 ; NoVLX-NEXT: vpinsrb $1, %r8d, %xmm0, %xmm0
492 ; NoVLX-NEXT: kmovw %k1, %ecx
493 ; NoVLX-NEXT: vpinsrb $2, %r9d, %xmm0, %xmm0
494 ; NoVLX-NEXT: vpinsrb $3, %r11d, %xmm0, %xmm0
495 ; NoVLX-NEXT: vpinsrb $4, %r14d, %xmm0, %xmm0
496 ; NoVLX-NEXT: vpinsrb $5, %r15d, %xmm0, %xmm0
497 ; NoVLX-NEXT: vpinsrb $6, %r12d, %xmm0, %xmm0
498 ; NoVLX-NEXT: vpinsrb $7, %r13d, %xmm0, %xmm0
499 ; NoVLX-NEXT: vpinsrb $8, %esi, %xmm0, %xmm0
500 ; NoVLX-NEXT: vpinsrb $9, %ebx, %xmm0, %xmm0
501 ; NoVLX-NEXT: vpinsrb $10, %edi, %xmm0, %xmm0
502 ; NoVLX-NEXT: vpinsrb $11, %eax, %xmm0, %xmm0
503 ; NoVLX-NEXT: vpinsrb $12, %edx, %xmm0, %xmm0
504 ; NoVLX-NEXT: kshiftrw $15, %k0, %k0
505 ; NoVLX-NEXT: vpinsrb $13, %r10d, %xmm0, %xmm0
506 ; NoVLX-NEXT: vpinsrb $14, %ecx, %xmm0, %xmm0
507 ; NoVLX-NEXT: kmovw %k0, %eax
508 ; NoVLX-NEXT: vpinsrb $15, %eax, %xmm0, %xmm0
279 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1 {%k1}
280 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
281 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
282 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
283 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
284 ; NoVLX-NEXT: vpbroadcastd {{.*}}(%rip), %zmm0 {%k1} {z}
285 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
509286 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
510287 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
511288 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
514291 ; NoVLX-NEXT: shlq $32, %rcx
515292 ; NoVLX-NEXT: movl (%rsp), %eax
516293 ; NoVLX-NEXT: orq %rcx, %rax
517 ; NoVLX-NEXT: leaq -40(%rbp), %rsp
518 ; NoVLX-NEXT: popq %rbx
519 ; NoVLX-NEXT: popq %r12
520 ; NoVLX-NEXT: popq %r13
521 ; NoVLX-NEXT: popq %r14
522 ; NoVLX-NEXT: popq %r15
294 ; NoVLX-NEXT: movq %rbp, %rsp
523295 ; NoVLX-NEXT: popq %rbp
524296 ; NoVLX-NEXT: vzeroupper
525297 ; NoVLX-NEXT: retq
549321 ; NoVLX-NEXT: .cfi_offset %rbp, -16
550322 ; NoVLX-NEXT: movq %rsp, %rbp
551323 ; NoVLX-NEXT: .cfi_def_cfa_register %rbp
552 ; NoVLX-NEXT: pushq %r15
553 ; NoVLX-NEXT: pushq %r14
554 ; NoVLX-NEXT: pushq %r13
555 ; NoVLX-NEXT: pushq %r12
556 ; NoVLX-NEXT: pushq %rbx
557324 ; NoVLX-NEXT: andq $-32, %rsp
558325 ; NoVLX-NEXT: subq $64, %rsp
559 ; NoVLX-NEXT: .cfi_offset %rbx, -56
560 ; NoVLX-NEXT: .cfi_offset %r12, -48
561 ; NoVLX-NEXT: .cfi_offset %r13, -40
562 ; NoVLX-NEXT: .cfi_offset %r14, -32
563 ; NoVLX-NEXT: .cfi_offset %r15, -24
564326 ; NoVLX-NEXT: vpcmpeqb (%rsi), %xmm0, %xmm0
565327 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
566328 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
567329 ; NoVLX-NEXT: kmovw %edi, %k1
568 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0 {%k1}
569 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
570 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
571 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
572 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
573 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
574 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
575 ; NoVLX-NEXT: kmovw %k1, %r8d
576 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
577 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
578 ; NoVLX-NEXT: kmovw %k1, %r10d
579 ; NoVLX-NEXT: kshiftlw $13, %k0, %k1
580 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
581 ; NoVLX-NEXT: kmovw %k1, %r9d
582 ; NoVLX-NEXT: kshiftlw $12, %k0, %k1
583 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
584 ; NoVLX-NEXT: kmovw %k1, %r11d
585 ; NoVLX-NEXT: kshiftlw $11, %k0, %k1
586 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
587 ; NoVLX-NEXT: kmovw %k1, %r14d
588 ; NoVLX-NEXT: kshiftlw $10, %k0, %k1
589 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
590 ; NoVLX-NEXT: kmovw %k1, %r15d
591 ; NoVLX-NEXT: kshiftlw $9, %k0, %k1
592 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
593 ; NoVLX-NEXT: kmovw %k1, %r12d
594 ; NoVLX-NEXT: kshiftlw $8, %k0, %k1
595 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
596 ; NoVLX-NEXT: kmovw %k1, %r13d
597 ; NoVLX-NEXT: kshiftlw $7, %k0, %k1
598 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
599 ; NoVLX-NEXT: kmovw %k1, %esi
600 ; NoVLX-NEXT: kshiftlw $6, %k0, %k1
601 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
602 ; NoVLX-NEXT: kmovw %k1, %ebx
603 ; NoVLX-NEXT: kshiftlw $5, %k0, %k1
604 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
605 ; NoVLX-NEXT: kmovw %k1, %edi
606 ; NoVLX-NEXT: kshiftlw $4, %k0, %k1
607 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
608 ; NoVLX-NEXT: kmovw %k1, %eax
609 ; NoVLX-NEXT: kshiftlw $3, %k0, %k1
610 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
611 ; NoVLX-NEXT: kmovw %k1, %edx
612 ; NoVLX-NEXT: kshiftlw $2, %k0, %k1
613 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
614 ; NoVLX-NEXT: vmovd %r10d, %xmm0
615 ; NoVLX-NEXT: kmovw %k1, %r10d
616 ; NoVLX-NEXT: kshiftlw $1, %k0, %k1
617 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
618 ; NoVLX-NEXT: vpinsrb $1, %r8d, %xmm0, %xmm0
619 ; NoVLX-NEXT: kmovw %k1, %ecx
620 ; NoVLX-NEXT: vpinsrb $2, %r9d, %xmm0, %xmm0
621 ; NoVLX-NEXT: vpinsrb $3, %r11d, %xmm0, %xmm0
622 ; NoVLX-NEXT: vpinsrb $4, %r14d, %xmm0, %xmm0
623 ; NoVLX-NEXT: vpinsrb $5, %r15d, %xmm0, %xmm0
624 ; NoVLX-NEXT: vpinsrb $6, %r12d, %xmm0, %xmm0
625 ; NoVLX-NEXT: vpinsrb $7, %r13d, %xmm0, %xmm0
626 ; NoVLX-NEXT: vpinsrb $8, %esi, %xmm0, %xmm0
627 ; NoVLX-NEXT: vpinsrb $9, %ebx, %xmm0, %xmm0
628 ; NoVLX-NEXT: vpinsrb $10, %edi, %xmm0, %xmm0
629 ; NoVLX-NEXT: vpinsrb $11, %eax, %xmm0, %xmm0
630 ; NoVLX-NEXT: vpinsrb $12, %edx, %xmm0, %xmm0
631 ; NoVLX-NEXT: kshiftrw $15, %k0, %k0
632 ; NoVLX-NEXT: vpinsrb $13, %r10d, %xmm0, %xmm0
633 ; NoVLX-NEXT: vpinsrb $14, %ecx, %xmm0, %xmm0
634 ; NoVLX-NEXT: kmovw %k0, %eax
635 ; NoVLX-NEXT: vpinsrb $15, %eax, %xmm0, %xmm0
330 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1 {%k1}
331 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
332 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
333 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
334 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
335 ; NoVLX-NEXT: vpbroadcastd {{.*}}(%rip), %zmm0 {%k1} {z}
336 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
636337 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
637338 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
638339 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
641342 ; NoVLX-NEXT: shlq $32, %rcx
642343 ; NoVLX-NEXT: movl (%rsp), %eax
643344 ; NoVLX-NEXT: orq %rcx, %rax
644 ; NoVLX-NEXT: leaq -40(%rbp), %rsp
645 ; NoVLX-NEXT: popq %rbx
646 ; NoVLX-NEXT: popq %r12
647 ; NoVLX-NEXT: popq %r13
648 ; NoVLX-NEXT: popq %r14
649 ; NoVLX-NEXT: popq %r15
345 ; NoVLX-NEXT: movq %rbp, %rsp
650346 ; NoVLX-NEXT: popq %rbp
651347 ; NoVLX-NEXT: vzeroupper
652348 ; NoVLX-NEXT: retq
17201416 ; NoVLX-NEXT: .cfi_offset %rbp, -16
17211417 ; NoVLX-NEXT: movq %rsp, %rbp
17221418 ; NoVLX-NEXT: .cfi_def_cfa_register %rbp
1723 ; NoVLX-NEXT: pushq %r15
1724 ; NoVLX-NEXT: pushq %r14
1725 ; NoVLX-NEXT: pushq %r13
1726 ; NoVLX-NEXT: pushq %r12
1727 ; NoVLX-NEXT: pushq %rbx
17281419 ; NoVLX-NEXT: andq $-32, %rsp
17291420 ; NoVLX-NEXT: subq $32, %rsp
1730 ; NoVLX-NEXT: .cfi_offset %rbx, -56
1731 ; NoVLX-NEXT: .cfi_offset %r12, -48
1732 ; NoVLX-NEXT: .cfi_offset %r13, -40
1733 ; NoVLX-NEXT: .cfi_offset %r14, -32
1734 ; NoVLX-NEXT: .cfi_offset %r15, -24
17351421 ; NoVLX-NEXT: vpcmpeqw %ymm1, %ymm0, %ymm0
17361422 ; NoVLX-NEXT: vpmovsxwd %ymm0, %zmm0
17371423 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
17381424 ; NoVLX-NEXT: kmovw %edi, %k1
1739 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0 {%k1}
1740 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1741 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1742 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
1743 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1744 ; NoVLX-NEXT: kmovw %k1, %r8d
1745 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
1746 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1747 ; NoVLX-NEXT: kmovw %k1, %r10d
1748 ; NoVLX-NEXT: kshiftlw $13, %k0, %k1
1749 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1750 ; NoVLX-NEXT: kmovw %k1, %r9d
1751 ; NoVLX-NEXT: kshiftlw $12, %k0, %k1
1752 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1753 ; NoVLX-NEXT: kmovw %k1, %r11d
1754 ; NoVLX-NEXT: kshiftlw $11, %k0, %k1
1755 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1756 ; NoVLX-NEXT: kmovw %k1, %r14d
1757 ; NoVLX-NEXT: kshiftlw $10, %k0, %k1
1758 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1759 ; NoVLX-NEXT: kmovw %k1, %r15d
1760 ; NoVLX-NEXT: kshiftlw $9, %k0, %k1
1761 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1762 ; NoVLX-NEXT: kmovw %k1, %r12d
1763 ; NoVLX-NEXT: kshiftlw $8, %k0, %k1
1764 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1765 ; NoVLX-NEXT: kmovw %k1, %r13d
1766 ; NoVLX-NEXT: kshiftlw $7, %k0, %k1
1767 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1768 ; NoVLX-NEXT: kmovw %k1, %esi
1769 ; NoVLX-NEXT: kshiftlw $6, %k0, %k1
1770 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1771 ; NoVLX-NEXT: kmovw %k1, %ebx
1772 ; NoVLX-NEXT: kshiftlw $5, %k0, %k1
1773 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1774 ; NoVLX-NEXT: kmovw %k1, %edi
1775 ; NoVLX-NEXT: kshiftlw $4, %k0, %k1
1776 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1777 ; NoVLX-NEXT: kmovw %k1, %eax
1778 ; NoVLX-NEXT: kshiftlw $3, %k0, %k1
1779 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1780 ; NoVLX-NEXT: kmovw %k1, %edx
1781 ; NoVLX-NEXT: kshiftlw $2, %k0, %k1
1782 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1783 ; NoVLX-NEXT: vmovd %r10d, %xmm0
1784 ; NoVLX-NEXT: kmovw %k1, %r10d
1785 ; NoVLX-NEXT: kshiftlw $1, %k0, %k1
1786 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1787 ; NoVLX-NEXT: vpinsrb $1, %r8d, %xmm0, %xmm0
1788 ; NoVLX-NEXT: kmovw %k1, %ecx
1789 ; NoVLX-NEXT: vpinsrb $2, %r9d, %xmm0, %xmm0
1790 ; NoVLX-NEXT: vpinsrb $3, %r11d, %xmm0, %xmm0
1791 ; NoVLX-NEXT: vpinsrb $4, %r14d, %xmm0, %xmm0
1792 ; NoVLX-NEXT: vpinsrb $5, %r15d, %xmm0, %xmm0
1793 ; NoVLX-NEXT: vpinsrb $6, %r12d, %xmm0, %xmm0
1794 ; NoVLX-NEXT: vpinsrb $7, %r13d, %xmm0, %xmm0
1795 ; NoVLX-NEXT: vpinsrb $8, %esi, %xmm0, %xmm0
1796 ; NoVLX-NEXT: vpinsrb $9, %ebx, %xmm0, %xmm0
1797 ; NoVLX-NEXT: vpinsrb $10, %edi, %xmm0, %xmm0
1798 ; NoVLX-NEXT: vpinsrb $11, %eax, %xmm0, %xmm0
1799 ; NoVLX-NEXT: vpinsrb $12, %edx, %xmm0, %xmm0
1800 ; NoVLX-NEXT: kshiftrw $15, %k0, %k0
1801 ; NoVLX-NEXT: vpinsrb $13, %r10d, %xmm0, %xmm0
1802 ; NoVLX-NEXT: vpinsrb $14, %ecx, %xmm0, %xmm0
1803 ; NoVLX-NEXT: kmovw %k0, %eax
1804 ; NoVLX-NEXT: vpinsrb $15, %eax, %xmm0, %xmm0
1425 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1 {%k1}
1426 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
1427 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1428 ; NoVLX-NEXT: vpbroadcastd {{.*}}(%rip), %zmm0 {%k1} {z}
1429 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
18051430 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
18061431 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
18071432 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
18081433 ; NoVLX-NEXT: kmovw %k0, (%rsp)
18091434 ; NoVLX-NEXT: movl (%rsp), %eax
1810 ; NoVLX-NEXT: leaq -40(%rbp), %rsp
1811 ; NoVLX-NEXT: popq %rbx
1812 ; NoVLX-NEXT: popq %r12
1813 ; NoVLX-NEXT: popq %r13
1814 ; NoVLX-NEXT: popq %r14
1815 ; NoVLX-NEXT: popq %r15
1435 ; NoVLX-NEXT: movq %rbp, %rsp
18161436 ; NoVLX-NEXT: popq %rbp
18171437 ; NoVLX-NEXT: vzeroupper
18181438 ; NoVLX-NEXT: retq
18431463 ; NoVLX-NEXT: .cfi_offset %rbp, -16
18441464 ; NoVLX-NEXT: movq %rsp, %rbp
18451465 ; NoVLX-NEXT: .cfi_def_cfa_register %rbp
1846 ; NoVLX-NEXT: pushq %r15
1847 ; NoVLX-NEXT: pushq %r14
1848 ; NoVLX-NEXT: pushq %r13
1849 ; NoVLX-NEXT: pushq %r12
1850 ; NoVLX-NEXT: pushq %rbx
18511466 ; NoVLX-NEXT: andq $-32, %rsp
18521467 ; NoVLX-NEXT: subq $32, %rsp
1853 ; NoVLX-NEXT: .cfi_offset %rbx, -56
1854 ; NoVLX-NEXT: .cfi_offset %r12, -48
1855 ; NoVLX-NEXT: .cfi_offset %r13, -40
1856 ; NoVLX-NEXT: .cfi_offset %r14, -32
1857 ; NoVLX-NEXT: .cfi_offset %r15, -24
18581468 ; NoVLX-NEXT: vpcmpeqw (%rsi), %ymm0, %ymm0
18591469 ; NoVLX-NEXT: vpmovsxwd %ymm0, %zmm0
18601470 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
18611471 ; NoVLX-NEXT: kmovw %edi, %k1
1862 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0 {%k1}
1863 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
1864 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
1865 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
1866 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1867 ; NoVLX-NEXT: kmovw %k1, %r8d
1868 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
1869 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1870 ; NoVLX-NEXT: kmovw %k1, %r10d
1871 ; NoVLX-NEXT: kshiftlw $13, %k0, %k1
1872 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1873 ; NoVLX-NEXT: kmovw %k1, %r9d
1874 ; NoVLX-NEXT: kshiftlw $12, %k0, %k1
1875 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1876 ; NoVLX-NEXT: kmovw %k1, %r11d
1877 ; NoVLX-NEXT: kshiftlw $11, %k0, %k1
1878 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1879 ; NoVLX-NEXT: kmovw %k1, %r14d
1880 ; NoVLX-NEXT: kshiftlw $10, %k0, %k1
1881 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1882 ; NoVLX-NEXT: kmovw %k1, %r15d
1883 ; NoVLX-NEXT: kshiftlw $9, %k0, %k1
1884 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1885 ; NoVLX-NEXT: kmovw %k1, %r12d
1886 ; NoVLX-NEXT: kshiftlw $8, %k0, %k1
1887 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1888 ; NoVLX-NEXT: kmovw %k1, %r13d
1889 ; NoVLX-NEXT: kshiftlw $7, %k0, %k1
1890 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1891 ; NoVLX-NEXT: kmovw %k1, %esi
1892 ; NoVLX-NEXT: kshiftlw $6, %k0, %k1
1893 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1894 ; NoVLX-NEXT: kmovw %k1, %ebx
1895 ; NoVLX-NEXT: kshiftlw $5, %k0, %k1
1896 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1897 ; NoVLX-NEXT: kmovw %k1, %edi
1898 ; NoVLX-NEXT: kshiftlw $4, %k0, %k1
1899 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1900 ; NoVLX-NEXT: kmovw %k1, %eax
1901 ; NoVLX-NEXT: kshiftlw $3, %k0, %k1
1902 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1903 ; NoVLX-NEXT: kmovw %k1, %edx
1904 ; NoVLX-NEXT: kshiftlw $2, %k0, %k1
1905 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1906 ; NoVLX-NEXT: vmovd %r10d, %xmm0
1907 ; NoVLX-NEXT: kmovw %k1, %r10d
1908 ; NoVLX-NEXT: kshiftlw $1, %k0, %k1
1909 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
1910 ; NoVLX-NEXT: vpinsrb $1, %r8d, %xmm0, %xmm0
1911 ; NoVLX-NEXT: kmovw %k1, %ecx
1912 ; NoVLX-NEXT: vpinsrb $2, %r9d, %xmm0, %xmm0
1913 ; NoVLX-NEXT: vpinsrb $3, %r11d, %xmm0, %xmm0
1914 ; NoVLX-NEXT: vpinsrb $4, %r14d, %xmm0, %xmm0
1915 ; NoVLX-NEXT: vpinsrb $5, %r15d, %xmm0, %xmm0
1916 ; NoVLX-NEXT: vpinsrb $6, %r12d, %xmm0, %xmm0
1917 ; NoVLX-NEXT: vpinsrb $7, %r13d, %xmm0, %xmm0
1918 ; NoVLX-NEXT: vpinsrb $8, %esi, %xmm0, %xmm0
1919 ; NoVLX-NEXT: vpinsrb $9, %ebx, %xmm0, %xmm0
1920 ; NoVLX-NEXT: vpinsrb $10, %edi, %xmm0, %xmm0
1921 ; NoVLX-NEXT: vpinsrb $11, %eax, %xmm0, %xmm0
1922 ; NoVLX-NEXT: vpinsrb $12, %edx, %xmm0, %xmm0
1923 ; NoVLX-NEXT: kshiftrw $15, %k0, %k0
1924 ; NoVLX-NEXT: vpinsrb $13, %r10d, %xmm0, %xmm0
1925 ; NoVLX-NEXT: vpinsrb $14, %ecx, %xmm0, %xmm0
1926 ; NoVLX-NEXT: kmovw %k0, %eax
1927 ; NoVLX-NEXT: vpinsrb $15, %eax, %xmm0, %xmm0
1472 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1 {%k1}
1473 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
1474 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1475 ; NoVLX-NEXT: vpbroadcastd {{.*}}(%rip), %zmm0 {%k1} {z}
1476 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
19281477 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
19291478 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
19301479 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
19311480 ; NoVLX-NEXT: kmovw %k0, (%rsp)
19321481 ; NoVLX-NEXT: movl (%rsp), %eax
1933 ; NoVLX-NEXT: leaq -40(%rbp), %rsp
1934 ; NoVLX-NEXT: popq %rbx
1935 ; NoVLX-NEXT: popq %r12
1936 ; NoVLX-NEXT: popq %r13
1937 ; NoVLX-NEXT: popq %r14
1938 ; NoVLX-NEXT: popq %r15
1482 ; NoVLX-NEXT: movq %rbp, %rsp
19391483 ; NoVLX-NEXT: popq %rbp
19401484 ; NoVLX-NEXT: vzeroupper
19411485 ; NoVLX-NEXT: retq
20591603 ; NoVLX-NEXT: .cfi_offset %rbp, -16
20601604 ; NoVLX-NEXT: movq %rsp, %rbp
20611605 ; NoVLX-NEXT: .cfi_def_cfa_register %rbp
2062 ; NoVLX-NEXT: pushq %r15
2063 ; NoVLX-NEXT: pushq %r14
2064 ; NoVLX-NEXT: pushq %r13
2065 ; NoVLX-NEXT: pushq %r12
2066 ; NoVLX-NEXT: pushq %rbx
20671606 ; NoVLX-NEXT: andq $-32, %rsp
20681607 ; NoVLX-NEXT: subq $64, %rsp
2069 ; NoVLX-NEXT: .cfi_offset %rbx, -56
2070 ; NoVLX-NEXT: .cfi_offset %r12, -48
2071 ; NoVLX-NEXT: .cfi_offset %r13, -40
2072 ; NoVLX-NEXT: .cfi_offset %r14, -32
2073 ; NoVLX-NEXT: .cfi_offset %r15, -24
20741608 ; NoVLX-NEXT: vpcmpeqw %ymm1, %ymm0, %ymm0
20751609 ; NoVLX-NEXT: vpmovsxwd %ymm0, %zmm0
20761610 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
20771611 ; NoVLX-NEXT: kmovw %edi, %k1
2078 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0 {%k1}
2079 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
2080 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2081 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2082 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2083 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
2084 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2085 ; NoVLX-NEXT: kmovw %k1, %r8d
2086 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
2087 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2088 ; NoVLX-NEXT: kmovw %k1, %r10d
2089 ; NoVLX-NEXT: kshiftlw $13, %k0, %k1
2090 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2091 ; NoVLX-NEXT: kmovw %k1, %r9d
2092 ; NoVLX-NEXT: kshiftlw $12, %k0, %k1
2093 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2094 ; NoVLX-NEXT: kmovw %k1, %r11d
2095 ; NoVLX-NEXT: kshiftlw $11, %k0, %k1
2096 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2097 ; NoVLX-NEXT: kmovw %k1, %r14d
2098 ; NoVLX-NEXT: kshiftlw $10, %k0, %k1
2099 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2100 ; NoVLX-NEXT: kmovw %k1, %r15d
2101 ; NoVLX-NEXT: kshiftlw $9, %k0, %k1
2102 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2103 ; NoVLX-NEXT: kmovw %k1, %r12d
2104 ; NoVLX-NEXT: kshiftlw $8, %k0, %k1
2105 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2106 ; NoVLX-NEXT: kmovw %k1, %r13d
2107 ; NoVLX-NEXT: kshiftlw $7, %k0, %k1
2108 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2109 ; NoVLX-NEXT: kmovw %k1, %esi
2110 ; NoVLX-NEXT: kshiftlw $6, %k0, %k1
2111 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2112 ; NoVLX-NEXT: kmovw %k1, %ebx
2113 ; NoVLX-NEXT: kshiftlw $5, %k0, %k1
2114 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2115 ; NoVLX-NEXT: kmovw %k1, %edi
2116 ; NoVLX-NEXT: kshiftlw $4, %k0, %k1
2117 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2118 ; NoVLX-NEXT: kmovw %k1, %eax
2119 ; NoVLX-NEXT: kshiftlw $3, %k0, %k1
2120 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2121 ; NoVLX-NEXT: kmovw %k1, %edx
2122 ; NoVLX-NEXT: kshiftlw $2, %k0, %k1
2123 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2124 ; NoVLX-NEXT: vmovd %r10d, %xmm0
2125 ; NoVLX-NEXT: kmovw %k1, %r10d
2126 ; NoVLX-NEXT: kshiftlw $1, %k0, %k1
2127 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2128 ; NoVLX-NEXT: vpinsrb $1, %r8d, %xmm0, %xmm0
2129 ; NoVLX-NEXT: kmovw %k1, %ecx
2130 ; NoVLX-NEXT: vpinsrb $2, %r9d, %xmm0, %xmm0
2131 ; NoVLX-NEXT: vpinsrb $3, %r11d, %xmm0, %xmm0
2132 ; NoVLX-NEXT: vpinsrb $4, %r14d, %xmm0, %xmm0
2133 ; NoVLX-NEXT: vpinsrb $5, %r15d, %xmm0, %xmm0
2134 ; NoVLX-NEXT: vpinsrb $6, %r12d, %xmm0, %xmm0
2135 ; NoVLX-NEXT: vpinsrb $7, %r13d, %xmm0, %xmm0
2136 ; NoVLX-NEXT: vpinsrb $8, %esi, %xmm0, %xmm0
2137 ; NoVLX-NEXT: vpinsrb $9, %ebx, %xmm0, %xmm0
2138 ; NoVLX-NEXT: vpinsrb $10, %edi, %xmm0, %xmm0
2139 ; NoVLX-NEXT: vpinsrb $11, %eax, %xmm0, %xmm0
2140 ; NoVLX-NEXT: vpinsrb $12, %edx, %xmm0, %xmm0
2141 ; NoVLX-NEXT: kshiftrw $15, %k0, %k0
2142 ; NoVLX-NEXT: vpinsrb $13, %r10d, %xmm0, %xmm0
2143 ; NoVLX-NEXT: vpinsrb $14, %ecx, %xmm0, %xmm0
2144 ; NoVLX-NEXT: kmovw %k0, %eax
2145 ; NoVLX-NEXT: vpinsrb $15, %eax, %xmm0, %xmm0
1612 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1 {%k1}
1613 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
1614 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1615 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1616 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1617 ; NoVLX-NEXT: vpbroadcastd {{.*}}(%rip), %zmm0 {%k1} {z}
1618 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
21461619 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
21471620 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
21481621 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
21511624 ; NoVLX-NEXT: shlq $32, %rcx
21521625 ; NoVLX-NEXT: movl (%rsp), %eax
21531626 ; NoVLX-NEXT: orq %rcx, %rax
2154 ; NoVLX-NEXT: leaq -40(%rbp), %rsp
2155 ; NoVLX-NEXT: popq %rbx
2156 ; NoVLX-NEXT: popq %r12
2157 ; NoVLX-NEXT: popq %r13
2158 ; NoVLX-NEXT: popq %r14
2159 ; NoVLX-NEXT: popq %r15
1627 ; NoVLX-NEXT: movq %rbp, %rsp
21601628 ; NoVLX-NEXT: popq %rbp
21611629 ; NoVLX-NEXT: vzeroupper
21621630 ; NoVLX-NEXT: retq
21871655 ; NoVLX-NEXT: .cfi_offset %rbp, -16
21881656 ; NoVLX-NEXT: movq %rsp, %rbp
21891657 ; NoVLX-NEXT: .cfi_def_cfa_register %rbp
2190 ; NoVLX-NEXT: pushq %r15
2191 ; NoVLX-NEXT: pushq %r14
2192 ; NoVLX-NEXT: pushq %r13
2193 ; NoVLX-NEXT: pushq %r12
2194 ; NoVLX-NEXT: pushq %rbx
21951658 ; NoVLX-NEXT: andq $-32, %rsp
21961659 ; NoVLX-NEXT: subq $64, %rsp
2197 ; NoVLX-NEXT: .cfi_offset %rbx, -56
2198 ; NoVLX-NEXT: .cfi_offset %r12, -48
2199 ; NoVLX-NEXT: .cfi_offset %r13, -40
2200 ; NoVLX-NEXT: .cfi_offset %r14, -32
2201 ; NoVLX-NEXT: .cfi_offset %r15, -24
22021660 ; NoVLX-NEXT: vpcmpeqw (%rsi), %ymm0, %ymm0
22031661 ; NoVLX-NEXT: vpmovsxwd %ymm0, %zmm0
22041662 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
22051663 ; NoVLX-NEXT: kmovw %edi, %k1
2206 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0 {%k1}
2207 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
2208 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2209 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2210 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
2211 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
2212 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2213 ; NoVLX-NEXT: kmovw %k1, %r8d
2214 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
2215 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2216 ; NoVLX-NEXT: kmovw %k1, %r10d
2217 ; NoVLX-NEXT: kshiftlw $13, %k0, %k1
2218 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2219 ; NoVLX-NEXT: kmovw %k1, %r9d
2220 ; NoVLX-NEXT: kshiftlw $12, %k0, %k1
2221 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2222 ; NoVLX-NEXT: kmovw %k1, %r11d
2223 ; NoVLX-NEXT: kshiftlw $11, %k0, %k1
2224 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2225 ; NoVLX-NEXT: kmovw %k1, %r14d
2226 ; NoVLX-NEXT: kshiftlw $10, %k0, %k1
2227 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2228 ; NoVLX-NEXT: kmovw %k1, %r15d
2229 ; NoVLX-NEXT: kshiftlw $9, %k0, %k1
2230 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2231 ; NoVLX-NEXT: kmovw %k1, %r12d
2232 ; NoVLX-NEXT: kshiftlw $8, %k0, %k1
2233 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2234 ; NoVLX-NEXT: kmovw %k1, %r13d
2235 ; NoVLX-NEXT: kshiftlw $7, %k0, %k1
2236 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2237 ; NoVLX-NEXT: kmovw %k1, %esi
2238 ; NoVLX-NEXT: kshiftlw $6, %k0, %k1
2239 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2240 ; NoVLX-NEXT: kmovw %k1, %ebx
2241 ; NoVLX-NEXT: kshiftlw $5, %k0, %k1
2242 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2243 ; NoVLX-NEXT: kmovw %k1, %edi
2244 ; NoVLX-NEXT: kshiftlw $4, %k0, %k1
2245 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2246 ; NoVLX-NEXT: kmovw %k1, %eax
2247 ; NoVLX-NEXT: kshiftlw $3, %k0, %k1
2248 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2249 ; NoVLX-NEXT: kmovw %k1, %edx
2250 ; NoVLX-NEXT: kshiftlw $2, %k0, %k1
2251 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2252 ; NoVLX-NEXT: vmovd %r10d, %xmm0
2253 ; NoVLX-NEXT: kmovw %k1, %r10d
2254 ; NoVLX-NEXT: kshiftlw $1, %k0, %k1
2255 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
2256 ; NoVLX-NEXT: vpinsrb $1, %r8d, %xmm0, %xmm0
2257 ; NoVLX-NEXT: kmovw %k1, %ecx
2258 ; NoVLX-NEXT: vpinsrb $2, %r9d, %xmm0, %xmm0
2259 ; NoVLX-NEXT: vpinsrb $3, %r11d, %xmm0, %xmm0
2260 ; NoVLX-NEXT: vpinsrb $4, %r14d, %xmm0, %xmm0
2261 ; NoVLX-NEXT: vpinsrb $5, %r15d, %xmm0, %xmm0
2262 ; NoVLX-NEXT: vpinsrb $6, %r12d, %xmm0, %xmm0
2263 ; NoVLX-NEXT: vpinsrb $7, %r13d, %xmm0, %xmm0
2264 ; NoVLX-NEXT: vpinsrb $8, %esi, %xmm0, %xmm0
2265 ; NoVLX-NEXT: vpinsrb $9, %ebx, %xmm0, %xmm0
2266 ; NoVLX-NEXT: vpinsrb $10, %edi, %xmm0, %xmm0
2267 ; NoVLX-NEXT: vpinsrb $11, %eax, %xmm0, %xmm0
2268 ; NoVLX-NEXT: vpinsrb $12, %edx, %xmm0, %xmm0
2269 ; NoVLX-NEXT: kshiftrw $15, %k0, %k0
2270 ; NoVLX-NEXT: vpinsrb $13, %r10d, %xmm0, %xmm0
2271 ; NoVLX-NEXT: vpinsrb $14, %ecx, %xmm0, %xmm0
2272 ; NoVLX-NEXT: kmovw %k0, %eax
2273 ; NoVLX-NEXT: vpinsrb $15, %eax, %xmm0, %xmm0
1664 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1 {%k1}
1665 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
1666 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1667 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1668 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
1669 ; NoVLX-NEXT: vpbroadcastd {{.*}}(%rip), %zmm0 {%k1} {z}
1670 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
22741671 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
22751672 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
22761673 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
22791676 ; NoVLX-NEXT: shlq $32, %rcx
22801677 ; NoVLX-NEXT: movl (%rsp), %eax
22811678 ; NoVLX-NEXT: orq %rcx, %rax
2282 ; NoVLX-NEXT: leaq -40(%rbp), %rsp
2283 ; NoVLX-NEXT: popq %rbx
2284 ; NoVLX-NEXT: popq %r12
2285 ; NoVLX-NEXT: popq %r13
2286 ; NoVLX-NEXT: popq %r14
2287 ; NoVLX-NEXT: popq %r15
1679 ; NoVLX-NEXT: movq %rbp, %rsp
22881680 ; NoVLX-NEXT: popq %rbp
22891681 ; NoVLX-NEXT: vzeroupper
22901682 ; NoVLX-NEXT: retq
56415033 ; NoVLX-NEXT: .cfi_offset %rbp, -16
56425034 ; NoVLX-NEXT: movq %rsp, %rbp
56435035 ; NoVLX-NEXT: .cfi_def_cfa_register %rbp
5644 ; NoVLX-NEXT: pushq %r15
5645 ; NoVLX-NEXT: pushq %r14
5646 ; NoVLX-NEXT: pushq %r13
5647 ; NoVLX-NEXT: pushq %r12
5648 ; NoVLX-NEXT: pushq %rbx
56495036 ; NoVLX-NEXT: andq $-32, %rsp
56505037 ; NoVLX-NEXT: subq $32, %rsp
5651 ; NoVLX-NEXT: .cfi_offset %rbx, -56
5652 ; NoVLX-NEXT: .cfi_offset %r12, -48
5653 ; NoVLX-NEXT: .cfi_offset %r13, -40
5654 ; NoVLX-NEXT: .cfi_offset %r14, -32
5655 ; NoVLX-NEXT: .cfi_offset %r15, -24
5656 ; NoVLX-NEXT: vpcmpeqd %zmm1, %zmm0, %k0
5657 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
5658 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
5659 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
5660 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
5661 ; NoVLX-NEXT: kmovw %k1, %r8d
5662 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
5663 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
5664 ; NoVLX-NEXT: kmovw %k1, %r10d
5665 ; NoVLX-NEXT: kshiftlw $13, %k0, %k1
5666 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
5667 ; NoVLX-NEXT: kmovw %k1, %r9d
5668 ; NoVLX-NEXT: kshiftlw $12, %k0, %k1
5669 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
5670 ; NoVLX-NEXT: kmovw %k1, %r11d
5671 ; NoVLX-NEXT: kshiftlw $11, %k0, %k1
5672 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
5673 ; NoVLX-NEXT: kmovw %k1, %r14d
5674 ; NoVLX-NEXT: kshiftlw $10, %k0, %k1
5675 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
5676 ; NoVLX-NEXT: kmovw %k1, %r15d
5677 ; NoVLX-NEXT: kshiftlw $9, %k0, %k1
5678 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
5679 ; NoVLX-NEXT: kmovw %k1, %r12d
5680 ; NoVLX-NEXT: kshiftlw $8, %k0, %k1
5681 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
5682 ; NoVLX-NEXT: kmovw %k1, %r13d
5683 ; NoVLX-NEXT: kshiftlw $7, %k0, %k1
5684 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
5685 ; NoVLX-NEXT: kmovw %k1, %esi
5686 ; NoVLX-NEXT: kshiftlw $6, %k0, %k1
5687 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
5688 ; NoVLX-NEXT: kmovw %k1, %ebx
5689 ; NoVLX-NEXT: kshiftlw $5, %k0, %k1
5690 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
5691 ; NoVLX-NEXT: kmovw %k1, %edi
5692 ; NoVLX-NEXT: kshiftlw $4, %k0, %k1
5693 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
5694 ; NoVLX-NEXT: kmovw %k1, %eax
5695 ; NoVLX-NEXT: kshiftlw $3, %k0, %k1
5696 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
5697 ; NoVLX-NEXT: kmovw %k1, %edx
5698 ; NoVLX-NEXT: kshiftlw $2, %k0, %k1
5699 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
5700 ; NoVLX-NEXT: vmovd %r10d, %xmm0
5701 ; NoVLX-NEXT: kmovw %k1, %r10d
5702 ; NoVLX-NEXT: kshiftlw $1, %k0, %k1
5703 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
5704 ; NoVLX-NEXT: vpinsrb $1, %r8d, %xmm0, %xmm0
5705 ; NoVLX-NEXT: kmovw %k1, %ecx
5706 ; NoVLX-NEXT: vpinsrb $2, %r9d, %xmm0, %xmm0
5707 ; NoVLX-NEXT: vpinsrb $3, %r11d, %xmm0, %xmm0
5708 ; NoVLX-NEXT: vpinsrb $4, %r14d, %xmm0, %xmm0
5709 ; NoVLX-NEXT: vpinsrb $5, %r15d, %xmm0, %xmm0
5710 ; NoVLX-NEXT: vpinsrb $6, %r12d, %xmm0, %xmm0
5711 ; NoVLX-NEXT: vpinsrb $7, %r13d, %xmm0, %xmm0
5712 ; NoVLX-NEXT: vpinsrb $8, %esi, %xmm0, %xmm0
5713 ; NoVLX-NEXT: vpinsrb $9, %ebx, %xmm0, %xmm0
5714 ; NoVLX-NEXT: vpinsrb $10, %edi, %xmm0, %xmm0
5715 ; NoVLX-NEXT: vpinsrb $11, %eax, %xmm0, %xmm0
5716 ; NoVLX-NEXT: vpinsrb $12, %edx, %xmm0, %xmm0
5717 ; NoVLX-NEXT: kshiftrw $15, %k0, %k0
5718 ; NoVLX-NEXT: vpinsrb $13, %r10d, %xmm0, %xmm0
5719 ; NoVLX-NEXT: vpinsrb $14, %ecx, %xmm0, %xmm0
5720 ; NoVLX-NEXT: kmovw %k0, %eax
5721 ; NoVLX-NEXT: vpinsrb $15, %eax, %xmm0, %xmm0
5038 ; NoVLX-NEXT: vpcmpeqd %zmm1, %zmm0, %k1
5039 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
5040 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
5041 ; NoVLX-NEXT: vpbroadcastd {{.*}}(%rip), %zmm0 {%k1} {z}
5042 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
57225043 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
57235044 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
57245045 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
57255046 ; NoVLX-NEXT: kmovw %k0, (%rsp)
57265047 ; NoVLX-NEXT: movl (%rsp), %eax
5727 ; NoVLX-NEXT: leaq -40(%rbp), %rsp
5728 ; NoVLX-NEXT: popq %rbx
5729 ; NoVLX-NEXT: popq %r12
5730 ; NoVLX-NEXT: popq %r13
5731 ; NoVLX-NEXT: popq %r14
5732 ; NoVLX-NEXT: popq %r15
5048 ; NoVLX-NEXT: movq %rbp, %rsp
57335049 ; NoVLX-NEXT: popq %rbp
57345050 ; NoVLX-NEXT: vzeroupper
57355051 ; NoVLX-NEXT: retq
57575073 ; NoVLX-NEXT: .cfi_offset %rbp, -16
57585074 ; NoVLX-NEXT: movq %rsp, %rbp
57595075 ; NoVLX-NEXT: .cfi_def_cfa_register %rbp
5760 ; NoVLX-NEXT: pushq %r15
5761 ; NoVLX-NEXT: pushq %r14
5762 ; NoVLX-NEXT: pushq %r13
5763 ; NoVLX-NEXT: pushq %r12
5764 ; NoVLX-NEXT: pushq %rbx
57655076 ; NoVLX-NEXT: andq $-32, %rsp
57665077 ; NoVLX-NEXT: subq $32, %rsp
5767 ; NoVLX-NEXT: .cfi_offset %rbx, -56
5768 ; NoVLX-NEXT: .cfi_offset %r12, -48
5769 ; NoVLX-NEXT: .cfi_offset %r13, -40
5770 ; NoVLX-NEXT: .cfi_offset %r14, -32
5771 ; NoVLX-NEXT: .cfi_offset %r15, -24
5772 ; NoVLX-NEXT: vpcmpeqd (%rdi), %zmm0, %k0
5773 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
5774 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
5775 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
5776 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
5777 ; NoVLX-NEXT: kmovw %k1, %r8d
5778 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
5779 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
5780 ; NoVLX-NEXT: kmovw %k1, %r10d
5781 ; NoVLX-NEXT: kshiftlw $13, %k0, %k1
5782 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
5783 ; NoVLX-NEXT: kmovw %k1, %r9d
5784 ; NoVLX-NEXT: kshiftlw $12, %k0, %k1
5785 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
5786 ; NoVLX-NEXT: kmovw %k1, %r11d
5787 ; NoVLX-NEXT: kshiftlw $11, %k0, %k1
5788 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
5789 ; NoVLX-NEXT: kmovw %k1, %r14d
5790 ; NoVLX-NEXT: kshiftlw $10, %k0, %k1
5791 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
5792 ; NoVLX-NEXT: kmovw %k1, %r15d
5793 ; NoVLX-NEXT: kshiftlw $9, %k0, %k1
5794 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
5795 ; NoVLX-NEXT: kmovw %k1, %r12d
5796 ; NoVLX-NEXT: kshiftlw $8, %k0, %k1
5797 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
5798 ; NoVLX-NEXT: kmovw %k1, %r13d
5799 ; NoVLX-NEXT: kshiftlw $7, %k0, %k1
5800 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
5801 ; NoVLX-NEXT: kmovw %k1, %esi
5802 ; NoVLX-NEXT: kshiftlw $6, %k0, %k1
5803 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
5804 ; NoVLX-NEXT: kmovw %k1, %ebx
5805 ; NoVLX-NEXT: kshiftlw $5, %k0, %k1
5806 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
5807 ; NoVLX-NEXT: kmovw %k1, %edi
5808 ; NoVLX-NEXT: kshiftlw $4, %k0, %k1
5809 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
5810 ; NoVLX-NEXT: kmovw %k1, %eax
5811 ; NoVLX-NEXT: kshiftlw $3, %k0, %k1
5812 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
5813 ; NoVLX-NEXT: kmovw %k1, %edx
5814 ; NoVLX-NEXT: kshiftlw $2, %k0, %k1
5815 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
5816 ; NoVLX-NEXT: vmovd %r10d, %xmm0
5817 ; NoVLX-NEXT: kmovw %k1, %r10d
5818 ; NoVLX-NEXT: kshiftlw $1, %k0, %k1
5819 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
5820 ; NoVLX-NEXT: vpinsrb $1, %r8d, %xmm0, %xmm0
5821 ; NoVLX-NEXT: kmovw %k1, %ecx
5822 ; NoVLX-NEXT: vpinsrb $2, %r9d, %xmm0, %xmm0
5823 ; NoVLX-NEXT: vpinsrb $3, %r11d, %xmm0, %xmm0
5824 ; NoVLX-NEXT: vpinsrb $4, %r14d, %xmm0, %xmm0
5825 ; NoVLX-NEXT: vpinsrb $5, %r15d, %xmm0, %xmm0
5826 ; NoVLX-NEXT: vpinsrb $6, %r12d, %xmm0, %xmm0
5827 ; NoVLX-NEXT: vpinsrb $7, %r13d, %xmm0, %xmm0
5828 ; NoVLX-NEXT: vpinsrb $8, %esi, %xmm0, %xmm0
5829 ; NoVLX-NEXT: vpinsrb $9, %ebx, %xmm0, %xmm0
5830 ; NoVLX-NEXT: vpinsrb $10, %edi, %xmm0, %xmm0
5831 ; NoVLX-NEXT: vpinsrb $11, %eax, %xmm0, %xmm0
5832 ; NoVLX-NEXT: vpinsrb $12, %edx, %xmm0, %xmm0
5833 ; NoVLX-NEXT: kshiftrw $15, %k0, %k0
5834 ; NoVLX-NEXT: vpinsrb $13, %r10d, %xmm0, %xmm0
5835 ; NoVLX-NEXT: vpinsrb $14, %ecx, %xmm0, %xmm0
5836 ; NoVLX-NEXT: kmovw %k0, %eax
5837 ; NoVLX-NEXT: vpinsrb $15, %eax, %xmm0, %xmm0
5078 ; NoVLX-NEXT: vpcmpeqd (%rdi), %zmm0, %k1
5079 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
5080 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
5081 ; NoVLX-NEXT: vpbroadcastd {{.*}}(%rip), %zmm0 {%k1} {z}
5082 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
58385083 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
58395084 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
58405085 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
58415086 ; NoVLX-NEXT: kmovw %k0, (%rsp)
58425087 ; NoVLX-NEXT: movl (%rsp), %eax
5843 ; NoVLX-NEXT: leaq -40(%rbp), %rsp
5844 ; NoVLX-NEXT: popq %rbx
5845 ; NoVLX-NEXT: popq %r12
5846 ; NoVLX-NEXT: popq %r13
5847 ; NoVLX-NEXT: popq %r14
5848 ; NoVLX-NEXT: popq %r15
5088 ; NoVLX-NEXT: movq %rbp, %rsp
58495089 ; NoVLX-NEXT: popq %rbp
58505090 ; NoVLX-NEXT: vzeroupper
58515091 ; NoVLX-NEXT: retq
58755115 ; NoVLX-NEXT: .cfi_offset %rbp, -16
58765116 ; NoVLX-NEXT: movq %rsp, %rbp
58775117 ; NoVLX-NEXT: .cfi_def_cfa_register %rbp
5878 ; NoVLX-NEXT: pushq %r15
5879 ; NoVLX-NEXT: pushq %r14
5880 ; NoVLX-NEXT: pushq %r13
5881 ; NoVLX-NEXT: pushq %r12
5882 ; NoVLX-NEXT: pushq %rbx
58835118 ; NoVLX-NEXT: andq $-32, %rsp
58845119 ; NoVLX-NEXT: subq $32, %rsp
5885 ; NoVLX-NEXT: .cfi_offset %rbx, -56
5886 ; NoVLX-NEXT: .cfi_offset %r12, -48
5887 ; NoVLX-NEXT: .cfi_offset %r13, -40
5888 ; NoVLX-NEXT: .cfi_offset %r14, -32
5889 ; NoVLX-NEXT: .cfi_offset %r15, -24
58905120 ; NoVLX-NEXT: kmovw %edi, %k1
5891 ; NoVLX-NEXT: vpcmpeqd %zmm1, %zmm0, %k0 {%k1}
5892 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
5893 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
5894 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
5895 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
5896 ; NoVLX-NEXT: kmovw %k1, %r8d
5897 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
5898 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
5899 ; NoVLX-NEXT: kmovw %k1, %r10d
5900 ; NoVLX-NEXT: kshiftlw $13, %k0, %k1
5901 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
5902 ; NoVLX-NEXT: kmovw %k1, %r9d
5903 ; NoVLX-NEXT: kshiftlw $12, %k0, %k1
5904 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
5905 ; NoVLX-NEXT: kmovw %k1, %r11d
5906 ; NoVLX-NEXT: kshiftlw $11, %k0, %k1
5907 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
5908 ; NoVLX-NEXT: kmovw %k1, %r14d
5909 ; NoVLX-NEXT: kshiftlw $10, %k0, %k1
5910 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
5911 ; NoVLX-NEXT: kmovw %k1, %r15d
5912 ; NoVLX-NEXT: kshiftlw $9, %k0, %k1
5913 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
5914 ; NoVLX-NEXT: kmovw %k1, %r12d
5915 ; NoVLX-NEXT: kshiftlw $8, %k0, %k1
5916 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
5917 ; NoVLX-NEXT: kmovw %k1, %r13d
5918 ; NoVLX-NEXT: kshiftlw $7, %k0, %k1
5919 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
5920 ; NoVLX-NEXT: kmovw %k1, %esi
5921 ; NoVLX-NEXT: kshiftlw $6, %k0, %k1
5922 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
5923 ; NoVLX-NEXT: kmovw %k1, %ebx
5924 ; NoVLX-NEXT: kshiftlw $5, %k0, %k1
5925 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
5926 ; NoVLX-NEXT: kmovw %k1, %edi
5927 ; NoVLX-NEXT: kshiftlw $4, %k0, %k1
5928 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
5929 ; NoVLX-NEXT: kmovw %k1, %eax
5930 ; NoVLX-NEXT: kshiftlw $3, %k0, %k1
5931 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
5932 ; NoVLX-NEXT: kmovw %k1, %edx
5933 ; NoVLX-NEXT: kshiftlw $2, %k0, %k1
5934 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
5935 ; NoVLX-NEXT: vmovd %r10d, %xmm0
5936 ; NoVLX-NEXT: kmovw %k1, %r10d
5937 ; NoVLX-NEXT: kshiftlw $1, %k0, %k1
5938 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
5939 ; NoVLX-NEXT: vpinsrb $1, %r8d, %xmm0, %xmm0
5940 ; NoVLX-NEXT: kmovw %k1, %ecx
5941 ; NoVLX-NEXT: vpinsrb $2, %r9d, %xmm0, %xmm0
5942 ; NoVLX-NEXT: vpinsrb $3, %r11d, %xmm0, %xmm0
5943 ; NoVLX-NEXT: vpinsrb $4, %r14d, %xmm0, %xmm0
5944 ; NoVLX-NEXT: vpinsrb $5, %r15d, %xmm0, %xmm0
5945 ; NoVLX-NEXT: vpinsrb $6, %r12d, %xmm0, %xmm0
5946 ; NoVLX-NEXT: vpinsrb $7, %r13d, %xmm0, %xmm0
5947 ; NoVLX-NEXT: vpinsrb $8, %esi, %xmm0, %xmm0
5948 ; NoVLX-NEXT: vpinsrb $9, %ebx, %xmm0, %xmm0
5949 ; NoVLX-NEXT: vpinsrb $10, %edi, %xmm0, %xmm0
5950 ; NoVLX-NEXT: vpinsrb $11, %eax, %xmm0, %xmm0
5951 ; NoVLX-NEXT: vpinsrb $12, %edx, %xmm0, %xmm0
5952 ; NoVLX-NEXT: kshiftrw $15, %k0, %k0
5953 ; NoVLX-NEXT: vpinsrb $13, %r10d, %xmm0, %xmm0
5954 ; NoVLX-NEXT: vpinsrb $14, %ecx, %xmm0, %xmm0
5955 ; NoVLX-NEXT: kmovw %k0, %eax
5956 ; NoVLX-NEXT: vpinsrb $15, %eax, %xmm0, %xmm0
5121 ; NoVLX-NEXT: vpcmpeqd %zmm1, %zmm0, %k1 {%k1}
5122 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
5123 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
5124 ; NoVLX-NEXT: vpbroadcastd {{.*}}(%rip), %zmm0 {%k1} {z}
5125 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
59575126 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
59585127 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
59595128 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
59605129 ; NoVLX-NEXT: kmovw %k0, (%rsp)
59615130 ; NoVLX-NEXT: movl (%rsp), %eax
5962 ; NoVLX-NEXT: leaq -40(%rbp), %rsp
5963 ; NoVLX-NEXT: popq %rbx
5964 ; NoVLX-NEXT: popq %r12
5965 ; NoVLX-NEXT: popq %r13
5966 ; NoVLX-NEXT: popq %r14
5967 ; NoVLX-NEXT: popq %r15
5131 ; NoVLX-NEXT: movq %rbp, %rsp
59685132 ; NoVLX-NEXT: popq %rbp
59695133 ; NoVLX-NEXT: vzeroupper
59705134 ; NoVLX-NEXT: retq
59955159 ; NoVLX-NEXT: .cfi_offset %rbp, -16
59965160 ; NoVLX-NEXT: movq %rsp, %rbp
59975161 ; NoVLX-NEXT: .cfi_def_cfa_register %rbp
5998 ; NoVLX-NEXT: pushq %r15
5999 ; NoVLX-NEXT: pushq %r14
6000 ; NoVLX-NEXT: pushq %r13
6001 ; NoVLX-NEXT: pushq %r12
6002 ; NoVLX-NEXT: pushq %rbx
60035162 ; NoVLX-NEXT: andq $-32, %rsp
60045163 ; NoVLX-NEXT: subq $32, %rsp
6005 ; NoVLX-NEXT: .cfi_offset %rbx, -56
6006 ; NoVLX-NEXT: .cfi_offset %r12, -48
6007 ; NoVLX-NEXT: .cfi_offset %r13, -40
6008 ; NoVLX-NEXT: .cfi_offset %r14, -32
6009 ; NoVLX-NEXT: .cfi_offset %r15, -24
60105164 ; NoVLX-NEXT: kmovw %edi, %k1
6011 ; NoVLX-NEXT: vpcmpeqd (%rsi), %zmm0, %k0 {%k1}
6012 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
6013 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
6014 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
6015 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6016 ; NoVLX-NEXT: kmovw %k1, %r8d
6017 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
6018 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6019 ; NoVLX-NEXT: kmovw %k1, %r10d
6020 ; NoVLX-NEXT: kshiftlw $13, %k0, %k1
6021 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6022 ; NoVLX-NEXT: kmovw %k1, %r9d
6023 ; NoVLX-NEXT: kshiftlw $12, %k0, %k1
6024 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6025 ; NoVLX-NEXT: kmovw %k1, %r11d
6026 ; NoVLX-NEXT: kshiftlw $11, %k0, %k1
6027 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6028 ; NoVLX-NEXT: kmovw %k1, %r14d
6029 ; NoVLX-NEXT: kshiftlw $10, %k0, %k1
6030 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6031 ; NoVLX-NEXT: kmovw %k1, %r15d
6032 ; NoVLX-NEXT: kshiftlw $9, %k0, %k1
6033 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6034 ; NoVLX-NEXT: kmovw %k1, %r12d
6035 ; NoVLX-NEXT: kshiftlw $8, %k0, %k1
6036 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6037 ; NoVLX-NEXT: kmovw %k1, %r13d
6038 ; NoVLX-NEXT: kshiftlw $7, %k0, %k1
6039 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6040 ; NoVLX-NEXT: kmovw %k1, %esi
6041 ; NoVLX-NEXT: kshiftlw $6, %k0, %k1
6042 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6043 ; NoVLX-NEXT: kmovw %k1, %ebx
6044 ; NoVLX-NEXT: kshiftlw $5, %k0, %k1
6045 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6046 ; NoVLX-NEXT: kmovw %k1, %edi
6047 ; NoVLX-NEXT: kshiftlw $4, %k0, %k1
6048 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6049 ; NoVLX-NEXT: kmovw %k1, %eax
6050 ; NoVLX-NEXT: kshiftlw $3, %k0, %k1
6051 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6052 ; NoVLX-NEXT: kmovw %k1, %edx
6053 ; NoVLX-NEXT: kshiftlw $2, %k0, %k1
6054 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6055 ; NoVLX-NEXT: vmovd %r10d, %xmm0
6056 ; NoVLX-NEXT: kmovw %k1, %r10d
6057 ; NoVLX-NEXT: kshiftlw $1, %k0, %k1
6058 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6059 ; NoVLX-NEXT: vpinsrb $1, %r8d, %xmm0, %xmm0
6060 ; NoVLX-NEXT: kmovw %k1, %ecx
6061 ; NoVLX-NEXT: vpinsrb $2, %r9d, %xmm0, %xmm0
6062 ; NoVLX-NEXT: vpinsrb $3, %r11d, %xmm0, %xmm0
6063 ; NoVLX-NEXT: vpinsrb $4, %r14d, %xmm0, %xmm0
6064 ; NoVLX-NEXT: vpinsrb $5, %r15d, %xmm0, %xmm0
6065 ; NoVLX-NEXT: vpinsrb $6, %r12d, %xmm0, %xmm0
6066 ; NoVLX-NEXT: vpinsrb $7, %r13d, %xmm0, %xmm0
6067 ; NoVLX-NEXT: vpinsrb $8, %esi, %xmm0, %xmm0
6068 ; NoVLX-NEXT: vpinsrb $9, %ebx, %xmm0, %xmm0
6069 ; NoVLX-NEXT: vpinsrb $10, %edi, %xmm0, %xmm0
6070 ; NoVLX-NEXT: vpinsrb $11, %eax, %xmm0, %xmm0
6071 ; NoVLX-NEXT: vpinsrb $12, %edx, %xmm0, %xmm0
6072 ; NoVLX-NEXT: kshiftrw $15, %k0, %k0
6073 ; NoVLX-NEXT: vpinsrb $13, %r10d, %xmm0, %xmm0
6074 ; NoVLX-NEXT: vpinsrb $14, %ecx, %xmm0, %xmm0
6075 ; NoVLX-NEXT: kmovw %k0, %eax
6076 ; NoVLX-NEXT: vpinsrb $15, %eax, %xmm0, %xmm0
5165 ; NoVLX-NEXT: vpcmpeqd (%rsi), %zmm0, %k1 {%k1}
5166 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
5167 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
5168 ; NoVLX-NEXT: vpbroadcastd {{.*}}(%rip), %zmm0 {%k1} {z}
5169 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
60775170 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
60785171 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
60795172 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
60805173 ; NoVLX-NEXT: kmovw %k0, (%rsp)
60815174 ; NoVLX-NEXT: movl (%rsp), %eax
6082 ; NoVLX-NEXT: leaq -40(%rbp), %rsp
6083 ; NoVLX-NEXT: popq %rbx
6084 ; NoVLX-NEXT: popq %r12
6085 ; NoVLX-NEXT: popq %r13
6086 ; NoVLX-NEXT: popq %r14
6087 ; NoVLX-NEXT: popq %r15
5175 ; NoVLX-NEXT: movq %rbp, %rsp
60885176 ; NoVLX-NEXT: popq %rbp
60895177 ; NoVLX-NEXT: vzeroupper
60905178 ; NoVLX-NEXT: retq
61165204 ; NoVLX-NEXT: .cfi_offset %rbp, -16
61175205 ; NoVLX-NEXT: movq %rsp, %rbp
61185206 ; NoVLX-NEXT: .cfi_def_cfa_register %rbp
6119 ; NoVLX-NEXT: pushq %r15
6120 ; NoVLX-NEXT: pushq %r14
6121 ; NoVLX-NEXT: pushq %r13
6122 ; NoVLX-NEXT: pushq %r12
6123 ; NoVLX-NEXT: pushq %rbx
61245207 ; NoVLX-NEXT: andq $-32, %rsp
61255208 ; NoVLX-NEXT: subq $32, %rsp
6126 ; NoVLX-NEXT: .cfi_offset %rbx, -56
6127 ; NoVLX-NEXT: .cfi_offset %r12, -48
6128 ; NoVLX-NEXT: .cfi_offset %r13, -40
6129 ; NoVLX-NEXT: .cfi_offset %r14, -32
6130 ; NoVLX-NEXT: .cfi_offset %r15, -24
6131 ; NoVLX-NEXT: vpcmpeqd (%rdi){1to16}, %zmm0, %k0
6132 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
6133 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
6134 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
6135 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6136 ; NoVLX-NEXT: kmovw %k1, %r8d
6137 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
6138 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6139 ; NoVLX-NEXT: kmovw %k1, %r10d
6140 ; NoVLX-NEXT: kshiftlw $13, %k0, %k1
6141 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6142 ; NoVLX-NEXT: kmovw %k1, %r9d
6143 ; NoVLX-NEXT: kshiftlw $12, %k0, %k1
6144 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6145 ; NoVLX-NEXT: kmovw %k1, %r11d
6146 ; NoVLX-NEXT: kshiftlw $11, %k0, %k1
6147 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6148 ; NoVLX-NEXT: kmovw %k1, %r14d
6149 ; NoVLX-NEXT: kshiftlw $10, %k0, %k1
6150 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6151 ; NoVLX-NEXT: kmovw %k1, %r15d
6152 ; NoVLX-NEXT: kshiftlw $9, %k0, %k1
6153 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6154 ; NoVLX-NEXT: kmovw %k1, %r12d
6155 ; NoVLX-NEXT: kshiftlw $8, %k0, %k1
6156 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6157 ; NoVLX-NEXT: kmovw %k1, %r13d
6158 ; NoVLX-NEXT: kshiftlw $7, %k0, %k1
6159 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6160 ; NoVLX-NEXT: kmovw %k1, %esi
6161 ; NoVLX-NEXT: kshiftlw $6, %k0, %k1
6162 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6163 ; NoVLX-NEXT: kmovw %k1, %ebx
6164 ; NoVLX-NEXT: kshiftlw $5, %k0, %k1
6165 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6166 ; NoVLX-NEXT: kmovw %k1, %edi
6167 ; NoVLX-NEXT: kshiftlw $4, %k0, %k1
6168 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6169 ; NoVLX-NEXT: kmovw %k1, %eax
6170 ; NoVLX-NEXT: kshiftlw $3, %k0, %k1
6171 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6172 ; NoVLX-NEXT: kmovw %k1, %edx
6173 ; NoVLX-NEXT: kshiftlw $2, %k0, %k1
6174 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6175 ; NoVLX-NEXT: vmovd %r10d, %xmm0
6176 ; NoVLX-NEXT: kmovw %k1, %r10d
6177 ; NoVLX-NEXT: kshiftlw $1, %k0, %k1
6178 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6179 ; NoVLX-NEXT: vpinsrb $1, %r8d, %xmm0, %xmm0
6180 ; NoVLX-NEXT: kmovw %k1, %ecx
6181 ; NoVLX-NEXT: vpinsrb $2, %r9d, %xmm0, %xmm0
6182 ; NoVLX-NEXT: vpinsrb $3, %r11d, %xmm0, %xmm0
6183 ; NoVLX-NEXT: vpinsrb $4, %r14d, %xmm0, %xmm0
6184 ; NoVLX-NEXT: vpinsrb $5, %r15d, %xmm0, %xmm0
6185 ; NoVLX-NEXT: vpinsrb $6, %r12d, %xmm0, %xmm0
6186 ; NoVLX-NEXT: vpinsrb $7, %r13d, %xmm0, %xmm0
6187 ; NoVLX-NEXT: vpinsrb $8, %esi, %xmm0, %xmm0
6188 ; NoVLX-NEXT: vpinsrb $9, %ebx, %xmm0, %xmm0
6189 ; NoVLX-NEXT: vpinsrb $10, %edi, %xmm0, %xmm0
6190 ; NoVLX-NEXT: vpinsrb $11, %eax, %xmm0, %xmm0
6191 ; NoVLX-NEXT: vpinsrb $12, %edx, %xmm0, %xmm0
6192 ; NoVLX-NEXT: kshiftrw $15, %k0, %k0
6193 ; NoVLX-NEXT: vpinsrb $13, %r10d, %xmm0, %xmm0
6194 ; NoVLX-NEXT: vpinsrb $14, %ecx, %xmm0, %xmm0
6195 ; NoVLX-NEXT: kmovw %k0, %eax
6196 ; NoVLX-NEXT: vpinsrb $15, %eax, %xmm0, %xmm0
5209 ; NoVLX-NEXT: vpcmpeqd (%rdi){1to16}, %zmm0, %k1
5210 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
5211 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
5212 ; NoVLX-NEXT: vpbroadcastd {{.*}}(%rip), %zmm0 {%k1} {z}
5213 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
61975214 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
61985215 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
61995216 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
62005217 ; NoVLX-NEXT: kmovw %k0, (%rsp)
62015218 ; NoVLX-NEXT: movl (%rsp), %eax
6202 ; NoVLX-NEXT: leaq -40(%rbp), %rsp
6203 ; NoVLX-NEXT: popq %rbx
6204 ; NoVLX-NEXT: popq %r12
6205 ; NoVLX-NEXT: popq %r13
6206 ; NoVLX-NEXT: popq %r14
6207 ; NoVLX-NEXT: popq %r15
5219 ; NoVLX-NEXT: movq %rbp, %rsp
62085220 ; NoVLX-NEXT: popq %rbp
62095221 ; NoVLX-NEXT: vzeroupper
62105222 ; NoVLX-NEXT: retq
62355247 ; NoVLX-NEXT: .cfi_offset %rbp, -16
62365248 ; NoVLX-NEXT: movq %rsp, %rbp
62375249 ; NoVLX-NEXT: .cfi_def_cfa_register %rbp
6238 ; NoVLX-NEXT: pushq %r15
6239 ; NoVLX-NEXT: pushq %r14
6240 ; NoVLX-NEXT: pushq %r13
6241 ; NoVLX-NEXT: pushq %r12
6242 ; NoVLX-NEXT: pushq %rbx
62435250 ; NoVLX-NEXT: andq $-32, %rsp
62445251 ; NoVLX-NEXT: subq $32, %rsp
6245 ; NoVLX-NEXT: .cfi_offset %rbx, -56
6246 ; NoVLX-NEXT: .cfi_offset %r12, -48
6247 ; NoVLX-NEXT: .cfi_offset %r13, -40
6248 ; NoVLX-NEXT: .cfi_offset %r14, -32
6249 ; NoVLX-NEXT: .cfi_offset %r15, -24
62505252 ; NoVLX-NEXT: kmovw %edi, %k1
6251 ; NoVLX-NEXT: vpcmpeqd (%rsi){1to16}, %zmm0, %k0 {%k1}
6252 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
6253 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
6254 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
6255 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6256 ; NoVLX-NEXT: kmovw %k1, %r8d
6257 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
6258 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6259 ; NoVLX-NEXT: kmovw %k1, %r10d
6260 ; NoVLX-NEXT: kshiftlw $13, %k0, %k1
6261 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6262 ; NoVLX-NEXT: kmovw %k1, %r9d
6263 ; NoVLX-NEXT: kshiftlw $12, %k0, %k1
6264 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6265 ; NoVLX-NEXT: kmovw %k1, %r11d
6266 ; NoVLX-NEXT: kshiftlw $11, %k0, %k1
6267 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6268 ; NoVLX-NEXT: kmovw %k1, %r14d
6269 ; NoVLX-NEXT: kshiftlw $10, %k0, %k1
6270 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6271 ; NoVLX-NEXT: kmovw %k1, %r15d
6272 ; NoVLX-NEXT: kshiftlw $9, %k0, %k1
6273 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6274 ; NoVLX-NEXT: kmovw %k1, %r12d
6275 ; NoVLX-NEXT: kshiftlw $8, %k0, %k1
6276 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6277 ; NoVLX-NEXT: kmovw %k1, %r13d
6278 ; NoVLX-NEXT: kshiftlw $7, %k0, %k1
6279 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6280 ; NoVLX-NEXT: kmovw %k1, %esi
6281 ; NoVLX-NEXT: kshiftlw $6, %k0, %k1
6282 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6283 ; NoVLX-NEXT: kmovw %k1, %ebx
6284 ; NoVLX-NEXT: kshiftlw $5, %k0, %k1
6285 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6286 ; NoVLX-NEXT: kmovw %k1, %edi
6287 ; NoVLX-NEXT: kshiftlw $4, %k0, %k1
6288 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6289 ; NoVLX-NEXT: kmovw %k1, %eax
6290 ; NoVLX-NEXT: kshiftlw $3, %k0, %k1
6291 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6292 ; NoVLX-NEXT: kmovw %k1, %edx
6293 ; NoVLX-NEXT: kshiftlw $2, %k0, %k1
6294 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6295 ; NoVLX-NEXT: vmovd %r10d, %xmm0
6296 ; NoVLX-NEXT: kmovw %k1, %r10d
6297 ; NoVLX-NEXT: kshiftlw $1, %k0, %k1
6298 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6299 ; NoVLX-NEXT: vpinsrb $1, %r8d, %xmm0, %xmm0
6300 ; NoVLX-NEXT: kmovw %k1, %ecx
6301 ; NoVLX-NEXT: vpinsrb $2, %r9d, %xmm0, %xmm0
6302 ; NoVLX-NEXT: vpinsrb $3, %r11d, %xmm0, %xmm0
6303 ; NoVLX-NEXT: vpinsrb $4, %r14d, %xmm0, %xmm0
6304 ; NoVLX-NEXT: vpinsrb $5, %r15d, %xmm0, %xmm0
6305 ; NoVLX-NEXT: vpinsrb $6, %r12d, %xmm0, %xmm0
6306 ; NoVLX-NEXT: vpinsrb $7, %r13d, %xmm0, %xmm0
6307 ; NoVLX-NEXT: vpinsrb $8, %esi, %xmm0, %xmm0
6308 ; NoVLX-NEXT: vpinsrb $9, %ebx, %xmm0, %xmm0
6309 ; NoVLX-NEXT: vpinsrb $10, %edi, %xmm0, %xmm0
6310 ; NoVLX-NEXT: vpinsrb $11, %eax, %xmm0, %xmm0
6311 ; NoVLX-NEXT: vpinsrb $12, %edx, %xmm0, %xmm0
6312 ; NoVLX-NEXT: kshiftrw $15, %k0, %k0
6313 ; NoVLX-NEXT: vpinsrb $13, %r10d, %xmm0, %xmm0
6314 ; NoVLX-NEXT: vpinsrb $14, %ecx, %xmm0, %xmm0
6315 ; NoVLX-NEXT: kmovw %k0, %eax
6316 ; NoVLX-NEXT: vpinsrb $15, %eax, %xmm0, %xmm0
5253 ; NoVLX-NEXT: vpcmpeqd (%rsi){1to16}, %zmm0, %k1 {%k1}
5254 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
5255 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
5256 ; NoVLX-NEXT: vpbroadcastd {{.*}}(%rip), %zmm0 {%k1} {z}
5257 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
63175258 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
63185259 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
63195260 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
63205261 ; NoVLX-NEXT: kmovw %k0, (%rsp)
63215262 ; NoVLX-NEXT: movl (%rsp), %eax
6322 ; NoVLX-NEXT: leaq -40(%rbp), %rsp
6323 ; NoVLX-NEXT: popq %rbx
6324 ; NoVLX-NEXT: popq %r12
6325 ; NoVLX-NEXT: popq %r13
6326 ; NoVLX-NEXT: popq %r14
6327 ; NoVLX-NEXT: popq %r15
5263 ; NoVLX-NEXT: movq %rbp, %rsp
63285264 ; NoVLX-NEXT: popq %rbp
63295265 ; NoVLX-NEXT: vzeroupper
63305266 ; NoVLX-NEXT: retq
63575293 ; NoVLX-NEXT: .cfi_offset %rbp, -16
63585294 ; NoVLX-NEXT: movq %rsp, %rbp
63595295 ; NoVLX-NEXT: .cfi_def_cfa_register %rbp
6360 ; NoVLX-NEXT: pushq %r15
6361 ; NoVLX-NEXT: pushq %r14
6362 ; NoVLX-NEXT: pushq %r13
6363 ; NoVLX-NEXT: pushq %r12
6364 ; NoVLX-NEXT: pushq %rbx
63655296 ; NoVLX-NEXT: andq $-32, %rsp
63665297 ; NoVLX-NEXT: subq $64, %rsp
6367 ; NoVLX-NEXT: .cfi_offset %rbx, -56
6368 ; NoVLX-NEXT: .cfi_offset %r12, -48
6369 ; NoVLX-NEXT: .cfi_offset %r13, -40
6370 ; NoVLX-NEXT: .cfi_offset %r14, -32
6371 ; NoVLX-NEXT: .cfi_offset %r15, -24
6372 ; NoVLX-NEXT: vpcmpeqd %zmm1, %zmm0, %k0
6373 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
6374 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
6375 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
6376 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
6377 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
6378 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6379 ; NoVLX-NEXT: kmovw %k1, %r8d
6380 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
6381 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6382 ; NoVLX-NEXT: kmovw %k1, %r10d
6383 ; NoVLX-NEXT: kshiftlw $13, %k0, %k1
6384 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6385 ; NoVLX-NEXT: kmovw %k1, %r9d
6386 ; NoVLX-NEXT: kshiftlw $12, %k0, %k1
6387 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6388 ; NoVLX-NEXT: kmovw %k1, %r11d
6389 ; NoVLX-NEXT: kshiftlw $11, %k0, %k1
6390 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6391 ; NoVLX-NEXT: kmovw %k1, %r14d
6392 ; NoVLX-NEXT: kshiftlw $10, %k0, %k1
6393 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6394 ; NoVLX-NEXT: kmovw %k1, %r15d
6395 ; NoVLX-NEXT: kshiftlw $9, %k0, %k1
6396 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6397 ; NoVLX-NEXT: kmovw %k1, %r12d
6398 ; NoVLX-NEXT: kshiftlw $8, %k0, %k1
6399 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6400 ; NoVLX-NEXT: kmovw %k1, %r13d
6401 ; NoVLX-NEXT: kshiftlw $7, %k0, %k1
6402 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6403 ; NoVLX-NEXT: kmovw %k1, %esi
6404 ; NoVLX-NEXT: kshiftlw $6, %k0, %k1
6405 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6406 ; NoVLX-NEXT: kmovw %k1, %ebx
6407 ; NoVLX-NEXT: kshiftlw $5, %k0, %k1
6408 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6409 ; NoVLX-NEXT: kmovw %k1, %edi
6410 ; NoVLX-NEXT: kshiftlw $4, %k0, %k1
6411 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6412 ; NoVLX-NEXT: kmovw %k1, %eax
6413 ; NoVLX-NEXT: kshiftlw $3, %k0, %k1
6414 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6415 ; NoVLX-NEXT: kmovw %k1, %edx
6416 ; NoVLX-NEXT: kshiftlw $2, %k0, %k1
6417 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6418 ; NoVLX-NEXT: vmovd %r10d, %xmm0
6419 ; NoVLX-NEXT: kmovw %k1, %r10d
6420 ; NoVLX-NEXT: kshiftlw $1, %k0, %k1
6421 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6422 ; NoVLX-NEXT: vpinsrb $1, %r8d, %xmm0, %xmm0
6423 ; NoVLX-NEXT: kmovw %k1, %ecx
6424 ; NoVLX-NEXT: vpinsrb $2, %r9d, %xmm0, %xmm0
6425 ; NoVLX-NEXT: vpinsrb $3, %r11d, %xmm0, %xmm0
6426 ; NoVLX-NEXT: vpinsrb $4, %r14d, %xmm0, %xmm0
6427 ; NoVLX-NEXT: vpinsrb $5, %r15d, %xmm0, %xmm0
6428 ; NoVLX-NEXT: vpinsrb $6, %r12d, %xmm0, %xmm0
6429 ; NoVLX-NEXT: vpinsrb $7, %r13d, %xmm0, %xmm0
6430 ; NoVLX-NEXT: vpinsrb $8, %esi, %xmm0, %xmm0
6431 ; NoVLX-NEXT: vpinsrb $9, %ebx, %xmm0, %xmm0
6432 ; NoVLX-NEXT: vpinsrb $10, %edi, %xmm0, %xmm0
6433 ; NoVLX-NEXT: vpinsrb $11, %eax, %xmm0, %xmm0
6434 ; NoVLX-NEXT: vpinsrb $12, %edx, %xmm0, %xmm0
6435 ; NoVLX-NEXT: kshiftrw $15, %k0, %k0
6436 ; NoVLX-NEXT: vpinsrb $13, %r10d, %xmm0, %xmm0
6437 ; NoVLX-NEXT: vpinsrb $14, %ecx, %xmm0, %xmm0
6438 ; NoVLX-NEXT: kmovw %k0, %eax
6439 ; NoVLX-NEXT: vpinsrb $15, %eax, %xmm0, %xmm0
5298 ; NoVLX-NEXT: vpcmpeqd %zmm1, %zmm0, %k1
5299 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
5300 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
5301 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
5302 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
5303 ; NoVLX-NEXT: vpbroadcastd {{.*}}(%rip), %zmm0 {%k1} {z}
5304 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
64405305 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
64415306 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
64425307 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
64455310 ; NoVLX-NEXT: shlq $32, %rcx
64465311 ; NoVLX-NEXT: movl (%rsp), %eax
64475312 ; NoVLX-NEXT: orq %rcx, %rax
6448 ; NoVLX-NEXT: leaq -40(%rbp), %rsp
6449 ; NoVLX-NEXT: popq %rbx
6450 ; NoVLX-NEXT: popq %r12
6451 ; NoVLX-NEXT: popq %r13
6452 ; NoVLX-NEXT: popq %r14
6453 ; NoVLX-NEXT: popq %r15
5313 ; NoVLX-NEXT: movq %rbp, %rsp
64545314 ; NoVLX-NEXT: popq %rbp
64555315 ; NoVLX-NEXT: vzeroupper
64565316 ; NoVLX-NEXT: retq
64785338 ; NoVLX-NEXT: .cfi_offset %rbp, -16
64795339 ; NoVLX-NEXT: movq %rsp, %rbp
64805340 ; NoVLX-NEXT: .cfi_def_cfa_register %rbp
6481 ; NoVLX-NEXT: pushq %r15
6482 ; NoVLX-NEXT: pushq %r14
6483 ; NoVLX-NEXT: pushq %r13
6484 ; NoVLX-NEXT: pushq %r12
6485 ; NoVLX-NEXT: pushq %rbx
64865341 ; NoVLX-NEXT: andq $-32, %rsp
64875342 ; NoVLX-NEXT: subq $64, %rsp
6488 ; NoVLX-NEXT: .cfi_offset %rbx, -56
6489 ; NoVLX-NEXT: .cfi_offset %r12, -48
6490 ; NoVLX-NEXT: .cfi_offset %r13, -40
6491 ; NoVLX-NEXT: .cfi_offset %r14, -32
6492 ; NoVLX-NEXT: .cfi_offset %r15, -24
6493 ; NoVLX-NEXT: vpcmpeqd (%rdi), %zmm0, %k0
6494 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
6495 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
6496 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
6497 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
6498 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
6499 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6500 ; NoVLX-NEXT: kmovw %k1, %r8d
6501 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
6502 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6503 ; NoVLX-NEXT: kmovw %k1, %r10d
6504 ; NoVLX-NEXT: kshiftlw $13, %k0, %k1
6505 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6506 ; NoVLX-NEXT: kmovw %k1, %r9d
6507 ; NoVLX-NEXT: kshiftlw $12, %k0, %k1
6508 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6509 ; NoVLX-NEXT: kmovw %k1, %r11d
6510 ; NoVLX-NEXT: kshiftlw $11, %k0, %k1
6511 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6512 ; NoVLX-NEXT: kmovw %k1, %r14d
6513 ; NoVLX-NEXT: kshiftlw $10, %k0, %k1
6514 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6515 ; NoVLX-NEXT: kmovw %k1, %r15d
6516 ; NoVLX-NEXT: kshiftlw $9, %k0, %k1
6517 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6518 ; NoVLX-NEXT: kmovw %k1, %r12d
6519 ; NoVLX-NEXT: kshiftlw $8, %k0, %k1
6520 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6521 ; NoVLX-NEXT: kmovw %k1, %r13d
6522 ; NoVLX-NEXT: kshiftlw $7, %k0, %k1
6523 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6524 ; NoVLX-NEXT: kmovw %k1, %esi
6525 ; NoVLX-NEXT: kshiftlw $6, %k0, %k1
6526 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6527 ; NoVLX-NEXT: kmovw %k1, %ebx
6528 ; NoVLX-NEXT: kshiftlw $5, %k0, %k1
6529 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6530 ; NoVLX-NEXT: kmovw %k1, %edi
6531 ; NoVLX-NEXT: kshiftlw $4, %k0, %k1
6532 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6533 ; NoVLX-NEXT: kmovw %k1, %eax
6534 ; NoVLX-NEXT: kshiftlw $3, %k0, %k1
6535 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6536 ; NoVLX-NEXT: kmovw %k1, %edx
6537 ; NoVLX-NEXT: kshiftlw $2, %k0, %k1
6538 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6539 ; NoVLX-NEXT: vmovd %r10d, %xmm0
6540 ; NoVLX-NEXT: kmovw %k1, %r10d
6541 ; NoVLX-NEXT: kshiftlw $1, %k0, %k1
6542 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6543 ; NoVLX-NEXT: vpinsrb $1, %r8d, %xmm0, %xmm0
6544 ; NoVLX-NEXT: kmovw %k1, %ecx
6545 ; NoVLX-NEXT: vpinsrb $2, %r9d, %xmm0, %xmm0
6546 ; NoVLX-NEXT: vpinsrb $3, %r11d, %xmm0, %xmm0
6547 ; NoVLX-NEXT: vpinsrb $4, %r14d, %xmm0, %xmm0
6548 ; NoVLX-NEXT: vpinsrb $5, %r15d, %xmm0, %xmm0
6549 ; NoVLX-NEXT: vpinsrb $6, %r12d, %xmm0, %xmm0
6550 ; NoVLX-NEXT: vpinsrb $7, %r13d, %xmm0, %xmm0
6551 ; NoVLX-NEXT: vpinsrb $8, %esi, %xmm0, %xmm0
6552 ; NoVLX-NEXT: vpinsrb $9, %ebx, %xmm0, %xmm0
6553 ; NoVLX-NEXT: vpinsrb $10, %edi, %xmm0, %xmm0
6554 ; NoVLX-NEXT: vpinsrb $11, %eax, %xmm0, %xmm0
6555 ; NoVLX-NEXT: vpinsrb $12, %edx, %xmm0, %xmm0
6556 ; NoVLX-NEXT: kshiftrw $15, %k0, %k0
6557 ; NoVLX-NEXT: vpinsrb $13, %r10d, %xmm0, %xmm0
6558 ; NoVLX-NEXT: vpinsrb $14, %ecx, %xmm0, %xmm0
6559 ; NoVLX-NEXT: kmovw %k0, %eax
6560 ; NoVLX-NEXT: vpinsrb $15, %eax, %xmm0, %xmm0
5343 ; NoVLX-NEXT: vpcmpeqd (%rdi), %zmm0, %k1
5344 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
5345 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
5346 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
5347 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
5348 ; NoVLX-NEXT: vpbroadcastd {{.*}}(%rip), %zmm0 {%k1} {z}
5349 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
65615350 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
65625351 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
65635352 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
65665355 ; NoVLX-NEXT: shlq $32, %rcx
65675356 ; NoVLX-NEXT: movl (%rsp), %eax
65685357 ; NoVLX-NEXT: orq %rcx, %rax
6569 ; NoVLX-NEXT: leaq -40(%rbp), %rsp
6570 ; NoVLX-NEXT: popq %rbx
6571 ; NoVLX-NEXT: popq %r12
6572 ; NoVLX-NEXT: popq %r13
6573 ; NoVLX-NEXT: popq %r14
6574 ; NoVLX-NEXT: popq %r15
5358 ; NoVLX-NEXT: movq %rbp, %rsp
65755359 ; NoVLX-NEXT: popq %rbp
65765360 ; NoVLX-NEXT: vzeroupper
65775361 ; NoVLX-NEXT: retq
66015385 ; NoVLX-NEXT: .cfi_offset %rbp, -16
66025386 ; NoVLX-NEXT: movq %rsp, %rbp
66035387 ; NoVLX-NEXT: .cfi_def_cfa_register %rbp
6604 ; NoVLX-NEXT: pushq %r15
6605 ; NoVLX-NEXT: pushq %r14
6606 ; NoVLX-NEXT: pushq %r13
6607 ; NoVLX-NEXT: pushq %r12
6608 ; NoVLX-NEXT: pushq %rbx
66095388 ; NoVLX-NEXT: andq $-32, %rsp
66105389 ; NoVLX-NEXT: subq $64, %rsp
6611 ; NoVLX-NEXT: .cfi_offset %rbx, -56
6612 ; NoVLX-NEXT: .cfi_offset %r12, -48
6613 ; NoVLX-NEXT: .cfi_offset %r13, -40
6614 ; NoVLX-NEXT: .cfi_offset %r14, -32
6615 ; NoVLX-NEXT: .cfi_offset %r15, -24
66165390 ; NoVLX-NEXT: kmovw %edi, %k1
6617 ; NoVLX-NEXT: vpcmpeqd %zmm1, %zmm0, %k0 {%k1}
6618 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
6619 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
6620 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
6621 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
6622 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
6623 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6624 ; NoVLX-NEXT: kmovw %k1, %r8d
6625 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
6626 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6627 ; NoVLX-NEXT: kmovw %k1, %r10d
6628 ; NoVLX-NEXT: kshiftlw $13, %k0, %k1
6629 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6630 ; NoVLX-NEXT: kmovw %k1, %r9d
6631 ; NoVLX-NEXT: kshiftlw $12, %k0, %k1
6632 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6633 ; NoVLX-NEXT: kmovw %k1, %r11d
6634 ; NoVLX-NEXT: kshiftlw $11, %k0, %k1
6635 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6636 ; NoVLX-NEXT: kmovw %k1, %r14d
6637 ; NoVLX-NEXT: kshiftlw $10, %k0, %k1
6638 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6639 ; NoVLX-NEXT: kmovw %k1, %r15d
6640 ; NoVLX-NEXT: kshiftlw $9, %k0, %k1
6641 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6642 ; NoVLX-NEXT: kmovw %k1, %r12d
6643 ; NoVLX-NEXT: kshiftlw $8, %k0, %k1
6644 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6645 ; NoVLX-NEXT: kmovw %k1, %r13d
6646 ; NoVLX-NEXT: kshiftlw $7, %k0, %k1
6647 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6648 ; NoVLX-NEXT: kmovw %k1, %esi
6649 ; NoVLX-NEXT: kshiftlw $6, %k0, %k1
6650 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6651 ; NoVLX-NEXT: kmovw %k1, %ebx
6652 ; NoVLX-NEXT: kshiftlw $5, %k0, %k1
6653 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6654 ; NoVLX-NEXT: kmovw %k1, %edi
6655 ; NoVLX-NEXT: kshiftlw $4, %k0, %k1
6656 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6657 ; NoVLX-NEXT: kmovw %k1, %eax
6658 ; NoVLX-NEXT: kshiftlw $3, %k0, %k1
6659 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6660 ; NoVLX-NEXT: kmovw %k1, %edx
6661 ; NoVLX-NEXT: kshiftlw $2, %k0, %k1
6662 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6663 ; NoVLX-NEXT: vmovd %r10d, %xmm0
6664 ; NoVLX-NEXT: kmovw %k1, %r10d
6665 ; NoVLX-NEXT: kshiftlw $1, %k0, %k1
6666 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6667 ; NoVLX-NEXT: vpinsrb $1, %r8d, %xmm0, %xmm0
6668 ; NoVLX-NEXT: kmovw %k1, %ecx
6669 ; NoVLX-NEXT: vpinsrb $2, %r9d, %xmm0, %xmm0
6670 ; NoVLX-NEXT: vpinsrb $3, %r11d, %xmm0, %xmm0
6671 ; NoVLX-NEXT: vpinsrb $4, %r14d, %xmm0, %xmm0
6672 ; NoVLX-NEXT: vpinsrb $5, %r15d, %xmm0, %xmm0
6673 ; NoVLX-NEXT: vpinsrb $6, %r12d, %xmm0, %xmm0
6674 ; NoVLX-NEXT: vpinsrb $7, %r13d, %xmm0, %xmm0
6675 ; NoVLX-NEXT: vpinsrb $8, %esi, %xmm0, %xmm0
6676 ; NoVLX-NEXT: vpinsrb $9, %ebx, %xmm0, %xmm0
6677 ; NoVLX-NEXT: vpinsrb $10, %edi, %xmm0, %xmm0
6678 ; NoVLX-NEXT: vpinsrb $11, %eax, %xmm0, %xmm0
6679 ; NoVLX-NEXT: vpinsrb $12, %edx, %xmm0, %xmm0
6680 ; NoVLX-NEXT: kshiftrw $15, %k0, %k0
6681 ; NoVLX-NEXT: vpinsrb $13, %r10d, %xmm0, %xmm0
6682 ; NoVLX-NEXT: vpinsrb $14, %ecx, %xmm0, %xmm0
6683 ; NoVLX-NEXT: kmovw %k0, %eax
6684 ; NoVLX-NEXT: vpinsrb $15, %eax, %xmm0, %xmm0
5391 ; NoVLX-NEXT: vpcmpeqd %zmm1, %zmm0, %k1 {%k1}
5392 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
5393 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
5394 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
5395 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
5396 ; NoVLX-NEXT: vpbroadcastd {{.*}}(%rip), %zmm0 {%k1} {z}
5397 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
66855398 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
66865399 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
66875400 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
66905403 ; NoVLX-NEXT: shlq $32, %rcx
66915404 ; NoVLX-NEXT: movl (%rsp), %eax
66925405 ; NoVLX-NEXT: orq %rcx, %rax
6693 ; NoVLX-NEXT: leaq -40(%rbp), %rsp
6694 ; NoVLX-NEXT: popq %rbx
6695 ; NoVLX-NEXT: popq %r12
6696 ; NoVLX-NEXT: popq %r13
6697 ; NoVLX-NEXT: popq %r14
6698 ; NoVLX-NEXT: popq %r15
5406 ; NoVLX-NEXT: movq %rbp, %rsp
66995407 ; NoVLX-NEXT: popq %rbp
67005408 ; NoVLX-NEXT: vzeroupper
67015409 ; NoVLX-NEXT: retq
67265434 ; NoVLX-NEXT: .cfi_offset %rbp, -16
67275435 ; NoVLX-NEXT: movq %rsp, %rbp
67285436 ; NoVLX-NEXT: .cfi_def_cfa_register %rbp
6729 ; NoVLX-NEXT: pushq %r15
6730 ; NoVLX-NEXT: pushq %r14
6731 ; NoVLX-NEXT: pushq %r13
6732 ; NoVLX-NEXT: pushq %r12
6733 ; NoVLX-NEXT: pushq %rbx
67345437 ; NoVLX-NEXT: andq $-32, %rsp
67355438 ; NoVLX-NEXT: subq $64, %rsp
6736 ; NoVLX-NEXT: .cfi_offset %rbx, -56
6737 ; NoVLX-NEXT: .cfi_offset %r12, -48
6738 ; NoVLX-NEXT: .cfi_offset %r13, -40
6739 ; NoVLX-NEXT: .cfi_offset %r14, -32
6740 ; NoVLX-NEXT: .cfi_offset %r15, -24
67415439 ; NoVLX-NEXT: kmovw %edi, %k1
6742 ; NoVLX-NEXT: vpcmpeqd (%rsi), %zmm0, %k0 {%k1}
6743 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
6744 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
6745 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
6746 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
6747 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
6748 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6749 ; NoVLX-NEXT: kmovw %k1, %r8d
6750 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
6751 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6752 ; NoVLX-NEXT: kmovw %k1, %r10d
6753 ; NoVLX-NEXT: kshiftlw $13, %k0, %k1
6754 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6755 ; NoVLX-NEXT: kmovw %k1, %r9d
6756 ; NoVLX-NEXT: kshiftlw $12, %k0, %k1
6757 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6758 ; NoVLX-NEXT: kmovw %k1, %r11d
6759 ; NoVLX-NEXT: kshiftlw $11, %k0, %k1
6760 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6761 ; NoVLX-NEXT: kmovw %k1, %r14d
6762 ; NoVLX-NEXT: kshiftlw $10, %k0, %k1
6763 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6764 ; NoVLX-NEXT: kmovw %k1, %r15d
6765 ; NoVLX-NEXT: kshiftlw $9, %k0, %k1
6766 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6767 ; NoVLX-NEXT: kmovw %k1, %r12d
6768 ; NoVLX-NEXT: kshiftlw $8, %k0, %k1
6769 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6770 ; NoVLX-NEXT: kmovw %k1, %r13d
6771 ; NoVLX-NEXT: kshiftlw $7, %k0, %k1
6772 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6773 ; NoVLX-NEXT: kmovw %k1, %esi
6774 ; NoVLX-NEXT: kshiftlw $6, %k0, %k1
6775 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6776 ; NoVLX-NEXT: kmovw %k1, %ebx
6777 ; NoVLX-NEXT: kshiftlw $5, %k0, %k1
6778 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6779 ; NoVLX-NEXT: kmovw %k1, %edi
6780 ; NoVLX-NEXT: kshiftlw $4, %k0, %k1
6781 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6782 ; NoVLX-NEXT: kmovw %k1, %eax
6783 ; NoVLX-NEXT: kshiftlw $3, %k0, %k1
6784 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6785 ; NoVLX-NEXT: kmovw %k1, %edx
6786 ; NoVLX-NEXT: kshiftlw $2, %k0, %k1
6787 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6788 ; NoVLX-NEXT: vmovd %r10d, %xmm0
6789 ; NoVLX-NEXT: kmovw %k1, %r10d
6790 ; NoVLX-NEXT: kshiftlw $1, %k0, %k1
6791 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6792 ; NoVLX-NEXT: vpinsrb $1, %r8d, %xmm0, %xmm0
6793 ; NoVLX-NEXT: kmovw %k1, %ecx
6794 ; NoVLX-NEXT: vpinsrb $2, %r9d, %xmm0, %xmm0
6795 ; NoVLX-NEXT: vpinsrb $3, %r11d, %xmm0, %xmm0
6796 ; NoVLX-NEXT: vpinsrb $4, %r14d, %xmm0, %xmm0
6797 ; NoVLX-NEXT: vpinsrb $5, %r15d, %xmm0, %xmm0
6798 ; NoVLX-NEXT: vpinsrb $6, %r12d, %xmm0, %xmm0
6799 ; NoVLX-NEXT: vpinsrb $7, %r13d, %xmm0, %xmm0
6800 ; NoVLX-NEXT: vpinsrb $8, %esi, %xmm0, %xmm0
6801 ; NoVLX-NEXT: vpinsrb $9, %ebx, %xmm0, %xmm0
6802 ; NoVLX-NEXT: vpinsrb $10, %edi, %xmm0, %xmm0
6803 ; NoVLX-NEXT: vpinsrb $11, %eax, %xmm0, %xmm0
6804 ; NoVLX-NEXT: vpinsrb $12, %edx, %xmm0, %xmm0
6805 ; NoVLX-NEXT: kshiftrw $15, %k0, %k0
6806 ; NoVLX-NEXT: vpinsrb $13, %r10d, %xmm0, %xmm0
6807 ; NoVLX-NEXT: vpinsrb $14, %ecx, %xmm0, %xmm0
6808 ; NoVLX-NEXT: kmovw %k0, %eax
6809 ; NoVLX-NEXT: vpinsrb $15, %eax, %xmm0, %xmm0
5440 ; NoVLX-NEXT: vpcmpeqd (%rsi), %zmm0, %k1 {%k1}
5441 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
5442 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
5443 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
5444 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
5445 ; NoVLX-NEXT: vpbroadcastd {{.*}}(%rip), %zmm0 {%k1} {z}
5446 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
68105447 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
68115448 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
68125449 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
68155452 ; NoVLX-NEXT: shlq $32, %rcx
68165453 ; NoVLX-NEXT: movl (%rsp), %eax
68175454 ; NoVLX-NEXT: orq %rcx, %rax
6818 ; NoVLX-NEXT: leaq -40(%rbp), %rsp
6819 ; NoVLX-NEXT: popq %rbx
6820 ; NoVLX-NEXT: popq %r12
6821 ; NoVLX-NEXT: popq %r13
6822 ; NoVLX-NEXT: popq %r14
6823 ; NoVLX-NEXT: popq %r15
5455 ; NoVLX-NEXT: movq %rbp, %rsp
68245456 ; NoVLX-NEXT: popq %rbp
68255457 ; NoVLX-NEXT: vzeroupper
68265458 ; NoVLX-NEXT: retq
68525484 ; NoVLX-NEXT: .cfi_offset %rbp, -16
68535485 ; NoVLX-NEXT: movq %rsp, %rbp
68545486 ; NoVLX-NEXT: .cfi_def_cfa_register %rbp
6855 ; NoVLX-NEXT: pushq %r15
6856 ; NoVLX-NEXT: pushq %r14
6857 ; NoVLX-NEXT: pushq %r13
6858 ; NoVLX-NEXT: pushq %r12
6859 ; NoVLX-NEXT: pushq %rbx
68605487 ; NoVLX-NEXT: andq $-32, %rsp
68615488 ; NoVLX-NEXT: subq $64, %rsp
6862 ; NoVLX-NEXT: .cfi_offset %rbx, -56
6863 ; NoVLX-NEXT: .cfi_offset %r12, -48
6864 ; NoVLX-NEXT: .cfi_offset %r13, -40
6865 ; NoVLX-NEXT: .cfi_offset %r14, -32
6866 ; NoVLX-NEXT: .cfi_offset %r15, -24
6867 ; NoVLX-NEXT: vpcmpeqd (%rdi){1to16}, %zmm0, %k0
6868 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
6869 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
6870 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
6871 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
6872 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
6873 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6874 ; NoVLX-NEXT: kmovw %k1, %r8d
6875 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
6876 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6877 ; NoVLX-NEXT: kmovw %k1, %r10d
6878 ; NoVLX-NEXT: kshiftlw $13, %k0, %k1
6879 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6880 ; NoVLX-NEXT: kmovw %k1, %r9d
6881 ; NoVLX-NEXT: kshiftlw $12, %k0, %k1
6882 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6883 ; NoVLX-NEXT: kmovw %k1, %r11d
6884 ; NoVLX-NEXT: kshiftlw $11, %k0, %k1
6885 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6886 ; NoVLX-NEXT: kmovw %k1, %r14d
6887 ; NoVLX-NEXT: kshiftlw $10, %k0, %k1
6888 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6889 ; NoVLX-NEXT: kmovw %k1, %r15d
6890 ; NoVLX-NEXT: kshiftlw $9, %k0, %k1
6891 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6892 ; NoVLX-NEXT: kmovw %k1, %r12d
6893 ; NoVLX-NEXT: kshiftlw $8, %k0, %k1
6894 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6895 ; NoVLX-NEXT: kmovw %k1, %r13d
6896 ; NoVLX-NEXT: kshiftlw $7, %k0, %k1
6897 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6898 ; NoVLX-NEXT: kmovw %k1, %esi
6899 ; NoVLX-NEXT: kshiftlw $6, %k0, %k1
6900 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6901 ; NoVLX-NEXT: kmovw %k1, %ebx
6902 ; NoVLX-NEXT: kshiftlw $5, %k0, %k1
6903 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6904 ; NoVLX-NEXT: kmovw %k1, %edi
6905 ; NoVLX-NEXT: kshiftlw $4, %k0, %k1
6906 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6907 ; NoVLX-NEXT: kmovw %k1, %eax
6908 ; NoVLX-NEXT: kshiftlw $3, %k0, %k1
6909 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6910 ; NoVLX-NEXT: kmovw %k1, %edx
6911 ; NoVLX-NEXT: kshiftlw $2, %k0, %k1
6912 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6913 ; NoVLX-NEXT: vmovd %r10d, %xmm0
6914 ; NoVLX-NEXT: kmovw %k1, %r10d
6915 ; NoVLX-NEXT: kshiftlw $1, %k0, %k1
6916 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6917 ; NoVLX-NEXT: vpinsrb $1, %r8d, %xmm0, %xmm0
6918 ; NoVLX-NEXT: kmovw %k1, %ecx
6919 ; NoVLX-NEXT: vpinsrb $2, %r9d, %xmm0, %xmm0
6920 ; NoVLX-NEXT: vpinsrb $3, %r11d, %xmm0, %xmm0
6921 ; NoVLX-NEXT: vpinsrb $4, %r14d, %xmm0, %xmm0
6922 ; NoVLX-NEXT: vpinsrb $5, %r15d, %xmm0, %xmm0
6923 ; NoVLX-NEXT: vpinsrb $6, %r12d, %xmm0, %xmm0
6924 ; NoVLX-NEXT: vpinsrb $7, %r13d, %xmm0, %xmm0
6925 ; NoVLX-NEXT: vpinsrb $8, %esi, %xmm0, %xmm0
6926 ; NoVLX-NEXT: vpinsrb $9, %ebx, %xmm0, %xmm0
6927 ; NoVLX-NEXT: vpinsrb $10, %edi, %xmm0, %xmm0
6928 ; NoVLX-NEXT: vpinsrb $11, %eax, %xmm0, %xmm0
6929 ; NoVLX-NEXT: vpinsrb $12, %edx, %xmm0, %xmm0
6930 ; NoVLX-NEXT: kshiftrw $15, %k0, %k0
6931 ; NoVLX-NEXT: vpinsrb $13, %r10d, %xmm0, %xmm0
6932 ; NoVLX-NEXT: vpinsrb $14, %ecx, %xmm0, %xmm0
6933 ; NoVLX-NEXT: kmovw %k0, %eax
6934 ; NoVLX-NEXT: vpinsrb $15, %eax, %xmm0, %xmm0
5489 ; NoVLX-NEXT: vpcmpeqd (%rdi){1to16}, %zmm0, %k1
5490 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
5491 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
5492 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
5493 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
5494 ; NoVLX-NEXT: vpbroadcastd {{.*}}(%rip), %zmm0 {%k1} {z}
5495 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
69355496 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
69365497 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
69375498 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
69405501 ; NoVLX-NEXT: shlq $32, %rcx
69415502 ; NoVLX-NEXT: movl (%rsp), %eax
69425503 ; NoVLX-NEXT: orq %rcx, %rax
6943 ; NoVLX-NEXT: leaq -40(%rbp), %rsp
6944 ; NoVLX-NEXT: popq %rbx
6945 ; NoVLX-NEXT: popq %r12
6946 ; NoVLX-NEXT: popq %r13
6947 ; NoVLX-NEXT: popq %r14
6948 ; NoVLX-NEXT: popq %r15
5504 ; NoVLX-NEXT: movq %rbp, %rsp
69495505 ; NoVLX-NEXT: popq %rbp
69505506 ; NoVLX-NEXT: vzeroupper
69515507 ; NoVLX-NEXT: retq
69765532 ; NoVLX-NEXT: .cfi_offset %rbp, -16
69775533 ; NoVLX-NEXT: movq %rsp, %rbp
69785534 ; NoVLX-NEXT: .cfi_def_cfa_register %rbp
6979 ; NoVLX-NEXT: pushq %r15
6980 ; NoVLX-NEXT: pushq %r14
6981 ; NoVLX-NEXT: pushq %r13
6982 ; NoVLX-NEXT: pushq %r12
6983 ; NoVLX-NEXT: pushq %rbx
69845535 ; NoVLX-NEXT: andq $-32, %rsp
69855536 ; NoVLX-NEXT: subq $64, %rsp
6986 ; NoVLX-NEXT: .cfi_offset %rbx, -56
6987 ; NoVLX-NEXT: .cfi_offset %r12, -48
6988 ; NoVLX-NEXT: .cfi_offset %r13, -40
6989 ; NoVLX-NEXT: .cfi_offset %r14, -32
6990 ; NoVLX-NEXT: .cfi_offset %r15, -24
69915537 ; NoVLX-NEXT: kmovw %edi, %k1
6992 ; NoVLX-NEXT: vpcmpeqd (%rsi){1to16}, %zmm0, %k0 {%k1}
6993 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
6994 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
6995 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
6996 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
6997 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
6998 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
6999 ; NoVLX-NEXT: kmovw %k1, %r8d
7000 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
7001 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
7002 ; NoVLX-NEXT: kmovw %k1, %r10d
7003 ; NoVLX-NEXT: kshiftlw $13, %k0, %k1
7004 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
7005 ; NoVLX-NEXT: kmovw %k1, %r9d
7006 ; NoVLX-NEXT: kshiftlw $12, %k0, %k1
7007 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
7008 ; NoVLX-NEXT: kmovw %k1, %r11d
7009 ; NoVLX-NEXT: kshiftlw $11, %k0, %k1
7010 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
7011 ; NoVLX-NEXT: kmovw %k1, %r14d
7012 ; NoVLX-NEXT: kshiftlw $10, %k0, %k1
7013 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
7014 ; NoVLX-NEXT: kmovw %k1, %r15d
7015 ; NoVLX-NEXT: kshiftlw $9, %k0, %k1
7016 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
7017 ; NoVLX-NEXT: kmovw %k1, %r12d
7018 ; NoVLX-NEXT: kshiftlw $8, %k0, %k1
7019 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
7020 ; NoVLX-NEXT: kmovw %k1, %r13d
7021 ; NoVLX-NEXT: kshiftlw $7, %k0, %k1
7022 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
7023 ; NoVLX-NEXT: kmovw %k1, %esi
7024 ; NoVLX-NEXT: kshiftlw $6, %k0, %k1
7025 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
7026 ; NoVLX-NEXT: kmovw %k1, %ebx
7027 ; NoVLX-NEXT: kshiftlw $5, %k0, %k1
7028 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
7029 ; NoVLX-NEXT: kmovw %k1, %edi
7030 ; NoVLX-NEXT: kshiftlw $4, %k0, %k1
7031 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
7032 ; NoVLX-NEXT: kmovw %k1, %eax
7033 ; NoVLX-NEXT: kshiftlw $3, %k0, %k1
7034 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
7035 ; NoVLX-NEXT: kmovw %k1, %edx
7036 ; NoVLX-NEXT: kshiftlw $2, %k0, %k1
7037 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
7038 ; NoVLX-NEXT: vmovd %r10d, %xmm0
7039 ; NoVLX-NEXT: kmovw %k1, %r10d
7040 ; NoVLX-NEXT: kshiftlw $1, %k0, %k1
7041 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
7042 ; NoVLX-NEXT: vpinsrb $1, %r8d, %xmm0, %xmm0
7043 ; NoVLX-NEXT: kmovw %k1, %ecx
7044 ; NoVLX-NEXT: vpinsrb $2, %r9d, %xmm0, %xmm0
7045 ; NoVLX-NEXT: vpinsrb $3, %r11d, %xmm0, %xmm0
7046 ; NoVLX-NEXT: vpinsrb $4, %r14d, %xmm0, %xmm0
7047 ; NoVLX-NEXT: vpinsrb $5, %r15d, %xmm0, %xmm0
7048 ; NoVLX-NEXT: vpinsrb $6, %r12d, %xmm0, %xmm0
7049 ; NoVLX-NEXT: vpinsrb $7, %r13d, %xmm0, %xmm0
7050 ; NoVLX-NEXT: vpinsrb $8, %esi, %xmm0, %xmm0
7051 ; NoVLX-NEXT: vpinsrb $9, %ebx, %xmm0, %xmm0
7052 ; NoVLX-NEXT: vpinsrb $10, %edi, %xmm0, %xmm0
7053 ; NoVLX-NEXT: vpinsrb $11, %eax, %xmm0, %xmm0
7054 ; NoVLX-NEXT: vpinsrb $12, %edx, %xmm0, %xmm0
7055 ; NoVLX-NEXT: kshiftrw $15, %k0, %k0
7056 ; NoVLX-NEXT: vpinsrb $13, %r10d, %xmm0, %xmm0
7057 ; NoVLX-NEXT: vpinsrb $14, %ecx, %xmm0, %xmm0
7058 ; NoVLX-NEXT: kmovw %k0, %eax
7059 ; NoVLX-NEXT: vpinsrb $15, %eax, %xmm0, %xmm0
5538 ; NoVLX-NEXT: vpcmpeqd (%rsi){1to16}, %zmm0, %k1 {%k1}
5539 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
5540 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
5541 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
5542 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
5543 ; NoVLX-NEXT: vpbroadcastd {{.*}}(%rip), %zmm0 {%k1} {z}
5544 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
70605545 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
70615546 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
70625547 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
70655550 ; NoVLX-NEXT: shlq $32, %rcx
70665551 ; NoVLX-NEXT: movl (%rsp), %eax
70675552 ; NoVLX-NEXT: orq %rcx, %rax
7068 ; NoVLX-NEXT: leaq -40(%rbp), %rsp
7069 ; NoVLX-NEXT: popq %rbx
7070 ; NoVLX-NEXT: popq %r12
7071 ; NoVLX-NEXT: popq %r13
7072 ; NoVLX-NEXT: popq %r14
7073 ; NoVLX-NEXT: popq %r15
5553 ; NoVLX-NEXT: movq %rbp, %rsp
70745554 ; NoVLX-NEXT: popq %rbp
70755555 ; NoVLX-NEXT: vzeroupper
70765556 ; NoVLX-NEXT: retq
111749654 ; NoVLX-NEXT: .cfi_offset %rbp, -16
111759655 ; NoVLX-NEXT: movq %rsp, %rbp
111769656 ; NoVLX-NEXT: .cfi_def_cfa_register %rbp
11177 ; NoVLX-NEXT: pushq %r15
11178 ; NoVLX-NEXT: pushq %r14
11179 ; NoVLX-NEXT: pushq %r13
11180 ; NoVLX-NEXT: pushq %r12
11181 ; NoVLX-NEXT: pushq %rbx
111829657 ; NoVLX-NEXT: andq $-32, %rsp
111839658 ; NoVLX-NEXT: subq $32, %rsp
11184 ; NoVLX-NEXT: .cfi_offset %rbx, -56
11185 ; NoVLX-NEXT: .cfi_offset %r12, -48
11186 ; NoVLX-NEXT: .cfi_offset %r13, -40
11187 ; NoVLX-NEXT: .cfi_offset %r14, -32
11188 ; NoVLX-NEXT: .cfi_offset %r15, -24
111899659 ; NoVLX-NEXT: vpcmpgtb %xmm1, %xmm0, %xmm0
111909660 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
111919661 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
111929662 ; NoVLX-NEXT: kmovw %edi, %k1
11193 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0 {%k1}
11194 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
11195 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
11196 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
11197 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11198 ; NoVLX-NEXT: kmovw %k1, %r8d
11199 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
11200 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11201 ; NoVLX-NEXT: kmovw %k1, %r10d
11202 ; NoVLX-NEXT: kshiftlw $13, %k0, %k1
11203 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11204 ; NoVLX-NEXT: kmovw %k1, %r9d
11205 ; NoVLX-NEXT: kshiftlw $12, %k0, %k1
11206 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11207 ; NoVLX-NEXT: kmovw %k1, %r11d
11208 ; NoVLX-NEXT: kshiftlw $11, %k0, %k1
11209 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11210 ; NoVLX-NEXT: kmovw %k1, %r14d
11211 ; NoVLX-NEXT: kshiftlw $10, %k0, %k1
11212 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11213 ; NoVLX-NEXT: kmovw %k1, %r15d
11214 ; NoVLX-NEXT: kshiftlw $9, %k0, %k1
11215 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11216 ; NoVLX-NEXT: kmovw %k1, %r12d
11217 ; NoVLX-NEXT: kshiftlw $8, %k0, %k1
11218 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11219 ; NoVLX-NEXT: kmovw %k1, %r13d
11220 ; NoVLX-NEXT: kshiftlw $7, %k0, %k1
11221 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11222 ; NoVLX-NEXT: kmovw %k1, %esi
11223 ; NoVLX-NEXT: kshiftlw $6, %k0, %k1
11224 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11225 ; NoVLX-NEXT: kmovw %k1, %ebx
11226 ; NoVLX-NEXT: kshiftlw $5, %k0, %k1
11227 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11228 ; NoVLX-NEXT: kmovw %k1, %edi
11229 ; NoVLX-NEXT: kshiftlw $4, %k0, %k1
11230 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11231 ; NoVLX-NEXT: kmovw %k1, %eax
11232 ; NoVLX-NEXT: kshiftlw $3, %k0, %k1
11233 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11234 ; NoVLX-NEXT: kmovw %k1, %edx
11235 ; NoVLX-NEXT: kshiftlw $2, %k0, %k1
11236 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11237 ; NoVLX-NEXT: vmovd %r10d, %xmm0
11238 ; NoVLX-NEXT: kmovw %k1, %r10d
11239 ; NoVLX-NEXT: kshiftlw $1, %k0, %k1
11240 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11241 ; NoVLX-NEXT: vpinsrb $1, %r8d, %xmm0, %xmm0
11242 ; NoVLX-NEXT: kmovw %k1, %ecx
11243 ; NoVLX-NEXT: vpinsrb $2, %r9d, %xmm0, %xmm0
11244 ; NoVLX-NEXT: vpinsrb $3, %r11d, %xmm0, %xmm0
11245 ; NoVLX-NEXT: vpinsrb $4, %r14d, %xmm0, %xmm0
11246 ; NoVLX-NEXT: vpinsrb $5, %r15d, %xmm0, %xmm0
11247 ; NoVLX-NEXT: vpinsrb $6, %r12d, %xmm0, %xmm0
11248 ; NoVLX-NEXT: vpinsrb $7, %r13d, %xmm0, %xmm0
11249 ; NoVLX-NEXT: vpinsrb $8, %esi, %xmm0, %xmm0
11250 ; NoVLX-NEXT: vpinsrb $9, %ebx, %xmm0, %xmm0
11251 ; NoVLX-NEXT: vpinsrb $10, %edi, %xmm0, %xmm0
11252 ; NoVLX-NEXT: vpinsrb $11, %eax, %xmm0, %xmm0
11253 ; NoVLX-NEXT: vpinsrb $12, %edx, %xmm0, %xmm0
11254 ; NoVLX-NEXT: kshiftrw $15, %k0, %k0
11255 ; NoVLX-NEXT: vpinsrb $13, %r10d, %xmm0, %xmm0
11256 ; NoVLX-NEXT: vpinsrb $14, %ecx, %xmm0, %xmm0
11257 ; NoVLX-NEXT: kmovw %k0, %eax
11258 ; NoVLX-NEXT: vpinsrb $15, %eax, %xmm0, %xmm0
9663 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1 {%k1}
9664 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
9665 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
9666 ; NoVLX-NEXT: vpbroadcastd {{.*}}(%rip), %zmm0 {%k1} {z}
9667 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
112599668 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
112609669 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
112619670 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
112629671 ; NoVLX-NEXT: kmovw %k0, (%rsp)
112639672 ; NoVLX-NEXT: movl (%rsp), %eax
11264 ; NoVLX-NEXT: leaq -40(%rbp), %rsp
11265 ; NoVLX-NEXT: popq %rbx
11266 ; NoVLX-NEXT: popq %r12
11267 ; NoVLX-NEXT: popq %r13
11268 ; NoVLX-NEXT: popq %r14
11269 ; NoVLX-NEXT: popq %r15
9673 ; NoVLX-NEXT: movq %rbp, %rsp
112709674 ; NoVLX-NEXT: popq %rbp
112719675 ; NoVLX-NEXT: vzeroupper
112729676 ; NoVLX-NEXT: retq
112969700 ; NoVLX-NEXT: .cfi_offset %rbp, -16
112979701 ; NoVLX-NEXT: movq %rsp, %rbp
112989702 ; NoVLX-NEXT: .cfi_def_cfa_register %rbp
11299 ; NoVLX-NEXT: pushq %r15
11300 ; NoVLX-NEXT: pushq %r14
11301 ; NoVLX-NEXT: pushq %r13
11302 ; NoVLX-NEXT: pushq %r12
11303 ; NoVLX-NEXT: pushq %rbx
113049703 ; NoVLX-NEXT: andq $-32, %rsp
113059704 ; NoVLX-NEXT: subq $32, %rsp
11306 ; NoVLX-NEXT: .cfi_offset %rbx, -56
11307 ; NoVLX-NEXT: .cfi_offset %r12, -48
11308 ; NoVLX-NEXT: .cfi_offset %r13, -40
11309 ; NoVLX-NEXT: .cfi_offset %r14, -32
11310 ; NoVLX-NEXT: .cfi_offset %r15, -24
113119705 ; NoVLX-NEXT: vpcmpgtb (%rsi), %xmm0, %xmm0
113129706 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
113139707 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
113149708 ; NoVLX-NEXT: kmovw %edi, %k1
11315 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0 {%k1}
11316 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
11317 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
11318 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
11319 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11320 ; NoVLX-NEXT: kmovw %k1, %r8d
11321 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
11322 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11323 ; NoVLX-NEXT: kmovw %k1, %r10d
11324 ; NoVLX-NEXT: kshiftlw $13, %k0, %k1
11325 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11326 ; NoVLX-NEXT: kmovw %k1, %r9d
11327 ; NoVLX-NEXT: kshiftlw $12, %k0, %k1
11328 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11329 ; NoVLX-NEXT: kmovw %k1, %r11d
11330 ; NoVLX-NEXT: kshiftlw $11, %k0, %k1
11331 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11332 ; NoVLX-NEXT: kmovw %k1, %r14d
11333 ; NoVLX-NEXT: kshiftlw $10, %k0, %k1
11334 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11335 ; NoVLX-NEXT: kmovw %k1, %r15d
11336 ; NoVLX-NEXT: kshiftlw $9, %k0, %k1
11337 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11338 ; NoVLX-NEXT: kmovw %k1, %r12d
11339 ; NoVLX-NEXT: kshiftlw $8, %k0, %k1
11340 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11341 ; NoVLX-NEXT: kmovw %k1, %r13d
11342 ; NoVLX-NEXT: kshiftlw $7, %k0, %k1
11343 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11344 ; NoVLX-NEXT: kmovw %k1, %esi
11345 ; NoVLX-NEXT: kshiftlw $6, %k0, %k1
11346 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11347 ; NoVLX-NEXT: kmovw %k1, %ebx
11348 ; NoVLX-NEXT: kshiftlw $5, %k0, %k1
11349 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11350 ; NoVLX-NEXT: kmovw %k1, %edi
11351 ; NoVLX-NEXT: kshiftlw $4, %k0, %k1
11352 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11353 ; NoVLX-NEXT: kmovw %k1, %eax
11354 ; NoVLX-NEXT: kshiftlw $3, %k0, %k1
11355 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11356 ; NoVLX-NEXT: kmovw %k1, %edx
11357 ; NoVLX-NEXT: kshiftlw $2, %k0, %k1
11358 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11359 ; NoVLX-NEXT: vmovd %r10d, %xmm0
11360 ; NoVLX-NEXT: kmovw %k1, %r10d
11361 ; NoVLX-NEXT: kshiftlw $1, %k0, %k1
11362 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11363 ; NoVLX-NEXT: vpinsrb $1, %r8d, %xmm0, %xmm0
11364 ; NoVLX-NEXT: kmovw %k1, %ecx
11365 ; NoVLX-NEXT: vpinsrb $2, %r9d, %xmm0, %xmm0
11366 ; NoVLX-NEXT: vpinsrb $3, %r11d, %xmm0, %xmm0
11367 ; NoVLX-NEXT: vpinsrb $4, %r14d, %xmm0, %xmm0
11368 ; NoVLX-NEXT: vpinsrb $5, %r15d, %xmm0, %xmm0
11369 ; NoVLX-NEXT: vpinsrb $6, %r12d, %xmm0, %xmm0
11370 ; NoVLX-NEXT: vpinsrb $7, %r13d, %xmm0, %xmm0
11371 ; NoVLX-NEXT: vpinsrb $8, %esi, %xmm0, %xmm0
11372 ; NoVLX-NEXT: vpinsrb $9, %ebx, %xmm0, %xmm0
11373 ; NoVLX-NEXT: vpinsrb $10, %edi, %xmm0, %xmm0
11374 ; NoVLX-NEXT: vpinsrb $11, %eax, %xmm0, %xmm0
11375 ; NoVLX-NEXT: vpinsrb $12, %edx, %xmm0, %xmm0
11376 ; NoVLX-NEXT: kshiftrw $15, %k0, %k0
11377 ; NoVLX-NEXT: vpinsrb $13, %r10d, %xmm0, %xmm0
11378 ; NoVLX-NEXT: vpinsrb $14, %ecx, %xmm0, %xmm0
11379 ; NoVLX-NEXT: kmovw %k0, %eax
11380 ; NoVLX-NEXT: vpinsrb $15, %eax, %xmm0, %xmm0
9709 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1 {%k1}
9710 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
9711 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
9712 ; NoVLX-NEXT: vpbroadcastd {{.*}}(%rip), %zmm0 {%k1} {z}
9713 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
113819714 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
113829715 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
113839716 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
113849717 ; NoVLX-NEXT: kmovw %k0, (%rsp)
113859718 ; NoVLX-NEXT: movl (%rsp), %eax
11386 ; NoVLX-NEXT: leaq -40(%rbp), %rsp
11387 ; NoVLX-NEXT: popq %rbx
11388 ; NoVLX-NEXT: popq %r12
11389 ; NoVLX-NEXT: popq %r13
11390 ; NoVLX-NEXT: popq %r14
11391 ; NoVLX-NEXT: popq %r15
9719 ; NoVLX-NEXT: movq %rbp, %rsp
113929720 ; NoVLX-NEXT: popq %rbp
113939721 ; NoVLX-NEXT: vzeroupper
113949722 ; NoVLX-NEXT: retq
115059833 ; NoVLX-NEXT: .cfi_offset %rbp, -16
115069834 ; NoVLX-NEXT: movq %rsp, %rbp
115079835 ; NoVLX-NEXT: .cfi_def_cfa_register %rbp
11508 ; NoVLX-NEXT: pushq %r15
11509 ; NoVLX-NEXT: pushq %r14
11510 ; NoVLX-NEXT: pushq %r13
11511 ; NoVLX-NEXT: pushq %r12
11512 ; NoVLX-NEXT: pushq %rbx
115139836 ; NoVLX-NEXT: andq $-32, %rsp
115149837 ; NoVLX-NEXT: subq $64, %rsp
11515 ; NoVLX-NEXT: .cfi_offset %rbx, -56
11516 ; NoVLX-NEXT: .cfi_offset %r12, -48
11517 ; NoVLX-NEXT: .cfi_offset %r13, -40
11518 ; NoVLX-NEXT: .cfi_offset %r14, -32
11519 ; NoVLX-NEXT: .cfi_offset %r15, -24
115209838 ; NoVLX-NEXT: vpcmpgtb %xmm1, %xmm0, %xmm0
115219839 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
115229840 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
115239841 ; NoVLX-NEXT: kmovw %edi, %k1
11524 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0 {%k1}
11525 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
11526 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
11527 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
11528 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
11529 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
11530 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11531 ; NoVLX-NEXT: kmovw %k1, %r8d
11532 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
11533 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11534 ; NoVLX-NEXT: kmovw %k1, %r10d
11535 ; NoVLX-NEXT: kshiftlw $13, %k0, %k1
11536 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11537 ; NoVLX-NEXT: kmovw %k1, %r9d
11538 ; NoVLX-NEXT: kshiftlw $12, %k0, %k1
11539 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11540 ; NoVLX-NEXT: kmovw %k1, %r11d
11541 ; NoVLX-NEXT: kshiftlw $11, %k0, %k1
11542 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11543 ; NoVLX-NEXT: kmovw %k1, %r14d
11544 ; NoVLX-NEXT: kshiftlw $10, %k0, %k1
11545 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11546 ; NoVLX-NEXT: kmovw %k1, %r15d
11547 ; NoVLX-NEXT: kshiftlw $9, %k0, %k1
11548 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11549 ; NoVLX-NEXT: kmovw %k1, %r12d
11550 ; NoVLX-NEXT: kshiftlw $8, %k0, %k1
11551 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11552 ; NoVLX-NEXT: kmovw %k1, %r13d
11553 ; NoVLX-NEXT: kshiftlw $7, %k0, %k1
11554 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11555 ; NoVLX-NEXT: kmovw %k1, %esi
11556 ; NoVLX-NEXT: kshiftlw $6, %k0, %k1
11557 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11558 ; NoVLX-NEXT: kmovw %k1, %ebx
11559 ; NoVLX-NEXT: kshiftlw $5, %k0, %k1
11560 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11561 ; NoVLX-NEXT: kmovw %k1, %edi
11562 ; NoVLX-NEXT: kshiftlw $4, %k0, %k1
11563 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11564 ; NoVLX-NEXT: kmovw %k1, %eax
11565 ; NoVLX-NEXT: kshiftlw $3, %k0, %k1
11566 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11567 ; NoVLX-NEXT: kmovw %k1, %edx
11568 ; NoVLX-NEXT: kshiftlw $2, %k0, %k1
11569 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11570 ; NoVLX-NEXT: vmovd %r10d, %xmm0
11571 ; NoVLX-NEXT: kmovw %k1, %r10d
11572 ; NoVLX-NEXT: kshiftlw $1, %k0, %k1
11573 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11574 ; NoVLX-NEXT: vpinsrb $1, %r8d, %xmm0, %xmm0
11575 ; NoVLX-NEXT: kmovw %k1, %ecx
11576 ; NoVLX-NEXT: vpinsrb $2, %r9d, %xmm0, %xmm0
11577 ; NoVLX-NEXT: vpinsrb $3, %r11d, %xmm0, %xmm0
11578 ; NoVLX-NEXT: vpinsrb $4, %r14d, %xmm0, %xmm0
11579 ; NoVLX-NEXT: vpinsrb $5, %r15d, %xmm0, %xmm0
11580 ; NoVLX-NEXT: vpinsrb $6, %r12d, %xmm0, %xmm0
11581 ; NoVLX-NEXT: vpinsrb $7, %r13d, %xmm0, %xmm0
11582 ; NoVLX-NEXT: vpinsrb $8, %esi, %xmm0, %xmm0
11583 ; NoVLX-NEXT: vpinsrb $9, %ebx, %xmm0, %xmm0
11584 ; NoVLX-NEXT: vpinsrb $10, %edi, %xmm0, %xmm0
11585 ; NoVLX-NEXT: vpinsrb $11, %eax, %xmm0, %xmm0
11586 ; NoVLX-NEXT: vpinsrb $12, %edx, %xmm0, %xmm0
11587 ; NoVLX-NEXT: kshiftrw $15, %k0, %k0
11588 ; NoVLX-NEXT: vpinsrb $13, %r10d, %xmm0, %xmm0
11589 ; NoVLX-NEXT: vpinsrb $14, %ecx, %xmm0, %xmm0
11590 ; NoVLX-NEXT: kmovw %k0, %eax
11591 ; NoVLX-NEXT: vpinsrb $15, %eax, %xmm0, %xmm0
9842 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1 {%k1}
9843 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
9844 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
9845 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
9846 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
9847 ; NoVLX-NEXT: vpbroadcastd {{.*}}(%rip), %zmm0 {%k1} {z}
9848 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
115929849 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
115939850 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
115949851 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
115979854 ; NoVLX-NEXT: shlq $32, %rcx
115989855 ; NoVLX-NEXT: movl (%rsp), %eax
115999856 ; NoVLX-NEXT: orq %rcx, %rax
11600 ; NoVLX-NEXT: leaq -40(%rbp), %rsp
11601 ; NoVLX-NEXT: popq %rbx
11602 ; NoVLX-NEXT: popq %r12
11603 ; NoVLX-NEXT: popq %r13
11604 ; NoVLX-NEXT: popq %r14
11605 ; NoVLX-NEXT: popq %r15
9857 ; NoVLX-NEXT: movq %rbp, %rsp
116069858 ; NoVLX-NEXT: popq %rbp
116079859 ; NoVLX-NEXT: vzeroupper
116089860 ; NoVLX-NEXT: retq
116329884 ; NoVLX-NEXT: .cfi_offset %rbp, -16
116339885 ; NoVLX-NEXT: movq %rsp, %rbp
116349886 ; NoVLX-NEXT: .cfi_def_cfa_register %rbp
11635 ; NoVLX-NEXT: pushq %r15
11636 ; NoVLX-NEXT: pushq %r14
11637 ; NoVLX-NEXT: pushq %r13
11638 ; NoVLX-NEXT: pushq %r12
11639 ; NoVLX-NEXT: pushq %rbx
116409887 ; NoVLX-NEXT: andq $-32, %rsp
116419888 ; NoVLX-NEXT: subq $64, %rsp
11642 ; NoVLX-NEXT: .cfi_offset %rbx, -56
11643 ; NoVLX-NEXT: .cfi_offset %r12, -48
11644 ; NoVLX-NEXT: .cfi_offset %r13, -40
11645 ; NoVLX-NEXT: .cfi_offset %r14, -32
11646 ; NoVLX-NEXT: .cfi_offset %r15, -24
116479889 ; NoVLX-NEXT: vpcmpgtb (%rsi), %xmm0, %xmm0
116489890 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
116499891 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
116509892 ; NoVLX-NEXT: kmovw %edi, %k1
11651 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0 {%k1}
11652 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
11653 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
11654 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
11655 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
11656 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
11657 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11658 ; NoVLX-NEXT: kmovw %k1, %r8d
11659 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
11660 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11661 ; NoVLX-NEXT: kmovw %k1, %r10d
11662 ; NoVLX-NEXT: kshiftlw $13, %k0, %k1
11663 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11664 ; NoVLX-NEXT: kmovw %k1, %r9d
11665 ; NoVLX-NEXT: kshiftlw $12, %k0, %k1
11666 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11667 ; NoVLX-NEXT: kmovw %k1, %r11d
11668 ; NoVLX-NEXT: kshiftlw $11, %k0, %k1
11669 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11670 ; NoVLX-NEXT: kmovw %k1, %r14d
11671 ; NoVLX-NEXT: kshiftlw $10, %k0, %k1
11672 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11673 ; NoVLX-NEXT: kmovw %k1, %r15d
11674 ; NoVLX-NEXT: kshiftlw $9, %k0, %k1
11675 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11676 ; NoVLX-NEXT: kmovw %k1, %r12d
11677 ; NoVLX-NEXT: kshiftlw $8, %k0, %k1
11678 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11679 ; NoVLX-NEXT: kmovw %k1, %r13d
11680 ; NoVLX-NEXT: kshiftlw $7, %k0, %k1
11681 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11682 ; NoVLX-NEXT: kmovw %k1, %esi
11683 ; NoVLX-NEXT: kshiftlw $6, %k0, %k1
11684 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11685 ; NoVLX-NEXT: kmovw %k1, %ebx
11686 ; NoVLX-NEXT: kshiftlw $5, %k0, %k1
11687 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11688 ; NoVLX-NEXT: kmovw %k1, %edi
11689 ; NoVLX-NEXT: kshiftlw $4, %k0, %k1
11690 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11691 ; NoVLX-NEXT: kmovw %k1, %eax
11692 ; NoVLX-NEXT: kshiftlw $3, %k0, %k1
11693 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11694 ; NoVLX-NEXT: kmovw %k1, %edx
11695 ; NoVLX-NEXT: kshiftlw $2, %k0, %k1
11696 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11697 ; NoVLX-NEXT: vmovd %r10d, %xmm0
11698 ; NoVLX-NEXT: kmovw %k1, %r10d
11699 ; NoVLX-NEXT: kshiftlw $1, %k0, %k1
11700 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
11701 ; NoVLX-NEXT: vpinsrb $1, %r8d, %xmm0, %xmm0
11702 ; NoVLX-NEXT: kmovw %k1, %ecx
11703 ; NoVLX-NEXT: vpinsrb $2, %r9d, %xmm0, %xmm0
11704 ; NoVLX-NEXT: vpinsrb $3, %r11d, %xmm0, %xmm0
11705 ; NoVLX-NEXT: vpinsrb $4, %r14d, %xmm0, %xmm0
11706 ; NoVLX-NEXT: vpinsrb $5, %r15d, %xmm0, %xmm0
11707 ; NoVLX-NEXT: vpinsrb $6, %r12d, %xmm0, %xmm0
11708 ; NoVLX-NEXT: vpinsrb $7, %r13d, %xmm0, %xmm0
11709 ; NoVLX-NEXT: vpinsrb $8, %esi, %xmm0, %xmm0
11710 ; NoVLX-NEXT: vpinsrb $9, %ebx, %xmm0, %xmm0
11711 ; NoVLX-NEXT: vpinsrb $10, %edi, %xmm0, %xmm0
11712 ; NoVLX-NEXT: vpinsrb $11, %eax, %xmm0, %xmm0
11713 ; NoVLX-NEXT: vpinsrb $12, %edx, %xmm0, %xmm0
11714 ; NoVLX-NEXT: kshiftrw $15, %k0, %k0
11715 ; NoVLX-NEXT: vpinsrb $13, %r10d, %xmm0, %xmm0
11716 ; NoVLX-NEXT: vpinsrb $14, %ecx, %xmm0, %xmm0
11717 ; NoVLX-NEXT: kmovw %k0, %eax
11718 ; NoVLX-NEXT: vpinsrb $15, %eax, %xmm0, %xmm0
9893 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k1 {%k1}
9894 ; NoVLX-NEXT: kxorw %k0, %k0, %k0
9895 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
9896 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
9897 ; NoVLX-NEXT: kmovw %k0, {{[0-9]+}}(%rsp)
9898 ; NoVLX-NEXT: vpbroadcastd {{.*}}(%rip), %zmm0 {%k1} {z}
9899 ; NoVLX-NEXT: vpmovdb %zmm0, %xmm0
117199900 ; NoVLX-NEXT: vpmovsxbd %xmm0, %zmm0
117209901 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
117219902 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0
117249905 ; NoVLX-NEXT: shlq $32, %rcx
117259906 ; NoVLX-NEXT: movl (%rsp), %eax
117269907 ; NoVLX-NEXT: orq %rcx, %rax
11727 ; NoVLX-NEXT: leaq -40(%rbp), %rsp
11728 ; NoVLX-NEXT: popq %rbx
11729 ; NoVLX-NEXT: popq %r12
11730 ; NoVLX-NEXT: popq %r13
11731 ; NoVLX-NEXT: popq %r14
11732 ; NoVLX-NEXT: popq %r15
9908 ; NoVLX-NEXT: movq %rbp, %rsp
117339909 ; NoVLX-NEXT: popq %rbp
117349910 ; NoVLX-NEXT: vzeroupper
117359911 ; NoVLX-NEXT: retq
1280310979 ; NoVLX-NEXT: .cfi_offset %rbp, -16
1280410980 ; NoVLX-NEXT: movq %rsp, %rbp
1280510981 ; NoVLX-NEXT: .cfi_def_cfa_register %rbp
12806 ; NoVLX-NEXT: pushq %r15
12807 ; NoVLX-NEXT: pushq %r14
12808 ; NoVLX-NEXT: pushq %r13
12809 ; NoVLX-NEXT: pushq %r12
12810 ; NoVLX-NEXT: pushq %rbx
1281110982 ; NoVLX-NEXT: andq $-32, %rsp
1281210983 ; NoVLX-NEXT: subq $32, %rsp
12813 ; NoVLX-NEXT: .cfi_offset %rbx, -56
12814 ; NoVLX-NEXT: .cfi_offset %r12, -48
12815 ; NoVLX-NEXT: .cfi_offset %r13, -40
12816 ; NoVLX-NEXT: .cfi_offset %r14, -32
12817 ; NoVLX-NEXT: .cfi_offset %r15, -24
1281810984 ; NoVLX-NEXT: vpcmpgtw %ymm1, %ymm0, %ymm0
1281910985 ; NoVLX-NEXT: vpmovsxwd %ymm0, %zmm0
1282010986 ; NoVLX-NEXT: vpslld $31, %zmm0, %zmm0
1282110987 ; NoVLX-NEXT: kmovw %edi, %k1
12822 ; NoVLX-NEXT: vptestmd %zmm0, %zmm0, %k0 {%k1}
12823 ; NoVLX-NEXT: kxorw %k0, %k0, %k1
12824 ; NoVLX-NEXT: kmovw %k1, {{[0-9]+}}(%rsp)
12825 ; NoVLX-NEXT: kshiftlw $14, %k0, %k1
12826 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
12827 ; NoVLX-NEXT: kmovw %k1, %r8d
12828 ; NoVLX-NEXT: kshiftlw $15, %k0, %k1
12829 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
12830 ; NoVLX-NEXT: kmovw %k1, %r10d
12831 ; NoVLX-NEXT: kshiftlw $13, %k0, %k1
12832 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
12833 ; NoVLX-NEXT: kmovw %k1, %r9d
12834 ; NoVLX-NEXT: kshiftlw $12, %k0, %k1
12835 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
12836 ; NoVLX-NEXT: kmovw %k1, %r11d
12837 ; NoVLX-NEXT: kshiftlw $11, %k0, %k1
12838 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
12839 ; NoVLX-NEXT: kmovw %k1, %r14d
12840 ; NoVLX-NEXT: kshiftlw $10, %k0, %k1
12841 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
12842 ; NoVLX-NEXT: kmovw %k1, %r15d
12843 ; NoVLX-NEXT: kshiftlw $9, %k0, %k1
12844 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
12845 ; NoVLX-NEXT: kmovw %k1, %r12d
12846 ; NoVLX-NEXT: kshiftlw $8, %k0, %k1
12847 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
12848 ; NoVLX-NEXT: kmovw %k1, %r13d
12849 ; NoVLX-NEXT: kshiftlw $7, %k0, %k1
12850 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
12851 ; NoVLX-NEXT: kmovw %k1, %esi
12852 ; NoVLX-NEXT: kshiftlw $6, %k0, %k1
12853 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
12854 ; NoVLX-NEXT: kmovw %k1, %ebx
12855 ; NoVLX-NEXT: kshiftlw $5, %k0, %k1
12856 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
12857 ; NoVLX-NEXT: kmovw %k1, %edi
12858 ; NoVLX-NEXT: kshiftlw $4, %k0, %k1
12859 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
12860 ; NoVLX-NEXT: kmovw %k1, %eax
12861 ; NoVLX-NEXT: kshiftlw $3, %k0, %k1
12862 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
12863 ; NoVLX-NEXT: kmovw %k1, %edx
12864 ; NoVLX-NEXT: kshiftlw $2, %k0, %k1
12865 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
12866 ; NoVLX-NEXT: vmovd %r10d, %xmm0
12867 ; NoVLX-NEXT: kmovw %k1, %r10d
12868 ; NoVLX-NEXT: kshiftlw $1, %k0, %k1
12869 ; NoVLX-NEXT: kshiftrw $15, %k1, %k1
12870 ; NoVLX-NEXT: vpinsrb $1, %r8d, %xmm0, %xmm0
12871 ; NoVLX-NEXT: kmovw %k1, %ecx
12872 ; NoVLX-NEXT: vpinsrb $2, %r9d, %xmm0, %xmm0
12873 ; NoVLX-NEXT: vpinsrb $3, %r11d, %xmm0, %xmm0
12874 ; NoVLX-NEXT: vpinsrb $4, %r14d, %xmm0, %xmm0
12875 ; NoVLX-NEXT: vpinsrb $5, %r15d, %xmm0, %xmm0
12876 ; NoVLX-NEXT: vpinsrb $6, %r12d, %xmm0, %xmm0
12877 ; NoVLX-NEXT: vpinsrb $7, %r13d, %xmm0, %xmm0
12878 ; NoVLX-NEXT: vpinsrb $8, %esi, %xmm0, %xmm0
12879 ; NoVLX-NEXT: vpinsrb $9, %ebx, %xmm0, %xmm0
12880 ; NoVLX-NEXT: vpinsrb $10, %edi, %xmm0, %xmm0
12881 ; NoVLX-NEXT: vpinsrb $11, %eax, %xmm0, %xmm0
12882 ; NoVLX-NEXT: vpinsrb $12, %edx, %xmm0, %xmm0
12883 ; NoVLX-NEXT: kshiftrw $15, %k0, %k0
12884 ; NoVLX-NEXT: vpinsrb $13, %r10d, %xmm0, %xmm0