S8 MAXPOOL microkernels for all architectures

- S8 MAXPOOL microkernels for SSE2, SSE4.1, NEON, WAsm SIMD, and scalar
architectures
- Parameters and parameter initialization functions
- Unit tests

PiperOrigin-RevId: 391040942
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 17d7cae..7d45ae9 100755
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -408,6 +408,7 @@
   src/qu8-vaddc/gen/minmax-scalar-x4.c
   src/qu8-vmul/gen/minmax-fp32-scalar-x4.c
   src/qu8-vmulc/gen/minmax-fp32-scalar-x4.c
+  src/s8-maxpool/9p8x-minmax-scalar-c1.c
   src/u8-lut32norm/scalar.c
   src/u8-maxpool/9p8x-minmax-scalar-c1.c
   src/u8-rmax/scalar.c
@@ -1017,6 +1018,7 @@
   src/qu8-vmulc/gen/minmax-fp32-scalar-x1.c
   src/qu8-vmulc/gen/minmax-fp32-scalar-x2.c
   src/qu8-vmulc/gen/minmax-fp32-scalar-x4.c
+  src/s8-maxpool/9p8x-minmax-scalar-c1.c
   src/u8-lut32norm/scalar.c
   src/u8-maxpool/9p8x-minmax-scalar-c1.c
   src/u8-rmax/scalar.c
@@ -1137,6 +1139,7 @@
   src/qu8-vaddc/gen/minmax-neon-ld64-x8.c
   src/qu8-vmul/gen/minmax-fp32-neon-ld64-x16.c
   src/qu8-vmulc/gen/minmax-fp32-neon-ld64-x16.c
+  src/s8-maxpool/9p8x-minmax-neon-c16.c
   src/u8-maxpool/9p8x-minmax-neon-c16.c
   src/u8-rmax/neon.c
   src/u8-vclamp/neon-x64.c
@@ -1707,6 +1710,7 @@
   src/qu8-vmulc/gen/minmax-fp32-neon-ld64-x8.c
   src/qu8-vmulc/gen/minmax-fp32-neon-ld64-x16.c
   src/qu8-vmulc/gen/minmax-fp32-neon-ld128-x16.c
+  src/s8-maxpool/9p8x-minmax-neon-c16.c
   src/u8-maxpool/9p8x-minmax-neon-c16.c
   src/u8-rmax/neon.c
   src/u8-vclamp/neon-x64.c
@@ -2654,6 +2658,7 @@
   src/qu8-vaddc/gen/minmax-sse2-mul16-ld64-x8.c
   src/qu8-vmul/gen/minmax-fp32-sse2-mul16-ld64-x8.c
   src/qu8-vmulc/gen/minmax-fp32-sse2-mul16-ld64-x8.c
+  src/s8-maxpool/9p8x-minmax-sse2-c16.c
   src/u8-maxpool/9p8x-minmax-sse2-c16.c
   src/u8-rmax/sse2.c
   src/u8-vclamp/sse2-x64.c
@@ -2913,6 +2918,7 @@
   src/qu8-vmul/gen/minmax-fp32-sse2-mul16-ld64-x16.c
   src/qu8-vmulc/gen/minmax-fp32-sse2-mul16-ld64-x8.c
   src/qu8-vmulc/gen/minmax-fp32-sse2-mul16-ld64-x16.c
+  src/s8-maxpool/9p8x-minmax-sse2-c16.c
   src/u8-maxpool/9p8x-minmax-sse2-c16.c
   src/u8-rmax/sse2.c
   src/u8-vclamp/sse2-x64.c
@@ -3020,7 +3026,8 @@
   src/qu8-vadd/gen/minmax-sse41-mul16-ld64-x8.c
   src/qu8-vaddc/gen/minmax-sse41-mul16-ld64-x8.c
   src/qu8-vmul/gen/minmax-fp32-sse41-mul16-ld64-x16.c
-  src/qu8-vmulc/gen/minmax-fp32-sse41-mul16-ld64-x16.c)
+  src/qu8-vmulc/gen/minmax-fp32-sse41-mul16-ld64-x16.c
+  src/s8-maxpool/9p8x-minmax-sse41-c16.c)
 
 SET(ALL_SSE41_MICROKERNEL_SRCS
   src/f32-prelu/gen/sse41-2x4.c
@@ -3258,7 +3265,8 @@
   src/qu8-vmul/gen/minmax-fp32-sse41-mul16-ld64-x8.c
   src/qu8-vmul/gen/minmax-fp32-sse41-mul16-ld64-x16.c
   src/qu8-vmulc/gen/minmax-fp32-sse41-mul16-ld64-x8.c
-  src/qu8-vmulc/gen/minmax-fp32-sse41-mul16-ld64-x16.c)
+  src/qu8-vmulc/gen/minmax-fp32-sse41-mul16-ld64-x16.c
+  src/s8-maxpool/9p8x-minmax-sse41-c16.c)
 
 SET(PROD_AVX_MICROKERNEL_SRCS
   src/f32-dwconv/gen/up8x25-minmax-avx.c
@@ -6705,6 +6713,15 @@
   TARGET_LINK_LIBRARIES(qu8-vmulc-minmax-fp32-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
   ADD_TEST(qu8-vmulc-minmax-fp32-test qu8-vmulc-minmax-fp32-test)
 
+  ADD_EXECUTABLE(s8-maxpool-minmax-test test/s8-maxpool-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
+  SET_TARGET_PROPERTIES(s8-maxpool-minmax-test PROPERTIES
+    CXX_STANDARD 11
+    CXX_STANDARD_REQUIRED YES
+    CXX_EXTENSIONS YES)
+  TARGET_INCLUDE_DIRECTORIES(s8-maxpool-minmax-test PRIVATE include src test)
+  TARGET_LINK_LIBRARIES(s8-maxpool-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
+  ADD_TEST(s8-maxpool-minmax-test s8-maxpool-minmax-test)
+
   ADD_EXECUTABLE(u8-lut32norm-test test/u8-lut32norm.cc $<TARGET_OBJECTS:all_microkernels>)
   SET_TARGET_PROPERTIES(u8-lut32norm-test PROPERTIES
     CXX_STANDARD 11