diff --git a/config/toolchain-simd.m4 b/config/toolchain-simd.m4 index d8197157f..8d008c3bd 100644 --- a/config/toolchain-simd.m4 +++ b/config/toolchain-simd.m4 @@ -5,22 +5,13 @@ dnl # AC_DEFUN([ZFS_AC_CONFIG_ALWAYS_TOOLCHAIN_SIMD], [ case "$host_cpu" in amd64 | x86_64 | x86 | i686) - ZFS_AC_CONFIG_TOOLCHAIN_CAN_BUILD_SSE ZFS_AC_CONFIG_TOOLCHAIN_CAN_BUILD_SSE2 - ZFS_AC_CONFIG_TOOLCHAIN_CAN_BUILD_SSE3 ZFS_AC_CONFIG_TOOLCHAIN_CAN_BUILD_SSSE3 ZFS_AC_CONFIG_TOOLCHAIN_CAN_BUILD_SSE4_1 - ZFS_AC_CONFIG_TOOLCHAIN_CAN_BUILD_SSE4_2 ZFS_AC_CONFIG_TOOLCHAIN_CAN_BUILD_AVX ZFS_AC_CONFIG_TOOLCHAIN_CAN_BUILD_AVX2 ZFS_AC_CONFIG_TOOLCHAIN_CAN_BUILD_AVX512F - ZFS_AC_CONFIG_TOOLCHAIN_CAN_BUILD_AVX512CD - ZFS_AC_CONFIG_TOOLCHAIN_CAN_BUILD_AVX512DQ ZFS_AC_CONFIG_TOOLCHAIN_CAN_BUILD_AVX512BW - ZFS_AC_CONFIG_TOOLCHAIN_CAN_BUILD_AVX512IFMA - ZFS_AC_CONFIG_TOOLCHAIN_CAN_BUILD_AVX512VBMI - ZFS_AC_CONFIG_TOOLCHAIN_CAN_BUILD_AVX512PF - ZFS_AC_CONFIG_TOOLCHAIN_CAN_BUILD_AVX512ER ZFS_AC_CONFIG_TOOLCHAIN_CAN_BUILD_AVX512VL ZFS_AC_CONFIG_TOOLCHAIN_CAN_BUILD_AES ZFS_AC_CONFIG_TOOLCHAIN_CAN_BUILD_PCLMULQDQ @@ -35,26 +26,6 @@ AC_DEFUN([ZFS_AC_CONFIG_ALWAYS_TOOLCHAIN_SIMD], [ esac ]) -dnl # -dnl # ZFS_AC_CONFIG_TOOLCHAIN_CAN_BUILD_SSE -dnl # -AC_DEFUN([ZFS_AC_CONFIG_TOOLCHAIN_CAN_BUILD_SSE], [ - AC_MSG_CHECKING([whether host toolchain supports SSE]) - - AC_LINK_IFELSE([AC_LANG_SOURCE([[ - int main() - { - __asm__ __volatile__("xorps %xmm0, %xmm1"); - return (0); - } - ]])], [ - AC_DEFINE([HAVE_SSE], 1, [Define if host toolchain supports SSE]) - AC_MSG_RESULT([yes]) - ], [ - AC_MSG_RESULT([no]) - ]) -]) - dnl # dnl # ZFS_AC_CONFIG_TOOLCHAIN_CAN_BUILD_SSE2 dnl # @@ -75,27 +46,6 @@ AC_DEFUN([ZFS_AC_CONFIG_TOOLCHAIN_CAN_BUILD_SSE2], [ ]) ]) -dnl # -dnl # ZFS_AC_CONFIG_TOOLCHAIN_CAN_BUILD_SSE3 -dnl # -AC_DEFUN([ZFS_AC_CONFIG_TOOLCHAIN_CAN_BUILD_SSE3], [ - AC_MSG_CHECKING([whether host toolchain supports SSE3]) - - AC_LINK_IFELSE([AC_LANG_SOURCE([[ - int main() - { - char v[16]; - __asm__ __volatile__("lddqu %0,%%xmm0" :: "m"(v[0])); - return (0); - } - ]])], [ - AC_DEFINE([HAVE_SSE3], 1, [Define if host toolchain supports SSE3]) - AC_MSG_RESULT([yes]) - ], [ - AC_MSG_RESULT([no]) - ]) -]) - dnl # dnl # ZFS_AC_CONFIG_TOOLCHAIN_CAN_BUILD_SSSE3 dnl # @@ -136,26 +86,6 @@ AC_DEFUN([ZFS_AC_CONFIG_TOOLCHAIN_CAN_BUILD_SSE4_1], [ ]) ]) -dnl # -dnl # ZFS_AC_CONFIG_TOOLCHAIN_CAN_BUILD_SSE4_2 -dnl # -AC_DEFUN([ZFS_AC_CONFIG_TOOLCHAIN_CAN_BUILD_SSE4_2], [ - AC_MSG_CHECKING([whether host toolchain supports SSE4.2]) - - AC_LINK_IFELSE([AC_LANG_SOURCE([[ - int main() - { - __asm__ __volatile__("pcmpgtq %xmm0, %xmm1"); - return (0); - } - ]])], [ - AC_DEFINE([HAVE_SSE4_2], 1, [Define if host toolchain supports SSE4.2]) - AC_MSG_RESULT([yes]) - ], [ - AC_MSG_RESULT([no]) - ]) -]) - dnl # dnl # ZFS_AC_CONFIG_TOOLCHAIN_CAN_BUILD_AVX dnl # @@ -219,48 +149,6 @@ AC_DEFUN([ZFS_AC_CONFIG_TOOLCHAIN_CAN_BUILD_AVX512F], [ ]) ]) -dnl # -dnl # ZFS_AC_CONFIG_TOOLCHAIN_CAN_BUILD_AVX512CD -dnl # -AC_DEFUN([ZFS_AC_CONFIG_TOOLCHAIN_CAN_BUILD_AVX512CD], [ - AC_MSG_CHECKING([whether host toolchain supports AVX512CD]) - - AC_LINK_IFELSE([AC_LANG_SOURCE([ - [ - int main() - { - __asm__ __volatile__("vplzcntd %zmm0,%zmm1"); - return (0); - } - ]])], [ - AC_MSG_RESULT([yes]) - AC_DEFINE([HAVE_AVX512CD], 1, [Define if host toolchain supports AVX512CD]) - ], [ - AC_MSG_RESULT([no]) - ]) -]) - -dnl # -dnl # ZFS_AC_CONFIG_TOOLCHAIN_CAN_BUILD_AVX512DQ -dnl # -AC_DEFUN([ZFS_AC_CONFIG_TOOLCHAIN_CAN_BUILD_AVX512DQ], [ - AC_MSG_CHECKING([whether host toolchain supports AVX512DQ]) - - AC_LINK_IFELSE([AC_LANG_SOURCE([ - [ - int main() - { - __asm__ __volatile__("vandpd %zmm0,%zmm1,%zmm2"); - return (0); - } - ]])], [ - AC_MSG_RESULT([yes]) - AC_DEFINE([HAVE_AVX512DQ], 1, [Define if host toolchain supports AVX512DQ]) - ], [ - AC_MSG_RESULT([no]) - ]) -]) - dnl # dnl # ZFS_AC_CONFIG_TOOLCHAIN_CAN_BUILD_AVX512BW dnl # @@ -282,90 +170,6 @@ AC_DEFUN([ZFS_AC_CONFIG_TOOLCHAIN_CAN_BUILD_AVX512BW], [ ]) ]) -dnl # -dnl # ZFS_AC_CONFIG_TOOLCHAIN_CAN_BUILD_AVX512IFMA -dnl # -AC_DEFUN([ZFS_AC_CONFIG_TOOLCHAIN_CAN_BUILD_AVX512IFMA], [ - AC_MSG_CHECKING([whether host toolchain supports AVX512IFMA]) - - AC_LINK_IFELSE([AC_LANG_SOURCE([ - [ - int main() - { - __asm__ __volatile__("vpmadd52luq %zmm0,%zmm1,%zmm2"); - return (0); - } - ]])], [ - AC_MSG_RESULT([yes]) - AC_DEFINE([HAVE_AVX512IFMA], 1, [Define if host toolchain supports AVX512IFMA]) - ], [ - AC_MSG_RESULT([no]) - ]) -]) - -dnl # -dnl # ZFS_AC_CONFIG_TOOLCHAIN_CAN_BUILD_AVX512VBMI -dnl # -AC_DEFUN([ZFS_AC_CONFIG_TOOLCHAIN_CAN_BUILD_AVX512VBMI], [ - AC_MSG_CHECKING([whether host toolchain supports AVX512VBMI]) - - AC_LINK_IFELSE([AC_LANG_SOURCE([ - [ - int main() - { - __asm__ __volatile__("vpermb %zmm0,%zmm1,%zmm2"); - return (0); - } - ]])], [ - AC_MSG_RESULT([yes]) - AC_DEFINE([HAVE_AVX512VBMI], 1, [Define if host toolchain supports AVX512VBMI]) - ], [ - AC_MSG_RESULT([no]) - ]) -]) - -dnl # -dnl # ZFS_AC_CONFIG_TOOLCHAIN_CAN_BUILD_AVX512PF -dnl # -AC_DEFUN([ZFS_AC_CONFIG_TOOLCHAIN_CAN_BUILD_AVX512PF], [ - AC_MSG_CHECKING([whether host toolchain supports AVX512PF]) - - AC_LINK_IFELSE([AC_LANG_SOURCE([ - [ - int main() - { - __asm__ __volatile__("vgatherpf0dps (%rsi,%zmm0,4){%k1}"); - return (0); - } - ]])], [ - AC_MSG_RESULT([yes]) - AC_DEFINE([HAVE_AVX512PF], 1, [Define if host toolchain supports AVX512PF]) - ], [ - AC_MSG_RESULT([no]) - ]) -]) - -dnl # -dnl # ZFS_AC_CONFIG_TOOLCHAIN_CAN_BUILD_AVX512ER -dnl # -AC_DEFUN([ZFS_AC_CONFIG_TOOLCHAIN_CAN_BUILD_AVX512ER], [ - AC_MSG_CHECKING([whether host toolchain supports AVX512ER]) - - AC_LINK_IFELSE([AC_LANG_SOURCE([ - [ - int main() - { - __asm__ __volatile__("vexp2pd %zmm0,%zmm1"); - return (0); - } - ]])], [ - AC_MSG_RESULT([yes]) - AC_DEFINE([HAVE_AVX512ER], 1, [Define if host toolchain supports AVX512ER]) - ], [ - AC_MSG_RESULT([no]) - ]) -]) - dnl # dnl # ZFS_AC_CONFIG_TOOLCHAIN_CAN_BUILD_AVX512VL dnl # diff --git a/module/Makefile.bsd b/module/Makefile.bsd index 7a1bef646..825586451 100644 --- a/module/Makefile.bsd +++ b/module/Makefile.bsd @@ -46,7 +46,7 @@ CFLAGS+= -D__KERNEL__ -DFREEBSD_NAMECACHE -DBUILDING_ZFS -D__BSD_VISIBLE=1 \ -D_SYS_VMEM_H_ -DKDTRACE_HOOKS -DCOMPAT_FREEBSD11 .if ${MACHINE_ARCH} == "amd64" -CFLAGS+= -D__x86_64 -DHAVE_SSE2 -DHAVE_SSSE3 -DHAVE_SSE4_1 -DHAVE_SSE4_2 \ +CFLAGS+= -D__x86_64 -DHAVE_SSE2 -DHAVE_SSSE3 -DHAVE_SSE4_1 \ -DHAVE_AVX -DHAVE_AVX2 -DHAVE_AVX512F -DHAVE_AVX512VL -DHAVE_AVX512BW .endif