Update Android.bp and TEST_MAPPING following rebase

Test: mm
Change-Id: I49931d6e06e13feb1b755dc5a2629bb75a45ee19
diff --git a/Android.bp b/Android.bp
index 91417c8..2f7a574 100644
--- a/Android.bp
+++ b/Android.bp
@@ -13,29 +13,67 @@
 // limitations under the License.
 
 OPERATOR_SRCS = [
-    "src/operators/add-nc.c",
     "src/operators/argmax-pooling-nhwc.c",
     "src/operators/average-pooling-nhwc.c",
     "src/operators/binary-elementwise-nd.c",
-    "src/operators/channel-pad-nc.c",
     "src/operators/channel-shuffle-nc.c",
-    "src/operators/clamp-nc.c",
+    "src/operators/constant-pad-nd.c",
     "src/operators/convolution-nchw.c",
     "src/operators/convolution-nhwc.c",
     "src/operators/deconvolution-nhwc.c",
     "src/operators/fully-connected-nc.c",
     "src/operators/global-average-pooling-ncw.c",
     "src/operators/global-average-pooling-nwc.c",
-    "src/operators/hardswish-nc.c",
     "src/operators/leaky-relu-nc.c",
     "src/operators/max-pooling-nhwc.c",
     "src/operators/prelu-nc.c",
     "src/operators/resize-bilinear-nhwc.c",
     "src/operators/sigmoid-nc.c",
     "src/operators/softmax-nc.c",
+    "src/operators/unary-elementwise-nc.c",
     "src/operators/unpooling-nhwc.c",
 ]
 
