Vectorized implementations of expf function for AVX2 and AVX512F
PiperOrigin-RevId: 274706485
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 94fe713..1097cfb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -482,8 +482,16 @@
SET(XNNPACK_AVX_MICROKERNEL_SRCS
src/f32-rmax/avx.c)
+SET(XNNPACK_AVX2_MICROKERNEL_SRCS
+ src/math/exp-avx2-p5.c
+ src/math/exp-avx2-perm-p3.c
+ src/math/exp-avx2-perm-p4.c)
+
SET(XNNPACK_AVX512F_MICROKERNEL_SRCS
- src/f32-rmax/avx512f.c)
+ src/f32-rmax/avx512f.c
+ src/math/exp-avx512f-p5-scalef.c
+ src/math/exp-avx512f-p5.c
+ src/math/exp-avx512f-perm-p3.c)
SET(XNNPACK_AARCH32_ASM_MICROKERNEL_SRCS
src/q8-dwconv/up8x9-aarch32-neon.S)
@@ -552,6 +560,7 @@
LIST(APPEND XNNPACK_MICROKERNEL_SRCS ${XNNPACK_SSE_MICROKERNEL_SRCS})
LIST(APPEND XNNPACK_MICROKERNEL_SRCS ${XNNPACK_SSE2_MICROKERNEL_SRCS})
LIST(APPEND XNNPACK_MICROKERNEL_SRCS ${XNNPACK_AVX_MICROKERNEL_SRCS})
+ LIST(APPEND XNNPACK_MICROKERNEL_SRCS ${XNNPACK_AVX2_MICROKERNEL_SRCS})
LIST(APPEND XNNPACK_MICROKERNEL_SRCS ${XNNPACK_AVX512F_MICROKERNEL_SRCS})
ENDIF()
@@ -586,6 +595,7 @@
SET_PROPERTY(SOURCE ${XNNPACK_SSE_MICROKERNEL_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -msse ")
SET_PROPERTY(SOURCE ${XNNPACK_SSE2_MICROKERNEL_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -msse2 ")
SET_PROPERTY(SOURCE ${XNNPACK_AVX_MICROKERNEL_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -mavx ")
+ SET_PROPERTY(SOURCE ${XNNPACK_AVX2_MICROKERNEL_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -mfma -mavx2 ")
SET_PROPERTY(SOURCE ${XNNPACK_AVX512F_MICROKERNEL_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -mavx512f ")
ENDIF()
IF(CMAKE_BUILD_TYPE STREQUAL "Debug")