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")