+LOGGING_SRCS = [
+    "src/operator-strings.c",
+    "src/subgraph-strings.c",
+]
+
+SUBGRAPH_SRCS = [
+    "src/subgraph/abs.c",
+    "src/subgraph/add2.c",
+    "src/subgraph/argmax-pooling-2d.c",
+    "src/subgraph/average-pooling-2d.c",
+    "src/subgraph/bankers-rounding.c",
+    "src/subgraph/ceiling.c",
+    "src/subgraph/clamp.c",
+    "src/subgraph/convolution-2d.c",
+    "src/subgraph/deconvolution-2d.c",
+    "src/subgraph/depthwise-convolution-2d.c",
+    "src/subgraph/divide.c",
+    "src/subgraph/fully-connected.c",
+    "src/subgraph/floor.c",
+    "src/subgraph/global-average-pooling-2d.c",
+    "src/subgraph/hardswish.c",
+    "src/subgraph/leaky-relu.c",
+    "src/subgraph/max-pooling-2d.c",
+    "src/subgraph/maximum2.c",
+    "src/subgraph/minimum2.c",
+    "src/subgraph/multiply2.c",
+    "src/subgraph/negate.c",
+    "src/subgraph/prelu.c",
+    "src/subgraph/sigmoid.c",
+    "src/subgraph/softmax.c",
+    "src/subgraph/static-constant-pad.c",
+    "src/subgraph/static-reshape.c",
+    "src/subgraph/static-resize-bilinear-2d.c",
+    "src/subgraph/square.c",
+    "src/subgraph/square-root.c",
+    "src/subgraph/squared-difference.c",
+    "src/subgraph/subtract.c",
+    "src/subgraph/unpooling-2d.c",
+]
+
 TABLE_SRCS = [
     "src/tables/exp2-k-over-64.c",
     "src/tables/exp2-k-over-2048.c",
@@ -52,11 +90,11 @@
     "src/f32-clamp/gen/scalar-x4.c",
     "src/f32-conv-hwc/3x3s2p0p1c3x4-scalar-1x1.c",
     "src/f32-conv-hwc/3x3s2p1c3x4-scalar-1x1.c",
-    "src/f32-conv-hwc2spchw/3x3s2p1c3x4-scalar-1x1.c",
-    "src/f32-dwconv-spchw/3x3p1-scalar.c",
-    "src/f32-dwconv-spchw/3x3s2p1-scalar.c",
-    "src/f32-dwconv-spchw/5x5p2-scalar.c",
-    "src/f32-dwconv-spchw/5x5s2p2-scalar.c",
+    "src/f32-conv-hwc2chw/3x3s2p1c3x4-scalar-1x1.c",
+    "src/f32-dwconv-chw/3x3p1-scalar.c",
+    "src/f32-dwconv-chw/3x3s2p1-scalar.c",
+    "src/f32-dwconv-chw/5x5p2-scalar.c",
+    "src/f32-dwconv-chw/5x5s2p2-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",
@@ -81,7 +119,7 @@
     "src/f32-dwconv/gen/up2x9-minmax-scalar.c",
     "src/f32-dwconv/gen/up2x25-minmax-scalar-acc2.c",
     "src/f32-dwconv/gen/up2x25-minmax-scalar.c",
-    "src/f32-gavgpool-spchw/scalar-x1.c",
+    "src/f32-gavgpool-cw/scalar-x1.c",
     "src/f32-gavgpool/7p7x-minmax-scalar-c1.c",
     "src/f32-gavgpool/7x-minmax-scalar-c1.c",
     "src/f32-gemm/gen-inc/1x4inc-minmax-scalar.c",
@@ -91,13 +129,17 @@
     "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/1x4-relu-scalar.c",
+    "src/f32-gemm/gen/2x4-relu-scalar.c",
+    "src/f32-gemm/gen/4x2-relu-scalar.c",
+    "src/f32-gemm/gen/4x4-relu-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-hswish/gen/hswish-scalar-x1.c",
+    "src/f32-hswish/gen/hswish-scalar-x2.c",
+    "src/f32-hswish/gen/hswish-scalar-x4.c",
     "src/f32-ibilinear/gen/scalar-c1.c",
     "src/f32-ibilinear/gen/scalar-c2.c",
     "src/f32-ibilinear/gen/scalar-c4.c",
@@ -105,6 +147,10 @@
     "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-relu-scalar.c",
+    "src/f32-igemm/gen/2x4-relu-scalar.c",
+    "src/f32-igemm/gen/4x2-relu-scalar.c",
+    "src/f32-igemm/gen/4x4-relu-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",
@@ -130,6 +176,9 @@
     "src/f32-raddstoreexpminusmax/gen/scalar-p5-x4.c",
     "src/f32-raddstoreexpminusmax/gen/scalar-p5-x4-acc2.c",
     "src/f32-raddstoreexpminusmax/gen/scalar-p5-x4-acc4.c",
+    "src/f32-relu/gen/scalar-x1.c",
+    "src/f32-relu/gen/scalar-x2.c",
+    "src/f32-relu/gen/scalar-x4.c",
     "src/f32-rmax/scalar.c",
     "src/f32-sigmoid/gen/scalar-lut2048-p1-div-x1.c",
     "src/f32-sigmoid/gen/scalar-lut2048-p1-div-x2.c",
@@ -153,15 +202,27 @@
     "src/f32-vbinary/gen/vadd-minmax-scalar-x1.c",
     "src/f32-vbinary/gen/vadd-minmax-scalar-x2.c",
     "src/f32-vbinary/gen/vadd-minmax-scalar-x4.c",
+    "src/f32-vbinary/gen/vadd-scalar-x1.c",
+    "src/f32-vbinary/gen/vadd-scalar-x2.c",
+    "src/f32-vbinary/gen/vadd-scalar-x4.c",
     "src/f32-vbinary/gen/vaddc-minmax-scalar-x1.c",
     "src/f32-vbinary/gen/vaddc-minmax-scalar-x2.c",
     "src/f32-vbinary/gen/vaddc-minmax-scalar-x4.c",
+    "src/f32-vbinary/gen/vaddc-scalar-x1.c",
+    "src/f32-vbinary/gen/vaddc-scalar-x2.c",
+    "src/f32-vbinary/gen/vaddc-scalar-x4.c",
     "src/f32-vbinary/gen/vdiv-minmax-scalar-x1.c",
     "src/f32-vbinary/gen/vdiv-minmax-scalar-x2.c",
     "src/f32-vbinary/gen/vdiv-minmax-scalar-x4.c",
+    "src/f32-vbinary/gen/vdiv-scalar-x1.c",
+    "src/f32-vbinary/gen/vdiv-scalar-x2.c",
+    "src/f32-vbinary/gen/vdiv-scalar-x4.c",
     "src/f32-vbinary/gen/vdivc-minmax-scalar-x1.c",
     "src/f32-vbinary/gen/vdivc-minmax-scalar-x2.c",
     "src/f32-vbinary/gen/vdivc-minmax-scalar-x4.c",
+    "src/f32-vbinary/gen/vdivc-scalar-x1.c",
+    "src/f32-vbinary/gen/vdivc-scalar-x2.c",
+    "src/f32-vbinary/gen/vdivc-scalar-x4.c",
     "src/f32-vbinary/gen/vmax-scalar-x1.c",
     "src/f32-vbinary/gen/vmax-scalar-x2.c",
     "src/f32-vbinary/gen/vmax-scalar-x4.c",
@@ -177,53 +238,118 @@
     "src/f32-vbinary/gen/vmul-minmax-scalar-x1.c",
     "src/f32-vbinary/gen/vmul-minmax-scalar-x2.c",
     "src/f32-vbinary/gen/vmul-minmax-scalar-x4.c",
+    "src/f32-vbinary/gen/vmul-scalar-x1.c",
+    "src/f32-vbinary/gen/vmul-scalar-x2.c",
+    "src/f32-vbinary/gen/vmul-scalar-x4.c",
     "src/f32-vbinary/gen/vmulc-minmax-scalar-x1.c",
     "src/f32-vbinary/gen/vmulc-minmax-scalar-x2.c",
     "src/f32-vbinary/gen/vmulc-minmax-scalar-x4.c",
+    "src/f32-vbinary/gen/vmulc-scalar-x1.c",
+    "src/f32-vbinary/gen/vmulc-scalar-x2.c",
+    "src/f32-vbinary/gen/vmulc-scalar-x4.c",
     "src/f32-vbinary/gen/vrdivc-minmax-scalar-x1.c",
     "src/f32-vbinary/gen/vrdivc-minmax-scalar-x2.c",
     "src/f32-vbinary/gen/vrdivc-minmax-scalar-x4.c",
+    "src/f32-vbinary/gen/vrdivc-scalar-x1.c",
+    "src/f32-vbinary/gen/vrdivc-scalar-x2.c",
+    "src/f32-vbinary/gen/vrdivc-scalar-x4.c",
     "src/f32-vbinary/gen/vrsubc-minmax-scalar-x1.c",
     "src/f32-vbinary/gen/vrsubc-minmax-scalar-x2.c",
     "src/f32-vbinary/gen/vrsubc-minmax-scalar-x4.c",
+    "src/f32-vbinary/gen/vrsubc-scalar-x1.c",
+    "src/f32-vbinary/gen/vrsubc-scalar-x2.c",
+    "src/f32-vbinary/gen/vrsubc-scalar-x4.c",
+    "src/f32-vbinary/gen/vsqrdiff-scalar-x1.c",
+    "src/f32-vbinary/gen/vsqrdiff-scalar-x2.c",
+    "src/f32-vbinary/gen/vsqrdiff-scalar-x4.c",
+    "src/f32-vbinary/gen/vsqrdiffc-scalar-x1.c",
+    "src/f32-vbinary/gen/vsqrdiffc-scalar-x2.c",
+    "src/f32-vbinary/gen/vsqrdiffc-scalar-x4.c",
     "src/f32-vbinary/gen/vsub-minmax-scalar-x1.c",
     "src/f32-vbinary/gen/vsub-minmax-scalar-x2.c",
     "src/f32-vbinary/gen/vsub-minmax-scalar-x4.c",
+    "src/f32-vbinary/gen/vsub-scalar-x1.c",
+    "src/f32-vbinary/gen/vsub-scalar-x2.c",
+    "src/f32-vbinary/gen/vsub-scalar-x4.c",
     "src/f32-vbinary/gen/vsubc-minmax-scalar-x1.c",
     "src/f32-vbinary/gen/vsubc-minmax-scalar-x2.c",
     "src/f32-vbinary/gen/vsubc-minmax-scalar-x4.c",
+    "src/f32-vbinary/gen/vsubc-scalar-x1.c",
+    "src/f32-vbinary/gen/vsubc-scalar-x2.c",
+    "src/f32-vbinary/gen/vsubc-scalar-x4.c",
+    "src/f32-vlrelu/gen/vlrelu-scalar-x1.c",
+    "src/f32-vlrelu/gen/vlrelu-scalar-x2.c",
+    "src/f32-vlrelu/gen/vlrelu-scalar-x4.c",
     "src/f32-vmulcaddc/gen/c1-minmax-scalar-2x.c",
     "src/f32-vmulcaddc/gen/c2-minmax-scalar-2x.c",
     "src/f32-vmulcaddc/gen/c4-minmax-scalar-2x.c",
+    "src/f32-vrnd/gen/vrndne-scalar-libm-x1.c",
+    "src/f32-vrnd/gen/vrndne-scalar-libm-x2.c",
+    "src/f32-vrnd/gen/vrndne-scalar-libm-x4.c",
+    "src/f32-vrnd/gen/vrndz-scalar-libm-x1.c",
+    "src/f32-vrnd/gen/vrndz-scalar-libm-x2.c",
+    "src/f32-vrnd/gen/vrndz-scalar-libm-x4.c",
+    "src/f32-vrnd/gen/vrndu-scalar-libm-x1.c",
+    "src/f32-vrnd/gen/vrndu-scalar-libm-x2.c",
+    "src/f32-vrnd/gen/vrndu-scalar-libm-x4.c",
+    "src/f32-vrnd/gen/vrndd-scalar-libm-x1.c",
+    "src/f32-vrnd/gen/vrndd-scalar-libm-x2.c",
+    "src/f32-vrnd/gen/vrndd-scalar-libm-x4.c",
+    "src/f32-vsqrt/gen/scalar-sqrt-x1.c",
+    "src/f32-vsqrt/gen/scalar-sqrt-x2.c",
+    "src/f32-vsqrt/gen/scalar-sqrt-x4.c",
+    "src/f32-vunary/gen/vabs-scalar-x1.c",
+    "src/f32-vunary/gen/vabs-scalar-x2.c",
+    "src/f32-vunary/gen/vabs-scalar-x4.c",
+    "src/f32-vunary/gen/vneg-scalar-x1.c",
+    "src/f32-vunary/gen/vneg-scalar-x2.c",
+    "src/f32-vunary/gen/vneg-scalar-x4.c",
+    "src/f32-vunary/gen/vsqr-scalar-x1.c",
+    "src/f32-vunary/gen/vsqr-scalar-x2.c",
+    "src/f32-vunary/gen/vsqr-scalar-x4.c",
     "src/math/expminus-scalar-lut2048-p1.c",
     "src/math/expminus-scalar-lut64-p2.c",
     "src/math/expminus-scalar-p5.c",
     "src/math/roundne-scalar-addsub.c",
+    "src/math/roundne-scalar-nearbyint.c",
+    "src/math/roundne-scalar-rint.c",
     "src/math/roundd-scalar-addsub.c",
     "src/math/roundd-scalar-cvt.c",
+    "src/math/roundd-scalar-floor.c",
     "src/math/roundu-scalar-addsub.c",
+    "src/math/roundu-scalar-ceil.c",
     "src/math/roundu-scalar-cvt.c",
     "src/math/roundz-scalar-addsub.c",
     "src/math/roundz-scalar-cvt.c",
+    "src/math/roundz-scalar-trunc.c",
     "src/math/sigmoid-scalar-lut2048-p1-div.c",
     "src/math/sigmoid-scalar-lut64-p2-div.c",
     "src/math/sigmoid-scalar-p5-div.c",
-    "src/q8-avgpool/9p8x-minmax-scalar-c1.c",
-    "src/q8-avgpool/9x-minmax-scalar-c1.c",
-    "src/q8-dwconv/up1x9-minmax-scalar.c",
-    "src/q8-gavgpool/7p7x-minmax-scalar-c1.c",
-    "src/q8-gavgpool/7x-minmax-scalar-c1.c",
-    "src/q8-gemm/2x2-minmax-scalar.c",
-    "src/q8-igemm/2x2-minmax-scalar.c",
-    "src/q8-vadd/minmax-scalar.c",
+    "src/qu8-avgpool/9p8x-minmax-scalar-c1.c",
+    "src/qu8-avgpool/9x-minmax-scalar-c1.c",
+    "src/qu8-dwconv/up1x9-minmax-scalar.c",
+    "src/qu8-gavgpool/7p7x-minmax-scalar-c1.c",
+    "src/qu8-gavgpool/7x-minmax-scalar-c1.c",
+    "src/qu8-gemm/2x2-minmax-scalar.c",
+    "src/qu8-igemm/2x2-minmax-scalar.c",
+    "src/qu8-requantization/fp32-scalar-lrintf.c",
+    "src/qu8-requantization/fp32-scalar-magic.c",
+    "src/qu8-requantization/precise-scalar-signed64.c",
+    "src/qu8-requantization/precise-scalar-unsigned32.c",
+    "src/qu8-requantization/precise-scalar-unsigned64.c",
+    "src/qu8-requantization/q31-scalar.c",
+    "src/qu8-vadd/minmax-scalar.c",
     "src/u8-clamp/scalar-x4.c",
     "src/u8-lut32norm/scalar.c",
     "src/u8-maxpool/9p8x-minmax-scalar-c1.c",
     "src/u8-rmax/scalar.c",
+    "src/x32-fill/scalar-float.c",
+    "src/x32-fill/scalar-int.c",
     "src/x32-packx/x2-scalar.c",
     "src/x32-packx/x3-scalar.c",
     "src/x32-packx/x4-scalar.c",
-    "src/x32-pad/x2-scalar.c",
+    "src/x32-pad/scalar-int.c",
+    "src/x32-pad/scalar-float.c",
     "src/x32-unpool/scalar.c",
     "src/x32-zip/x2-scalar.c",
     "src/x32-zip/x3-scalar.c",
@@ -234,147 +360,42 @@
     "src/x8-zip/x3-scalar.c",
     "src/x8-zip/x4-scalar.c",
     "src/x8-zip/xm-scalar.c",
-    "src/requantization/precise-scalar.c",
-    "src/requantization/fp32-scalar.c",
-    "src/requantization/q31-scalar.c",
-    "src/requantization/gemmlowp-scalar.c",
 ]
 
 PSIMD_FASTMATH_UKERNELS = [
-    "src/f32-argmaxpool/4x-psimd-c4.c",
-    "src/f32-argmaxpool/9p8x-psimd-c4.c",
-    "src/f32-argmaxpool/9x-psimd-c4.c",
-    "src/f32-avgpool/9p8x-minmax-psimd-c4.c",
-    "src/f32-avgpool/9x-minmax-psimd-c4.c",
-    "src/f32-clamp/gen/psimd-x4.c",
-    "src/f32-clamp/gen/psimd-x8.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-minmax-psimd-c4.c",
-    "src/f32-gavgpool/7x-minmax-psimd-c4.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-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-minmax-psimd-c4.c",
-    "src/f32-pavgpool/9p8x-minmax-psimd-c4.c",
-    "src/f32-pavgpool/9x-minmax-psimd-c4.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",
-    "src/f32-vbinary/gen/vadd-minmax-psimd-x4.c",
-    "src/f32-vbinary/gen/vadd-minmax-psimd-x8.c",
-    "src/f32-vbinary/gen/vaddc-minmax-psimd-x4.c",
-    "src/f32-vbinary/gen/vaddc-minmax-psimd-x8.c",
-    "src/f32-vbinary/gen/vdiv-minmax-psimd-x4.c",
-    "src/f32-vbinary/gen/vdiv-minmax-psimd-x8.c",
-    "src/f32-vbinary/gen/vdivc-minmax-psimd-x4.c",
-    "src/f32-vbinary/gen/vdivc-minmax-psimd-x8.c",
-    "src/f32-vbinary/gen/vmax-psimd-x4.c",
-    "src/f32-vbinary/gen/vmax-psimd-x8.c",
-    "src/f32-vbinary/gen/vmaxc-psimd-x4.c",
-    "src/f32-vbinary/gen/vmaxc-psimd-x8.c",
-    "src/f32-vbinary/gen/vmin-psimd-x4.c",
-    "src/f32-vbinary/gen/vmin-psimd-x8.c",
-    "src/f32-vbinary/gen/vminc-psimd-x4.c",
-    "src/f32-vbinary/gen/vminc-psimd-x8.c",
-    "src/f32-vbinary/gen/vmul-minmax-psimd-x4.c",
-    "src/f32-vbinary/gen/vmul-minmax-psimd-x8.c",
-    "src/f32-vbinary/gen/vmulc-minmax-psimd-x4.c",
-    "src/f32-vbinary/gen/vmulc-minmax-psimd-x8.c",
-    "src/f32-vbinary/gen/vrdivc-minmax-psimd-x4.c",
-    "src/f32-vbinary/gen/vrdivc-minmax-psimd-x8.c",
-    "src/f32-vbinary/gen/vrsubc-minmax-psimd-x4.c",
-    "src/f32-vbinary/gen/vrsubc-minmax-psimd-x8.c",
-    "src/f32-vbinary/gen/vsub-minmax-psimd-x4.c",
-    "src/f32-vbinary/gen/vsub-minmax-psimd-x8.c",
-    "src/f32-vbinary/gen/vsubc-minmax-psimd-x4.c",
-    "src/f32-vbinary/gen/vsubc-minmax-psimd-x8.c",
-    "src/f32-vmulcaddc/gen/c4-minmax-psimd-2x.c",
-    "src/f32-vmulcaddc/gen/c8-minmax-psimd-2x.c",
-    "src/x32-packx/x4-psimd.c",
-    "src/x32-pad/x2-psimd.c",
-    "src/x32-unpool/psimd.c",
-    "src/x32-zip/x2-psimd.c",
-    "src/x32-zip/x3-psimd.c",
-    "src/x32-zip/x4-psimd.c",
-    "src/x32-zip/xm-psimd.c",
-    "src/requantization/precise-psimd.c",
-    "src/requantization/fp32-psimd.c",
+    "src/f32-conv-hwc2chw/3x3s2p1c3x4-psimd-2x2.c",
+    "src/f32-dwconv-chw/3x3p1-psimd.c",
+    "src/f32-dwconv-chw/3x3s2p1-psimd.c",
+    "src/f32-dwconv-chw/5x5p2-psimd.c",
+    "src/f32-dwconv-chw/5x5s2p2-psimd.c",
+    "src/f32-gavgpool-cw/psimd-x4.c",
+    "src/f32-spmm/gen/4x1-minmax-psimd.c",
+    "src/f32-spmm/gen/8x1-minmax-psimd.c",
+    "src/f32-spmm/gen/16x1-minmax-psimd.c",
 ]
 
 PSIMD_ACCMATH_UKERNELS = [
-    "src/f32-raddstoreexpminusmax/gen/psimd-p5-x4.c",
-    "src/f32-raddstoreexpminusmax/gen/psimd-p5-x8.c",
-    "src/f32-raddstoreexpminusmax/gen/psimd-p5-x8-acc2.c",
-    "src/f32-raddstoreexpminusmax/gen/psimd-p5-x12.c",
-    "src/f32-raddstoreexpminusmax/gen/psimd-p5-x12-acc2.c",
-    "src/f32-raddstoreexpminusmax/gen/psimd-p5-x12-acc3.c",
-    "src/f32-raddstoreexpminusmax/gen/psimd-p5-x16.c",
-    "src/f32-raddstoreexpminusmax/gen/psimd-p5-x16-acc2.c",
-    "src/f32-raddstoreexpminusmax/gen/psimd-p5-x16-acc4.c",
-    "src/f32-raddstoreexpminusmax/gen/psimd-p5-x20.c",
-    "src/f32-raddstoreexpminusmax/gen/psimd-p5-x20-acc2.c",
-    "src/f32-raddstoreexpminusmax/gen/psimd-p5-x20-acc5.c",
-    "src/f32-sigmoid/gen/psimd-p5-div-x4.c",
-    "src/f32-sigmoid/gen/psimd-p5-div-x8.c",
-    "src/f32-sigmoid/gen/psimd-p5-div-x12.c",
-    "src/f32-sigmoid/gen/psimd-p5-div-x16.c",
-    "src/f32-sigmoid/gen/psimd-p5-div-x20.c",
-    "src/f32-sigmoid/gen/psimd-p5-div-x24.c",
-    "src/math/roundne-psimd-addsub.c",
-    "src/math/roundd-psimd-addsub.c",
-    "src/math/roundu-psimd-addsub.c",
-    "src/math/roundz-psimd-addsub.c",
-    "src/math/sigmoid-psimd-p5-div.c",
+    "src/qu8-requantization/precise-psimd.c",
+    "src/qu8-requantization/fp32-psimd.c",
 ]
 
 // ISA-specific micro-kernels
 NEON_UKERNELS = [
+    "src/f32-argmaxpool/4x-neon-c4.c",
+    "src/f32-argmaxpool/9p8x-neon-c4.c",
+    "src/f32-argmaxpool/9x-neon-c4.c",
     "src/f32-avgpool/9p8x-minmax-neon-c4.c",
     "src/f32-avgpool/9x-minmax-neon-c4.c",
     "src/f32-clamp/gen/neon-x4.c",
     "src/f32-clamp/gen/neon-x8.c",
+    "src/f32-conv-hwc/gen/3x3s2p0p1c3x4-neon-2x1.c",
+    "src/f32-conv-hwc/gen/3x3s2p0p1c3x8-neon-2x1.c",
+    "src/f32-conv-hwc/gen/3x3s2p0p1c3x4-neon-2x2.c",
+    "src/f32-conv-hwc/gen/3x3s2p0p1c3x8-neon-2x2.c",
+    "src/f32-conv-hwc/gen/3x3s2p1c3x4-neon-2x1.c",
+    "src/f32-conv-hwc/gen/3x3s2p1c3x8-neon-2x1.c",
+    "src/f32-conv-hwc/gen/3x3s2p1c3x4-neon-2x2.c",
+    "src/f32-conv-hwc/gen/3x3s2p1c3x8-neon-2x2.c",
     "src/f32-dwconv/gen/up4x4-minmax-neon.c",
     "src/f32-dwconv/gen/up4x4-minmax-neon-acc2.c",
     "src/f32-dwconv/gen/up8x4-minmax-neon.c",
@@ -387,7 +408,7 @@
     "src/f32-dwconv/gen/up4x25-minmax-neon-acc2.c",
     "src/f32-dwconv/gen/up8x25-minmax-neon.c",
     "src/f32-dwconv/gen/up8x25-minmax-neon-acc2.c",
-    "src/f32-gavgpool-spchw/neon-x4.c",
+    "src/f32-gavgpool-cw/neon-x4.c",
     "src/f32-gavgpool/7p7x-minmax-neon-c4.c",
     "src/f32-gavgpool/7x-minmax-neon-c4.c",
     "src/f32-gemm/gen/1x8-minmax-neon-lane-ld64.c",
@@ -421,8 +442,9 @@
     "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-hswish/gen/hswish-neon-x4.c",
+    "src/f32-hswish/gen/hswish-neon-x8.c",
+    "src/f32-hswish/gen/hswish-neon-x16.c",
     "src/f32-ibilinear/gen/neon-c4.c",
     "src/f32-ibilinear/gen/neon-c8.c",
     "src/f32-igemm/gen/1x8-minmax-neon-lane-ld64.c",
@@ -446,8 +468,15 @@
     "src/f32-pavgpool/9x-minmax-neon-c4.c",
     "src/f32-ppmm/gen/4x8-minmax-neon.c",
     "src/f32-ppmm/gen/8x8-minmax-neon.c",
+    "src/f32-prelu/gen/neon-1x4.c",
+    "src/f32-prelu/gen/neon-1x8.c",
+    "src/f32-prelu/gen/neon-1x16.c",
     "src/f32-prelu/gen/neon-2x4.c",
     "src/f32-prelu/gen/neon-2x8.c",
+    "src/f32-prelu/gen/neon-2x16.c",
+    "src/f32-prelu/gen/neon-4x4.c",
+    "src/f32-prelu/gen/neon-4x8.c",
+    "src/f32-prelu/gen/neon-4x16.c",
     "src/f32-raddstoreexpminusmax/gen/neon-p5-x4.c",
     "src/f32-raddstoreexpminusmax/gen/neon-p5-x8.c",
     "src/f32-raddstoreexpminusmax/gen/neon-p5-x8-acc2.c",
@@ -472,6 +501,8 @@
     "src/f32-raddstoreexpminusmax/gen/neon-lut64-p2-x20.c",
     "src/f32-raddstoreexpminusmax/gen/neon-lut64-p2-x20-acc2.c",
     "src/f32-raddstoreexpminusmax/gen/neon-lut64-p2-x20-acc5.c",
+    "src/f32-relu/gen/neon-x4.c",
+    "src/f32-relu/gen/neon-x8.c",
     "src/f32-rmax/neon.c",
     "src/f32-sigmoid/gen/neon-frac-p9-p10-nr1recps-x16.c",
     "src/f32-sigmoid/gen/neon-rr2-p5-nr2recps-x4.c",
@@ -510,27 +541,51 @@
     "src/f32-vbinary/gen/vmulc-minmax-neon-x8.c",
     "src/f32-vbinary/gen/vrsubc-minmax-neon-x4.c",
     "src/f32-vbinary/gen/vrsubc-minmax-neon-x8.c",
+    "src/f32-vbinary/gen/vsqrdiff-neon-x4.c",
+    "src/f32-vbinary/gen/vsqrdiff-neon-x8.c",
+    "src/f32-vbinary/gen/vsqrdiffc-neon-x4.c",
+    "src/f32-vbinary/gen/vsqrdiffc-neon-x8.c",
     "src/f32-vbinary/gen/vsub-minmax-neon-x4.c",
     "src/f32-vbinary/gen/vsub-minmax-neon-x8.c",
     "src/f32-vbinary/gen/vsubc-minmax-neon-x4.c",
     "src/f32-vbinary/gen/vsubc-minmax-neon-x8.c",
+    "src/f32-vlrelu/gen/vlrelu-neon-x4.c",
+    "src/f32-vlrelu/gen/vlrelu-neon-x8.c",
     "src/f32-vmulcaddc/gen/c4-minmax-neon-2x.c",
     "src/f32-vmulcaddc/gen/c8-minmax-neon-2x.c",
-    "src/q8-avgpool/9p8x-minmax-neon-c8.c",
-    "src/q8-avgpool/9x-minmax-neon-c8.c",
-    "src/q8-dwconv/up8x9-minmax-neon.c",
-    "src/q8-gavgpool/7p7x-minmax-neon-c8.c",
-    "src/q8-gavgpool/7x-minmax-neon-c8.c",
-    "src/q8-gemm/4x8-minmax-neon.c",
-    "src/q8-gemm/8x8-minmax-neon.c",
-    "src/q8-igemm/4x8-minmax-neon.c",
-    "src/q8-igemm/8x8-minmax-neon.c",
-    "src/q8-vadd/minmax-neon.c",
+    "src/f32-vrnd/gen/vrndne-neon-x4.c",
+    "src/f32-vrnd/gen/vrndne-neon-x8.c",
+    "src/f32-vrnd/gen/vrndz-neon-x4.c",
+    "src/f32-vrnd/gen/vrndz-neon-x8.c",
+    "src/f32-vrnd/gen/vrndu-neon-x4.c",
+    "src/f32-vrnd/gen/vrndu-neon-x8.c",
+    "src/f32-vrnd/gen/vrndd-neon-x4.c",
+    "src/f32-vrnd/gen/vrndd-neon-x8.c",
+    "src/f32-vunary/gen/vabs-neon-x4.c",
+    "src/f32-vunary/gen/vabs-neon-x8.c",
+    "src/f32-vunary/gen/vneg-neon-x4.c",
+    "src/f32-vunary/gen/vneg-neon-x8.c",
+    "src/f32-vunary/gen/vsqr-neon-x4.c",
+    "src/f32-vunary/gen/vsqr-neon-x8.c",
+    "src/qu8-avgpool/9p8x-minmax-neon-c8.c",
+    "src/qu8-avgpool/9x-minmax-neon-c8.c",
+    "src/qu8-dwconv/up8x9-minmax-neon.c",
+    "src/qu8-gavgpool/7p7x-minmax-neon-c8.c",
+    "src/qu8-gavgpool/7x-minmax-neon-c8.c",
+    "src/qu8-gemm/4x8-minmax-neon.c",
+    "src/qu8-gemm/8x8-minmax-neon.c",
+    "src/qu8-igemm/4x8-minmax-neon.c",
+    "src/qu8-igemm/8x8-minmax-neon.c",
+    "src/qu8-requantization/precise-neon.c",
+    "src/qu8-requantization/fp32-neon.c",
+    "src/qu8-requantization/q31-neon.c",
+    "src/qu8-vadd/minmax-neon.c",
     "src/u8-clamp/neon-x64.c",
     "src/u8-maxpool/9p8x-minmax-neon-c16.c",
     "src/u8-rmax/neon.c",
+    "src/x32-fill/neon.c",
     "src/x32-packx/x4-neon-st4.c",
-    "src/x32-pad/x2-neon.c",
+    "src/x32-pad/neon.c",
     "src/x32-unpool/neon.c",
     "src/x32-zip/x2-neon.c",
     "src/x32-zip/x3-neon.c",
@@ -554,10 +609,9 @@
     "src/math/sigmoid-neon-rr2-lut2048-p1-nr2recps.c",
     "src/math/sigmoid-neon-rr2-lut64-p2-nr2recps.c",
     "src/math/sigmoid-neon-rr2-p5-nr2recps.c",
-    "src/requantization/precise-neon.c",
-    "src/requantization/fp32-neon.c",
-    "src/requantization/q31-neon.c",
-    "src/requantization/gemmlowp-neon.c",
+    "src/math/sqrt-neon-nr1rsqrts.c",
+    "src/math/sqrt-neon-nr2rsqrts.c",
+    "src/math/sqrt-neon-nr3rsqrts.c",
 ]
 
 NEONFMA_UKERNELS = [
@@ -602,8 +656,6 @@
     "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-minmax-neonfma.c",
     "src/f32-ppmm/gen/8x8-minmax-neonfma.c",
     "src/f32-raddstoreexpminusmax/gen/neonfma-p5-x4.c",
@@ -686,6 +738,26 @@
     "src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-nr2recps-x24.c",
     "src/f32-vmulcaddc/gen/c4-minmax-neonfma-2x.c",
     "src/f32-vmulcaddc/gen/c8-minmax-neonfma-2x.c",
+    "src/f32-vsqrt/gen/neonfma-nr1rsqrts1fma1adj-x4.c",
+    "src/f32-vsqrt/gen/neonfma-nr1rsqrts1fma1adj-x8.c",
+    "src/f32-vsqrt/gen/neonfma-nr1rsqrts1fma1adj-x12.c",
+    "src/f32-vsqrt/gen/neonfma-nr1rsqrts1fma1adj-x16.c",
+    "src/f32-vsqrt/gen/neonfma-nr1rsqrts1fma1adj-x20.c",
+    "src/f32-vsqrt/gen/neonfma-nr1rsqrts1fma1adj-x24.c",
+    "src/f32-vsqrt/gen/neonfma-nr1rsqrts1fma1adj-x28.c",
+    "src/f32-vsqrt/gen/neonfma-nr1rsqrts1fma1adj-x32.c",
+    "src/f32-vsqrt/gen/neonfma-nr1rsqrts1fma1adj-x36.c",
+    "src/f32-vsqrt/gen/neonfma-nr1rsqrts1fma1adj-x40.c",
+    "src/f32-vsqrt/gen/neonfma-nr2fma1adj-x4.c",
+    "src/f32-vsqrt/gen/neonfma-nr2fma1adj-x8.c",
+    "src/f32-vsqrt/gen/neonfma-nr2fma1adj-x12.c",
+    "src/f32-vsqrt/gen/neonfma-nr2fma1adj-x16.c",
+    "src/f32-vsqrt/gen/neonfma-nr2fma1adj-x20.c",
+    "src/f32-vsqrt/gen/neonfma-nr2fma1adj-x24.c",
+    "src/f32-vsqrt/gen/neonfma-nr2fma1adj-x28.c",
+    "src/f32-vsqrt/gen/neonfma-nr2fma1adj-x32.c",
+    "src/f32-vsqrt/gen/neonfma-nr2fma1adj-x36.c",
+    "src/f32-vsqrt/gen/neonfma-nr2fma1adj-x40.c",
     "src/math/exp-neonfma-lut64-p2.c",
     "src/math/exp-neonfma-p5.c",
     "src/math/expminus-neonfma-lut2048-p1.c",
@@ -709,6 +781,11 @@
     "src/math/sigmoid-neonfma-rr2-p5-nr1recps1fma.c",
     "src/math/sigmoid-neonfma-rr2-p5-nr2fma.c",
     "src/math/sigmoid-neonfma-rr2-p5-nr2recps.c",
+    "src/math/sqrt-neonfma-nr1fma.c",
+    "src/math/sqrt-neonfma-nr2fma.c",
+    "src/math/sqrt-neonfma-nr3fma.c",
+    "src/math/sqrt-neonfma-nr2fma1adj.c",
+    "src/math/sqrt-neonfma-nr1rsqrts1fma1adj.c",
 ]
 
 AARCH64_NEONFMA_UKERNELS = [
@@ -738,13 +815,19 @@
     "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",
-    "src/f32-dwconv-spchw/3x3p1-neonfma.c",
-    "src/f32-dwconv-spchw/5x5p2-neonfma.c",
-    "src/f32-dwconv-spchw/3x3s2p1-neonfma.c",
-    "src/f32-dwconv-spchw/5x5s2p2-neonfma.c",
+    "src/f32-conv-hwc/gen/3x3s2p0p1c3x4-neonfma-2x1.c",
+    "src/f32-conv-hwc/gen/3x3s2p0p1c3x8-neonfma-2x1.c",
+    "src/f32-conv-hwc/gen/3x3s2p0p1c3x4-neonfma-2x2.c",
+    "src/f32-conv-hwc/gen/3x3s2p0p1c3x8-neonfma-2x2.c",
+    "src/f32-conv-hwc/gen/3x3s2p1c3x4-neonfma-2x1.c",
+    "src/f32-conv-hwc/gen/3x3s2p1c3x8-neonfma-2x1.c",
+    "src/f32-conv-hwc/gen/3x3s2p1c3x4-neonfma-2x2.c",
+    "src/f32-conv-hwc/gen/3x3s2p1c3x8-neonfma-2x2.c",
+    "src/f32-conv-hwc2chw/3x3s2p1c3x4-neonfma-2x2.c",
+    "src/f32-dwconv-chw/3x3p1-neonfma.c",
+    "src/f32-dwconv-chw/5x5p2-neonfma.c",
+    "src/f32-dwconv-chw/3x3s2p1-neonfma.c",
+    "src/f32-dwconv-chw/5x5s2p2-neonfma.c",
     "src/f32-sigmoid/gen/neonfma-rr1-p5-div-x4.c",
     "src/f32-sigmoid/gen/neonfma-rr1-p5-div-x8.c",
     "src/f32-sigmoid/gen/neonfma-rr1-p5-div-x12.c",
@@ -781,6 +864,8 @@
     "src/f32-spmm/gen/8x1-minmax-neonfma.c",
     "src/f32-spmm/gen/8x2-minmax-neonfma.c",
     "src/f32-spmm/gen/8x4-minmax-neonfma.c",
+    "src/f32-vsqrt/gen/neon-sqrt-x4.c",
+    "src/f32-vsqrt/gen/neon-sqrt-x8.c",
     "src/math/sigmoid-neonfma-rr1-lut2048-p1-div.c",
     "src/math/sigmoid-neonfma-rr1-lut64-p2-div.c",
     "src/math/sigmoid-neonfma-rr1-p5-div.c",
@@ -790,6 +875,14 @@
 ]
 
 NEONV8_UKERNELS = [
+    "src/f32-vrnd/gen/vrndne-neonv8-x4.c",
+    "src/f32-vrnd/gen/vrndne-neonv8-x8.c",
+    "src/f32-vrnd/gen/vrndz-neonv8-x4.c",
+    "src/f32-vrnd/gen/vrndz-neonv8-x8.c",
+    "src/f32-vrnd/gen/vrndu-neonv8-x4.c",
+    "src/f32-vrnd/gen/vrndu-neonv8-x8.c",
+    "src/f32-vrnd/gen/vrndd-neonv8-x4.c",
+    "src/f32-vrnd/gen/vrndd-neonv8-x8.c",
     "src/math/roundne-neonv8.c",
     "src/math/roundd-neonv8.c",
     "src/math/roundu-neonv8.c",
@@ -799,10 +892,26 @@
 AARCH64_NEONFP16ARITH_UKERNELS = [
     "src/f16-clamp/gen/neonfp16arith-x16.c",
     "src/f16-clamp/gen/neonfp16arith-x8.c",
-    "src/f16-hswish/gen/neonfp16arith-x16.c",
-    "src/f16-hswish/gen/neonfp16arith-x8.c",
-    "src/f16-prelu/gen/neonfp16arith-2x16.c",
+    "src/f16-dwconv/gen/up16x25-minmax-neonfp16arith-acc2.c",
+    "src/f16-dwconv/gen/up16x25-minmax-neonfp16arith.c",
+    "src/f16-dwconv/gen/up16x4-minmax-neonfp16arith-acc2.c",
+    "src/f16-dwconv/gen/up16x4-minmax-neonfp16arith.c",
+    "src/f16-dwconv/gen/up16x9-minmax-neonfp16arith-acc2.c",
+    "src/f16-dwconv/gen/up16x9-minmax-neonfp16arith.c",
+    "src/f16-dwconv/gen/up8x25-minmax-neonfp16arith-acc2.c",
+    "src/f16-dwconv/gen/up8x25-minmax-neonfp16arith.c",
+    "src/f16-dwconv/gen/up8x4-minmax-neonfp16arith-acc2.c",
+    "src/f16-dwconv/gen/up8x4-minmax-neonfp16arith.c",
+    "src/f16-dwconv/gen/up8x9-minmax-neonfp16arith-acc2.c",
+    "src/f16-dwconv/gen/up8x9-minmax-neonfp16arith.c",
+    "src/f16-gavgpool/7p7x-minmax-neonfp16arith-c8.c",
+    "src/f16-gavgpool/7x-minmax-neonfp16arith-c8.c",
+    "src/f16-hswish/gen/hswish-neonfp16arith-x16.c",
+    "src/f16-hswish/gen/hswish-neonfp16arith-x8.c",
     "src/f16-prelu/gen/neonfp16arith-2x8.c",
+    "src/f16-prelu/gen/neonfp16arith-2x16.c",
+    "src/f16-relu/gen/neonfp16arith-x16.c",
+    "src/f16-relu/gen/neonfp16arith-x8.c",
     "src/f16-vbinary/gen/vaddc-minmax-neonfp16arith-x16.c",
     "src/f16-vbinary/gen/vaddc-minmax-neonfp16arith-x8.c",
     "src/f16-vbinary/gen/vadd-minmax-neonfp16arith-x16.c",
@@ -831,6 +940,8 @@
     "src/f16-vbinary/gen/vsubc-minmax-neonfp16arith-x8.c",
     "src/f16-vbinary/gen/vsub-minmax-neonfp16arith-x16.c",
     "src/f16-vbinary/gen/vsub-minmax-neonfp16arith-x8.c",
+    "src/f16-vmulcaddc/gen/c16-minmax-neonfp16arith-2x.c",
+    "src/f16-vmulcaddc/gen/c8-minmax-neonfp16arith-2x.c",
     "src/f16-gemm/gen/1x8-minmax-neonfp16arith-ld64.c",
     "src/f16-gemm/gen/4x8-minmax-neonfp16arith-ld64.c",
     "src/f16-gemm/gen/6x8-minmax-neonfp16arith-ld64.c",
@@ -870,8 +981,10 @@
     "src/f32-avgpool/9x-minmax-sse-c4.c",
     "src/f32-clamp/gen/sse-x4.c",
     "src/f32-clamp/gen/sse-x8.c",
-    "src/f32-dwconv-spchw/3x3p1-sse.c",
-    "src/f32-dwconv-spchw/3x3s2p1-sse.c",
+    "src/f32-conv-hwc2chw/3x3s2p1c3x4-sse-1x1.c",
+    "src/f32-conv-hwc2chw/3x3s2p1c3x4-sse-2x2.c",
+    "src/f32-dwconv-chw/3x3p1-sse.c",
+    "src/f32-dwconv-chw/3x3s2p1-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",
@@ -884,7 +997,7 @@
     "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-cw/sse-x4.c",
     "src/f32-gavgpool/7p7x-minmax-sse-c4.c",
     "src/f32-gavgpool/7x-minmax-sse-c4.c",
     "src/f32-gemm/gen/1x8-minmax-sse-dup.c",
@@ -900,8 +1013,8 @@
     "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-hswish/gen/hswish-sse-x4.c",
+    "src/f32-hswish/gen/hswish-sse-x8.c",
     "src/f32-ibilinear/gen/sse-c4.c",
     "src/f32-ibilinear/gen/sse-c8.c",
     "src/f32-igemm/gen/1x8-minmax-sse-dup.c",
@@ -915,9 +1028,14 @@
     "src/f32-pavgpool/9p8x-minmax-sse-c4.c",
     "src/f32-pavgpool/9x-minmax-sse-c4.c",
     "src/f32-ppmm/gen/4x8-minmax-sse.c",
+    "src/f32-prelu/gen/sse-2x4.c",
+    "src/f32-prelu/gen/sse-2x8.c",
+    "src/f32-relu/gen/sse-x4.c",
+    "src/f32-relu/gen/sse-x8.c",
     "src/f32-rmax/sse.c",
     "src/f32-spmm/gen/4x1-minmax-sse.c",
     "src/f32-spmm/gen/8x1-minmax-sse.c",
+    "src/f32-spmm/gen/16x1-minmax-sse.c",
     "src/f32-vbinary/gen/vadd-minmax-sse-x4.c",
     "src/f32-vbinary/gen/vadd-minmax-sse-x8.c",
     "src/f32-vbinary/gen/vaddc-minmax-sse-x4.c",
@@ -942,17 +1060,36 @@
     "src/f32-vbinary/gen/vrdivc-minmax-sse-x8.c",
     "src/f32-vbinary/gen/vrsubc-minmax-sse-x4.c",
     "src/f32-vbinary/gen/vrsubc-minmax-sse-x8.c",
+    "src/f32-vbinary/gen/vsqrdiff-sse-x4.c",
+    "src/f32-vbinary/gen/vsqrdiff-sse-x8.c",
+    "src/f32-vbinary/gen/vsqrdiffc-sse-x4.c",
+    "src/f32-vbinary/gen/vsqrdiffc-sse-x8.c",
     "src/f32-vbinary/gen/vsub-minmax-sse-x4.c",
     "src/f32-vbinary/gen/vsub-minmax-sse-x8.c",
     "src/f32-vbinary/gen/vsubc-minmax-sse-x4.c",
     "src/f32-vbinary/gen/vsubc-minmax-sse-x8.c",
+    "src/f32-vlrelu/gen/vlrelu-sse-x4.c",
+    "src/f32-vlrelu/gen/vlrelu-sse-x8.c",
     "src/f32-vmulcaddc/gen/c4-minmax-sse-2x.c",
     "src/f32-vmulcaddc/gen/c8-minmax-sse-2x.c",
+    "src/f32-vsqrt/gen/sse-sqrt-x4.c",
+    "src/f32-vsqrt/gen/sse-sqrt-x8.c",
+    "src/f32-vunary/gen/vabs-sse-x4.c",
+    "src/f32-vunary/gen/vabs-sse-x8.c",
+    "src/f32-vunary/gen/vneg-sse-x4.c",
+    "src/f32-vunary/gen/vneg-sse-x8.c",
+    "src/f32-vunary/gen/vsqr-sse-x4.c",
+    "src/f32-vunary/gen/vsqr-sse-x8.c",
+    "src/x32-fill/sse.c",
     "src/x32-packx/x4-sse.c",
+    "src/x32-pad/sse.c",
     "src/math/roundne-sse-addsub.c",
     "src/math/roundd-sse-addsub.c",
     "src/math/roundu-sse-addsub.c",
     "src/math/roundz-sse-addsub.c",
+    "src/math/sqrt-sse-hh1mac.c",
+    "src/math/sqrt-sse-nr1mac.c",
+    "src/math/sqrt-sse-nr2mac.c",
 ]
 
 SSE2_UKERNELS = [
@@ -979,19 +1116,31 @@
     "src/f32-sigmoid/gen/sse2-p5-div-x16.c",
     "src/f32-sigmoid/gen/sse2-p5-div-x20.c",
     "src/f32-sigmoid/gen/sse2-p5-div-x24.c",
-    "src/q8-avgpool/9p8x-minmax-sse2-c8.c",
-    "src/q8-avgpool/9x-minmax-sse2-c8.c",
-    "src/q8-igemm/4x4c2-minmax-sse2.c",
-    "src/q8-dwconv/up8x9-minmax-sse2.c",
-    "src/q8-gavgpool/7p7x-minmax-sse2-c8.c",
-    "src/q8-gavgpool/7x-minmax-sse2-c8.c",
-    "src/q8-gemm/2x4c8-minmax-sse2.c",
-    "src/q8-gemm/4x4c2-minmax-sse2.c",
-    "src/q8-vadd/minmax-sse2.c",
+    "src/f32-vlrelu/gen/vlrelu-sse2-x4.c",
+    "src/f32-vlrelu/gen/vlrelu-sse2-x8.c",
+    "src/f32-vrnd/gen/vrndne-sse2-x4.c",
+    "src/f32-vrnd/gen/vrndne-sse2-x8.c",
+    "src/f32-vrnd/gen/vrndz-sse2-x4.c",
+    "src/f32-vrnd/gen/vrndz-sse2-x8.c",
+    "src/f32-vrnd/gen/vrndu-sse2-x4.c",
+    "src/f32-vrnd/gen/vrndu-sse2-x8.c",
+    "src/f32-vrnd/gen/vrndd-sse2-x4.c",
+    "src/f32-vrnd/gen/vrndd-sse2-x8.c",
+    "src/qu8-avgpool/9p8x-minmax-sse2-c8.c",
+    "src/qu8-avgpool/9x-minmax-sse2-c8.c",
+    "src/qu8-igemm/4x4c2-minmax-sse2.c",
+    "src/qu8-dwconv/up8x9-minmax-sse2.c",
+    "src/qu8-gavgpool/7p7x-minmax-sse2-c8.c",
+    "src/qu8-gavgpool/7x-minmax-sse2-c8.c",
+    "src/qu8-gemm/2x4c8-minmax-sse2.c",
+    "src/qu8-gemm/4x4c2-minmax-sse2.c",
+    "src/qu8-requantization/precise-sse2.c",
+    "src/qu8-requantization/fp32-sse2.c",
+    "src/qu8-requantization/q31-sse2.c",
+    "src/qu8-vadd/minmax-sse2.c",
     "src/u8-clamp/sse2-x64.c",
     "src/u8-maxpool/9p8x-minmax-sse2-c16.c",
     "src/u8-rmax/sse2.c",
-    "src/x32-pad/x2-sse2.c",
     "src/x32-unpool/sse2.c",
     "src/x32-zip/x2-sse2.c",
     "src/x32-zip/x3-sse2.c",
@@ -1008,16 +1157,11 @@
     "src/math/roundu-sse2-cvt.c",
     "src/math/roundz-sse2-cvt.c",
     "src/math/sigmoid-sse2-p5-div.c",
-    "src/requantization/precise-sse2.c",
-    "src/requantization/fp32-sse2.c",
-    "src/requantization/q31-sse2.c",
-    "src/requantization/gemmlowp-sse2.c",
 ]
 
 SSSE3_UKERNELS = [
-    "src/requantization/precise-ssse3.c",
-    "src/requantization/q31-ssse3.c",
-    "src/requantization/gemmlowp-ssse3.c",
+    "src/qu8-requantization/precise-ssse3.c",
+    "src/qu8-requantization/q31-ssse3.c",
 ]
 
 SSE41_UKERNELS = [
@@ -1029,13 +1173,22 @@
     "src/f32-sigmoid/gen/sse41-p5-div-x16.c",
     "src/f32-sigmoid/gen/sse41-p5-div-x20.c",
     "src/f32-sigmoid/gen/sse41-p5-div-x24.c",
+    "src/f32-vlrelu/gen/vlrelu-sse41-x4.c",
+    "src/f32-vlrelu/gen/vlrelu-sse41-x8.c",
+    "src/f32-vrnd/gen/vrndne-sse41-x4.c",
+    "src/f32-vrnd/gen/vrndne-sse41-x8.c",
+    "src/f32-vrnd/gen/vrndz-sse41-x4.c",
+    "src/f32-vrnd/gen/vrndz-sse41-x8.c",
+    "src/f32-vrnd/gen/vrndu-sse41-x4.c",
+    "src/f32-vrnd/gen/vrndu-sse41-x8.c",
+    "src/f32-vrnd/gen/vrndd-sse41-x4.c",
+    "src/f32-vrnd/gen/vrndd-sse41-x8.c",
+    "src/qu8-requantization/precise-sse4.c",
+    "src/qu8-requantization/q31-sse4.c",
     "src/math/roundne-sse41.c",
     "src/math/roundd-sse41.c",
     "src/math/roundu-sse41.c",
     "src/math/roundz-sse41.c",
-    "src/requantization/precise-sse4.c",
-    "src/requantization/q31-sse4.c",
-    "src/requantization/gemmlowp-sse4.c",
 ]
 
 AVX_UKERNELS = [
@@ -1071,8 +1224,8 @@
     "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-hswish/gen/hswish-avx-x8.c",
+    "src/f32-hswish/gen/hswish-avx-x16.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",
@@ -1084,6 +1237,8 @@
     "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-relu/gen/avx-x16.c",
+    "src/f32-relu/gen/avx-x8.c",
     "src/f32-rmax/avx.c",
     "src/f32-vbinary/gen/vadd-minmax-avx-x8.c",
     "src/f32-vbinary/gen/vadd-minmax-avx-x16.c",
@@ -1109,11 +1264,33 @@
     "src/f32-vbinary/gen/vrdivc-minmax-avx-x16.c",
     "src/f32-vbinary/gen/vrsubc-minmax-avx-x8.c",
     "src/f32-vbinary/gen/vrsubc-minmax-avx-x16.c",
+    "src/f32-vbinary/gen/vsqrdiff-avx-x8.c",
+    "src/f32-vbinary/gen/vsqrdiff-avx-x16.c",
+    "src/f32-vbinary/gen/vsqrdiffc-avx-x8.c",
+    "src/f32-vbinary/gen/vsqrdiffc-avx-x16.c",
     "src/f32-vbinary/gen/vsub-minmax-avx-x8.c",
     "src/f32-vbinary/gen/vsub-minmax-avx-x16.c",
     "src/f32-vbinary/gen/vsubc-minmax-avx-x8.c",
     "src/f32-vbinary/gen/vsubc-minmax-avx-x16.c",
+    "src/f32-vlrelu/gen/vlrelu-avx-x8.c",
+    "src/f32-vlrelu/gen/vlrelu-avx-x16.c",
     "src/f32-vscale/avx-unroll32.c",
+    "src/f32-vrnd/gen/vrndne-avx-x8.c",
+    "src/f32-vrnd/gen/vrndne-avx-x16.c",
+    "src/f32-vrnd/gen/vrndz-avx-x8.c",
+    "src/f32-vrnd/gen/vrndz-avx-x16.c",
+    "src/f32-vrnd/gen/vrndu-avx-x8.c",
+    "src/f32-vrnd/gen/vrndu-avx-x16.c",
+    "src/f32-vrnd/gen/vrndd-avx-x8.c",
+    "src/f32-vrnd/gen/vrndd-avx-x16.c",
+    "src/f32-vsqrt/gen/avx-sqrt-x8.c",
+    "src/f32-vsqrt/gen/avx-sqrt-x16.c",
+    "src/f32-vunary/gen/vabs-avx-x8.c",
+    "src/f32-vunary/gen/vabs-avx-x16.c",
+    "src/f32-vunary/gen/vneg-avx-x8.c",
+    "src/f32-vunary/gen/vneg-avx-x16.c",
+    "src/f32-vunary/gen/vsqr-avx-x8.c",
+    "src/f32-vunary/gen/vsqr-avx-x16.c",
 ]
 
 FMA3_UKERNELS = [
@@ -1157,8 +1334,8 @@
     "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-hswish/gen/hswish-fma3-x8.c",
+    "src/f32-hswish/gen/hswish-fma3-x16.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",
@@ -1173,6 +1350,17 @@
     "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",
+    "src/f32-vsqrt/gen/fma3-nr1fma1adj-x8.c",
+    "src/f32-vsqrt/gen/fma3-nr1fma1adj-x16.c",
+    "src/f32-vsqrt/gen/fma3-nr1fma1adj-x24.c",
+    "src/f32-vsqrt/gen/fma3-nr1fma1adj-x32.c",
+    "src/f32-vsqrt/gen/fma3-nr1fma1adj-x40.c",
+    "src/f32-vsqrt/gen/fma3-nr1fma1adj-x48.c",
+    "src/f32-vsqrt/gen/fma3-nr1fma1adj-x56.c",
+    "src/f32-vsqrt/gen/fma3-nr1fma1adj-x64.c",
+    "src/math/sqrt-fma3-nr1fma.c",
+    "src/math/sqrt-fma3-nr2fma.c",
+    "src/math/sqrt-fma3-nr1fma1adj.c",
 ]
 
 AVX2_UKERNELS = [
@@ -1306,8 +1494,8 @@
     "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-hswish/gen/hswish-avx512f-x16.c",
+    "src/f32-hswish/gen/hswish-avx512f-x32.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",
@@ -1352,6 +1540,8 @@
     "src/f32-raddstoreexpminusmax/gen/avx512f-p5-scalef-x192-acc2.c",
     "src/f32-raddstoreexpminusmax/gen/avx512f-p5-scalef-x192-acc3.c",
     "src/f32-raddstoreexpminusmax/gen/avx512f-p5-scalef-x192-acc6.c",
+    "src/f32-relu/gen/avx512f-x16.c",
+    "src/f32-relu/gen/avx512f-x32.c",
     "src/f32-rmax/avx512f.c",
     "src/f32-vbinary/gen/vadd-minmax-avx512f-x16.c",
     "src/f32-vbinary/gen/vadd-minmax-avx512f-x32.c",
@@ -1377,10 +1567,16 @@
     "src/f32-vbinary/gen/vrdivc-minmax-avx512f-x32.c",
     "src/f32-vbinary/gen/vrsubc-minmax-avx512f-x16.c",
     "src/f32-vbinary/gen/vrsubc-minmax-avx512f-x32.c",
+    "src/f32-vbinary/gen/vsqrdiff-avx512f-x16.c",
+    "src/f32-vbinary/gen/vsqrdiff-avx512f-x32.c",
+    "src/f32-vbinary/gen/vsqrdiffc-avx512f-x16.c",
+    "src/f32-vbinary/gen/vsqrdiffc-avx512f-x32.c",
     "src/f32-vbinary/gen/vsub-minmax-avx512f-x16.c",
     "src/f32-vbinary/gen/vsub-minmax-avx512f-x32.c",
     "src/f32-vbinary/gen/vsubc-minmax-avx512f-x16.c",
     "src/f32-vbinary/gen/vsubc-minmax-avx512f-x32.c",
+    "src/f32-vlrelu/gen/vlrelu-avx512f-x16.c",
+    "src/f32-vlrelu/gen/vlrelu-avx512f-x32.c",
     "src/f32-vscale/avx512f-unroll64.c",
     "src/f32-vscaleexpminusmax/gen/avx512f-p5-scalef-x16.c",
     "src/f32-vscaleexpminusmax/gen/avx512f-p5-scalef-x32.c",
@@ -1406,24 +1602,53 @@
     "src/f32-vscaleextexp/gen/avx512f-p5-scalef-x160.c",
     "src/f32-vscaleextexp/gen/avx512f-p5-scalef-x176.c",
     "src/f32-vscaleextexp/gen/avx512f-p5-scalef-x192.c",
+    "src/f32-vrnd/gen/vrndne-avx512f-x16.c",
+    "src/f32-vrnd/gen/vrndne-avx512f-x32.c",
+    "src/f32-vrnd/gen/vrndz-avx512f-x16.c",
+    "src/f32-vrnd/gen/vrndz-avx512f-x32.c",
+    "src/f32-vrnd/gen/vrndu-avx512f-x16.c",
+    "src/f32-vrnd/gen/vrndu-avx512f-x32.c",
+    "src/f32-vrnd/gen/vrndd-avx512f-x16.c",
+    "src/f32-vrnd/gen/vrndd-avx512f-x32.c",
+    "src/f32-vsqrt/gen/avx512f-nr1fma1adj-x16.c",
+    "src/f32-vsqrt/gen/avx512f-nr1fma1adj-x32.c",
+    "src/f32-vsqrt/gen/avx512f-nr1fma1adj-x48.c",
+    "src/f32-vsqrt/gen/avx512f-nr1fma1adj-x64.c",
+    "src/f32-vsqrt/gen/avx512f-nr1fma1adj-x80.c",
+    "src/f32-vsqrt/gen/avx512f-nr1fma1adj-x96.c",
+    "src/f32-vsqrt/gen/avx512f-nr1fma1adj-x112.c",
+    "src/f32-vsqrt/gen/avx512f-nr1fma1adj-x128.c",
+    "src/f32-vunary/gen/vabs-avx512f-x16.c",
+    "src/f32-vunary/gen/vabs-avx512f-x32.c",
+    "src/f32-vunary/gen/vneg-avx512f-x16.c",
+    "src/f32-vunary/gen/vneg-avx512f-x32.c",
+    "src/f32-vunary/gen/vsqr-avx512f-x16.c",
+    "src/f32-vunary/gen/vsqr-avx512f-x32.c",
     "src/math/exp-avx512f-p5-scalef.c",
     "src/math/exp-avx512f-p5.c",
     "src/math/exp-avx512f-perm-p3.c",
     "src/math/exp-avx512f-perm2-p2.c",
     "src/math/extexp-avx512f-p5.c",
+    "src/math/sqrt-avx512f-nr1fma.c",
+    "src/math/sqrt-avx512f-nr2fma.c",
+    "src/math/sqrt-avx512f-nr1fma1adj.c",
 ]
 
 AARCH32_ASM_UKERNELS = [
+    "src/f32-gemm/4x4-aarch32-vfp-ld64.S",
+    "src/f32-gemm/4x4-minmax-aarch32-vfp-ld64.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-a7.S",
     "src/f32-gemm/gen/4x8-minmax-aarch32-neon-cortex-a75.S",
+    "src/f32-gemm/gen/4x8-minmax-aarch32-neon-ld64.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",
+    "src/f32-igemm/gen/4x8-minmax-aarch32-neon-cortex-a7.S",
+    "src/f32-igemm/gen/4x8-minmax-aarch32-neon-cortex-a75.S",
+    "src/f32-igemm/gen/4x8-minmax-aarch32-neon-ld64.S",
+    "src/f32-igemm/gen/4x8-minmax-aarch32-neon-pld-cortex-a75.S",
 ]
 
 AARCH64_ASM_UKERNELS = [
@@ -1462,7 +1687,6 @@
     "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/1x8inc-minmax-aarch64-neonfma-ld64.S",
@@ -1484,7 +1708,6 @@
     "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",
@@ -1503,7 +1726,6 @@
     "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",
 ]
 
 cc_defaults {
@@ -1531,6 +1753,37 @@
 }
 
 cc_library_static {
+    name: "xnnpack_logging_utils",
+    defaults: ["xnnpack_internal_default"],
+    srcs: LOGGING_SRCS,
+    header_libs: [
+        "fp16_headers",
+    ],
+    static_libs: [
+        "libclog",
+        "libpthreadpool",
+    ],
+}
+
+cc_library_static {
+    name: "xnnpack_memory_planner",
+    defaults: ["xnnpack_internal_default"],
+    srcs: [
+        "src/memory-planner.c",
+    ],
+    cflags: [
+        "-DXNN_ENABLE_MEMOPT=1",
+    ],
+    header_libs: [
+        "fp16_headers",
+    ],
+    static_libs: [
+        "libpthreadpool",
+        "xnnpack_logging_utils",
+    ],
+}
+
+cc_library_static {
     name: "xnnpack_im2col",
     defaults: ["xnnpack_internal_default"],
     srcs: [
@@ -1554,6 +1807,21 @@
 }
 
 cc_library_static {
+    name: "xnnpack_packing",
+    defaults: ["xnnpack_internal_default"],
+    srcs: [
+        "src/packing.c",
+    ],
+    header_libs: [
+        "fp16_headers",
+        "fxdiv_headers",
+    ],
+    static_libs: [
+        "libpthreadpool",
+    ],
+}
+
+cc_library_static {
     name: "xnnpack_operator_run",
     defaults: ["xnnpack_internal_default"],
     srcs: [
@@ -1586,6 +1854,8 @@
     static_libs: [
         "libclog",
         "libpthreadpool",
+        "xnnpack_logging_utils",
+        "xnnpack_packing",
     ],
     whole_static_libs: [
         "xnnpack_indirection",
@@ -2043,6 +2313,9 @@
         "src/runtime.c",
         "src/subgraph.c",
         "src/tensor.c",
+    ] + SUBGRAPH_SRCS,
+    header_libs: [
+        "fp16_headers",
     ],
     whole_static_libs: [
         "libclog",
@@ -2051,6 +2324,9 @@
         "xnnpack_ukernels",
         "xnnpack_operator_run",
         "xnnpack_operators",
+        "xnnpack_logging_utils",
+        "xnnpack_memory_planner",
+        "xnnpack_packing",
     ],
 }
 
@@ -2068,6 +2344,7 @@
     cflags: [
         "-Wno-unused-function",
         "-Wno-unused-parameter",
+        "-Wno-unused-private-field",
     ],
     header_libs: [
         "fp16_headers",
@@ -2083,34 +2360,51 @@
 }
 
 cc_library_static {
-    name: "xnnpack_mobilenet_v1",
+    name: "xnnpack_mobilenet_v1_fp32",
     defaults: ["xnnpack_tests_default"],
     srcs: [
-        "models/mobilenet-v1.cc",
+        "models/fp32-mobilenet-v1.cc",
     ],
 }
 
 cc_library_static {
-    name: "xnnpack_mobilenet_v2",
+    name: "xnnpack_mobilenet_v1_fp16",
     defaults: ["xnnpack_tests_default"],
     srcs: [
-        "models/mobilenet-v2.cc",
+        "models/fp16-mobilenet-v1.cc",
     ],
 }
 
 cc_library_static {
-    name: "xnnpack_mobilenet_v3_large",
+    name: "xnnpack_mobilenet_v2_fp32",
     defaults: ["xnnpack_tests_default"],
     srcs: [
-        "models/mobilenet-v3-large.cc",
+        "models/fp32-mobilenet-v2.cc",
     ],
 }
 
 cc_library_static {
-    name: "xnnpack_mobilenet_v3_small",
+    name: "xnnpack_mobilenet_v2_fp16",
     defaults: ["xnnpack_tests_default"],
     srcs: [
-        "models/mobilenet-v3-small.cc",
+        "models/fp16-mobilenet-v2.cc",
+    ],
+}
+
+
+cc_library_static {
+    name: "xnnpack_mobilenet_v3_large_fp32",
+    defaults: ["xnnpack_tests_default"],
+    srcs: [
+        "models/fp32-mobilenet-v3-large.cc",
+    ],
+}
+
+cc_library_static {
+    name: "xnnpack_mobilenet_v3_small_fp32",
+    defaults: ["xnnpack_tests_default"],
+    srcs: [
+        "models/fp32-mobilenet-v3-small.cc",
     ],
 }
 
@@ -2127,18 +2421,20 @@
     static_libs: [
         "libcpuinfo",
         "libgoogle-benchmark",
-        "xnnpack_mobilenet_v1",
-        "xnnpack_mobilenet_v2",
-        "xnnpack_mobilenet_v3_large",
-        "xnnpack_mobilenet_v3_small",
+        "xnnpack_mobilenet_v1_fp32",
+        "xnnpack_mobilenet_v1_fp16",
+        "xnnpack_mobilenet_v2_fp32",
+        "xnnpack_mobilenet_v2_fp16",
+        "xnnpack_mobilenet_v3_large_fp32",
+        "xnnpack_mobilenet_v3_small_fp32",
     ],
 }
 
 cc_test {
-    name: "xnnpack_add_nc_test",
+    name: "xnnpack_abs_nc_test",
     defaults: ["xnnpack_tests_default"],
     srcs: [
-        "test/add-nc.cc",
+        "test/abs-nc.cc",
     ],
     test_suites: [
         "general-tests",
@@ -2179,10 +2475,21 @@
 }
 
 cc_test {
-    name: "xnnpack_channel_pad_nc_test",
+    name: "xnnpack_bankers_rounding_nc_test",
     defaults: ["xnnpack_tests_default"],
     srcs: [
-        "test/channel-pad-nc.cc",
+        "test/bankers-rounding-nc.cc",
+    ],
+    test_suites: [
+        "general-tests",
+    ],
+}
+
+cc_test {
+    name: "xnnpack_ceiling_nc_test",
+    defaults: ["xnnpack_tests_default"],
+    srcs: [
+        "test/ceiling-nc.cc",
     ],
     test_suites: [
         "general-tests",
@@ -2212,6 +2519,17 @@
 }
 
 cc_test {
+    name: "xnnpack_constant_pad_nd_test",
+    defaults: ["xnnpack_tests_default"],
+    srcs: [
+        "test/constant-pad-nd.cc",
+    ],
+    test_suites: [
+        "general-tests",
+    ],
+}
+
+cc_test {
     name: "xnnpack_convolution_nhwc_test",
     defaults: ["xnnpack_tests_default"],
     srcs: [
@@ -2234,6 +2552,17 @@
 }
 
 cc_test {
+    name: "xnnpack_copy_nc_test",
+    defaults: ["xnnpack_tests_default"],
+    srcs: [
+        "test/copy-nc.cc",
+    ],
+    test_suites: [
+        "general-tests",
+    ],
+}
+
+cc_test {
     name: "xnnpack_deconvolution_nhwc_test",
     defaults: ["xnnpack_tests_default"],
     srcs: [
@@ -2267,6 +2596,17 @@
 }
 
 cc_test {
+    name: "xnnpack_floor_nc_test",
+    defaults: ["xnnpack_tests_default"],
+    srcs: [
+        "test/floor-nc.cc",
+    ],
+    test_suites: [
+        "general-tests",
+    ],
+}
+
+cc_test {
     name: "xnnpack_global_average_pooling_nwc_test",
     defaults: ["xnnpack_tests_default"],
     srcs: [
@@ -2355,6 +2695,17 @@
 }
 
 cc_test {
+    name: "xnnpack_negate_nc_test",
+    defaults: ["xnnpack_tests_default"],
+    srcs: [
+        "test/negate-nc.cc",
+    ],
+    test_suites: [
+        "general-tests",
+    ],
+}
+
+cc_test {
     name: "xnnpack_prelu_nc_test",
     defaults: ["xnnpack_tests_default"],
     srcs: [
@@ -2399,6 +2750,39 @@
 }
 
 cc_test {
+    name: "xnnpack_square_nc_test",
+    defaults: ["xnnpack_tests_default"],
+    srcs: [
+        "test/square-nc.cc",
+    ],
+    test_suites: [
+        "general-tests",
+    ],
+}
+
+cc_test {
+    name: "xnnpack_square_root_nc_test",
+    defaults: ["xnnpack_tests_default"],
+    srcs: [
+        "test/square-root-nc.cc",
+    ],
+    test_suites: [
+        "general-tests",
+    ],
+}
+
+cc_test {
+    name: "xnnpack_square_difference_nd_test",
+    defaults: ["xnnpack_tests_default"],
+    srcs: [
+        "test/squared-difference-nd.cc",
+    ],
+    test_suites: [
+        "general-tests",
+    ],
+}
+
+cc_test {
     name: "xnnpack_subtract_nd_test",
     defaults: ["xnnpack_tests_default"],
     srcs: [
@@ -2410,6 +2794,17 @@
 }
 
 cc_test {
+    name: "xnnpack_truncation_nc_test",
+    defaults: ["xnnpack_tests_default"],
+    srcs: [
+        "test/truncation-nc.cc",
+    ],
+    test_suites: [
+        "general-tests",
+    ],
+}
+
+cc_test {
     name: "xnnpack_unpooling_nhwc_test",
     defaults: ["xnnpack_tests_default"],
     srcs: [