Add MINMAX suffix to filenames of GEMM/IGEMM/PPMM/DWCONV micro-kernels

PiperOrigin-RevId: 305607024
diff --git a/BUILD.bazel b/BUILD.bazel
index 34235ce..c26c359 100644
--- a/BUILD.bazel
+++ b/BUILD.bazel
@@ -94,45 +94,45 @@
     "src/f32-dwconv-spchw/3x3s2p1-scalar.c",
     "src/f32-dwconv-spchw/5x5p2-scalar.c",
     "src/f32-dwconv-spchw/5x5s2p2-scalar.c",
-    "src/f32-dwconv/gen/up1x25-scalar-acc2.c",
-    "src/f32-dwconv/gen/up1x25-scalar.c",
-    "src/f32-dwconv/gen/up1x4-scalar-acc2.c",
-    "src/f32-dwconv/gen/up1x4-scalar.c",
-    "src/f32-dwconv/gen/up1x9-scalar-acc2.c",
-    "src/f32-dwconv/gen/up1x9-scalar.c",
-    "src/f32-dwconv/gen/up2x25-scalar-acc2.c",
-    "src/f32-dwconv/gen/up2x25-scalar.c",
-    "src/f32-dwconv/gen/up2x4-scalar-acc2.c",
-    "src/f32-dwconv/gen/up2x4-scalar.c",
-    "src/f32-dwconv/gen/up2x9-scalar-acc2.c",
-    "src/f32-dwconv/gen/up2x9-scalar.c",
+    "src/f32-dwconv/gen/up1x25-minmax-scalar-acc2.c",
+    "src/f32-dwconv/gen/up1x25-minmax-scalar.c",
+    "src/f32-dwconv/gen/up1x4-minmax-scalar-acc2.c",
+    "src/f32-dwconv/gen/up1x4-minmax-scalar.c",
+    "src/f32-dwconv/gen/up1x9-minmax-scalar-acc2.c",
+    "src/f32-dwconv/gen/up1x9-minmax-scalar.c",
+    "src/f32-dwconv/gen/up2x25-minmax-scalar-acc2.c",
+    "src/f32-dwconv/gen/up2x25-minmax-scalar.c",
+    "src/f32-dwconv/gen/up2x4-minmax-scalar-acc2.c",
+    "src/f32-dwconv/gen/up2x4-minmax-scalar.c",
+    "src/f32-dwconv/gen/up2x9-minmax-scalar-acc2.c",
+    "src/f32-dwconv/gen/up2x9-minmax-scalar.c",
     "src/f32-gavgpool-spchw/scalar-x1.c",
     "src/f32-gavgpool/7p7x-scalar-c1.c",
     "src/f32-gavgpool/7x-scalar-c1.c",
-    "src/f32-gemm/gen-inc/1x4-scalar.c",
-    "src/f32-gemm/gen-inc/2x4-scalar.c",
-    "src/f32-gemm/gen-inc/4x4-scalar.c",
-    "src/f32-gemm/gen/1x4-scalar.c",
-    "src/f32-gemm/gen/2x4-scalar.c",
-    "src/f32-gemm/gen/4x2-scalar.c",
-    "src/f32-gemm/gen/4x4-scalar.c",
+    "src/f32-gemm/gen-inc/1x4inc-minmax-scalar.c",
+    "src/f32-gemm/gen-inc/2x4inc-minmax-scalar.c",
+    "src/f32-gemm/gen-inc/4x4inc-minmax-scalar.c",
+    "src/f32-gemm/gen/1x4-minmax-scalar.c",
+    "src/f32-gemm/gen/2x4-minmax-scalar.c",
+    "src/f32-gemm/gen/4x2-minmax-scalar.c",
+    "src/f32-gemm/gen/4x4-minmax-scalar.c",
     "src/f32-hswish/gen/scalar-x1.c",
     "src/f32-hswish/gen/scalar-x2.c",
     "src/f32-hswish/gen/scalar-x4.c",
     "src/f32-ibilinear/gen/scalar-c1.c",
     "src/f32-ibilinear/gen/scalar-c2.c",
     "src/f32-ibilinear/gen/scalar-c4.c",
-    "src/f32-igemm/gen/1x4-scalar.c",
-    "src/f32-igemm/gen/2x4-scalar.c",
-    "src/f32-igemm/gen/4x2-scalar.c",
-    "src/f32-igemm/gen/4x4-scalar.c",
+    "src/f32-igemm/gen/1x4-minmax-scalar.c",
+    "src/f32-igemm/gen/2x4-minmax-scalar.c",
+    "src/f32-igemm/gen/4x2-minmax-scalar.c",
+    "src/f32-igemm/gen/4x4-minmax-scalar.c",
     "src/f32-maxpool/9p8x-scalar-c1.c",
     "src/f32-pavgpool/9p8x-scalar-c1.c",
     "src/f32-pavgpool/9x-scalar-c1.c",
-    "src/f32-ppmm/gen/2x4-scalar.c",
-    "src/f32-ppmm/gen/3x3-scalar.c",
-    "src/f32-ppmm/gen/4x2-scalar.c",
-    "src/f32-ppmm/gen/4x4-scalar.c",
+    "src/f32-ppmm/gen/2x4-minmax-scalar.c",
+    "src/f32-ppmm/gen/3x3-minmax-scalar.c",
+    "src/f32-ppmm/gen/4x2-minmax-scalar.c",
+    "src/f32-ppmm/gen/4x4-minmax-scalar.c",
     "src/f32-prelu/gen/scalar-2x1.c",
     "src/f32-prelu/gen/scalar-2x4.c",
     "src/f32-raddstoreexpminusmax/gen/scalar-lut64-p2-x1.c",
@@ -256,34 +256,34 @@
     "src/f32-clamp/gen/wasm-x1.c",
     "src/f32-clamp/gen/wasm-x2.c",
     "src/f32-clamp/gen/wasm-x4.c",
-    "src/f32-dwconv/gen/up1x25-wasm-acc2.c",
-    "src/f32-dwconv/gen/up1x25-wasm.c",
-    "src/f32-dwconv/gen/up1x4-wasm-acc2.c",
-    "src/f32-dwconv/gen/up1x4-wasm.c",
-    "src/f32-dwconv/gen/up1x9-wasm-acc2.c",
-    "src/f32-dwconv/gen/up1x9-wasm.c",
-    "src/f32-dwconv/gen/up2x25-wasm-acc2.c",
-    "src/f32-dwconv/gen/up2x25-wasm.c",
-    "src/f32-dwconv/gen/up2x4-wasm-acc2.c",
-    "src/f32-dwconv/gen/up2x4-wasm.c",
-    "src/f32-dwconv/gen/up2x9-wasm-acc2.c",
-    "src/f32-dwconv/gen/up2x9-wasm.c",
+    "src/f32-dwconv/gen/up1x25-minmax-wasm-acc2.c",
+    "src/f32-dwconv/gen/up1x25-minmax-wasm.c",
+    "src/f32-dwconv/gen/up1x4-minmax-wasm-acc2.c",
+    "src/f32-dwconv/gen/up1x4-minmax-wasm.c",
+    "src/f32-dwconv/gen/up1x9-minmax-wasm-acc2.c",
+    "src/f32-dwconv/gen/up1x9-minmax-wasm.c",
+    "src/f32-dwconv/gen/up2x25-minmax-wasm-acc2.c",
+    "src/f32-dwconv/gen/up2x25-minmax-wasm.c",
+    "src/f32-dwconv/gen/up2x4-minmax-wasm-acc2.c",
+    "src/f32-dwconv/gen/up2x4-minmax-wasm.c",
+    "src/f32-dwconv/gen/up2x9-minmax-wasm-acc2.c",
+    "src/f32-dwconv/gen/up2x9-minmax-wasm.c",
     "src/f32-gavgpool/7p7x-wasm-c1.c",
     "src/f32-gavgpool/7x-wasm-c1.c",
-    "src/f32-gemm/gen-inc/1x4-wasm.c",
-    "src/f32-gemm/gen-inc/2x4-wasm.c",
-    "src/f32-gemm/gen-inc/4x4-wasm.c",
-    "src/f32-gemm/gen/1x4-wasm.c",
-    "src/f32-gemm/gen/2x4-wasm.c",
-    "src/f32-gemm/gen/4x2-wasm.c",
-    "src/f32-gemm/gen/4x4-wasm.c",
+    "src/f32-gemm/gen-inc/1x4inc-minmax-wasm.c",
+    "src/f32-gemm/gen-inc/2x4inc-minmax-wasm.c",
+    "src/f32-gemm/gen-inc/4x4inc-minmax-wasm.c",
+    "src/f32-gemm/gen/1x4-minmax-wasm.c",
+    "src/f32-gemm/gen/2x4-minmax-wasm.c",
+    "src/f32-gemm/gen/4x2-minmax-wasm.c",
+    "src/f32-gemm/gen/4x4-minmax-wasm.c",
     "src/f32-hswish/gen/wasm-x1.c",
     "src/f32-hswish/gen/wasm-x2.c",
     "src/f32-hswish/gen/wasm-x4.c",
-    "src/f32-igemm/gen/1x4-wasm.c",
-    "src/f32-igemm/gen/2x4-wasm.c",
-    "src/f32-igemm/gen/4x2-wasm.c",
-    "src/f32-igemm/gen/4x4-wasm.c",
+    "src/f32-igemm/gen/1x4-minmax-wasm.c",
+    "src/f32-igemm/gen/2x4-minmax-wasm.c",
+    "src/f32-igemm/gen/4x2-minmax-wasm.c",
+    "src/f32-igemm/gen/4x4-minmax-wasm.c",
     "src/f32-maxpool/9p8x-wasm-c1.c",
     "src/f32-pavgpool/9p8x-wasm-c1.c",
     "src/f32-pavgpool/9x-wasm-c1.c",
@@ -342,57 +342,57 @@
     "src/f32-avgpool/9x-psimd-c4.c",
     "src/f32-clamp/gen/psimd-x4.c",
     "src/f32-clamp/gen/psimd-x8.c",
-    "src/f32-dwconv/gen/up4x25-psimd-acc2.c",
-    "src/f32-dwconv/gen/up4x25-psimd.c",
-    "src/f32-dwconv/gen/up4x4-psimd-acc2.c",
-    "src/f32-dwconv/gen/up4x4-psimd.c",
-    "src/f32-dwconv/gen/up4x9-psimd-acc2.c",
-    "src/f32-dwconv/gen/up4x9-psimd.c",
-    "src/f32-dwconv/gen/up8x25-psimd-acc2.c",
-    "src/f32-dwconv/gen/up8x25-psimd.c",
-    "src/f32-dwconv/gen/up8x4-psimd-acc2.c",
-    "src/f32-dwconv/gen/up8x4-psimd.c",
-    "src/f32-dwconv/gen/up8x9-psimd-acc2.c",
-    "src/f32-dwconv/gen/up8x9-psimd.c",
+    "src/f32-dwconv/gen/up4x25-minmax-psimd-acc2.c",
+    "src/f32-dwconv/gen/up4x25-minmax-psimd.c",
+    "src/f32-dwconv/gen/up4x4-minmax-psimd-acc2.c",
+    "src/f32-dwconv/gen/up4x4-minmax-psimd.c",
+    "src/f32-dwconv/gen/up4x9-minmax-psimd-acc2.c",
+    "src/f32-dwconv/gen/up4x9-minmax-psimd.c",
+    "src/f32-dwconv/gen/up8x25-minmax-psimd-acc2.c",
+    "src/f32-dwconv/gen/up8x25-minmax-psimd.c",
+    "src/f32-dwconv/gen/up8x4-minmax-psimd-acc2.c",
+    "src/f32-dwconv/gen/up8x4-minmax-psimd.c",
+    "src/f32-dwconv/gen/up8x9-minmax-psimd-acc2.c",
+    "src/f32-dwconv/gen/up8x9-minmax-psimd.c",
     "src/f32-gavgpool/7p7x-psimd-c4.c",
     "src/f32-gavgpool/7x-psimd-c4.c",
-    "src/f32-gemm/gen/1x8-psimd-loadsplat.c",
-    "src/f32-gemm/gen/1x8-psimd-splat.c",
-    "src/f32-gemm/gen/1x8s4-psimd.c",
-    "src/f32-gemm/gen/4x2c4-psimd.c",
-    "src/f32-gemm/gen/4x8-psimd-loadsplat.c",
-    "src/f32-gemm/gen/4x8-psimd-splat.c",
-    "src/f32-gemm/gen/4x8s4-psimd.c",
-    "src/f32-gemm/gen/6x8-psimd-loadsplat.c",
-    "src/f32-gemm/gen/6x8-psimd-splat.c",
-    "src/f32-gemm/gen/6x8s4-psimd.c",
-    "src/f32-gemm/gen-inc/1x8-psimd-loadsplat.c",
-    "src/f32-gemm/gen-inc/1x8-psimd-splat.c",
-    "src/f32-gemm/gen-inc/1x8s4-psimd.c",
-    "src/f32-gemm/gen-inc/4x8-psimd-loadsplat.c",
-    "src/f32-gemm/gen-inc/4x8-psimd-splat.c",
-    "src/f32-gemm/gen-inc/4x8s4-psimd.c",
-    "src/f32-gemm/gen-inc/6x8-psimd-loadsplat.c",
-    "src/f32-gemm/gen-inc/6x8-psimd-splat.c",
-    "src/f32-gemm/gen-inc/6x8s4-psimd.c",
+    "src/f32-gemm/gen/1x8-minmax-psimd-loadsplat.c",
+    "src/f32-gemm/gen/1x8-minmax-psimd-splat.c",
+    "src/f32-gemm/gen/1x8s4-minmax-psimd.c",
+    "src/f32-gemm/gen/4x2c4-minmax-psimd.c",
+    "src/f32-gemm/gen/4x8-minmax-psimd-loadsplat.c",
+    "src/f32-gemm/gen/4x8-minmax-psimd-splat.c",
+    "src/f32-gemm/gen/4x8s4-minmax-psimd.c",
+    "src/f32-gemm/gen/6x8-minmax-psimd-loadsplat.c",
+    "src/f32-gemm/gen/6x8-minmax-psimd-splat.c",
+    "src/f32-gemm/gen/6x8s4-minmax-psimd.c",
+    "src/f32-gemm/gen-inc/1x8inc-minmax-psimd-loadsplat.c",
+    "src/f32-gemm/gen-inc/1x8inc-minmax-psimd-splat.c",
+    "src/f32-gemm/gen-inc/1x8s4inc-minmax-psimd.c",
+    "src/f32-gemm/gen-inc/4x8inc-minmax-psimd-loadsplat.c",
+    "src/f32-gemm/gen-inc/4x8inc-minmax-psimd-splat.c",
+    "src/f32-gemm/gen-inc/4x8s4inc-minmax-psimd.c",
+    "src/f32-gemm/gen-inc/6x8inc-minmax-psimd-loadsplat.c",
+    "src/f32-gemm/gen-inc/6x8inc-minmax-psimd-splat.c",
+    "src/f32-gemm/gen-inc/6x8s4inc-minmax-psimd.c",
     "src/f32-hswish/gen/psimd-x4.c",
     "src/f32-hswish/gen/psimd-x8.c",
     "src/f32-ibilinear/gen/psimd-c4.c",
     "src/f32-ibilinear/gen/psimd-c8.c",
-    "src/f32-igemm/gen/1x8-psimd-loadsplat.c",
-    "src/f32-igemm/gen/1x8-psimd-splat.c",
-    "src/f32-igemm/gen/1x8s4-psimd.c",
-    "src/f32-igemm/gen/4x2c4-psimd.c",
-    "src/f32-igemm/gen/4x8-psimd-loadsplat.c",
-    "src/f32-igemm/gen/4x8-psimd-splat.c",
-    "src/f32-igemm/gen/4x8s4-psimd.c",
-    "src/f32-igemm/gen/6x8-psimd-loadsplat.c",
-    "src/f32-igemm/gen/6x8-psimd-splat.c",
-    "src/f32-igemm/gen/6x8s4-psimd.c",
+    "src/f32-igemm/gen/1x8-minmax-psimd-loadsplat.c",
+    "src/f32-igemm/gen/1x8-minmax-psimd-splat.c",
+    "src/f32-igemm/gen/1x8s4-minmax-psimd.c",
+    "src/f32-igemm/gen/4x2c4-minmax-psimd.c",
+    "src/f32-igemm/gen/4x8-minmax-psimd-loadsplat.c",
+    "src/f32-igemm/gen/4x8-minmax-psimd-splat.c",
+    "src/f32-igemm/gen/4x8s4-minmax-psimd.c",
+    "src/f32-igemm/gen/6x8-minmax-psimd-loadsplat.c",
+    "src/f32-igemm/gen/6x8-minmax-psimd-splat.c",
+    "src/f32-igemm/gen/6x8s4-minmax-psimd.c",
     "src/f32-maxpool/9p8x-psimd-c4.c",
     "src/f32-pavgpool/9p8x-psimd-c4.c",
     "src/f32-pavgpool/9x-psimd-c4.c",
-    "src/f32-ppmm/gen/4x8-psimd.c",
+    "src/f32-ppmm/gen/4x8-minmax-psimd.c",
     "src/f32-prelu/gen/psimd-2x4.c",
     "src/f32-prelu/gen/psimd-2x8.c",
     "src/f32-rmax/psimd.c",
@@ -465,69 +465,69 @@
     "src/f32-avgpool/9x-neon-c4.c",
     "src/f32-clamp/gen/neon-x4.c",
     "src/f32-clamp/gen/neon-x8.c",
-    "src/f32-dwconv/gen/up4x9-neon.c",
-    "src/f32-dwconv/gen/up4x9-neon-acc2.c",
-    "src/f32-dwconv/gen/up8x9-neon.c",
-    "src/f32-dwconv/gen/up8x9-neon-acc2.c",
+    "src/f32-dwconv/gen/up4x9-minmax-neon.c",
+    "src/f32-dwconv/gen/up4x9-minmax-neon-acc2.c",
+    "src/f32-dwconv/gen/up8x9-minmax-neon.c",
+    "src/f32-dwconv/gen/up8x9-minmax-neon-acc2.c",
     "src/f32-gavgpool-spchw/neon-x4.c",
     "src/f32-gavgpool/7p7x-neon-c4.c",
     "src/f32-gavgpool/7x-neon-c4.c",
-    "src/f32-gemm/gen/1x8-neon-lane-ld64.c",
-    "src/f32-gemm/gen/4x2-neon-lane-ld64.c",
-    "src/f32-gemm/gen/4x8-neon-lane-ld128.c",
-    "src/f32-gemm/gen/4x8-neon-lane-ld64.c",
-    "src/f32-gemm/gen/5x8-neon-lane-ld64.c",
-    "src/f32-gemm/gen/6x8-neon-lane-ld64.c",
-    "src/f32-gemm/gen/6x8-neon-lane-ld128.c",
-    "src/f32-gemm/gen/1x8-neon-dup-ld64.c",
-    "src/f32-gemm/gen/4x8-neon-dup-ld128.c",
-    "src/f32-gemm/gen/4x8-neon-dup-ld64.c",
-    "src/f32-gemm/gen/6x8-neon-dup-ld64.c",
-    "src/f32-gemm/gen/6x8-neon-dup-ld128.c",
-    "src/f32-gemm/gen/1x8s4-neon.c",
-    "src/f32-gemm/gen/4x8s4-neon.c",
-    "src/f32-gemm/gen/6x8s4-neon.c",
-    "src/f32-gemm/gen/8x8s4-neon.c",
-    "src/f32-gemm/gen-inc/1x8-neon-lane-ld64.c",
-    "src/f32-gemm/gen-inc/4x8-neon-lane-ld128.c",
-    "src/f32-gemm/gen-inc/4x8-neon-lane-ld64.c",
-    "src/f32-gemm/gen-inc/5x8-neon-lane-ld64.c",
-    "src/f32-gemm/gen-inc/6x8-neon-lane-ld64.c",
-    "src/f32-gemm/gen-inc/6x8-neon-lane-ld128.c",
-    "src/f32-gemm/gen-inc/1x8-neon-dup-ld64.c",
-    "src/f32-gemm/gen-inc/4x8-neon-dup-ld128.c",
-    "src/f32-gemm/gen-inc/4x8-neon-dup-ld64.c",
-    "src/f32-gemm/gen-inc/6x8-neon-dup-ld64.c",
-    "src/f32-gemm/gen-inc/6x8-neon-dup-ld128.c",
-    "src/f32-gemm/gen-inc/1x8s4-neon.c",
-    "src/f32-gemm/gen-inc/4x8s4-neon.c",
-    "src/f32-gemm/gen-inc/6x8s4-neon.c",
-    "src/f32-gemm/gen-inc/8x8s4-neon.c",
+    "src/f32-gemm/gen/1x8-minmax-neon-lane-ld64.c",
+    "src/f32-gemm/gen/4x2-minmax-neon-lane-ld64.c",
+    "src/f32-gemm/gen/4x8-minmax-neon-lane-ld128.c",
+    "src/f32-gemm/gen/4x8-minmax-neon-lane-ld64.c",
+    "src/f32-gemm/gen/5x8-minmax-neon-lane-ld64.c",
+    "src/f32-gemm/gen/6x8-minmax-neon-lane-ld64.c",
+    "src/f32-gemm/gen/6x8-minmax-neon-lane-ld128.c",
+    "src/f32-gemm/gen/1x8-minmax-neon-dup-ld64.c",
+    "src/f32-gemm/gen/4x8-minmax-neon-dup-ld128.c",
+    "src/f32-gemm/gen/4x8-minmax-neon-dup-ld64.c",
+    "src/f32-gemm/gen/6x8-minmax-neon-dup-ld64.c",
+    "src/f32-gemm/gen/6x8-minmax-neon-dup-ld128.c",
+    "src/f32-gemm/gen/1x8s4-minmax-neon.c",
+    "src/f32-gemm/gen/4x8s4-minmax-neon.c",
+    "src/f32-gemm/gen/6x8s4-minmax-neon.c",
+    "src/f32-gemm/gen/8x8s4-minmax-neon.c",
+    "src/f32-gemm/gen-inc/1x8inc-minmax-neon-lane-ld64.c",
+    "src/f32-gemm/gen-inc/4x8inc-minmax-neon-lane-ld128.c",
+    "src/f32-gemm/gen-inc/4x8inc-minmax-neon-lane-ld64.c",
+    "src/f32-gemm/gen-inc/5x8inc-minmax-neon-lane-ld64.c",
+    "src/f32-gemm/gen-inc/6x8inc-minmax-neon-lane-ld64.c",
+    "src/f32-gemm/gen-inc/6x8inc-minmax-neon-lane-ld128.c",
+    "src/f32-gemm/gen-inc/1x8inc-minmax-neon-dup-ld64.c",
+    "src/f32-gemm/gen-inc/4x8inc-minmax-neon-dup-ld128.c",
+    "src/f32-gemm/gen-inc/4x8inc-minmax-neon-dup-ld64.c",
+    "src/f32-gemm/gen-inc/6x8inc-minmax-neon-dup-ld64.c",
+    "src/f32-gemm/gen-inc/6x8inc-minmax-neon-dup-ld128.c",
+    "src/f32-gemm/gen-inc/1x8s4inc-minmax-neon.c",
+    "src/f32-gemm/gen-inc/4x8s4inc-minmax-neon.c",
+    "src/f32-gemm/gen-inc/6x8s4inc-minmax-neon.c",
+    "src/f32-gemm/gen-inc/8x8s4inc-minmax-neon.c",
     "src/f32-hswish/gen/neon-x4.c",
     "src/f32-hswish/gen/neon-x8.c",
     "src/f32-ibilinear/gen/neon-c4.c",
     "src/f32-ibilinear/gen/neon-c8.c",
-    "src/f32-igemm/gen/1x8-neon-lane-ld64.c",
-    "src/f32-igemm/gen/4x2-neon-lane-ld64.c",
-    "src/f32-igemm/gen/4x4-neon-lane-ld64.c",
-    "src/f32-igemm/gen/4x8-neon-lane-ld128.c",
-    "src/f32-igemm/gen/4x8-neon-lane-ld64.c",
-    "src/f32-igemm/gen/6x8-neon-lane-ld64.c",
-    "src/f32-igemm/gen/6x8-neon-lane-ld128.c",
-    "src/f32-igemm/gen/1x8-neon-dup-ld64.c",
-    "src/f32-igemm/gen/4x8-neon-dup-ld128.c",
-    "src/f32-igemm/gen/4x8-neon-dup-ld64.c",
-    "src/f32-igemm/gen/6x8-neon-dup-ld64.c",
-    "src/f32-igemm/gen/6x8-neon-dup-ld128.c",
-    "src/f32-igemm/gen/1x8s4-neon.c",
-    "src/f32-igemm/gen/4x8s4-neon.c",
-    "src/f32-igemm/gen/6x8s4-neon.c",
-    "src/f32-igemm/gen/8x8s4-neon.c",
+    "src/f32-igemm/gen/1x8-minmax-neon-lane-ld64.c",
+    "src/f32-igemm/gen/4x2-minmax-neon-lane-ld64.c",
+    "src/f32-igemm/gen/4x4-minmax-neon-lane-ld64.c",
+    "src/f32-igemm/gen/4x8-minmax-neon-lane-ld128.c",
+    "src/f32-igemm/gen/4x8-minmax-neon-lane-ld64.c",
+    "src/f32-igemm/gen/6x8-minmax-neon-lane-ld64.c",
+    "src/f32-igemm/gen/6x8-minmax-neon-lane-ld128.c",
+    "src/f32-igemm/gen/1x8-minmax-neon-dup-ld64.c",
+    "src/f32-igemm/gen/4x8-minmax-neon-dup-ld128.c",
+    "src/f32-igemm/gen/4x8-minmax-neon-dup-ld64.c",
+    "src/f32-igemm/gen/6x8-minmax-neon-dup-ld64.c",
+    "src/f32-igemm/gen/6x8-minmax-neon-dup-ld128.c",
+    "src/f32-igemm/gen/1x8s4-minmax-neon.c",
+    "src/f32-igemm/gen/4x8s4-minmax-neon.c",
+    "src/f32-igemm/gen/6x8s4-minmax-neon.c",
+    "src/f32-igemm/gen/8x8s4-minmax-neon.c",
     "src/f32-maxpool/9p8x-neon-c4.c",
     "src/f32-pavgpool/9p8x-neon-c4.c",
     "src/f32-pavgpool/9x-neon-c4.c",
-    "src/f32-ppmm/gen/4x8-neon.c",
-    "src/f32-ppmm/gen/8x8-neon.c",
+    "src/f32-ppmm/gen/4x8-minmax-neon.c",
+    "src/f32-ppmm/gen/8x8-minmax-neon.c",
     "src/f32-prelu/gen/neon-2x4.c",
     "src/f32-prelu/gen/neon-2x8.c",
     "src/f32-raddstoreexpminusmax/gen/neon-p5-x4.c",
@@ -637,41 +637,41 @@
 NEONFMA_UKERNELS = [
     "src/f32-ibilinear/gen/neonfma-c4.c",
     "src/f32-ibilinear/gen/neonfma-c8.c",
-    "src/f32-igemm/gen/1x8-neonfma-dup-ld64.c",
-    "src/f32-igemm/gen/4x8-neonfma-dup-ld128.c",
-    "src/f32-igemm/gen/4x8-neonfma-dup-ld64.c",
-    "src/f32-igemm/gen/6x8-neonfma-dup-ld64.c",
-    "src/f32-igemm/gen/6x8-neonfma-dup-ld128.c",
-    "src/f32-igemm/gen/1x8s4-neonfma.c",
-    "src/f32-igemm/gen/4x8s4-neonfma.c",
-    "src/f32-igemm/gen/6x8s4-neonfma.c",
-    "src/f32-igemm/gen/8x8s4-neonfma.c",
-    "src/f32-dwconv/gen/up4x9-neonfma.c",
-    "src/f32-dwconv/gen/up4x9-neonfma-acc2.c",
-    "src/f32-dwconv/gen/up8x9-neonfma.c",
-    "src/f32-dwconv/gen/up8x9-neonfma-acc2.c",
-    "src/f32-gemm/gen/1x8-neonfma-dup-ld64.c",
-    "src/f32-gemm/gen/4x8-neonfma-dup-ld128.c",
-    "src/f32-gemm/gen/4x8-neonfma-dup-ld64.c",
-    "src/f32-gemm/gen/6x8-neonfma-dup-ld64.c",
-    "src/f32-gemm/gen/6x8-neonfma-dup-ld128.c",
-    "src/f32-gemm/gen/1x8s4-neonfma.c",
-    "src/f32-gemm/gen/4x8s4-neonfma.c",
-    "src/f32-gemm/gen/6x8s4-neonfma.c",
-    "src/f32-gemm/gen/8x8s4-neonfma.c",
-    "src/f32-gemm/gen-inc/1x8-neonfma-dup-ld64.c",
-    "src/f32-gemm/gen-inc/4x8-neonfma-dup-ld128.c",
-    "src/f32-gemm/gen-inc/4x8-neonfma-dup-ld64.c",
-    "src/f32-gemm/gen-inc/6x8-neonfma-dup-ld64.c",
-    "src/f32-gemm/gen-inc/6x8-neonfma-dup-ld128.c",
-    "src/f32-gemm/gen-inc/1x8s4-neonfma.c",
-    "src/f32-gemm/gen-inc/4x8s4-neonfma.c",
-    "src/f32-gemm/gen-inc/6x8s4-neonfma.c",
-    "src/f32-gemm/gen-inc/8x8s4-neonfma.c",
+    "src/f32-igemm/gen/1x8-minmax-neonfma-dup-ld64.c",
+    "src/f32-igemm/gen/4x8-minmax-neonfma-dup-ld128.c",
+    "src/f32-igemm/gen/4x8-minmax-neonfma-dup-ld64.c",
+    "src/f32-igemm/gen/6x8-minmax-neonfma-dup-ld64.c",
+    "src/f32-igemm/gen/6x8-minmax-neonfma-dup-ld128.c",
+    "src/f32-igemm/gen/1x8s4-minmax-neonfma.c",
+    "src/f32-igemm/gen/4x8s4-minmax-neonfma.c",
+    "src/f32-igemm/gen/6x8s4-minmax-neonfma.c",
+    "src/f32-igemm/gen/8x8s4-minmax-neonfma.c",
+    "src/f32-dwconv/gen/up4x9-minmax-neonfma.c",
+    "src/f32-dwconv/gen/up4x9-minmax-neonfma-acc2.c",
+    "src/f32-dwconv/gen/up8x9-minmax-neonfma.c",
+    "src/f32-dwconv/gen/up8x9-minmax-neonfma-acc2.c",
+    "src/f32-gemm/gen/1x8-minmax-neonfma-dup-ld64.c",
+    "src/f32-gemm/gen/4x8-minmax-neonfma-dup-ld128.c",
+    "src/f32-gemm/gen/4x8-minmax-neonfma-dup-ld64.c",
+    "src/f32-gemm/gen/6x8-minmax-neonfma-dup-ld64.c",
+    "src/f32-gemm/gen/6x8-minmax-neonfma-dup-ld128.c",
+    "src/f32-gemm/gen/1x8s4-minmax-neonfma.c",
+    "src/f32-gemm/gen/4x8s4-minmax-neonfma.c",
+    "src/f32-gemm/gen/6x8s4-minmax-neonfma.c",
+    "src/f32-gemm/gen/8x8s4-minmax-neonfma.c",
+    "src/f32-gemm/gen-inc/1x8inc-minmax-neonfma-dup-ld64.c",
+    "src/f32-gemm/gen-inc/4x8inc-minmax-neonfma-dup-ld128.c",
+    "src/f32-gemm/gen-inc/4x8inc-minmax-neonfma-dup-ld64.c",
+    "src/f32-gemm/gen-inc/6x8inc-minmax-neonfma-dup-ld64.c",
+    "src/f32-gemm/gen-inc/6x8inc-minmax-neonfma-dup-ld128.c",
+    "src/f32-gemm/gen-inc/1x8s4inc-minmax-neonfma.c",
+    "src/f32-gemm/gen-inc/4x8s4inc-minmax-neonfma.c",
+    "src/f32-gemm/gen-inc/6x8s4inc-minmax-neonfma.c",
+    "src/f32-gemm/gen-inc/8x8s4inc-minmax-neonfma.c",
     "src/f32-hswish/gen/neonfma-x4.c",
     "src/f32-hswish/gen/neonfma-x8.c",
-    "src/f32-ppmm/gen/4x8-neonfma.c",
-    "src/f32-ppmm/gen/8x8-neonfma.c",
+    "src/f32-ppmm/gen/4x8-minmax-neonfma.c",
+    "src/f32-ppmm/gen/8x8-minmax-neonfma.c",
     "src/f32-raddstoreexpminusmax/gen/neonfma-p5-x4.c",
     "src/f32-raddstoreexpminusmax/gen/neonfma-p5-x8.c",
     "src/f32-raddstoreexpminusmax/gen/neonfma-p5-x8-acc2.c",
@@ -784,26 +784,26 @@
     "src/f32-vbinary/gen/vdivc-neon-x8.c",
     "src/f32-vbinary/gen/vrdivc-neon-x4.c",
     "src/f32-vbinary/gen/vrdivc-neon-x8.c",
-    "src/f32-gemm/gen/1x8-neonfma-lane-ld64.c",
-    "src/f32-gemm/gen/4x2-neonfma-lane-ld64.c",
-    "src/f32-gemm/gen/4x8-neonfma-lane-ld128.c",
-    "src/f32-gemm/gen/4x8-neonfma-lane-ld64.c",
-    "src/f32-gemm/gen/5x8-neonfma-lane-ld64.c",
-    "src/f32-gemm/gen/6x8-neonfma-lane-ld64.c",
-    "src/f32-gemm/gen/6x8-neonfma-lane-ld128.c",
-    "src/f32-gemm/gen-inc/1x8-neonfma-lane-ld64.c",
-    "src/f32-gemm/gen-inc/4x8-neonfma-lane-ld128.c",
-    "src/f32-gemm/gen-inc/4x8-neonfma-lane-ld64.c",
-    "src/f32-gemm/gen-inc/5x8-neonfma-lane-ld64.c",
-    "src/f32-gemm/gen-inc/6x8-neonfma-lane-ld64.c",
-    "src/f32-gemm/gen-inc/6x8-neonfma-lane-ld128.c",
-    "src/f32-igemm/gen/1x8-neonfma-lane-ld64.c",
-    "src/f32-igemm/gen/4x2-neonfma-lane-ld64.c",
-    "src/f32-igemm/gen/4x4-neonfma-lane-ld64.c",
-    "src/f32-igemm/gen/4x8-neonfma-lane-ld128.c",
-    "src/f32-igemm/gen/4x8-neonfma-lane-ld64.c",
-    "src/f32-igemm/gen/6x8-neonfma-lane-ld64.c",
-    "src/f32-igemm/gen/6x8-neonfma-lane-ld128.c",
+    "src/f32-gemm/gen/1x8-minmax-neonfma-lane-ld64.c",
+    "src/f32-gemm/gen/4x2-minmax-neonfma-lane-ld64.c",
+    "src/f32-gemm/gen/4x8-minmax-neonfma-lane-ld128.c",
+    "src/f32-gemm/gen/4x8-minmax-neonfma-lane-ld64.c",
+    "src/f32-gemm/gen/5x8-minmax-neonfma-lane-ld64.c",
+    "src/f32-gemm/gen/6x8-minmax-neonfma-lane-ld64.c",
+    "src/f32-gemm/gen/6x8-minmax-neonfma-lane-ld128.c",
+    "src/f32-gemm/gen-inc/1x8inc-minmax-neonfma-lane-ld64.c",
+    "src/f32-gemm/gen-inc/4x8inc-minmax-neonfma-lane-ld128.c",
+    "src/f32-gemm/gen-inc/4x8inc-minmax-neonfma-lane-ld64.c",
+    "src/f32-gemm/gen-inc/5x8inc-minmax-neonfma-lane-ld64.c",
+    "src/f32-gemm/gen-inc/6x8inc-minmax-neonfma-lane-ld64.c",
+    "src/f32-gemm/gen-inc/6x8inc-minmax-neonfma-lane-ld128.c",
+    "src/f32-igemm/gen/1x8-minmax-neonfma-lane-ld64.c",
+    "src/f32-igemm/gen/4x2-minmax-neonfma-lane-ld64.c",
+    "src/f32-igemm/gen/4x4-minmax-neonfma-lane-ld64.c",
+    "src/f32-igemm/gen/4x8-minmax-neonfma-lane-ld128.c",
+    "src/f32-igemm/gen/4x8-minmax-neonfma-lane-ld64.c",
+    "src/f32-igemm/gen/6x8-minmax-neonfma-lane-ld64.c",
+    "src/f32-igemm/gen/6x8-minmax-neonfma-lane-ld128.c",
     "src/f32-conv-hwc/3x3s2p1c3x4-neonfma-2x2.c",
     "src/f32-conv-hwc/3x3s2p1c3x8-neonfma-2x2.c",
     "src/f32-conv-hwc2spchw/3x3s2p1c3x4-neonfma-2x2.c",
@@ -876,49 +876,49 @@
     "src/f32-clamp/gen/sse-x8.c",
     "src/f32-dwconv-spchw/3x3p1-sse.c",
     "src/f32-dwconv-spchw/3x3s2p1-sse.c",
-    "src/f32-dwconv/gen/up4x25-sse-acc2.c",
-    "src/f32-dwconv/gen/up4x25-sse.c",
-    "src/f32-dwconv/gen/up4x4-sse-acc2.c",
-    "src/f32-dwconv/gen/up4x4-sse.c",
-    "src/f32-dwconv/gen/up4x9-sse-acc2.c",
-    "src/f32-dwconv/gen/up4x9-sse.c",
-    "src/f32-dwconv/gen/up8x25-sse-acc2.c",
-    "src/f32-dwconv/gen/up8x25-sse.c",
-    "src/f32-dwconv/gen/up8x4-sse-acc2.c",
-    "src/f32-dwconv/gen/up8x4-sse.c",
-    "src/f32-dwconv/gen/up8x9-sse-acc2.c",
-    "src/f32-dwconv/gen/up8x9-sse.c",
+    "src/f32-dwconv/gen/up4x25-minmax-sse-acc2.c",
+    "src/f32-dwconv/gen/up4x25-minmax-sse.c",
+    "src/f32-dwconv/gen/up4x4-minmax-sse-acc2.c",
+    "src/f32-dwconv/gen/up4x4-minmax-sse.c",
+    "src/f32-dwconv/gen/up4x9-minmax-sse-acc2.c",
+    "src/f32-dwconv/gen/up4x9-minmax-sse.c",
+    "src/f32-dwconv/gen/up8x25-minmax-sse-acc2.c",
+    "src/f32-dwconv/gen/up8x25-minmax-sse.c",
+    "src/f32-dwconv/gen/up8x4-minmax-sse-acc2.c",
+    "src/f32-dwconv/gen/up8x4-minmax-sse.c",
+    "src/f32-dwconv/gen/up8x9-minmax-sse-acc2.c",
+    "src/f32-dwconv/gen/up8x9-minmax-sse.c",
     "src/f32-gavgpool-spchw/sse-x4.c",
     "src/f32-gavgpool/7p7x-sse-c4.c",
     "src/f32-gavgpool/7x-sse-c4.c",
-    "src/f32-gemm/gen/1x8-sse-dup.c",
-    "src/f32-gemm/gen/1x8-sse-load1.c",
-    "src/f32-gemm/gen/1x8s4-sse.c",
-    "src/f32-gemm/gen/4x2c4-sse.c",
-    "src/f32-gemm/gen/4x8-sse-dup.c",
-    "src/f32-gemm/gen/4x8-sse-load1.c",
-    "src/f32-gemm/gen/4x8s4-sse.c",
-    "src/f32-gemm/gen-inc/1x8-sse-dup.c",
-    "src/f32-gemm/gen-inc/1x8-sse-load1.c",
-    "src/f32-gemm/gen-inc/1x8s4-sse.c",
-    "src/f32-gemm/gen-inc/4x8-sse-dup.c",
-    "src/f32-gemm/gen-inc/4x8-sse-load1.c",
-    "src/f32-gemm/gen-inc/4x8s4-sse.c",
+    "src/f32-gemm/gen/1x8-minmax-sse-dup.c",
+    "src/f32-gemm/gen/1x8-minmax-sse-load1.c",
+    "src/f32-gemm/gen/1x8s4-minmax-sse.c",
+    "src/f32-gemm/gen/4x2c4-minmax-sse.c",
+    "src/f32-gemm/gen/4x8-minmax-sse-dup.c",
+    "src/f32-gemm/gen/4x8-minmax-sse-load1.c",
+    "src/f32-gemm/gen/4x8s4-minmax-sse.c",
+    "src/f32-gemm/gen-inc/1x8inc-minmax-sse-dup.c",
+    "src/f32-gemm/gen-inc/1x8inc-minmax-sse-load1.c",
+    "src/f32-gemm/gen-inc/1x8s4inc-minmax-sse.c",
+    "src/f32-gemm/gen-inc/4x8inc-minmax-sse-dup.c",
+    "src/f32-gemm/gen-inc/4x8inc-minmax-sse-load1.c",
+    "src/f32-gemm/gen-inc/4x8s4inc-minmax-sse.c",
     "src/f32-hswish/gen/sse-x4.c",
     "src/f32-hswish/gen/sse-x8.c",
     "src/f32-ibilinear/gen/sse-c4.c",
     "src/f32-ibilinear/gen/sse-c8.c",
-    "src/f32-igemm/gen/1x8-sse-dup.c",
-    "src/f32-igemm/gen/1x8-sse-load1.c",
-    "src/f32-igemm/gen/1x8s4-sse.c",
-    "src/f32-igemm/gen/4x2c4-sse.c",
-    "src/f32-igemm/gen/4x8-sse-dup.c",
-    "src/f32-igemm/gen/4x8-sse-load1.c",
-    "src/f32-igemm/gen/4x8s4-sse.c",
+    "src/f32-igemm/gen/1x8-minmax-sse-dup.c",
+    "src/f32-igemm/gen/1x8-minmax-sse-load1.c",
+    "src/f32-igemm/gen/1x8s4-minmax-sse.c",
+    "src/f32-igemm/gen/4x2c4-minmax-sse.c",
+    "src/f32-igemm/gen/4x8-minmax-sse-dup.c",
+    "src/f32-igemm/gen/4x8-minmax-sse-load1.c",
+    "src/f32-igemm/gen/4x8s4-minmax-sse.c",
     "src/f32-maxpool/9p8x-sse-c4.c",
     "src/f32-pavgpool/9p8x-sse-c4.c",
     "src/f32-pavgpool/9x-sse-c4.c",
-    "src/f32-ppmm/gen/4x8-sse.c",
+    "src/f32-ppmm/gen/4x8-minmax-sse.c",
     "src/f32-rmax/sse.c",
     "src/f32-spmm/gen/4x1-sse.c",
     "src/f32-spmm/gen/8x1-sse.c",
@@ -1032,47 +1032,47 @@
 AVX_UKERNELS = [
     "src/f32-clamp/gen/avx-x8.c",
     "src/f32-clamp/gen/avx-x16.c",
-    "src/f32-dwconv/gen/up16x4-avx-acc2.c",
-    "src/f32-dwconv/gen/up16x4-avx.c",
-    "src/f32-dwconv/gen/up8x4-avx-acc2.c",
-    "src/f32-dwconv/gen/up8x4-avx.c",
-    "src/f32-dwconv/gen/up16x9-avx-acc2.c",
-    "src/f32-dwconv/gen/up16x9-avx.c",
-    "src/f32-dwconv/gen/up8x9-avx-acc2.c",
-    "src/f32-dwconv/gen/up8x9-avx.c",
-    "src/f32-dwconv/gen/up16x25-avx-acc2.c",
-    "src/f32-dwconv/gen/up16x25-avx.c",
-    "src/f32-dwconv/gen/up8x25-avx-acc2.c",
-    "src/f32-dwconv/gen/up8x25-avx.c",
-    "src/f32-gemm/gen/1x8-avx-broadcast.c",
-    "src/f32-gemm/gen/4x8-avx-broadcast.c",
-    "src/f32-gemm/gen/5x8-avx-broadcast.c",
-    "src/f32-gemm/gen/6x8-avx-broadcast.c",
-    "src/f32-gemm/gen/7x8-avx-broadcast.c",
-    "src/f32-gemm/gen/1x16-avx-broadcast.c",
-    "src/f32-gemm/gen/3x16-avx-broadcast.c",
-    "src/f32-gemm/gen/4x16-avx-broadcast.c",
-    "src/f32-gemm/gen/5x16-avx-broadcast.c",
-    "src/f32-gemm/gen-inc/1x8-avx-broadcast.c",
-    "src/f32-gemm/gen-inc/4x8-avx-broadcast.c",
-    "src/f32-gemm/gen-inc/5x8-avx-broadcast.c",
-    "src/f32-gemm/gen-inc/6x8-avx-broadcast.c",
-    "src/f32-gemm/gen-inc/7x8-avx-broadcast.c",
-    "src/f32-gemm/gen-inc/1x16-avx-broadcast.c",
-    "src/f32-gemm/gen-inc/3x16-avx-broadcast.c",
-    "src/f32-gemm/gen-inc/4x16-avx-broadcast.c",
-    "src/f32-gemm/gen-inc/5x16-avx-broadcast.c",
+    "src/f32-dwconv/gen/up16x4-minmax-avx-acc2.c",
+    "src/f32-dwconv/gen/up16x4-minmax-avx.c",
+    "src/f32-dwconv/gen/up8x4-minmax-avx-acc2.c",
+    "src/f32-dwconv/gen/up8x4-minmax-avx.c",
+    "src/f32-dwconv/gen/up16x9-minmax-avx-acc2.c",
+    "src/f32-dwconv/gen/up16x9-minmax-avx.c",
+    "src/f32-dwconv/gen/up8x9-minmax-avx-acc2.c",
+    "src/f32-dwconv/gen/up8x9-minmax-avx.c",
+    "src/f32-dwconv/gen/up16x25-minmax-avx-acc2.c",
+    "src/f32-dwconv/gen/up16x25-minmax-avx.c",
+    "src/f32-dwconv/gen/up8x25-minmax-avx-acc2.c",
+    "src/f32-dwconv/gen/up8x25-minmax-avx.c",
+    "src/f32-gemm/gen/1x8-minmax-avx-broadcast.c",
+    "src/f32-gemm/gen/4x8-minmax-avx-broadcast.c",
+    "src/f32-gemm/gen/5x8-minmax-avx-broadcast.c",
+    "src/f32-gemm/gen/6x8-minmax-avx-broadcast.c",
+    "src/f32-gemm/gen/7x8-minmax-avx-broadcast.c",
+    "src/f32-gemm/gen/1x16-minmax-avx-broadcast.c",
+    "src/f32-gemm/gen/3x16-minmax-avx-broadcast.c",
+    "src/f32-gemm/gen/4x16-minmax-avx-broadcast.c",
+    "src/f32-gemm/gen/5x16-minmax-avx-broadcast.c",
+    "src/f32-gemm/gen-inc/1x8inc-minmax-avx-broadcast.c",
+    "src/f32-gemm/gen-inc/4x8inc-minmax-avx-broadcast.c",
+    "src/f32-gemm/gen-inc/5x8inc-minmax-avx-broadcast.c",
+    "src/f32-gemm/gen-inc/6x8inc-minmax-avx-broadcast.c",
+    "src/f32-gemm/gen-inc/7x8inc-minmax-avx-broadcast.c",
+    "src/f32-gemm/gen-inc/1x16inc-minmax-avx-broadcast.c",
+    "src/f32-gemm/gen-inc/3x16inc-minmax-avx-broadcast.c",
+    "src/f32-gemm/gen-inc/4x16inc-minmax-avx-broadcast.c",
+    "src/f32-gemm/gen-inc/5x16inc-minmax-avx-broadcast.c",
     "src/f32-hswish/gen/avx-x8.c",
     "src/f32-hswish/gen/avx-x16.c",
-    "src/f32-igemm/gen/1x8-avx-broadcast.c",
-    "src/f32-igemm/gen/4x8-avx-broadcast.c",
-    "src/f32-igemm/gen/5x8-avx-broadcast.c",
-    "src/f32-igemm/gen/6x8-avx-broadcast.c",
-    "src/f32-igemm/gen/7x8-avx-broadcast.c",
-    "src/f32-igemm/gen/1x16-avx-broadcast.c",
-    "src/f32-igemm/gen/3x16-avx-broadcast.c",
-    "src/f32-igemm/gen/4x16-avx-broadcast.c",
-    "src/f32-igemm/gen/5x16-avx-broadcast.c",
+    "src/f32-igemm/gen/1x8-minmax-avx-broadcast.c",
+    "src/f32-igemm/gen/4x8-minmax-avx-broadcast.c",
+    "src/f32-igemm/gen/5x8-minmax-avx-broadcast.c",
+    "src/f32-igemm/gen/6x8-minmax-avx-broadcast.c",
+    "src/f32-igemm/gen/7x8-minmax-avx-broadcast.c",
+    "src/f32-igemm/gen/1x16-minmax-avx-broadcast.c",
+    "src/f32-igemm/gen/3x16-minmax-avx-broadcast.c",
+    "src/f32-igemm/gen/4x16-minmax-avx-broadcast.c",
+    "src/f32-igemm/gen/5x16-minmax-avx-broadcast.c",
     "src/f32-prelu/gen/avx-2x8.c",
     "src/f32-prelu/gen/avx-2x16.c",
     "src/f32-rmax/avx.c",
@@ -1108,62 +1108,62 @@
 ]
 
 FMA3_UKERNELS = [
-    "src/f32-dwconv/gen/up16x4-fma3-acc2.c",
-    "src/f32-dwconv/gen/up16x4-fma3.c",
-    "src/f32-dwconv/gen/up8x4-fma3-acc2.c",
-    "src/f32-dwconv/gen/up8x4-fma3.c",
-    "src/f32-dwconv/gen/up16x9-fma3-acc2.c",
-    "src/f32-dwconv/gen/up16x9-fma3.c",
-    "src/f32-dwconv/gen/up8x9-fma3-acc2.c",
-    "src/f32-dwconv/gen/up8x9-fma3.c",
-    "src/f32-dwconv/gen/up16x25-fma3-acc2.c",
-    "src/f32-dwconv/gen/up16x25-fma3.c",
-    "src/f32-dwconv/gen/up8x25-fma3-acc2.c",
-    "src/f32-dwconv/gen/up8x25-fma3.c",
-    "src/f32-gemm/gen/1x8-fma3-broadcast.c",
-    "src/f32-gemm/gen/4x8-fma3-broadcast.c",
-    "src/f32-gemm/gen/5x8-fma3-broadcast.c",
-    "src/f32-gemm/gen/6x8-fma3-broadcast.c",
-    "src/f32-gemm/gen/7x8-fma3-broadcast.c",
-    "src/f32-gemm/gen/8x8-fma3-broadcast.c",
-    "src/f32-gemm/gen/1x16-fma3-broadcast.c",
-    "src/f32-gemm/gen/3x16-fma3-broadcast.c",
-    "src/f32-gemm/gen/4x16-fma3-broadcast.c",
-    "src/f32-gemm/gen/5x16-fma3-broadcast.c",
-    "src/f32-gemm/gen/1x16s4-fma3-broadcast.c",
-    "src/f32-gemm/gen/3x16s4-fma3-broadcast.c",
-    "src/f32-gemm/gen/4x16s4-fma3-broadcast.c",
-    "src/f32-gemm/gen/5x16s4-fma3-broadcast.c",
-    "src/f32-gemm/gen-inc/1x8-fma3-broadcast.c",
-    "src/f32-gemm/gen-inc/4x8-fma3-broadcast.c",
-    "src/f32-gemm/gen-inc/5x8-fma3-broadcast.c",
-    "src/f32-gemm/gen-inc/6x8-fma3-broadcast.c",
-    "src/f32-gemm/gen-inc/7x8-fma3-broadcast.c",
-    "src/f32-gemm/gen-inc/8x8-fma3-broadcast.c",
-    "src/f32-gemm/gen-inc/1x16-fma3-broadcast.c",
-    "src/f32-gemm/gen-inc/3x16-fma3-broadcast.c",
-    "src/f32-gemm/gen-inc/4x16-fma3-broadcast.c",
-    "src/f32-gemm/gen-inc/5x16-fma3-broadcast.c",
-    "src/f32-gemm/gen-inc/1x16s4-fma3-broadcast.c",
-    "src/f32-gemm/gen-inc/3x16s4-fma3-broadcast.c",
-    "src/f32-gemm/gen-inc/4x16s4-fma3-broadcast.c",
-    "src/f32-gemm/gen-inc/5x16s4-fma3-broadcast.c",
+    "src/f32-dwconv/gen/up16x4-minmax-fma3-acc2.c",
+    "src/f32-dwconv/gen/up16x4-minmax-fma3.c",
+    "src/f32-dwconv/gen/up8x4-minmax-fma3-acc2.c",
+    "src/f32-dwconv/gen/up8x4-minmax-fma3.c",
+    "src/f32-dwconv/gen/up16x9-minmax-fma3-acc2.c",
+    "src/f32-dwconv/gen/up16x9-minmax-fma3.c",
+    "src/f32-dwconv/gen/up8x9-minmax-fma3-acc2.c",
+    "src/f32-dwconv/gen/up8x9-minmax-fma3.c",
+    "src/f32-dwconv/gen/up16x25-minmax-fma3-acc2.c",
+    "src/f32-dwconv/gen/up16x25-minmax-fma3.c",
+    "src/f32-dwconv/gen/up8x25-minmax-fma3-acc2.c",
+    "src/f32-dwconv/gen/up8x25-minmax-fma3.c",
+    "src/f32-gemm/gen/1x8-minmax-fma3-broadcast.c",
+    "src/f32-gemm/gen/4x8-minmax-fma3-broadcast.c",
+    "src/f32-gemm/gen/5x8-minmax-fma3-broadcast.c",
+    "src/f32-gemm/gen/6x8-minmax-fma3-broadcast.c",
+    "src/f32-gemm/gen/7x8-minmax-fma3-broadcast.c",
+    "src/f32-gemm/gen/8x8-minmax-fma3-broadcast.c",
+    "src/f32-gemm/gen/1x16-minmax-fma3-broadcast.c",
+    "src/f32-gemm/gen/3x16-minmax-fma3-broadcast.c",
+    "src/f32-gemm/gen/4x16-minmax-fma3-broadcast.c",
+    "src/f32-gemm/gen/5x16-minmax-fma3-broadcast.c",
+    "src/f32-gemm/gen/1x16s4-minmax-fma3-broadcast.c",
+    "src/f32-gemm/gen/3x16s4-minmax-fma3-broadcast.c",
+    "src/f32-gemm/gen/4x16s4-minmax-fma3-broadcast.c",
+    "src/f32-gemm/gen/5x16s4-minmax-fma3-broadcast.c",
+    "src/f32-gemm/gen-inc/1x8inc-minmax-fma3-broadcast.c",
+    "src/f32-gemm/gen-inc/4x8inc-minmax-fma3-broadcast.c",
+    "src/f32-gemm/gen-inc/5x8inc-minmax-fma3-broadcast.c",
+    "src/f32-gemm/gen-inc/6x8inc-minmax-fma3-broadcast.c",
+    "src/f32-gemm/gen-inc/7x8inc-minmax-fma3-broadcast.c",
+    "src/f32-gemm/gen-inc/8x8inc-minmax-fma3-broadcast.c",
+    "src/f32-gemm/gen-inc/1x16inc-minmax-fma3-broadcast.c",
+    "src/f32-gemm/gen-inc/3x16inc-minmax-fma3-broadcast.c",
+    "src/f32-gemm/gen-inc/4x16inc-minmax-fma3-broadcast.c",
+    "src/f32-gemm/gen-inc/5x16inc-minmax-fma3-broadcast.c",
+    "src/f32-gemm/gen-inc/1x16s4inc-minmax-fma3-broadcast.c",
+    "src/f32-gemm/gen-inc/3x16s4inc-minmax-fma3-broadcast.c",
+    "src/f32-gemm/gen-inc/4x16s4inc-minmax-fma3-broadcast.c",
+    "src/f32-gemm/gen-inc/5x16s4inc-minmax-fma3-broadcast.c",
     "src/f32-hswish/gen/fma3-x8.c",
     "src/f32-hswish/gen/fma3-x16.c",
-    "src/f32-igemm/gen/1x8-fma3-broadcast.c",
-    "src/f32-igemm/gen/4x8-fma3-broadcast.c",
-    "src/f32-igemm/gen/5x8-fma3-broadcast.c",
-    "src/f32-igemm/gen/6x8-fma3-broadcast.c",
-    "src/f32-igemm/gen/7x8-fma3-broadcast.c",
-    "src/f32-igemm/gen/8x8-fma3-broadcast.c",
-    "src/f32-igemm/gen/1x16-fma3-broadcast.c",
-    "src/f32-igemm/gen/3x16-fma3-broadcast.c",
-    "src/f32-igemm/gen/4x16-fma3-broadcast.c",
-    "src/f32-igemm/gen/5x16-fma3-broadcast.c",
-    "src/f32-igemm/gen/1x16s4-fma3-broadcast.c",
-    "src/f32-igemm/gen/3x16s4-fma3-broadcast.c",
-    "src/f32-igemm/gen/4x16s4-fma3-broadcast.c",
-    "src/f32-igemm/gen/5x16s4-fma3-broadcast.c",
+    "src/f32-igemm/gen/1x8-minmax-fma3-broadcast.c",
+    "src/f32-igemm/gen/4x8-minmax-fma3-broadcast.c",
+    "src/f32-igemm/gen/5x8-minmax-fma3-broadcast.c",
+    "src/f32-igemm/gen/6x8-minmax-fma3-broadcast.c",
+    "src/f32-igemm/gen/7x8-minmax-fma3-broadcast.c",
+    "src/f32-igemm/gen/8x8-minmax-fma3-broadcast.c",
+    "src/f32-igemm/gen/1x16-minmax-fma3-broadcast.c",
+    "src/f32-igemm/gen/3x16-minmax-fma3-broadcast.c",
+    "src/f32-igemm/gen/4x16-minmax-fma3-broadcast.c",
+    "src/f32-igemm/gen/5x16-minmax-fma3-broadcast.c",
+    "src/f32-igemm/gen/1x16s4-minmax-fma3-broadcast.c",
+    "src/f32-igemm/gen/3x16s4-minmax-fma3-broadcast.c",
+    "src/f32-igemm/gen/4x16s4-minmax-fma3-broadcast.c",
+    "src/f32-igemm/gen/5x16s4-minmax-fma3-broadcast.c",
 ]
 
 AVX2_UKERNELS = [
@@ -1273,38 +1273,38 @@
 AVX512F_UKERNELS = [
     "src/f32-clamp/gen/avx512f-x16.c",
     "src/f32-clamp/gen/avx512f-x32.c",
-    "src/f32-dwconv/gen/up32x4-avx512f-acc2.c",
-    "src/f32-dwconv/gen/up32x4-avx512f.c",
-    "src/f32-dwconv/gen/up16x4-avx512f-acc2.c",
-    "src/f32-dwconv/gen/up16x4-avx512f.c",
-    "src/f32-dwconv/gen/up32x9-avx512f-acc2.c",
-    "src/f32-dwconv/gen/up32x9-avx512f.c",
-    "src/f32-dwconv/gen/up16x9-avx512f-acc2.c",
-    "src/f32-dwconv/gen/up16x9-avx512f.c",
-    "src/f32-dwconv/gen/up32x25-avx512f-acc2.c",
-    "src/f32-dwconv/gen/up32x25-avx512f.c",
-    "src/f32-dwconv/gen/up16x25-avx512f-acc2.c",
-    "src/f32-dwconv/gen/up16x25-avx512f.c",
-    "src/f32-gemm/gen/1x16-avx512f-broadcast.c",
-    "src/f32-gemm/gen/4x16-avx512f-broadcast.c",
-    "src/f32-gemm/gen/5x16-avx512f-broadcast.c",
-    "src/f32-gemm/gen/6x16-avx512f-broadcast.c",
-    "src/f32-gemm/gen/7x16-avx512f-broadcast.c",
-    "src/f32-gemm/gen/8x16-avx512f-broadcast.c",
-    "src/f32-gemm/gen-inc/1x16-avx512f-broadcast.c",
-    "src/f32-gemm/gen-inc/4x16-avx512f-broadcast.c",
-    "src/f32-gemm/gen-inc/5x16-avx512f-broadcast.c",
-    "src/f32-gemm/gen-inc/6x16-avx512f-broadcast.c",
-    "src/f32-gemm/gen-inc/7x16-avx512f-broadcast.c",
-    "src/f32-gemm/gen-inc/8x16-avx512f-broadcast.c",
+    "src/f32-dwconv/gen/up32x4-minmax-avx512f-acc2.c",
+    "src/f32-dwconv/gen/up32x4-minmax-avx512f.c",
+    "src/f32-dwconv/gen/up16x4-minmax-avx512f-acc2.c",
+    "src/f32-dwconv/gen/up16x4-minmax-avx512f.c",
+    "src/f32-dwconv/gen/up32x9-minmax-avx512f-acc2.c",
+    "src/f32-dwconv/gen/up32x9-minmax-avx512f.c",
+    "src/f32-dwconv/gen/up16x9-minmax-avx512f-acc2.c",
+    "src/f32-dwconv/gen/up16x9-minmax-avx512f.c",
+    "src/f32-dwconv/gen/up32x25-minmax-avx512f-acc2.c",
+    "src/f32-dwconv/gen/up32x25-minmax-avx512f.c",
+    "src/f32-dwconv/gen/up16x25-minmax-avx512f-acc2.c",
+    "src/f32-dwconv/gen/up16x25-minmax-avx512f.c",
+    "src/f32-gemm/gen/1x16-minmax-avx512f-broadcast.c",
+    "src/f32-gemm/gen/4x16-minmax-avx512f-broadcast.c",
+    "src/f32-gemm/gen/5x16-minmax-avx512f-broadcast.c",
+    "src/f32-gemm/gen/6x16-minmax-avx512f-broadcast.c",
+    "src/f32-gemm/gen/7x16-minmax-avx512f-broadcast.c",
+    "src/f32-gemm/gen/8x16-minmax-avx512f-broadcast.c",
+    "src/f32-gemm/gen-inc/1x16inc-minmax-avx512f-broadcast.c",
+    "src/f32-gemm/gen-inc/4x16inc-minmax-avx512f-broadcast.c",
+    "src/f32-gemm/gen-inc/5x16inc-minmax-avx512f-broadcast.c",
+    "src/f32-gemm/gen-inc/6x16inc-minmax-avx512f-broadcast.c",
+    "src/f32-gemm/gen-inc/7x16inc-minmax-avx512f-broadcast.c",
+    "src/f32-gemm/gen-inc/8x16inc-minmax-avx512f-broadcast.c",
     "src/f32-hswish/gen/avx512f-x16.c",
     "src/f32-hswish/gen/avx512f-x32.c",
-    "src/f32-igemm/gen/1x16-avx512f-broadcast.c",
-    "src/f32-igemm/gen/4x16-avx512f-broadcast.c",
-    "src/f32-igemm/gen/5x16-avx512f-broadcast.c",
-    "src/f32-igemm/gen/6x16-avx512f-broadcast.c",
-    "src/f32-igemm/gen/7x16-avx512f-broadcast.c",
-    "src/f32-igemm/gen/8x16-avx512f-broadcast.c",
+    "src/f32-igemm/gen/1x16-minmax-avx512f-broadcast.c",
+    "src/f32-igemm/gen/4x16-minmax-avx512f-broadcast.c",
+    "src/f32-igemm/gen/5x16-minmax-avx512f-broadcast.c",
+    "src/f32-igemm/gen/6x16-minmax-avx512f-broadcast.c",
+    "src/f32-igemm/gen/7x16-minmax-avx512f-broadcast.c",
+    "src/f32-igemm/gen/8x16-minmax-avx512f-broadcast.c",
     "src/f32-prelu/gen/avx512f-2x16.c",
     "src/f32-prelu/gen/avx512f-2x32.c",
     "src/f32-raddexpminusmax/gen/avx512f-p5-scalef-x128.c",
@@ -1406,80 +1406,80 @@
 
 AARCH32_ASM_UKERNELS = [
     "src/q8-dwconv/up8x9-aarch32-neon.S",
-    "src/f32-gemm/4x8-aarch32-neon-cortex-a53.S",
-    "src/f32-gemm/4x8-aarch32-neon-cortex-a55.S",
-    "src/f32-gemm/gen/4x8-aarch32-neon-cortex-a75.S",
-    "src/f32-gemm/gen/4x8-aarch32-neon-pld-cortex-a75.S",
-    "src/f32-gemm/4x8-aarch32-neon-ld64.S",
-    "src/f32-igemm/4x8-aarch32-neon-ld64.S",
-    "src/f32-igemm/gen/4x8-aarch32-neon-cortex-a75.S",
-    "src/f32-igemm/gen/4x8-aarch32-neon-pld-cortex-a75.S",
-    "src/f32-igemm/4x8-aarch32-neon-cortex-a53.S",
-    "src/f32-igemm/4x8-aarch32-neon-cortex-a55.S",
+    "src/f32-gemm/4x8-minmax-aarch32-neon-cortex-a53.S",
+    "src/f32-gemm/4x8-minmax-aarch32-neon-cortex-a55.S",
+    "src/f32-gemm/gen/4x8-minmax-aarch32-neon-cortex-a75.S",
+    "src/f32-gemm/gen/4x8-minmax-aarch32-neon-pld-cortex-a75.S",
+    "src/f32-gemm/4x8-minmax-aarch32-neon-ld64.S",
+    "src/f32-igemm/4x8-minmax-aarch32-neon-ld64.S",
+    "src/f32-igemm/gen/4x8-minmax-aarch32-neon-cortex-a75.S",
+    "src/f32-igemm/gen/4x8-minmax-aarch32-neon-pld-cortex-a75.S",
+    "src/f32-igemm/4x8-minmax-aarch32-neon-cortex-a53.S",
+    "src/f32-igemm/4x8-minmax-aarch32-neon-cortex-a55.S",
 ]
 
 AARCH64_ASM_UKERNELS = [
-    "src/f32-dwconv/up4x9-aarch64-neonfma-cortex-a55.S",
-    "src/f32-dwconv/up4x9-aarch64-neonfma.S",
-    "src/f32-gemm/gen/1x12-aarch64-neonfma-cortex-a53.S",
-    "src/f32-gemm/gen/1x8-aarch64-neonfma-cortex-a53.S",
-    "src/f32-gemm/gen/1x8-aarch64-neonfma-cortex-a57.S",
-    "src/f32-gemm/gen/1x8-aarch64-neonfma-cortex-a75.S",
-    "src/f32-gemm/gen/4x12-aarch64-neonfma-cortex-a53.S",
-    "src/f32-gemm/gen/4x8-aarch64-neonfma-cortex-a53.S",
-    "src/f32-gemm/gen/4x8-aarch64-neonfma-cortex-a55.S",
-    "src/f32-gemm/gen/4x8-aarch64-neonfma-cortex-a57.S",
-    "src/f32-gemm/gen/4x8-aarch64-neonfma-cortex-a75.S",
-    "src/f32-gemm/gen/4x8-aarch64-neonfma-ld128.S",
-    "src/f32-gemm/gen/4x8-aarch64-neonfma-ld64.S",
-    "src/f32-gemm/gen/5x8-aarch64-neonfma-cortex-a57.S",
-    "src/f32-gemm/gen/5x8-aarch64-neonfma-cortex-a75.S",
-    "src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a53.S",
-    "src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a55.S",
-    "src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a73.S",
-    "src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a57.S",
-    "src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a75.S",
-    "src/f32-gemm/gen/6x8-aarch64-neonfma-ios.S",
-    "src/f32-gemm/gen/6x8-aarch64-neonfma-ld128.S",
-    "src/f32-gemm/gen/6x8-aarch64-neonfma-ld64.S",
-    "src/f32-gemm/gen-inc/1x12-aarch64-neonfma-cortex-a53.S",
-    "src/f32-gemm/gen-inc/1x8-aarch64-neonfma-cortex-a53.S",
-    "src/f32-gemm/gen-inc/1x8-aarch64-neonfma-cortex-a57.S",
-    "src/f32-gemm/gen-inc/1x8-aarch64-neonfma-cortex-a75.S",
-    "src/f32-gemm/gen-inc/4x12-aarch64-neonfma-cortex-a53.S",
-    "src/f32-gemm/gen-inc/4x8-aarch64-neonfma-cortex-a53.S",
-    "src/f32-gemm/gen-inc/4x8-aarch64-neonfma-cortex-a55.S",
-    "src/f32-gemm/gen-inc/4x8-aarch64-neonfma-cortex-a57.S",
-    "src/f32-gemm/gen-inc/4x8-aarch64-neonfma-cortex-a75.S",
-    "src/f32-gemm/gen-inc/4x8-aarch64-neonfma-ld128.S",
-    "src/f32-gemm/gen-inc/4x8-aarch64-neonfma-ld64.S",
-    "src/f32-gemm/gen-inc/5x8-aarch64-neonfma-cortex-a57.S",
-    "src/f32-gemm/gen-inc/5x8-aarch64-neonfma-cortex-a75.S",
-    "src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a53.S",
-    "src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a55.S",
-    "src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a73.S",
-    "src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a57.S",
-    "src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a75.S",
-    "src/f32-gemm/gen-inc/6x8-aarch64-neonfma-ios.S",
-    "src/f32-gemm/gen-inc/6x8-aarch64-neonfma-ld128.S",
-    "src/f32-gemm/gen-inc/6x8-aarch64-neonfma-ld64.S",
-    "src/f32-igemm/1x12-aarch64-neonfma-cortex-a53.S",
-    "src/f32-igemm/1x8-aarch64-neonfma-cortex-a53.S",
-    "src/f32-igemm/gen/1x8-aarch64-neonfma-cortex-a57.S",
-    "src/f32-igemm/gen/1x8-aarch64-neonfma-cortex-a75.S",
-    "src/f32-igemm/4x12-aarch64-neonfma-cortex-a53.S",
-    "src/f32-igemm/4x8-aarch64-neonfma-cortex-a53.S",
-    "src/f32-igemm/4x8-aarch64-neonfma-cortex-a55.S",
-    "src/f32-igemm/gen/4x8-aarch64-neonfma-cortex-a57.S",
-    "src/f32-igemm/gen/4x8-aarch64-neonfma-cortex-a75.S",
-    "src/f32-igemm/gen/5x8-aarch64-neonfma-cortex-a57.S",
-    "src/f32-igemm/gen/5x8-aarch64-neonfma-cortex-a75.S",
-    "src/f32-igemm/6x8-aarch64-neonfma-cortex-a53.S",
-    "src/f32-igemm/6x8-aarch64-neonfma-cortex-a55.S",
-    "src/f32-igemm/6x8-aarch64-neonfma-cortex-a73.S",
-    "src/f32-igemm/gen/6x8-aarch64-neonfma-cortex-a57.S",
-    "src/f32-igemm/gen/6x8-aarch64-neonfma-cortex-a75.S",
-    "src/f32-igemm/gen/6x8-aarch64-neonfma-ios.S",
+    "src/f32-dwconv/up4x9-minmax-aarch64-neonfma-cortex-a55.S",
+    "src/f32-dwconv/up4x9-minmax-aarch64-neonfma.S",
+    "src/f32-gemm/gen/1x12-minmax-aarch64-neonfma-cortex-a53.S",
+    "src/f32-gemm/gen/1x8-minmax-aarch64-neonfma-cortex-a53.S",
+    "src/f32-gemm/gen/1x8-minmax-aarch64-neonfma-cortex-a57.S",
+    "src/f32-gemm/gen/1x8-minmax-aarch64-neonfma-cortex-a75.S",
+    "src/f32-gemm/gen/4x12-minmax-aarch64-neonfma-cortex-a53.S",
+    "src/f32-gemm/gen/4x8-minmax-aarch64-neonfma-cortex-a53.S",
+    "src/f32-gemm/gen/4x8-minmax-aarch64-neonfma-cortex-a55.S",
+    "src/f32-gemm/gen/4x8-minmax-aarch64-neonfma-cortex-a57.S",
+    "src/f32-gemm/gen/4x8-minmax-aarch64-neonfma-cortex-a75.S",
+    "src/f32-gemm/gen/4x8-minmax-aarch64-neonfma-ld128.S",
+    "src/f32-gemm/gen/4x8-minmax-aarch64-neonfma-ld64.S",
+    "src/f32-gemm/gen/5x8-minmax-aarch64-neonfma-cortex-a57.S",
+    "src/f32-gemm/gen/5x8-minmax-aarch64-neonfma-cortex-a75.S",
+    "src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-cortex-a53.S",
+    "src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-cortex-a55.S",
+    "src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-cortex-a73.S",
+    "src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-cortex-a57.S",
+    "src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-cortex-a75.S",
+    "src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-ios.S",
+    "src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-ld128.S",
+    "src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-ld64.S",
+    "src/f32-gemm/gen-inc/1x12inc-minmax-aarch64-neonfma-cortex-a53.S",
+    "src/f32-gemm/gen-inc/1x8inc-minmax-aarch64-neonfma-cortex-a53.S",
+    "src/f32-gemm/gen-inc/1x8inc-minmax-aarch64-neonfma-cortex-a57.S",
+    "src/f32-gemm/gen-inc/1x8inc-minmax-aarch64-neonfma-cortex-a75.S",
+    "src/f32-gemm/gen-inc/4x12inc-minmax-aarch64-neonfma-cortex-a53.S",
+    "src/f32-gemm/gen-inc/4x8inc-minmax-aarch64-neonfma-cortex-a53.S",
+    "src/f32-gemm/gen-inc/4x8inc-minmax-aarch64-neonfma-cortex-a55.S",
+    "src/f32-gemm/gen-inc/4x8inc-minmax-aarch64-neonfma-cortex-a57.S",
+    "src/f32-gemm/gen-inc/4x8inc-minmax-aarch64-neonfma-cortex-a75.S",
+    "src/f32-gemm/gen-inc/4x8inc-minmax-aarch64-neonfma-ld128.S",
+    "src/f32-gemm/gen-inc/4x8inc-minmax-aarch64-neonfma-ld64.S",
+    "src/f32-gemm/gen-inc/5x8inc-minmax-aarch64-neonfma-cortex-a57.S",
+    "src/f32-gemm/gen-inc/5x8inc-minmax-aarch64-neonfma-cortex-a75.S",
+    "src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-cortex-a53.S",
+    "src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-cortex-a55.S",
+    "src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-cortex-a73.S",
+    "src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-cortex-a57.S",
+    "src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-cortex-a75.S",
+    "src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-ios.S",
+    "src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-ld128.S",
+    "src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-ld64.S",
+    "src/f32-igemm/1x12-minmax-aarch64-neonfma-cortex-a53.S",
+    "src/f32-igemm/1x8-minmax-aarch64-neonfma-cortex-a53.S",
+    "src/f32-igemm/gen/1x8-minmax-aarch64-neonfma-cortex-a57.S",
+    "src/f32-igemm/gen/1x8-minmax-aarch64-neonfma-cortex-a75.S",
+    "src/f32-igemm/4x12-minmax-aarch64-neonfma-cortex-a53.S",
+    "src/f32-igemm/4x8-minmax-aarch64-neonfma-cortex-a53.S",
+    "src/f32-igemm/4x8-minmax-aarch64-neonfma-cortex-a55.S",
+    "src/f32-igemm/gen/4x8-minmax-aarch64-neonfma-cortex-a57.S",
+    "src/f32-igemm/gen/4x8-minmax-aarch64-neonfma-cortex-a75.S",
+    "src/f32-igemm/gen/5x8-minmax-aarch64-neonfma-cortex-a57.S",
+    "src/f32-igemm/gen/5x8-minmax-aarch64-neonfma-cortex-a75.S",
+    "src/f32-igemm/6x8-minmax-aarch64-neonfma-cortex-a53.S",
+    "src/f32-igemm/6x8-minmax-aarch64-neonfma-cortex-a55.S",
+    "src/f32-igemm/6x8-minmax-aarch64-neonfma-cortex-a73.S",
+    "src/f32-igemm/gen/6x8-minmax-aarch64-neonfma-cortex-a57.S",
+    "src/f32-igemm/gen/6x8-minmax-aarch64-neonfma-cortex-a75.S",
+    "src/f32-igemm/gen/6x8-minmax-aarch64-neonfma-ios.S",
 ]
 
 INTERNAL_MICROKERNEL_HDRS = [
@@ -2471,9 +2471,9 @@
 )
 
 xnnpack_unit_test(
-    name = "f32_igemm_test",
+    name = "f32_igemm_minmax_test",
     srcs = [
-        "test/f32-igemm.cc",
+        "test/f32-igemm-minmax.cc",
         "test/gemm-microkernel-tester.h",
         "src/xnnpack/AlignedAllocator.h",
     ] + WEIGHTS_PACK_HDRS + MICROKERNEL_TEST_HDRS,
@@ -2501,9 +2501,9 @@
 )
 
 xnnpack_unit_test(
-    name = "f32_dwconv_test",
+    name = "f32_dwconv_minmax_test",
     srcs = [
-        "test/f32-dwconv.cc",
+        "test/f32-dwconv-minmax.cc",
         "test/dwconv-microkernel-tester.h",
         "src/xnnpack/AlignedAllocator.h",
     ] + WEIGHTS_PACK_HDRS + MICROKERNEL_TEST_HDRS,
@@ -2541,9 +2541,9 @@
 )
 
 xnnpack_unit_test(
-    name = "f32_gemm_test",
+    name = "f32_gemm_minmax_test",
     srcs = [
-        "test/f32-gemm.cc",
+        "test/f32-gemm-minmax.cc",
         "test/gemm-microkernel-tester.h",
         "src/xnnpack/AlignedAllocator.h",
     ] + WEIGHTS_PACK_HDRS + MICROKERNEL_TEST_HDRS,
@@ -2551,9 +2551,9 @@
 )
 
 xnnpack_unit_test(
-    name = "f32_gemminc_test",
+    name = "f32_gemminc_minmax_test",
     srcs = [
-        "test/f32-gemminc.cc",
+        "test/f32-gemminc-minmax.cc",
         "test/gemm-microkernel-tester.h",
         "src/xnnpack/AlignedAllocator.h",
     ] + WEIGHTS_PACK_HDRS + MICROKERNEL_TEST_HDRS,
@@ -2589,9 +2589,9 @@
 )
 
 xnnpack_unit_test(
-    name = "f32_ppmm_test",
+    name = "f32_ppmm_minmax_test",
     srcs = [
-        "test/f32-ppmm.cc",
+        "test/f32-ppmm-minmax.cc",
         "test/gemm-microkernel-tester.h",
         "src/xnnpack/AlignedAllocator.h",
     ] + WEIGHTS_PACK_HDRS + MICROKERNEL_TEST_HDRS,
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 372d2f6..58db338 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -193,45 +193,45 @@
   src/f32-dwconv-spchw/3x3s2p1-scalar.c
   src/f32-dwconv-spchw/5x5p2-scalar.c
   src/f32-dwconv-spchw/5x5s2p2-scalar.c
-  src/f32-dwconv/gen/up1x25-scalar-acc2.c
-  src/f32-dwconv/gen/up1x25-scalar.c
-  src/f32-dwconv/gen/up1x4-scalar-acc2.c
-  src/f32-dwconv/gen/up1x4-scalar.c
-  src/f32-dwconv/gen/up1x9-scalar-acc2.c
-  src/f32-dwconv/gen/up1x9-scalar.c
-  src/f32-dwconv/gen/up2x25-scalar-acc2.c
-  src/f32-dwconv/gen/up2x25-scalar.c
-  src/f32-dwconv/gen/up2x4-scalar-acc2.c
-  src/f32-dwconv/gen/up2x4-scalar.c
-  src/f32-dwconv/gen/up2x9-scalar-acc2.c
-  src/f32-dwconv/gen/up2x9-scalar.c
+  src/f32-dwconv/gen/up1x25-minmax-scalar-acc2.c
+  src/f32-dwconv/gen/up1x25-minmax-scalar.c
+  src/f32-dwconv/gen/up1x4-minmax-scalar-acc2.c
+  src/f32-dwconv/gen/up1x4-minmax-scalar.c
+  src/f32-dwconv/gen/up1x9-minmax-scalar-acc2.c
+  src/f32-dwconv/gen/up1x9-minmax-scalar.c
+  src/f32-dwconv/gen/up2x25-minmax-scalar-acc2.c
+  src/f32-dwconv/gen/up2x25-minmax-scalar.c
+  src/f32-dwconv/gen/up2x4-minmax-scalar-acc2.c
+  src/f32-dwconv/gen/up2x4-minmax-scalar.c
+  src/f32-dwconv/gen/up2x9-minmax-scalar-acc2.c
+  src/f32-dwconv/gen/up2x9-minmax-scalar.c
   src/f32-gavgpool-spchw/scalar-x1.c
   src/f32-gavgpool/7p7x-scalar-c1.c
   src/f32-gavgpool/7x-scalar-c1.c
-  src/f32-gemm/gen/1x4-scalar.c
-  src/f32-gemm/gen/2x4-scalar.c
-  src/f32-gemm/gen/4x2-scalar.c
-  src/f32-gemm/gen/4x4-scalar.c
-  src/f32-gemm/gen-inc/1x4-scalar.c
-  src/f32-gemm/gen-inc/2x4-scalar.c
-  src/f32-gemm/gen-inc/4x4-scalar.c
+  src/f32-gemm/gen/1x4-minmax-scalar.c
+  src/f32-gemm/gen/2x4-minmax-scalar.c
+  src/f32-gemm/gen/4x2-minmax-scalar.c
+  src/f32-gemm/gen/4x4-minmax-scalar.c
+  src/f32-gemm/gen-inc/1x4inc-minmax-scalar.c
+  src/f32-gemm/gen-inc/2x4inc-minmax-scalar.c
+  src/f32-gemm/gen-inc/4x4inc-minmax-scalar.c
   src/f32-hswish/gen/scalar-x1.c
   src/f32-hswish/gen/scalar-x2.c
   src/f32-hswish/gen/scalar-x4.c
   src/f32-ibilinear/gen/scalar-c1.c
   src/f32-ibilinear/gen/scalar-c2.c
   src/f32-ibilinear/gen/scalar-c4.c
-  src/f32-igemm/gen/1x4-scalar.c
-  src/f32-igemm/gen/2x4-scalar.c
-  src/f32-igemm/gen/4x2-scalar.c
-  src/f32-igemm/gen/4x4-scalar.c
+  src/f32-igemm/gen/1x4-minmax-scalar.c
+  src/f32-igemm/gen/2x4-minmax-scalar.c
+  src/f32-igemm/gen/4x2-minmax-scalar.c
+  src/f32-igemm/gen/4x4-minmax-scalar.c
   src/f32-maxpool/9p8x-scalar-c1.c
   src/f32-pavgpool/9p8x-scalar-c1.c
   src/f32-pavgpool/9x-scalar-c1.c
-  src/f32-ppmm/gen/2x4-scalar.c
-  src/f32-ppmm/gen/3x3-scalar.c
-  src/f32-ppmm/gen/4x2-scalar.c
-  src/f32-ppmm/gen/4x4-scalar.c
+  src/f32-ppmm/gen/2x4-minmax-scalar.c
+  src/f32-ppmm/gen/3x3-minmax-scalar.c
+  src/f32-ppmm/gen/4x2-minmax-scalar.c
+  src/f32-ppmm/gen/4x4-minmax-scalar.c
   src/f32-prelu/gen/scalar-2x1.c
   src/f32-prelu/gen/scalar-2x4.c
   src/f32-raddstoreexpminusmax/gen/scalar-lut64-p2-x1.c
@@ -356,57 +356,57 @@
   src/f32-avgpool/9x-psimd-c4.c
   src/f32-clamp/gen/psimd-x4.c
   src/f32-clamp/gen/psimd-x8.c
-  src/f32-dwconv/gen/up4x25-psimd-acc2.c
-  src/f32-dwconv/gen/up4x25-psimd.c
-  src/f32-dwconv/gen/up4x4-psimd-acc2.c
-  src/f32-dwconv/gen/up4x4-psimd.c
-  src/f32-dwconv/gen/up4x9-psimd-acc2.c
-  src/f32-dwconv/gen/up4x9-psimd.c
-  src/f32-dwconv/gen/up8x25-psimd-acc2.c
-  src/f32-dwconv/gen/up8x25-psimd.c
-  src/f32-dwconv/gen/up8x4-psimd-acc2.c
-  src/f32-dwconv/gen/up8x4-psimd.c
-  src/f32-dwconv/gen/up8x9-psimd-acc2.c
-  src/f32-dwconv/gen/up8x9-psimd.c
+  src/f32-dwconv/gen/up4x25-minmax-psimd-acc2.c
+  src/f32-dwconv/gen/up4x25-minmax-psimd.c
+  src/f32-dwconv/gen/up4x4-minmax-psimd-acc2.c
+  src/f32-dwconv/gen/up4x4-minmax-psimd.c
+  src/f32-dwconv/gen/up4x9-minmax-psimd-acc2.c
+  src/f32-dwconv/gen/up4x9-minmax-psimd.c
+  src/f32-dwconv/gen/up8x25-minmax-psimd-acc2.c
+  src/f32-dwconv/gen/up8x25-minmax-psimd.c
+  src/f32-dwconv/gen/up8x4-minmax-psimd-acc2.c
+  src/f32-dwconv/gen/up8x4-minmax-psimd.c
+  src/f32-dwconv/gen/up8x9-minmax-psimd-acc2.c
+  src/f32-dwconv/gen/up8x9-minmax-psimd.c
   src/f32-gavgpool/7p7x-psimd-c4.c
   src/f32-gavgpool/7x-psimd-c4.c
-  src/f32-gemm/gen/1x8-psimd-loadsplat.c
-  src/f32-gemm/gen/1x8-psimd-splat.c
-  src/f32-gemm/gen/1x8s4-psimd.c
-  src/f32-gemm/gen/4x2c4-psimd.c
-  src/f32-gemm/gen/4x8-psimd-loadsplat.c
-  src/f32-gemm/gen/4x8-psimd-splat.c
-  src/f32-gemm/gen/4x8s4-psimd.c
-  src/f32-gemm/gen/6x8-psimd-loadsplat.c
-  src/f32-gemm/gen/6x8-psimd-splat.c
-  src/f32-gemm/gen/6x8s4-psimd.c
-  src/f32-gemm/gen-inc/1x8-psimd-loadsplat.c
-  src/f32-gemm/gen-inc/1x8-psimd-splat.c
-  src/f32-gemm/gen-inc/1x8s4-psimd.c
-  src/f32-gemm/gen-inc/4x8-psimd-loadsplat.c
-  src/f32-gemm/gen-inc/4x8-psimd-splat.c
-  src/f32-gemm/gen-inc/4x8s4-psimd.c
-  src/f32-gemm/gen-inc/6x8-psimd-loadsplat.c
-  src/f32-gemm/gen-inc/6x8-psimd-splat.c
-  src/f32-gemm/gen-inc/6x8s4-psimd.c
+  src/f32-gemm/gen/1x8-minmax-psimd-loadsplat.c
+  src/f32-gemm/gen/1x8-minmax-psimd-splat.c
+  src/f32-gemm/gen/1x8s4-minmax-psimd.c
+  src/f32-gemm/gen/4x2c4-minmax-psimd.c
+  src/f32-gemm/gen/4x8-minmax-psimd-loadsplat.c
+  src/f32-gemm/gen/4x8-minmax-psimd-splat.c
+  src/f32-gemm/gen/4x8s4-minmax-psimd.c
+  src/f32-gemm/gen/6x8-minmax-psimd-loadsplat.c
+  src/f32-gemm/gen/6x8-minmax-psimd-splat.c
+  src/f32-gemm/gen/6x8s4-minmax-psimd.c
+  src/f32-gemm/gen-inc/1x8inc-minmax-psimd-loadsplat.c
+  src/f32-gemm/gen-inc/1x8inc-minmax-psimd-splat.c
+  src/f32-gemm/gen-inc/1x8s4inc-minmax-psimd.c
+  src/f32-gemm/gen-inc/4x8inc-minmax-psimd-loadsplat.c
+  src/f32-gemm/gen-inc/4x8inc-minmax-psimd-splat.c
+  src/f32-gemm/gen-inc/4x8s4inc-minmax-psimd.c
+  src/f32-gemm/gen-inc/6x8inc-minmax-psimd-loadsplat.c
+  src/f32-gemm/gen-inc/6x8inc-minmax-psimd-splat.c
+  src/f32-gemm/gen-inc/6x8s4inc-minmax-psimd.c
   src/f32-hswish/gen/psimd-x4.c
   src/f32-hswish/gen/psimd-x8.c
   src/f32-ibilinear/gen/psimd-c4.c
   src/f32-ibilinear/gen/psimd-c8.c
-  src/f32-igemm/gen/1x8-psimd-loadsplat.c
-  src/f32-igemm/gen/1x8-psimd-splat.c
-  src/f32-igemm/gen/1x8s4-psimd.c
-  src/f32-igemm/gen/4x2c4-psimd.c
-  src/f32-igemm/gen/4x8-psimd-loadsplat.c
-  src/f32-igemm/gen/4x8-psimd-splat.c
-  src/f32-igemm/gen/4x8s4-psimd.c
-  src/f32-igemm/gen/6x8-psimd-loadsplat.c
-  src/f32-igemm/gen/6x8-psimd-splat.c
-  src/f32-igemm/gen/6x8s4-psimd.c
+  src/f32-igemm/gen/1x8-minmax-psimd-loadsplat.c
+  src/f32-igemm/gen/1x8-minmax-psimd-splat.c
+  src/f32-igemm/gen/1x8s4-minmax-psimd.c
+  src/f32-igemm/gen/4x2c4-minmax-psimd.c
+  src/f32-igemm/gen/4x8-minmax-psimd-loadsplat.c
+  src/f32-igemm/gen/4x8-minmax-psimd-splat.c
+  src/f32-igemm/gen/4x8s4-minmax-psimd.c
+  src/f32-igemm/gen/6x8-minmax-psimd-loadsplat.c
+  src/f32-igemm/gen/6x8-minmax-psimd-splat.c
+  src/f32-igemm/gen/6x8s4-minmax-psimd.c
   src/f32-maxpool/9p8x-psimd-c4.c
   src/f32-pavgpool/9p8x-psimd-c4.c
   src/f32-pavgpool/9x-psimd-c4.c
-  src/f32-ppmm/gen/4x8-psimd.c
+  src/f32-ppmm/gen/4x8-minmax-psimd.c
   src/f32-prelu/gen/psimd-2x4.c
   src/f32-prelu/gen/psimd-2x8.c
   src/f32-rmax/psimd.c
@@ -476,69 +476,69 @@
   src/f32-avgpool/9x-neon-c4.c
   src/f32-clamp/gen/neon-x4.c
   src/f32-clamp/gen/neon-x8.c
-  src/f32-dwconv/gen/up4x9-neon.c
-  src/f32-dwconv/gen/up4x9-neon-acc2.c
-  src/f32-dwconv/gen/up8x9-neon.c
-  src/f32-dwconv/gen/up8x9-neon-acc2.c
+  src/f32-dwconv/gen/up4x9-minmax-neon.c
+  src/f32-dwconv/gen/up4x9-minmax-neon-acc2.c
+  src/f32-dwconv/gen/up8x9-minmax-neon.c
+  src/f32-dwconv/gen/up8x9-minmax-neon-acc2.c
   src/f32-gavgpool-spchw/neon-x4.c
   src/f32-gavgpool/7p7x-neon-c4.c
   src/f32-gavgpool/7x-neon-c4.c
-  src/f32-gemm/gen/1x8-neon-lane-ld64.c
-  src/f32-gemm/gen/4x2-neon-lane-ld64.c
-  src/f32-gemm/gen/4x8-neon-lane-ld128.c
-  src/f32-gemm/gen/4x8-neon-lane-ld64.c
-  src/f32-gemm/gen/5x8-neon-lane-ld64.c
-  src/f32-gemm/gen/6x8-neon-lane-ld64.c
-  src/f32-gemm/gen/6x8-neon-lane-ld128.c
-  src/f32-gemm/gen/1x8-neon-dup-ld64.c
-  src/f32-gemm/gen/4x8-neon-dup-ld128.c
-  src/f32-gemm/gen/4x8-neon-dup-ld64.c
-  src/f32-gemm/gen/6x8-neon-dup-ld64.c
-  src/f32-gemm/gen/6x8-neon-dup-ld128.c
-  src/f32-gemm/gen/1x8s4-neon.c
-  src/f32-gemm/gen/4x8s4-neon.c
-  src/f32-gemm/gen/6x8s4-neon.c
-  src/f32-gemm/gen/8x8s4-neon.c
-  src/f32-gemm/gen-inc/1x8-neon-lane-ld64.c
-  src/f32-gemm/gen-inc/4x8-neon-lane-ld128.c
-  src/f32-gemm/gen-inc/4x8-neon-lane-ld64.c
-  src/f32-gemm/gen-inc/5x8-neon-lane-ld64.c
-  src/f32-gemm/gen-inc/6x8-neon-lane-ld64.c
-  src/f32-gemm/gen-inc/6x8-neon-lane-ld128.c
-  src/f32-gemm/gen-inc/1x8-neon-dup-ld64.c
-  src/f32-gemm/gen-inc/4x8-neon-dup-ld128.c
-  src/f32-gemm/gen-inc/4x8-neon-dup-ld64.c
-  src/f32-gemm/gen-inc/6x8-neon-dup-ld64.c
-  src/f32-gemm/gen-inc/6x8-neon-dup-ld128.c
-  src/f32-gemm/gen-inc/1x8s4-neon.c
-  src/f32-gemm/gen-inc/4x8s4-neon.c
-  src/f32-gemm/gen-inc/6x8s4-neon.c
-  src/f32-gemm/gen-inc/8x8s4-neon.c
+  src/f32-gemm/gen/1x8-minmax-neon-lane-ld64.c
+  src/f32-gemm/gen/4x2-minmax-neon-lane-ld64.c
+  src/f32-gemm/gen/4x8-minmax-neon-lane-ld128.c
+  src/f32-gemm/gen/4x8-minmax-neon-lane-ld64.c
+  src/f32-gemm/gen/5x8-minmax-neon-lane-ld64.c
+  src/f32-gemm/gen/6x8-minmax-neon-lane-ld64.c
+  src/f32-gemm/gen/6x8-minmax-neon-lane-ld128.c
+  src/f32-gemm/gen/1x8-minmax-neon-dup-ld64.c
+  src/f32-gemm/gen/4x8-minmax-neon-dup-ld128.c
+  src/f32-gemm/gen/4x8-minmax-neon-dup-ld64.c
+  src/f32-gemm/gen/6x8-minmax-neon-dup-ld64.c
+  src/f32-gemm/gen/6x8-minmax-neon-dup-ld128.c
+  src/f32-gemm/gen/1x8s4-minmax-neon.c
+  src/f32-gemm/gen/4x8s4-minmax-neon.c
+  src/f32-gemm/gen/6x8s4-minmax-neon.c
+  src/f32-gemm/gen/8x8s4-minmax-neon.c
+  src/f32-gemm/gen-inc/1x8inc-minmax-neon-lane-ld64.c
+  src/f32-gemm/gen-inc/4x8inc-minmax-neon-lane-ld128.c
+  src/f32-gemm/gen-inc/4x8inc-minmax-neon-lane-ld64.c
+  src/f32-gemm/gen-inc/5x8inc-minmax-neon-lane-ld64.c
+  src/f32-gemm/gen-inc/6x8inc-minmax-neon-lane-ld64.c
+  src/f32-gemm/gen-inc/6x8inc-minmax-neon-lane-ld128.c
+  src/f32-gemm/gen-inc/1x8inc-minmax-neon-dup-ld64.c
+  src/f32-gemm/gen-inc/4x8inc-minmax-neon-dup-ld128.c
+  src/f32-gemm/gen-inc/4x8inc-minmax-neon-dup-ld64.c
+  src/f32-gemm/gen-inc/6x8inc-minmax-neon-dup-ld64.c
+  src/f32-gemm/gen-inc/6x8inc-minmax-neon-dup-ld128.c
+  src/f32-gemm/gen-inc/1x8s4inc-minmax-neon.c
+  src/f32-gemm/gen-inc/4x8s4inc-minmax-neon.c
+  src/f32-gemm/gen-inc/6x8s4inc-minmax-neon.c
+  src/f32-gemm/gen-inc/8x8s4inc-minmax-neon.c
   src/f32-hswish/gen/neon-x4.c
   src/f32-hswish/gen/neon-x8.c
   src/f32-ibilinear/gen/neon-c4.c
   src/f32-ibilinear/gen/neon-c8.c
-  src/f32-igemm/gen/1x8-neon-lane-ld64.c
-  src/f32-igemm/gen/4x2-neon-lane-ld64.c
-  src/f32-igemm/gen/4x4-neon-lane-ld64.c
-  src/f32-igemm/gen/4x8-neon-lane-ld128.c
-  src/f32-igemm/gen/4x8-neon-lane-ld64.c
-  src/f32-igemm/gen/6x8-neon-lane-ld64.c
-  src/f32-igemm/gen/6x8-neon-lane-ld128.c
-  src/f32-igemm/gen/1x8-neon-dup-ld64.c
-  src/f32-igemm/gen/4x8-neon-dup-ld128.c
-  src/f32-igemm/gen/4x8-neon-dup-ld64.c
-  src/f32-igemm/gen/6x8-neon-dup-ld64.c
-  src/f32-igemm/gen/6x8-neon-dup-ld128.c
-  src/f32-igemm/gen/1x8s4-neon.c
-  src/f32-igemm/gen/4x8s4-neon.c
-  src/f32-igemm/gen/6x8s4-neon.c
-  src/f32-igemm/gen/8x8s4-neon.c
+  src/f32-igemm/gen/1x8-minmax-neon-lane-ld64.c
+  src/f32-igemm/gen/4x2-minmax-neon-lane-ld64.c
+  src/f32-igemm/gen/4x4-minmax-neon-lane-ld64.c
+  src/f32-igemm/gen/4x8-minmax-neon-lane-ld128.c
+  src/f32-igemm/gen/4x8-minmax-neon-lane-ld64.c
+  src/f32-igemm/gen/6x8-minmax-neon-lane-ld64.c
+  src/f32-igemm/gen/6x8-minmax-neon-lane-ld128.c
+  src/f32-igemm/gen/1x8-minmax-neon-dup-ld64.c
+  src/f32-igemm/gen/4x8-minmax-neon-dup-ld128.c
+  src/f32-igemm/gen/4x8-minmax-neon-dup-ld64.c
+  src/f32-igemm/gen/6x8-minmax-neon-dup-ld64.c
+  src/f32-igemm/gen/6x8-minmax-neon-dup-ld128.c
+  src/f32-igemm/gen/1x8s4-minmax-neon.c
+  src/f32-igemm/gen/4x8s4-minmax-neon.c
+  src/f32-igemm/gen/6x8s4-minmax-neon.c
+  src/f32-igemm/gen/8x8s4-minmax-neon.c
   src/f32-maxpool/9p8x-neon-c4.c
   src/f32-pavgpool/9p8x-neon-c4.c
   src/f32-pavgpool/9x-neon-c4.c
-  src/f32-ppmm/gen/4x8-neon.c
-  src/f32-ppmm/gen/8x8-neon.c
+  src/f32-ppmm/gen/4x8-minmax-neon.c
+  src/f32-ppmm/gen/8x8-minmax-neon.c
   src/f32-prelu/gen/neon-2x4.c
   src/f32-prelu/gen/neon-2x8.c
   src/f32-raddstoreexpminusmax/gen/neon-p5-x4.c
@@ -647,41 +647,41 @@
 SET(XNNPACK_NEONFMA_MICROKERNEL_SRCS
   src/f32-ibilinear/gen/neonfma-c4.c
   src/f32-ibilinear/gen/neonfma-c8.c
-  src/f32-igemm/gen/1x8-neonfma-dup-ld64.c
-  src/f32-igemm/gen/4x8-neonfma-dup-ld128.c
-  src/f32-igemm/gen/4x8-neonfma-dup-ld64.c
-  src/f32-igemm/gen/6x8-neonfma-dup-ld64.c
-  src/f32-igemm/gen/6x8-neonfma-dup-ld128.c
-  src/f32-igemm/gen/1x8s4-neonfma.c
-  src/f32-igemm/gen/4x8s4-neonfma.c
-  src/f32-igemm/gen/6x8s4-neonfma.c
-  src/f32-igemm/gen/8x8s4-neonfma.c
-  src/f32-dwconv/gen/up4x9-neonfma.c
-  src/f32-dwconv/gen/up4x9-neonfma-acc2.c
-  src/f32-dwconv/gen/up8x9-neonfma.c
-  src/f32-dwconv/gen/up8x9-neonfma-acc2.c
-  src/f32-gemm/gen/1x8-neonfma-dup-ld64.c
-  src/f32-gemm/gen/4x8-neonfma-dup-ld128.c
-  src/f32-gemm/gen/4x8-neonfma-dup-ld64.c
-  src/f32-gemm/gen/6x8-neonfma-dup-ld64.c
-  src/f32-gemm/gen/6x8-neonfma-dup-ld128.c
-  src/f32-gemm/gen/1x8s4-neonfma.c
-  src/f32-gemm/gen/4x8s4-neonfma.c
-  src/f32-gemm/gen/6x8s4-neonfma.c
-  src/f32-gemm/gen/8x8s4-neonfma.c
-  src/f32-gemm/gen-inc/1x8-neonfma-dup-ld64.c
-  src/f32-gemm/gen-inc/4x8-neonfma-dup-ld128.c
-  src/f32-gemm/gen-inc/4x8-neonfma-dup-ld64.c
-  src/f32-gemm/gen-inc/6x8-neonfma-dup-ld64.c
-  src/f32-gemm/gen-inc/6x8-neonfma-dup-ld128.c
-  src/f32-gemm/gen-inc/1x8s4-neonfma.c
-  src/f32-gemm/gen-inc/4x8s4-neonfma.c
-  src/f32-gemm/gen-inc/6x8s4-neonfma.c
-  src/f32-gemm/gen-inc/8x8s4-neonfma.c
+  src/f32-igemm/gen/1x8-minmax-neonfma-dup-ld64.c
+  src/f32-igemm/gen/4x8-minmax-neonfma-dup-ld128.c
+  src/f32-igemm/gen/4x8-minmax-neonfma-dup-ld64.c
+  src/f32-igemm/gen/6x8-minmax-neonfma-dup-ld64.c
+  src/f32-igemm/gen/6x8-minmax-neonfma-dup-ld128.c
+  src/f32-igemm/gen/1x8s4-minmax-neonfma.c
+  src/f32-igemm/gen/4x8s4-minmax-neonfma.c
+  src/f32-igemm/gen/6x8s4-minmax-neonfma.c
+  src/f32-igemm/gen/8x8s4-minmax-neonfma.c
+  src/f32-dwconv/gen/up4x9-minmax-neonfma.c
+  src/f32-dwconv/gen/up4x9-minmax-neonfma-acc2.c
+  src/f32-dwconv/gen/up8x9-minmax-neonfma.c
+  src/f32-dwconv/gen/up8x9-minmax-neonfma-acc2.c
+  src/f32-gemm/gen/1x8-minmax-neonfma-dup-ld64.c
+  src/f32-gemm/gen/4x8-minmax-neonfma-dup-ld128.c
+  src/f32-gemm/gen/4x8-minmax-neonfma-dup-ld64.c
+  src/f32-gemm/gen/6x8-minmax-neonfma-dup-ld64.c
+  src/f32-gemm/gen/6x8-minmax-neonfma-dup-ld128.c
+  src/f32-gemm/gen/1x8s4-minmax-neonfma.c
+  src/f32-gemm/gen/4x8s4-minmax-neonfma.c
+  src/f32-gemm/gen/6x8s4-minmax-neonfma.c
+  src/f32-gemm/gen/8x8s4-minmax-neonfma.c
+  src/f32-gemm/gen-inc/1x8inc-minmax-neonfma-dup-ld64.c
+  src/f32-gemm/gen-inc/4x8inc-minmax-neonfma-dup-ld128.c
+  src/f32-gemm/gen-inc/4x8inc-minmax-neonfma-dup-ld64.c
+  src/f32-gemm/gen-inc/6x8inc-minmax-neonfma-dup-ld64.c
+  src/f32-gemm/gen-inc/6x8inc-minmax-neonfma-dup-ld128.c
+  src/f32-gemm/gen-inc/1x8s4inc-minmax-neonfma.c
+  src/f32-gemm/gen-inc/4x8s4inc-minmax-neonfma.c
+  src/f32-gemm/gen-inc/6x8s4inc-minmax-neonfma.c
+  src/f32-gemm/gen-inc/8x8s4inc-minmax-neonfma.c
   src/f32-hswish/gen/neonfma-x4.c
   src/f32-hswish/gen/neonfma-x8.c
-  src/f32-ppmm/gen/4x8-neonfma.c
-  src/f32-ppmm/gen/8x8-neonfma.c
+  src/f32-ppmm/gen/4x8-minmax-neonfma.c
+  src/f32-ppmm/gen/8x8-minmax-neonfma.c
   src/f32-raddstoreexpminusmax/gen/neonfma-p5-x4.c
   src/f32-raddstoreexpminusmax/gen/neonfma-p5-x8.c
   src/f32-raddstoreexpminusmax/gen/neonfma-p5-x8-acc2.c
@@ -793,26 +793,26 @@
   src/f32-vbinary/gen/vdivc-neon-x8.c
   src/f32-vbinary/gen/vrdivc-neon-x4.c
   src/f32-vbinary/gen/vrdivc-neon-x8.c
-  src/f32-gemm/gen/1x8-neonfma-lane-ld64.c
-  src/f32-gemm/gen/4x2-neonfma-lane-ld64.c
-  src/f32-gemm/gen/4x8-neonfma-lane-ld128.c
-  src/f32-gemm/gen/4x8-neonfma-lane-ld64.c
-  src/f32-gemm/gen/5x8-neonfma-lane-ld64.c
-  src/f32-gemm/gen/6x8-neonfma-lane-ld64.c
-  src/f32-gemm/gen/6x8-neonfma-lane-ld128.c
-  src/f32-gemm/gen-inc/1x8-neonfma-lane-ld64.c
-  src/f32-gemm/gen-inc/4x8-neonfma-lane-ld128.c
-  src/f32-gemm/gen-inc/4x8-neonfma-lane-ld64.c
-  src/f32-gemm/gen-inc/5x8-neonfma-lane-ld64.c
-  src/f32-gemm/gen-inc/6x8-neonfma-lane-ld64.c
-  src/f32-gemm/gen-inc/6x8-neonfma-lane-ld128.c
-  src/f32-igemm/gen/1x8-neonfma-lane-ld64.c
-  src/f32-igemm/gen/4x2-neonfma-lane-ld64.c
-  src/f32-igemm/gen/4x4-neonfma-lane-ld64.c
-  src/f32-igemm/gen/4x8-neonfma-lane-ld128.c
-  src/f32-igemm/gen/4x8-neonfma-lane-ld64.c
-  src/f32-igemm/gen/6x8-neonfma-lane-ld64.c
-  src/f32-igemm/gen/6x8-neonfma-lane-ld128.c
+  src/f32-gemm/gen/1x8-minmax-neonfma-lane-ld64.c
+  src/f32-gemm/gen/4x2-minmax-neonfma-lane-ld64.c
+  src/f32-gemm/gen/4x8-minmax-neonfma-lane-ld128.c
+  src/f32-gemm/gen/4x8-minmax-neonfma-lane-ld64.c
+  src/f32-gemm/gen/5x8-minmax-neonfma-lane-ld64.c
+  src/f32-gemm/gen/6x8-minmax-neonfma-lane-ld64.c
+  src/f32-gemm/gen/6x8-minmax-neonfma-lane-ld128.c
+  src/f32-gemm/gen-inc/1x8inc-minmax-neonfma-lane-ld64.c
+  src/f32-gemm/gen-inc/4x8inc-minmax-neonfma-lane-ld128.c
+  src/f32-gemm/gen-inc/4x8inc-minmax-neonfma-lane-ld64.c
+  src/f32-gemm/gen-inc/5x8inc-minmax-neonfma-lane-ld64.c
+  src/f32-gemm/gen-inc/6x8inc-minmax-neonfma-lane-ld64.c
+  src/f32-gemm/gen-inc/6x8inc-minmax-neonfma-lane-ld128.c
+  src/f32-igemm/gen/1x8-minmax-neonfma-lane-ld64.c
+  src/f32-igemm/gen/4x2-minmax-neonfma-lane-ld64.c
+  src/f32-igemm/gen/4x4-minmax-neonfma-lane-ld64.c
+  src/f32-igemm/gen/4x8-minmax-neonfma-lane-ld128.c
+  src/f32-igemm/gen/4x8-minmax-neonfma-lane-ld64.c
+  src/f32-igemm/gen/6x8-minmax-neonfma-lane-ld64.c
+  src/f32-igemm/gen/6x8-minmax-neonfma-lane-ld128.c
   src/f32-conv-hwc/3x3s2p1c3x4-neonfma-2x2.c
   src/f32-conv-hwc/3x3s2p1c3x8-neonfma-2x2.c
   src/f32-conv-hwc2spchw/3x3s2p1c3x4-neonfma-2x2.c
@@ -875,49 +875,49 @@
   src/f32-clamp/gen/sse-x8.c
   src/f32-dwconv-spchw/3x3p1-sse.c
   src/f32-dwconv-spchw/3x3s2p1-sse.c
-  src/f32-dwconv/gen/up4x25-sse-acc2.c
-  src/f32-dwconv/gen/up4x25-sse.c
-  src/f32-dwconv/gen/up4x4-sse-acc2.c
-  src/f32-dwconv/gen/up4x4-sse.c
-  src/f32-dwconv/gen/up4x9-sse-acc2.c
-  src/f32-dwconv/gen/up4x9-sse.c
-  src/f32-dwconv/gen/up8x25-sse-acc2.c
-  src/f32-dwconv/gen/up8x25-sse.c
-  src/f32-dwconv/gen/up8x4-sse-acc2.c
-  src/f32-dwconv/gen/up8x4-sse.c
-  src/f32-dwconv/gen/up8x9-sse-acc2.c
-  src/f32-dwconv/gen/up8x9-sse.c
+  src/f32-dwconv/gen/up4x25-minmax-sse-acc2.c
+  src/f32-dwconv/gen/up4x25-minmax-sse.c
+  src/f32-dwconv/gen/up4x4-minmax-sse-acc2.c
+  src/f32-dwconv/gen/up4x4-minmax-sse.c
+  src/f32-dwconv/gen/up4x9-minmax-sse-acc2.c
+  src/f32-dwconv/gen/up4x9-minmax-sse.c
+  src/f32-dwconv/gen/up8x25-minmax-sse-acc2.c
+  src/f32-dwconv/gen/up8x25-minmax-sse.c
+  src/f32-dwconv/gen/up8x4-minmax-sse-acc2.c
+  src/f32-dwconv/gen/up8x4-minmax-sse.c
+  src/f32-dwconv/gen/up8x9-minmax-sse-acc2.c
+  src/f32-dwconv/gen/up8x9-minmax-sse.c
   src/f32-gavgpool-spchw/sse-x4.c
   src/f32-gavgpool/7p7x-sse-c4.c
   src/f32-gavgpool/7x-sse-c4.c
-  src/f32-gemm/gen/1x8-sse-dup.c
-  src/f32-gemm/gen/1x8-sse-load1.c
-  src/f32-gemm/gen/1x8s4-sse.c
-  src/f32-gemm/gen/4x2c4-sse.c
-  src/f32-gemm/gen/4x8-sse-dup.c
-  src/f32-gemm/gen/4x8-sse-load1.c
-  src/f32-gemm/gen/4x8s4-sse.c
-  src/f32-gemm/gen-inc/1x8-sse-dup.c
-  src/f32-gemm/gen-inc/1x8-sse-load1.c
-  src/f32-gemm/gen-inc/1x8s4-sse.c
-  src/f32-gemm/gen-inc/4x8-sse-dup.c
-  src/f32-gemm/gen-inc/4x8-sse-load1.c
-  src/f32-gemm/gen-inc/4x8s4-sse.c
+  src/f32-gemm/gen/1x8-minmax-sse-dup.c
+  src/f32-gemm/gen/1x8-minmax-sse-load1.c
+  src/f32-gemm/gen/1x8s4-minmax-sse.c
+  src/f32-gemm/gen/4x2c4-minmax-sse.c
+  src/f32-gemm/gen/4x8-minmax-sse-dup.c
+  src/f32-gemm/gen/4x8-minmax-sse-load1.c
+  src/f32-gemm/gen/4x8s4-minmax-sse.c
+  src/f32-gemm/gen-inc/1x8inc-minmax-sse-dup.c
+  src/f32-gemm/gen-inc/1x8inc-minmax-sse-load1.c
+  src/f32-gemm/gen-inc/1x8s4inc-minmax-sse.c
+  src/f32-gemm/gen-inc/4x8inc-minmax-sse-dup.c
+  src/f32-gemm/gen-inc/4x8inc-minmax-sse-load1.c
+  src/f32-gemm/gen-inc/4x8s4inc-minmax-sse.c
   src/f32-hswish/gen/sse-x4.c
   src/f32-hswish/gen/sse-x8.c
   src/f32-ibilinear/gen/sse-c4.c
   src/f32-ibilinear/gen/sse-c8.c
-  src/f32-igemm/gen/1x8-sse-dup.c
-  src/f32-igemm/gen/1x8-sse-load1.c
-  src/f32-igemm/gen/1x8s4-sse.c
-  src/f32-igemm/gen/4x2c4-sse.c
-  src/f32-igemm/gen/4x8-sse-dup.c
-  src/f32-igemm/gen/4x8-sse-load1.c
-  src/f32-igemm/gen/4x8s4-sse.c
+  src/f32-igemm/gen/1x8-minmax-sse-dup.c
+  src/f32-igemm/gen/1x8-minmax-sse-load1.c
+  src/f32-igemm/gen/1x8s4-minmax-sse.c
+  src/f32-igemm/gen/4x2c4-minmax-sse.c
+  src/f32-igemm/gen/4x8-minmax-sse-dup.c
+  src/f32-igemm/gen/4x8-minmax-sse-load1.c
+  src/f32-igemm/gen/4x8s4-minmax-sse.c
   src/f32-maxpool/9p8x-sse-c4.c
   src/f32-pavgpool/9p8x-sse-c4.c
   src/f32-pavgpool/9x-sse-c4.c
-  src/f32-ppmm/gen/4x8-sse.c
+  src/f32-ppmm/gen/4x8-minmax-sse.c
   src/f32-rmax/sse.c
   src/f32-spmm/gen/4x1-sse.c
   src/f32-spmm/gen/8x1-sse.c
@@ -1027,47 +1027,47 @@
 SET(XNNPACK_AVX_MICROKERNEL_SRCS
   src/f32-clamp/gen/avx-x8.c
   src/f32-clamp/gen/avx-x16.c
-  src/f32-dwconv/gen/up16x4-avx-acc2.c
-  src/f32-dwconv/gen/up16x4-avx.c
-  src/f32-dwconv/gen/up8x4-avx-acc2.c
-  src/f32-dwconv/gen/up8x4-avx.c
-  src/f32-dwconv/gen/up16x9-avx-acc2.c
-  src/f32-dwconv/gen/up16x9-avx.c
-  src/f32-dwconv/gen/up8x9-avx-acc2.c
-  src/f32-dwconv/gen/up8x9-avx.c
-  src/f32-dwconv/gen/up16x25-avx-acc2.c
-  src/f32-dwconv/gen/up16x25-avx.c
-  src/f32-dwconv/gen/up8x25-avx-acc2.c
-  src/f32-dwconv/gen/up8x25-avx.c
-  src/f32-gemm/gen/1x8-avx-broadcast.c
-  src/f32-gemm/gen/4x8-avx-broadcast.c
-  src/f32-gemm/gen/5x8-avx-broadcast.c
-  src/f32-gemm/gen/6x8-avx-broadcast.c
-  src/f32-gemm/gen/7x8-avx-broadcast.c
-  src/f32-gemm/gen/1x16-avx-broadcast.c
-  src/f32-gemm/gen/3x16-avx-broadcast.c
-  src/f32-gemm/gen/4x16-avx-broadcast.c
-  src/f32-gemm/gen/5x16-avx-broadcast.c
-  src/f32-gemm/gen-inc/1x8-avx-broadcast.c
-  src/f32-gemm/gen-inc/4x8-avx-broadcast.c
-  src/f32-gemm/gen-inc/5x8-avx-broadcast.c
-  src/f32-gemm/gen-inc/6x8-avx-broadcast.c
-  src/f32-gemm/gen-inc/7x8-avx-broadcast.c
-  src/f32-gemm/gen-inc/1x16-avx-broadcast.c
-  src/f32-gemm/gen-inc/3x16-avx-broadcast.c
-  src/f32-gemm/gen-inc/4x16-avx-broadcast.c
-  src/f32-gemm/gen-inc/5x16-avx-broadcast.c
+  src/f32-dwconv/gen/up16x4-minmax-avx-acc2.c
+  src/f32-dwconv/gen/up16x4-minmax-avx.c
+  src/f32-dwconv/gen/up8x4-minmax-avx-acc2.c
+  src/f32-dwconv/gen/up8x4-minmax-avx.c
+  src/f32-dwconv/gen/up16x9-minmax-avx-acc2.c
+  src/f32-dwconv/gen/up16x9-minmax-avx.c
+  src/f32-dwconv/gen/up8x9-minmax-avx-acc2.c
+  src/f32-dwconv/gen/up8x9-minmax-avx.c
+  src/f32-dwconv/gen/up16x25-minmax-avx-acc2.c
+  src/f32-dwconv/gen/up16x25-minmax-avx.c
+  src/f32-dwconv/gen/up8x25-minmax-avx-acc2.c
+  src/f32-dwconv/gen/up8x25-minmax-avx.c
+  src/f32-gemm/gen/1x8-minmax-avx-broadcast.c
+  src/f32-gemm/gen/4x8-minmax-avx-broadcast.c
+  src/f32-gemm/gen/5x8-minmax-avx-broadcast.c
+  src/f32-gemm/gen/6x8-minmax-avx-broadcast.c
+  src/f32-gemm/gen/7x8-minmax-avx-broadcast.c
+  src/f32-gemm/gen/1x16-minmax-avx-broadcast.c
+  src/f32-gemm/gen/3x16-minmax-avx-broadcast.c
+  src/f32-gemm/gen/4x16-minmax-avx-broadcast.c
+  src/f32-gemm/gen/5x16-minmax-avx-broadcast.c
+  src/f32-gemm/gen-inc/1x8inc-minmax-avx-broadcast.c
+  src/f32-gemm/gen-inc/4x8inc-minmax-avx-broadcast.c
+  src/f32-gemm/gen-inc/5x8inc-minmax-avx-broadcast.c
+  src/f32-gemm/gen-inc/6x8inc-minmax-avx-broadcast.c
+  src/f32-gemm/gen-inc/7x8inc-minmax-avx-broadcast.c
+  src/f32-gemm/gen-inc/1x16inc-minmax-avx-broadcast.c
+  src/f32-gemm/gen-inc/3x16inc-minmax-avx-broadcast.c
+  src/f32-gemm/gen-inc/4x16inc-minmax-avx-broadcast.c
+  src/f32-gemm/gen-inc/5x16inc-minmax-avx-broadcast.c
   src/f32-hswish/gen/avx-x8.c
   src/f32-hswish/gen/avx-x16.c
-  src/f32-igemm/gen/1x8-avx-broadcast.c
-  src/f32-igemm/gen/4x8-avx-broadcast.c
-  src/f32-igemm/gen/5x8-avx-broadcast.c
-  src/f32-igemm/gen/6x8-avx-broadcast.c
-  src/f32-igemm/gen/7x8-avx-broadcast.c
-  src/f32-igemm/gen/1x16-avx-broadcast.c
-  src/f32-igemm/gen/3x16-avx-broadcast.c
-  src/f32-igemm/gen/4x16-avx-broadcast.c
-  src/f32-igemm/gen/5x16-avx-broadcast.c
+  src/f32-igemm/gen/1x8-minmax-avx-broadcast.c
+  src/f32-igemm/gen/4x8-minmax-avx-broadcast.c
+  src/f32-igemm/gen/5x8-minmax-avx-broadcast.c
+  src/f32-igemm/gen/6x8-minmax-avx-broadcast.c
+  src/f32-igemm/gen/7x8-minmax-avx-broadcast.c
+  src/f32-igemm/gen/1x16-minmax-avx-broadcast.c
+  src/f32-igemm/gen/3x16-minmax-avx-broadcast.c
+  src/f32-igemm/gen/4x16-minmax-avx-broadcast.c
+  src/f32-igemm/gen/5x16-minmax-avx-broadcast.c
   src/f32-prelu/gen/avx-2x8.c
   src/f32-prelu/gen/avx-2x16.c
   src/f32-rmax/avx.c
@@ -1102,62 +1102,62 @@
   src/f32-vscale/avx-unroll32.c)
 
 SET(XNNPACK_FMA3_MICROKERNEL_SRCS
-  src/f32-dwconv/gen/up16x4-fma3-acc2.c
-  src/f32-dwconv/gen/up16x4-fma3.c
-  src/f32-dwconv/gen/up8x4-fma3-acc2.c
-  src/f32-dwconv/gen/up8x4-fma3.c
-  src/f32-dwconv/gen/up16x9-fma3-acc2.c
-  src/f32-dwconv/gen/up16x9-fma3.c
-  src/f32-dwconv/gen/up8x9-fma3-acc2.c
-  src/f32-dwconv/gen/up8x9-fma3.c
-  src/f32-dwconv/gen/up16x25-fma3-acc2.c
-  src/f32-dwconv/gen/up16x25-fma3.c
-  src/f32-dwconv/gen/up8x25-fma3-acc2.c
-  src/f32-dwconv/gen/up8x25-fma3.c
-  src/f32-gemm/gen/1x8-fma3-broadcast.c
-  src/f32-gemm/gen/4x8-fma3-broadcast.c
-  src/f32-gemm/gen/5x8-fma3-broadcast.c
-  src/f32-gemm/gen/6x8-fma3-broadcast.c
-  src/f32-gemm/gen/7x8-fma3-broadcast.c
-  src/f32-gemm/gen/8x8-fma3-broadcast.c
-  src/f32-gemm/gen/1x16-fma3-broadcast.c
-  src/f32-gemm/gen/3x16-fma3-broadcast.c
-  src/f32-gemm/gen/4x16-fma3-broadcast.c
-  src/f32-gemm/gen/5x16-fma3-broadcast.c
-  src/f32-gemm/gen/1x16s4-fma3-broadcast.c
-  src/f32-gemm/gen/3x16s4-fma3-broadcast.c
-  src/f32-gemm/gen/4x16s4-fma3-broadcast.c
-  src/f32-gemm/gen/5x16s4-fma3-broadcast.c
-  src/f32-gemm/gen-inc/1x8-fma3-broadcast.c
-  src/f32-gemm/gen-inc/4x8-fma3-broadcast.c
-  src/f32-gemm/gen-inc/5x8-fma3-broadcast.c
-  src/f32-gemm/gen-inc/6x8-fma3-broadcast.c
-  src/f32-gemm/gen-inc/7x8-fma3-broadcast.c
-  src/f32-gemm/gen-inc/8x8-fma3-broadcast.c
-  src/f32-gemm/gen-inc/1x16-fma3-broadcast.c
-  src/f32-gemm/gen-inc/3x16-fma3-broadcast.c
-  src/f32-gemm/gen-inc/4x16-fma3-broadcast.c
-  src/f32-gemm/gen-inc/5x16-fma3-broadcast.c
-  src/f32-gemm/gen-inc/1x16s4-fma3-broadcast.c
-  src/f32-gemm/gen-inc/3x16s4-fma3-broadcast.c
-  src/f32-gemm/gen-inc/4x16s4-fma3-broadcast.c
-  src/f32-gemm/gen-inc/5x16s4-fma3-broadcast.c
+  src/f32-dwconv/gen/up16x4-minmax-fma3-acc2.c
+  src/f32-dwconv/gen/up16x4-minmax-fma3.c
+  src/f32-dwconv/gen/up8x4-minmax-fma3-acc2.c
+  src/f32-dwconv/gen/up8x4-minmax-fma3.c
+  src/f32-dwconv/gen/up16x9-minmax-fma3-acc2.c
+  src/f32-dwconv/gen/up16x9-minmax-fma3.c
+  src/f32-dwconv/gen/up8x9-minmax-fma3-acc2.c
+  src/f32-dwconv/gen/up8x9-minmax-fma3.c
+  src/f32-dwconv/gen/up16x25-minmax-fma3-acc2.c
+  src/f32-dwconv/gen/up16x25-minmax-fma3.c
+  src/f32-dwconv/gen/up8x25-minmax-fma3-acc2.c
+  src/f32-dwconv/gen/up8x25-minmax-fma3.c
+  src/f32-gemm/gen/1x8-minmax-fma3-broadcast.c
+  src/f32-gemm/gen/4x8-minmax-fma3-broadcast.c
+  src/f32-gemm/gen/5x8-minmax-fma3-broadcast.c
+  src/f32-gemm/gen/6x8-minmax-fma3-broadcast.c
+  src/f32-gemm/gen/7x8-minmax-fma3-broadcast.c
+  src/f32-gemm/gen/8x8-minmax-fma3-broadcast.c
+  src/f32-gemm/gen/1x16-minmax-fma3-broadcast.c
+  src/f32-gemm/gen/3x16-minmax-fma3-broadcast.c
+  src/f32-gemm/gen/4x16-minmax-fma3-broadcast.c
+  src/f32-gemm/gen/5x16-minmax-fma3-broadcast.c
+  src/f32-gemm/gen/1x16s4-minmax-fma3-broadcast.c
+  src/f32-gemm/gen/3x16s4-minmax-fma3-broadcast.c
+  src/f32-gemm/gen/4x16s4-minmax-fma3-broadcast.c
+  src/f32-gemm/gen/5x16s4-minmax-fma3-broadcast.c
+  src/f32-gemm/gen-inc/1x8inc-minmax-fma3-broadcast.c
+  src/f32-gemm/gen-inc/4x8inc-minmax-fma3-broadcast.c
+  src/f32-gemm/gen-inc/5x8inc-minmax-fma3-broadcast.c
+  src/f32-gemm/gen-inc/6x8inc-minmax-fma3-broadcast.c
+  src/f32-gemm/gen-inc/7x8inc-minmax-fma3-broadcast.c
+  src/f32-gemm/gen-inc/8x8inc-minmax-fma3-broadcast.c
+  src/f32-gemm/gen-inc/1x16inc-minmax-fma3-broadcast.c
+  src/f32-gemm/gen-inc/3x16inc-minmax-fma3-broadcast.c
+  src/f32-gemm/gen-inc/4x16inc-minmax-fma3-broadcast.c
+  src/f32-gemm/gen-inc/5x16inc-minmax-fma3-broadcast.c
+  src/f32-gemm/gen-inc/1x16s4inc-minmax-fma3-broadcast.c
+  src/f32-gemm/gen-inc/3x16s4inc-minmax-fma3-broadcast.c
+  src/f32-gemm/gen-inc/4x16s4inc-minmax-fma3-broadcast.c
+  src/f32-gemm/gen-inc/5x16s4inc-minmax-fma3-broadcast.c
   src/f32-hswish/gen/fma3-x8.c
   src/f32-hswish/gen/fma3-x16.c
-  src/f32-igemm/gen/1x8-fma3-broadcast.c
-  src/f32-igemm/gen/4x8-fma3-broadcast.c
-  src/f32-igemm/gen/5x8-fma3-broadcast.c
-  src/f32-igemm/gen/6x8-fma3-broadcast.c
-  src/f32-igemm/gen/7x8-fma3-broadcast.c
-  src/f32-igemm/gen/8x8-fma3-broadcast.c
-  src/f32-igemm/gen/1x16-fma3-broadcast.c
-  src/f32-igemm/gen/3x16-fma3-broadcast.c
-  src/f32-igemm/gen/4x16-fma3-broadcast.c
-  src/f32-igemm/gen/5x16-fma3-broadcast.c
-  src/f32-igemm/gen/1x16s4-fma3-broadcast.c
-  src/f32-igemm/gen/3x16s4-fma3-broadcast.c
-  src/f32-igemm/gen/4x16s4-fma3-broadcast.c
-  src/f32-igemm/gen/5x16s4-fma3-broadcast.c)
+  src/f32-igemm/gen/1x8-minmax-fma3-broadcast.c
+  src/f32-igemm/gen/4x8-minmax-fma3-broadcast.c
+  src/f32-igemm/gen/5x8-minmax-fma3-broadcast.c
+  src/f32-igemm/gen/6x8-minmax-fma3-broadcast.c
+  src/f32-igemm/gen/7x8-minmax-fma3-broadcast.c
+  src/f32-igemm/gen/8x8-minmax-fma3-broadcast.c
+  src/f32-igemm/gen/1x16-minmax-fma3-broadcast.c
+  src/f32-igemm/gen/3x16-minmax-fma3-broadcast.c
+  src/f32-igemm/gen/4x16-minmax-fma3-broadcast.c
+  src/f32-igemm/gen/5x16-minmax-fma3-broadcast.c
+  src/f32-igemm/gen/1x16s4-minmax-fma3-broadcast.c
+  src/f32-igemm/gen/3x16s4-minmax-fma3-broadcast.c
+  src/f32-igemm/gen/4x16s4-minmax-fma3-broadcast.c
+  src/f32-igemm/gen/5x16s4-minmax-fma3-broadcast.c)
 
 SET(XNNPACK_AVX2_MICROKERNEL_SRCS
   src/f32-raddexpminusmax/gen/avx2-p5-x64.c
@@ -1265,38 +1265,38 @@
 SET(XNNPACK_AVX512F_MICROKERNEL_SRCS
   src/f32-clamp/gen/avx512f-x16.c
   src/f32-clamp/gen/avx512f-x32.c
-  src/f32-dwconv/gen/up32x4-avx512f-acc2.c
-  src/f32-dwconv/gen/up32x4-avx512f.c
-  src/f32-dwconv/gen/up16x4-avx512f-acc2.c
-  src/f32-dwconv/gen/up16x4-avx512f.c
-  src/f32-dwconv/gen/up32x9-avx512f-acc2.c
-  src/f32-dwconv/gen/up32x9-avx512f.c
-  src/f32-dwconv/gen/up16x9-avx512f-acc2.c
-  src/f32-dwconv/gen/up16x9-avx512f.c
-  src/f32-dwconv/gen/up32x25-avx512f-acc2.c
-  src/f32-dwconv/gen/up32x25-avx512f.c
-  src/f32-dwconv/gen/up16x25-avx512f-acc2.c
-  src/f32-dwconv/gen/up16x25-avx512f.c
-  src/f32-gemm/gen/1x16-avx512f-broadcast.c
-  src/f32-gemm/gen/4x16-avx512f-broadcast.c
-  src/f32-gemm/gen/5x16-avx512f-broadcast.c
-  src/f32-gemm/gen/6x16-avx512f-broadcast.c
-  src/f32-gemm/gen/7x16-avx512f-broadcast.c
-  src/f32-gemm/gen/8x16-avx512f-broadcast.c
-  src/f32-gemm/gen-inc/1x16-avx512f-broadcast.c
-  src/f32-gemm/gen-inc/4x16-avx512f-broadcast.c
-  src/f32-gemm/gen-inc/5x16-avx512f-broadcast.c
-  src/f32-gemm/gen-inc/6x16-avx512f-broadcast.c
-  src/f32-gemm/gen-inc/7x16-avx512f-broadcast.c
-  src/f32-gemm/gen-inc/8x16-avx512f-broadcast.c
+  src/f32-dwconv/gen/up32x4-minmax-avx512f-acc2.c
+  src/f32-dwconv/gen/up32x4-minmax-avx512f.c
+  src/f32-dwconv/gen/up16x4-minmax-avx512f-acc2.c
+  src/f32-dwconv/gen/up16x4-minmax-avx512f.c
+  src/f32-dwconv/gen/up32x9-minmax-avx512f-acc2.c
+  src/f32-dwconv/gen/up32x9-minmax-avx512f.c
+  src/f32-dwconv/gen/up16x9-minmax-avx512f-acc2.c
+  src/f32-dwconv/gen/up16x9-minmax-avx512f.c
+  src/f32-dwconv/gen/up32x25-minmax-avx512f-acc2.c
+  src/f32-dwconv/gen/up32x25-minmax-avx512f.c
+  src/f32-dwconv/gen/up16x25-minmax-avx512f-acc2.c
+  src/f32-dwconv/gen/up16x25-minmax-avx512f.c
+  src/f32-gemm/gen/1x16-minmax-avx512f-broadcast.c
+  src/f32-gemm/gen/4x16-minmax-avx512f-broadcast.c
+  src/f32-gemm/gen/5x16-minmax-avx512f-broadcast.c
+  src/f32-gemm/gen/6x16-minmax-avx512f-broadcast.c
+  src/f32-gemm/gen/7x16-minmax-avx512f-broadcast.c
+  src/f32-gemm/gen/8x16-minmax-avx512f-broadcast.c
+  src/f32-gemm/gen-inc/1x16inc-minmax-avx512f-broadcast.c
+  src/f32-gemm/gen-inc/4x16inc-minmax-avx512f-broadcast.c
+  src/f32-gemm/gen-inc/5x16inc-minmax-avx512f-broadcast.c
+  src/f32-gemm/gen-inc/6x16inc-minmax-avx512f-broadcast.c
+  src/f32-gemm/gen-inc/7x16inc-minmax-avx512f-broadcast.c
+  src/f32-gemm/gen-inc/8x16inc-minmax-avx512f-broadcast.c
   src/f32-hswish/gen/avx512f-x16.c
   src/f32-hswish/gen/avx512f-x32.c
-  src/f32-igemm/gen/1x16-avx512f-broadcast.c
-  src/f32-igemm/gen/4x16-avx512f-broadcast.c
-  src/f32-igemm/gen/5x16-avx512f-broadcast.c
-  src/f32-igemm/gen/6x16-avx512f-broadcast.c
-  src/f32-igemm/gen/7x16-avx512f-broadcast.c
-  src/f32-igemm/gen/8x16-avx512f-broadcast.c
+  src/f32-igemm/gen/1x16-minmax-avx512f-broadcast.c
+  src/f32-igemm/gen/4x16-minmax-avx512f-broadcast.c
+  src/f32-igemm/gen/5x16-minmax-avx512f-broadcast.c
+  src/f32-igemm/gen/6x16-minmax-avx512f-broadcast.c
+  src/f32-igemm/gen/7x16-minmax-avx512f-broadcast.c
+  src/f32-igemm/gen/8x16-minmax-avx512f-broadcast.c
   src/f32-prelu/gen/avx512f-2x16.c
   src/f32-prelu/gen/avx512f-2x32.c
   src/f32-raddexpminusmax/gen/avx512f-p5-scalef-x128.c
@@ -1397,79 +1397,79 @@
 
 SET(XNNPACK_AARCH32_ASM_MICROKERNEL_SRCS
   src/q8-dwconv/up8x9-aarch32-neon.S
-  src/f32-gemm/4x8-aarch32-neon-cortex-a53.S
-  src/f32-gemm/4x8-aarch32-neon-cortex-a55.S
-  src/f32-gemm/gen/4x8-aarch32-neon-cortex-a75.S
-  src/f32-gemm/gen/4x8-aarch32-neon-pld-cortex-a75.S
-  src/f32-gemm/4x8-aarch32-neon-ld64.S
-  src/f32-igemm/4x8-aarch32-neon-ld64.S
-  src/f32-igemm/gen/4x8-aarch32-neon-cortex-a75.S
-  src/f32-igemm/gen/4x8-aarch32-neon-pld-cortex-a75.S
-  src/f32-igemm/4x8-aarch32-neon-cortex-a53.S
-  src/f32-igemm/4x8-aarch32-neon-cortex-a55.S)
+  src/f32-gemm/4x8-minmax-aarch32-neon-cortex-a53.S
+  src/f32-gemm/4x8-minmax-aarch32-neon-cortex-a55.S
+  src/f32-gemm/gen/4x8-minmax-aarch32-neon-cortex-a75.S
+  src/f32-gemm/gen/4x8-minmax-aarch32-neon-pld-cortex-a75.S
+  src/f32-gemm/4x8-minmax-aarch32-neon-ld64.S
+  src/f32-igemm/4x8-minmax-aarch32-neon-ld64.S
+  src/f32-igemm/gen/4x8-minmax-aarch32-neon-cortex-a75.S
+  src/f32-igemm/gen/4x8-minmax-aarch32-neon-pld-cortex-a75.S
+  src/f32-igemm/4x8-minmax-aarch32-neon-cortex-a53.S
+  src/f32-igemm/4x8-minmax-aarch32-neon-cortex-a55.S)
 
 SET(XNNPACK_AARCH64_ASM_MICROKERNEL_SRCS
-  src/f32-dwconv/up4x9-aarch64-neonfma-cortex-a55.S
-  src/f32-dwconv/up4x9-aarch64-neonfma.S
-  src/f32-gemm/gen/1x12-aarch64-neonfma-cortex-a53.S
-  src/f32-gemm/gen/1x8-aarch64-neonfma-cortex-a53.S
-  src/f32-gemm/gen/1x8-aarch64-neonfma-cortex-a57.S
-  src/f32-gemm/gen/1x8-aarch64-neonfma-cortex-a75.S
-  src/f32-gemm/gen/4x12-aarch64-neonfma-cortex-a53.S
-  src/f32-gemm/gen/4x8-aarch64-neonfma-cortex-a53.S
-  src/f32-gemm/gen/4x8-aarch64-neonfma-cortex-a55.S
-  src/f32-gemm/gen/4x8-aarch64-neonfma-cortex-a57.S
-  src/f32-gemm/gen/4x8-aarch64-neonfma-cortex-a75.S
-  src/f32-gemm/gen/4x8-aarch64-neonfma-ld128.S
-  src/f32-gemm/gen/4x8-aarch64-neonfma-ld64.S
-  src/f32-gemm/gen/5x8-aarch64-neonfma-cortex-a57.S
-  src/f32-gemm/gen/5x8-aarch64-neonfma-cortex-a75.S
-  src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a53.S
-  src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a55.S
-  src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a73.S
-  src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a57.S
-  src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a75.S
-  src/f32-gemm/gen/6x8-aarch64-neonfma-ios.S
-  src/f32-gemm/gen/6x8-aarch64-neonfma-ld128.S
-  src/f32-gemm/gen/6x8-aarch64-neonfma-ld64.S
-  src/f32-gemm/gen-inc/1x12-aarch64-neonfma-cortex-a53.S
-  src/f32-gemm/gen-inc/1x8-aarch64-neonfma-cortex-a53.S
-  src/f32-gemm/gen-inc/1x8-aarch64-neonfma-cortex-a57.S
-  src/f32-gemm/gen-inc/1x8-aarch64-neonfma-cortex-a75.S
-  src/f32-gemm/gen-inc/4x12-aarch64-neonfma-cortex-a53.S
-  src/f32-gemm/gen-inc/4x8-aarch64-neonfma-cortex-a53.S
-  src/f32-gemm/gen-inc/4x8-aarch64-neonfma-cortex-a55.S
-  src/f32-gemm/gen-inc/4x8-aarch64-neonfma-cortex-a57.S
-  src/f32-gemm/gen-inc/4x8-aarch64-neonfma-cortex-a75.S
-  src/f32-gemm/gen-inc/4x8-aarch64-neonfma-ld128.S
-  src/f32-gemm/gen-inc/4x8-aarch64-neonfma-ld64.S
-  src/f32-gemm/gen-inc/5x8-aarch64-neonfma-cortex-a57.S
-  src/f32-gemm/gen-inc/5x8-aarch64-neonfma-cortex-a75.S
-  src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a53.S
-  src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a55.S
-  src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a73.S
-  src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a57.S
-  src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a75.S
-  src/f32-gemm/gen-inc/6x8-aarch64-neonfma-ios.S
-  src/f32-gemm/gen-inc/6x8-aarch64-neonfma-ld128.S
-  src/f32-gemm/gen-inc/6x8-aarch64-neonfma-ld64.S
-  src/f32-igemm/1x12-aarch64-neonfma-cortex-a53.S
-  src/f32-igemm/1x8-aarch64-neonfma-cortex-a53.S
-  src/f32-igemm/gen/1x8-aarch64-neonfma-cortex-a57.S
-  src/f32-igemm/gen/1x8-aarch64-neonfma-cortex-a75.S
-  src/f32-igemm/4x8-aarch64-neonfma-cortex-a53.S
-  src/f32-igemm/4x8-aarch64-neonfma-cortex-a55.S
-  src/f32-igemm/4x12-aarch64-neonfma-cortex-a53.S
-  src/f32-igemm/gen/4x8-aarch64-neonfma-cortex-a57.S
-  src/f32-igemm/gen/4x8-aarch64-neonfma-cortex-a75.S
-  src/f32-igemm/gen/5x8-aarch64-neonfma-cortex-a57.S
-  src/f32-igemm/gen/5x8-aarch64-neonfma-cortex-a75.S
-  src/f32-igemm/6x8-aarch64-neonfma-cortex-a53.S
-  src/f32-igemm/6x8-aarch64-neonfma-cortex-a55.S
-  src/f32-igemm/6x8-aarch64-neonfma-cortex-a73.S
-  src/f32-igemm/gen/6x8-aarch64-neonfma-cortex-a57.S
-  src/f32-igemm/gen/6x8-aarch64-neonfma-cortex-a75.S
-  src/f32-igemm/gen/6x8-aarch64-neonfma-ios.S)
+  src/f32-dwconv/up4x9-minmax-aarch64-neonfma-cortex-a55.S
+  src/f32-dwconv/up4x9-minmax-aarch64-neonfma.S
+  src/f32-gemm/gen/1x12-minmax-aarch64-neonfma-cortex-a53.S
+  src/f32-gemm/gen/1x8-minmax-aarch64-neonfma-cortex-a53.S
+  src/f32-gemm/gen/1x8-minmax-aarch64-neonfma-cortex-a57.S
+  src/f32-gemm/gen/1x8-minmax-aarch64-neonfma-cortex-a75.S
+  src/f32-gemm/gen/4x12-minmax-aarch64-neonfma-cortex-a53.S
+  src/f32-gemm/gen/4x8-minmax-aarch64-neonfma-cortex-a53.S
+  src/f32-gemm/gen/4x8-minmax-aarch64-neonfma-cortex-a55.S
+  src/f32-gemm/gen/4x8-minmax-aarch64-neonfma-cortex-a57.S
+  src/f32-gemm/gen/4x8-minmax-aarch64-neonfma-cortex-a75.S
+  src/f32-gemm/gen/4x8-minmax-aarch64-neonfma-ld128.S
+  src/f32-gemm/gen/4x8-minmax-aarch64-neonfma-ld64.S
+  src/f32-gemm/gen/5x8-minmax-aarch64-neonfma-cortex-a57.S
+  src/f32-gemm/gen/5x8-minmax-aarch64-neonfma-cortex-a75.S
+  src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-cortex-a53.S
+  src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-cortex-a55.S
+  src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-cortex-a73.S
+  src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-cortex-a57.S
+  src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-cortex-a75.S
+  src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-ios.S
+  src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-ld128.S
+  src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-ld64.S
+  src/f32-gemm/gen-inc/1x12inc-minmax-aarch64-neonfma-cortex-a53.S
+  src/f32-gemm/gen-inc/1x8inc-minmax-aarch64-neonfma-cortex-a53.S
+  src/f32-gemm/gen-inc/1x8inc-minmax-aarch64-neonfma-cortex-a57.S
+  src/f32-gemm/gen-inc/1x8inc-minmax-aarch64-neonfma-cortex-a75.S
+  src/f32-gemm/gen-inc/4x12inc-minmax-aarch64-neonfma-cortex-a53.S
+  src/f32-gemm/gen-inc/4x8inc-minmax-aarch64-neonfma-cortex-a53.S
+  src/f32-gemm/gen-inc/4x8inc-minmax-aarch64-neonfma-cortex-a55.S
+  src/f32-gemm/gen-inc/4x8inc-minmax-aarch64-neonfma-cortex-a57.S
+  src/f32-gemm/gen-inc/4x8inc-minmax-aarch64-neonfma-cortex-a75.S
+  src/f32-gemm/gen-inc/4x8inc-minmax-aarch64-neonfma-ld128.S
+  src/f32-gemm/gen-inc/4x8inc-minmax-aarch64-neonfma-ld64.S
+  src/f32-gemm/gen-inc/5x8inc-minmax-aarch64-neonfma-cortex-a57.S
+  src/f32-gemm/gen-inc/5x8inc-minmax-aarch64-neonfma-cortex-a75.S
+  src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-cortex-a53.S
+  src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-cortex-a55.S
+  src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-cortex-a73.S
+  src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-cortex-a57.S
+  src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-cortex-a75.S
+  src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-ios.S
+  src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-ld128.S
+  src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-ld64.S
+  src/f32-igemm/1x12-minmax-aarch64-neonfma-cortex-a53.S
+  src/f32-igemm/1x8-minmax-aarch64-neonfma-cortex-a53.S
+  src/f32-igemm/gen/1x8-minmax-aarch64-neonfma-cortex-a57.S
+  src/f32-igemm/gen/1x8-minmax-aarch64-neonfma-cortex-a75.S
+  src/f32-igemm/4x8-minmax-aarch64-neonfma-cortex-a53.S
+  src/f32-igemm/4x8-minmax-aarch64-neonfma-cortex-a55.S
+  src/f32-igemm/4x12-minmax-aarch64-neonfma-cortex-a53.S
+  src/f32-igemm/gen/4x8-minmax-aarch64-neonfma-cortex-a57.S
+  src/f32-igemm/gen/4x8-minmax-aarch64-neonfma-cortex-a75.S
+  src/f32-igemm/gen/5x8-minmax-aarch64-neonfma-cortex-a57.S
+  src/f32-igemm/gen/5x8-minmax-aarch64-neonfma-cortex-a75.S
+  src/f32-igemm/6x8-minmax-aarch64-neonfma-cortex-a53.S
+  src/f32-igemm/6x8-minmax-aarch64-neonfma-cortex-a55.S
+  src/f32-igemm/6x8-minmax-aarch64-neonfma-cortex-a73.S
+  src/f32-igemm/gen/6x8-minmax-aarch64-neonfma-cortex-a57.S
+  src/f32-igemm/gen/6x8-minmax-aarch64-neonfma-cortex-a75.S
+  src/f32-igemm/gen/6x8-minmax-aarch64-neonfma-ios.S)
 
 SET(XNNPACK_MICROKERNEL_SRCS ${XNNPACK_SCALAR_MICROKERNEL_SRCS})
 IF(NOT CMAKE_SYSTEM_NAME STREQUAL "Emscripten")
@@ -1954,14 +1954,14 @@
   TARGET_LINK_LIBRARIES(f32-dwconv-spchw-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main)
   ADD_TEST(f32-dwconv-spchw-test f32-dwconv-spchw-test)
 
-  ADD_EXECUTABLE(f32-dwconv-test test/f32-dwconv.cc)
-  SET_TARGET_PROPERTIES(f32-dwconv-test PROPERTIES
+  ADD_EXECUTABLE(f32-dwconv-minmax-test test/f32-dwconv-minmax.cc)
+  SET_TARGET_PROPERTIES(f32-gemminc-minmax-test PROPERTIES
     CXX_STANDARD 11
     CXX_STANDARD_REQUIRED YES
     CXX_EXTENSIONS YES)
-  TARGET_INCLUDE_DIRECTORIES(f32-dwconv-test PRIVATE src test)
-  TARGET_LINK_LIBRARIES(f32-dwconv-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main)
-  ADD_TEST(f32-dwconv-test f32-dwconv-test)
+  TARGET_INCLUDE_DIRECTORIES(f32-gemminc-minmax-test PRIVATE src test)
+  TARGET_LINK_LIBRARIES(f32-gemminc-minmax-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main)
+  ADD_TEST(f32-gemminc-minmax-test f32-gemminc-minmax-test)
 
   ADD_EXECUTABLE(f32-gavgpool-spchw-test test/f32-gavgpool-spchw.cc)
   SET_TARGET_PROPERTIES(f32-gavgpool-spchw-test PROPERTIES
@@ -1981,23 +1981,23 @@
   TARGET_LINK_LIBRARIES(f32-gavgpool-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main)
   ADD_TEST(f32-gavgpool-test f32-gavgpool-test)
 
-  ADD_EXECUTABLE(f32-gemm-test test/f32-gemm.cc)
-  SET_TARGET_PROPERTIES(f32-gemm-test PROPERTIES
+  ADD_EXECUTABLE(f32-gemm-minmax-test test/f32-gemm-minmax.cc)
+  SET_TARGET_PROPERTIES(f32-gemm-minmax-test PROPERTIES
     CXX_STANDARD 11
     CXX_STANDARD_REQUIRED YES
     CXX_EXTENSIONS YES)
-  TARGET_INCLUDE_DIRECTORIES(f32-gemm-test PRIVATE src test)
-  TARGET_LINK_LIBRARIES(f32-gemm-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main)
-  ADD_TEST(f32-gemm-test f32-gemm-test)
+  TARGET_INCLUDE_DIRECTORIES(f32-gemm-minmax-test PRIVATE src test)
+  TARGET_LINK_LIBRARIES(f32-gemm-minmax-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main)
+  ADD_TEST(f32-gemm-minmax-test f32-gemm-minmax-test)
 
-  ADD_EXECUTABLE(f32-gemminc-test test/f32-gemminc.cc)
-  SET_TARGET_PROPERTIES(f32-gemminc-test PROPERTIES
+  ADD_EXECUTABLE(f32-gemminc-minmax-test test/f32-gemminc-minmax.cc)
+  SET_TARGET_PROPERTIES(f32-gemminc-minmax-test PROPERTIES
     CXX_STANDARD 11
     CXX_STANDARD_REQUIRED YES
     CXX_EXTENSIONS YES)
-  TARGET_INCLUDE_DIRECTORIES(f32-gemminc-test PRIVATE src test)
-  TARGET_LINK_LIBRARIES(f32-gemminc-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main)
-  ADD_TEST(f32-gemminc-test f32-gemminc-test)
+  TARGET_INCLUDE_DIRECTORIES(f32-gemminc-minmax-test PRIVATE src test)
+  TARGET_LINK_LIBRARIES(f32-gemminc-minmax-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main)
+  ADD_TEST(f32-gemminc-minmax-test f32-gemminc-minmax-test)
 
   ADD_EXECUTABLE(f32-hswish-test test/f32-hswish.cc)
   SET_TARGET_PROPERTIES(f32-hswish-test PROPERTIES
@@ -2017,14 +2017,14 @@
   TARGET_LINK_LIBRARIES(f32-ibilinear-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main)
   ADD_TEST(f32-ibilinear-test f32-ibilinear-test)
 
-  ADD_EXECUTABLE(f32-igemm-test test/f32-igemm.cc)
-  SET_TARGET_PROPERTIES(f32-igemm-test PROPERTIES
+  ADD_EXECUTABLE(f32-igemm-minmax-test test/f32-igemm-minmax.cc)
+  SET_TARGET_PROPERTIES(f32-igemm-minmax-test PROPERTIES
     CXX_STANDARD 11
     CXX_STANDARD_REQUIRED YES
     CXX_EXTENSIONS YES)
-  TARGET_INCLUDE_DIRECTORIES(f32-igemm-test PRIVATE src test)
-  TARGET_LINK_LIBRARIES(f32-igemm-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main)
-  ADD_TEST(f32-igemm-test f32-igemm-test)
+  TARGET_INCLUDE_DIRECTORIES(f32-igemm-minmax-test PRIVATE src test)
+  TARGET_LINK_LIBRARIES(f32-igemm-minmax-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main)
+  ADD_TEST(f32-igemm-minmax-test f32-igemm-minmax-test)
 
   ADD_EXECUTABLE(f32-maxpool-test test/f32-maxpool.cc)
   SET_TARGET_PROPERTIES(f32-maxpool-test PROPERTIES
@@ -2044,14 +2044,14 @@
   TARGET_LINK_LIBRARIES(f32-pavgpool-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main)
   ADD_TEST(f32-pavgpool-test f32-pavgpool-test)
 
-  ADD_EXECUTABLE(f32-ppmm-test test/f32-ppmm.cc)
-  SET_TARGET_PROPERTIES(f32-ppmm-test PROPERTIES
+  ADD_EXECUTABLE(f32-ppmm-minmax-test test/f32-ppmm-minmax.cc)
+  SET_TARGET_PROPERTIES(f32-ppmm-minmax-test PROPERTIES
     CXX_STANDARD 11
     CXX_STANDARD_REQUIRED YES
     CXX_EXTENSIONS YES)
-  TARGET_INCLUDE_DIRECTORIES(f32-ppmm-test PRIVATE src test)
-  TARGET_LINK_LIBRARIES(f32-ppmm-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main)
-  ADD_TEST(f32-ppmm-test f32-ppmm-test)
+  TARGET_INCLUDE_DIRECTORIES(f32-ppmm-minmax-test PRIVATE src test)
+  TARGET_LINK_LIBRARIES(f32-ppmm-minmax-test PRIVATE XNNPACK cpuinfo fp16 gtest gtest_main)
+  ADD_TEST(f32-ppmm-minmax-test f32-ppmm-minmax-test)
 
   ADD_EXECUTABLE(f32-prelu-test test/f32-prelu.cc)
   SET_TARGET_PROPERTIES(f32-prelu-test PROPERTIES
diff --git a/scripts/generate-f32-dwconv.sh b/scripts/generate-f32-dwconv.sh
index ca0825f..5854b56 100755
--- a/scripts/generate-f32-dwconv.sh
+++ b/scripts/generate-f32-dwconv.sh
@@ -5,127 +5,127 @@
 # LICENSE file in the root directory of this source tree.
 
 ################################### ARM NEON ##################################
-tools/xngen src/f32-dwconv/up-neon.c.in -D CHANNEL_TILE=4 -D KERNEL_TILE=9 -D ACCUMULATORS=1 -D FMA=0 -o src/f32-dwconv/gen/up4x9-neon.c
-tools/xngen src/f32-dwconv/up-neon.c.in -D CHANNEL_TILE=4 -D KERNEL_TILE=9 -D ACCUMULATORS=2 -D FMA=0 -o src/f32-dwconv/gen/up4x9-neon-acc2.c
-tools/xngen src/f32-dwconv/up-neon.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=9 -D ACCUMULATORS=1 -D FMA=0 -o src/f32-dwconv/gen/up8x9-neon.c
-tools/xngen src/f32-dwconv/up-neon.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=9 -D ACCUMULATORS=2 -D FMA=0 -o src/f32-dwconv/gen/up8x9-neon-acc2.c
+tools/xngen src/f32-dwconv/up-neon.c.in -D CHANNEL_TILE=4 -D KERNEL_TILE=9 -D ACCUMULATORS=1 -D FMA=0 -o src/f32-dwconv/gen/up4x9-minmax-neon.c
+tools/xngen src/f32-dwconv/up-neon.c.in -D CHANNEL_TILE=4 -D KERNEL_TILE=9 -D ACCUMULATORS=2 -D FMA=0 -o src/f32-dwconv/gen/up4x9-minmax-neon-acc2.c
+tools/xngen src/f32-dwconv/up-neon.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=9 -D ACCUMULATORS=1 -D FMA=0 -o src/f32-dwconv/gen/up8x9-minmax-neon.c
+tools/xngen src/f32-dwconv/up-neon.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=9 -D ACCUMULATORS=2 -D FMA=0 -o src/f32-dwconv/gen/up8x9-minmax-neon-acc2.c
 
-tools/xngen src/f32-dwconv/up-neon.c.in -D CHANNEL_TILE=4 -D KERNEL_TILE=9 -D ACCUMULATORS=1 -D FMA=1 -o src/f32-dwconv/gen/up4x9-neonfma.c
-tools/xngen src/f32-dwconv/up-neon.c.in -D CHANNEL_TILE=4 -D KERNEL_TILE=9 -D ACCUMULATORS=2 -D FMA=1 -o src/f32-dwconv/gen/up4x9-neonfma-acc2.c
-tools/xngen src/f32-dwconv/up-neon.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=9 -D ACCUMULATORS=1 -D FMA=1 -o src/f32-dwconv/gen/up8x9-neonfma.c
-tools/xngen src/f32-dwconv/up-neon.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=9 -D ACCUMULATORS=2 -D FMA=1 -o src/f32-dwconv/gen/up8x9-neonfma-acc2.c
+tools/xngen src/f32-dwconv/up-neon.c.in -D CHANNEL_TILE=4 -D KERNEL_TILE=9 -D ACCUMULATORS=1 -D FMA=1 -o src/f32-dwconv/gen/up4x9-minmax-neonfma.c
+tools/xngen src/f32-dwconv/up-neon.c.in -D CHANNEL_TILE=4 -D KERNEL_TILE=9 -D ACCUMULATORS=2 -D FMA=1 -o src/f32-dwconv/gen/up4x9-minmax-neonfma-acc2.c
+tools/xngen src/f32-dwconv/up-neon.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=9 -D ACCUMULATORS=1 -D FMA=1 -o src/f32-dwconv/gen/up8x9-minmax-neonfma.c
+tools/xngen src/f32-dwconv/up-neon.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=9 -D ACCUMULATORS=2 -D FMA=1 -o src/f32-dwconv/gen/up8x9-minmax-neonfma-acc2.c
 
 ################################### x86 SSE ###################################
-tools/xngen src/f32-dwconv/up-sse.c.in -D CHANNEL_TILE=4 -D KERNEL_TILE=4 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up4x4-sse.c
-tools/xngen src/f32-dwconv/up-sse.c.in -D CHANNEL_TILE=4 -D KERNEL_TILE=4 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up4x4-sse-acc2.c
-tools/xngen src/f32-dwconv/up-sse.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=4 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up8x4-sse.c
-tools/xngen src/f32-dwconv/up-sse.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=4 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up8x4-sse-acc2.c
+tools/xngen src/f32-dwconv/up-sse.c.in -D CHANNEL_TILE=4 -D KERNEL_TILE=4 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up4x4-minmax-sse.c
+tools/xngen src/f32-dwconv/up-sse.c.in -D CHANNEL_TILE=4 -D KERNEL_TILE=4 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up4x4-minmax-sse-acc2.c
+tools/xngen src/f32-dwconv/up-sse.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=4 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up8x4-minmax-sse.c
+tools/xngen src/f32-dwconv/up-sse.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=4 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up8x4-minmax-sse-acc2.c
 
-tools/xngen src/f32-dwconv/up-sse.c.in -D CHANNEL_TILE=4 -D KERNEL_TILE=9 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up4x9-sse.c
-tools/xngen src/f32-dwconv/up-sse.c.in -D CHANNEL_TILE=4 -D KERNEL_TILE=9 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up4x9-sse-acc2.c
-tools/xngen src/f32-dwconv/up-sse.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=9 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up8x9-sse.c
-tools/xngen src/f32-dwconv/up-sse.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=9 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up8x9-sse-acc2.c
+tools/xngen src/f32-dwconv/up-sse.c.in -D CHANNEL_TILE=4 -D KERNEL_TILE=9 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up4x9-minmax-sse.c
+tools/xngen src/f32-dwconv/up-sse.c.in -D CHANNEL_TILE=4 -D KERNEL_TILE=9 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up4x9-minmax-sse-acc2.c
+tools/xngen src/f32-dwconv/up-sse.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=9 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up8x9-minmax-sse.c
+tools/xngen src/f32-dwconv/up-sse.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=9 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up8x9-minmax-sse-acc2.c
 
-tools/xngen src/f32-dwconv/up-sse.c.in -D CHANNEL_TILE=4 -D KERNEL_TILE=25 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up4x25-sse.c
-tools/xngen src/f32-dwconv/up-sse.c.in -D CHANNEL_TILE=4 -D KERNEL_TILE=25 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up4x25-sse-acc2.c
-tools/xngen src/f32-dwconv/up-sse.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=25 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up8x25-sse.c
-tools/xngen src/f32-dwconv/up-sse.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=25 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up8x25-sse-acc2.c
+tools/xngen src/f32-dwconv/up-sse.c.in -D CHANNEL_TILE=4 -D KERNEL_TILE=25 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up4x25-minmax-sse.c
+tools/xngen src/f32-dwconv/up-sse.c.in -D CHANNEL_TILE=4 -D KERNEL_TILE=25 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up4x25-minmax-sse-acc2.c
+tools/xngen src/f32-dwconv/up-sse.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=25 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up8x25-minmax-sse.c
+tools/xngen src/f32-dwconv/up-sse.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=25 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up8x25-minmax-sse-acc2.c
 
 ################################### x86 AVX ###################################
-tools/xngen src/f32-dwconv/up-avx.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=4 -D FMA=0 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up8x4-avx.c
-tools/xngen src/f32-dwconv/up-avx.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=4 -D FMA=0 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up8x4-avx-acc2.c
-tools/xngen src/f32-dwconv/up-avx.c.in -D CHANNEL_TILE=16 -D KERNEL_TILE=4 -D FMA=0 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up16x4-avx.c
-tools/xngen src/f32-dwconv/up-avx.c.in -D CHANNEL_TILE=16 -D KERNEL_TILE=4 -D FMA=0 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up16x4-avx-acc2.c
+tools/xngen src/f32-dwconv/up-avx.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=4 -D FMA=0 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up8x4-minmax-avx.c
+tools/xngen src/f32-dwconv/up-avx.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=4 -D FMA=0 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up8x4-minmax-avx-acc2.c
+tools/xngen src/f32-dwconv/up-avx.c.in -D CHANNEL_TILE=16 -D KERNEL_TILE=4 -D FMA=0 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up16x4-minmax-avx.c
+tools/xngen src/f32-dwconv/up-avx.c.in -D CHANNEL_TILE=16 -D KERNEL_TILE=4 -D FMA=0 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up16x4-minmax-avx-acc2.c
 
-tools/xngen src/f32-dwconv/up-avx.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=9 -D FMA=0 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up8x9-avx.c
-tools/xngen src/f32-dwconv/up-avx.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=9 -D FMA=0 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up8x9-avx-acc2.c
-tools/xngen src/f32-dwconv/up-avx.c.in -D CHANNEL_TILE=16 -D KERNEL_TILE=9 -D FMA=0 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up16x9-avx.c
-tools/xngen src/f32-dwconv/up-avx.c.in -D CHANNEL_TILE=16 -D KERNEL_TILE=9 -D FMA=0 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up16x9-avx-acc2.c
+tools/xngen src/f32-dwconv/up-avx.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=9 -D FMA=0 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up8x9-minmax-avx.c
+tools/xngen src/f32-dwconv/up-avx.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=9 -D FMA=0 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up8x9-minmax-avx-acc2.c
+tools/xngen src/f32-dwconv/up-avx.c.in -D CHANNEL_TILE=16 -D KERNEL_TILE=9 -D FMA=0 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up16x9-minmax-avx.c
+tools/xngen src/f32-dwconv/up-avx.c.in -D CHANNEL_TILE=16 -D KERNEL_TILE=9 -D FMA=0 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up16x9-minmax-avx-acc2.c
 
-tools/xngen src/f32-dwconv/up-avx.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=25 -D FMA=0 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up8x25-avx.c
-tools/xngen src/f32-dwconv/up-avx.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=25 -D FMA=0 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up8x25-avx-acc2.c
-tools/xngen src/f32-dwconv/up-avx.c.in -D CHANNEL_TILE=16 -D KERNEL_TILE=25 -D FMA=0 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up16x25-avx.c
-tools/xngen src/f32-dwconv/up-avx.c.in -D CHANNEL_TILE=16 -D KERNEL_TILE=25 -D FMA=0 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up16x25-avx-acc2.c
+tools/xngen src/f32-dwconv/up-avx.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=25 -D FMA=0 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up8x25-minmax-avx.c
+tools/xngen src/f32-dwconv/up-avx.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=25 -D FMA=0 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up8x25-minmax-avx-acc2.c
+tools/xngen src/f32-dwconv/up-avx.c.in -D CHANNEL_TILE=16 -D KERNEL_TILE=25 -D FMA=0 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up16x25-minmax-avx.c
+tools/xngen src/f32-dwconv/up-avx.c.in -D CHANNEL_TILE=16 -D KERNEL_TILE=25 -D FMA=0 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up16x25-minmax-avx-acc2.c
 
-tools/xngen src/f32-dwconv/up-avx.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=4 -D FMA=3 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up8x4-fma3.c
-tools/xngen src/f32-dwconv/up-avx.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=4 -D FMA=3 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up8x4-fma3-acc2.c
-tools/xngen src/f32-dwconv/up-avx.c.in -D CHANNEL_TILE=16 -D KERNEL_TILE=4 -D FMA=3 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up16x4-fma3.c
-tools/xngen src/f32-dwconv/up-avx.c.in -D CHANNEL_TILE=16 -D KERNEL_TILE=4 -D FMA=3 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up16x4-fma3-acc2.c
+tools/xngen src/f32-dwconv/up-avx.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=4 -D FMA=3 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up8x4-minmax-fma3.c
+tools/xngen src/f32-dwconv/up-avx.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=4 -D FMA=3 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up8x4-minmax-fma3-acc2.c
+tools/xngen src/f32-dwconv/up-avx.c.in -D CHANNEL_TILE=16 -D KERNEL_TILE=4 -D FMA=3 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up16x4-minmax-fma3.c
+tools/xngen src/f32-dwconv/up-avx.c.in -D CHANNEL_TILE=16 -D KERNEL_TILE=4 -D FMA=3 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up16x4-minmax-fma3-acc2.c
 
-tools/xngen src/f32-dwconv/up-avx.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=9 -D FMA=3 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up8x9-fma3.c
-tools/xngen src/f32-dwconv/up-avx.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=9 -D FMA=3 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up8x9-fma3-acc2.c
-tools/xngen src/f32-dwconv/up-avx.c.in -D CHANNEL_TILE=16 -D KERNEL_TILE=9 -D FMA=3 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up16x9-fma3.c
-tools/xngen src/f32-dwconv/up-avx.c.in -D CHANNEL_TILE=16 -D KERNEL_TILE=9 -D FMA=3 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up16x9-fma3-acc2.c
+tools/xngen src/f32-dwconv/up-avx.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=9 -D FMA=3 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up8x9-minmax-fma3.c
+tools/xngen src/f32-dwconv/up-avx.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=9 -D FMA=3 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up8x9-minmax-fma3-acc2.c
+tools/xngen src/f32-dwconv/up-avx.c.in -D CHANNEL_TILE=16 -D KERNEL_TILE=9 -D FMA=3 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up16x9-minmax-fma3.c
+tools/xngen src/f32-dwconv/up-avx.c.in -D CHANNEL_TILE=16 -D KERNEL_TILE=9 -D FMA=3 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up16x9-minmax-fma3-acc2.c
 
-tools/xngen src/f32-dwconv/up-avx.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=25 -D FMA=3 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up8x25-fma3.c
-tools/xngen src/f32-dwconv/up-avx.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=25 -D FMA=3 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up8x25-fma3-acc2.c
-tools/xngen src/f32-dwconv/up-avx.c.in -D CHANNEL_TILE=16 -D KERNEL_TILE=25 -D FMA=3 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up16x25-fma3.c
-tools/xngen src/f32-dwconv/up-avx.c.in -D CHANNEL_TILE=16 -D KERNEL_TILE=25 -D FMA=3 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up16x25-fma3-acc2.c
+tools/xngen src/f32-dwconv/up-avx.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=25 -D FMA=3 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up8x25-minmax-fma3.c
+tools/xngen src/f32-dwconv/up-avx.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=25 -D FMA=3 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up8x25-minmax-fma3-acc2.c
+tools/xngen src/f32-dwconv/up-avx.c.in -D CHANNEL_TILE=16 -D KERNEL_TILE=25 -D FMA=3 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up16x25-minmax-fma3.c
+tools/xngen src/f32-dwconv/up-avx.c.in -D CHANNEL_TILE=16 -D KERNEL_TILE=25 -D FMA=3 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up16x25-minmax-fma3-acc2.c
 
 ################################# x86 AVX-512 #################################
-tools/xngen src/f32-dwconv/up-avx512.c.in -D CHANNEL_TILE=16 -D KERNEL_TILE=4 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up16x4-avx512f.c
-tools/xngen src/f32-dwconv/up-avx512.c.in -D CHANNEL_TILE=16 -D KERNEL_TILE=4 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up16x4-avx512f-acc2.c
-tools/xngen src/f32-dwconv/up-avx512.c.in -D CHANNEL_TILE=32 -D KERNEL_TILE=4 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up32x4-avx512f.c
-tools/xngen src/f32-dwconv/up-avx512.c.in -D CHANNEL_TILE=32 -D KERNEL_TILE=4 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up32x4-avx512f-acc2.c
+tools/xngen src/f32-dwconv/up-avx512.c.in -D CHANNEL_TILE=16 -D KERNEL_TILE=4 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up16x4-minmax-avx512f.c
+tools/xngen src/f32-dwconv/up-avx512.c.in -D CHANNEL_TILE=16 -D KERNEL_TILE=4 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up16x4-minmax-avx512f-acc2.c
+tools/xngen src/f32-dwconv/up-avx512.c.in -D CHANNEL_TILE=32 -D KERNEL_TILE=4 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up32x4-minmax-avx512f.c
+tools/xngen src/f32-dwconv/up-avx512.c.in -D CHANNEL_TILE=32 -D KERNEL_TILE=4 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up32x4-minmax-avx512f-acc2.c
 
-tools/xngen src/f32-dwconv/up-avx512.c.in -D CHANNEL_TILE=16 -D KERNEL_TILE=9 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up16x9-avx512f.c
-tools/xngen src/f32-dwconv/up-avx512.c.in -D CHANNEL_TILE=16 -D KERNEL_TILE=9 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up16x9-avx512f-acc2.c
-tools/xngen src/f32-dwconv/up-avx512.c.in -D CHANNEL_TILE=32 -D KERNEL_TILE=9 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up32x9-avx512f.c
-tools/xngen src/f32-dwconv/up-avx512.c.in -D CHANNEL_TILE=32 -D KERNEL_TILE=9 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up32x9-avx512f-acc2.c
+tools/xngen src/f32-dwconv/up-avx512.c.in -D CHANNEL_TILE=16 -D KERNEL_TILE=9 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up16x9-minmax-avx512f.c
+tools/xngen src/f32-dwconv/up-avx512.c.in -D CHANNEL_TILE=16 -D KERNEL_TILE=9 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up16x9-minmax-avx512f-acc2.c
+tools/xngen src/f32-dwconv/up-avx512.c.in -D CHANNEL_TILE=32 -D KERNEL_TILE=9 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up32x9-minmax-avx512f.c
+tools/xngen src/f32-dwconv/up-avx512.c.in -D CHANNEL_TILE=32 -D KERNEL_TILE=9 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up32x9-minmax-avx512f-acc2.c
 
-tools/xngen src/f32-dwconv/up-avx512.c.in -D CHANNEL_TILE=16 -D KERNEL_TILE=25 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up16x25-avx512f.c
-tools/xngen src/f32-dwconv/up-avx512.c.in -D CHANNEL_TILE=16 -D KERNEL_TILE=25 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up16x25-avx512f-acc2.c
-tools/xngen src/f32-dwconv/up-avx512.c.in -D CHANNEL_TILE=32 -D KERNEL_TILE=25 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up32x25-avx512f.c
-tools/xngen src/f32-dwconv/up-avx512.c.in -D CHANNEL_TILE=32 -D KERNEL_TILE=25 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up32x25-avx512f-acc2.c
+tools/xngen src/f32-dwconv/up-avx512.c.in -D CHANNEL_TILE=16 -D KERNEL_TILE=25 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up16x25-minmax-avx512f.c
+tools/xngen src/f32-dwconv/up-avx512.c.in -D CHANNEL_TILE=16 -D KERNEL_TILE=25 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up16x25-minmax-avx512f-acc2.c
+tools/xngen src/f32-dwconv/up-avx512.c.in -D CHANNEL_TILE=32 -D KERNEL_TILE=25 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up32x25-minmax-avx512f.c
+tools/xngen src/f32-dwconv/up-avx512.c.in -D CHANNEL_TILE=32 -D KERNEL_TILE=25 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up32x25-minmax-avx512f-acc2.c
 
 #################################### PSIMD ####################################
-tools/xngen src/f32-dwconv/up-psimd.c.in -D CHANNEL_TILE=4 -D KERNEL_TILE=4 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up4x4-psimd.c
-tools/xngen src/f32-dwconv/up-psimd.c.in -D CHANNEL_TILE=4 -D KERNEL_TILE=4 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up4x4-psimd-acc2.c
-tools/xngen src/f32-dwconv/up-psimd.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=4 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up8x4-psimd.c
-tools/xngen src/f32-dwconv/up-psimd.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=4 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up8x4-psimd-acc2.c
+tools/xngen src/f32-dwconv/up-psimd.c.in -D CHANNEL_TILE=4 -D KERNEL_TILE=4 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up4x4-minmax-psimd.c
+tools/xngen src/f32-dwconv/up-psimd.c.in -D CHANNEL_TILE=4 -D KERNEL_TILE=4 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up4x4-minmax-psimd-acc2.c
+tools/xngen src/f32-dwconv/up-psimd.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=4 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up8x4-minmax-psimd.c
+tools/xngen src/f32-dwconv/up-psimd.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=4 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up8x4-minmax-psimd-acc2.c
 
-tools/xngen src/f32-dwconv/up-psimd.c.in -D CHANNEL_TILE=4 -D KERNEL_TILE=9 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up4x9-psimd.c
-tools/xngen src/f32-dwconv/up-psimd.c.in -D CHANNEL_TILE=4 -D KERNEL_TILE=9 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up4x9-psimd-acc2.c
-tools/xngen src/f32-dwconv/up-psimd.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=9 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up8x9-psimd.c
-tools/xngen src/f32-dwconv/up-psimd.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=9 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up8x9-psimd-acc2.c
+tools/xngen src/f32-dwconv/up-psimd.c.in -D CHANNEL_TILE=4 -D KERNEL_TILE=9 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up4x9-minmax-psimd.c
+tools/xngen src/f32-dwconv/up-psimd.c.in -D CHANNEL_TILE=4 -D KERNEL_TILE=9 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up4x9-minmax-psimd-acc2.c
+tools/xngen src/f32-dwconv/up-psimd.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=9 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up8x9-minmax-psimd.c
+tools/xngen src/f32-dwconv/up-psimd.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=9 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up8x9-minmax-psimd-acc2.c
 
-tools/xngen src/f32-dwconv/up-psimd.c.in -D CHANNEL_TILE=4 -D KERNEL_TILE=25 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up4x25-psimd.c
-tools/xngen src/f32-dwconv/up-psimd.c.in -D CHANNEL_TILE=4 -D KERNEL_TILE=25 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up4x25-psimd-acc2.c
-tools/xngen src/f32-dwconv/up-psimd.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=25 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up8x25-psimd.c
-tools/xngen src/f32-dwconv/up-psimd.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=25 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up8x25-psimd-acc2.c
+tools/xngen src/f32-dwconv/up-psimd.c.in -D CHANNEL_TILE=4 -D KERNEL_TILE=25 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up4x25-minmax-psimd.c
+tools/xngen src/f32-dwconv/up-psimd.c.in -D CHANNEL_TILE=4 -D KERNEL_TILE=25 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up4x25-minmax-psimd-acc2.c
+tools/xngen src/f32-dwconv/up-psimd.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=25 -D ACCUMULATORS=1 -o src/f32-dwconv/gen/up8x25-minmax-psimd.c
+tools/xngen src/f32-dwconv/up-psimd.c.in -D CHANNEL_TILE=8 -D KERNEL_TILE=25 -D ACCUMULATORS=2 -o src/f32-dwconv/gen/up8x25-minmax-psimd-acc2.c
 
 #################################### Scalar ###################################
 ### Generic C micro-kernels
-tools/xngen src/f32-dwconv/up-scalar.c.in -D CHANNEL_TILE=1 -D KERNEL_TILE=4  -D ACCUMULATORS=1 -D WASM=0 -o src/f32-dwconv/gen/up1x4-scalar.c
-tools/xngen src/f32-dwconv/up-scalar.c.in -D CHANNEL_TILE=1 -D KERNEL_TILE=4  -D ACCUMULATORS=2 -D WASM=0 -o src/f32-dwconv/gen/up1x4-scalar-acc2.c
-tools/xngen src/f32-dwconv/up-scalar.c.in -D CHANNEL_TILE=2 -D KERNEL_TILE=4  -D ACCUMULATORS=1 -D WASM=0 -o src/f32-dwconv/gen/up2x4-scalar.c
-tools/xngen src/f32-dwconv/up-scalar.c.in -D CHANNEL_TILE=2 -D KERNEL_TILE=4  -D ACCUMULATORS=2 -D WASM=0 -o src/f32-dwconv/gen/up2x4-scalar-acc2.c
+tools/xngen src/f32-dwconv/up-scalar.c.in -D CHANNEL_TILE=1 -D KERNEL_TILE=4  -D ACCUMULATORS=1 -D WASM=0 -o src/f32-dwconv/gen/up1x4-minmax-scalar.c
+tools/xngen src/f32-dwconv/up-scalar.c.in -D CHANNEL_TILE=1 -D KERNEL_TILE=4  -D ACCUMULATORS=2 -D WASM=0 -o src/f32-dwconv/gen/up1x4-minmax-scalar-acc2.c
+tools/xngen src/f32-dwconv/up-scalar.c.in -D CHANNEL_TILE=2 -D KERNEL_TILE=4  -D ACCUMULATORS=1 -D WASM=0 -o src/f32-dwconv/gen/up2x4-minmax-scalar.c
+tools/xngen src/f32-dwconv/up-scalar.c.in -D CHANNEL_TILE=2 -D KERNEL_TILE=4  -D ACCUMULATORS=2 -D WASM=0 -o src/f32-dwconv/gen/up2x4-minmax-scalar-acc2.c
 
-tools/xngen src/f32-dwconv/up-scalar.c.in -D CHANNEL_TILE=1 -D KERNEL_TILE=9  -D ACCUMULATORS=1 -D WASM=0 -o src/f32-dwconv/gen/up1x9-scalar.c
-tools/xngen src/f32-dwconv/up-scalar.c.in -D CHANNEL_TILE=1 -D KERNEL_TILE=9  -D ACCUMULATORS=2 -D WASM=0 -o src/f32-dwconv/gen/up1x9-scalar-acc2.c
-tools/xngen src/f32-dwconv/up-scalar.c.in -D CHANNEL_TILE=2 -D KERNEL_TILE=9  -D ACCUMULATORS=1 -D WASM=0 -o src/f32-dwconv/gen/up2x9-scalar.c
-tools/xngen src/f32-dwconv/up-scalar.c.in -D CHANNEL_TILE=2 -D KERNEL_TILE=9  -D ACCUMULATORS=2 -D WASM=0 -o src/f32-dwconv/gen/up2x9-scalar-acc2.c
+tools/xngen src/f32-dwconv/up-scalar.c.in -D CHANNEL_TILE=1 -D KERNEL_TILE=9  -D ACCUMULATORS=1 -D WASM=0 -o src/f32-dwconv/gen/up1x9-minmax-scalar.c
+tools/xngen src/f32-dwconv/up-scalar.c.in -D CHANNEL_TILE=1 -D KERNEL_TILE=9  -D ACCUMULATORS=2 -D WASM=0 -o src/f32-dwconv/gen/up1x9-minmax-scalar-acc2.c
+tools/xngen src/f32-dwconv/up-scalar.c.in -D CHANNEL_TILE=2 -D KERNEL_TILE=9  -D ACCUMULATORS=1 -D WASM=0 -o src/f32-dwconv/gen/up2x9-minmax-scalar.c
+tools/xngen src/f32-dwconv/up-scalar.c.in -D CHANNEL_TILE=2 -D KERNEL_TILE=9  -D ACCUMULATORS=2 -D WASM=0 -o src/f32-dwconv/gen/up2x9-minmax-scalar-acc2.c
 
-tools/xngen src/f32-dwconv/up-scalar.c.in -D CHANNEL_TILE=1 -D KERNEL_TILE=25 -D ACCUMULATORS=1 -D WASM=0 -o src/f32-dwconv/gen/up1x25-scalar.c
-tools/xngen src/f32-dwconv/up-scalar.c.in -D CHANNEL_TILE=1 -D KERNEL_TILE=25 -D ACCUMULATORS=2 -D WASM=0 -o src/f32-dwconv/gen/up1x25-scalar-acc2.c
-tools/xngen src/f32-dwconv/up-scalar.c.in -D CHANNEL_TILE=2 -D KERNEL_TILE=25 -D ACCUMULATORS=1 -D WASM=0 -o src/f32-dwconv/gen/up2x25-scalar.c
-tools/xngen src/f32-dwconv/up-scalar.c.in -D CHANNEL_TILE=2 -D KERNEL_TILE=25 -D ACCUMULATORS=2 -D WASM=0 -o src/f32-dwconv/gen/up2x25-scalar-acc2.c
+tools/xngen src/f32-dwconv/up-scalar.c.in -D CHANNEL_TILE=1 -D KERNEL_TILE=25 -D ACCUMULATORS=1 -D WASM=0 -o src/f32-dwconv/gen/up1x25-minmax-scalar.c
+tools/xngen src/f32-dwconv/up-scalar.c.in -D CHANNEL_TILE=1 -D KERNEL_TILE=25 -D ACCUMULATORS=2 -D WASM=0 -o src/f32-dwconv/gen/up1x25-minmax-scalar-acc2.c
+tools/xngen src/f32-dwconv/up-scalar.c.in -D CHANNEL_TILE=2 -D KERNEL_TILE=25 -D ACCUMULATORS=1 -D WASM=0 -o src/f32-dwconv/gen/up2x25-minmax-scalar.c
+tools/xngen src/f32-dwconv/up-scalar.c.in -D CHANNEL_TILE=2 -D KERNEL_TILE=25 -D ACCUMULATORS=2 -D WASM=0 -o src/f32-dwconv/gen/up2x25-minmax-scalar-acc2.c
 
 ### WAsm-specific micro-kernels
-tools/xngen src/f32-dwconv/up-scalar.c.in -D CHANNEL_TILE=1 -D KERNEL_TILE=4  -D ACCUMULATORS=1 -D WASM=1 -o src/f32-dwconv/gen/up1x4-wasm.c
-tools/xngen src/f32-dwconv/up-scalar.c.in -D CHANNEL_TILE=1 -D KERNEL_TILE=4  -D ACCUMULATORS=2 -D WASM=1 -o src/f32-dwconv/gen/up1x4-wasm-acc2.c
-tools/xngen src/f32-dwconv/up-scalar.c.in -D CHANNEL_TILE=2 -D KERNEL_TILE=4  -D ACCUMULATORS=1 -D WASM=1 -o src/f32-dwconv/gen/up2x4-wasm.c
-tools/xngen src/f32-dwconv/up-scalar.c.in -D CHANNEL_TILE=2 -D KERNEL_TILE=4  -D ACCUMULATORS=2 -D WASM=1 -o src/f32-dwconv/gen/up2x4-wasm-acc2.c
+tools/xngen src/f32-dwconv/up-scalar.c.in -D CHANNEL_TILE=1 -D KERNEL_TILE=4  -D ACCUMULATORS=1 -D WASM=1 -o src/f32-dwconv/gen/up1x4-minmax-wasm.c
+tools/xngen src/f32-dwconv/up-scalar.c.in -D CHANNEL_TILE=1 -D KERNEL_TILE=4  -D ACCUMULATORS=2 -D WASM=1 -o src/f32-dwconv/gen/up1x4-minmax-wasm-acc2.c
+tools/xngen src/f32-dwconv/up-scalar.c.in -D CHANNEL_TILE=2 -D KERNEL_TILE=4  -D ACCUMULATORS=1 -D WASM=1 -o src/f32-dwconv/gen/up2x4-minmax-wasm.c
+tools/xngen src/f32-dwconv/up-scalar.c.in -D CHANNEL_TILE=2 -D KERNEL_TILE=4  -D ACCUMULATORS=2 -D WASM=1 -o src/f32-dwconv/gen/up2x4-minmax-wasm-acc2.c
 
-tools/xngen src/f32-dwconv/up-scalar.c.in -D CHANNEL_TILE=1 -D KERNEL_TILE=9  -D ACCUMULATORS=1 -D WASM=1 -o src/f32-dwconv/gen/up1x9-wasm.c
-tools/xngen src/f32-dwconv/up-scalar.c.in -D CHANNEL_TILE=1 -D KERNEL_TILE=9  -D ACCUMULATORS=2 -D WASM=1 -o src/f32-dwconv/gen/up1x9-wasm-acc2.c
-tools/xngen src/f32-dwconv/up-scalar.c.in -D CHANNEL_TILE=2 -D KERNEL_TILE=9  -D ACCUMULATORS=1 -D WASM=1 -o src/f32-dwconv/gen/up2x9-wasm.c
-tools/xngen src/f32-dwconv/up-scalar.c.in -D CHANNEL_TILE=2 -D KERNEL_TILE=9  -D ACCUMULATORS=2 -D WASM=1 -o src/f32-dwconv/gen/up2x9-wasm-acc2.c
+tools/xngen src/f32-dwconv/up-scalar.c.in -D CHANNEL_TILE=1 -D KERNEL_TILE=9  -D ACCUMULATORS=1 -D WASM=1 -o src/f32-dwconv/gen/up1x9-minmax-wasm.c
+tools/xngen src/f32-dwconv/up-scalar.c.in -D CHANNEL_TILE=1 -D KERNEL_TILE=9  -D ACCUMULATORS=2 -D WASM=1 -o src/f32-dwconv/gen/up1x9-minmax-wasm-acc2.c
+tools/xngen src/f32-dwconv/up-scalar.c.in -D CHANNEL_TILE=2 -D KERNEL_TILE=9  -D ACCUMULATORS=1 -D WASM=1 -o src/f32-dwconv/gen/up2x9-minmax-wasm.c
+tools/xngen src/f32-dwconv/up-scalar.c.in -D CHANNEL_TILE=2 -D KERNEL_TILE=9  -D ACCUMULATORS=2 -D WASM=1 -o src/f32-dwconv/gen/up2x9-minmax-wasm-acc2.c
 
-tools/xngen src/f32-dwconv/up-scalar.c.in -D CHANNEL_TILE=1 -D KERNEL_TILE=25 -D ACCUMULATORS=1 -D WASM=1 -o src/f32-dwconv/gen/up1x25-wasm.c
-tools/xngen src/f32-dwconv/up-scalar.c.in -D CHANNEL_TILE=1 -D KERNEL_TILE=25 -D ACCUMULATORS=2 -D WASM=1 -o src/f32-dwconv/gen/up1x25-wasm-acc2.c
-tools/xngen src/f32-dwconv/up-scalar.c.in -D CHANNEL_TILE=2 -D KERNEL_TILE=25 -D ACCUMULATORS=1 -D WASM=1 -o src/f32-dwconv/gen/up2x25-wasm.c
-tools/xngen src/f32-dwconv/up-scalar.c.in -D CHANNEL_TILE=2 -D KERNEL_TILE=25 -D ACCUMULATORS=2 -D WASM=1 -o src/f32-dwconv/gen/up2x25-wasm-acc2.c
+tools/xngen src/f32-dwconv/up-scalar.c.in -D CHANNEL_TILE=1 -D KERNEL_TILE=25 -D ACCUMULATORS=1 -D WASM=1 -o src/f32-dwconv/gen/up1x25-minmax-wasm.c
+tools/xngen src/f32-dwconv/up-scalar.c.in -D CHANNEL_TILE=1 -D KERNEL_TILE=25 -D ACCUMULATORS=2 -D WASM=1 -o src/f32-dwconv/gen/up1x25-minmax-wasm-acc2.c
+tools/xngen src/f32-dwconv/up-scalar.c.in -D CHANNEL_TILE=2 -D KERNEL_TILE=25 -D ACCUMULATORS=1 -D WASM=1 -o src/f32-dwconv/gen/up2x25-minmax-wasm.c
+tools/xngen src/f32-dwconv/up-scalar.c.in -D CHANNEL_TILE=2 -D KERNEL_TILE=25 -D ACCUMULATORS=2 -D WASM=1 -o src/f32-dwconv/gen/up2x25-minmax-wasm-acc2.c
 
 ################################## Unit tests #################################
-tools/generate-dwconv-test.py --spec test/f32-dwconv.yaml --output test/f32-dwconv.cc
+tools/generate-dwconv-test.py --spec test/f32-dwconv-minmax.yaml --output test/f32-dwconv-minmax.cc
diff --git a/scripts/generate-f32-gemm.sh b/scripts/generate-f32-gemm.sh
index 34ab0f0..5319325 100755
--- a/scripts/generate-f32-gemm.sh
+++ b/scripts/generate-f32-gemm.sh
@@ -6,311 +6,311 @@
 
 #################################### Scalar ###################################
 ### Generic C micro-kernels
-tools/xngen src/f32-gemm/scalar.c.in -D MR=1 -D NR=4 -D WASM=0 -D INC=0 -o src/f32-gemm/gen/1x4-scalar.c
-tools/xngen src/f32-gemm/scalar.c.in -D MR=1 -D NR=4 -D WASM=0 -D INC=1 -o src/f32-gemm/gen-inc/1x4-scalar.c
+tools/xngen src/f32-gemm/scalar.c.in -D MR=1 -D NR=4 -D WASM=0 -D INC=0 -o src/f32-gemm/gen/1x4-minmax-scalar.c
+tools/xngen src/f32-gemm/scalar.c.in -D MR=1 -D NR=4 -D WASM=0 -D INC=1 -o src/f32-gemm/gen-inc/1x4inc-minmax-scalar.c
 
-tools/xngen src/f32-gemm/scalar.c.in -D MR=2 -D NR=4 -D WASM=0 -D INC=0 -o src/f32-gemm/gen/2x4-scalar.c
-tools/xngen src/f32-gemm/scalar.c.in -D MR=2 -D NR=4 -D WASM=0 -D INC=1 -o src/f32-gemm/gen-inc/2x4-scalar.c
+tools/xngen src/f32-gemm/scalar.c.in -D MR=2 -D NR=4 -D WASM=0 -D INC=0 -o src/f32-gemm/gen/2x4-minmax-scalar.c
+tools/xngen src/f32-gemm/scalar.c.in -D MR=2 -D NR=4 -D WASM=0 -D INC=1 -o src/f32-gemm/gen-inc/2x4inc-minmax-scalar.c
 
-tools/xngen src/f32-gemm/scalar.c.in -D MR=4 -D NR=2 -D WASM=0 -D INC=0 -o src/f32-gemm/gen/4x2-scalar.c
+tools/xngen src/f32-gemm/scalar.c.in -D MR=4 -D NR=2 -D WASM=0 -D INC=0 -o src/f32-gemm/gen/4x2-minmax-scalar.c
 
-tools/xngen src/f32-gemm/scalar.c.in -D MR=4 -D NR=4 -D WASM=0 -D INC=0 -o src/f32-gemm/gen/4x4-scalar.c
-tools/xngen src/f32-gemm/scalar.c.in -D MR=4 -D NR=4 -D WASM=0 -D INC=1 -o src/f32-gemm/gen-inc/4x4-scalar.c
+tools/xngen src/f32-gemm/scalar.c.in -D MR=4 -D NR=4 -D WASM=0 -D INC=0 -o src/f32-gemm/gen/4x4-minmax-scalar.c
+tools/xngen src/f32-gemm/scalar.c.in -D MR=4 -D NR=4 -D WASM=0 -D INC=1 -o src/f32-gemm/gen-inc/4x4inc-minmax-scalar.c
 
 ### WAsm-specific micro-kernels
-tools/xngen src/f32-gemm/scalar.c.in -D MR=1 -D NR=4 -D WASM=1 -D INC=0 -o src/f32-gemm/gen/1x4-wasm.c
-tools/xngen src/f32-gemm/scalar.c.in -D MR=1 -D NR=4 -D WASM=1 -D INC=1 -o src/f32-gemm/gen-inc/1x4-wasm.c
+tools/xngen src/f32-gemm/scalar.c.in -D MR=1 -D NR=4 -D WASM=1 -D INC=0 -o src/f32-gemm/gen/1x4-minmax-wasm.c
+tools/xngen src/f32-gemm/scalar.c.in -D MR=1 -D NR=4 -D WASM=1 -D INC=1 -o src/f32-gemm/gen-inc/1x4inc-minmax-wasm.c
 
-tools/xngen src/f32-gemm/scalar.c.in -D MR=2 -D NR=4 -D WASM=1 -D INC=0 -o src/f32-gemm/gen/2x4-wasm.c
-tools/xngen src/f32-gemm/scalar.c.in -D MR=2 -D NR=4 -D WASM=1 -D INC=1 -o src/f32-gemm/gen-inc/2x4-wasm.c
+tools/xngen src/f32-gemm/scalar.c.in -D MR=2 -D NR=4 -D WASM=1 -D INC=0 -o src/f32-gemm/gen/2x4-minmax-wasm.c
+tools/xngen src/f32-gemm/scalar.c.in -D MR=2 -D NR=4 -D WASM=1 -D INC=1 -o src/f32-gemm/gen-inc/2x4inc-minmax-wasm.c
 
-tools/xngen src/f32-gemm/scalar.c.in -D MR=4 -D NR=2 -D WASM=1 -D INC=0 -o src/f32-gemm/gen/4x2-wasm.c
+tools/xngen src/f32-gemm/scalar.c.in -D MR=4 -D NR=2 -D WASM=1 -D INC=0 -o src/f32-gemm/gen/4x2-minmax-wasm.c
 
-tools/xngen src/f32-gemm/scalar.c.in -D MR=4 -D NR=4 -D WASM=1 -D INC=0 -o src/f32-gemm/gen/4x4-wasm.c
-tools/xngen src/f32-gemm/scalar.c.in -D MR=4 -D NR=4 -D WASM=1 -D INC=1 -o src/f32-gemm/gen-inc/4x4-wasm.c
+tools/xngen src/f32-gemm/scalar.c.in -D MR=4 -D NR=4 -D WASM=1 -D INC=0 -o src/f32-gemm/gen/4x4-minmax-wasm.c
+tools/xngen src/f32-gemm/scalar.c.in -D MR=4 -D NR=4 -D WASM=1 -D INC=1 -o src/f32-gemm/gen-inc/4x4inc-minmax-wasm.c
 
 ############################### AArch64 assembly ##############################
-tools/xngen src/f32-gemm/1x12-aarch64-neonfma-cortex-a53.S.in -D INC=0 -o src/f32-gemm/gen/1x12-aarch64-neonfma-cortex-a53.S
-tools/xngen src/f32-gemm/1x12-aarch64-neonfma-cortex-a53.S.in -D INC=1 -o src/f32-gemm/gen-inc/1x12-aarch64-neonfma-cortex-a53.S
+tools/xngen src/f32-gemm/1x12-aarch64-neonfma-cortex-a53.S.in -D INC=0 -o src/f32-gemm/gen/1x12-minmax-aarch64-neonfma-cortex-a53.S
+tools/xngen src/f32-gemm/1x12-aarch64-neonfma-cortex-a53.S.in -D INC=1 -o src/f32-gemm/gen-inc/1x12inc-minmax-aarch64-neonfma-cortex-a53.S
 
-tools/xngen src/f32-gemm/1x8-aarch64-neonfma-cortex-a53.S.in  -D INC=0 -o src/f32-gemm/gen/1x8-aarch64-neonfma-cortex-a53.S
-tools/xngen src/f32-gemm/1x8-aarch64-neonfma-cortex-a53.S.in  -D INC=1 -o src/f32-gemm/gen-inc/1x8-aarch64-neonfma-cortex-a53.S
+tools/xngen src/f32-gemm/1x8-aarch64-neonfma-cortex-a53.S.in  -D INC=0 -o src/f32-gemm/gen/1x8-minmax-aarch64-neonfma-cortex-a53.S
+tools/xngen src/f32-gemm/1x8-aarch64-neonfma-cortex-a53.S.in  -D INC=1 -o src/f32-gemm/gen-inc/1x8inc-minmax-aarch64-neonfma-cortex-a53.S
 
-tools/xngen src/f32-gemm/1x8-aarch64-neonfma-cortex-a75.S.in  -D INC=0 -D PREFETCH=0 -o src/f32-gemm/gen/1x8-aarch64-neonfma-cortex-a57.S
-tools/xngen src/f32-gemm/1x8-aarch64-neonfma-cortex-a75.S.in  -D INC=1 -D PREFETCH=0 -o src/f32-gemm/gen-inc/1x8-aarch64-neonfma-cortex-a57.S
+tools/xngen src/f32-gemm/1x8-aarch64-neonfma-cortex-a75.S.in  -D INC=0 -D PREFETCH=0 -o src/f32-gemm/gen/1x8-minmax-aarch64-neonfma-cortex-a57.S
+tools/xngen src/f32-gemm/1x8-aarch64-neonfma-cortex-a75.S.in  -D INC=1 -D PREFETCH=0 -o src/f32-gemm/gen-inc/1x8inc-minmax-aarch64-neonfma-cortex-a57.S
 
-tools/xngen src/f32-gemm/1x8-aarch64-neonfma-cortex-a75.S.in  -D INC=0 -D PREFETCH=1 -o src/f32-gemm/gen/1x8-aarch64-neonfma-cortex-a75.S
-tools/xngen src/f32-gemm/1x8-aarch64-neonfma-cortex-a75.S.in  -D INC=1 -D PREFETCH=1 -o src/f32-gemm/gen-inc/1x8-aarch64-neonfma-cortex-a75.S
+tools/xngen src/f32-gemm/1x8-aarch64-neonfma-cortex-a75.S.in  -D INC=0 -D PREFETCH=1 -o src/f32-gemm/gen/1x8-minmax-aarch64-neonfma-cortex-a75.S
+tools/xngen src/f32-gemm/1x8-aarch64-neonfma-cortex-a75.S.in  -D INC=1 -D PREFETCH=1 -o src/f32-gemm/gen-inc/1x8inc-minmax-aarch64-neonfma-cortex-a75.S
 
-tools/xngen src/f32-gemm/4x12-aarch64-neonfma-cortex-a53.S.in -D INC=0 -o src/f32-gemm/gen/4x12-aarch64-neonfma-cortex-a53.S
-tools/xngen src/f32-gemm/4x12-aarch64-neonfma-cortex-a53.S.in -D INC=1 -o src/f32-gemm/gen-inc/4x12-aarch64-neonfma-cortex-a53.S
+tools/xngen src/f32-gemm/4x12-aarch64-neonfma-cortex-a53.S.in -D INC=0 -o src/f32-gemm/gen/4x12-minmax-aarch64-neonfma-cortex-a53.S
+tools/xngen src/f32-gemm/4x12-aarch64-neonfma-cortex-a53.S.in -D INC=1 -o src/f32-gemm/gen-inc/4x12inc-minmax-aarch64-neonfma-cortex-a53.S
 
-tools/xngen src/f32-gemm/4x8-aarch64-neonfma-cortex-a53.S.in  -D INC=0 -o src/f32-gemm/gen/4x8-aarch64-neonfma-cortex-a53.S
-tools/xngen src/f32-gemm/4x8-aarch64-neonfma-cortex-a53.S.in  -D INC=1 -o src/f32-gemm/gen-inc/4x8-aarch64-neonfma-cortex-a53.S
+tools/xngen src/f32-gemm/4x8-aarch64-neonfma-cortex-a53.S.in  -D INC=0 -o src/f32-gemm/gen/4x8-minmax-aarch64-neonfma-cortex-a53.S
+tools/xngen src/f32-gemm/4x8-aarch64-neonfma-cortex-a53.S.in  -D INC=1 -o src/f32-gemm/gen-inc/4x8inc-minmax-aarch64-neonfma-cortex-a53.S
 
-tools/xngen src/f32-gemm/4x8-aarch64-neonfma-cortex-a55.S.in  -D INC=0 -o src/f32-gemm/gen/4x8-aarch64-neonfma-cortex-a55.S
-tools/xngen src/f32-gemm/4x8-aarch64-neonfma-cortex-a55.S.in  -D INC=1 -o src/f32-gemm/gen-inc/4x8-aarch64-neonfma-cortex-a55.S
+tools/xngen src/f32-gemm/4x8-aarch64-neonfma-cortex-a55.S.in  -D INC=0 -o src/f32-gemm/gen/4x8-minmax-aarch64-neonfma-cortex-a55.S
+tools/xngen src/f32-gemm/4x8-aarch64-neonfma-cortex-a55.S.in  -D INC=1 -o src/f32-gemm/gen-inc/4x8inc-minmax-aarch64-neonfma-cortex-a55.S
 
-tools/xngen src/f32-gemm/4x8-aarch64-neonfma-cortex-a75.S.in  -D INC=0 -D PREFETCH=0 -o src/f32-gemm/gen/4x8-aarch64-neonfma-cortex-a57.S
-tools/xngen src/f32-gemm/4x8-aarch64-neonfma-cortex-a75.S.in  -D INC=1 -D PREFETCH=0 -o src/f32-gemm/gen-inc/4x8-aarch64-neonfma-cortex-a57.S
+tools/xngen src/f32-gemm/4x8-aarch64-neonfma-cortex-a75.S.in  -D INC=0 -D PREFETCH=0 -o src/f32-gemm/gen/4x8-minmax-aarch64-neonfma-cortex-a57.S
+tools/xngen src/f32-gemm/4x8-aarch64-neonfma-cortex-a75.S.in  -D INC=1 -D PREFETCH=0 -o src/f32-gemm/gen-inc/4x8inc-minmax-aarch64-neonfma-cortex-a57.S
 
-tools/xngen src/f32-gemm/4x8-aarch64-neonfma-cortex-a75.S.in  -D INC=0 -D PREFETCH=1 -o src/f32-gemm/gen/4x8-aarch64-neonfma-cortex-a75.S
-tools/xngen src/f32-gemm/4x8-aarch64-neonfma-cortex-a75.S.in  -D INC=1 -D PREFETCH=1 -o src/f32-gemm/gen-inc/4x8-aarch64-neonfma-cortex-a75.S
+tools/xngen src/f32-gemm/4x8-aarch64-neonfma-cortex-a75.S.in  -D INC=0 -D PREFETCH=1 -o src/f32-gemm/gen/4x8-minmax-aarch64-neonfma-cortex-a75.S
+tools/xngen src/f32-gemm/4x8-aarch64-neonfma-cortex-a75.S.in  -D INC=1 -D PREFETCH=1 -o src/f32-gemm/gen-inc/4x8inc-minmax-aarch64-neonfma-cortex-a75.S
 
-tools/xngen src/f32-gemm/4x8-aarch64-neonfma-ld128.S.in       -D INC=0 -o src/f32-gemm/gen/4x8-aarch64-neonfma-ld128.S
-tools/xngen src/f32-gemm/4x8-aarch64-neonfma-ld128.S.in       -D INC=1 -o src/f32-gemm/gen-inc/4x8-aarch64-neonfma-ld128.S
+tools/xngen src/f32-gemm/4x8-aarch64-neonfma-ld128.S.in       -D INC=0 -o src/f32-gemm/gen/4x8-minmax-aarch64-neonfma-ld128.S
+tools/xngen src/f32-gemm/4x8-aarch64-neonfma-ld128.S.in       -D INC=1 -o src/f32-gemm/gen-inc/4x8inc-minmax-aarch64-neonfma-ld128.S
 
-tools/xngen src/f32-gemm/4x8-aarch64-neonfma-ld64.S.in        -D INC=0 -o src/f32-gemm/gen/4x8-aarch64-neonfma-ld64.S
-tools/xngen src/f32-gemm/4x8-aarch64-neonfma-ld64.S.in        -D INC=1 -o src/f32-gemm/gen-inc/4x8-aarch64-neonfma-ld64.S
+tools/xngen src/f32-gemm/4x8-aarch64-neonfma-ld64.S.in        -D INC=0 -o src/f32-gemm/gen/4x8-minmax-aarch64-neonfma-ld64.S
+tools/xngen src/f32-gemm/4x8-aarch64-neonfma-ld64.S.in        -D INC=1 -o src/f32-gemm/gen-inc/4x8inc-minmax-aarch64-neonfma-ld64.S
 
-tools/xngen src/f32-gemm/5x8-aarch64-neonfma-cortex-a75.S.in  -D INC=0 -D PREFETCH=0 -o src/f32-gemm/gen/5x8-aarch64-neonfma-cortex-a57.S
-tools/xngen src/f32-gemm/5x8-aarch64-neonfma-cortex-a75.S.in  -D INC=1 -D PREFETCH=0 -o src/f32-gemm/gen-inc/5x8-aarch64-neonfma-cortex-a57.S
+tools/xngen src/f32-gemm/5x8-aarch64-neonfma-cortex-a75.S.in  -D INC=0 -D PREFETCH=0 -o src/f32-gemm/gen/5x8-minmax-aarch64-neonfma-cortex-a57.S
+tools/xngen src/f32-gemm/5x8-aarch64-neonfma-cortex-a75.S.in  -D INC=1 -D PREFETCH=0 -o src/f32-gemm/gen-inc/5x8inc-minmax-aarch64-neonfma-cortex-a57.S
 
-tools/xngen src/f32-gemm/5x8-aarch64-neonfma-cortex-a75.S.in  -D INC=0 -D PREFETCH=1 -o src/f32-gemm/gen/5x8-aarch64-neonfma-cortex-a75.S
-tools/xngen src/f32-gemm/5x8-aarch64-neonfma-cortex-a75.S.in  -D INC=1 -D PREFETCH=1 -o src/f32-gemm/gen-inc/5x8-aarch64-neonfma-cortex-a75.S
+tools/xngen src/f32-gemm/5x8-aarch64-neonfma-cortex-a75.S.in  -D INC=0 -D PREFETCH=1 -o src/f32-gemm/gen/5x8-minmax-aarch64-neonfma-cortex-a75.S
+tools/xngen src/f32-gemm/5x8-aarch64-neonfma-cortex-a75.S.in  -D INC=1 -D PREFETCH=1 -o src/f32-gemm/gen-inc/5x8inc-minmax-aarch64-neonfma-cortex-a75.S
 
-tools/xngen src/f32-gemm/6x8-aarch64-neonfma-cortex-a53.S.in  -D INC=0 -o src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a53.S
-tools/xngen src/f32-gemm/6x8-aarch64-neonfma-cortex-a53.S.in  -D INC=1 -o src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a53.S
+tools/xngen src/f32-gemm/6x8-aarch64-neonfma-cortex-a53.S.in  -D INC=0 -o src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-cortex-a53.S
+tools/xngen src/f32-gemm/6x8-aarch64-neonfma-cortex-a53.S.in  -D INC=1 -o src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-cortex-a53.S
 
-tools/xngen src/f32-gemm/6x8-aarch64-neonfma-cortex-a55.S.in  -D INC=0 -o src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a55.S
-tools/xngen src/f32-gemm/6x8-aarch64-neonfma-cortex-a55.S.in  -D INC=1 -o src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a55.S
+tools/xngen src/f32-gemm/6x8-aarch64-neonfma-cortex-a55.S.in  -D INC=0 -o src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-cortex-a55.S
+tools/xngen src/f32-gemm/6x8-aarch64-neonfma-cortex-a55.S.in  -D INC=1 -o src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-cortex-a55.S
 
-tools/xngen src/f32-gemm/6x8-aarch64-neonfma-cortex-a73.S.in  -D INC=0 -o src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a73.S
-tools/xngen src/f32-gemm/6x8-aarch64-neonfma-cortex-a73.S.in  -D INC=1 -o src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a73.S
+tools/xngen src/f32-gemm/6x8-aarch64-neonfma-cortex-a73.S.in  -D INC=0 -o src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-cortex-a73.S
+tools/xngen src/f32-gemm/6x8-aarch64-neonfma-cortex-a73.S.in  -D INC=1 -o src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-cortex-a73.S
 
-tools/xngen src/f32-gemm/6x8-aarch64-neonfma-cortex-a75.S.in  -D INC=0 -D PREFETCH=0 -o src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a57.S
-tools/xngen src/f32-gemm/6x8-aarch64-neonfma-cortex-a75.S.in  -D INC=1 -D PREFETCH=0 -o src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a57.S
+tools/xngen src/f32-gemm/6x8-aarch64-neonfma-cortex-a75.S.in  -D INC=0 -D PREFETCH=0 -o src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-cortex-a57.S
+tools/xngen src/f32-gemm/6x8-aarch64-neonfma-cortex-a75.S.in  -D INC=1 -D PREFETCH=0 -o src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-cortex-a57.S
 
-tools/xngen src/f32-gemm/6x8-aarch64-neonfma-cortex-a75.S.in  -D INC=0 -D PREFETCH=1 -o src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a75.S
-tools/xngen src/f32-gemm/6x8-aarch64-neonfma-cortex-a75.S.in  -D INC=1 -D PREFETCH=1 -o src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a75.S
+tools/xngen src/f32-gemm/6x8-aarch64-neonfma-cortex-a75.S.in  -D INC=0 -D PREFETCH=1 -o src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-cortex-a75.S
+tools/xngen src/f32-gemm/6x8-aarch64-neonfma-cortex-a75.S.in  -D INC=1 -D PREFETCH=1 -o src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-cortex-a75.S
 
-tools/xngen src/f32-gemm/6x8-aarch64-neonfma-ios.S.in         -D INC=0  -D PREFETCH=0 -o src/f32-gemm/gen/6x8-aarch64-neonfma-ios.S
-tools/xngen src/f32-gemm/6x8-aarch64-neonfma-ios.S.in         -D INC=1  -D PREFETCH=0 -o src/f32-gemm/gen-inc/6x8-aarch64-neonfma-ios.S
+tools/xngen src/f32-gemm/6x8-aarch64-neonfma-ios.S.in         -D INC=0  -D PREFETCH=0 -o src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-ios.S
+tools/xngen src/f32-gemm/6x8-aarch64-neonfma-ios.S.in         -D INC=1  -D PREFETCH=0 -o src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-ios.S
 
-tools/xngen src/f32-gemm/6x8-aarch64-neonfma-ld64.S.in        -D INC=0 -o src/f32-gemm/gen/6x8-aarch64-neonfma-ld64.S
-tools/xngen src/f32-gemm/6x8-aarch64-neonfma-ld64.S.in        -D INC=1 -o src/f32-gemm/gen-inc/6x8-aarch64-neonfma-ld64.S
+tools/xngen src/f32-gemm/6x8-aarch64-neonfma-ld64.S.in        -D INC=0 -o src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-ld64.S
+tools/xngen src/f32-gemm/6x8-aarch64-neonfma-ld64.S.in        -D INC=1 -o src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-ld64.S
 
-tools/xngen src/f32-gemm/6x8-aarch64-neonfma-ld128.S.in       -D INC=0 -o src/f32-gemm/gen/6x8-aarch64-neonfma-ld128.S
-tools/xngen src/f32-gemm/6x8-aarch64-neonfma-ld128.S.in       -D INC=1 -o src/f32-gemm/gen-inc/6x8-aarch64-neonfma-ld128.S
+tools/xngen src/f32-gemm/6x8-aarch64-neonfma-ld128.S.in       -D INC=0 -o src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-ld128.S
+tools/xngen src/f32-gemm/6x8-aarch64-neonfma-ld128.S.in       -D INC=1 -o src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-ld128.S
 
 ############################### AArch32 assembly ##############################
-tools/xngen src/f32-gemm/4x8-aarch32-neon-cortex-a75.S.in  -D INC=0 -D PREFETCH=0 -o src/f32-gemm/gen/4x8-aarch32-neon-cortex-a75.S
-tools/xngen src/f32-gemm/4x8-aarch32-neon-cortex-a75.S.in  -D INC=0 -D PREFETCH=1 -o src/f32-gemm/gen/4x8-aarch32-neon-pld-cortex-a75.S
+tools/xngen src/f32-gemm/4x8-aarch32-neon-cortex-a75.S.in  -D INC=0 -D PREFETCH=0 -o src/f32-gemm/gen/4x8-minmax-aarch32-neon-cortex-a75.S
+tools/xngen src/f32-gemm/4x8-aarch32-neon-cortex-a75.S.in  -D INC=0 -D PREFETCH=1 -o src/f32-gemm/gen/4x8-minmax-aarch32-neon-pld-cortex-a75.S
 
 ################################### ARM NEON ##################################
 ### LD64 micro-kernels
-tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=1 -D NR=8  -D FMA=0 -D INC=0 -D DUP=0 -o src/f32-gemm/gen/1x8-neon-lane-ld64.c
-tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=1 -D NR=8  -D FMA=0 -D INC=1 -D DUP=0 -o src/f32-gemm/gen-inc/1x8-neon-lane-ld64.c
-tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=1 -D NR=8  -D FMA=1 -D INC=0 -D DUP=0 -o src/f32-gemm/gen/1x8-neonfma-lane-ld64.c
-tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=1 -D NR=8  -D FMA=1 -D INC=1 -D DUP=0 -o src/f32-gemm/gen-inc/1x8-neonfma-lane-ld64.c
-tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=4 -D NR=8  -D FMA=0 -D INC=0 -D DUP=0 -o src/f32-gemm/gen/4x8-neon-lane-ld64.c
-tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=4 -D NR=8  -D FMA=0 -D INC=1 -D DUP=0 -o src/f32-gemm/gen-inc/4x8-neon-lane-ld64.c
-tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=4 -D NR=8  -D FMA=1 -D INC=0 -D DUP=0 -o src/f32-gemm/gen/4x8-neonfma-lane-ld64.c
-tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=4 -D NR=8  -D FMA=1 -D INC=1 -D DUP=0 -o src/f32-gemm/gen-inc/4x8-neonfma-lane-ld64.c
-tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=5 -D NR=8  -D FMA=0 -D INC=0 -D DUP=0 -o src/f32-gemm/gen/5x8-neon-lane-ld64.c
-tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=5 -D NR=8  -D FMA=0 -D INC=1 -D DUP=0 -o src/f32-gemm/gen-inc/5x8-neon-lane-ld64.c
-tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=5 -D NR=8  -D FMA=1 -D INC=0 -D DUP=0 -o src/f32-gemm/gen/5x8-neonfma-lane-ld64.c
-tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=5 -D NR=8  -D FMA=1 -D INC=1 -D DUP=0 -o src/f32-gemm/gen-inc/5x8-neonfma-lane-ld64.c
-tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=6 -D NR=8  -D FMA=0 -D INC=0 -D DUP=0 -o src/f32-gemm/gen/6x8-neon-lane-ld64.c
-tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=6 -D NR=8  -D FMA=0 -D INC=1 -D DUP=0 -o src/f32-gemm/gen-inc/6x8-neon-lane-ld64.c
-tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=6 -D NR=8  -D FMA=1 -D INC=0 -D DUP=0 -o src/f32-gemm/gen/6x8-neonfma-lane-ld64.c
-tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=6 -D NR=8  -D FMA=1 -D INC=1 -D DUP=0 -o src/f32-gemm/gen-inc/6x8-neonfma-lane-ld64.c
+tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=1 -D NR=8  -D FMA=0 -D INC=0 -D DUP=0 -o src/f32-gemm/gen/1x8-minmax-neon-lane-ld64.c
+tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=1 -D NR=8  -D FMA=0 -D INC=1 -D DUP=0 -o src/f32-gemm/gen-inc/1x8inc-minmax-neon-lane-ld64.c
+tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=1 -D NR=8  -D FMA=1 -D INC=0 -D DUP=0 -o src/f32-gemm/gen/1x8-minmax-neonfma-lane-ld64.c
+tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=1 -D NR=8  -D FMA=1 -D INC=1 -D DUP=0 -o src/f32-gemm/gen-inc/1x8inc-minmax-neonfma-lane-ld64.c
+tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=4 -D NR=8  -D FMA=0 -D INC=0 -D DUP=0 -o src/f32-gemm/gen/4x8-minmax-neon-lane-ld64.c
+tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=4 -D NR=8  -D FMA=0 -D INC=1 -D DUP=0 -o src/f32-gemm/gen-inc/4x8inc-minmax-neon-lane-ld64.c
+tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=4 -D NR=8  -D FMA=1 -D INC=0 -D DUP=0 -o src/f32-gemm/gen/4x8-minmax-neonfma-lane-ld64.c
+tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=4 -D NR=8  -D FMA=1 -D INC=1 -D DUP=0 -o src/f32-gemm/gen-inc/4x8inc-minmax-neonfma-lane-ld64.c
+tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=5 -D NR=8  -D FMA=0 -D INC=0 -D DUP=0 -o src/f32-gemm/gen/5x8-minmax-neon-lane-ld64.c
+tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=5 -D NR=8  -D FMA=0 -D INC=1 -D DUP=0 -o src/f32-gemm/gen-inc/5x8inc-minmax-neon-lane-ld64.c
+tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=5 -D NR=8  -D FMA=1 -D INC=0 -D DUP=0 -o src/f32-gemm/gen/5x8-minmax-neonfma-lane-ld64.c
+tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=5 -D NR=8  -D FMA=1 -D INC=1 -D DUP=0 -o src/f32-gemm/gen-inc/5x8inc-minmax-neonfma-lane-ld64.c
+tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=6 -D NR=8  -D FMA=0 -D INC=0 -D DUP=0 -o src/f32-gemm/gen/6x8-minmax-neon-lane-ld64.c
+tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=6 -D NR=8  -D FMA=0 -D INC=1 -D DUP=0 -o src/f32-gemm/gen-inc/6x8inc-minmax-neon-lane-ld64.c
+tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=6 -D NR=8  -D FMA=1 -D INC=0 -D DUP=0 -o src/f32-gemm/gen/6x8-minmax-neonfma-lane-ld64.c
+tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=6 -D NR=8  -D FMA=1 -D INC=1 -D DUP=0 -o src/f32-gemm/gen-inc/6x8inc-minmax-neonfma-lane-ld64.c
 ### LD128 micro-kernels
-tools/xngen src/f32-gemm/neon-ld128.c.in     -D MR=4 -D NR=8  -D FMA=0 -D INC=0 -D DUP=0 -o src/f32-gemm/gen/4x8-neon-lane-ld128.c
-tools/xngen src/f32-gemm/neon-ld128.c.in     -D MR=4 -D NR=8  -D FMA=0 -D INC=1 -D DUP=0 -o src/f32-gemm/gen-inc/4x8-neon-lane-ld128.c
-tools/xngen src/f32-gemm/neon-ld128.c.in     -D MR=4 -D NR=8  -D FMA=1 -D INC=0 -D DUP=0 -o src/f32-gemm/gen/4x8-neonfma-lane-ld128.c
-tools/xngen src/f32-gemm/neon-ld128.c.in     -D MR=4 -D NR=8  -D FMA=1 -D INC=1 -D DUP=0 -o src/f32-gemm/gen-inc/4x8-neonfma-lane-ld128.c
-tools/xngen src/f32-gemm/neon-ld128.c.in     -D MR=6 -D NR=8  -D FMA=0 -D INC=0 -D DUP=0 -o src/f32-gemm/gen/6x8-neon-lane-ld128.c
-tools/xngen src/f32-gemm/neon-ld128.c.in     -D MR=6 -D NR=8  -D FMA=0 -D INC=1 -D DUP=0 -o src/f32-gemm/gen-inc/6x8-neon-lane-ld128.c
-tools/xngen src/f32-gemm/neon-ld128.c.in     -D MR=6 -D NR=8  -D FMA=1 -D INC=0 -D DUP=0 -o src/f32-gemm/gen/6x8-neonfma-lane-ld128.c
-tools/xngen src/f32-gemm/neon-ld128.c.in     -D MR=6 -D NR=8  -D FMA=1 -D INC=1 -D DUP=0 -o src/f32-gemm/gen-inc/6x8-neonfma-lane-ld128.c
+tools/xngen src/f32-gemm/neon-ld128.c.in     -D MR=4 -D NR=8  -D FMA=0 -D INC=0 -D DUP=0 -o src/f32-gemm/gen/4x8-minmax-neon-lane-ld128.c
+tools/xngen src/f32-gemm/neon-ld128.c.in     -D MR=4 -D NR=8  -D FMA=0 -D INC=1 -D DUP=0 -o src/f32-gemm/gen-inc/4x8inc-minmax-neon-lane-ld128.c
+tools/xngen src/f32-gemm/neon-ld128.c.in     -D MR=4 -D NR=8  -D FMA=1 -D INC=0 -D DUP=0 -o src/f32-gemm/gen/4x8-minmax-neonfma-lane-ld128.c
+tools/xngen src/f32-gemm/neon-ld128.c.in     -D MR=4 -D NR=8  -D FMA=1 -D INC=1 -D DUP=0 -o src/f32-gemm/gen-inc/4x8inc-minmax-neonfma-lane-ld128.c
+tools/xngen src/f32-gemm/neon-ld128.c.in     -D MR=6 -D NR=8  -D FMA=0 -D INC=0 -D DUP=0 -o src/f32-gemm/gen/6x8-minmax-neon-lane-ld128.c
+tools/xngen src/f32-gemm/neon-ld128.c.in     -D MR=6 -D NR=8  -D FMA=0 -D INC=1 -D DUP=0 -o src/f32-gemm/gen-inc/6x8inc-minmax-neon-lane-ld128.c
+tools/xngen src/f32-gemm/neon-ld128.c.in     -D MR=6 -D NR=8  -D FMA=1 -D INC=0 -D DUP=0 -o src/f32-gemm/gen/6x8-minmax-neonfma-lane-ld128.c
+tools/xngen src/f32-gemm/neon-ld128.c.in     -D MR=6 -D NR=8  -D FMA=1 -D INC=1 -D DUP=0 -o src/f32-gemm/gen-inc/6x8inc-minmax-neonfma-lane-ld128.c
 ### MRx2 micro-kernels
-tools/xngen src/f32-gemm/MRx2-neon-ld64.c.in -D MR=4 -D NR=2  -D FMA=0 -D INC=0 -D DUP=0 -o src/f32-gemm/gen/4x2-neon-lane-ld64.c
-tools/xngen src/f32-gemm/MRx2-neon-ld64.c.in -D MR=4 -D NR=2  -D FMA=1 -D INC=0 -D DUP=0 -o src/f32-gemm/gen/4x2-neonfma-lane-ld64.c
+tools/xngen src/f32-gemm/MRx2-neon-ld64.c.in -D MR=4 -D NR=2  -D FMA=0 -D INC=0 -D DUP=0 -o src/f32-gemm/gen/4x2-minmax-neon-lane-ld64.c
+tools/xngen src/f32-gemm/MRx2-neon-ld64.c.in -D MR=4 -D NR=2  -D FMA=1 -D INC=0 -D DUP=0 -o src/f32-gemm/gen/4x2-minmax-neonfma-lane-ld64.c
 ### DUP LD64 micro-kernels
-tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=1 -D NR=8  -D FMA=0 -D INC=0 -D DUP=1 -o src/f32-gemm/gen/1x8-neon-dup-ld64.c
-tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=1 -D NR=8  -D FMA=0 -D INC=1 -D DUP=1 -o src/f32-gemm/gen-inc/1x8-neon-dup-ld64.c
-tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=1 -D NR=8  -D FMA=1 -D INC=0 -D DUP=1 -o src/f32-gemm/gen/1x8-neonfma-dup-ld64.c
-tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=1 -D NR=8  -D FMA=1 -D INC=1 -D DUP=1 -o src/f32-gemm/gen-inc/1x8-neonfma-dup-ld64.c
-tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=4 -D NR=8  -D FMA=0 -D INC=0 -D DUP=1 -o src/f32-gemm/gen/4x8-neon-dup-ld64.c
-tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=4 -D NR=8  -D FMA=0 -D INC=1 -D DUP=1 -o src/f32-gemm/gen-inc/4x8-neon-dup-ld64.c
-tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=4 -D NR=8  -D FMA=1 -D INC=0 -D DUP=1 -o src/f32-gemm/gen/4x8-neonfma-dup-ld64.c
-tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=4 -D NR=8  -D FMA=1 -D INC=1 -D DUP=1 -o src/f32-gemm/gen-inc/4x8-neonfma-dup-ld64.c
-tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=6 -D NR=8  -D FMA=0 -D INC=0 -D DUP=1 -o src/f32-gemm/gen/6x8-neon-dup-ld64.c
-tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=6 -D NR=8  -D FMA=0 -D INC=1 -D DUP=1 -o src/f32-gemm/gen-inc/6x8-neon-dup-ld64.c
-tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=6 -D NR=8  -D FMA=1 -D INC=0 -D DUP=1 -o src/f32-gemm/gen/6x8-neonfma-dup-ld64.c
-tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=6 -D NR=8  -D FMA=1 -D INC=1 -D DUP=1 -o src/f32-gemm/gen-inc/6x8-neonfma-dup-ld64.c
+tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=1 -D NR=8  -D FMA=0 -D INC=0 -D DUP=1 -o src/f32-gemm/gen/1x8-minmax-neon-dup-ld64.c
+tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=1 -D NR=8  -D FMA=0 -D INC=1 -D DUP=1 -o src/f32-gemm/gen-inc/1x8inc-minmax-neon-dup-ld64.c
+tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=1 -D NR=8  -D FMA=1 -D INC=0 -D DUP=1 -o src/f32-gemm/gen/1x8-minmax-neonfma-dup-ld64.c
+tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=1 -D NR=8  -D FMA=1 -D INC=1 -D DUP=1 -o src/f32-gemm/gen-inc/1x8inc-minmax-neonfma-dup-ld64.c
+tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=4 -D NR=8  -D FMA=0 -D INC=0 -D DUP=1 -o src/f32-gemm/gen/4x8-minmax-neon-dup-ld64.c
+tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=4 -D NR=8  -D FMA=0 -D INC=1 -D DUP=1 -o src/f32-gemm/gen-inc/4x8inc-minmax-neon-dup-ld64.c
+tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=4 -D NR=8  -D FMA=1 -D INC=0 -D DUP=1 -o src/f32-gemm/gen/4x8-minmax-neonfma-dup-ld64.c
+tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=4 -D NR=8  -D FMA=1 -D INC=1 -D DUP=1 -o src/f32-gemm/gen-inc/4x8inc-minmax-neonfma-dup-ld64.c
+tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=6 -D NR=8  -D FMA=0 -D INC=0 -D DUP=1 -o src/f32-gemm/gen/6x8-minmax-neon-dup-ld64.c
+tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=6 -D NR=8  -D FMA=0 -D INC=1 -D DUP=1 -o src/f32-gemm/gen-inc/6x8inc-minmax-neon-dup-ld64.c
+tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=6 -D NR=8  -D FMA=1 -D INC=0 -D DUP=1 -o src/f32-gemm/gen/6x8-minmax-neonfma-dup-ld64.c
+tools/xngen src/f32-gemm/neon-ld64.c.in      -D MR=6 -D NR=8  -D FMA=1 -D INC=1 -D DUP=1 -o src/f32-gemm/gen-inc/6x8inc-minmax-neonfma-dup-ld64.c
 ### DUP LD128 midupkernels
-tools/xngen src/f32-gemm/neon-ld128.c.in     -D MR=4 -D NR=8  -D FMA=0 -D INC=0 -D DUP=1 -o src/f32-gemm/gen/4x8-neon-dup-ld128.c
-tools/xngen src/f32-gemm/neon-ld128.c.in     -D MR=4 -D NR=8  -D FMA=0 -D INC=1 -D DUP=1 -o src/f32-gemm/gen-inc/4x8-neon-dup-ld128.c
-tools/xngen src/f32-gemm/neon-ld128.c.in     -D MR=4 -D NR=8  -D FMA=1 -D INC=0 -D DUP=1 -o src/f32-gemm/gen/4x8-neonfma-dup-ld128.c
-tools/xngen src/f32-gemm/neon-ld128.c.in     -D MR=4 -D NR=8  -D FMA=1 -D INC=1 -D DUP=1 -o src/f32-gemm/gen-inc/4x8-neonfma-dup-ld128.c
-tools/xngen src/f32-gemm/neon-ld128.c.in     -D MR=6 -D NR=8  -D FMA=0 -D INC=0 -D DUP=1 -o src/f32-gemm/gen/6x8-neon-dup-ld128.c
-tools/xngen src/f32-gemm/neon-ld128.c.in     -D MR=6 -D NR=8  -D FMA=0 -D INC=1 -D DUP=1 -o src/f32-gemm/gen-inc/6x8-neon-dup-ld128.c
-tools/xngen src/f32-gemm/neon-ld128.c.in     -D MR=6 -D NR=8  -D FMA=1 -D INC=0 -D DUP=1 -o src/f32-gemm/gen/6x8-neonfma-dup-ld128.c
-tools/xngen src/f32-gemm/neon-ld128.c.in     -D MR=6 -D NR=8  -D FMA=1 -D INC=1 -D DUP=1 -o src/f32-gemm/gen-inc/6x8-neonfma-dup-ld128.c
+tools/xngen src/f32-gemm/neon-ld128.c.in     -D MR=4 -D NR=8  -D FMA=0 -D INC=0 -D DUP=1 -o src/f32-gemm/gen/4x8-minmax-neon-dup-ld128.c
+tools/xngen src/f32-gemm/neon-ld128.c.in     -D MR=4 -D NR=8  -D FMA=0 -D INC=1 -D DUP=1 -o src/f32-gemm/gen-inc/4x8inc-minmax-neon-dup-ld128.c
+tools/xngen src/f32-gemm/neon-ld128.c.in     -D MR=4 -D NR=8  -D FMA=1 -D INC=0 -D DUP=1 -o src/f32-gemm/gen/4x8-minmax-neonfma-dup-ld128.c
+tools/xngen src/f32-gemm/neon-ld128.c.in     -D MR=4 -D NR=8  -D FMA=1 -D INC=1 -D DUP=1 -o src/f32-gemm/gen-inc/4x8inc-minmax-neonfma-dup-ld128.c
+tools/xngen src/f32-gemm/neon-ld128.c.in     -D MR=6 -D NR=8  -D FMA=0 -D INC=0 -D DUP=1 -o src/f32-gemm/gen/6x8-minmax-neon-dup-ld128.c
+tools/xngen src/f32-gemm/neon-ld128.c.in     -D MR=6 -D NR=8  -D FMA=0 -D INC=1 -D DUP=1 -o src/f32-gemm/gen-inc/6x8inc-minmax-neon-dup-ld128.c
+tools/xngen src/f32-gemm/neon-ld128.c.in     -D MR=6 -D NR=8  -D FMA=1 -D INC=0 -D DUP=1 -o src/f32-gemm/gen/6x8-minmax-neonfma-dup-ld128.c
+tools/xngen src/f32-gemm/neon-ld128.c.in     -D MR=6 -D NR=8  -D FMA=1 -D INC=1 -D DUP=1 -o src/f32-gemm/gen-inc/6x8inc-minmax-neonfma-dup-ld128.c
 ### LOAD4+PERMUTE micro-kernels
-tools/xngen src/f32-gemm/neon-shuffle.c.in   -D MR=1 -D NR=8  -D FMA=0 -D INC=0 -o src/f32-gemm/gen/1x8s4-neon.c
-tools/xngen src/f32-gemm/neon-shuffle.c.in   -D MR=1 -D NR=8  -D FMA=0 -D INC=1 -o src/f32-gemm/gen-inc/1x8s4-neon.c
-tools/xngen src/f32-gemm/neon-shuffle.c.in   -D MR=1 -D NR=8  -D FMA=1 -D INC=0 -o src/f32-gemm/gen/1x8s4-neonfma.c
-tools/xngen src/f32-gemm/neon-shuffle.c.in   -D MR=1 -D NR=8  -D FMA=1 -D INC=1 -o src/f32-gemm/gen-inc/1x8s4-neonfma.c
-tools/xngen src/f32-gemm/neon-shuffle.c.in   -D MR=4 -D NR=8  -D FMA=0 -D INC=0 -o src/f32-gemm/gen/4x8s4-neon.c
-tools/xngen src/f32-gemm/neon-shuffle.c.in   -D MR=4 -D NR=8  -D FMA=0 -D INC=1 -o src/f32-gemm/gen-inc/4x8s4-neon.c
-tools/xngen src/f32-gemm/neon-shuffle.c.in   -D MR=4 -D NR=8  -D FMA=1 -D INC=0 -o src/f32-gemm/gen/4x8s4-neonfma.c
-tools/xngen src/f32-gemm/neon-shuffle.c.in   -D MR=4 -D NR=8  -D FMA=1 -D INC=1 -o src/f32-gemm/gen-inc/4x8s4-neonfma.c
-tools/xngen src/f32-gemm/neon-shuffle.c.in   -D MR=6 -D NR=8  -D FMA=0 -D INC=0 -o src/f32-gemm/gen/6x8s4-neon.c
-tools/xngen src/f32-gemm/neon-shuffle.c.in   -D MR=6 -D NR=8  -D FMA=0 -D INC=1 -o src/f32-gemm/gen-inc/6x8s4-neon.c
-tools/xngen src/f32-gemm/neon-shuffle.c.in   -D MR=6 -D NR=8  -D FMA=1 -D INC=0 -o src/f32-gemm/gen/6x8s4-neonfma.c
-tools/xngen src/f32-gemm/neon-shuffle.c.in   -D MR=6 -D NR=8  -D FMA=1 -D INC=1 -o src/f32-gemm/gen-inc/6x8s4-neonfma.c
-tools/xngen src/f32-gemm/neon-shuffle.c.in   -D MR=8 -D NR=8  -D FMA=0 -D INC=0 -o src/f32-gemm/gen/8x8s4-neon.c
-tools/xngen src/f32-gemm/neon-shuffle.c.in   -D MR=8 -D NR=8  -D FMA=0 -D INC=1 -o src/f32-gemm/gen-inc/8x8s4-neon.c
-tools/xngen src/f32-gemm/neon-shuffle.c.in   -D MR=8 -D NR=8  -D FMA=1 -D INC=0 -o src/f32-gemm/gen/8x8s4-neonfma.c
-tools/xngen src/f32-gemm/neon-shuffle.c.in   -D MR=8 -D NR=8  -D FMA=1 -D INC=1 -o src/f32-gemm/gen-inc/8x8s4-neonfma.c
+tools/xngen src/f32-gemm/neon-shuffle.c.in   -D MR=1 -D NR=8  -D FMA=0 -D INC=0 -o src/f32-gemm/gen/1x8s4-minmax-neon.c
+tools/xngen src/f32-gemm/neon-shuffle.c.in   -D MR=1 -D NR=8  -D FMA=0 -D INC=1 -o src/f32-gemm/gen-inc/1x8s4inc-minmax-neon.c
+tools/xngen src/f32-gemm/neon-shuffle.c.in   -D MR=1 -D NR=8  -D FMA=1 -D INC=0 -o src/f32-gemm/gen/1x8s4-minmax-neonfma.c
+tools/xngen src/f32-gemm/neon-shuffle.c.in   -D MR=1 -D NR=8  -D FMA=1 -D INC=1 -o src/f32-gemm/gen-inc/1x8s4inc-minmax-neonfma.c
+tools/xngen src/f32-gemm/neon-shuffle.c.in   -D MR=4 -D NR=8  -D FMA=0 -D INC=0 -o src/f32-gemm/gen/4x8s4-minmax-neon.c
+tools/xngen src/f32-gemm/neon-shuffle.c.in   -D MR=4 -D NR=8  -D FMA=0 -D INC=1 -o src/f32-gemm/gen-inc/4x8s4inc-minmax-neon.c
+tools/xngen src/f32-gemm/neon-shuffle.c.in   -D MR=4 -D NR=8  -D FMA=1 -D INC=0 -o src/f32-gemm/gen/4x8s4-minmax-neonfma.c
+tools/xngen src/f32-gemm/neon-shuffle.c.in   -D MR=4 -D NR=8  -D FMA=1 -D INC=1 -o src/f32-gemm/gen-inc/4x8s4inc-minmax-neonfma.c
+tools/xngen src/f32-gemm/neon-shuffle.c.in   -D MR=6 -D NR=8  -D FMA=0 -D INC=0 -o src/f32-gemm/gen/6x8s4-minmax-neon.c
+tools/xngen src/f32-gemm/neon-shuffle.c.in   -D MR=6 -D NR=8  -D FMA=0 -D INC=1 -o src/f32-gemm/gen-inc/6x8s4inc-minmax-neon.c
+tools/xngen src/f32-gemm/neon-shuffle.c.in   -D MR=6 -D NR=8  -D FMA=1 -D INC=0 -o src/f32-gemm/gen/6x8s4-minmax-neonfma.c
+tools/xngen src/f32-gemm/neon-shuffle.c.in   -D MR=6 -D NR=8  -D FMA=1 -D INC=1 -o src/f32-gemm/gen-inc/6x8s4inc-minmax-neonfma.c
+tools/xngen src/f32-gemm/neon-shuffle.c.in   -D MR=8 -D NR=8  -D FMA=0 -D INC=0 -o src/f32-gemm/gen/8x8s4-minmax-neon.c
+tools/xngen src/f32-gemm/neon-shuffle.c.in   -D MR=8 -D NR=8  -D FMA=0 -D INC=1 -o src/f32-gemm/gen-inc/8x8s4inc-minmax-neon.c
+tools/xngen src/f32-gemm/neon-shuffle.c.in   -D MR=8 -D NR=8  -D FMA=1 -D INC=0 -o src/f32-gemm/gen/8x8s4-minmax-neonfma.c
+tools/xngen src/f32-gemm/neon-shuffle.c.in   -D MR=8 -D NR=8  -D FMA=1 -D INC=1 -o src/f32-gemm/gen-inc/8x8s4inc-minmax-neonfma.c
 
 #################################### PSIMD ####################################
 ### LOAD1+BROADCAST micro-kernels
-tools/xngen src/f32-gemm/psimd-loadsplat.c.in -D MR=1 -D NR=8 -D INC=0 -o src/f32-gemm/gen/1x8-psimd-loadsplat.c
-tools/xngen src/f32-gemm/psimd-loadsplat.c.in -D MR=1 -D NR=8 -D INC=1 -o src/f32-gemm/gen-inc/1x8-psimd-loadsplat.c
+tools/xngen src/f32-gemm/psimd-loadsplat.c.in -D MR=1 -D NR=8 -D INC=0 -o src/f32-gemm/gen/1x8-minmax-psimd-loadsplat.c
+tools/xngen src/f32-gemm/psimd-loadsplat.c.in -D MR=1 -D NR=8 -D INC=1 -o src/f32-gemm/gen-inc/1x8inc-minmax-psimd-loadsplat.c
 
-tools/xngen src/f32-gemm/psimd-loadsplat.c.in -D MR=4 -D NR=8 -D INC=0 -o src/f32-gemm/gen/4x8-psimd-loadsplat.c
-tools/xngen src/f32-gemm/psimd-loadsplat.c.in -D MR=4 -D NR=8 -D INC=1 -o src/f32-gemm/gen-inc/4x8-psimd-loadsplat.c
+tools/xngen src/f32-gemm/psimd-loadsplat.c.in -D MR=4 -D NR=8 -D INC=0 -o src/f32-gemm/gen/4x8-minmax-psimd-loadsplat.c
+tools/xngen src/f32-gemm/psimd-loadsplat.c.in -D MR=4 -D NR=8 -D INC=1 -o src/f32-gemm/gen-inc/4x8inc-minmax-psimd-loadsplat.c
 
-tools/xngen src/f32-gemm/psimd-loadsplat.c.in -D MR=6 -D NR=8 -D INC=0 -o src/f32-gemm/gen/6x8-psimd-loadsplat.c
-tools/xngen src/f32-gemm/psimd-loadsplat.c.in -D MR=6 -D NR=8 -D INC=1 -o src/f32-gemm/gen-inc/6x8-psimd-loadsplat.c
+tools/xngen src/f32-gemm/psimd-loadsplat.c.in -D MR=6 -D NR=8 -D INC=0 -o src/f32-gemm/gen/6x8-minmax-psimd-loadsplat.c
+tools/xngen src/f32-gemm/psimd-loadsplat.c.in -D MR=6 -D NR=8 -D INC=1 -o src/f32-gemm/gen-inc/6x8inc-minmax-psimd-loadsplat.c
 ### LOAD4+DUPLICATE micro-kernels
-tools/xngen src/f32-gemm/psimd-splat.c.in -D MR=1 -D NR=8 -D INC=0 -o src/f32-gemm/gen/1x8-psimd-splat.c
-tools/xngen src/f32-gemm/psimd-splat.c.in -D MR=1 -D NR=8 -D INC=1 -o src/f32-gemm/gen-inc/1x8-psimd-splat.c
+tools/xngen src/f32-gemm/psimd-splat.c.in -D MR=1 -D NR=8 -D INC=0 -o src/f32-gemm/gen/1x8-minmax-psimd-splat.c
+tools/xngen src/f32-gemm/psimd-splat.c.in -D MR=1 -D NR=8 -D INC=1 -o src/f32-gemm/gen-inc/1x8inc-minmax-psimd-splat.c
 
-tools/xngen src/f32-gemm/psimd-splat.c.in -D MR=4 -D NR=8 -D INC=0 -o src/f32-gemm/gen/4x8-psimd-splat.c
-tools/xngen src/f32-gemm/psimd-splat.c.in -D MR=4 -D NR=8 -D INC=1 -o src/f32-gemm/gen-inc/4x8-psimd-splat.c
+tools/xngen src/f32-gemm/psimd-splat.c.in -D MR=4 -D NR=8 -D INC=0 -o src/f32-gemm/gen/4x8-minmax-psimd-splat.c
+tools/xngen src/f32-gemm/psimd-splat.c.in -D MR=4 -D NR=8 -D INC=1 -o src/f32-gemm/gen-inc/4x8inc-minmax-psimd-splat.c
 
-tools/xngen src/f32-gemm/psimd-splat.c.in -D MR=6 -D NR=8 -D INC=0 -o src/f32-gemm/gen/6x8-psimd-splat.c
-tools/xngen src/f32-gemm/psimd-splat.c.in -D MR=6 -D NR=8 -D INC=1 -o src/f32-gemm/gen-inc/6x8-psimd-splat.c
+tools/xngen src/f32-gemm/psimd-splat.c.in -D MR=6 -D NR=8 -D INC=0 -o src/f32-gemm/gen/6x8-minmax-psimd-splat.c
+tools/xngen src/f32-gemm/psimd-splat.c.in -D MR=6 -D NR=8 -D INC=1 -o src/f32-gemm/gen-inc/6x8inc-minmax-psimd-splat.c
 ### LOAD4+PERMUTE micro-kernels
-tools/xngen src/f32-gemm/psimd-s4.c.in -D MR=1 -D NR=8 -D INC=0 -o src/f32-gemm/gen/1x8s4-psimd.c
-tools/xngen src/f32-gemm/psimd-s4.c.in -D MR=1 -D NR=8 -D INC=1 -o src/f32-gemm/gen-inc/1x8s4-psimd.c
+tools/xngen src/f32-gemm/psimd-s4.c.in -D MR=1 -D NR=8 -D INC=0 -o src/f32-gemm/gen/1x8s4-minmax-psimd.c
+tools/xngen src/f32-gemm/psimd-s4.c.in -D MR=1 -D NR=8 -D INC=1 -o src/f32-gemm/gen-inc/1x8s4inc-minmax-psimd.c
 
-tools/xngen src/f32-gemm/psimd-s4.c.in -D MR=4 -D NR=8 -D INC=0 -o src/f32-gemm/gen/4x8s4-psimd.c
-tools/xngen src/f32-gemm/psimd-s4.c.in -D MR=4 -D NR=8 -D INC=1 -o src/f32-gemm/gen-inc/4x8s4-psimd.c
+tools/xngen src/f32-gemm/psimd-s4.c.in -D MR=4 -D NR=8 -D INC=0 -o src/f32-gemm/gen/4x8s4-minmax-psimd.c
+tools/xngen src/f32-gemm/psimd-s4.c.in -D MR=4 -D NR=8 -D INC=1 -o src/f32-gemm/gen-inc/4x8s4inc-minmax-psimd.c
 
-tools/xngen src/f32-gemm/psimd-s4.c.in -D MR=6 -D NR=8 -D INC=0 -o src/f32-gemm/gen/6x8s4-psimd.c
-tools/xngen src/f32-gemm/psimd-s4.c.in -D MR=6 -D NR=8 -D INC=1 -o src/f32-gemm/gen-inc/6x8s4-psimd.c
+tools/xngen src/f32-gemm/psimd-s4.c.in -D MR=6 -D NR=8 -D INC=0 -o src/f32-gemm/gen/6x8s4-minmax-psimd.c
+tools/xngen src/f32-gemm/psimd-s4.c.in -D MR=6 -D NR=8 -D INC=1 -o src/f32-gemm/gen-inc/6x8s4inc-minmax-psimd.c
 ### MRx2 micro-kernels
-tools/xngen src/f32-gemm/MRx2c4-psimd.c.in -D MR=4 -D NR=2 -o src/f32-gemm/gen/4x2c4-psimd.c
+tools/xngen src/f32-gemm/MRx2c4-psimd.c.in -D MR=4 -D NR=2 -o src/f32-gemm/gen/4x2c4-minmax-psimd.c
 
 ################################### x86 SSE ###################################
 ### LOAD1+BROADCAST micro-kernels
-tools/xngen src/f32-gemm/sse-load1.c.in -D MR=1 -D NR=8 -D INC=0 -o src/f32-gemm/gen/1x8-sse-load1.c
-tools/xngen src/f32-gemm/sse-load1.c.in -D MR=1 -D NR=8 -D INC=1 -o src/f32-gemm/gen-inc/1x8-sse-load1.c
+tools/xngen src/f32-gemm/sse-load1.c.in -D MR=1 -D NR=8 -D INC=0 -o src/f32-gemm/gen/1x8-minmax-sse-load1.c
+tools/xngen src/f32-gemm/sse-load1.c.in -D MR=1 -D NR=8 -D INC=1 -o src/f32-gemm/gen-inc/1x8inc-minmax-sse-load1.c
 
-tools/xngen src/f32-gemm/sse-load1.c.in -D MR=4 -D NR=8 -D INC=0 -o src/f32-gemm/gen/4x8-sse-load1.c
-tools/xngen src/f32-gemm/sse-load1.c.in -D MR=4 -D NR=8 -D INC=1 -o src/f32-gemm/gen-inc/4x8-sse-load1.c
+tools/xngen src/f32-gemm/sse-load1.c.in -D MR=4 -D NR=8 -D INC=0 -o src/f32-gemm/gen/4x8-minmax-sse-load1.c
+tools/xngen src/f32-gemm/sse-load1.c.in -D MR=4 -D NR=8 -D INC=1 -o src/f32-gemm/gen-inc/4x8inc-minmax-sse-load1.c
 ### LOAD4+DUPLICATE micro-kernels
-tools/xngen src/f32-gemm/sse-dup.c.in -D MR=1 -D NR=8 -D INC=0 -o src/f32-gemm/gen/1x8-sse-dup.c
-tools/xngen src/f32-gemm/sse-dup.c.in -D MR=1 -D NR=8 -D INC=1 -o src/f32-gemm/gen-inc/1x8-sse-dup.c
+tools/xngen src/f32-gemm/sse-dup.c.in -D MR=1 -D NR=8 -D INC=0 -o src/f32-gemm/gen/1x8-minmax-sse-dup.c
+tools/xngen src/f32-gemm/sse-dup.c.in -D MR=1 -D NR=8 -D INC=1 -o src/f32-gemm/gen-inc/1x8inc-minmax-sse-dup.c
 
-tools/xngen src/f32-gemm/sse-dup.c.in -D MR=4 -D NR=8 -D INC=0 -o src/f32-gemm/gen/4x8-sse-dup.c
-tools/xngen src/f32-gemm/sse-dup.c.in -D MR=4 -D NR=8 -D INC=1 -o src/f32-gemm/gen-inc/4x8-sse-dup.c
+tools/xngen src/f32-gemm/sse-dup.c.in -D MR=4 -D NR=8 -D INC=0 -o src/f32-gemm/gen/4x8-minmax-sse-dup.c
+tools/xngen src/f32-gemm/sse-dup.c.in -D MR=4 -D NR=8 -D INC=1 -o src/f32-gemm/gen-inc/4x8inc-minmax-sse-dup.c
 ### LOAD4+PERMUTE micro-kernels
-tools/xngen src/f32-gemm/sse-shuffle.c.in -D MR=1 -D NR=8 -D INC=0 -o src/f32-gemm/gen/1x8s4-sse.c
-tools/xngen src/f32-gemm/sse-shuffle.c.in -D MR=1 -D NR=8 -D INC=1 -o src/f32-gemm/gen-inc/1x8s4-sse.c
+tools/xngen src/f32-gemm/sse-shuffle.c.in -D MR=1 -D NR=8 -D INC=0 -o src/f32-gemm/gen/1x8s4-minmax-sse.c
+tools/xngen src/f32-gemm/sse-shuffle.c.in -D MR=1 -D NR=8 -D INC=1 -o src/f32-gemm/gen-inc/1x8s4inc-minmax-sse.c
 
-tools/xngen src/f32-gemm/sse-shuffle.c.in -D MR=4 -D NR=8 -D INC=0 -o src/f32-gemm/gen/4x8s4-sse.c
-tools/xngen src/f32-gemm/sse-shuffle.c.in -D MR=4 -D NR=8 -D INC=1 -o src/f32-gemm/gen-inc/4x8s4-sse.c
+tools/xngen src/f32-gemm/sse-shuffle.c.in -D MR=4 -D NR=8 -D INC=0 -o src/f32-gemm/gen/4x8s4-minmax-sse.c
+tools/xngen src/f32-gemm/sse-shuffle.c.in -D MR=4 -D NR=8 -D INC=1 -o src/f32-gemm/gen-inc/4x8s4inc-minmax-sse.c
 ### MRx2 micro-kernels
-tools/xngen src/f32-gemm/MRx2c4-sse.c.in -D MR=4 -D NR=2 -o src/f32-gemm/gen/4x2c4-sse.c
+tools/xngen src/f32-gemm/MRx2c4-sse.c.in -D MR=4 -D NR=2 -o src/f32-gemm/gen/4x2c4-minmax-sse.c
 
 ################################### x86 AVX ###################################
 ### AVX+BROADCAST micro-kernels
-tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=1 -D NR=8 -D FMA=0 -D INC=0 -o src/f32-gemm/gen/1x8-avx-broadcast.c
-tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=1 -D NR=8 -D FMA=0 -D INC=1 -o src/f32-gemm/gen-inc/1x8-avx-broadcast.c
+tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=1 -D NR=8 -D FMA=0 -D INC=0 -o src/f32-gemm/gen/1x8-minmax-avx-broadcast.c
+tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=1 -D NR=8 -D FMA=0 -D INC=1 -o src/f32-gemm/gen-inc/1x8inc-minmax-avx-broadcast.c
 
-tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=4 -D NR=8 -D FMA=0 -D INC=0 -o src/f32-gemm/gen/4x8-avx-broadcast.c
-tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=4 -D NR=8 -D FMA=0 -D INC=1 -o src/f32-gemm/gen-inc/4x8-avx-broadcast.c
+tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=4 -D NR=8 -D FMA=0 -D INC=0 -o src/f32-gemm/gen/4x8-minmax-avx-broadcast.c
+tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=4 -D NR=8 -D FMA=0 -D INC=1 -o src/f32-gemm/gen-inc/4x8inc-minmax-avx-broadcast.c
 
-tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=5 -D NR=8 -D FMA=0 -D INC=0 -o src/f32-gemm/gen/5x8-avx-broadcast.c
-tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=5 -D NR=8 -D FMA=0 -D INC=1 -o src/f32-gemm/gen-inc/5x8-avx-broadcast.c
+tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=5 -D NR=8 -D FMA=0 -D INC=0 -o src/f32-gemm/gen/5x8-minmax-avx-broadcast.c
+tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=5 -D NR=8 -D FMA=0 -D INC=1 -o src/f32-gemm/gen-inc/5x8inc-minmax-avx-broadcast.c
 
-tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=6 -D NR=8 -D FMA=0 -D INC=0 -o src/f32-gemm/gen/6x8-avx-broadcast.c
-tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=6 -D NR=8 -D FMA=0 -D INC=1 -o src/f32-gemm/gen-inc/6x8-avx-broadcast.c
+tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=6 -D NR=8 -D FMA=0 -D INC=0 -o src/f32-gemm/gen/6x8-minmax-avx-broadcast.c
+tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=6 -D NR=8 -D FMA=0 -D INC=1 -o src/f32-gemm/gen-inc/6x8inc-minmax-avx-broadcast.c
 
-tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=7 -D NR=8 -D FMA=0 -D INC=0 -o src/f32-gemm/gen/7x8-avx-broadcast.c
-tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=7 -D NR=8 -D FMA=0 -D INC=1 -o src/f32-gemm/gen-inc/7x8-avx-broadcast.c
+tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=7 -D NR=8 -D FMA=0 -D INC=0 -o src/f32-gemm/gen/7x8-minmax-avx-broadcast.c
+tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=7 -D NR=8 -D FMA=0 -D INC=1 -o src/f32-gemm/gen-inc/7x8inc-minmax-avx-broadcast.c
 
-tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=1 -D NR=16 -D FMA=0 -D INC=0 -o src/f32-gemm/gen/1x16-avx-broadcast.c
-tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=1 -D NR=16 -D FMA=0 -D INC=1 -o src/f32-gemm/gen-inc/1x16-avx-broadcast.c
+tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=1 -D NR=16 -D FMA=0 -D INC=0 -o src/f32-gemm/gen/1x16-minmax-avx-broadcast.c
+tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=1 -D NR=16 -D FMA=0 -D INC=1 -o src/f32-gemm/gen-inc/1x16inc-minmax-avx-broadcast.c
 
-tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=3 -D NR=16 -D FMA=0 -D INC=0 -o src/f32-gemm/gen/3x16-avx-broadcast.c
-tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=3 -D NR=16 -D FMA=0 -D INC=1 -o src/f32-gemm/gen-inc/3x16-avx-broadcast.c
+tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=3 -D NR=16 -D FMA=0 -D INC=0 -o src/f32-gemm/gen/3x16-minmax-avx-broadcast.c
+tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=3 -D NR=16 -D FMA=0 -D INC=1 -o src/f32-gemm/gen-inc/3x16inc-minmax-avx-broadcast.c
 
-tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=4 -D NR=16 -D FMA=0 -D INC=0 -o src/f32-gemm/gen/4x16-avx-broadcast.c
-tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=4 -D NR=16 -D FMA=0 -D INC=1 -o src/f32-gemm/gen-inc/4x16-avx-broadcast.c
+tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=4 -D NR=16 -D FMA=0 -D INC=0 -o src/f32-gemm/gen/4x16-minmax-avx-broadcast.c
+tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=4 -D NR=16 -D FMA=0 -D INC=1 -o src/f32-gemm/gen-inc/4x16inc-minmax-avx-broadcast.c
 
-tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=5 -D NR=16 -D FMA=0 -D INC=0 -o src/f32-gemm/gen/5x16-avx-broadcast.c
-tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=5 -D NR=16 -D FMA=0 -D INC=1 -o src/f32-gemm/gen-inc/5x16-avx-broadcast.c
+tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=5 -D NR=16 -D FMA=0 -D INC=0 -o src/f32-gemm/gen/5x16-minmax-avx-broadcast.c
+tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=5 -D NR=16 -D FMA=0 -D INC=1 -o src/f32-gemm/gen-inc/5x16inc-minmax-avx-broadcast.c
 ### FMA3+BROADCAST micro-kernels
-tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=1 -D NR=8 -D FMA=3 -D INC=0 -o src/f32-gemm/gen/1x8-fma3-broadcast.c
-tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=1 -D NR=8 -D FMA=3 -D INC=1 -o src/f32-gemm/gen-inc/1x8-fma3-broadcast.c
+tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=1 -D NR=8 -D FMA=3 -D INC=0 -o src/f32-gemm/gen/1x8-minmax-fma3-broadcast.c
+tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=1 -D NR=8 -D FMA=3 -D INC=1 -o src/f32-gemm/gen-inc/1x8inc-minmax-fma3-broadcast.c
 
-tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=4 -D NR=8 -D FMA=3 -D INC=0 -o src/f32-gemm/gen/4x8-fma3-broadcast.c
-tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=4 -D NR=8 -D FMA=3 -D INC=1 -o src/f32-gemm/gen-inc/4x8-fma3-broadcast.c
+tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=4 -D NR=8 -D FMA=3 -D INC=0 -o src/f32-gemm/gen/4x8-minmax-fma3-broadcast.c
+tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=4 -D NR=8 -D FMA=3 -D INC=1 -o src/f32-gemm/gen-inc/4x8inc-minmax-fma3-broadcast.c
 
-tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=5 -D NR=8 -D FMA=3 -D INC=0 -o src/f32-gemm/gen/5x8-fma3-broadcast.c
-tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=5 -D NR=8 -D FMA=3 -D INC=1 -o src/f32-gemm/gen-inc/5x8-fma3-broadcast.c
+tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=5 -D NR=8 -D FMA=3 -D INC=0 -o src/f32-gemm/gen/5x8-minmax-fma3-broadcast.c
+tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=5 -D NR=8 -D FMA=3 -D INC=1 -o src/f32-gemm/gen-inc/5x8inc-minmax-fma3-broadcast.c
 
-tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=6 -D NR=8 -D FMA=3 -D INC=0 -o src/f32-gemm/gen/6x8-fma3-broadcast.c
-tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=6 -D NR=8 -D FMA=3 -D INC=1 -o src/f32-gemm/gen-inc/6x8-fma3-broadcast.c
+tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=6 -D NR=8 -D FMA=3 -D INC=0 -o src/f32-gemm/gen/6x8-minmax-fma3-broadcast.c
+tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=6 -D NR=8 -D FMA=3 -D INC=1 -o src/f32-gemm/gen-inc/6x8inc-minmax-fma3-broadcast.c
 
-tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=7 -D NR=8 -D FMA=3 -D INC=0 -o src/f32-gemm/gen/7x8-fma3-broadcast.c
-tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=7 -D NR=8 -D FMA=3 -D INC=1 -o src/f32-gemm/gen-inc/7x8-fma3-broadcast.c
+tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=7 -D NR=8 -D FMA=3 -D INC=0 -o src/f32-gemm/gen/7x8-minmax-fma3-broadcast.c
+tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=7 -D NR=8 -D FMA=3 -D INC=1 -o src/f32-gemm/gen-inc/7x8inc-minmax-fma3-broadcast.c
 
-tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=8 -D NR=8 -D FMA=3 -D INC=0 -o src/f32-gemm/gen/8x8-fma3-broadcast.c
-tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=8 -D NR=8 -D FMA=3 -D INC=1 -o src/f32-gemm/gen-inc/8x8-fma3-broadcast.c
+tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=8 -D NR=8 -D FMA=3 -D INC=0 -o src/f32-gemm/gen/8x8-minmax-fma3-broadcast.c
+tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=8 -D NR=8 -D FMA=3 -D INC=1 -o src/f32-gemm/gen-inc/8x8inc-minmax-fma3-broadcast.c
 
-tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=1 -D NR=16 -D FMA=3 -D INC=0 -o src/f32-gemm/gen/1x16-fma3-broadcast.c
-tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=1 -D NR=16 -D FMA=3 -D INC=1 -o src/f32-gemm/gen-inc/1x16-fma3-broadcast.c
+tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=1 -D NR=16 -D FMA=3 -D INC=0 -o src/f32-gemm/gen/1x16-minmax-fma3-broadcast.c
+tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=1 -D NR=16 -D FMA=3 -D INC=1 -o src/f32-gemm/gen-inc/1x16inc-minmax-fma3-broadcast.c
 
-tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=3 -D NR=16 -D FMA=3 -D INC=0 -o src/f32-gemm/gen/3x16-fma3-broadcast.c
-tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=3 -D NR=16 -D FMA=3 -D INC=1 -o src/f32-gemm/gen-inc/3x16-fma3-broadcast.c
+tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=3 -D NR=16 -D FMA=3 -D INC=0 -o src/f32-gemm/gen/3x16-minmax-fma3-broadcast.c
+tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=3 -D NR=16 -D FMA=3 -D INC=1 -o src/f32-gemm/gen-inc/3x16inc-minmax-fma3-broadcast.c
 
-tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=4 -D NR=16 -D FMA=3 -D INC=0 -o src/f32-gemm/gen/4x16-fma3-broadcast.c
-tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=4 -D NR=16 -D FMA=3 -D INC=1 -o src/f32-gemm/gen-inc/4x16-fma3-broadcast.c
+tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=4 -D NR=16 -D FMA=3 -D INC=0 -o src/f32-gemm/gen/4x16-minmax-fma3-broadcast.c
+tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=4 -D NR=16 -D FMA=3 -D INC=1 -o src/f32-gemm/gen-inc/4x16inc-minmax-fma3-broadcast.c
 
-tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=5 -D NR=16 -D FMA=3 -D INC=0 -o src/f32-gemm/gen/5x16-fma3-broadcast.c
-tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=5 -D NR=16 -D FMA=3 -D INC=1 -o src/f32-gemm/gen-inc/5x16-fma3-broadcast.c
+tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=5 -D NR=16 -D FMA=3 -D INC=0 -o src/f32-gemm/gen/5x16-minmax-fma3-broadcast.c
+tools/xngen src/f32-gemm/avx-broadcast.c.in -D MR=5 -D NR=16 -D FMA=3 -D INC=1 -o src/f32-gemm/gen-inc/5x16inc-minmax-fma3-broadcast.c
 
-tools/xngen src/f32-gemm/avx-shuffle4.c.in -D MR=1 -D NR=16 -D FMA=3 -D INC=0 -o src/f32-gemm/gen/1x16s4-fma3-broadcast.c
-tools/xngen src/f32-gemm/avx-shuffle4.c.in -D MR=1 -D NR=16 -D FMA=3 -D INC=1 -o src/f32-gemm/gen-inc/1x16s4-fma3-broadcast.c
+tools/xngen src/f32-gemm/avx-shuffle4.c.in -D MR=1 -D NR=16 -D FMA=3 -D INC=0 -o src/f32-gemm/gen/1x16s4-minmax-fma3-broadcast.c
+tools/xngen src/f32-gemm/avx-shuffle4.c.in -D MR=1 -D NR=16 -D FMA=3 -D INC=1 -o src/f32-gemm/gen-inc/1x16s4inc-minmax-fma3-broadcast.c
 
-tools/xngen src/f32-gemm/avx-shuffle4.c.in -D MR=3 -D NR=16 -D FMA=3 -D INC=0 -o src/f32-gemm/gen/3x16s4-fma3-broadcast.c
-tools/xngen src/f32-gemm/avx-shuffle4.c.in -D MR=3 -D NR=16 -D FMA=3 -D INC=1 -o src/f32-gemm/gen-inc/3x16s4-fma3-broadcast.c
+tools/xngen src/f32-gemm/avx-shuffle4.c.in -D MR=3 -D NR=16 -D FMA=3 -D INC=0 -o src/f32-gemm/gen/3x16s4-minmax-fma3-broadcast.c
+tools/xngen src/f32-gemm/avx-shuffle4.c.in -D MR=3 -D NR=16 -D FMA=3 -D INC=1 -o src/f32-gemm/gen-inc/3x16s4inc-minmax-fma3-broadcast.c
 
-tools/xngen src/f32-gemm/avx-shuffle4.c.in -D MR=4 -D NR=16 -D FMA=3 -D INC=0 -o src/f32-gemm/gen/4x16s4-fma3-broadcast.c
-tools/xngen src/f32-gemm/avx-shuffle4.c.in -D MR=4 -D NR=16 -D FMA=3 -D INC=1 -o src/f32-gemm/gen-inc/4x16s4-fma3-broadcast.c
+tools/xngen src/f32-gemm/avx-shuffle4.c.in -D MR=4 -D NR=16 -D FMA=3 -D INC=0 -o src/f32-gemm/gen/4x16s4-minmax-fma3-broadcast.c
+tools/xngen src/f32-gemm/avx-shuffle4.c.in -D MR=4 -D NR=16 -D FMA=3 -D INC=1 -o src/f32-gemm/gen-inc/4x16s4inc-minmax-fma3-broadcast.c
 
-tools/xngen src/f32-gemm/avx-shuffle4.c.in -D MR=5 -D NR=16 -D FMA=3 -D INC=0 -o src/f32-gemm/gen/5x16s4-fma3-broadcast.c
-tools/xngen src/f32-gemm/avx-shuffle4.c.in -D MR=5 -D NR=16 -D FMA=3 -D INC=1 -o src/f32-gemm/gen-inc/5x16s4-fma3-broadcast.c
+tools/xngen src/f32-gemm/avx-shuffle4.c.in -D MR=5 -D NR=16 -D FMA=3 -D INC=0 -o src/f32-gemm/gen/5x16s4-minmax-fma3-broadcast.c
+tools/xngen src/f32-gemm/avx-shuffle4.c.in -D MR=5 -D NR=16 -D FMA=3 -D INC=1 -o src/f32-gemm/gen-inc/5x16s4inc-minmax-fma3-broadcast.c
 
 ################################# x86 AVX-512 #################################
 ### AVX512F+BROADCAST micro-kernels
-tools/xngen src/f32-gemm/avx512-broadcast.c.in -D MR=1 -D NR=16 -D INC=0 -o src/f32-gemm/gen/1x16-avx512f-broadcast.c
-tools/xngen src/f32-gemm/avx512-broadcast.c.in -D MR=1 -D NR=16 -D INC=1 -o src/f32-gemm/gen-inc/1x16-avx512f-broadcast.c
+tools/xngen src/f32-gemm/avx512-broadcast.c.in -D MR=1 -D NR=16 -D INC=0 -o src/f32-gemm/gen/1x16-minmax-avx512f-broadcast.c
+tools/xngen src/f32-gemm/avx512-broadcast.c.in -D MR=1 -D NR=16 -D INC=1 -o src/f32-gemm/gen-inc/1x16inc-minmax-avx512f-broadcast.c
 
-tools/xngen src/f32-gemm/avx512-broadcast.c.in -D MR=4 -D NR=16 -D INC=0 -o src/f32-gemm/gen/4x16-avx512f-broadcast.c
-tools/xngen src/f32-gemm/avx512-broadcast.c.in -D MR=4 -D NR=16 -D INC=1 -o src/f32-gemm/gen-inc/4x16-avx512f-broadcast.c
+tools/xngen src/f32-gemm/avx512-broadcast.c.in -D MR=4 -D NR=16 -D INC=0 -o src/f32-gemm/gen/4x16-minmax-avx512f-broadcast.c
+tools/xngen src/f32-gemm/avx512-broadcast.c.in -D MR=4 -D NR=16 -D INC=1 -o src/f32-gemm/gen-inc/4x16inc-minmax-avx512f-broadcast.c
 
-tools/xngen src/f32-gemm/avx512-broadcast.c.in -D MR=5 -D NR=16 -D INC=0 -o src/f32-gemm/gen/5x16-avx512f-broadcast.c
-tools/xngen src/f32-gemm/avx512-broadcast.c.in -D MR=5 -D NR=16 -D INC=1 -o src/f32-gemm/gen-inc/5x16-avx512f-broadcast.c
+tools/xngen src/f32-gemm/avx512-broadcast.c.in -D MR=5 -D NR=16 -D INC=0 -o src/f32-gemm/gen/5x16-minmax-avx512f-broadcast.c
+tools/xngen src/f32-gemm/avx512-broadcast.c.in -D MR=5 -D NR=16 -D INC=1 -o src/f32-gemm/gen-inc/5x16inc-minmax-avx512f-broadcast.c
 
-tools/xngen src/f32-gemm/avx512-broadcast.c.in -D MR=6 -D NR=16 -D INC=0 -o src/f32-gemm/gen/6x16-avx512f-broadcast.c
-tools/xngen src/f32-gemm/avx512-broadcast.c.in -D MR=6 -D NR=16 -D INC=1 -o src/f32-gemm/gen-inc/6x16-avx512f-broadcast.c
+tools/xngen src/f32-gemm/avx512-broadcast.c.in -D MR=6 -D NR=16 -D INC=0 -o src/f32-gemm/gen/6x16-minmax-avx512f-broadcast.c
+tools/xngen src/f32-gemm/avx512-broadcast.c.in -D MR=6 -D NR=16 -D INC=1 -o src/f32-gemm/gen-inc/6x16inc-minmax-avx512f-broadcast.c
 
-tools/xngen src/f32-gemm/avx512-broadcast.c.in -D MR=7 -D NR=16 -D INC=0 -o src/f32-gemm/gen/7x16-avx512f-broadcast.c
-tools/xngen src/f32-gemm/avx512-broadcast.c.in -D MR=7 -D NR=16 -D INC=1 -o src/f32-gemm/gen-inc/7x16-avx512f-broadcast.c
+tools/xngen src/f32-gemm/avx512-broadcast.c.in -D MR=7 -D NR=16 -D INC=0 -o src/f32-gemm/gen/7x16-minmax-avx512f-broadcast.c
+tools/xngen src/f32-gemm/avx512-broadcast.c.in -D MR=7 -D NR=16 -D INC=1 -o src/f32-gemm/gen-inc/7x16inc-minmax-avx512f-broadcast.c
 
-tools/xngen src/f32-gemm/avx512-broadcast.c.in -D MR=8 -D NR=16 -D INC=0 -o src/f32-gemm/gen/8x16-avx512f-broadcast.c
-tools/xngen src/f32-gemm/avx512-broadcast.c.in -D MR=8 -D NR=16 -D INC=1 -o src/f32-gemm/gen-inc/8x16-avx512f-broadcast.c
+tools/xngen src/f32-gemm/avx512-broadcast.c.in -D MR=8 -D NR=16 -D INC=0 -o src/f32-gemm/gen/8x16-minmax-avx512f-broadcast.c
+tools/xngen src/f32-gemm/avx512-broadcast.c.in -D MR=8 -D NR=16 -D INC=1 -o src/f32-gemm/gen-inc/8x16inc-minmax-avx512f-broadcast.c
 
 ################################## Unit tests #################################
-tools/generate-gemm-test.py --spec test/f32-gemm.yaml --output test/f32-gemm.cc
-tools/generate-gemm-test.py --spec test/f32-gemminc.yaml --output test/f32-gemminc.cc
+tools/generate-gemm-test.py --spec test/f32-gemm-minmax.yaml --output test/f32-gemm-minmax.cc
+tools/generate-gemm-test.py --spec test/f32-gemminc-minmax.yaml --output test/f32-gemminc-minmax.cc
diff --git a/scripts/generate-f32-igemm.sh b/scripts/generate-f32-igemm.sh
index ff03fea..5c324b3 100755
--- a/scripts/generate-f32-igemm.sh
+++ b/scripts/generate-f32-igemm.sh
@@ -6,138 +6,138 @@
 
 #################################### Scalar ###################################
 ### Generic C micro-kernels
-tools/xngen src/f32-igemm/scalar.c.in -D MR=1 -D NR=4 -D WASM=0 -o src/f32-igemm/gen/1x4-scalar.c
-tools/xngen src/f32-igemm/scalar.c.in -D MR=2 -D NR=4 -D WASM=0 -o src/f32-igemm/gen/2x4-scalar.c
-tools/xngen src/f32-igemm/scalar.c.in -D MR=4 -D NR=2 -D WASM=0 -o src/f32-igemm/gen/4x2-scalar.c
-tools/xngen src/f32-igemm/scalar.c.in -D MR=4 -D NR=4 -D WASM=0 -o src/f32-igemm/gen/4x4-scalar.c
+tools/xngen src/f32-igemm/scalar.c.in -D MR=1 -D NR=4 -D WASM=0 -o src/f32-igemm/gen/1x4-minmax-scalar.c
+tools/xngen src/f32-igemm/scalar.c.in -D MR=2 -D NR=4 -D WASM=0 -o src/f32-igemm/gen/2x4-minmax-scalar.c
+tools/xngen src/f32-igemm/scalar.c.in -D MR=4 -D NR=2 -D WASM=0 -o src/f32-igemm/gen/4x2-minmax-scalar.c
+tools/xngen src/f32-igemm/scalar.c.in -D MR=4 -D NR=4 -D WASM=0 -o src/f32-igemm/gen/4x4-minmax-scalar.c
 
 ### WAsm-specific micro-kernels
-tools/xngen src/f32-igemm/scalar.c.in -D MR=1 -D NR=4 -D WASM=1 -o src/f32-igemm/gen/1x4-wasm.c
-tools/xngen src/f32-igemm/scalar.c.in -D MR=2 -D NR=4 -D WASM=1 -o src/f32-igemm/gen/2x4-wasm.c
-tools/xngen src/f32-igemm/scalar.c.in -D MR=4 -D NR=2 -D WASM=1 -o src/f32-igemm/gen/4x2-wasm.c
-tools/xngen src/f32-igemm/scalar.c.in -D MR=4 -D NR=4 -D WASM=1 -o src/f32-igemm/gen/4x4-wasm.c
+tools/xngen src/f32-igemm/scalar.c.in -D MR=1 -D NR=4 -D WASM=1 -o src/f32-igemm/gen/1x4-minmax-wasm.c
+tools/xngen src/f32-igemm/scalar.c.in -D MR=2 -D NR=4 -D WASM=1 -o src/f32-igemm/gen/2x4-minmax-wasm.c
+tools/xngen src/f32-igemm/scalar.c.in -D MR=4 -D NR=2 -D WASM=1 -o src/f32-igemm/gen/4x2-minmax-wasm.c
+tools/xngen src/f32-igemm/scalar.c.in -D MR=4 -D NR=4 -D WASM=1 -o src/f32-igemm/gen/4x4-minmax-wasm.c
 
 ############################### AArch64 assembly ##############################
 # Cortex A75 / A57 micro-kernels
-tools/xngen src/f32-igemm/1x8-aarch64-neonfma-cortex-a75.S.in  -D INC=0 -D PREFETCH=0 -o src/f32-igemm/gen/1x8-aarch64-neonfma-cortex-a57.S
-tools/xngen src/f32-igemm/1x8-aarch64-neonfma-cortex-a75.S.in  -D INC=0 -D PREFETCH=1 -o src/f32-igemm/gen/1x8-aarch64-neonfma-cortex-a75.S
-tools/xngen src/f32-igemm/4x8-aarch64-neonfma-cortex-a75.S.in  -D INC=0 -D PREFETCH=0 -o src/f32-igemm/gen/4x8-aarch64-neonfma-cortex-a57.S
-tools/xngen src/f32-igemm/4x8-aarch64-neonfma-cortex-a75.S.in  -D INC=0 -D PREFETCH=1 -o src/f32-igemm/gen/4x8-aarch64-neonfma-cortex-a75.S
-tools/xngen src/f32-igemm/5x8-aarch64-neonfma-cortex-a75.S.in  -D INC=0 -D PREFETCH=0 -o src/f32-igemm/gen/5x8-aarch64-neonfma-cortex-a57.S
-tools/xngen src/f32-igemm/5x8-aarch64-neonfma-cortex-a75.S.in  -D INC=0 -D PREFETCH=1 -o src/f32-igemm/gen/5x8-aarch64-neonfma-cortex-a75.S
-tools/xngen src/f32-igemm/6x8-aarch64-neonfma-cortex-a75.S.in  -D INC=0 -D PREFETCH=0 -o src/f32-igemm/gen/6x8-aarch64-neonfma-cortex-a57.S
-tools/xngen src/f32-igemm/6x8-aarch64-neonfma-cortex-a75.S.in  -D INC=0 -D PREFETCH=1 -o src/f32-igemm/gen/6x8-aarch64-neonfma-cortex-a75.S
-tools/xngen src/f32-igemm/6x8-aarch64-neonfma-ios.S.in         -D INC=0 -D PREFETCH=0 -o src/f32-igemm/gen/6x8-aarch64-neonfma-ios.S
+tools/xngen src/f32-igemm/1x8-aarch64-neonfma-cortex-a75.S.in  -D INC=0 -D PREFETCH=0 -o src/f32-igemm/gen/1x8-minmax-aarch64-neonfma-cortex-a57.S
+tools/xngen src/f32-igemm/1x8-aarch64-neonfma-cortex-a75.S.in  -D INC=0 -D PREFETCH=1 -o src/f32-igemm/gen/1x8-minmax-aarch64-neonfma-cortex-a75.S
+tools/xngen src/f32-igemm/4x8-aarch64-neonfma-cortex-a75.S.in  -D INC=0 -D PREFETCH=0 -o src/f32-igemm/gen/4x8-minmax-aarch64-neonfma-cortex-a57.S
+tools/xngen src/f32-igemm/4x8-aarch64-neonfma-cortex-a75.S.in  -D INC=0 -D PREFETCH=1 -o src/f32-igemm/gen/4x8-minmax-aarch64-neonfma-cortex-a75.S
+tools/xngen src/f32-igemm/5x8-aarch64-neonfma-cortex-a75.S.in  -D INC=0 -D PREFETCH=0 -o src/f32-igemm/gen/5x8-minmax-aarch64-neonfma-cortex-a57.S
+tools/xngen src/f32-igemm/5x8-aarch64-neonfma-cortex-a75.S.in  -D INC=0 -D PREFETCH=1 -o src/f32-igemm/gen/5x8-minmax-aarch64-neonfma-cortex-a75.S
+tools/xngen src/f32-igemm/6x8-aarch64-neonfma-cortex-a75.S.in  -D INC=0 -D PREFETCH=0 -o src/f32-igemm/gen/6x8-minmax-aarch64-neonfma-cortex-a57.S
+tools/xngen src/f32-igemm/6x8-aarch64-neonfma-cortex-a75.S.in  -D INC=0 -D PREFETCH=1 -o src/f32-igemm/gen/6x8-minmax-aarch64-neonfma-cortex-a75.S
+tools/xngen src/f32-igemm/6x8-aarch64-neonfma-ios.S.in         -D INC=0 -D PREFETCH=0 -o src/f32-igemm/gen/6x8-minmax-aarch64-neonfma-ios.S
 
 ############################### AArch32 assembly ##############################
-tools/xngen src/f32-igemm/4x8-aarch32-neon-cortex-a75.S.in  -D INC=0 -D PREFETCH=0 -o src/f32-igemm/gen/4x8-aarch32-neon-cortex-a75.S
-tools/xngen src/f32-igemm/4x8-aarch32-neon-cortex-a75.S.in  -D INC=0 -D PREFETCH=1 -o src/f32-igemm/gen/4x8-aarch32-neon-pld-cortex-a75.S
+tools/xngen src/f32-igemm/4x8-aarch32-neon-cortex-a75.S.in  -D INC=0 -D PREFETCH=0 -o src/f32-igemm/gen/4x8-minmax-aarch32-neon-cortex-a75.S
+tools/xngen src/f32-igemm/4x8-aarch32-neon-cortex-a75.S.in  -D INC=0 -D PREFETCH=1 -o src/f32-igemm/gen/4x8-minmax-aarch32-neon-pld-cortex-a75.S
 
 ################################### ARM NEON ##################################
 ### LD64 micro-kernels
-tools/xngen src/f32-igemm/neon-ld64.c.in      -D MR=1 -D NR=8 -D FMA=0 -D DUP=0 -o src/f32-igemm/gen/1x8-neon-lane-ld64.c
-tools/xngen src/f32-igemm/neon-ld64.c.in      -D MR=1 -D NR=8 -D FMA=1 -D DUP=0 -o src/f32-igemm/gen/1x8-neonfma-lane-ld64.c
-tools/xngen src/f32-igemm/neon-ld64.c.in      -D MR=4 -D NR=4 -D FMA=0 -D DUP=0 -o src/f32-igemm/gen/4x4-neon-lane-ld64.c
-tools/xngen src/f32-igemm/neon-ld64.c.in      -D MR=4 -D NR=4 -D FMA=1 -D DUP=0 -o src/f32-igemm/gen/4x4-neonfma-lane-ld64.c
-tools/xngen src/f32-igemm/neon-ld64.c.in      -D MR=4 -D NR=8 -D FMA=0 -D DUP=0 -o src/f32-igemm/gen/4x8-neon-lane-ld64.c
-tools/xngen src/f32-igemm/neon-ld64.c.in      -D MR=4 -D NR=8 -D FMA=1 -D DUP=0 -o src/f32-igemm/gen/4x8-neonfma-lane-ld64.c
-tools/xngen src/f32-igemm/neon-ld64.c.in      -D MR=6 -D NR=8 -D FMA=0 -D DUP=0 -o src/f32-igemm/gen/6x8-neon-lane-ld64.c
-tools/xngen src/f32-igemm/neon-ld64.c.in      -D MR=6 -D NR=8 -D FMA=1 -D DUP=0 -o src/f32-igemm/gen/6x8-neonfma-lane-ld64.c
+tools/xngen src/f32-igemm/neon-ld64.c.in      -D MR=1 -D NR=8 -D FMA=0 -D DUP=0 -o src/f32-igemm/gen/1x8-minmax-neon-lane-ld64.c
+tools/xngen src/f32-igemm/neon-ld64.c.in      -D MR=1 -D NR=8 -D FMA=1 -D DUP=0 -o src/f32-igemm/gen/1x8-minmax-neonfma-lane-ld64.c
+tools/xngen src/f32-igemm/neon-ld64.c.in      -D MR=4 -D NR=4 -D FMA=0 -D DUP=0 -o src/f32-igemm/gen/4x4-minmax-neon-lane-ld64.c
+tools/xngen src/f32-igemm/neon-ld64.c.in      -D MR=4 -D NR=4 -D FMA=1 -D DUP=0 -o src/f32-igemm/gen/4x4-minmax-neonfma-lane-ld64.c
+tools/xngen src/f32-igemm/neon-ld64.c.in      -D MR=4 -D NR=8 -D FMA=0 -D DUP=0 -o src/f32-igemm/gen/4x8-minmax-neon-lane-ld64.c
+tools/xngen src/f32-igemm/neon-ld64.c.in      -D MR=4 -D NR=8 -D FMA=1 -D DUP=0 -o src/f32-igemm/gen/4x8-minmax-neonfma-lane-ld64.c
+tools/xngen src/f32-igemm/neon-ld64.c.in      -D MR=6 -D NR=8 -D FMA=0 -D DUP=0 -o src/f32-igemm/gen/6x8-minmax-neon-lane-ld64.c
+tools/xngen src/f32-igemm/neon-ld64.c.in      -D MR=6 -D NR=8 -D FMA=1 -D DUP=0 -o src/f32-igemm/gen/6x8-minmax-neonfma-lane-ld64.c
 ### LD128 micro-kernels
-tools/xngen src/f32-igemm/neon-ld128.c.in     -D MR=4 -D NR=8 -D FMA=0 -D DUP=0 -o src/f32-igemm/gen/4x8-neon-lane-ld128.c
-tools/xngen src/f32-igemm/neon-ld128.c.in     -D MR=4 -D NR=8 -D FMA=1 -D DUP=0 -o src/f32-igemm/gen/4x8-neonfma-lane-ld128.c
-tools/xngen src/f32-igemm/neon-ld128.c.in     -D MR=6 -D NR=8 -D FMA=0 -D DUP=0 -o src/f32-igemm/gen/6x8-neon-lane-ld128.c
-tools/xngen src/f32-igemm/neon-ld128.c.in     -D MR=6 -D NR=8 -D FMA=1 -D DUP=0 -o src/f32-igemm/gen/6x8-neonfma-lane-ld128.c
+tools/xngen src/f32-igemm/neon-ld128.c.in     -D MR=4 -D NR=8 -D FMA=0 -D DUP=0 -o src/f32-igemm/gen/4x8-minmax-neon-lane-ld128.c
+tools/xngen src/f32-igemm/neon-ld128.c.in     -D MR=4 -D NR=8 -D FMA=1 -D DUP=0 -o src/f32-igemm/gen/4x8-minmax-neonfma-lane-ld128.c
+tools/xngen src/f32-igemm/neon-ld128.c.in     -D MR=6 -D NR=8 -D FMA=0 -D DUP=0 -o src/f32-igemm/gen/6x8-minmax-neon-lane-ld128.c
+tools/xngen src/f32-igemm/neon-ld128.c.in     -D MR=6 -D NR=8 -D FMA=1 -D DUP=0 -o src/f32-igemm/gen/6x8-minmax-neonfma-lane-ld128.c
 ### MRx2 micro-kernels-
-tools/xngen src/f32-igemm/MRx2-neon-ld64.c.in -D MR=4 -D NR=2 -D FMA=0 -D DUP=0 -o src/f32-igemm/gen/4x2-neon-lane-ld64.c
-tools/xngen src/f32-igemm/MRx2-neon-ld64.c.in -D MR=4 -D NR=2 -D FMA=1 -D DUP=0 -o src/f32-igemm/gen/4x2-neonfma-lane-ld64.c
+tools/xngen src/f32-igemm/MRx2-neon-ld64.c.in -D MR=4 -D NR=2 -D FMA=0 -D DUP=0 -o src/f32-igemm/gen/4x2-minmax-neon-lane-ld64.c
+tools/xngen src/f32-igemm/MRx2-neon-ld64.c.in -D MR=4 -D NR=2 -D FMA=1 -D DUP=0 -o src/f32-igemm/gen/4x2-minmax-neonfma-lane-ld64.c
 ### DUP LD64 micro-kernels
-tools/xngen src/f32-igemm/neon-ld64.c.in      -D MR=1 -D NR=8 -D FMA=0 -D DUP=1 -o src/f32-igemm/gen/1x8-neon-dup-ld64.c
-tools/xngen src/f32-igemm/neon-ld64.c.in      -D MR=1 -D NR=8 -D FMA=1 -D DUP=1 -o src/f32-igemm/gen/1x8-neonfma-dup-ld64.c
-tools/xngen src/f32-igemm/neon-ld64.c.in      -D MR=4 -D NR=8 -D FMA=0 -D DUP=1 -o src/f32-igemm/gen/4x8-neon-dup-ld64.c
-tools/xngen src/f32-igemm/neon-ld64.c.in      -D MR=4 -D NR=8 -D FMA=1 -D DUP=1 -o src/f32-igemm/gen/4x8-neonfma-dup-ld64.c
-tools/xngen src/f32-igemm/neon-ld64.c.in      -D MR=6 -D NR=8 -D FMA=0 -D DUP=1 -o src/f32-igemm/gen/6x8-neon-dup-ld64.c
-tools/xngen src/f32-igemm/neon-ld64.c.in      -D MR=6 -D NR=8 -D FMA=1 -D DUP=1 -o src/f32-igemm/gen/6x8-neonfma-dup-ld64.c
+tools/xngen src/f32-igemm/neon-ld64.c.in      -D MR=1 -D NR=8 -D FMA=0 -D DUP=1 -o src/f32-igemm/gen/1x8-minmax-neon-dup-ld64.c
+tools/xngen src/f32-igemm/neon-ld64.c.in      -D MR=1 -D NR=8 -D FMA=1 -D DUP=1 -o src/f32-igemm/gen/1x8-minmax-neonfma-dup-ld64.c
+tools/xngen src/f32-igemm/neon-ld64.c.in      -D MR=4 -D NR=8 -D FMA=0 -D DUP=1 -o src/f32-igemm/gen/4x8-minmax-neon-dup-ld64.c
+tools/xngen src/f32-igemm/neon-ld64.c.in      -D MR=4 -D NR=8 -D FMA=1 -D DUP=1 -o src/f32-igemm/gen/4x8-minmax-neonfma-dup-ld64.c
+tools/xngen src/f32-igemm/neon-ld64.c.in      -D MR=6 -D NR=8 -D FMA=0 -D DUP=1 -o src/f32-igemm/gen/6x8-minmax-neon-dup-ld64.c
+tools/xngen src/f32-igemm/neon-ld64.c.in      -D MR=6 -D NR=8 -D FMA=1 -D DUP=1 -o src/f32-igemm/gen/6x8-minmax-neonfma-dup-ld64.c
 ### DUP LD128 micro-kernels
-tools/xngen src/f32-igemm/neon-ld128.c.in     -D MR=4 -D NR=8 -D FMA=0 -D DUP=1 -o src/f32-igemm/gen/4x8-neon-dup-ld128.c
-tools/xngen src/f32-igemm/neon-ld128.c.in     -D MR=4 -D NR=8 -D FMA=1 -D DUP=1 -o src/f32-igemm/gen/4x8-neonfma-dup-ld128.c
-tools/xngen src/f32-igemm/neon-ld128.c.in     -D MR=6 -D NR=8 -D FMA=0 -D DUP=1 -o src/f32-igemm/gen/6x8-neon-dup-ld128.c
-tools/xngen src/f32-igemm/neon-ld128.c.in     -D MR=6 -D NR=8 -D FMA=1 -D DUP=1 -o src/f32-igemm/gen/6x8-neonfma-dup-ld128.c
+tools/xngen src/f32-igemm/neon-ld128.c.in     -D MR=4 -D NR=8 -D FMA=0 -D DUP=1 -o src/f32-igemm/gen/4x8-minmax-neon-dup-ld128.c
+tools/xngen src/f32-igemm/neon-ld128.c.in     -D MR=4 -D NR=8 -D FMA=1 -D DUP=1 -o src/f32-igemm/gen/4x8-minmax-neonfma-dup-ld128.c
+tools/xngen src/f32-igemm/neon-ld128.c.in     -D MR=6 -D NR=8 -D FMA=0 -D DUP=1 -o src/f32-igemm/gen/6x8-minmax-neon-dup-ld128.c
+tools/xngen src/f32-igemm/neon-ld128.c.in     -D MR=6 -D NR=8 -D FMA=1 -D DUP=1 -o src/f32-igemm/gen/6x8-minmax-neonfma-dup-ld128.c
 ### LOAD4+PERMUTE micro-kernels
-tools/xngen src/f32-igemm/neon-shuffle.c.in   -D MR=1 -D NR=8 -D FMA=0 -o src/f32-igemm/gen/1x8s4-neon.c
-tools/xngen src/f32-igemm/neon-shuffle.c.in   -D MR=1 -D NR=8 -D FMA=1 -o src/f32-igemm/gen/1x8s4-neonfma.c
-tools/xngen src/f32-igemm/neon-shuffle.c.in   -D MR=4 -D NR=8 -D FMA=0 -o src/f32-igemm/gen/4x8s4-neon.c
-tools/xngen src/f32-igemm/neon-shuffle.c.in   -D MR=4 -D NR=8 -D FMA=1 -o src/f32-igemm/gen/4x8s4-neonfma.c
-tools/xngen src/f32-igemm/neon-shuffle.c.in   -D MR=6 -D NR=8 -D FMA=0 -o src/f32-igemm/gen/6x8s4-neon.c
-tools/xngen src/f32-igemm/neon-shuffle.c.in   -D MR=6 -D NR=8 -D FMA=1 -o src/f32-igemm/gen/6x8s4-neonfma.c
-tools/xngen src/f32-igemm/neon-shuffle.c.in   -D MR=8 -D NR=8 -D FMA=0 -o src/f32-igemm/gen/8x8s4-neon.c
-tools/xngen src/f32-igemm/neon-shuffle.c.in   -D MR=8 -D NR=8 -D FMA=1 -o src/f32-igemm/gen/8x8s4-neonfma.c
+tools/xngen src/f32-igemm/neon-shuffle.c.in   -D MR=1 -D NR=8 -D FMA=0 -o src/f32-igemm/gen/1x8s4-minmax-neon.c
+tools/xngen src/f32-igemm/neon-shuffle.c.in   -D MR=1 -D NR=8 -D FMA=1 -o src/f32-igemm/gen/1x8s4-minmax-neonfma.c
+tools/xngen src/f32-igemm/neon-shuffle.c.in   -D MR=4 -D NR=8 -D FMA=0 -o src/f32-igemm/gen/4x8s4-minmax-neon.c
+tools/xngen src/f32-igemm/neon-shuffle.c.in   -D MR=4 -D NR=8 -D FMA=1 -o src/f32-igemm/gen/4x8s4-minmax-neonfma.c
+tools/xngen src/f32-igemm/neon-shuffle.c.in   -D MR=6 -D NR=8 -D FMA=0 -o src/f32-igemm/gen/6x8s4-minmax-neon.c
+tools/xngen src/f32-igemm/neon-shuffle.c.in   -D MR=6 -D NR=8 -D FMA=1 -o src/f32-igemm/gen/6x8s4-minmax-neonfma.c
+tools/xngen src/f32-igemm/neon-shuffle.c.in   -D MR=8 -D NR=8 -D FMA=0 -o src/f32-igemm/gen/8x8s4-minmax-neon.c
+tools/xngen src/f32-igemm/neon-shuffle.c.in   -D MR=8 -D NR=8 -D FMA=1 -o src/f32-igemm/gen/8x8s4-minmax-neonfma.c
 
 #################################### PSIMD ####################################
 ### LOAD1+BROADCAST micro-kernels
-tools/xngen src/f32-igemm/psimd-loadsplat.c.in -D MR=1 -D NR=8 -o src/f32-igemm/gen/1x8-psimd-loadsplat.c
-tools/xngen src/f32-igemm/psimd-loadsplat.c.in -D MR=4 -D NR=8 -o src/f32-igemm/gen/4x8-psimd-loadsplat.c
-tools/xngen src/f32-igemm/psimd-loadsplat.c.in -D MR=6 -D NR=8 -o src/f32-igemm/gen/6x8-psimd-loadsplat.c
+tools/xngen src/f32-igemm/psimd-loadsplat.c.in -D MR=1 -D NR=8 -o src/f32-igemm/gen/1x8-minmax-psimd-loadsplat.c
+tools/xngen src/f32-igemm/psimd-loadsplat.c.in -D MR=4 -D NR=8 -o src/f32-igemm/gen/4x8-minmax-psimd-loadsplat.c
+tools/xngen src/f32-igemm/psimd-loadsplat.c.in -D MR=6 -D NR=8 -o src/f32-igemm/gen/6x8-minmax-psimd-loadsplat.c
 ### LOAD4+DUPLICATE micro-kernels
-tools/xngen src/f32-igemm/psimd-splat.c.in -D MR=1 -D NR=8 -o src/f32-igemm/gen/1x8-psimd-splat.c
-tools/xngen src/f32-igemm/psimd-splat.c.in -D MR=4 -D NR=8 -o src/f32-igemm/gen/4x8-psimd-splat.c
-tools/xngen src/f32-igemm/psimd-splat.c.in -D MR=6 -D NR=8 -o src/f32-igemm/gen/6x8-psimd-splat.c
+tools/xngen src/f32-igemm/psimd-splat.c.in -D MR=1 -D NR=8 -o src/f32-igemm/gen/1x8-minmax-psimd-splat.c
+tools/xngen src/f32-igemm/psimd-splat.c.in -D MR=4 -D NR=8 -o src/f32-igemm/gen/4x8-minmax-psimd-splat.c
+tools/xngen src/f32-igemm/psimd-splat.c.in -D MR=6 -D NR=8 -o src/f32-igemm/gen/6x8-minmax-psimd-splat.c
 ### LOAD4+PERMUTE micro-kernels
-tools/xngen src/f32-igemm/psimd-s4.c.in -D MR=1 -D NR=8 -o src/f32-igemm/gen/1x8s4-psimd.c
-tools/xngen src/f32-igemm/psimd-s4.c.in -D MR=4 -D NR=8 -o src/f32-igemm/gen/4x8s4-psimd.c
-tools/xngen src/f32-igemm/psimd-s4.c.in -D MR=6 -D NR=8 -o src/f32-igemm/gen/6x8s4-psimd.c
+tools/xngen src/f32-igemm/psimd-s4.c.in -D MR=1 -D NR=8 -o src/f32-igemm/gen/1x8s4-minmax-psimd.c
+tools/xngen src/f32-igemm/psimd-s4.c.in -D MR=4 -D NR=8 -o src/f32-igemm/gen/4x8s4-minmax-psimd.c
+tools/xngen src/f32-igemm/psimd-s4.c.in -D MR=6 -D NR=8 -o src/f32-igemm/gen/6x8s4-minmax-psimd.c
 ### MRx2 micro-kernels
-tools/xngen src/f32-igemm/MRx2c4-psimd.c.in -D MR=4 -D NR=2 -o src/f32-igemm/gen/4x2c4-psimd.c
+tools/xngen src/f32-igemm/MRx2c4-psimd.c.in -D MR=4 -D NR=2 -o src/f32-igemm/gen/4x2c4-minmax-psimd.c
 
 ################################### x86 SSE ###################################
 ### LOAD1+BROADCAST micro-kernels
-tools/xngen src/f32-igemm/sse-load1.c.in -D MR=1 -D NR=8 -o src/f32-igemm/gen/1x8-sse-load1.c
-tools/xngen src/f32-igemm/sse-load1.c.in -D MR=4 -D NR=8 -o src/f32-igemm/gen/4x8-sse-load1.c
+tools/xngen src/f32-igemm/sse-load1.c.in -D MR=1 -D NR=8 -o src/f32-igemm/gen/1x8-minmax-sse-load1.c
+tools/xngen src/f32-igemm/sse-load1.c.in -D MR=4 -D NR=8 -o src/f32-igemm/gen/4x8-minmax-sse-load1.c
 ### LOAD4+DUPLICATE micro-kernels
-tools/xngen src/f32-igemm/sse-dup.c.in -D MR=1 -D NR=8 -o src/f32-igemm/gen/1x8-sse-dup.c
-tools/xngen src/f32-igemm/sse-dup.c.in -D MR=4 -D NR=8 -o src/f32-igemm/gen/4x8-sse-dup.c
+tools/xngen src/f32-igemm/sse-dup.c.in -D MR=1 -D NR=8 -o src/f32-igemm/gen/1x8-minmax-sse-dup.c
+tools/xngen src/f32-igemm/sse-dup.c.in -D MR=4 -D NR=8 -o src/f32-igemm/gen/4x8-minmax-sse-dup.c
 ### LOAD4+PERMUTE micro-kernels
-tools/xngen src/f32-igemm/sse-shuffle.c.in -D MR=1 -D NR=8 -o src/f32-igemm/gen/1x8s4-sse.c
-tools/xngen src/f32-igemm/sse-shuffle.c.in -D MR=4 -D NR=8 -o src/f32-igemm/gen/4x8s4-sse.c
+tools/xngen src/f32-igemm/sse-shuffle.c.in -D MR=1 -D NR=8 -o src/f32-igemm/gen/1x8s4-minmax-sse.c
+tools/xngen src/f32-igemm/sse-shuffle.c.in -D MR=4 -D NR=8 -o src/f32-igemm/gen/4x8s4-minmax-sse.c
 ### MRx2 micro-kernels
-tools/xngen src/f32-igemm/MRx2c4-sse.c.in -D MR=4 -D NR=2 -o src/f32-igemm/gen/4x2c4-sse.c
+tools/xngen src/f32-igemm/MRx2c4-sse.c.in -D MR=4 -D NR=2 -o src/f32-igemm/gen/4x2c4-minmax-sse.c
 
 ################################### x86 AVX ###################################
 ### AVX+BROADCAST micro-kernels
-tools/xngen src/f32-igemm/avx-broadcast.c.in -D MR=1 -D NR=8 -D FMA=0 -o src/f32-igemm/gen/1x8-avx-broadcast.c
-tools/xngen src/f32-igemm/avx-broadcast.c.in -D MR=4 -D NR=8 -D FMA=0 -o src/f32-igemm/gen/4x8-avx-broadcast.c
-tools/xngen src/f32-igemm/avx-broadcast.c.in -D MR=5 -D NR=8 -D FMA=0 -o src/f32-igemm/gen/5x8-avx-broadcast.c
-tools/xngen src/f32-igemm/avx-broadcast.c.in -D MR=6 -D NR=8 -D FMA=0 -o src/f32-igemm/gen/6x8-avx-broadcast.c
-tools/xngen src/f32-igemm/avx-broadcast.c.in -D MR=7 -D NR=8 -D FMA=0 -o src/f32-igemm/gen/7x8-avx-broadcast.c
-tools/xngen src/f32-igemm/avx-broadcast.c.in -D MR=1 -D NR=16 -D FMA=0 -o src/f32-igemm/gen/1x16-avx-broadcast.c
-tools/xngen src/f32-igemm/avx-broadcast.c.in -D MR=3 -D NR=16 -D FMA=0 -o src/f32-igemm/gen/3x16-avx-broadcast.c
-tools/xngen src/f32-igemm/avx-broadcast.c.in -D MR=4 -D NR=16 -D FMA=0 -o src/f32-igemm/gen/4x16-avx-broadcast.c
-tools/xngen src/f32-igemm/avx-broadcast.c.in -D MR=5 -D NR=16 -D FMA=0 -o src/f32-igemm/gen/5x16-avx-broadcast.c
+tools/xngen src/f32-igemm/avx-broadcast.c.in -D MR=1 -D NR=8 -D FMA=0 -o src/f32-igemm/gen/1x8-minmax-avx-broadcast.c
+tools/xngen src/f32-igemm/avx-broadcast.c.in -D MR=4 -D NR=8 -D FMA=0 -o src/f32-igemm/gen/4x8-minmax-avx-broadcast.c
+tools/xngen src/f32-igemm/avx-broadcast.c.in -D MR=5 -D NR=8 -D FMA=0 -o src/f32-igemm/gen/5x8-minmax-avx-broadcast.c
+tools/xngen src/f32-igemm/avx-broadcast.c.in -D MR=6 -D NR=8 -D FMA=0 -o src/f32-igemm/gen/6x8-minmax-avx-broadcast.c
+tools/xngen src/f32-igemm/avx-broadcast.c.in -D MR=7 -D NR=8 -D FMA=0 -o src/f32-igemm/gen/7x8-minmax-avx-broadcast.c
+tools/xngen src/f32-igemm/avx-broadcast.c.in -D MR=1 -D NR=16 -D FMA=0 -o src/f32-igemm/gen/1x16-minmax-avx-broadcast.c
+tools/xngen src/f32-igemm/avx-broadcast.c.in -D MR=3 -D NR=16 -D FMA=0 -o src/f32-igemm/gen/3x16-minmax-avx-broadcast.c
+tools/xngen src/f32-igemm/avx-broadcast.c.in -D MR=4 -D NR=16 -D FMA=0 -o src/f32-igemm/gen/4x16-minmax-avx-broadcast.c
+tools/xngen src/f32-igemm/avx-broadcast.c.in -D MR=5 -D NR=16 -D FMA=0 -o src/f32-igemm/gen/5x16-minmax-avx-broadcast.c
 ### FMA3+BROADCAST micro-kernels
-tools/xngen src/f32-igemm/avx-broadcast.c.in -D MR=1 -D NR=8 -D FMA=3 -o src/f32-igemm/gen/1x8-fma3-broadcast.c
-tools/xngen src/f32-igemm/avx-broadcast.c.in -D MR=4 -D NR=8 -D FMA=3 -o src/f32-igemm/gen/4x8-fma3-broadcast.c
-tools/xngen src/f32-igemm/avx-broadcast.c.in -D MR=5 -D NR=8 -D FMA=3 -o src/f32-igemm/gen/5x8-fma3-broadcast.c
-tools/xngen src/f32-igemm/avx-broadcast.c.in -D MR=6 -D NR=8 -D FMA=3 -o src/f32-igemm/gen/6x8-fma3-broadcast.c
-tools/xngen src/f32-igemm/avx-broadcast.c.in -D MR=7 -D NR=8 -D FMA=3 -o src/f32-igemm/gen/7x8-fma3-broadcast.c
-tools/xngen src/f32-igemm/avx-broadcast.c.in -D MR=8 -D NR=8 -D FMA=3 -o src/f32-igemm/gen/8x8-fma3-broadcast.c
-tools/xngen src/f32-igemm/avx-broadcast.c.in -D MR=1 -D NR=16 -D FMA=3 -o src/f32-igemm/gen/1x16-fma3-broadcast.c
-tools/xngen src/f32-igemm/avx-broadcast.c.in -D MR=3 -D NR=16 -D FMA=3 -o src/f32-igemm/gen/3x16-fma3-broadcast.c
-tools/xngen src/f32-igemm/avx-broadcast.c.in -D MR=4 -D NR=16 -D FMA=3 -o src/f32-igemm/gen/4x16-fma3-broadcast.c
-tools/xngen src/f32-igemm/avx-broadcast.c.in -D MR=5 -D NR=16 -D FMA=3 -o src/f32-igemm/gen/5x16-fma3-broadcast.c
+tools/xngen src/f32-igemm/avx-broadcast.c.in -D MR=1 -D NR=8 -D FMA=3 -o src/f32-igemm/gen/1x8-minmax-fma3-broadcast.c
+tools/xngen src/f32-igemm/avx-broadcast.c.in -D MR=4 -D NR=8 -D FMA=3 -o src/f32-igemm/gen/4x8-minmax-fma3-broadcast.c
+tools/xngen src/f32-igemm/avx-broadcast.c.in -D MR=5 -D NR=8 -D FMA=3 -o src/f32-igemm/gen/5x8-minmax-fma3-broadcast.c
+tools/xngen src/f32-igemm/avx-broadcast.c.in -D MR=6 -D NR=8 -D FMA=3 -o src/f32-igemm/gen/6x8-minmax-fma3-broadcast.c
+tools/xngen src/f32-igemm/avx-broadcast.c.in -D MR=7 -D NR=8 -D FMA=3 -o src/f32-igemm/gen/7x8-minmax-fma3-broadcast.c
+tools/xngen src/f32-igemm/avx-broadcast.c.in -D MR=8 -D NR=8 -D FMA=3 -o src/f32-igemm/gen/8x8-minmax-fma3-broadcast.c
+tools/xngen src/f32-igemm/avx-broadcast.c.in -D MR=1 -D NR=16 -D FMA=3 -o src/f32-igemm/gen/1x16-minmax-fma3-broadcast.c
+tools/xngen src/f32-igemm/avx-broadcast.c.in -D MR=3 -D NR=16 -D FMA=3 -o src/f32-igemm/gen/3x16-minmax-fma3-broadcast.c
+tools/xngen src/f32-igemm/avx-broadcast.c.in -D MR=4 -D NR=16 -D FMA=3 -o src/f32-igemm/gen/4x16-minmax-fma3-broadcast.c
+tools/xngen src/f32-igemm/avx-broadcast.c.in -D MR=5 -D NR=16 -D FMA=3 -o src/f32-igemm/gen/5x16-minmax-fma3-broadcast.c
 
-tools/xngen src/f32-igemm/avx-shuffle4.c.in -D MR=1 -D NR=16 -D FMA=3 -o src/f32-igemm/gen/1x16s4-fma3-broadcast.c
-tools/xngen src/f32-igemm/avx-shuffle4.c.in -D MR=3 -D NR=16 -D FMA=3 -o src/f32-igemm/gen/3x16s4-fma3-broadcast.c
-tools/xngen src/f32-igemm/avx-shuffle4.c.in -D MR=4 -D NR=16 -D FMA=3 -o src/f32-igemm/gen/4x16s4-fma3-broadcast.c
-tools/xngen src/f32-igemm/avx-shuffle4.c.in -D MR=5 -D NR=16 -D FMA=3 -o src/f32-igemm/gen/5x16s4-fma3-broadcast.c
+tools/xngen src/f32-igemm/avx-shuffle4.c.in -D MR=1 -D NR=16 -D FMA=3 -o src/f32-igemm/gen/1x16s4-minmax-fma3-broadcast.c
+tools/xngen src/f32-igemm/avx-shuffle4.c.in -D MR=3 -D NR=16 -D FMA=3 -o src/f32-igemm/gen/3x16s4-minmax-fma3-broadcast.c
+tools/xngen src/f32-igemm/avx-shuffle4.c.in -D MR=4 -D NR=16 -D FMA=3 -o src/f32-igemm/gen/4x16s4-minmax-fma3-broadcast.c
+tools/xngen src/f32-igemm/avx-shuffle4.c.in -D MR=5 -D NR=16 -D FMA=3 -o src/f32-igemm/gen/5x16s4-minmax-fma3-broadcast.c
 
 ################################# x86 AVX-512 #################################
 ### AVX512F+BROADCAST micro-kernels
-tools/xngen src/f32-igemm/avx512-broadcast.c.in -D MR=1 -D NR=16 -o src/f32-igemm/gen/1x16-avx512f-broadcast.c
-tools/xngen src/f32-igemm/avx512-broadcast.c.in -D MR=4 -D NR=16 -o src/f32-igemm/gen/4x16-avx512f-broadcast.c
-tools/xngen src/f32-igemm/avx512-broadcast.c.in -D MR=5 -D NR=16 -o src/f32-igemm/gen/5x16-avx512f-broadcast.c
-tools/xngen src/f32-igemm/avx512-broadcast.c.in -D MR=6 -D NR=16 -o src/f32-igemm/gen/6x16-avx512f-broadcast.c
-tools/xngen src/f32-igemm/avx512-broadcast.c.in -D MR=7 -D NR=16 -o src/f32-igemm/gen/7x16-avx512f-broadcast.c
-tools/xngen src/f32-igemm/avx512-broadcast.c.in -D MR=8 -D NR=16 -o src/f32-igemm/gen/8x16-avx512f-broadcast.c
+tools/xngen src/f32-igemm/avx512-broadcast.c.in -D MR=1 -D NR=16 -o src/f32-igemm/gen/1x16-minmax-avx512f-broadcast.c
+tools/xngen src/f32-igemm/avx512-broadcast.c.in -D MR=4 -D NR=16 -o src/f32-igemm/gen/4x16-minmax-avx512f-broadcast.c
+tools/xngen src/f32-igemm/avx512-broadcast.c.in -D MR=5 -D NR=16 -o src/f32-igemm/gen/5x16-minmax-avx512f-broadcast.c
+tools/xngen src/f32-igemm/avx512-broadcast.c.in -D MR=6 -D NR=16 -o src/f32-igemm/gen/6x16-minmax-avx512f-broadcast.c
+tools/xngen src/f32-igemm/avx512-broadcast.c.in -D MR=7 -D NR=16 -o src/f32-igemm/gen/7x16-minmax-avx512f-broadcast.c
+tools/xngen src/f32-igemm/avx512-broadcast.c.in -D MR=8 -D NR=16 -o src/f32-igemm/gen/8x16-minmax-avx512f-broadcast.c
 
 ################################## Unit tests #################################
-tools/generate-gemm-test.py --spec test/f32-igemm.yaml --output test/f32-igemm.cc
+tools/generate-gemm-test.py --spec test/f32-igemm-minmax.yaml --output test/f32-igemm-minmax.cc
diff --git a/scripts/generate-f32-ppmm.sh b/scripts/generate-f32-ppmm.sh
index a3c51b3..b2ccde6 100755
--- a/scripts/generate-f32-ppmm.sh
+++ b/scripts/generate-f32-ppmm.sh
@@ -5,22 +5,22 @@
 # LICENSE file in the root directory of this source tree.
 
 #################################### Scalar ###################################
-tools/xngen src/f32-ppmm/scalar.c.in -D MR=4 -D NR=4 -o src/f32-ppmm/gen/4x4-scalar.c
-tools/xngen src/f32-ppmm/scalar.c.in -D MR=2 -D NR=4 -o src/f32-ppmm/gen/2x4-scalar.c
-tools/xngen src/f32-ppmm/scalar.c.in -D MR=4 -D NR=2 -o src/f32-ppmm/gen/4x2-scalar.c
-tools/xngen src/f32-ppmm/scalar.c.in -D MR=3 -D NR=3 -o src/f32-ppmm/gen/3x3-scalar.c
+tools/xngen src/f32-ppmm/scalar.c.in -D MR=4 -D NR=4 -o src/f32-ppmm/gen/4x4-minmax-scalar.c
+tools/xngen src/f32-ppmm/scalar.c.in -D MR=2 -D NR=4 -o src/f32-ppmm/gen/2x4-minmax-scalar.c
+tools/xngen src/f32-ppmm/scalar.c.in -D MR=4 -D NR=2 -o src/f32-ppmm/gen/4x2-minmax-scalar.c
+tools/xngen src/f32-ppmm/scalar.c.in -D MR=3 -D NR=3 -o src/f32-ppmm/gen/3x3-minmax-scalar.c
 
 ################################### ARM NEON ##################################
-tools/xngen src/f32-ppmm/neon.c.in -D MR=4 -D NR=8 -D FMA=0 -o src/f32-ppmm/gen/4x8-neon.c
-tools/xngen src/f32-ppmm/neon.c.in -D MR=4 -D NR=8 -D FMA=1 -o src/f32-ppmm/gen/4x8-neonfma.c
-tools/xngen src/f32-ppmm/neon.c.in -D MR=8 -D NR=8 -D FMA=0 -o src/f32-ppmm/gen/8x8-neon.c
-tools/xngen src/f32-ppmm/neon.c.in -D MR=8 -D NR=8 -D FMA=1 -o src/f32-ppmm/gen/8x8-neonfma.c
+tools/xngen src/f32-ppmm/neon.c.in -D MR=4 -D NR=8 -D FMA=0 -o src/f32-ppmm/gen/4x8-minmax-neon.c
+tools/xngen src/f32-ppmm/neon.c.in -D MR=4 -D NR=8 -D FMA=1 -o src/f32-ppmm/gen/4x8-minmax-neonfma.c
+tools/xngen src/f32-ppmm/neon.c.in -D MR=8 -D NR=8 -D FMA=0 -o src/f32-ppmm/gen/8x8-minmax-neon.c
+tools/xngen src/f32-ppmm/neon.c.in -D MR=8 -D NR=8 -D FMA=1 -o src/f32-ppmm/gen/8x8-minmax-neonfma.c
 
 #################################### PSIMD ####################################
-tools/xngen src/f32-ppmm/psimd.c.in -D MR=4 -D NR=8 -o src/f32-ppmm/gen/4x8-psimd.c
+tools/xngen src/f32-ppmm/psimd.c.in -D MR=4 -D NR=8 -o src/f32-ppmm/gen/4x8-minmax-psimd.c
 
 ################################### x86 SSE ###################################
-tools/xngen src/f32-ppmm/sse.c.in -D MR=4 -D NR=8 -o src/f32-ppmm/gen/4x8-sse.c
+tools/xngen src/f32-ppmm/sse.c.in -D MR=4 -D NR=8 -o src/f32-ppmm/gen/4x8-minmax-sse.c
 
 ################################## Unit tests #################################
-tools/generate-gemm-test.py --spec test/f32-ppmm.yaml --output test/f32-ppmm.cc
+tools/generate-gemm-test.py --spec test/f32-ppmm-minmax.yaml --output test/f32-ppmm-minmax.cc
diff --git a/src/f32-dwconv/gen/up16x25-avx-acc2.c b/src/f32-dwconv/gen/up16x25-minmax-avx-acc2.c
similarity index 100%
rename from src/f32-dwconv/gen/up16x25-avx-acc2.c
rename to src/f32-dwconv/gen/up16x25-minmax-avx-acc2.c
diff --git a/src/f32-dwconv/gen/up16x25-avx.c b/src/f32-dwconv/gen/up16x25-minmax-avx.c
similarity index 100%
rename from src/f32-dwconv/gen/up16x25-avx.c
rename to src/f32-dwconv/gen/up16x25-minmax-avx.c
diff --git a/src/f32-dwconv/gen/up16x25-avx512f-acc2.c b/src/f32-dwconv/gen/up16x25-minmax-avx512f-acc2.c
similarity index 100%
rename from src/f32-dwconv/gen/up16x25-avx512f-acc2.c
rename to src/f32-dwconv/gen/up16x25-minmax-avx512f-acc2.c
diff --git a/src/f32-dwconv/gen/up16x25-avx512f.c b/src/f32-dwconv/gen/up16x25-minmax-avx512f.c
similarity index 100%
rename from src/f32-dwconv/gen/up16x25-avx512f.c
rename to src/f32-dwconv/gen/up16x25-minmax-avx512f.c
diff --git a/src/f32-dwconv/gen/up16x25-fma3-acc2.c b/src/f32-dwconv/gen/up16x25-minmax-fma3-acc2.c
similarity index 100%
rename from src/f32-dwconv/gen/up16x25-fma3-acc2.c
rename to src/f32-dwconv/gen/up16x25-minmax-fma3-acc2.c
diff --git a/src/f32-dwconv/gen/up16x25-fma3.c b/src/f32-dwconv/gen/up16x25-minmax-fma3.c
similarity index 100%
rename from src/f32-dwconv/gen/up16x25-fma3.c
rename to src/f32-dwconv/gen/up16x25-minmax-fma3.c
diff --git a/src/f32-dwconv/gen/up16x4-avx-acc2.c b/src/f32-dwconv/gen/up16x4-minmax-avx-acc2.c
similarity index 100%
rename from src/f32-dwconv/gen/up16x4-avx-acc2.c
rename to src/f32-dwconv/gen/up16x4-minmax-avx-acc2.c
diff --git a/src/f32-dwconv/gen/up16x4-avx.c b/src/f32-dwconv/gen/up16x4-minmax-avx.c
similarity index 100%
rename from src/f32-dwconv/gen/up16x4-avx.c
rename to src/f32-dwconv/gen/up16x4-minmax-avx.c
diff --git a/src/f32-dwconv/gen/up16x4-avx512f-acc2.c b/src/f32-dwconv/gen/up16x4-minmax-avx512f-acc2.c
similarity index 100%
rename from src/f32-dwconv/gen/up16x4-avx512f-acc2.c
rename to src/f32-dwconv/gen/up16x4-minmax-avx512f-acc2.c
diff --git a/src/f32-dwconv/gen/up16x4-avx512f.c b/src/f32-dwconv/gen/up16x4-minmax-avx512f.c
similarity index 100%
rename from src/f32-dwconv/gen/up16x4-avx512f.c
rename to src/f32-dwconv/gen/up16x4-minmax-avx512f.c
diff --git a/src/f32-dwconv/gen/up16x4-fma3-acc2.c b/src/f32-dwconv/gen/up16x4-minmax-fma3-acc2.c
similarity index 100%
rename from src/f32-dwconv/gen/up16x4-fma3-acc2.c
rename to src/f32-dwconv/gen/up16x4-minmax-fma3-acc2.c
diff --git a/src/f32-dwconv/gen/up16x4-fma3.c b/src/f32-dwconv/gen/up16x4-minmax-fma3.c
similarity index 100%
rename from src/f32-dwconv/gen/up16x4-fma3.c
rename to src/f32-dwconv/gen/up16x4-minmax-fma3.c
diff --git a/src/f32-dwconv/gen/up16x9-avx-acc2.c b/src/f32-dwconv/gen/up16x9-minmax-avx-acc2.c
similarity index 100%
rename from src/f32-dwconv/gen/up16x9-avx-acc2.c
rename to src/f32-dwconv/gen/up16x9-minmax-avx-acc2.c
diff --git a/src/f32-dwconv/gen/up16x9-avx.c b/src/f32-dwconv/gen/up16x9-minmax-avx.c
similarity index 100%
rename from src/f32-dwconv/gen/up16x9-avx.c
rename to src/f32-dwconv/gen/up16x9-minmax-avx.c
diff --git a/src/f32-dwconv/gen/up16x9-avx512f-acc2.c b/src/f32-dwconv/gen/up16x9-minmax-avx512f-acc2.c
similarity index 100%
rename from src/f32-dwconv/gen/up16x9-avx512f-acc2.c
rename to src/f32-dwconv/gen/up16x9-minmax-avx512f-acc2.c
diff --git a/src/f32-dwconv/gen/up16x9-avx512f.c b/src/f32-dwconv/gen/up16x9-minmax-avx512f.c
similarity index 100%
rename from src/f32-dwconv/gen/up16x9-avx512f.c
rename to src/f32-dwconv/gen/up16x9-minmax-avx512f.c
diff --git a/src/f32-dwconv/gen/up16x9-fma3-acc2.c b/src/f32-dwconv/gen/up16x9-minmax-fma3-acc2.c
similarity index 100%
rename from src/f32-dwconv/gen/up16x9-fma3-acc2.c
rename to src/f32-dwconv/gen/up16x9-minmax-fma3-acc2.c
diff --git a/src/f32-dwconv/gen/up16x9-fma3.c b/src/f32-dwconv/gen/up16x9-minmax-fma3.c
similarity index 100%
rename from src/f32-dwconv/gen/up16x9-fma3.c
rename to src/f32-dwconv/gen/up16x9-minmax-fma3.c
diff --git a/src/f32-dwconv/gen/up1x25-scalar-acc2.c b/src/f32-dwconv/gen/up1x25-minmax-scalar-acc2.c
similarity index 100%
rename from src/f32-dwconv/gen/up1x25-scalar-acc2.c
rename to src/f32-dwconv/gen/up1x25-minmax-scalar-acc2.c
diff --git a/src/f32-dwconv/gen/up1x25-scalar.c b/src/f32-dwconv/gen/up1x25-minmax-scalar.c
similarity index 100%
rename from src/f32-dwconv/gen/up1x25-scalar.c
rename to src/f32-dwconv/gen/up1x25-minmax-scalar.c
diff --git a/src/f32-dwconv/gen/up1x25-wasm-acc2.c b/src/f32-dwconv/gen/up1x25-minmax-wasm-acc2.c
similarity index 100%
rename from src/f32-dwconv/gen/up1x25-wasm-acc2.c
rename to src/f32-dwconv/gen/up1x25-minmax-wasm-acc2.c
diff --git a/src/f32-dwconv/gen/up1x25-wasm.c b/src/f32-dwconv/gen/up1x25-minmax-wasm.c
similarity index 100%
rename from src/f32-dwconv/gen/up1x25-wasm.c
rename to src/f32-dwconv/gen/up1x25-minmax-wasm.c
diff --git a/src/f32-dwconv/gen/up1x4-scalar-acc2.c b/src/f32-dwconv/gen/up1x4-minmax-scalar-acc2.c
similarity index 100%
rename from src/f32-dwconv/gen/up1x4-scalar-acc2.c
rename to src/f32-dwconv/gen/up1x4-minmax-scalar-acc2.c
diff --git a/src/f32-dwconv/gen/up1x4-scalar.c b/src/f32-dwconv/gen/up1x4-minmax-scalar.c
similarity index 100%
rename from src/f32-dwconv/gen/up1x4-scalar.c
rename to src/f32-dwconv/gen/up1x4-minmax-scalar.c
diff --git a/src/f32-dwconv/gen/up1x4-wasm-acc2.c b/src/f32-dwconv/gen/up1x4-minmax-wasm-acc2.c
similarity index 100%
rename from src/f32-dwconv/gen/up1x4-wasm-acc2.c
rename to src/f32-dwconv/gen/up1x4-minmax-wasm-acc2.c
diff --git a/src/f32-dwconv/gen/up1x4-wasm.c b/src/f32-dwconv/gen/up1x4-minmax-wasm.c
similarity index 100%
rename from src/f32-dwconv/gen/up1x4-wasm.c
rename to src/f32-dwconv/gen/up1x4-minmax-wasm.c
diff --git a/src/f32-dwconv/gen/up1x9-scalar-acc2.c b/src/f32-dwconv/gen/up1x9-minmax-scalar-acc2.c
similarity index 100%
rename from src/f32-dwconv/gen/up1x9-scalar-acc2.c
rename to src/f32-dwconv/gen/up1x9-minmax-scalar-acc2.c
diff --git a/src/f32-dwconv/gen/up1x9-scalar.c b/src/f32-dwconv/gen/up1x9-minmax-scalar.c
similarity index 100%
rename from src/f32-dwconv/gen/up1x9-scalar.c
rename to src/f32-dwconv/gen/up1x9-minmax-scalar.c
diff --git a/src/f32-dwconv/gen/up1x9-wasm-acc2.c b/src/f32-dwconv/gen/up1x9-minmax-wasm-acc2.c
similarity index 100%
rename from src/f32-dwconv/gen/up1x9-wasm-acc2.c
rename to src/f32-dwconv/gen/up1x9-minmax-wasm-acc2.c
diff --git a/src/f32-dwconv/gen/up1x9-wasm.c b/src/f32-dwconv/gen/up1x9-minmax-wasm.c
similarity index 100%
rename from src/f32-dwconv/gen/up1x9-wasm.c
rename to src/f32-dwconv/gen/up1x9-minmax-wasm.c
diff --git a/src/f32-dwconv/gen/up2x25-scalar-acc2.c b/src/f32-dwconv/gen/up2x25-minmax-scalar-acc2.c
similarity index 100%
rename from src/f32-dwconv/gen/up2x25-scalar-acc2.c
rename to src/f32-dwconv/gen/up2x25-minmax-scalar-acc2.c
diff --git a/src/f32-dwconv/gen/up2x25-scalar.c b/src/f32-dwconv/gen/up2x25-minmax-scalar.c
similarity index 100%
rename from src/f32-dwconv/gen/up2x25-scalar.c
rename to src/f32-dwconv/gen/up2x25-minmax-scalar.c
diff --git a/src/f32-dwconv/gen/up2x25-wasm-acc2.c b/src/f32-dwconv/gen/up2x25-minmax-wasm-acc2.c
similarity index 100%
rename from src/f32-dwconv/gen/up2x25-wasm-acc2.c
rename to src/f32-dwconv/gen/up2x25-minmax-wasm-acc2.c
diff --git a/src/f32-dwconv/gen/up2x25-wasm.c b/src/f32-dwconv/gen/up2x25-minmax-wasm.c
similarity index 100%
rename from src/f32-dwconv/gen/up2x25-wasm.c
rename to src/f32-dwconv/gen/up2x25-minmax-wasm.c
diff --git a/src/f32-dwconv/gen/up2x4-scalar-acc2.c b/src/f32-dwconv/gen/up2x4-minmax-scalar-acc2.c
similarity index 100%
rename from src/f32-dwconv/gen/up2x4-scalar-acc2.c
rename to src/f32-dwconv/gen/up2x4-minmax-scalar-acc2.c
diff --git a/src/f32-dwconv/gen/up2x4-scalar.c b/src/f32-dwconv/gen/up2x4-minmax-scalar.c
similarity index 100%
rename from src/f32-dwconv/gen/up2x4-scalar.c
rename to src/f32-dwconv/gen/up2x4-minmax-scalar.c
diff --git a/src/f32-dwconv/gen/up2x4-wasm-acc2.c b/src/f32-dwconv/gen/up2x4-minmax-wasm-acc2.c
similarity index 100%
rename from src/f32-dwconv/gen/up2x4-wasm-acc2.c
rename to src/f32-dwconv/gen/up2x4-minmax-wasm-acc2.c
diff --git a/src/f32-dwconv/gen/up2x4-wasm.c b/src/f32-dwconv/gen/up2x4-minmax-wasm.c
similarity index 100%
rename from src/f32-dwconv/gen/up2x4-wasm.c
rename to src/f32-dwconv/gen/up2x4-minmax-wasm.c
diff --git a/src/f32-dwconv/gen/up2x9-scalar-acc2.c b/src/f32-dwconv/gen/up2x9-minmax-scalar-acc2.c
similarity index 100%
rename from src/f32-dwconv/gen/up2x9-scalar-acc2.c
rename to src/f32-dwconv/gen/up2x9-minmax-scalar-acc2.c
diff --git a/src/f32-dwconv/gen/up2x9-scalar.c b/src/f32-dwconv/gen/up2x9-minmax-scalar.c
similarity index 100%
rename from src/f32-dwconv/gen/up2x9-scalar.c
rename to src/f32-dwconv/gen/up2x9-minmax-scalar.c
diff --git a/src/f32-dwconv/gen/up2x9-wasm-acc2.c b/src/f32-dwconv/gen/up2x9-minmax-wasm-acc2.c
similarity index 100%
rename from src/f32-dwconv/gen/up2x9-wasm-acc2.c
rename to src/f32-dwconv/gen/up2x9-minmax-wasm-acc2.c
diff --git a/src/f32-dwconv/gen/up2x9-wasm.c b/src/f32-dwconv/gen/up2x9-minmax-wasm.c
similarity index 100%
rename from src/f32-dwconv/gen/up2x9-wasm.c
rename to src/f32-dwconv/gen/up2x9-minmax-wasm.c
diff --git a/src/f32-dwconv/gen/up32x25-avx512f-acc2.c b/src/f32-dwconv/gen/up32x25-minmax-avx512f-acc2.c
similarity index 100%
rename from src/f32-dwconv/gen/up32x25-avx512f-acc2.c
rename to src/f32-dwconv/gen/up32x25-minmax-avx512f-acc2.c
diff --git a/src/f32-dwconv/gen/up32x25-avx512f.c b/src/f32-dwconv/gen/up32x25-minmax-avx512f.c
similarity index 100%
rename from src/f32-dwconv/gen/up32x25-avx512f.c
rename to src/f32-dwconv/gen/up32x25-minmax-avx512f.c
diff --git a/src/f32-dwconv/gen/up32x4-avx512f-acc2.c b/src/f32-dwconv/gen/up32x4-minmax-avx512f-acc2.c
similarity index 100%
rename from src/f32-dwconv/gen/up32x4-avx512f-acc2.c
rename to src/f32-dwconv/gen/up32x4-minmax-avx512f-acc2.c
diff --git a/src/f32-dwconv/gen/up32x4-avx512f.c b/src/f32-dwconv/gen/up32x4-minmax-avx512f.c
similarity index 100%
rename from src/f32-dwconv/gen/up32x4-avx512f.c
rename to src/f32-dwconv/gen/up32x4-minmax-avx512f.c
diff --git a/src/f32-dwconv/gen/up32x9-avx512f-acc2.c b/src/f32-dwconv/gen/up32x9-minmax-avx512f-acc2.c
similarity index 100%
rename from src/f32-dwconv/gen/up32x9-avx512f-acc2.c
rename to src/f32-dwconv/gen/up32x9-minmax-avx512f-acc2.c
diff --git a/src/f32-dwconv/gen/up32x9-avx512f.c b/src/f32-dwconv/gen/up32x9-minmax-avx512f.c
similarity index 100%
rename from src/f32-dwconv/gen/up32x9-avx512f.c
rename to src/f32-dwconv/gen/up32x9-minmax-avx512f.c
diff --git a/src/f32-dwconv/gen/up4x25-psimd-acc2.c b/src/f32-dwconv/gen/up4x25-minmax-psimd-acc2.c
similarity index 100%
rename from src/f32-dwconv/gen/up4x25-psimd-acc2.c
rename to src/f32-dwconv/gen/up4x25-minmax-psimd-acc2.c
diff --git a/src/f32-dwconv/gen/up4x25-psimd.c b/src/f32-dwconv/gen/up4x25-minmax-psimd.c
similarity index 100%
rename from src/f32-dwconv/gen/up4x25-psimd.c
rename to src/f32-dwconv/gen/up4x25-minmax-psimd.c
diff --git a/src/f32-dwconv/gen/up4x25-sse-acc2.c b/src/f32-dwconv/gen/up4x25-minmax-sse-acc2.c
similarity index 100%
rename from src/f32-dwconv/gen/up4x25-sse-acc2.c
rename to src/f32-dwconv/gen/up4x25-minmax-sse-acc2.c
diff --git a/src/f32-dwconv/gen/up4x25-sse.c b/src/f32-dwconv/gen/up4x25-minmax-sse.c
similarity index 100%
rename from src/f32-dwconv/gen/up4x25-sse.c
rename to src/f32-dwconv/gen/up4x25-minmax-sse.c
diff --git a/src/f32-dwconv/gen/up4x4-psimd-acc2.c b/src/f32-dwconv/gen/up4x4-minmax-psimd-acc2.c
similarity index 100%
rename from src/f32-dwconv/gen/up4x4-psimd-acc2.c
rename to src/f32-dwconv/gen/up4x4-minmax-psimd-acc2.c
diff --git a/src/f32-dwconv/gen/up4x4-psimd.c b/src/f32-dwconv/gen/up4x4-minmax-psimd.c
similarity index 100%
rename from src/f32-dwconv/gen/up4x4-psimd.c
rename to src/f32-dwconv/gen/up4x4-minmax-psimd.c
diff --git a/src/f32-dwconv/gen/up4x4-sse-acc2.c b/src/f32-dwconv/gen/up4x4-minmax-sse-acc2.c
similarity index 100%
rename from src/f32-dwconv/gen/up4x4-sse-acc2.c
rename to src/f32-dwconv/gen/up4x4-minmax-sse-acc2.c
diff --git a/src/f32-dwconv/gen/up4x4-sse.c b/src/f32-dwconv/gen/up4x4-minmax-sse.c
similarity index 100%
rename from src/f32-dwconv/gen/up4x4-sse.c
rename to src/f32-dwconv/gen/up4x4-minmax-sse.c
diff --git a/src/f32-dwconv/gen/up4x9-neon-acc2.c b/src/f32-dwconv/gen/up4x9-minmax-neon-acc2.c
similarity index 100%
rename from src/f32-dwconv/gen/up4x9-neon-acc2.c
rename to src/f32-dwconv/gen/up4x9-minmax-neon-acc2.c
diff --git a/src/f32-dwconv/gen/up4x9-neon.c b/src/f32-dwconv/gen/up4x9-minmax-neon.c
similarity index 100%
rename from src/f32-dwconv/gen/up4x9-neon.c
rename to src/f32-dwconv/gen/up4x9-minmax-neon.c
diff --git a/src/f32-dwconv/gen/up4x9-neonfma-acc2.c b/src/f32-dwconv/gen/up4x9-minmax-neonfma-acc2.c
similarity index 100%
rename from src/f32-dwconv/gen/up4x9-neonfma-acc2.c
rename to src/f32-dwconv/gen/up4x9-minmax-neonfma-acc2.c
diff --git a/src/f32-dwconv/gen/up4x9-neonfma.c b/src/f32-dwconv/gen/up4x9-minmax-neonfma.c
similarity index 100%
rename from src/f32-dwconv/gen/up4x9-neonfma.c
rename to src/f32-dwconv/gen/up4x9-minmax-neonfma.c
diff --git a/src/f32-dwconv/gen/up4x9-psimd-acc2.c b/src/f32-dwconv/gen/up4x9-minmax-psimd-acc2.c
similarity index 100%
rename from src/f32-dwconv/gen/up4x9-psimd-acc2.c
rename to src/f32-dwconv/gen/up4x9-minmax-psimd-acc2.c
diff --git a/src/f32-dwconv/gen/up4x9-psimd.c b/src/f32-dwconv/gen/up4x9-minmax-psimd.c
similarity index 100%
rename from src/f32-dwconv/gen/up4x9-psimd.c
rename to src/f32-dwconv/gen/up4x9-minmax-psimd.c
diff --git a/src/f32-dwconv/gen/up4x9-sse-acc2.c b/src/f32-dwconv/gen/up4x9-minmax-sse-acc2.c
similarity index 100%
rename from src/f32-dwconv/gen/up4x9-sse-acc2.c
rename to src/f32-dwconv/gen/up4x9-minmax-sse-acc2.c
diff --git a/src/f32-dwconv/gen/up4x9-sse.c b/src/f32-dwconv/gen/up4x9-minmax-sse.c
similarity index 100%
rename from src/f32-dwconv/gen/up4x9-sse.c
rename to src/f32-dwconv/gen/up4x9-minmax-sse.c
diff --git a/src/f32-dwconv/gen/up8x25-avx-acc2.c b/src/f32-dwconv/gen/up8x25-minmax-avx-acc2.c
similarity index 100%
rename from src/f32-dwconv/gen/up8x25-avx-acc2.c
rename to src/f32-dwconv/gen/up8x25-minmax-avx-acc2.c
diff --git a/src/f32-dwconv/gen/up8x25-avx.c b/src/f32-dwconv/gen/up8x25-minmax-avx.c
similarity index 100%
rename from src/f32-dwconv/gen/up8x25-avx.c
rename to src/f32-dwconv/gen/up8x25-minmax-avx.c
diff --git a/src/f32-dwconv/gen/up8x25-fma3-acc2.c b/src/f32-dwconv/gen/up8x25-minmax-fma3-acc2.c
similarity index 100%
rename from src/f32-dwconv/gen/up8x25-fma3-acc2.c
rename to src/f32-dwconv/gen/up8x25-minmax-fma3-acc2.c
diff --git a/src/f32-dwconv/gen/up8x25-fma3.c b/src/f32-dwconv/gen/up8x25-minmax-fma3.c
similarity index 100%
rename from src/f32-dwconv/gen/up8x25-fma3.c
rename to src/f32-dwconv/gen/up8x25-minmax-fma3.c
diff --git a/src/f32-dwconv/gen/up8x25-psimd-acc2.c b/src/f32-dwconv/gen/up8x25-minmax-psimd-acc2.c
similarity index 100%
rename from src/f32-dwconv/gen/up8x25-psimd-acc2.c
rename to src/f32-dwconv/gen/up8x25-minmax-psimd-acc2.c
diff --git a/src/f32-dwconv/gen/up8x25-psimd.c b/src/f32-dwconv/gen/up8x25-minmax-psimd.c
similarity index 100%
rename from src/f32-dwconv/gen/up8x25-psimd.c
rename to src/f32-dwconv/gen/up8x25-minmax-psimd.c
diff --git a/src/f32-dwconv/gen/up8x25-sse-acc2.c b/src/f32-dwconv/gen/up8x25-minmax-sse-acc2.c
similarity index 100%
rename from src/f32-dwconv/gen/up8x25-sse-acc2.c
rename to src/f32-dwconv/gen/up8x25-minmax-sse-acc2.c
diff --git a/src/f32-dwconv/gen/up8x25-sse.c b/src/f32-dwconv/gen/up8x25-minmax-sse.c
similarity index 100%
rename from src/f32-dwconv/gen/up8x25-sse.c
rename to src/f32-dwconv/gen/up8x25-minmax-sse.c
diff --git a/src/f32-dwconv/gen/up8x4-avx-acc2.c b/src/f32-dwconv/gen/up8x4-minmax-avx-acc2.c
similarity index 100%
rename from src/f32-dwconv/gen/up8x4-avx-acc2.c
rename to src/f32-dwconv/gen/up8x4-minmax-avx-acc2.c
diff --git a/src/f32-dwconv/gen/up8x4-avx.c b/src/f32-dwconv/gen/up8x4-minmax-avx.c
similarity index 100%
rename from src/f32-dwconv/gen/up8x4-avx.c
rename to src/f32-dwconv/gen/up8x4-minmax-avx.c
diff --git a/src/f32-dwconv/gen/up8x4-fma3-acc2.c b/src/f32-dwconv/gen/up8x4-minmax-fma3-acc2.c
similarity index 100%
rename from src/f32-dwconv/gen/up8x4-fma3-acc2.c
rename to src/f32-dwconv/gen/up8x4-minmax-fma3-acc2.c
diff --git a/src/f32-dwconv/gen/up8x4-fma3.c b/src/f32-dwconv/gen/up8x4-minmax-fma3.c
similarity index 100%
rename from src/f32-dwconv/gen/up8x4-fma3.c
rename to src/f32-dwconv/gen/up8x4-minmax-fma3.c
diff --git a/src/f32-dwconv/gen/up8x4-psimd-acc2.c b/src/f32-dwconv/gen/up8x4-minmax-psimd-acc2.c
similarity index 100%
rename from src/f32-dwconv/gen/up8x4-psimd-acc2.c
rename to src/f32-dwconv/gen/up8x4-minmax-psimd-acc2.c
diff --git a/src/f32-dwconv/gen/up8x4-psimd.c b/src/f32-dwconv/gen/up8x4-minmax-psimd.c
similarity index 100%
rename from src/f32-dwconv/gen/up8x4-psimd.c
rename to src/f32-dwconv/gen/up8x4-minmax-psimd.c
diff --git a/src/f32-dwconv/gen/up8x4-sse-acc2.c b/src/f32-dwconv/gen/up8x4-minmax-sse-acc2.c
similarity index 100%
rename from src/f32-dwconv/gen/up8x4-sse-acc2.c
rename to src/f32-dwconv/gen/up8x4-minmax-sse-acc2.c
diff --git a/src/f32-dwconv/gen/up8x4-sse.c b/src/f32-dwconv/gen/up8x4-minmax-sse.c
similarity index 100%
rename from src/f32-dwconv/gen/up8x4-sse.c
rename to src/f32-dwconv/gen/up8x4-minmax-sse.c
diff --git a/src/f32-dwconv/gen/up8x9-avx-acc2.c b/src/f32-dwconv/gen/up8x9-minmax-avx-acc2.c
similarity index 100%
rename from src/f32-dwconv/gen/up8x9-avx-acc2.c
rename to src/f32-dwconv/gen/up8x9-minmax-avx-acc2.c
diff --git a/src/f32-dwconv/gen/up8x9-avx.c b/src/f32-dwconv/gen/up8x9-minmax-avx.c
similarity index 100%
rename from src/f32-dwconv/gen/up8x9-avx.c
rename to src/f32-dwconv/gen/up8x9-minmax-avx.c
diff --git a/src/f32-dwconv/gen/up8x9-fma3-acc2.c b/src/f32-dwconv/gen/up8x9-minmax-fma3-acc2.c
similarity index 100%
rename from src/f32-dwconv/gen/up8x9-fma3-acc2.c
rename to src/f32-dwconv/gen/up8x9-minmax-fma3-acc2.c
diff --git a/src/f32-dwconv/gen/up8x9-fma3.c b/src/f32-dwconv/gen/up8x9-minmax-fma3.c
similarity index 100%
rename from src/f32-dwconv/gen/up8x9-fma3.c
rename to src/f32-dwconv/gen/up8x9-minmax-fma3.c
diff --git a/src/f32-dwconv/gen/up8x9-neon-acc2.c b/src/f32-dwconv/gen/up8x9-minmax-neon-acc2.c
similarity index 100%
rename from src/f32-dwconv/gen/up8x9-neon-acc2.c
rename to src/f32-dwconv/gen/up8x9-minmax-neon-acc2.c
diff --git a/src/f32-dwconv/gen/up8x9-neon.c b/src/f32-dwconv/gen/up8x9-minmax-neon.c
similarity index 100%
rename from src/f32-dwconv/gen/up8x9-neon.c
rename to src/f32-dwconv/gen/up8x9-minmax-neon.c
diff --git a/src/f32-dwconv/gen/up8x9-neonfma-acc2.c b/src/f32-dwconv/gen/up8x9-minmax-neonfma-acc2.c
similarity index 100%
rename from src/f32-dwconv/gen/up8x9-neonfma-acc2.c
rename to src/f32-dwconv/gen/up8x9-minmax-neonfma-acc2.c
diff --git a/src/f32-dwconv/gen/up8x9-neonfma.c b/src/f32-dwconv/gen/up8x9-minmax-neonfma.c
similarity index 100%
rename from src/f32-dwconv/gen/up8x9-neonfma.c
rename to src/f32-dwconv/gen/up8x9-minmax-neonfma.c
diff --git a/src/f32-dwconv/gen/up8x9-psimd-acc2.c b/src/f32-dwconv/gen/up8x9-minmax-psimd-acc2.c
similarity index 100%
rename from src/f32-dwconv/gen/up8x9-psimd-acc2.c
rename to src/f32-dwconv/gen/up8x9-minmax-psimd-acc2.c
diff --git a/src/f32-dwconv/gen/up8x9-psimd.c b/src/f32-dwconv/gen/up8x9-minmax-psimd.c
similarity index 100%
rename from src/f32-dwconv/gen/up8x9-psimd.c
rename to src/f32-dwconv/gen/up8x9-minmax-psimd.c
diff --git a/src/f32-dwconv/gen/up8x9-sse-acc2.c b/src/f32-dwconv/gen/up8x9-minmax-sse-acc2.c
similarity index 100%
rename from src/f32-dwconv/gen/up8x9-sse-acc2.c
rename to src/f32-dwconv/gen/up8x9-minmax-sse-acc2.c
diff --git a/src/f32-dwconv/gen/up8x9-sse.c b/src/f32-dwconv/gen/up8x9-minmax-sse.c
similarity index 100%
rename from src/f32-dwconv/gen/up8x9-sse.c
rename to src/f32-dwconv/gen/up8x9-minmax-sse.c
diff --git a/src/f32-dwconv/up4x9-aarch64-neonfma-cortex-a55.S b/src/f32-dwconv/up4x9-minmax-aarch64-neonfma-cortex-a55.S
similarity index 100%
rename from src/f32-dwconv/up4x9-aarch64-neonfma-cortex-a55.S
rename to src/f32-dwconv/up4x9-minmax-aarch64-neonfma-cortex-a55.S
diff --git a/src/f32-dwconv/up4x9-aarch64-neonfma.S b/src/f32-dwconv/up4x9-minmax-aarch64-neonfma.S
similarity index 100%
rename from src/f32-dwconv/up4x9-aarch64-neonfma.S
rename to src/f32-dwconv/up4x9-minmax-aarch64-neonfma.S
diff --git a/src/f32-gemm/4x8-aarch32-neon-cortex-a53.S b/src/f32-gemm/4x8-minmax-aarch32-neon-cortex-a53.S
similarity index 100%
rename from src/f32-gemm/4x8-aarch32-neon-cortex-a53.S
rename to src/f32-gemm/4x8-minmax-aarch32-neon-cortex-a53.S
diff --git a/src/f32-gemm/4x8-aarch32-neon-cortex-a55.S b/src/f32-gemm/4x8-minmax-aarch32-neon-cortex-a55.S
similarity index 100%
rename from src/f32-gemm/4x8-aarch32-neon-cortex-a55.S
rename to src/f32-gemm/4x8-minmax-aarch32-neon-cortex-a55.S
diff --git a/src/f32-gemm/4x8-aarch32-neon-ld64.S b/src/f32-gemm/4x8-minmax-aarch32-neon-ld64.S
similarity index 100%
rename from src/f32-gemm/4x8-aarch32-neon-ld64.S
rename to src/f32-gemm/4x8-minmax-aarch32-neon-ld64.S
diff --git a/src/f32-gemm/gen-inc/1x12-aarch64-neonfma-cortex-a53.S b/src/f32-gemm/gen-inc/1x12inc-minmax-aarch64-neonfma-cortex-a53.S
similarity index 100%
rename from src/f32-gemm/gen-inc/1x12-aarch64-neonfma-cortex-a53.S
rename to src/f32-gemm/gen-inc/1x12inc-minmax-aarch64-neonfma-cortex-a53.S
diff --git a/src/f32-gemm/gen-inc/1x16-avx-broadcast.c b/src/f32-gemm/gen-inc/1x16inc-minmax-avx-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen-inc/1x16-avx-broadcast.c
rename to src/f32-gemm/gen-inc/1x16inc-minmax-avx-broadcast.c
diff --git a/src/f32-gemm/gen-inc/1x16-avx512f-broadcast.c b/src/f32-gemm/gen-inc/1x16inc-minmax-avx512f-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen-inc/1x16-avx512f-broadcast.c
rename to src/f32-gemm/gen-inc/1x16inc-minmax-avx512f-broadcast.c
diff --git a/src/f32-gemm/gen-inc/1x16-fma3-broadcast.c b/src/f32-gemm/gen-inc/1x16inc-minmax-fma3-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen-inc/1x16-fma3-broadcast.c
rename to src/f32-gemm/gen-inc/1x16inc-minmax-fma3-broadcast.c
diff --git a/src/f32-gemm/gen-inc/1x16s4-fma3-broadcast.c b/src/f32-gemm/gen-inc/1x16s4inc-minmax-fma3-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen-inc/1x16s4-fma3-broadcast.c
rename to src/f32-gemm/gen-inc/1x16s4inc-minmax-fma3-broadcast.c
diff --git a/src/f32-gemm/gen-inc/1x4-scalar.c b/src/f32-gemm/gen-inc/1x4inc-minmax-scalar.c
similarity index 100%
rename from src/f32-gemm/gen-inc/1x4-scalar.c
rename to src/f32-gemm/gen-inc/1x4inc-minmax-scalar.c
diff --git a/src/f32-gemm/gen-inc/1x4-wasm.c b/src/f32-gemm/gen-inc/1x4inc-minmax-wasm.c
similarity index 100%
rename from src/f32-gemm/gen-inc/1x4-wasm.c
rename to src/f32-gemm/gen-inc/1x4inc-minmax-wasm.c
diff --git a/src/f32-gemm/gen-inc/1x8-aarch64-neonfma-cortex-a53.S b/src/f32-gemm/gen-inc/1x8inc-minmax-aarch64-neonfma-cortex-a53.S
similarity index 100%
rename from src/f32-gemm/gen-inc/1x8-aarch64-neonfma-cortex-a53.S
rename to src/f32-gemm/gen-inc/1x8inc-minmax-aarch64-neonfma-cortex-a53.S
diff --git a/src/f32-gemm/gen-inc/1x8-aarch64-neonfma-cortex-a57.S b/src/f32-gemm/gen-inc/1x8inc-minmax-aarch64-neonfma-cortex-a57.S
similarity index 100%
rename from src/f32-gemm/gen-inc/1x8-aarch64-neonfma-cortex-a57.S
rename to src/f32-gemm/gen-inc/1x8inc-minmax-aarch64-neonfma-cortex-a57.S
diff --git a/src/f32-gemm/gen-inc/1x8-aarch64-neonfma-cortex-a75.S b/src/f32-gemm/gen-inc/1x8inc-minmax-aarch64-neonfma-cortex-a75.S
similarity index 100%
rename from src/f32-gemm/gen-inc/1x8-aarch64-neonfma-cortex-a75.S
rename to src/f32-gemm/gen-inc/1x8inc-minmax-aarch64-neonfma-cortex-a75.S
diff --git a/src/f32-gemm/gen-inc/1x8-avx-broadcast.c b/src/f32-gemm/gen-inc/1x8inc-minmax-avx-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen-inc/1x8-avx-broadcast.c
rename to src/f32-gemm/gen-inc/1x8inc-minmax-avx-broadcast.c
diff --git a/src/f32-gemm/gen-inc/1x8-fma3-broadcast.c b/src/f32-gemm/gen-inc/1x8inc-minmax-fma3-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen-inc/1x8-fma3-broadcast.c
rename to src/f32-gemm/gen-inc/1x8inc-minmax-fma3-broadcast.c
diff --git a/src/f32-gemm/gen-inc/1x8-neon-dup-ld64.c b/src/f32-gemm/gen-inc/1x8inc-minmax-neon-dup-ld64.c
similarity index 100%
rename from src/f32-gemm/gen-inc/1x8-neon-dup-ld64.c
rename to src/f32-gemm/gen-inc/1x8inc-minmax-neon-dup-ld64.c
diff --git a/src/f32-gemm/gen-inc/1x8-neon-lane-ld64.c b/src/f32-gemm/gen-inc/1x8inc-minmax-neon-lane-ld64.c
similarity index 100%
rename from src/f32-gemm/gen-inc/1x8-neon-lane-ld64.c
rename to src/f32-gemm/gen-inc/1x8inc-minmax-neon-lane-ld64.c
diff --git a/src/f32-gemm/gen-inc/1x8-neonfma-dup-ld64.c b/src/f32-gemm/gen-inc/1x8inc-minmax-neonfma-dup-ld64.c
similarity index 100%
rename from src/f32-gemm/gen-inc/1x8-neonfma-dup-ld64.c
rename to src/f32-gemm/gen-inc/1x8inc-minmax-neonfma-dup-ld64.c
diff --git a/src/f32-gemm/gen-inc/1x8-neonfma-lane-ld64.c b/src/f32-gemm/gen-inc/1x8inc-minmax-neonfma-lane-ld64.c
similarity index 100%
rename from src/f32-gemm/gen-inc/1x8-neonfma-lane-ld64.c
rename to src/f32-gemm/gen-inc/1x8inc-minmax-neonfma-lane-ld64.c
diff --git a/src/f32-gemm/gen-inc/1x8-psimd-loadsplat.c b/src/f32-gemm/gen-inc/1x8inc-minmax-psimd-loadsplat.c
similarity index 100%
rename from src/f32-gemm/gen-inc/1x8-psimd-loadsplat.c
rename to src/f32-gemm/gen-inc/1x8inc-minmax-psimd-loadsplat.c
diff --git a/src/f32-gemm/gen-inc/1x8-psimd-splat.c b/src/f32-gemm/gen-inc/1x8inc-minmax-psimd-splat.c
similarity index 100%
rename from src/f32-gemm/gen-inc/1x8-psimd-splat.c
rename to src/f32-gemm/gen-inc/1x8inc-minmax-psimd-splat.c
diff --git a/src/f32-gemm/gen-inc/1x8-sse-dup.c b/src/f32-gemm/gen-inc/1x8inc-minmax-sse-dup.c
similarity index 100%
rename from src/f32-gemm/gen-inc/1x8-sse-dup.c
rename to src/f32-gemm/gen-inc/1x8inc-minmax-sse-dup.c
diff --git a/src/f32-gemm/gen-inc/1x8-sse-load1.c b/src/f32-gemm/gen-inc/1x8inc-minmax-sse-load1.c
similarity index 100%
rename from src/f32-gemm/gen-inc/1x8-sse-load1.c
rename to src/f32-gemm/gen-inc/1x8inc-minmax-sse-load1.c
diff --git a/src/f32-gemm/gen-inc/1x8s4-neon.c b/src/f32-gemm/gen-inc/1x8s4inc-minmax-neon.c
similarity index 100%
rename from src/f32-gemm/gen-inc/1x8s4-neon.c
rename to src/f32-gemm/gen-inc/1x8s4inc-minmax-neon.c
diff --git a/src/f32-gemm/gen-inc/1x8s4-neonfma.c b/src/f32-gemm/gen-inc/1x8s4inc-minmax-neonfma.c
similarity index 100%
rename from src/f32-gemm/gen-inc/1x8s4-neonfma.c
rename to src/f32-gemm/gen-inc/1x8s4inc-minmax-neonfma.c
diff --git a/src/f32-gemm/gen-inc/1x8s4-psimd.c b/src/f32-gemm/gen-inc/1x8s4inc-minmax-psimd.c
similarity index 100%
rename from src/f32-gemm/gen-inc/1x8s4-psimd.c
rename to src/f32-gemm/gen-inc/1x8s4inc-minmax-psimd.c
diff --git a/src/f32-gemm/gen-inc/1x8s4-sse.c b/src/f32-gemm/gen-inc/1x8s4inc-minmax-sse.c
similarity index 100%
rename from src/f32-gemm/gen-inc/1x8s4-sse.c
rename to src/f32-gemm/gen-inc/1x8s4inc-minmax-sse.c
diff --git a/src/f32-gemm/gen-inc/2x4-scalar.c b/src/f32-gemm/gen-inc/2x4inc-minmax-scalar.c
similarity index 100%
rename from src/f32-gemm/gen-inc/2x4-scalar.c
rename to src/f32-gemm/gen-inc/2x4inc-minmax-scalar.c
diff --git a/src/f32-gemm/gen-inc/2x4-wasm.c b/src/f32-gemm/gen-inc/2x4inc-minmax-wasm.c
similarity index 100%
rename from src/f32-gemm/gen-inc/2x4-wasm.c
rename to src/f32-gemm/gen-inc/2x4inc-minmax-wasm.c
diff --git a/src/f32-gemm/gen-inc/3x16-avx-broadcast.c b/src/f32-gemm/gen-inc/3x16inc-minmax-avx-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen-inc/3x16-avx-broadcast.c
rename to src/f32-gemm/gen-inc/3x16inc-minmax-avx-broadcast.c
diff --git a/src/f32-gemm/gen-inc/3x16-fma3-broadcast.c b/src/f32-gemm/gen-inc/3x16inc-minmax-fma3-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen-inc/3x16-fma3-broadcast.c
rename to src/f32-gemm/gen-inc/3x16inc-minmax-fma3-broadcast.c
diff --git a/src/f32-gemm/gen-inc/3x16s4-fma3-broadcast.c b/src/f32-gemm/gen-inc/3x16s4inc-minmax-fma3-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen-inc/3x16s4-fma3-broadcast.c
rename to src/f32-gemm/gen-inc/3x16s4inc-minmax-fma3-broadcast.c
diff --git a/src/f32-gemm/gen-inc/4x12-aarch64-neonfma-cortex-a53.S b/src/f32-gemm/gen-inc/4x12inc-minmax-aarch64-neonfma-cortex-a53.S
similarity index 100%
rename from src/f32-gemm/gen-inc/4x12-aarch64-neonfma-cortex-a53.S
rename to src/f32-gemm/gen-inc/4x12inc-minmax-aarch64-neonfma-cortex-a53.S
diff --git a/src/f32-gemm/gen-inc/4x16-avx-broadcast.c b/src/f32-gemm/gen-inc/4x16inc-minmax-avx-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen-inc/4x16-avx-broadcast.c
rename to src/f32-gemm/gen-inc/4x16inc-minmax-avx-broadcast.c
diff --git a/src/f32-gemm/gen-inc/4x16-avx512f-broadcast.c b/src/f32-gemm/gen-inc/4x16inc-minmax-avx512f-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen-inc/4x16-avx512f-broadcast.c
rename to src/f32-gemm/gen-inc/4x16inc-minmax-avx512f-broadcast.c
diff --git a/src/f32-gemm/gen-inc/4x16-fma3-broadcast.c b/src/f32-gemm/gen-inc/4x16inc-minmax-fma3-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen-inc/4x16-fma3-broadcast.c
rename to src/f32-gemm/gen-inc/4x16inc-minmax-fma3-broadcast.c
diff --git a/src/f32-gemm/gen-inc/4x16s4-fma3-broadcast.c b/src/f32-gemm/gen-inc/4x16s4inc-minmax-fma3-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen-inc/4x16s4-fma3-broadcast.c
rename to src/f32-gemm/gen-inc/4x16s4inc-minmax-fma3-broadcast.c
diff --git a/src/f32-gemm/gen-inc/4x4-scalar.c b/src/f32-gemm/gen-inc/4x4inc-minmax-scalar.c
similarity index 100%
rename from src/f32-gemm/gen-inc/4x4-scalar.c
rename to src/f32-gemm/gen-inc/4x4inc-minmax-scalar.c
diff --git a/src/f32-gemm/gen-inc/4x4-wasm.c b/src/f32-gemm/gen-inc/4x4inc-minmax-wasm.c
similarity index 100%
rename from src/f32-gemm/gen-inc/4x4-wasm.c
rename to src/f32-gemm/gen-inc/4x4inc-minmax-wasm.c
diff --git a/src/f32-gemm/gen-inc/4x8-aarch64-neonfma-cortex-a53.S b/src/f32-gemm/gen-inc/4x8inc-minmax-aarch64-neonfma-cortex-a53.S
similarity index 100%
rename from src/f32-gemm/gen-inc/4x8-aarch64-neonfma-cortex-a53.S
rename to src/f32-gemm/gen-inc/4x8inc-minmax-aarch64-neonfma-cortex-a53.S
diff --git a/src/f32-gemm/gen-inc/4x8-aarch64-neonfma-cortex-a55.S b/src/f32-gemm/gen-inc/4x8inc-minmax-aarch64-neonfma-cortex-a55.S
similarity index 100%
rename from src/f32-gemm/gen-inc/4x8-aarch64-neonfma-cortex-a55.S
rename to src/f32-gemm/gen-inc/4x8inc-minmax-aarch64-neonfma-cortex-a55.S
diff --git a/src/f32-gemm/gen-inc/4x8-aarch64-neonfma-cortex-a57.S b/src/f32-gemm/gen-inc/4x8inc-minmax-aarch64-neonfma-cortex-a57.S
similarity index 100%
rename from src/f32-gemm/gen-inc/4x8-aarch64-neonfma-cortex-a57.S
rename to src/f32-gemm/gen-inc/4x8inc-minmax-aarch64-neonfma-cortex-a57.S
diff --git a/src/f32-gemm/gen-inc/4x8-aarch64-neonfma-cortex-a75.S b/src/f32-gemm/gen-inc/4x8inc-minmax-aarch64-neonfma-cortex-a75.S
similarity index 100%
rename from src/f32-gemm/gen-inc/4x8-aarch64-neonfma-cortex-a75.S
rename to src/f32-gemm/gen-inc/4x8inc-minmax-aarch64-neonfma-cortex-a75.S
diff --git a/src/f32-gemm/gen-inc/4x8-aarch64-neonfma-ld128.S b/src/f32-gemm/gen-inc/4x8inc-minmax-aarch64-neonfma-ld128.S
similarity index 100%
rename from src/f32-gemm/gen-inc/4x8-aarch64-neonfma-ld128.S
rename to src/f32-gemm/gen-inc/4x8inc-minmax-aarch64-neonfma-ld128.S
diff --git a/src/f32-gemm/gen-inc/4x8-aarch64-neonfma-ld64.S b/src/f32-gemm/gen-inc/4x8inc-minmax-aarch64-neonfma-ld64.S
similarity index 100%
rename from src/f32-gemm/gen-inc/4x8-aarch64-neonfma-ld64.S
rename to src/f32-gemm/gen-inc/4x8inc-minmax-aarch64-neonfma-ld64.S
diff --git a/src/f32-gemm/gen-inc/4x8-avx-broadcast.c b/src/f32-gemm/gen-inc/4x8inc-minmax-avx-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen-inc/4x8-avx-broadcast.c
rename to src/f32-gemm/gen-inc/4x8inc-minmax-avx-broadcast.c
diff --git a/src/f32-gemm/gen-inc/4x8-fma3-broadcast.c b/src/f32-gemm/gen-inc/4x8inc-minmax-fma3-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen-inc/4x8-fma3-broadcast.c
rename to src/f32-gemm/gen-inc/4x8inc-minmax-fma3-broadcast.c
diff --git a/src/f32-gemm/gen-inc/4x8-neon-dup-ld128.c b/src/f32-gemm/gen-inc/4x8inc-minmax-neon-dup-ld128.c
similarity index 100%
rename from src/f32-gemm/gen-inc/4x8-neon-dup-ld128.c
rename to src/f32-gemm/gen-inc/4x8inc-minmax-neon-dup-ld128.c
diff --git a/src/f32-gemm/gen-inc/4x8-neon-dup-ld64.c b/src/f32-gemm/gen-inc/4x8inc-minmax-neon-dup-ld64.c
similarity index 100%
rename from src/f32-gemm/gen-inc/4x8-neon-dup-ld64.c
rename to src/f32-gemm/gen-inc/4x8inc-minmax-neon-dup-ld64.c
diff --git a/src/f32-gemm/gen-inc/4x8-neon-lane-ld128.c b/src/f32-gemm/gen-inc/4x8inc-minmax-neon-lane-ld128.c
similarity index 100%
rename from src/f32-gemm/gen-inc/4x8-neon-lane-ld128.c
rename to src/f32-gemm/gen-inc/4x8inc-minmax-neon-lane-ld128.c
diff --git a/src/f32-gemm/gen-inc/4x8-neon-lane-ld64.c b/src/f32-gemm/gen-inc/4x8inc-minmax-neon-lane-ld64.c
similarity index 100%
rename from src/f32-gemm/gen-inc/4x8-neon-lane-ld64.c
rename to src/f32-gemm/gen-inc/4x8inc-minmax-neon-lane-ld64.c
diff --git a/src/f32-gemm/gen-inc/4x8-neonfma-dup-ld128.c b/src/f32-gemm/gen-inc/4x8inc-minmax-neonfma-dup-ld128.c
similarity index 100%
rename from src/f32-gemm/gen-inc/4x8-neonfma-dup-ld128.c
rename to src/f32-gemm/gen-inc/4x8inc-minmax-neonfma-dup-ld128.c
diff --git a/src/f32-gemm/gen-inc/4x8-neonfma-dup-ld64.c b/src/f32-gemm/gen-inc/4x8inc-minmax-neonfma-dup-ld64.c
similarity index 100%
rename from src/f32-gemm/gen-inc/4x8-neonfma-dup-ld64.c
rename to src/f32-gemm/gen-inc/4x8inc-minmax-neonfma-dup-ld64.c
diff --git a/src/f32-gemm/gen-inc/4x8-neonfma-lane-ld128.c b/src/f32-gemm/gen-inc/4x8inc-minmax-neonfma-lane-ld128.c
similarity index 100%
rename from src/f32-gemm/gen-inc/4x8-neonfma-lane-ld128.c
rename to src/f32-gemm/gen-inc/4x8inc-minmax-neonfma-lane-ld128.c
diff --git a/src/f32-gemm/gen-inc/4x8-neonfma-lane-ld64.c b/src/f32-gemm/gen-inc/4x8inc-minmax-neonfma-lane-ld64.c
similarity index 100%
rename from src/f32-gemm/gen-inc/4x8-neonfma-lane-ld64.c
rename to src/f32-gemm/gen-inc/4x8inc-minmax-neonfma-lane-ld64.c
diff --git a/src/f32-gemm/gen-inc/4x8-psimd-loadsplat.c b/src/f32-gemm/gen-inc/4x8inc-minmax-psimd-loadsplat.c
similarity index 100%
rename from src/f32-gemm/gen-inc/4x8-psimd-loadsplat.c
rename to src/f32-gemm/gen-inc/4x8inc-minmax-psimd-loadsplat.c
diff --git a/src/f32-gemm/gen-inc/4x8-psimd-splat.c b/src/f32-gemm/gen-inc/4x8inc-minmax-psimd-splat.c
similarity index 100%
rename from src/f32-gemm/gen-inc/4x8-psimd-splat.c
rename to src/f32-gemm/gen-inc/4x8inc-minmax-psimd-splat.c
diff --git a/src/f32-gemm/gen-inc/4x8-sse-dup.c b/src/f32-gemm/gen-inc/4x8inc-minmax-sse-dup.c
similarity index 100%
rename from src/f32-gemm/gen-inc/4x8-sse-dup.c
rename to src/f32-gemm/gen-inc/4x8inc-minmax-sse-dup.c
diff --git a/src/f32-gemm/gen-inc/4x8-sse-load1.c b/src/f32-gemm/gen-inc/4x8inc-minmax-sse-load1.c
similarity index 100%
rename from src/f32-gemm/gen-inc/4x8-sse-load1.c
rename to src/f32-gemm/gen-inc/4x8inc-minmax-sse-load1.c
diff --git a/src/f32-gemm/gen-inc/4x8s4-neon.c b/src/f32-gemm/gen-inc/4x8s4inc-minmax-neon.c
similarity index 100%
rename from src/f32-gemm/gen-inc/4x8s4-neon.c
rename to src/f32-gemm/gen-inc/4x8s4inc-minmax-neon.c
diff --git a/src/f32-gemm/gen-inc/4x8s4-neonfma.c b/src/f32-gemm/gen-inc/4x8s4inc-minmax-neonfma.c
similarity index 100%
rename from src/f32-gemm/gen-inc/4x8s4-neonfma.c
rename to src/f32-gemm/gen-inc/4x8s4inc-minmax-neonfma.c
diff --git a/src/f32-gemm/gen-inc/4x8s4-psimd.c b/src/f32-gemm/gen-inc/4x8s4inc-minmax-psimd.c
similarity index 100%
rename from src/f32-gemm/gen-inc/4x8s4-psimd.c
rename to src/f32-gemm/gen-inc/4x8s4inc-minmax-psimd.c
diff --git a/src/f32-gemm/gen-inc/4x8s4-sse.c b/src/f32-gemm/gen-inc/4x8s4inc-minmax-sse.c
similarity index 100%
rename from src/f32-gemm/gen-inc/4x8s4-sse.c
rename to src/f32-gemm/gen-inc/4x8s4inc-minmax-sse.c
diff --git a/src/f32-gemm/gen-inc/5x16-avx-broadcast.c b/src/f32-gemm/gen-inc/5x16inc-minmax-avx-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen-inc/5x16-avx-broadcast.c
rename to src/f32-gemm/gen-inc/5x16inc-minmax-avx-broadcast.c
diff --git a/src/f32-gemm/gen-inc/5x16-avx512f-broadcast.c b/src/f32-gemm/gen-inc/5x16inc-minmax-avx512f-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen-inc/5x16-avx512f-broadcast.c
rename to src/f32-gemm/gen-inc/5x16inc-minmax-avx512f-broadcast.c
diff --git a/src/f32-gemm/gen-inc/5x16-fma3-broadcast.c b/src/f32-gemm/gen-inc/5x16inc-minmax-fma3-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen-inc/5x16-fma3-broadcast.c
rename to src/f32-gemm/gen-inc/5x16inc-minmax-fma3-broadcast.c
diff --git a/src/f32-gemm/gen-inc/5x16s4-fma3-broadcast.c b/src/f32-gemm/gen-inc/5x16s4inc-minmax-fma3-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen-inc/5x16s4-fma3-broadcast.c
rename to src/f32-gemm/gen-inc/5x16s4inc-minmax-fma3-broadcast.c
diff --git a/src/f32-gemm/gen-inc/5x8-aarch64-neonfma-cortex-a57.S b/src/f32-gemm/gen-inc/5x8inc-minmax-aarch64-neonfma-cortex-a57.S
similarity index 100%
rename from src/f32-gemm/gen-inc/5x8-aarch64-neonfma-cortex-a57.S
rename to src/f32-gemm/gen-inc/5x8inc-minmax-aarch64-neonfma-cortex-a57.S
diff --git a/src/f32-gemm/gen-inc/5x8-aarch64-neonfma-cortex-a75.S b/src/f32-gemm/gen-inc/5x8inc-minmax-aarch64-neonfma-cortex-a75.S
similarity index 100%
rename from src/f32-gemm/gen-inc/5x8-aarch64-neonfma-cortex-a75.S
rename to src/f32-gemm/gen-inc/5x8inc-minmax-aarch64-neonfma-cortex-a75.S
diff --git a/src/f32-gemm/gen-inc/5x8-avx-broadcast.c b/src/f32-gemm/gen-inc/5x8inc-minmax-avx-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen-inc/5x8-avx-broadcast.c
rename to src/f32-gemm/gen-inc/5x8inc-minmax-avx-broadcast.c
diff --git a/src/f32-gemm/gen-inc/5x8-fma3-broadcast.c b/src/f32-gemm/gen-inc/5x8inc-minmax-fma3-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen-inc/5x8-fma3-broadcast.c
rename to src/f32-gemm/gen-inc/5x8inc-minmax-fma3-broadcast.c
diff --git a/src/f32-gemm/gen-inc/5x8-neon-lane-ld64.c b/src/f32-gemm/gen-inc/5x8inc-minmax-neon-lane-ld64.c
similarity index 100%
rename from src/f32-gemm/gen-inc/5x8-neon-lane-ld64.c
rename to src/f32-gemm/gen-inc/5x8inc-minmax-neon-lane-ld64.c
diff --git a/src/f32-gemm/gen-inc/5x8-neonfma-lane-ld64.c b/src/f32-gemm/gen-inc/5x8inc-minmax-neonfma-lane-ld64.c
similarity index 100%
rename from src/f32-gemm/gen-inc/5x8-neonfma-lane-ld64.c
rename to src/f32-gemm/gen-inc/5x8inc-minmax-neonfma-lane-ld64.c
diff --git a/src/f32-gemm/gen-inc/6x16-avx512f-broadcast.c b/src/f32-gemm/gen-inc/6x16inc-minmax-avx512f-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen-inc/6x16-avx512f-broadcast.c
rename to src/f32-gemm/gen-inc/6x16inc-minmax-avx512f-broadcast.c
diff --git a/src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a53.S b/src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-cortex-a53.S
similarity index 100%
rename from src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a53.S
rename to src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-cortex-a53.S
diff --git a/src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a55.S b/src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-cortex-a55.S
similarity index 100%
rename from src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a55.S
rename to src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-cortex-a55.S
diff --git a/src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a57.S b/src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-cortex-a57.S
similarity index 100%
rename from src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a57.S
rename to src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-cortex-a57.S
diff --git a/src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a73.S b/src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-cortex-a73.S
similarity index 100%
rename from src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a73.S
rename to src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-cortex-a73.S
diff --git a/src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a75.S b/src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-cortex-a75.S
similarity index 100%
rename from src/f32-gemm/gen-inc/6x8-aarch64-neonfma-cortex-a75.S
rename to src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-cortex-a75.S
diff --git a/src/f32-gemm/gen-inc/6x8-aarch64-neonfma-ios.S b/src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-ios.S
similarity index 100%
rename from src/f32-gemm/gen-inc/6x8-aarch64-neonfma-ios.S
rename to src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-ios.S
diff --git a/src/f32-gemm/gen-inc/6x8-aarch64-neonfma-ld128.S b/src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-ld128.S
similarity index 100%
rename from src/f32-gemm/gen-inc/6x8-aarch64-neonfma-ld128.S
rename to src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-ld128.S
diff --git a/src/f32-gemm/gen-inc/6x8-aarch64-neonfma-ld64.S b/src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-ld64.S
similarity index 100%
rename from src/f32-gemm/gen-inc/6x8-aarch64-neonfma-ld64.S
rename to src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-ld64.S
diff --git a/src/f32-gemm/gen-inc/6x8-avx-broadcast.c b/src/f32-gemm/gen-inc/6x8inc-minmax-avx-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen-inc/6x8-avx-broadcast.c
rename to src/f32-gemm/gen-inc/6x8inc-minmax-avx-broadcast.c
diff --git a/src/f32-gemm/gen-inc/6x8-fma3-broadcast.c b/src/f32-gemm/gen-inc/6x8inc-minmax-fma3-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen-inc/6x8-fma3-broadcast.c
rename to src/f32-gemm/gen-inc/6x8inc-minmax-fma3-broadcast.c
diff --git a/src/f32-gemm/gen-inc/6x8-neon-dup-ld128.c b/src/f32-gemm/gen-inc/6x8inc-minmax-neon-dup-ld128.c
similarity index 100%
rename from src/f32-gemm/gen-inc/6x8-neon-dup-ld128.c
rename to src/f32-gemm/gen-inc/6x8inc-minmax-neon-dup-ld128.c
diff --git a/src/f32-gemm/gen-inc/6x8-neon-dup-ld64.c b/src/f32-gemm/gen-inc/6x8inc-minmax-neon-dup-ld64.c
similarity index 100%
rename from src/f32-gemm/gen-inc/6x8-neon-dup-ld64.c
rename to src/f32-gemm/gen-inc/6x8inc-minmax-neon-dup-ld64.c
diff --git a/src/f32-gemm/gen-inc/6x8-neon-lane-ld128.c b/src/f32-gemm/gen-inc/6x8inc-minmax-neon-lane-ld128.c
similarity index 100%
rename from src/f32-gemm/gen-inc/6x8-neon-lane-ld128.c
rename to src/f32-gemm/gen-inc/6x8inc-minmax-neon-lane-ld128.c
diff --git a/src/f32-gemm/gen-inc/6x8-neon-lane-ld64.c b/src/f32-gemm/gen-inc/6x8inc-minmax-neon-lane-ld64.c
similarity index 100%
rename from src/f32-gemm/gen-inc/6x8-neon-lane-ld64.c
rename to src/f32-gemm/gen-inc/6x8inc-minmax-neon-lane-ld64.c
diff --git a/src/f32-gemm/gen-inc/6x8-neonfma-dup-ld128.c b/src/f32-gemm/gen-inc/6x8inc-minmax-neonfma-dup-ld128.c
similarity index 100%
rename from src/f32-gemm/gen-inc/6x8-neonfma-dup-ld128.c
rename to src/f32-gemm/gen-inc/6x8inc-minmax-neonfma-dup-ld128.c
diff --git a/src/f32-gemm/gen-inc/6x8-neonfma-dup-ld64.c b/src/f32-gemm/gen-inc/6x8inc-minmax-neonfma-dup-ld64.c
similarity index 100%
rename from src/f32-gemm/gen-inc/6x8-neonfma-dup-ld64.c
rename to src/f32-gemm/gen-inc/6x8inc-minmax-neonfma-dup-ld64.c
diff --git a/src/f32-gemm/gen-inc/6x8-neonfma-lane-ld128.c b/src/f32-gemm/gen-inc/6x8inc-minmax-neonfma-lane-ld128.c
similarity index 100%
rename from src/f32-gemm/gen-inc/6x8-neonfma-lane-ld128.c
rename to src/f32-gemm/gen-inc/6x8inc-minmax-neonfma-lane-ld128.c
diff --git a/src/f32-gemm/gen-inc/6x8-neonfma-lane-ld64.c b/src/f32-gemm/gen-inc/6x8inc-minmax-neonfma-lane-ld64.c
similarity index 100%
rename from src/f32-gemm/gen-inc/6x8-neonfma-lane-ld64.c
rename to src/f32-gemm/gen-inc/6x8inc-minmax-neonfma-lane-ld64.c
diff --git a/src/f32-gemm/gen-inc/6x8-psimd-loadsplat.c b/src/f32-gemm/gen-inc/6x8inc-minmax-psimd-loadsplat.c
similarity index 100%
rename from src/f32-gemm/gen-inc/6x8-psimd-loadsplat.c
rename to src/f32-gemm/gen-inc/6x8inc-minmax-psimd-loadsplat.c
diff --git a/src/f32-gemm/gen-inc/6x8-psimd-splat.c b/src/f32-gemm/gen-inc/6x8inc-minmax-psimd-splat.c
similarity index 100%
rename from src/f32-gemm/gen-inc/6x8-psimd-splat.c
rename to src/f32-gemm/gen-inc/6x8inc-minmax-psimd-splat.c
diff --git a/src/f32-gemm/gen-inc/6x8s4-neon.c b/src/f32-gemm/gen-inc/6x8s4inc-minmax-neon.c
similarity index 100%
rename from src/f32-gemm/gen-inc/6x8s4-neon.c
rename to src/f32-gemm/gen-inc/6x8s4inc-minmax-neon.c
diff --git a/src/f32-gemm/gen-inc/6x8s4-neonfma.c b/src/f32-gemm/gen-inc/6x8s4inc-minmax-neonfma.c
similarity index 100%
rename from src/f32-gemm/gen-inc/6x8s4-neonfma.c
rename to src/f32-gemm/gen-inc/6x8s4inc-minmax-neonfma.c
diff --git a/src/f32-gemm/gen-inc/6x8s4-psimd.c b/src/f32-gemm/gen-inc/6x8s4inc-minmax-psimd.c
similarity index 100%
rename from src/f32-gemm/gen-inc/6x8s4-psimd.c
rename to src/f32-gemm/gen-inc/6x8s4inc-minmax-psimd.c
diff --git a/src/f32-gemm/gen-inc/7x16-avx512f-broadcast.c b/src/f32-gemm/gen-inc/7x16inc-minmax-avx512f-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen-inc/7x16-avx512f-broadcast.c
rename to src/f32-gemm/gen-inc/7x16inc-minmax-avx512f-broadcast.c
diff --git a/src/f32-gemm/gen-inc/7x8-avx-broadcast.c b/src/f32-gemm/gen-inc/7x8inc-minmax-avx-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen-inc/7x8-avx-broadcast.c
rename to src/f32-gemm/gen-inc/7x8inc-minmax-avx-broadcast.c
diff --git a/src/f32-gemm/gen-inc/7x8-fma3-broadcast.c b/src/f32-gemm/gen-inc/7x8inc-minmax-fma3-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen-inc/7x8-fma3-broadcast.c
rename to src/f32-gemm/gen-inc/7x8inc-minmax-fma3-broadcast.c
diff --git a/src/f32-gemm/gen-inc/8x16-avx512f-broadcast.c b/src/f32-gemm/gen-inc/8x16inc-minmax-avx512f-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen-inc/8x16-avx512f-broadcast.c
rename to src/f32-gemm/gen-inc/8x16inc-minmax-avx512f-broadcast.c
diff --git a/src/f32-gemm/gen-inc/8x8-fma3-broadcast.c b/src/f32-gemm/gen-inc/8x8inc-minmax-fma3-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen-inc/8x8-fma3-broadcast.c
rename to src/f32-gemm/gen-inc/8x8inc-minmax-fma3-broadcast.c
diff --git a/src/f32-gemm/gen-inc/8x8s4-neon.c b/src/f32-gemm/gen-inc/8x8s4inc-minmax-neon.c
similarity index 100%
rename from src/f32-gemm/gen-inc/8x8s4-neon.c
rename to src/f32-gemm/gen-inc/8x8s4inc-minmax-neon.c
diff --git a/src/f32-gemm/gen-inc/8x8s4-neonfma.c b/src/f32-gemm/gen-inc/8x8s4inc-minmax-neonfma.c
similarity index 100%
rename from src/f32-gemm/gen-inc/8x8s4-neonfma.c
rename to src/f32-gemm/gen-inc/8x8s4inc-minmax-neonfma.c
diff --git a/src/f32-gemm/gen/1x12-aarch64-neonfma-cortex-a53.S b/src/f32-gemm/gen/1x12-minmax-aarch64-neonfma-cortex-a53.S
similarity index 100%
rename from src/f32-gemm/gen/1x12-aarch64-neonfma-cortex-a53.S
rename to src/f32-gemm/gen/1x12-minmax-aarch64-neonfma-cortex-a53.S
diff --git a/src/f32-gemm/gen/1x16-avx-broadcast.c b/src/f32-gemm/gen/1x16-minmax-avx-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen/1x16-avx-broadcast.c
rename to src/f32-gemm/gen/1x16-minmax-avx-broadcast.c
diff --git a/src/f32-gemm/gen/1x16-avx512f-broadcast.c b/src/f32-gemm/gen/1x16-minmax-avx512f-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen/1x16-avx512f-broadcast.c
rename to src/f32-gemm/gen/1x16-minmax-avx512f-broadcast.c
diff --git a/src/f32-gemm/gen/1x16-fma3-broadcast.c b/src/f32-gemm/gen/1x16-minmax-fma3-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen/1x16-fma3-broadcast.c
rename to src/f32-gemm/gen/1x16-minmax-fma3-broadcast.c
diff --git a/src/f32-gemm/gen/1x16s4-fma3-broadcast.c b/src/f32-gemm/gen/1x16s4-minmax-fma3-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen/1x16s4-fma3-broadcast.c
rename to src/f32-gemm/gen/1x16s4-minmax-fma3-broadcast.c
diff --git a/src/f32-gemm/gen/1x4-scalar.c b/src/f32-gemm/gen/1x4-minmax-scalar.c
similarity index 100%
rename from src/f32-gemm/gen/1x4-scalar.c
rename to src/f32-gemm/gen/1x4-minmax-scalar.c
diff --git a/src/f32-gemm/gen/1x4-wasm.c b/src/f32-gemm/gen/1x4-minmax-wasm.c
similarity index 100%
rename from src/f32-gemm/gen/1x4-wasm.c
rename to src/f32-gemm/gen/1x4-minmax-wasm.c
diff --git a/src/f32-gemm/gen/1x8-aarch64-neonfma-cortex-a53.S b/src/f32-gemm/gen/1x8-minmax-aarch64-neonfma-cortex-a53.S
similarity index 100%
rename from src/f32-gemm/gen/1x8-aarch64-neonfma-cortex-a53.S
rename to src/f32-gemm/gen/1x8-minmax-aarch64-neonfma-cortex-a53.S
diff --git a/src/f32-gemm/gen/1x8-aarch64-neonfma-cortex-a57.S b/src/f32-gemm/gen/1x8-minmax-aarch64-neonfma-cortex-a57.S
similarity index 100%
rename from src/f32-gemm/gen/1x8-aarch64-neonfma-cortex-a57.S
rename to src/f32-gemm/gen/1x8-minmax-aarch64-neonfma-cortex-a57.S
diff --git a/src/f32-gemm/gen/1x8-aarch64-neonfma-cortex-a75.S b/src/f32-gemm/gen/1x8-minmax-aarch64-neonfma-cortex-a75.S
similarity index 100%
rename from src/f32-gemm/gen/1x8-aarch64-neonfma-cortex-a75.S
rename to src/f32-gemm/gen/1x8-minmax-aarch64-neonfma-cortex-a75.S
diff --git a/src/f32-gemm/gen/1x8-avx-broadcast.c b/src/f32-gemm/gen/1x8-minmax-avx-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen/1x8-avx-broadcast.c
rename to src/f32-gemm/gen/1x8-minmax-avx-broadcast.c
diff --git a/src/f32-gemm/gen/1x8-fma3-broadcast.c b/src/f32-gemm/gen/1x8-minmax-fma3-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen/1x8-fma3-broadcast.c
rename to src/f32-gemm/gen/1x8-minmax-fma3-broadcast.c
diff --git a/src/f32-gemm/gen/1x8-neon-dup-ld64.c b/src/f32-gemm/gen/1x8-minmax-neon-dup-ld64.c
similarity index 100%
rename from src/f32-gemm/gen/1x8-neon-dup-ld64.c
rename to src/f32-gemm/gen/1x8-minmax-neon-dup-ld64.c
diff --git a/src/f32-gemm/gen/1x8-neon-lane-ld64.c b/src/f32-gemm/gen/1x8-minmax-neon-lane-ld64.c
similarity index 100%
rename from src/f32-gemm/gen/1x8-neon-lane-ld64.c
rename to src/f32-gemm/gen/1x8-minmax-neon-lane-ld64.c
diff --git a/src/f32-gemm/gen/1x8-neonfma-dup-ld64.c b/src/f32-gemm/gen/1x8-minmax-neonfma-dup-ld64.c
similarity index 100%
rename from src/f32-gemm/gen/1x8-neonfma-dup-ld64.c
rename to src/f32-gemm/gen/1x8-minmax-neonfma-dup-ld64.c
diff --git a/src/f32-gemm/gen/1x8-neonfma-lane-ld64.c b/src/f32-gemm/gen/1x8-minmax-neonfma-lane-ld64.c
similarity index 100%
rename from src/f32-gemm/gen/1x8-neonfma-lane-ld64.c
rename to src/f32-gemm/gen/1x8-minmax-neonfma-lane-ld64.c
diff --git a/src/f32-gemm/gen/1x8-psimd-loadsplat.c b/src/f32-gemm/gen/1x8-minmax-psimd-loadsplat.c
similarity index 100%
rename from src/f32-gemm/gen/1x8-psimd-loadsplat.c
rename to src/f32-gemm/gen/1x8-minmax-psimd-loadsplat.c
diff --git a/src/f32-gemm/gen/1x8-psimd-splat.c b/src/f32-gemm/gen/1x8-minmax-psimd-splat.c
similarity index 100%
rename from src/f32-gemm/gen/1x8-psimd-splat.c
rename to src/f32-gemm/gen/1x8-minmax-psimd-splat.c
diff --git a/src/f32-gemm/gen/1x8-sse-dup.c b/src/f32-gemm/gen/1x8-minmax-sse-dup.c
similarity index 100%
rename from src/f32-gemm/gen/1x8-sse-dup.c
rename to src/f32-gemm/gen/1x8-minmax-sse-dup.c
diff --git a/src/f32-gemm/gen/1x8-sse-load1.c b/src/f32-gemm/gen/1x8-minmax-sse-load1.c
similarity index 100%
rename from src/f32-gemm/gen/1x8-sse-load1.c
rename to src/f32-gemm/gen/1x8-minmax-sse-load1.c
diff --git a/src/f32-gemm/gen/1x8s4-neon.c b/src/f32-gemm/gen/1x8s4-minmax-neon.c
similarity index 100%
rename from src/f32-gemm/gen/1x8s4-neon.c
rename to src/f32-gemm/gen/1x8s4-minmax-neon.c
diff --git a/src/f32-gemm/gen/1x8s4-neonfma.c b/src/f32-gemm/gen/1x8s4-minmax-neonfma.c
similarity index 100%
rename from src/f32-gemm/gen/1x8s4-neonfma.c
rename to src/f32-gemm/gen/1x8s4-minmax-neonfma.c
diff --git a/src/f32-gemm/gen/1x8s4-psimd.c b/src/f32-gemm/gen/1x8s4-minmax-psimd.c
similarity index 100%
rename from src/f32-gemm/gen/1x8s4-psimd.c
rename to src/f32-gemm/gen/1x8s4-minmax-psimd.c
diff --git a/src/f32-gemm/gen/1x8s4-sse.c b/src/f32-gemm/gen/1x8s4-minmax-sse.c
similarity index 100%
rename from src/f32-gemm/gen/1x8s4-sse.c
rename to src/f32-gemm/gen/1x8s4-minmax-sse.c
diff --git a/src/f32-gemm/gen/2x4-scalar.c b/src/f32-gemm/gen/2x4-minmax-scalar.c
similarity index 100%
rename from src/f32-gemm/gen/2x4-scalar.c
rename to src/f32-gemm/gen/2x4-minmax-scalar.c
diff --git a/src/f32-gemm/gen/2x4-wasm.c b/src/f32-gemm/gen/2x4-minmax-wasm.c
similarity index 100%
rename from src/f32-gemm/gen/2x4-wasm.c
rename to src/f32-gemm/gen/2x4-minmax-wasm.c
diff --git a/src/f32-gemm/gen/3x16-avx-broadcast.c b/src/f32-gemm/gen/3x16-minmax-avx-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen/3x16-avx-broadcast.c
rename to src/f32-gemm/gen/3x16-minmax-avx-broadcast.c
diff --git a/src/f32-gemm/gen/3x16-fma3-broadcast.c b/src/f32-gemm/gen/3x16-minmax-fma3-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen/3x16-fma3-broadcast.c
rename to src/f32-gemm/gen/3x16-minmax-fma3-broadcast.c
diff --git a/src/f32-gemm/gen/3x16s4-fma3-broadcast.c b/src/f32-gemm/gen/3x16s4-minmax-fma3-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen/3x16s4-fma3-broadcast.c
rename to src/f32-gemm/gen/3x16s4-minmax-fma3-broadcast.c
diff --git a/src/f32-gemm/gen/4x12-aarch64-neonfma-cortex-a53.S b/src/f32-gemm/gen/4x12-minmax-aarch64-neonfma-cortex-a53.S
similarity index 100%
rename from src/f32-gemm/gen/4x12-aarch64-neonfma-cortex-a53.S
rename to src/f32-gemm/gen/4x12-minmax-aarch64-neonfma-cortex-a53.S
diff --git a/src/f32-gemm/gen/4x16-avx-broadcast.c b/src/f32-gemm/gen/4x16-minmax-avx-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen/4x16-avx-broadcast.c
rename to src/f32-gemm/gen/4x16-minmax-avx-broadcast.c
diff --git a/src/f32-gemm/gen/4x16-avx512f-broadcast.c b/src/f32-gemm/gen/4x16-minmax-avx512f-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen/4x16-avx512f-broadcast.c
rename to src/f32-gemm/gen/4x16-minmax-avx512f-broadcast.c
diff --git a/src/f32-gemm/gen/4x16-fma3-broadcast.c b/src/f32-gemm/gen/4x16-minmax-fma3-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen/4x16-fma3-broadcast.c
rename to src/f32-gemm/gen/4x16-minmax-fma3-broadcast.c
diff --git a/src/f32-gemm/gen/4x16s4-fma3-broadcast.c b/src/f32-gemm/gen/4x16s4-minmax-fma3-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen/4x16s4-fma3-broadcast.c
rename to src/f32-gemm/gen/4x16s4-minmax-fma3-broadcast.c
diff --git a/src/f32-gemm/gen/4x2-neon-lane-ld64.c b/src/f32-gemm/gen/4x2-minmax-neon-lane-ld64.c
similarity index 100%
rename from src/f32-gemm/gen/4x2-neon-lane-ld64.c
rename to src/f32-gemm/gen/4x2-minmax-neon-lane-ld64.c
diff --git a/src/f32-gemm/gen/4x2-neonfma-lane-ld64.c b/src/f32-gemm/gen/4x2-minmax-neonfma-lane-ld64.c
similarity index 100%
rename from src/f32-gemm/gen/4x2-neonfma-lane-ld64.c
rename to src/f32-gemm/gen/4x2-minmax-neonfma-lane-ld64.c
diff --git a/src/f32-gemm/gen/4x2-scalar.c b/src/f32-gemm/gen/4x2-minmax-scalar.c
similarity index 100%
rename from src/f32-gemm/gen/4x2-scalar.c
rename to src/f32-gemm/gen/4x2-minmax-scalar.c
diff --git a/src/f32-gemm/gen/4x2-wasm.c b/src/f32-gemm/gen/4x2-minmax-wasm.c
similarity index 100%
rename from src/f32-gemm/gen/4x2-wasm.c
rename to src/f32-gemm/gen/4x2-minmax-wasm.c
diff --git a/src/f32-gemm/gen/4x2c4-psimd.c b/src/f32-gemm/gen/4x2c4-minmax-psimd.c
similarity index 100%
rename from src/f32-gemm/gen/4x2c4-psimd.c
rename to src/f32-gemm/gen/4x2c4-minmax-psimd.c
diff --git a/src/f32-gemm/gen/4x2c4-sse.c b/src/f32-gemm/gen/4x2c4-minmax-sse.c
similarity index 100%
rename from src/f32-gemm/gen/4x2c4-sse.c
rename to src/f32-gemm/gen/4x2c4-minmax-sse.c
diff --git a/src/f32-gemm/gen/4x4-scalar.c b/src/f32-gemm/gen/4x4-minmax-scalar.c
similarity index 100%
rename from src/f32-gemm/gen/4x4-scalar.c
rename to src/f32-gemm/gen/4x4-minmax-scalar.c
diff --git a/src/f32-gemm/gen/4x4-wasm.c b/src/f32-gemm/gen/4x4-minmax-wasm.c
similarity index 100%
rename from src/f32-gemm/gen/4x4-wasm.c
rename to src/f32-gemm/gen/4x4-minmax-wasm.c
diff --git a/src/f32-gemm/gen/4x8-aarch32-neon-cortex-a75.S b/src/f32-gemm/gen/4x8-minmax-aarch32-neon-cortex-a75.S
similarity index 100%
rename from src/f32-gemm/gen/4x8-aarch32-neon-cortex-a75.S
rename to src/f32-gemm/gen/4x8-minmax-aarch32-neon-cortex-a75.S
diff --git a/src/f32-gemm/gen/4x8-aarch32-neon-pld-cortex-a75.S b/src/f32-gemm/gen/4x8-minmax-aarch32-neon-pld-cortex-a75.S
similarity index 100%
rename from src/f32-gemm/gen/4x8-aarch32-neon-pld-cortex-a75.S
rename to src/f32-gemm/gen/4x8-minmax-aarch32-neon-pld-cortex-a75.S
diff --git a/src/f32-gemm/gen/4x8-aarch64-neonfma-cortex-a53.S b/src/f32-gemm/gen/4x8-minmax-aarch64-neonfma-cortex-a53.S
similarity index 100%
rename from src/f32-gemm/gen/4x8-aarch64-neonfma-cortex-a53.S
rename to src/f32-gemm/gen/4x8-minmax-aarch64-neonfma-cortex-a53.S
diff --git a/src/f32-gemm/gen/4x8-aarch64-neonfma-cortex-a55.S b/src/f32-gemm/gen/4x8-minmax-aarch64-neonfma-cortex-a55.S
similarity index 100%
rename from src/f32-gemm/gen/4x8-aarch64-neonfma-cortex-a55.S
rename to src/f32-gemm/gen/4x8-minmax-aarch64-neonfma-cortex-a55.S
diff --git a/src/f32-gemm/gen/4x8-aarch64-neonfma-cortex-a57.S b/src/f32-gemm/gen/4x8-minmax-aarch64-neonfma-cortex-a57.S
similarity index 100%
rename from src/f32-gemm/gen/4x8-aarch64-neonfma-cortex-a57.S
rename to src/f32-gemm/gen/4x8-minmax-aarch64-neonfma-cortex-a57.S
diff --git a/src/f32-gemm/gen/4x8-aarch64-neonfma-cortex-a75.S b/src/f32-gemm/gen/4x8-minmax-aarch64-neonfma-cortex-a75.S
similarity index 100%
rename from src/f32-gemm/gen/4x8-aarch64-neonfma-cortex-a75.S
rename to src/f32-gemm/gen/4x8-minmax-aarch64-neonfma-cortex-a75.S
diff --git a/src/f32-gemm/gen/4x8-aarch64-neonfma-ld128.S b/src/f32-gemm/gen/4x8-minmax-aarch64-neonfma-ld128.S
similarity index 100%
rename from src/f32-gemm/gen/4x8-aarch64-neonfma-ld128.S
rename to src/f32-gemm/gen/4x8-minmax-aarch64-neonfma-ld128.S
diff --git a/src/f32-gemm/gen/4x8-aarch64-neonfma-ld64.S b/src/f32-gemm/gen/4x8-minmax-aarch64-neonfma-ld64.S
similarity index 100%
rename from src/f32-gemm/gen/4x8-aarch64-neonfma-ld64.S
rename to src/f32-gemm/gen/4x8-minmax-aarch64-neonfma-ld64.S
diff --git a/src/f32-gemm/gen/4x8-avx-broadcast.c b/src/f32-gemm/gen/4x8-minmax-avx-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen/4x8-avx-broadcast.c
rename to src/f32-gemm/gen/4x8-minmax-avx-broadcast.c
diff --git a/src/f32-gemm/gen/4x8-fma3-broadcast.c b/src/f32-gemm/gen/4x8-minmax-fma3-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen/4x8-fma3-broadcast.c
rename to src/f32-gemm/gen/4x8-minmax-fma3-broadcast.c
diff --git a/src/f32-gemm/gen/4x8-neon-dup-ld128.c b/src/f32-gemm/gen/4x8-minmax-neon-dup-ld128.c
similarity index 100%
rename from src/f32-gemm/gen/4x8-neon-dup-ld128.c
rename to src/f32-gemm/gen/4x8-minmax-neon-dup-ld128.c
diff --git a/src/f32-gemm/gen/4x8-neon-dup-ld64.c b/src/f32-gemm/gen/4x8-minmax-neon-dup-ld64.c
similarity index 100%
rename from src/f32-gemm/gen/4x8-neon-dup-ld64.c
rename to src/f32-gemm/gen/4x8-minmax-neon-dup-ld64.c
diff --git a/src/f32-gemm/gen/4x8-neon-lane-ld128.c b/src/f32-gemm/gen/4x8-minmax-neon-lane-ld128.c
similarity index 100%
rename from src/f32-gemm/gen/4x8-neon-lane-ld128.c
rename to src/f32-gemm/gen/4x8-minmax-neon-lane-ld128.c
diff --git a/src/f32-gemm/gen/4x8-neon-lane-ld64.c b/src/f32-gemm/gen/4x8-minmax-neon-lane-ld64.c
similarity index 100%
rename from src/f32-gemm/gen/4x8-neon-lane-ld64.c
rename to src/f32-gemm/gen/4x8-minmax-neon-lane-ld64.c
diff --git a/src/f32-gemm/gen/4x8-neonfma-dup-ld128.c b/src/f32-gemm/gen/4x8-minmax-neonfma-dup-ld128.c
similarity index 100%
rename from src/f32-gemm/gen/4x8-neonfma-dup-ld128.c
rename to src/f32-gemm/gen/4x8-minmax-neonfma-dup-ld128.c
diff --git a/src/f32-gemm/gen/4x8-neonfma-dup-ld64.c b/src/f32-gemm/gen/4x8-minmax-neonfma-dup-ld64.c
similarity index 100%
rename from src/f32-gemm/gen/4x8-neonfma-dup-ld64.c
rename to src/f32-gemm/gen/4x8-minmax-neonfma-dup-ld64.c
diff --git a/src/f32-gemm/gen/4x8-neonfma-lane-ld128.c b/src/f32-gemm/gen/4x8-minmax-neonfma-lane-ld128.c
similarity index 100%
rename from src/f32-gemm/gen/4x8-neonfma-lane-ld128.c
rename to src/f32-gemm/gen/4x8-minmax-neonfma-lane-ld128.c
diff --git a/src/f32-gemm/gen/4x8-neonfma-lane-ld64.c b/src/f32-gemm/gen/4x8-minmax-neonfma-lane-ld64.c
similarity index 100%
rename from src/f32-gemm/gen/4x8-neonfma-lane-ld64.c
rename to src/f32-gemm/gen/4x8-minmax-neonfma-lane-ld64.c
diff --git a/src/f32-gemm/gen/4x8-psimd-loadsplat.c b/src/f32-gemm/gen/4x8-minmax-psimd-loadsplat.c
similarity index 100%
rename from src/f32-gemm/gen/4x8-psimd-loadsplat.c
rename to src/f32-gemm/gen/4x8-minmax-psimd-loadsplat.c
diff --git a/src/f32-gemm/gen/4x8-psimd-splat.c b/src/f32-gemm/gen/4x8-minmax-psimd-splat.c
similarity index 100%
rename from src/f32-gemm/gen/4x8-psimd-splat.c
rename to src/f32-gemm/gen/4x8-minmax-psimd-splat.c
diff --git a/src/f32-gemm/gen/4x8-sse-dup.c b/src/f32-gemm/gen/4x8-minmax-sse-dup.c
similarity index 100%
rename from src/f32-gemm/gen/4x8-sse-dup.c
rename to src/f32-gemm/gen/4x8-minmax-sse-dup.c
diff --git a/src/f32-gemm/gen/4x8-sse-load1.c b/src/f32-gemm/gen/4x8-minmax-sse-load1.c
similarity index 100%
rename from src/f32-gemm/gen/4x8-sse-load1.c
rename to src/f32-gemm/gen/4x8-minmax-sse-load1.c
diff --git a/src/f32-gemm/gen/4x8s4-neon.c b/src/f32-gemm/gen/4x8s4-minmax-neon.c
similarity index 100%
rename from src/f32-gemm/gen/4x8s4-neon.c
rename to src/f32-gemm/gen/4x8s4-minmax-neon.c
diff --git a/src/f32-gemm/gen/4x8s4-neonfma.c b/src/f32-gemm/gen/4x8s4-minmax-neonfma.c
similarity index 100%
rename from src/f32-gemm/gen/4x8s4-neonfma.c
rename to src/f32-gemm/gen/4x8s4-minmax-neonfma.c
diff --git a/src/f32-gemm/gen/4x8s4-psimd.c b/src/f32-gemm/gen/4x8s4-minmax-psimd.c
similarity index 100%
rename from src/f32-gemm/gen/4x8s4-psimd.c
rename to src/f32-gemm/gen/4x8s4-minmax-psimd.c
diff --git a/src/f32-gemm/gen/4x8s4-sse.c b/src/f32-gemm/gen/4x8s4-minmax-sse.c
similarity index 100%
rename from src/f32-gemm/gen/4x8s4-sse.c
rename to src/f32-gemm/gen/4x8s4-minmax-sse.c
diff --git a/src/f32-gemm/gen/5x16-avx-broadcast.c b/src/f32-gemm/gen/5x16-minmax-avx-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen/5x16-avx-broadcast.c
rename to src/f32-gemm/gen/5x16-minmax-avx-broadcast.c
diff --git a/src/f32-gemm/gen/5x16-avx512f-broadcast.c b/src/f32-gemm/gen/5x16-minmax-avx512f-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen/5x16-avx512f-broadcast.c
rename to src/f32-gemm/gen/5x16-minmax-avx512f-broadcast.c
diff --git a/src/f32-gemm/gen/5x16-fma3-broadcast.c b/src/f32-gemm/gen/5x16-minmax-fma3-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen/5x16-fma3-broadcast.c
rename to src/f32-gemm/gen/5x16-minmax-fma3-broadcast.c
diff --git a/src/f32-gemm/gen/5x16s4-fma3-broadcast.c b/src/f32-gemm/gen/5x16s4-minmax-fma3-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen/5x16s4-fma3-broadcast.c
rename to src/f32-gemm/gen/5x16s4-minmax-fma3-broadcast.c
diff --git a/src/f32-gemm/gen/5x8-aarch64-neonfma-cortex-a57.S b/src/f32-gemm/gen/5x8-minmax-aarch64-neonfma-cortex-a57.S
similarity index 100%
rename from src/f32-gemm/gen/5x8-aarch64-neonfma-cortex-a57.S
rename to src/f32-gemm/gen/5x8-minmax-aarch64-neonfma-cortex-a57.S
diff --git a/src/f32-gemm/gen/5x8-aarch64-neonfma-cortex-a75.S b/src/f32-gemm/gen/5x8-minmax-aarch64-neonfma-cortex-a75.S
similarity index 100%
rename from src/f32-gemm/gen/5x8-aarch64-neonfma-cortex-a75.S
rename to src/f32-gemm/gen/5x8-minmax-aarch64-neonfma-cortex-a75.S
diff --git a/src/f32-gemm/gen/5x8-avx-broadcast.c b/src/f32-gemm/gen/5x8-minmax-avx-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen/5x8-avx-broadcast.c
rename to src/f32-gemm/gen/5x8-minmax-avx-broadcast.c
diff --git a/src/f32-gemm/gen/5x8-fma3-broadcast.c b/src/f32-gemm/gen/5x8-minmax-fma3-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen/5x8-fma3-broadcast.c
rename to src/f32-gemm/gen/5x8-minmax-fma3-broadcast.c
diff --git a/src/f32-gemm/gen/5x8-neon-lane-ld64.c b/src/f32-gemm/gen/5x8-minmax-neon-lane-ld64.c
similarity index 100%
rename from src/f32-gemm/gen/5x8-neon-lane-ld64.c
rename to src/f32-gemm/gen/5x8-minmax-neon-lane-ld64.c
diff --git a/src/f32-gemm/gen/5x8-neonfma-lane-ld64.c b/src/f32-gemm/gen/5x8-minmax-neonfma-lane-ld64.c
similarity index 100%
rename from src/f32-gemm/gen/5x8-neonfma-lane-ld64.c
rename to src/f32-gemm/gen/5x8-minmax-neonfma-lane-ld64.c
diff --git a/src/f32-gemm/gen/6x16-avx512f-broadcast.c b/src/f32-gemm/gen/6x16-minmax-avx512f-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen/6x16-avx512f-broadcast.c
rename to src/f32-gemm/gen/6x16-minmax-avx512f-broadcast.c
diff --git a/src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a53.S b/src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-cortex-a53.S
similarity index 100%
rename from src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a53.S
rename to src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-cortex-a53.S
diff --git a/src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a55.S b/src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-cortex-a55.S
similarity index 100%
rename from src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a55.S
rename to src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-cortex-a55.S
diff --git a/src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a57.S b/src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-cortex-a57.S
similarity index 100%
rename from src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a57.S
rename to src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-cortex-a57.S
diff --git a/src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a73.S b/src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-cortex-a73.S
similarity index 100%
rename from src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a73.S
rename to src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-cortex-a73.S
diff --git a/src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a75.S b/src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-cortex-a75.S
similarity index 100%
rename from src/f32-gemm/gen/6x8-aarch64-neonfma-cortex-a75.S
rename to src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-cortex-a75.S
diff --git a/src/f32-gemm/gen/6x8-aarch64-neonfma-ios.S b/src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-ios.S
similarity index 100%
rename from src/f32-gemm/gen/6x8-aarch64-neonfma-ios.S
rename to src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-ios.S
diff --git a/src/f32-gemm/gen/6x8-aarch64-neonfma-ld128.S b/src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-ld128.S
similarity index 100%
rename from src/f32-gemm/gen/6x8-aarch64-neonfma-ld128.S
rename to src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-ld128.S
diff --git a/src/f32-gemm/gen/6x8-aarch64-neonfma-ld64.S b/src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-ld64.S
similarity index 100%
rename from src/f32-gemm/gen/6x8-aarch64-neonfma-ld64.S
rename to src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-ld64.S
diff --git a/src/f32-gemm/gen/6x8-avx-broadcast.c b/src/f32-gemm/gen/6x8-minmax-avx-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen/6x8-avx-broadcast.c
rename to src/f32-gemm/gen/6x8-minmax-avx-broadcast.c
diff --git a/src/f32-gemm/gen/6x8-fma3-broadcast.c b/src/f32-gemm/gen/6x8-minmax-fma3-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen/6x8-fma3-broadcast.c
rename to src/f32-gemm/gen/6x8-minmax-fma3-broadcast.c
diff --git a/src/f32-gemm/gen/6x8-neon-dup-ld128.c b/src/f32-gemm/gen/6x8-minmax-neon-dup-ld128.c
similarity index 100%
rename from src/f32-gemm/gen/6x8-neon-dup-ld128.c
rename to src/f32-gemm/gen/6x8-minmax-neon-dup-ld128.c
diff --git a/src/f32-gemm/gen/6x8-neon-dup-ld64.c b/src/f32-gemm/gen/6x8-minmax-neon-dup-ld64.c
similarity index 100%
rename from src/f32-gemm/gen/6x8-neon-dup-ld64.c
rename to src/f32-gemm/gen/6x8-minmax-neon-dup-ld64.c
diff --git a/src/f32-gemm/gen/6x8-neon-lane-ld128.c b/src/f32-gemm/gen/6x8-minmax-neon-lane-ld128.c
similarity index 100%
rename from src/f32-gemm/gen/6x8-neon-lane-ld128.c
rename to src/f32-gemm/gen/6x8-minmax-neon-lane-ld128.c
diff --git a/src/f32-gemm/gen/6x8-neon-lane-ld64.c b/src/f32-gemm/gen/6x8-minmax-neon-lane-ld64.c
similarity index 100%
rename from src/f32-gemm/gen/6x8-neon-lane-ld64.c
rename to src/f32-gemm/gen/6x8-minmax-neon-lane-ld64.c
diff --git a/src/f32-gemm/gen/6x8-neonfma-dup-ld128.c b/src/f32-gemm/gen/6x8-minmax-neonfma-dup-ld128.c
similarity index 100%
rename from src/f32-gemm/gen/6x8-neonfma-dup-ld128.c
rename to src/f32-gemm/gen/6x8-minmax-neonfma-dup-ld128.c
diff --git a/src/f32-gemm/gen/6x8-neonfma-dup-ld64.c b/src/f32-gemm/gen/6x8-minmax-neonfma-dup-ld64.c
similarity index 100%
rename from src/f32-gemm/gen/6x8-neonfma-dup-ld64.c
rename to src/f32-gemm/gen/6x8-minmax-neonfma-dup-ld64.c
diff --git a/src/f32-gemm/gen/6x8-neonfma-lane-ld128.c b/src/f32-gemm/gen/6x8-minmax-neonfma-lane-ld128.c
similarity index 100%
rename from src/f32-gemm/gen/6x8-neonfma-lane-ld128.c
rename to src/f32-gemm/gen/6x8-minmax-neonfma-lane-ld128.c
diff --git a/src/f32-gemm/gen/6x8-neonfma-lane-ld64.c b/src/f32-gemm/gen/6x8-minmax-neonfma-lane-ld64.c
similarity index 100%
rename from src/f32-gemm/gen/6x8-neonfma-lane-ld64.c
rename to src/f32-gemm/gen/6x8-minmax-neonfma-lane-ld64.c
diff --git a/src/f32-gemm/gen/6x8-psimd-loadsplat.c b/src/f32-gemm/gen/6x8-minmax-psimd-loadsplat.c
similarity index 100%
rename from src/f32-gemm/gen/6x8-psimd-loadsplat.c
rename to src/f32-gemm/gen/6x8-minmax-psimd-loadsplat.c
diff --git a/src/f32-gemm/gen/6x8-psimd-splat.c b/src/f32-gemm/gen/6x8-minmax-psimd-splat.c
similarity index 100%
rename from src/f32-gemm/gen/6x8-psimd-splat.c
rename to src/f32-gemm/gen/6x8-minmax-psimd-splat.c
diff --git a/src/f32-gemm/gen/6x8s4-neon.c b/src/f32-gemm/gen/6x8s4-minmax-neon.c
similarity index 100%
rename from src/f32-gemm/gen/6x8s4-neon.c
rename to src/f32-gemm/gen/6x8s4-minmax-neon.c
diff --git a/src/f32-gemm/gen/6x8s4-neonfma.c b/src/f32-gemm/gen/6x8s4-minmax-neonfma.c
similarity index 100%
rename from src/f32-gemm/gen/6x8s4-neonfma.c
rename to src/f32-gemm/gen/6x8s4-minmax-neonfma.c
diff --git a/src/f32-gemm/gen/6x8s4-psimd.c b/src/f32-gemm/gen/6x8s4-minmax-psimd.c
similarity index 100%
rename from src/f32-gemm/gen/6x8s4-psimd.c
rename to src/f32-gemm/gen/6x8s4-minmax-psimd.c
diff --git a/src/f32-gemm/gen/7x16-avx512f-broadcast.c b/src/f32-gemm/gen/7x16-minmax-avx512f-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen/7x16-avx512f-broadcast.c
rename to src/f32-gemm/gen/7x16-minmax-avx512f-broadcast.c
diff --git a/src/f32-gemm/gen/7x8-avx-broadcast.c b/src/f32-gemm/gen/7x8-minmax-avx-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen/7x8-avx-broadcast.c
rename to src/f32-gemm/gen/7x8-minmax-avx-broadcast.c
diff --git a/src/f32-gemm/gen/7x8-fma3-broadcast.c b/src/f32-gemm/gen/7x8-minmax-fma3-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen/7x8-fma3-broadcast.c
rename to src/f32-gemm/gen/7x8-minmax-fma3-broadcast.c
diff --git a/src/f32-gemm/gen/8x16-avx512f-broadcast.c b/src/f32-gemm/gen/8x16-minmax-avx512f-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen/8x16-avx512f-broadcast.c
rename to src/f32-gemm/gen/8x16-minmax-avx512f-broadcast.c
diff --git a/src/f32-gemm/gen/8x8-fma3-broadcast.c b/src/f32-gemm/gen/8x8-minmax-fma3-broadcast.c
similarity index 100%
rename from src/f32-gemm/gen/8x8-fma3-broadcast.c
rename to src/f32-gemm/gen/8x8-minmax-fma3-broadcast.c
diff --git a/src/f32-gemm/gen/8x8s4-neon.c b/src/f32-gemm/gen/8x8s4-minmax-neon.c
similarity index 100%
rename from src/f32-gemm/gen/8x8s4-neon.c
rename to src/f32-gemm/gen/8x8s4-minmax-neon.c
diff --git a/src/f32-gemm/gen/8x8s4-neonfma.c b/src/f32-gemm/gen/8x8s4-minmax-neonfma.c
similarity index 100%
rename from src/f32-gemm/gen/8x8s4-neonfma.c
rename to src/f32-gemm/gen/8x8s4-minmax-neonfma.c
diff --git a/src/f32-igemm/1x12-aarch64-neonfma-cortex-a53.S b/src/f32-igemm/1x12-minmax-aarch64-neonfma-cortex-a53.S
similarity index 100%
rename from src/f32-igemm/1x12-aarch64-neonfma-cortex-a53.S
rename to src/f32-igemm/1x12-minmax-aarch64-neonfma-cortex-a53.S
diff --git a/src/f32-igemm/1x8-aarch64-neonfma-cortex-a53.S b/src/f32-igemm/1x8-minmax-aarch64-neonfma-cortex-a53.S
similarity index 100%
rename from src/f32-igemm/1x8-aarch64-neonfma-cortex-a53.S
rename to src/f32-igemm/1x8-minmax-aarch64-neonfma-cortex-a53.S
diff --git a/src/f32-igemm/4x12-aarch64-neonfma-cortex-a53.S b/src/f32-igemm/4x12-minmax-aarch64-neonfma-cortex-a53.S
similarity index 100%
rename from src/f32-igemm/4x12-aarch64-neonfma-cortex-a53.S
rename to src/f32-igemm/4x12-minmax-aarch64-neonfma-cortex-a53.S
diff --git a/src/f32-igemm/4x8-aarch32-neon-cortex-a53.S b/src/f32-igemm/4x8-minmax-aarch32-neon-cortex-a53.S
similarity index 100%
rename from src/f32-igemm/4x8-aarch32-neon-cortex-a53.S
rename to src/f32-igemm/4x8-minmax-aarch32-neon-cortex-a53.S
diff --git a/src/f32-igemm/4x8-aarch32-neon-cortex-a55.S b/src/f32-igemm/4x8-minmax-aarch32-neon-cortex-a55.S
similarity index 100%
rename from src/f32-igemm/4x8-aarch32-neon-cortex-a55.S
rename to src/f32-igemm/4x8-minmax-aarch32-neon-cortex-a55.S
diff --git a/src/f32-igemm/4x8-aarch32-neon-ld64.S b/src/f32-igemm/4x8-minmax-aarch32-neon-ld64.S
similarity index 100%
rename from src/f32-igemm/4x8-aarch32-neon-ld64.S
rename to src/f32-igemm/4x8-minmax-aarch32-neon-ld64.S
diff --git a/src/f32-igemm/4x8-aarch64-neonfma-cortex-a53.S b/src/f32-igemm/4x8-minmax-aarch64-neonfma-cortex-a53.S
similarity index 100%
rename from src/f32-igemm/4x8-aarch64-neonfma-cortex-a53.S
rename to src/f32-igemm/4x8-minmax-aarch64-neonfma-cortex-a53.S
diff --git a/src/f32-igemm/4x8-aarch64-neonfma-cortex-a55.S b/src/f32-igemm/4x8-minmax-aarch64-neonfma-cortex-a55.S
similarity index 100%
rename from src/f32-igemm/4x8-aarch64-neonfma-cortex-a55.S
rename to src/f32-igemm/4x8-minmax-aarch64-neonfma-cortex-a55.S
diff --git a/src/f32-igemm/6x8-aarch64-neonfma-cortex-a53.S b/src/f32-igemm/6x8-minmax-aarch64-neonfma-cortex-a53.S
similarity index 100%
rename from src/f32-igemm/6x8-aarch64-neonfma-cortex-a53.S
rename to src/f32-igemm/6x8-minmax-aarch64-neonfma-cortex-a53.S
diff --git a/src/f32-igemm/6x8-aarch64-neonfma-cortex-a55.S b/src/f32-igemm/6x8-minmax-aarch64-neonfma-cortex-a55.S
similarity index 100%
rename from src/f32-igemm/6x8-aarch64-neonfma-cortex-a55.S
rename to src/f32-igemm/6x8-minmax-aarch64-neonfma-cortex-a55.S
diff --git a/src/f32-igemm/6x8-aarch64-neonfma-cortex-a73.S b/src/f32-igemm/6x8-minmax-aarch64-neonfma-cortex-a73.S
similarity index 100%
rename from src/f32-igemm/6x8-aarch64-neonfma-cortex-a73.S
rename to src/f32-igemm/6x8-minmax-aarch64-neonfma-cortex-a73.S
diff --git a/src/f32-igemm/gen/1x16-avx-broadcast.c b/src/f32-igemm/gen/1x16-minmax-avx-broadcast.c
similarity index 100%
rename from src/f32-igemm/gen/1x16-avx-broadcast.c
rename to src/f32-igemm/gen/1x16-minmax-avx-broadcast.c
diff --git a/src/f32-igemm/gen/1x16-avx512f-broadcast.c b/src/f32-igemm/gen/1x16-minmax-avx512f-broadcast.c
similarity index 100%
rename from src/f32-igemm/gen/1x16-avx512f-broadcast.c
rename to src/f32-igemm/gen/1x16-minmax-avx512f-broadcast.c
diff --git a/src/f32-igemm/gen/1x16-fma3-broadcast.c b/src/f32-igemm/gen/1x16-minmax-fma3-broadcast.c
similarity index 100%
rename from src/f32-igemm/gen/1x16-fma3-broadcast.c
rename to src/f32-igemm/gen/1x16-minmax-fma3-broadcast.c
diff --git a/src/f32-igemm/gen/1x16s4-fma3-broadcast.c b/src/f32-igemm/gen/1x16s4-minmax-fma3-broadcast.c
similarity index 100%
rename from src/f32-igemm/gen/1x16s4-fma3-broadcast.c
rename to src/f32-igemm/gen/1x16s4-minmax-fma3-broadcast.c
diff --git a/src/f32-igemm/gen/1x4-scalar.c b/src/f32-igemm/gen/1x4-minmax-scalar.c
similarity index 100%
rename from src/f32-igemm/gen/1x4-scalar.c
rename to src/f32-igemm/gen/1x4-minmax-scalar.c
diff --git a/src/f32-igemm/gen/1x4-wasm.c b/src/f32-igemm/gen/1x4-minmax-wasm.c
similarity index 100%
rename from src/f32-igemm/gen/1x4-wasm.c
rename to src/f32-igemm/gen/1x4-minmax-wasm.c
diff --git a/src/f32-igemm/gen/1x8-aarch64-neonfma-cortex-a57.S b/src/f32-igemm/gen/1x8-minmax-aarch64-neonfma-cortex-a57.S
similarity index 100%
rename from src/f32-igemm/gen/1x8-aarch64-neonfma-cortex-a57.S
rename to src/f32-igemm/gen/1x8-minmax-aarch64-neonfma-cortex-a57.S
diff --git a/src/f32-igemm/gen/1x8-aarch64-neonfma-cortex-a75.S b/src/f32-igemm/gen/1x8-minmax-aarch64-neonfma-cortex-a75.S
similarity index 100%
rename from src/f32-igemm/gen/1x8-aarch64-neonfma-cortex-a75.S
rename to src/f32-igemm/gen/1x8-minmax-aarch64-neonfma-cortex-a75.S
diff --git a/src/f32-igemm/gen/1x8-avx-broadcast.c b/src/f32-igemm/gen/1x8-minmax-avx-broadcast.c
similarity index 100%
rename from src/f32-igemm/gen/1x8-avx-broadcast.c
rename to src/f32-igemm/gen/1x8-minmax-avx-broadcast.c
diff --git a/src/f32-igemm/gen/1x8-fma3-broadcast.c b/src/f32-igemm/gen/1x8-minmax-fma3-broadcast.c
similarity index 100%
rename from src/f32-igemm/gen/1x8-fma3-broadcast.c
rename to src/f32-igemm/gen/1x8-minmax-fma3-broadcast.c
diff --git a/src/f32-igemm/gen/1x8-neon-dup-ld64.c b/src/f32-igemm/gen/1x8-minmax-neon-dup-ld64.c
similarity index 100%
rename from src/f32-igemm/gen/1x8-neon-dup-ld64.c
rename to src/f32-igemm/gen/1x8-minmax-neon-dup-ld64.c
diff --git a/src/f32-igemm/gen/1x8-neon-lane-ld64.c b/src/f32-igemm/gen/1x8-minmax-neon-lane-ld64.c
similarity index 100%
rename from src/f32-igemm/gen/1x8-neon-lane-ld64.c
rename to src/f32-igemm/gen/1x8-minmax-neon-lane-ld64.c
diff --git a/src/f32-igemm/gen/1x8-neonfma-dup-ld64.c b/src/f32-igemm/gen/1x8-minmax-neonfma-dup-ld64.c
similarity index 100%
rename from src/f32-igemm/gen/1x8-neonfma-dup-ld64.c
rename to src/f32-igemm/gen/1x8-minmax-neonfma-dup-ld64.c
diff --git a/src/f32-igemm/gen/1x8-neonfma-lane-ld64.c b/src/f32-igemm/gen/1x8-minmax-neonfma-lane-ld64.c
similarity index 100%
rename from src/f32-igemm/gen/1x8-neonfma-lane-ld64.c
rename to src/f32-igemm/gen/1x8-minmax-neonfma-lane-ld64.c
diff --git a/src/f32-igemm/gen/1x8-psimd-loadsplat.c b/src/f32-igemm/gen/1x8-minmax-psimd-loadsplat.c
similarity index 100%
rename from src/f32-igemm/gen/1x8-psimd-loadsplat.c
rename to src/f32-igemm/gen/1x8-minmax-psimd-loadsplat.c
diff --git a/src/f32-igemm/gen/1x8-psimd-splat.c b/src/f32-igemm/gen/1x8-minmax-psimd-splat.c
similarity index 100%
rename from src/f32-igemm/gen/1x8-psimd-splat.c
rename to src/f32-igemm/gen/1x8-minmax-psimd-splat.c
diff --git a/src/f32-igemm/gen/1x8-sse-dup.c b/src/f32-igemm/gen/1x8-minmax-sse-dup.c
similarity index 100%
rename from src/f32-igemm/gen/1x8-sse-dup.c
rename to src/f32-igemm/gen/1x8-minmax-sse-dup.c
diff --git a/src/f32-igemm/gen/1x8-sse-load1.c b/src/f32-igemm/gen/1x8-minmax-sse-load1.c
similarity index 100%
rename from src/f32-igemm/gen/1x8-sse-load1.c
rename to src/f32-igemm/gen/1x8-minmax-sse-load1.c
diff --git a/src/f32-igemm/gen/1x8s4-neon.c b/src/f32-igemm/gen/1x8s4-minmax-neon.c
similarity index 100%
rename from src/f32-igemm/gen/1x8s4-neon.c
rename to src/f32-igemm/gen/1x8s4-minmax-neon.c
diff --git a/src/f32-igemm/gen/1x8s4-neonfma.c b/src/f32-igemm/gen/1x8s4-minmax-neonfma.c
similarity index 100%
rename from src/f32-igemm/gen/1x8s4-neonfma.c
rename to src/f32-igemm/gen/1x8s4-minmax-neonfma.c
diff --git a/src/f32-igemm/gen/1x8s4-psimd.c b/src/f32-igemm/gen/1x8s4-minmax-psimd.c
similarity index 100%
rename from src/f32-igemm/gen/1x8s4-psimd.c
rename to src/f32-igemm/gen/1x8s4-minmax-psimd.c
diff --git a/src/f32-igemm/gen/1x8s4-sse.c b/src/f32-igemm/gen/1x8s4-minmax-sse.c
similarity index 100%
rename from src/f32-igemm/gen/1x8s4-sse.c
rename to src/f32-igemm/gen/1x8s4-minmax-sse.c
diff --git a/src/f32-igemm/gen/2x4-scalar.c b/src/f32-igemm/gen/2x4-minmax-scalar.c
similarity index 100%
rename from src/f32-igemm/gen/2x4-scalar.c
rename to src/f32-igemm/gen/2x4-minmax-scalar.c
diff --git a/src/f32-igemm/gen/2x4-wasm.c b/src/f32-igemm/gen/2x4-minmax-wasm.c
similarity index 100%
rename from src/f32-igemm/gen/2x4-wasm.c
rename to src/f32-igemm/gen/2x4-minmax-wasm.c
diff --git a/src/f32-igemm/gen/3x16-avx-broadcast.c b/src/f32-igemm/gen/3x16-minmax-avx-broadcast.c
similarity index 100%
rename from src/f32-igemm/gen/3x16-avx-broadcast.c
rename to src/f32-igemm/gen/3x16-minmax-avx-broadcast.c
diff --git a/src/f32-igemm/gen/3x16-fma3-broadcast.c b/src/f32-igemm/gen/3x16-minmax-fma3-broadcast.c
similarity index 100%
rename from src/f32-igemm/gen/3x16-fma3-broadcast.c
rename to src/f32-igemm/gen/3x16-minmax-fma3-broadcast.c
diff --git a/src/f32-igemm/gen/3x16s4-fma3-broadcast.c b/src/f32-igemm/gen/3x16s4-minmax-fma3-broadcast.c
similarity index 100%
rename from src/f32-igemm/gen/3x16s4-fma3-broadcast.c
rename to src/f32-igemm/gen/3x16s4-minmax-fma3-broadcast.c
diff --git a/src/f32-igemm/gen/4x16-avx-broadcast.c b/src/f32-igemm/gen/4x16-minmax-avx-broadcast.c
similarity index 100%
rename from src/f32-igemm/gen/4x16-avx-broadcast.c
rename to src/f32-igemm/gen/4x16-minmax-avx-broadcast.c
diff --git a/src/f32-igemm/gen/4x16-avx512f-broadcast.c b/src/f32-igemm/gen/4x16-minmax-avx512f-broadcast.c
similarity index 100%
rename from src/f32-igemm/gen/4x16-avx512f-broadcast.c
rename to src/f32-igemm/gen/4x16-minmax-avx512f-broadcast.c
diff --git a/src/f32-igemm/gen/4x16-fma3-broadcast.c b/src/f32-igemm/gen/4x16-minmax-fma3-broadcast.c
similarity index 100%
rename from src/f32-igemm/gen/4x16-fma3-broadcast.c
rename to src/f32-igemm/gen/4x16-minmax-fma3-broadcast.c
diff --git a/src/f32-igemm/gen/4x16s4-fma3-broadcast.c b/src/f32-igemm/gen/4x16s4-minmax-fma3-broadcast.c
similarity index 100%
rename from src/f32-igemm/gen/4x16s4-fma3-broadcast.c
rename to src/f32-igemm/gen/4x16s4-minmax-fma3-broadcast.c
diff --git a/src/f32-igemm/gen/4x2-neon-lane-ld64.c b/src/f32-igemm/gen/4x2-minmax-neon-lane-ld64.c
similarity index 100%
rename from src/f32-igemm/gen/4x2-neon-lane-ld64.c
rename to src/f32-igemm/gen/4x2-minmax-neon-lane-ld64.c
diff --git a/src/f32-igemm/gen/4x2-neonfma-lane-ld64.c b/src/f32-igemm/gen/4x2-minmax-neonfma-lane-ld64.c
similarity index 100%
rename from src/f32-igemm/gen/4x2-neonfma-lane-ld64.c
rename to src/f32-igemm/gen/4x2-minmax-neonfma-lane-ld64.c
diff --git a/src/f32-igemm/gen/4x2-scalar.c b/src/f32-igemm/gen/4x2-minmax-scalar.c
similarity index 100%
rename from src/f32-igemm/gen/4x2-scalar.c
rename to src/f32-igemm/gen/4x2-minmax-scalar.c
diff --git a/src/f32-igemm/gen/4x2-wasm.c b/src/f32-igemm/gen/4x2-minmax-wasm.c
similarity index 100%
rename from src/f32-igemm/gen/4x2-wasm.c
rename to src/f32-igemm/gen/4x2-minmax-wasm.c
diff --git a/src/f32-igemm/gen/4x2c4-psimd.c b/src/f32-igemm/gen/4x2c4-minmax-psimd.c
similarity index 100%
rename from src/f32-igemm/gen/4x2c4-psimd.c
rename to src/f32-igemm/gen/4x2c4-minmax-psimd.c
diff --git a/src/f32-igemm/gen/4x2c4-sse.c b/src/f32-igemm/gen/4x2c4-minmax-sse.c
similarity index 100%
rename from src/f32-igemm/gen/4x2c4-sse.c
rename to src/f32-igemm/gen/4x2c4-minmax-sse.c
diff --git a/src/f32-igemm/gen/4x4-neon-lane-ld64.c b/src/f32-igemm/gen/4x4-minmax-neon-lane-ld64.c
similarity index 100%
rename from src/f32-igemm/gen/4x4-neon-lane-ld64.c
rename to src/f32-igemm/gen/4x4-minmax-neon-lane-ld64.c
diff --git a/src/f32-igemm/gen/4x4-neonfma-lane-ld64.c b/src/f32-igemm/gen/4x4-minmax-neonfma-lane-ld64.c
similarity index 100%
rename from src/f32-igemm/gen/4x4-neonfma-lane-ld64.c
rename to src/f32-igemm/gen/4x4-minmax-neonfma-lane-ld64.c
diff --git a/src/f32-igemm/gen/4x4-scalar.c b/src/f32-igemm/gen/4x4-minmax-scalar.c
similarity index 100%
rename from src/f32-igemm/gen/4x4-scalar.c
rename to src/f32-igemm/gen/4x4-minmax-scalar.c
diff --git a/src/f32-igemm/gen/4x4-wasm.c b/src/f32-igemm/gen/4x4-minmax-wasm.c
similarity index 100%
rename from src/f32-igemm/gen/4x4-wasm.c
rename to src/f32-igemm/gen/4x4-minmax-wasm.c
diff --git a/src/f32-igemm/gen/4x8-aarch32-neon-cortex-a75.S b/src/f32-igemm/gen/4x8-minmax-aarch32-neon-cortex-a75.S
similarity index 100%
rename from src/f32-igemm/gen/4x8-aarch32-neon-cortex-a75.S
rename to src/f32-igemm/gen/4x8-minmax-aarch32-neon-cortex-a75.S
diff --git a/src/f32-igemm/gen/4x8-aarch32-neon-pld-cortex-a75.S b/src/f32-igemm/gen/4x8-minmax-aarch32-neon-pld-cortex-a75.S
similarity index 100%
rename from src/f32-igemm/gen/4x8-aarch32-neon-pld-cortex-a75.S
rename to src/f32-igemm/gen/4x8-minmax-aarch32-neon-pld-cortex-a75.S
diff --git a/src/f32-igemm/gen/4x8-aarch64-neonfma-cortex-a57.S b/src/f32-igemm/gen/4x8-minmax-aarch64-neonfma-cortex-a57.S
similarity index 100%
rename from src/f32-igemm/gen/4x8-aarch64-neonfma-cortex-a57.S
rename to src/f32-igemm/gen/4x8-minmax-aarch64-neonfma-cortex-a57.S
diff --git a/src/f32-igemm/gen/4x8-aarch64-neonfma-cortex-a75.S b/src/f32-igemm/gen/4x8-minmax-aarch64-neonfma-cortex-a75.S
similarity index 100%
rename from src/f32-igemm/gen/4x8-aarch64-neonfma-cortex-a75.S
rename to src/f32-igemm/gen/4x8-minmax-aarch64-neonfma-cortex-a75.S
diff --git a/src/f32-igemm/gen/4x8-avx-broadcast.c b/src/f32-igemm/gen/4x8-minmax-avx-broadcast.c
similarity index 100%
rename from src/f32-igemm/gen/4x8-avx-broadcast.c
rename to src/f32-igemm/gen/4x8-minmax-avx-broadcast.c
diff --git a/src/f32-igemm/gen/4x8-fma3-broadcast.c b/src/f32-igemm/gen/4x8-minmax-fma3-broadcast.c
similarity index 100%
rename from src/f32-igemm/gen/4x8-fma3-broadcast.c
rename to src/f32-igemm/gen/4x8-minmax-fma3-broadcast.c
diff --git a/src/f32-igemm/gen/4x8-neon-dup-ld128.c b/src/f32-igemm/gen/4x8-minmax-neon-dup-ld128.c
similarity index 100%
rename from src/f32-igemm/gen/4x8-neon-dup-ld128.c
rename to src/f32-igemm/gen/4x8-minmax-neon-dup-ld128.c
diff --git a/src/f32-igemm/gen/4x8-neon-dup-ld64.c b/src/f32-igemm/gen/4x8-minmax-neon-dup-ld64.c
similarity index 100%
rename from src/f32-igemm/gen/4x8-neon-dup-ld64.c
rename to src/f32-igemm/gen/4x8-minmax-neon-dup-ld64.c
diff --git a/src/f32-igemm/gen/4x8-neon-lane-ld128.c b/src/f32-igemm/gen/4x8-minmax-neon-lane-ld128.c
similarity index 100%
rename from src/f32-igemm/gen/4x8-neon-lane-ld128.c
rename to src/f32-igemm/gen/4x8-minmax-neon-lane-ld128.c
diff --git a/src/f32-igemm/gen/4x8-neon-lane-ld64.c b/src/f32-igemm/gen/4x8-minmax-neon-lane-ld64.c
similarity index 100%
rename from src/f32-igemm/gen/4x8-neon-lane-ld64.c
rename to src/f32-igemm/gen/4x8-minmax-neon-lane-ld64.c
diff --git a/src/f32-igemm/gen/4x8-neonfma-dup-ld128.c b/src/f32-igemm/gen/4x8-minmax-neonfma-dup-ld128.c
similarity index 100%
rename from src/f32-igemm/gen/4x8-neonfma-dup-ld128.c
rename to src/f32-igemm/gen/4x8-minmax-neonfma-dup-ld128.c
diff --git a/src/f32-igemm/gen/4x8-neonfma-dup-ld64.c b/src/f32-igemm/gen/4x8-minmax-neonfma-dup-ld64.c
similarity index 100%
rename from src/f32-igemm/gen/4x8-neonfma-dup-ld64.c
rename to src/f32-igemm/gen/4x8-minmax-neonfma-dup-ld64.c
diff --git a/src/f32-igemm/gen/4x8-neonfma-lane-ld128.c b/src/f32-igemm/gen/4x8-minmax-neonfma-lane-ld128.c
similarity index 100%
rename from src/f32-igemm/gen/4x8-neonfma-lane-ld128.c
rename to src/f32-igemm/gen/4x8-minmax-neonfma-lane-ld128.c
diff --git a/src/f32-igemm/gen/4x8-neonfma-lane-ld64.c b/src/f32-igemm/gen/4x8-minmax-neonfma-lane-ld64.c
similarity index 100%
rename from src/f32-igemm/gen/4x8-neonfma-lane-ld64.c
rename to src/f32-igemm/gen/4x8-minmax-neonfma-lane-ld64.c
diff --git a/src/f32-igemm/gen/4x8-psimd-loadsplat.c b/src/f32-igemm/gen/4x8-minmax-psimd-loadsplat.c
similarity index 100%
rename from src/f32-igemm/gen/4x8-psimd-loadsplat.c
rename to src/f32-igemm/gen/4x8-minmax-psimd-loadsplat.c
diff --git a/src/f32-igemm/gen/4x8-psimd-splat.c b/src/f32-igemm/gen/4x8-minmax-psimd-splat.c
similarity index 100%
rename from src/f32-igemm/gen/4x8-psimd-splat.c
rename to src/f32-igemm/gen/4x8-minmax-psimd-splat.c
diff --git a/src/f32-igemm/gen/4x8-sse-dup.c b/src/f32-igemm/gen/4x8-minmax-sse-dup.c
similarity index 100%
rename from src/f32-igemm/gen/4x8-sse-dup.c
rename to src/f32-igemm/gen/4x8-minmax-sse-dup.c
diff --git a/src/f32-igemm/gen/4x8-sse-load1.c b/src/f32-igemm/gen/4x8-minmax-sse-load1.c
similarity index 100%
rename from src/f32-igemm/gen/4x8-sse-load1.c
rename to src/f32-igemm/gen/4x8-minmax-sse-load1.c
diff --git a/src/f32-igemm/gen/4x8s4-neon.c b/src/f32-igemm/gen/4x8s4-minmax-neon.c
similarity index 100%
rename from src/f32-igemm/gen/4x8s4-neon.c
rename to src/f32-igemm/gen/4x8s4-minmax-neon.c
diff --git a/src/f32-igemm/gen/4x8s4-neonfma.c b/src/f32-igemm/gen/4x8s4-minmax-neonfma.c
similarity index 100%
rename from src/f32-igemm/gen/4x8s4-neonfma.c
rename to src/f32-igemm/gen/4x8s4-minmax-neonfma.c
diff --git a/src/f32-igemm/gen/4x8s4-psimd.c b/src/f32-igemm/gen/4x8s4-minmax-psimd.c
similarity index 100%
rename from src/f32-igemm/gen/4x8s4-psimd.c
rename to src/f32-igemm/gen/4x8s4-minmax-psimd.c
diff --git a/src/f32-igemm/gen/4x8s4-sse.c b/src/f32-igemm/gen/4x8s4-minmax-sse.c
similarity index 100%
rename from src/f32-igemm/gen/4x8s4-sse.c
rename to src/f32-igemm/gen/4x8s4-minmax-sse.c
diff --git a/src/f32-igemm/gen/5x16-avx-broadcast.c b/src/f32-igemm/gen/5x16-minmax-avx-broadcast.c
similarity index 100%
rename from src/f32-igemm/gen/5x16-avx-broadcast.c
rename to src/f32-igemm/gen/5x16-minmax-avx-broadcast.c
diff --git a/src/f32-igemm/gen/5x16-avx512f-broadcast.c b/src/f32-igemm/gen/5x16-minmax-avx512f-broadcast.c
similarity index 100%
rename from src/f32-igemm/gen/5x16-avx512f-broadcast.c
rename to src/f32-igemm/gen/5x16-minmax-avx512f-broadcast.c
diff --git a/src/f32-igemm/gen/5x16-fma3-broadcast.c b/src/f32-igemm/gen/5x16-minmax-fma3-broadcast.c
similarity index 100%
rename from src/f32-igemm/gen/5x16-fma3-broadcast.c
rename to src/f32-igemm/gen/5x16-minmax-fma3-broadcast.c
diff --git a/src/f32-igemm/gen/5x16s4-fma3-broadcast.c b/src/f32-igemm/gen/5x16s4-minmax-fma3-broadcast.c
similarity index 100%
rename from src/f32-igemm/gen/5x16s4-fma3-broadcast.c
rename to src/f32-igemm/gen/5x16s4-minmax-fma3-broadcast.c
diff --git a/src/f32-igemm/gen/5x8-aarch64-neonfma-cortex-a57.S b/src/f32-igemm/gen/5x8-minmax-aarch64-neonfma-cortex-a57.S
similarity index 100%
rename from src/f32-igemm/gen/5x8-aarch64-neonfma-cortex-a57.S
rename to src/f32-igemm/gen/5x8-minmax-aarch64-neonfma-cortex-a57.S
diff --git a/src/f32-igemm/gen/5x8-aarch64-neonfma-cortex-a75.S b/src/f32-igemm/gen/5x8-minmax-aarch64-neonfma-cortex-a75.S
similarity index 100%
rename from src/f32-igemm/gen/5x8-aarch64-neonfma-cortex-a75.S
rename to src/f32-igemm/gen/5x8-minmax-aarch64-neonfma-cortex-a75.S
diff --git a/src/f32-igemm/gen/5x8-avx-broadcast.c b/src/f32-igemm/gen/5x8-minmax-avx-broadcast.c
similarity index 100%
rename from src/f32-igemm/gen/5x8-avx-broadcast.c
rename to src/f32-igemm/gen/5x8-minmax-avx-broadcast.c
diff --git a/src/f32-igemm/gen/5x8-fma3-broadcast.c b/src/f32-igemm/gen/5x8-minmax-fma3-broadcast.c
similarity index 100%
rename from src/f32-igemm/gen/5x8-fma3-broadcast.c
rename to src/f32-igemm/gen/5x8-minmax-fma3-broadcast.c
diff --git a/src/f32-igemm/gen/6x16-avx512f-broadcast.c b/src/f32-igemm/gen/6x16-minmax-avx512f-broadcast.c
similarity index 100%
rename from src/f32-igemm/gen/6x16-avx512f-broadcast.c
rename to src/f32-igemm/gen/6x16-minmax-avx512f-broadcast.c
diff --git a/src/f32-igemm/gen/6x8-aarch64-neonfma-cortex-a57.S b/src/f32-igemm/gen/6x8-minmax-aarch64-neonfma-cortex-a57.S
similarity index 100%
rename from src/f32-igemm/gen/6x8-aarch64-neonfma-cortex-a57.S
rename to src/f32-igemm/gen/6x8-minmax-aarch64-neonfma-cortex-a57.S
diff --git a/src/f32-igemm/gen/6x8-aarch64-neonfma-cortex-a75.S b/src/f32-igemm/gen/6x8-minmax-aarch64-neonfma-cortex-a75.S
similarity index 100%
rename from src/f32-igemm/gen/6x8-aarch64-neonfma-cortex-a75.S
rename to src/f32-igemm/gen/6x8-minmax-aarch64-neonfma-cortex-a75.S
diff --git a/src/f32-igemm/gen/6x8-aarch64-neonfma-ios.S b/src/f32-igemm/gen/6x8-minmax-aarch64-neonfma-ios.S
similarity index 100%
rename from src/f32-igemm/gen/6x8-aarch64-neonfma-ios.S
rename to src/f32-igemm/gen/6x8-minmax-aarch64-neonfma-ios.S
diff --git a/src/f32-igemm/gen/6x8-avx-broadcast.c b/src/f32-igemm/gen/6x8-minmax-avx-broadcast.c
similarity index 100%
rename from src/f32-igemm/gen/6x8-avx-broadcast.c
rename to src/f32-igemm/gen/6x8-minmax-avx-broadcast.c
diff --git a/src/f32-igemm/gen/6x8-fma3-broadcast.c b/src/f32-igemm/gen/6x8-minmax-fma3-broadcast.c
similarity index 100%
rename from src/f32-igemm/gen/6x8-fma3-broadcast.c
rename to src/f32-igemm/gen/6x8-minmax-fma3-broadcast.c
diff --git a/src/f32-igemm/gen/6x8-neon-dup-ld128.c b/src/f32-igemm/gen/6x8-minmax-neon-dup-ld128.c
similarity index 100%
rename from src/f32-igemm/gen/6x8-neon-dup-ld128.c
rename to src/f32-igemm/gen/6x8-minmax-neon-dup-ld128.c
diff --git a/src/f32-igemm/gen/6x8-neon-dup-ld64.c b/src/f32-igemm/gen/6x8-minmax-neon-dup-ld64.c
similarity index 100%
rename from src/f32-igemm/gen/6x8-neon-dup-ld64.c
rename to src/f32-igemm/gen/6x8-minmax-neon-dup-ld64.c
diff --git a/src/f32-igemm/gen/6x8-neon-lane-ld128.c b/src/f32-igemm/gen/6x8-minmax-neon-lane-ld128.c
similarity index 100%
rename from src/f32-igemm/gen/6x8-neon-lane-ld128.c
rename to src/f32-igemm/gen/6x8-minmax-neon-lane-ld128.c
diff --git a/src/f32-igemm/gen/6x8-neon-lane-ld64.c b/src/f32-igemm/gen/6x8-minmax-neon-lane-ld64.c
similarity index 100%
rename from src/f32-igemm/gen/6x8-neon-lane-ld64.c
rename to src/f32-igemm/gen/6x8-minmax-neon-lane-ld64.c
diff --git a/src/f32-igemm/gen/6x8-neonfma-dup-ld128.c b/src/f32-igemm/gen/6x8-minmax-neonfma-dup-ld128.c
similarity index 100%
rename from src/f32-igemm/gen/6x8-neonfma-dup-ld128.c
rename to src/f32-igemm/gen/6x8-minmax-neonfma-dup-ld128.c
diff --git a/src/f32-igemm/gen/6x8-neonfma-dup-ld64.c b/src/f32-igemm/gen/6x8-minmax-neonfma-dup-ld64.c
similarity index 100%
rename from src/f32-igemm/gen/6x8-neonfma-dup-ld64.c
rename to src/f32-igemm/gen/6x8-minmax-neonfma-dup-ld64.c
diff --git a/src/f32-igemm/gen/6x8-neonfma-lane-ld128.c b/src/f32-igemm/gen/6x8-minmax-neonfma-lane-ld128.c
similarity index 100%
rename from src/f32-igemm/gen/6x8-neonfma-lane-ld128.c
rename to src/f32-igemm/gen/6x8-minmax-neonfma-lane-ld128.c
diff --git a/src/f32-igemm/gen/6x8-neonfma-lane-ld64.c b/src/f32-igemm/gen/6x8-minmax-neonfma-lane-ld64.c
similarity index 100%
rename from src/f32-igemm/gen/6x8-neonfma-lane-ld64.c
rename to src/f32-igemm/gen/6x8-minmax-neonfma-lane-ld64.c
diff --git a/src/f32-igemm/gen/6x8-psimd-loadsplat.c b/src/f32-igemm/gen/6x8-minmax-psimd-loadsplat.c
similarity index 100%
rename from src/f32-igemm/gen/6x8-psimd-loadsplat.c
rename to src/f32-igemm/gen/6x8-minmax-psimd-loadsplat.c
diff --git a/src/f32-igemm/gen/6x8-psimd-splat.c b/src/f32-igemm/gen/6x8-minmax-psimd-splat.c
similarity index 100%
rename from src/f32-igemm/gen/6x8-psimd-splat.c
rename to src/f32-igemm/gen/6x8-minmax-psimd-splat.c
diff --git a/src/f32-igemm/gen/6x8s4-neon.c b/src/f32-igemm/gen/6x8s4-minmax-neon.c
similarity index 100%
rename from src/f32-igemm/gen/6x8s4-neon.c
rename to src/f32-igemm/gen/6x8s4-minmax-neon.c
diff --git a/src/f32-igemm/gen/6x8s4-neonfma.c b/src/f32-igemm/gen/6x8s4-minmax-neonfma.c
similarity index 100%
rename from src/f32-igemm/gen/6x8s4-neonfma.c
rename to src/f32-igemm/gen/6x8s4-minmax-neonfma.c
diff --git a/src/f32-igemm/gen/6x8s4-psimd.c b/src/f32-igemm/gen/6x8s4-minmax-psimd.c
similarity index 100%
rename from src/f32-igemm/gen/6x8s4-psimd.c
rename to src/f32-igemm/gen/6x8s4-minmax-psimd.c
diff --git a/src/f32-igemm/gen/7x16-avx512f-broadcast.c b/src/f32-igemm/gen/7x16-minmax-avx512f-broadcast.c
similarity index 100%
rename from src/f32-igemm/gen/7x16-avx512f-broadcast.c
rename to src/f32-igemm/gen/7x16-minmax-avx512f-broadcast.c
diff --git a/src/f32-igemm/gen/7x8-avx-broadcast.c b/src/f32-igemm/gen/7x8-minmax-avx-broadcast.c
similarity index 100%
rename from src/f32-igemm/gen/7x8-avx-broadcast.c
rename to src/f32-igemm/gen/7x8-minmax-avx-broadcast.c
diff --git a/src/f32-igemm/gen/7x8-fma3-broadcast.c b/src/f32-igemm/gen/7x8-minmax-fma3-broadcast.c
similarity index 100%
rename from src/f32-igemm/gen/7x8-fma3-broadcast.c
rename to src/f32-igemm/gen/7x8-minmax-fma3-broadcast.c
diff --git a/src/f32-igemm/gen/8x16-avx512f-broadcast.c b/src/f32-igemm/gen/8x16-minmax-avx512f-broadcast.c
similarity index 100%
rename from src/f32-igemm/gen/8x16-avx512f-broadcast.c
rename to src/f32-igemm/gen/8x16-minmax-avx512f-broadcast.c
diff --git a/src/f32-igemm/gen/8x8-fma3-broadcast.c b/src/f32-igemm/gen/8x8-minmax-fma3-broadcast.c
similarity index 100%
rename from src/f32-igemm/gen/8x8-fma3-broadcast.c
rename to src/f32-igemm/gen/8x8-minmax-fma3-broadcast.c
diff --git a/src/f32-igemm/gen/8x8s4-neon.c b/src/f32-igemm/gen/8x8s4-minmax-neon.c
similarity index 100%
rename from src/f32-igemm/gen/8x8s4-neon.c
rename to src/f32-igemm/gen/8x8s4-minmax-neon.c
diff --git a/src/f32-igemm/gen/8x8s4-neonfma.c b/src/f32-igemm/gen/8x8s4-minmax-neonfma.c
similarity index 100%
rename from src/f32-igemm/gen/8x8s4-neonfma.c
rename to src/f32-igemm/gen/8x8s4-minmax-neonfma.c
diff --git a/src/f32-ppmm/gen/2x4-scalar.c b/src/f32-ppmm/gen/2x4-minmax-scalar.c
similarity index 100%
rename from src/f32-ppmm/gen/2x4-scalar.c
rename to src/f32-ppmm/gen/2x4-minmax-scalar.c
diff --git a/src/f32-ppmm/gen/3x3-scalar.c b/src/f32-ppmm/gen/3x3-minmax-scalar.c
similarity index 100%
rename from src/f32-ppmm/gen/3x3-scalar.c
rename to src/f32-ppmm/gen/3x3-minmax-scalar.c
diff --git a/src/f32-ppmm/gen/4x2-scalar.c b/src/f32-ppmm/gen/4x2-minmax-scalar.c
similarity index 100%
rename from src/f32-ppmm/gen/4x2-scalar.c
rename to src/f32-ppmm/gen/4x2-minmax-scalar.c
diff --git a/src/f32-ppmm/gen/4x4-scalar.c b/src/f32-ppmm/gen/4x4-minmax-scalar.c
similarity index 100%
rename from src/f32-ppmm/gen/4x4-scalar.c
rename to src/f32-ppmm/gen/4x4-minmax-scalar.c
diff --git a/src/f32-ppmm/gen/4x8-neon.c b/src/f32-ppmm/gen/4x8-minmax-neon.c
similarity index 100%
rename from src/f32-ppmm/gen/4x8-neon.c
rename to src/f32-ppmm/gen/4x8-minmax-neon.c
diff --git a/src/f32-ppmm/gen/4x8-neonfma.c b/src/f32-ppmm/gen/4x8-minmax-neonfma.c
similarity index 100%
rename from src/f32-ppmm/gen/4x8-neonfma.c
rename to src/f32-ppmm/gen/4x8-minmax-neonfma.c
diff --git a/src/f32-ppmm/gen/4x8-psimd.c b/src/f32-ppmm/gen/4x8-minmax-psimd.c
similarity index 100%
rename from src/f32-ppmm/gen/4x8-psimd.c
rename to src/f32-ppmm/gen/4x8-minmax-psimd.c
diff --git a/src/f32-ppmm/gen/4x8-sse.c b/src/f32-ppmm/gen/4x8-minmax-sse.c
similarity index 100%
rename from src/f32-ppmm/gen/4x8-sse.c
rename to src/f32-ppmm/gen/4x8-minmax-sse.c
diff --git a/src/f32-ppmm/gen/8x8-neon.c b/src/f32-ppmm/gen/8x8-minmax-neon.c
similarity index 100%
rename from src/f32-ppmm/gen/8x8-neon.c
rename to src/f32-ppmm/gen/8x8-minmax-neon.c
diff --git a/src/f32-ppmm/gen/8x8-neonfma.c b/src/f32-ppmm/gen/8x8-minmax-neonfma.c
similarity index 100%
rename from src/f32-ppmm/gen/8x8-neonfma.c
rename to src/f32-ppmm/gen/8x8-minmax-neonfma.c
diff --git a/test/f32-dwconv.cc b/test/f32-dwconv-minmax.cc
similarity index 99%
rename from test/f32-dwconv.cc
rename to test/f32-dwconv-minmax.cc
index 2e5cd25..ccb2fd9 100644
--- a/test/f32-dwconv.cc
+++ b/test/f32-dwconv-minmax.cc
@@ -7,7 +7,7 @@
 // LICENSE file in the root directory of this source tree.
 //
 // Auto-generated file. Do not edit!
-//   Specification: test/f32-dwconv.yaml
+//   Specification: test/f32-dwconv-minmax.yaml
 //   Generator: tools/generate-dwconv-test.py
 
 
diff --git a/test/f32-dwconv.yaml b/test/f32-dwconv-minmax.yaml
similarity index 100%
rename from test/f32-dwconv.yaml
rename to test/f32-dwconv-minmax.yaml
diff --git a/test/f32-gemm.cc b/test/f32-gemm-minmax.cc
similarity index 99%
rename from test/f32-gemm.cc
rename to test/f32-gemm-minmax.cc
index e56931e..a06f463 100644
--- a/test/f32-gemm.cc
+++ b/test/f32-gemm-minmax.cc
@@ -7,7 +7,7 @@
 // LICENSE file in the root directory of this source tree.
 //
 // Auto-generated file. Do not edit!
-//   Specification: test/f32-gemm.yaml
+//   Specification: test/f32-gemm-minmax.yaml
 //   Generator: tools/generate-gemm-test.py
 
 
diff --git a/test/f32-gemm.yaml b/test/f32-gemm-minmax.yaml
similarity index 100%
rename from test/f32-gemm.yaml
rename to test/f32-gemm-minmax.yaml
diff --git a/test/f32-gemminc.cc b/test/f32-gemminc-minmax.cc
similarity index 99%
rename from test/f32-gemminc.cc
rename to test/f32-gemminc-minmax.cc
index 0a6da77..5486ead 100644
--- a/test/f32-gemminc.cc
+++ b/test/f32-gemminc-minmax.cc
@@ -7,7 +7,7 @@
 // LICENSE file in the root directory of this source tree.
 //
 // Auto-generated file. Do not edit!
-//   Specification: test/f32-gemminc.yaml
+//   Specification: test/f32-gemminc-minmax.yaml
 //   Generator: tools/generate-gemm-test.py
 
 
diff --git a/test/f32-gemminc.yaml b/test/f32-gemminc-minmax.yaml
similarity index 100%
rename from test/f32-gemminc.yaml
rename to test/f32-gemminc-minmax.yaml
diff --git a/test/f32-igemm.cc b/test/f32-igemm-minmax.cc
similarity index 99%
rename from test/f32-igemm.cc
rename to test/f32-igemm-minmax.cc
index fa54ce7..c215aca 100644
--- a/test/f32-igemm.cc
+++ b/test/f32-igemm-minmax.cc
@@ -7,7 +7,7 @@
 // LICENSE file in the root directory of this source tree.
 //
 // Auto-generated file. Do not edit!
-//   Specification: test/f32-igemm.yaml
+//   Specification: test/f32-igemm-minmax.yaml
 //   Generator: tools/generate-gemm-test.py
 
 
diff --git a/test/f32-igemm.yaml b/test/f32-igemm-minmax.yaml
similarity index 100%
rename from test/f32-igemm.yaml
rename to test/f32-igemm-minmax.yaml
diff --git a/test/f32-ppmm.cc b/test/f32-ppmm-minmax.cc
similarity index 99%
rename from test/f32-ppmm.cc
rename to test/f32-ppmm-minmax.cc
index 773806b..404892a 100644
--- a/test/f32-ppmm.cc
+++ b/test/f32-ppmm-minmax.cc
@@ -7,7 +7,7 @@
 // LICENSE file in the root directory of this source tree.
 //
 // Auto-generated file. Do not edit!
-//   Specification: test/f32-ppmm.yaml
+//   Specification: test/f32-ppmm-minmax.yaml
 //   Generator: tools/generate-gemm-test.py
 
 
diff --git a/test/f32-ppmm.yaml b/test/f32-ppmm-minmax.yaml
similarity index 100%
rename from test/f32-ppmm.yaml
rename to test/f32-ppmm-minmax.yaml