diff options
author | dante <dante19031999@gmail.com> | 2021-05-16 16:04:20 +0200 |
---|---|---|
committer | Mike Kaganski <mike.kaganski@collabora.com> | 2021-08-26 08:48:35 +0200 |
commit | 5b9cf5881ef53fac5f1d8376f687dbadf9d3cf2b (patch) | |
tree | ff16b0dcf62236c48fed6ca87e7d584959ed1841 /configure.ac | |
parent | fb1233d77500413ba237c335a84773d8a6f8e381 (diff) |
tdf#142307 - Upgrade SSE2 sum to AVX512 sum with Neumaier 1
This part focuses on allowing it on replacing arrayfunctor
By thefault it will try AVX512F (1,17%)
If not available will use AVX (94,77%)
Use of AVX2 (82,28%) has been avoided even if the code could been more compact
Source of hardware statistics: https://store.steampowered.com/hwsurvey
Change-Id: Iae737a565379e82c5f84f3fdee6321ac74f59d40
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115675
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac index 9e5708cd49d4..bd929450971c 100644 --- a/configure.ac +++ b/configure.ac @@ -7631,6 +7631,7 @@ CXXFLAGS_INTRINSICS_SSE42= CXXFLAGS_INTRINSICS_AVX= CXXFLAGS_INTRINSICS_AVX2= CXXFLAGS_INTRINSICS_AVX512= +CXXFLAGS_INTRINSICS_AVX512F= CXXFLAGS_INTRINSICS_F16C= CXXFLAGS_INTRINSICS_FMA= @@ -7643,6 +7644,7 @@ if test "$GCC" = "yes" -o "$COM_IS_CLANG" = TRUE; then flag_avx=-mavx flag_avx2=-mavx2 flag_avx512="-mavx512f -mavx512vl -mavx512bw -mavx512dq -mavx512cd" + flag_avx512f=-mavx512f flag_f16c=-mf16c flag_fma=-mfma else @@ -7658,6 +7660,7 @@ else flag_avx=-arch:AVX flag_avx2=-arch:AVX2 flag_avx512=-arch:AVX512 + flag_avx512f=-arch:AVX512 # These are part of -arch:AVX2 flag_f16c=-arch:AVX2 flag_fma=-arch:AVX2 @@ -7807,6 +7810,7 @@ CXXFLAGS=$save_CXXFLAGS AC_MSG_RESULT([${can_compile_avx512}]) if test "${can_compile_avx512}" = "yes" ; then CXXFLAGS_INTRINSICS_AVX512="$flag_avx512" + CXXFLAGS_INTRINSICS_AVX512F="$flag_avx512f" fi AC_MSG_CHECKING([whether $CXX can compile F16C intrinsics]) @@ -7859,6 +7863,7 @@ AC_SUBST([CXXFLAGS_INTRINSICS_SSE42]) AC_SUBST([CXXFLAGS_INTRINSICS_AVX]) AC_SUBST([CXXFLAGS_INTRINSICS_AVX2]) AC_SUBST([CXXFLAGS_INTRINSICS_AVX512]) +AC_SUBST([CXXFLAGS_INTRINSICS_AVX512F]) AC_SUBST([CXXFLAGS_INTRINSICS_F16C]) AC_SUBST([CXXFLAGS_INTRINSICS_FMA]) @@ -12013,6 +12018,7 @@ LO_CLANG_CXXFLAGS_INTRINSICS_SSE42= LO_CLANG_CXXFLAGS_INTRINSICS_AVX= LO_CLANG_CXXFLAGS_INTRINSICS_AVX2= LO_CLANG_CXXFLAGS_INTRINSICS_AVX512= +LO_CLANG_CXXFLAGS_INTRINSICS_AVX512F= LO_CLANG_CXXFLAGS_INTRINSICS_F16C= LO_CLANG_CXXFLAGS_INTRINSICS_FMA= @@ -12066,6 +12072,7 @@ if test "$ENABLE_SKIA" = TRUE -a "$COM_IS_CLANG" != TRUE -a ! \( "$_os" = "WINNT flag_avx=-mavx flag_avx2=-mavx2 flag_avx512="-mavx512f -mavx512vl -mavx512bw -mavx512dq -mavx512cd" + flag_avx512f=-mavx512f flag_f16c=-mf16c flag_fma=-mfma @@ -12213,6 +12220,7 @@ if test "$ENABLE_SKIA" = TRUE -a "$COM_IS_CLANG" != TRUE -a ! \( "$_os" = "WINNT AC_MSG_RESULT([${can_compile_avx512}]) if test "${can_compile_avx512}" = "yes" ; then LO_CLANG_CXXFLAGS_INTRINSICS_AVX512="$flag_avx512" + LO_CLANG_CXXFLAGS_INTRINSICS_AVX512F="$flag_avx512f" fi AC_MSG_CHECKING([whether $CXX can compile F16C intrinsics]) @@ -12319,6 +12327,7 @@ AC_SUBST(LO_CLANG_CXXFLAGS_INTRINSICS_SSE42) AC_SUBST(LO_CLANG_CXXFLAGS_INTRINSICS_AVX) AC_SUBST(LO_CLANG_CXXFLAGS_INTRINSICS_AVX2) AC_SUBST(LO_CLANG_CXXFLAGS_INTRINSICS_AVX512) +AC_SUBST(LO_CLANG_CXXFLAGS_INTRINSICS_AVX512F) AC_SUBST(LO_CLANG_CXXFLAGS_INTRINSICS_F16C) AC_SUBST(LO_CLANG_CXXFLAGS_INTRINSICS_FMA) AC_SUBST(CLANG_USE_LD) |