|
107 | 107 | #define _mm_shuffle_epi8 _mm_shuffle_epi8_REF
|
108 | 108 | #endif
|
109 | 109 |
|
110 |
| -#if !(defined (__SSE4_2__) || defined (__SSE4_1__)) |
| 110 | +#if !defined (__SSE4_2__) && !defined (__SSE4_1__) |
| 111 | +/* clang 19 defines these macro */ |
| 112 | +#undef _mm_blend_pd |
| 113 | +#undef _mm_blend_ps |
| 114 | +#undef _mm_blendv_pd |
| 115 | +#undef _mm_blendv_ps |
| 116 | +#undef _mm_cmpeq_epi64 |
| 117 | +#undef _mm_cmpgt_epi64 |
| 118 | +#undef _mm_cvtepu8_epi64 |
| 119 | +#undef _mm_extract_epi64 |
| 120 | +#undef _mm_insert_epi32 |
| 121 | +#undef _mm_insert_epi64 |
| 122 | +#undef _mm_insert_epi8 |
| 123 | +#undef _mm_max_epu32 |
| 124 | +#undef _mm_testc_si128 |
| 125 | +#undef _mm_testnzc_si128 |
| 126 | +#undef _mm_testz_si128 |
| 127 | + |
111 | 128 | #define _mm_blend_pd _mm_blend_pd_REF
|
112 | 129 | #define _mm_blend_ps _mm_blend_ps_SSE2
|
113 | 130 | #define _mm_blendv_pd _mm_blendv_pd_SSE2
|
@@ -692,6 +709,40 @@ static __emu_inline __emu_int64_t __emu_mm256_extract_epi64( __emu__m256i a, con
|
692 | 709 | /*
|
693 | 710 | * Compare predicates for scalar and packed compare intrinsics
|
694 | 711 | */
|
| 712 | +/* clang 19 defines these macro */ |
| 713 | +#undef _CMP_EQ_OQ |
| 714 | +#undef _CMP_LT_OS |
| 715 | +#undef _CMP_LE_OS |
| 716 | +#undef _CMP_UNORD_Q |
| 717 | +#undef _CMP_NEQ_UQ |
| 718 | +#undef _CMP_NLT_US |
| 719 | +#undef _CMP_NLE_US |
| 720 | +#undef _CMP_ORD_Q |
| 721 | +#undef _CMP_EQ_UQ |
| 722 | +#undef _CMP_NGE_US |
| 723 | +#undef _CMP_NGT_US |
| 724 | +#undef _CMP_FALSE_OQ |
| 725 | +#undef _CMP_NEQ_OQ |
| 726 | +#undef _CMP_GE_OS |
| 727 | +#undef _CMP_GT_OS |
| 728 | +#undef _CMP_TRUE_UQ |
| 729 | +#undef _CMP_EQ_OS |
| 730 | +#undef _CMP_LT_OQ |
| 731 | +#undef _CMP_LE_OQ |
| 732 | +#undef _CMP_UNORD_S |
| 733 | +#undef _CMP_NEQ_US |
| 734 | +#undef _CMP_NLT_UQ |
| 735 | +#undef _CMP_NLE_UQ |
| 736 | +#undef _CMP_ORD_S |
| 737 | +#undef _CMP_EQ_US |
| 738 | +#undef _CMP_NGE_UQ |
| 739 | +#undef _CMP_NGT_UQ |
| 740 | +#undef _CMP_FALSE_OS |
| 741 | +#undef _CMP_NEQ_OS |
| 742 | +#undef _CMP_GE_OQ |
| 743 | +#undef _CMP_GT_OQ |
| 744 | +#undef _CMP_TRUE_US |
| 745 | + |
695 | 746 | #define _CMP_EQ_OQ 0x00 /* Equal (ordered, nonsignaling) */
|
696 | 747 | #define _CMP_LT_OS 0x01 /* Less-than (ordered, signaling) */
|
697 | 748 | #define _CMP_LE_OS 0x02 /* Less-than-or-equal (ordered, signaling) */
|
@@ -1768,6 +1819,220 @@ static __emu_inline __emu__m256i __emu_mm256_sllv_epi64(__emu__m256i a, __emu__m
|
1768 | 1819 | #define __m256i __emu__m256i
|
1769 | 1820 | #define __m256d __emu__m256d
|
1770 | 1821 |
|
| 1822 | +/* clang 19 defines these macro */ |
| 1823 | +#undef _mm256_add_pd |
| 1824 | +#undef _mm256_add_ps |
| 1825 | +#undef _mm256_addsub_pd |
| 1826 | +#undef _mm256_addsub_ps |
| 1827 | +#undef _mm256_and_pd |
| 1828 | +#undef _mm256_and_ps |
| 1829 | +#undef _mm256_andnot_pd |
| 1830 | +#undef _mm256_andnot_ps |
| 1831 | +#undef _mm256_blend_pd |
| 1832 | +#undef _mm256_blend_ps |
| 1833 | +#undef _mm256_blendv_pd |
| 1834 | +#undef _mm256_blendv_ps |
| 1835 | +#undef _mm256_div_pd |
| 1836 | +#undef _mm256_div_ps |
| 1837 | +#undef _mm256_dp_ps |
| 1838 | +#undef _mm256_hadd_pd |
| 1839 | +#undef _mm256_hadd_ps |
| 1840 | +#undef _mm256_hsub_pd |
| 1841 | +#undef _mm256_hsub_ps |
| 1842 | +#undef _mm256_max_pd |
| 1843 | +#undef _mm256_max_ps |
| 1844 | +#undef _mm256_min_pd |
| 1845 | +#undef _mm256_min_ps |
| 1846 | +#undef _mm256_mul_pd |
| 1847 | +#undef _mm256_mul_ps |
| 1848 | +#undef _mm256_or_pd |
| 1849 | +#undef _mm256_or_ps |
| 1850 | +#undef _mm256_shuffle_pd |
| 1851 | +#undef _mm256_shuffle_ps |
| 1852 | +#undef _mm256_sub_pd |
| 1853 | +#undef _mm256_sub_ps |
| 1854 | +#undef _mm256_xor_pd |
| 1855 | +#undef _mm256_xor_ps |
| 1856 | +#undef _mm_cmp_pd |
| 1857 | +#undef _mm256_cmp_pd |
| 1858 | +#undef _mm_cmp_ps |
| 1859 | +#undef _mm256_cmp_ps |
| 1860 | +#undef _mm_cmp_sd |
| 1861 | +#undef _mm_cmp_ss |
| 1862 | +#undef _mm256_cvtepi32_pd |
| 1863 | +#undef _mm256_cvtepi32_ps |
| 1864 | +#undef _mm256_cvtpd_ps |
| 1865 | +#undef _mm256_cvtps_epi32 |
| 1866 | +#undef _mm256_cvtps_pd |
| 1867 | +#undef _mm256_cvttpd_epi32 |
| 1868 | +#undef _mm256_cvtpd_epi32 |
| 1869 | +#undef _mm256_cvttps_epi32 |
| 1870 | +#undef _mm256_extractf128_ps |
| 1871 | +#undef _mm256_extractf128_pd |
| 1872 | +#undef _mm256_extractf128_si256 |
| 1873 | +#undef _mm256_zeroall |
| 1874 | +#undef _mm256_zeroupper |
| 1875 | +#undef _mm256_permutevar_ps |
| 1876 | +#undef _mm_permutevar_ps |
| 1877 | +#undef _mm256_permute_ps |
| 1878 | +#undef _mm_permute_ps |
| 1879 | +#undef _mm256_permutevar_pd |
| 1880 | +#undef _mm_permutevar_pd |
| 1881 | +#undef _mm256_permute_pd |
| 1882 | +#undef _mm_permute_pd |
| 1883 | +#undef _mm256_permute2f128_ps |
| 1884 | +#undef _mm256_permute2f128_pd |
| 1885 | +#undef _mm256_permute2f128_si256 |
| 1886 | +#undef _mm256_broadcast_ss |
| 1887 | +#undef _mm_broadcast_ss |
| 1888 | +#undef _mm256_broadcast_sd |
| 1889 | +#undef _mm256_broadcast_ps |
| 1890 | +#undef _mm256_broadcast_pd |
| 1891 | +#undef _mm256_insertf128_ps |
| 1892 | +#undef _mm256_insertf128_pd |
| 1893 | +#undef _mm256_insertf128_si256 |
| 1894 | +#undef _mm256_load_pd |
| 1895 | +#undef _mm256_store_pd |
| 1896 | +#undef _mm256_load_ps |
| 1897 | +#undef _mm256_store_ps |
| 1898 | +#undef _mm256_loadu_pd |
| 1899 | +#undef _mm256_storeu_pd |
| 1900 | +#undef _mm256_loadu_ps |
| 1901 | +#undef _mm256_storeu_ps |
| 1902 | +#undef _mm256_load_si256 |
| 1903 | +#undef _mm256_store_si256 |
| 1904 | +#undef _mm256_loadu_si256 |
| 1905 | +#undef _mm256_storeu_si256 |
| 1906 | +#undef _mm256_maskload_pd |
| 1907 | +#undef _mm256_maskstore_pd |
| 1908 | +#undef _mm_maskload_pd |
| 1909 | +#undef _mm_maskstore_pd |
| 1910 | +#undef _mm256_maskload_ps |
| 1911 | +#undef _mm256_maskstore_ps |
| 1912 | +#undef _mm_maskload_ps |
| 1913 | +#undef _mm_maskstore_ps |
| 1914 | +#undef _mm256_movehdup_ps |
| 1915 | +#undef _mm256_moveldup_ps |
| 1916 | +#undef _mm256_movedup_pd |
| 1917 | +#undef _mm256_lddqu_si256 |
| 1918 | +#undef _mm256_stream_pd |
| 1919 | +#undef _mm256_stream_ps |
| 1920 | +#undef _mm256_rcp_ps |
| 1921 | +#undef _mm256_rsqrt_ps |
| 1922 | +#undef _mm256_sqrt_pd |
| 1923 | +#undef _mm256_sqrt_ps |
| 1924 | +#undef _mm256_round_pd |
| 1925 | +#undef _mm256_round_ps |
| 1926 | +#undef _mm256_unpackhi_pd |
| 1927 | +#undef _mm256_unpackhi_ps |
| 1928 | +#undef _mm256_unpacklo_pd |
| 1929 | +#undef _mm256_unpacklo_ps |
| 1930 | +#undef _mm256_testz_si256 |
| 1931 | +#undef _mm256_testc_si256 |
| 1932 | +#undef _mm256_testnzc_si256 |
| 1933 | +#undef _mm256_testz_pd |
| 1934 | +#undef _mm256_testc_pd |
| 1935 | +#undef _mm256_testnzc_pd |
| 1936 | +#undef _mm256_testz_ps |
| 1937 | +#undef _mm256_testc_ps |
| 1938 | +#undef _mm256_testnzc_ps |
| 1939 | +#undef _mm_testz_pd |
| 1940 | +#undef _mm_testc_pd |
| 1941 | +#undef _mm_testnzc_pd |
| 1942 | +#undef _mm_testz_ps |
| 1943 | +#undef _mm_testc_ps |
| 1944 | +#undef _mm_testnzc_ps |
| 1945 | +#undef _mm256_movemask_pd |
| 1946 | +#undef _mm256_movemask_ps |
| 1947 | +#undef _mm256_setzero_pd |
| 1948 | +#undef _mm256_setzero_ps |
| 1949 | +#undef _mm256_setzero_si256 |
| 1950 | +#undef _mm256_set_pd |
| 1951 | +#undef _mm256_set_ps |
| 1952 | +#undef _mm256_set_epi8 |
| 1953 | +#undef _mm256_set_epi16 |
| 1954 | +#undef _mm256_set_epi32 |
| 1955 | +#undef _mm256_set_epi64x |
| 1956 | +#undef _mm256_setr_pd |
| 1957 | +#undef _mm256_setr_ps |
| 1958 | +#undef _mm256_setr_epi8 |
| 1959 | +#undef _mm256_setr_epi16 |
| 1960 | +#undef _mm256_setr_epi32 |
| 1961 | +#undef _mm256_setr_epi64x |
| 1962 | +#undef _mm256_set1_pd |
| 1963 | +#undef _mm256_set1_ps |
| 1964 | +#undef _mm256_set1_epi8 |
| 1965 | +#undef _mm256_set1_epi16 |
| 1966 | +#undef _mm256_set1_epi32 |
| 1967 | +#undef _mm256_set1_epi64x |
| 1968 | +#undef _mm256_castpd_ps |
| 1969 | +#undef _mm256_castps_pd |
| 1970 | +#undef _mm256_castps_si256 |
| 1971 | +#undef _mm256_castpd_si256 |
| 1972 | +#undef _mm256_castsi256_ps |
| 1973 | +#undef _mm256_castsi256_pd |
| 1974 | +#undef _mm256_castps256_ps128 |
| 1975 | +#undef _mm256_castpd256_pd128 |
| 1976 | +#undef _mm256_castsi256_si128 |
| 1977 | +#undef _mm256_castps128_ps256 |
| 1978 | +#undef _mm256_castpd128_pd256 |
| 1979 | +#undef _mm256_castsi128_si256 |
| 1980 | +#undef _mm256_add_epi16 |
| 1981 | +#undef _mm256_add_epi32 |
| 1982 | +#undef _mm256_add_epi8 |
| 1983 | +#undef _mm256_add_epi64 |
| 1984 | +#undef _mm256_sub_epi64 |
| 1985 | +#undef _mm256_and_si256 |
| 1986 | +#undef _mm256_andnot_si256 |
| 1987 | +#undef _mm256_or_si256 |
| 1988 | +#undef _mm256_xor_si256 |
| 1989 | +#undef _mm256_sub_epi8 |
| 1990 | +#undef _mm256_max_epu32 |
| 1991 | +#undef _mm256_mul_epu32 |
| 1992 | +#undef _mm256_blendv_epi8 |
| 1993 | +#undef _mm256_slli_epi64 |
| 1994 | +#undef _mm256_srli_epi16 |
| 1995 | +#undef _mm256_srli_epi32 |
| 1996 | +#undef _mm256_srli_epi64 |
| 1997 | +#undef _mm256_srli_si256 |
| 1998 | +#undef _mm256_broadcastb_epi8 |
| 1999 | +#undef _mm256_broadcastd_epi32 |
| 2000 | +#undef _mm256_broadcastq_epi64 |
| 2001 | +#undef _mm256_broadcastsi128_si256 |
| 2002 | +#undef _mm256_cmpeq_epi16 |
| 2003 | +#undef _mm256_cmpeq_epi32 |
| 2004 | +#undef _mm256_cmpeq_epi64 |
| 2005 | +#undef _mm256_cmpeq_epi8 |
| 2006 | +#undef _mm256_cmpgt_epi16 |
| 2007 | +#undef _mm256_cmpgt_epi32 |
| 2008 | +#undef _mm256_cmpgt_epi64 |
| 2009 | +#undef _mm256_cmpgt_epi8 |
| 2010 | +#undef _mm256_maskload_epi64 |
| 2011 | +#undef _mm256_maskstore_epi64 |
| 2012 | +#undef _mm256_movemask_epi8 |
| 2013 | +#undef _mm256_blend_epi32 |
| 2014 | +#undef _mm256_extract_epi64 |
| 2015 | +#undef _mm256_fnmadd_pd |
| 2016 | +#undef _mm256_fmadd_pd |
| 2017 | +#undef _mm256_fmadd_ps |
| 2018 | +#undef _mm256_fmsub_pd |
| 2019 | +#undef _mm256_fmsub_ps |
| 2020 | +#undef _mm256_i64gather_epi64 |
| 2021 | +#undef _mm256_i64gather_pd |
| 2022 | +#undef _mm256_mask_i64gather_epi64 |
| 2023 | +#undef _mm256_mask_i64gather_pd |
| 2024 | +#undef _mm256_permute2x128_si256 |
| 2025 | +#undef _mm256_permute4x64_epi64 |
| 2026 | +#undef _mm256_permute4x64_pd |
| 2027 | +#undef _mm256_permutevar8x32_epi32 |
| 2028 | +#undef _mm256_cvtsd_f64 |
| 2029 | +#undef _mm256_cvtepu8_epi64 |
| 2030 | +#undef _mm256_sllv_epi64 |
| 2031 | +#undef _mm256_shuffle_epi32 |
| 2032 | +#undef _mm256_stream_load_pd |
| 2033 | +#undef _mm256_stream_si256 |
| 2034 | +#undef _mm256_stream_load_si256 |
| 2035 | + |
1771 | 2036 | #define _mm256_add_pd __emu_mm256_add_pd
|
1772 | 2037 | #define _mm256_add_ps __emu_mm256_add_ps
|
1773 | 2038 |
|
@@ -1818,12 +2083,6 @@ static __emu_inline __emu__m256i __emu_mm256_sllv_epi64(__emu__m256i a, __emu__m
|
1818 | 2083 | #define _mm256_xor_pd __emu_mm256_xor_pd
|
1819 | 2084 | #define _mm256_xor_ps __emu_mm256_xor_ps
|
1820 | 2085 |
|
1821 |
| -/* clang 19 defines these macro */ |
1822 |
| -#undef _mm_cmp_pd |
1823 |
| -#undef _mm_cmp_ps |
1824 |
| -#undef _mm_cmp_sd |
1825 |
| -#undef _mm_cmp_ss |
1826 |
| - |
1827 | 2086 | #define _mm_cmp_pd __emu_mm_cmp_pd
|
1828 | 2087 | #define _mm256_cmp_pd __emu_mm256_cmp_pd
|
1829 | 2088 |
|
|
0 commit comments