|
| 1 | +--- a/build/php.m4 |
| 2 | ++++ b/build/php.m4 |
| 3 | +@@ -2812,27 +2812,26 @@ |
| 4 | + dnl PHP_CHECK_AVX512_SUPPORTS |
| 5 | + dnl |
| 6 | + AC_DEFUN([PHP_CHECK_AVX512_SUPPORTS], [ |
| 7 | +- AC_MSG_CHECKING([for avx512 supports in compiler]) |
| 8 | +- save_CFLAGS="$CFLAGS" |
| 9 | +- CFLAGS="-mavx512f -mavx512cd -mavx512vl -mavx512dq -mavx512bw $CFLAGS" |
| 10 | +- |
| 11 | +- AC_LINK_IFELSE([AC_LANG_SOURCE([[ |
| 12 | +- #include <immintrin.h> |
| 13 | +- int main(void) { |
| 14 | +- __m512i mask = _mm512_set1_epi32(0x1); |
| 15 | +- char out[32]; |
| 16 | +- _mm512_storeu_si512(out, _mm512_shuffle_epi8(mask, mask)); |
| 17 | +- return 0; |
| 18 | +- }]])], [ |
| 19 | ++ AC_CACHE_CHECK([whether compiler supports AVX-512], [php_cv_have_avx512], [ |
| 20 | ++ save_CFLAGS="$CFLAGS" |
| 21 | ++ CFLAGS="-mavx512f -mavx512cd -mavx512vl -mavx512dq -mavx512bw $CFLAGS" |
| 22 | ++ AC_LINK_IFELSE([AC_LANG_SOURCE([[ |
| 23 | ++ #include <immintrin.h> |
| 24 | ++ int main(void) { |
| 25 | ++ __m512i mask = _mm512_set1_epi32(0x1); |
| 26 | ++ char out[32]; |
| 27 | ++ _mm512_storeu_si512(out, _mm512_shuffle_epi8(mask, mask)); |
| 28 | ++ return 0; |
| 29 | ++ }]])], |
| 30 | ++ [php_cv_have_avx512=yes], |
| 31 | ++ [php_cv_have_avx512=no]) |
| 32 | ++ CFLAGS="$save_CFLAGS" |
| 33 | ++ ]) |
| 34 | ++ if test "$php_cv_have_avx512" = "yes"; then |
| 35 | + have_avx512_supports=1 |
| 36 | +- AC_MSG_RESULT([yes]) |
| 37 | +- ], [ |
| 38 | ++ else |
| 39 | + have_avx512_supports=0 |
| 40 | +- AC_MSG_RESULT([no]) |
| 41 | +- ]) |
| 42 | +- |
| 43 | +- CFLAGS="$save_CFLAGS" |
| 44 | +- |
| 45 | ++ fi |
| 46 | + AC_DEFINE_UNQUOTED([PHP_HAVE_AVX512_SUPPORTS], |
| 47 | + [$have_avx512_supports], [Whether the compiler supports AVX512]) |
| 48 | + ]) |
| 49 | +@@ -2841,24 +2840,26 @@ |
| 50 | + dnl PHP_CHECK_AVX512_VBMI_SUPPORTS |
| 51 | + dnl |
| 52 | + AC_DEFUN([PHP_CHECK_AVX512_VBMI_SUPPORTS], [ |
| 53 | +- AC_MSG_CHECKING([for avx512 vbmi supports in compiler]) |
| 54 | +- save_CFLAGS="$CFLAGS" |
| 55 | +- CFLAGS="-mavx512f -mavx512cd -mavx512vl -mavx512dq -mavx512bw -mavx512vbmi $CFLAGS" |
| 56 | +- AC_LINK_IFELSE([AC_LANG_SOURCE([[ |
| 57 | +- #include <immintrin.h> |
| 58 | +- int main(void) { |
| 59 | +- __m512i mask = _mm512_set1_epi32(0x1); |
| 60 | +- char out[32]; |
| 61 | +- _mm512_storeu_si512(out, _mm512_permutexvar_epi8(mask, mask)); |
| 62 | +- return 0; |
| 63 | +- }]])], [ |
| 64 | ++ AC_CACHE_CHECK([whether compiler supports AVX-512 VBMI], [php_cv_have_avx512vbmi], [ |
| 65 | ++ save_CFLAGS="$CFLAGS" |
| 66 | ++ CFLAGS="-mavx512f -mavx512cd -mavx512vl -mavx512dq -mavx512bw -mavx512vbmi $CFLAGS" |
| 67 | ++ AC_LINK_IFELSE([AC_LANG_SOURCE([[ |
| 68 | ++ #include <immintrin.h> |
| 69 | ++ int main(void) { |
| 70 | ++ __m512i mask = _mm512_set1_epi32(0x1); |
| 71 | ++ char out[32]; |
| 72 | ++ _mm512_storeu_si512(out, _mm512_permutexvar_epi8(mask, mask)); |
| 73 | ++ return 0; |
| 74 | ++ }]])], |
| 75 | ++ [php_cv_have_avx512vbmi=yes], |
| 76 | ++ [php_cv_have_avx512vbmi=no]) |
| 77 | ++ CFLAGS="$save_CFLAGS" |
| 78 | ++ ]) |
| 79 | ++ if test "$php_cv_have_avx512vbmi" = "yes"; then |
| 80 | + have_avx512_vbmi_supports=1 |
| 81 | +- AC_MSG_RESULT([yes]) |
| 82 | +- ], [ |
| 83 | ++ else |
| 84 | + have_avx512_vbmi_supports=0 |
| 85 | +- AC_MSG_RESULT([no]) |
| 86 | +- ]) |
| 87 | +- CFLAGS="$save_CFLAGS" |
| 88 | ++ fi |
| 89 | + AC_DEFINE_UNQUOTED([PHP_HAVE_AVX512_VBMI_SUPPORTS], |
| 90 | + [$have_avx512_vbmi_supports], [Whether the compiler supports AVX512 VBMI]) |
| 91 | + ]) |
0 commit comments